2011-01-10 18 views
1

Meine Anwendung muss Bankdaten und Kreditkartennummern in einer Datenbank speichern. Wir unterstützen verschiedene DB-Varianten und versuchen, möglichst keine DB-spezifischen Funktionen zu vermeiden, die nicht leicht auf andere portiert werden können.Sicherung einzelner DB-Felder

Daher suche ich nach einer einfachen, aber einigermaßen sicheren Art der Verschlüsselung bestimmter Felder wie der Kartennummer und Bankkontonummer. Die Anwendung benötigt diese, um Anfragen an externe Zahlungssysteme zu senden, aber eine zufällige Auswahl * der relevanten DB-Tabellen sollte "Junk" zurückgeben, so dass jemand nicht mit mehreren tausend Kreditkartennummern weglaufen kann.

Nur unsere Anwendung muss das Verschlüsselungssystem kennen, diese Informationen müssen nicht in (dieser) verschlüsselten Form gemeinsam mit anderen Systemen übertragen werden.

Hat jemand irgendwelche Vorschläge für eine einfache, aber sichere Möglichkeit, dies zu tun?

Ich fand die folgenden question/answer, die nützlich und umfassend aussah, aber ich kämpfte um herauszufinden, ob ich alle diese Felder brauchte.

Ich fand auch this article, die implizierte die IV sollte zufällig jedes Mal generiert werden, wenn ein Datensatz eingefügt/aktualisiert und neben dem verschlüsselten Wert gespeichert wird. Wenn dies sicher ist, scheint dies einfacher zu sein als der Ansatz, der in der SO-Frage vorgeschlagen wurde, aber ich habe Probleme, wie ich dies mit den Java APIs in Einklang bringen könnte.

Alle Vorschläge geschätzt. (Ich benutze Java 6)

Antwort

1

PCI Security Standards könnte referenziert werden. Es gibt viele Regelungen zu sensiblen Kartendaten in der Kartenindustrie.