Laden...

Verschlüsselung der Datenbankinhalte

Erstellt von reloop vor 11 Jahren Letzter Beitrag vor 11 Jahren 1.184 Views
reloop Themenstarter:in
139 Beiträge seit 2010
vor 11 Jahren
Verschlüsselung der Datenbankinhalte

Liebe Community,

Es geht um die Verschlüsselung von Daten innerhalb der Datenbank/Tabelle. Da in der Themenbeschreibung von "Rund um die Programmierung" Verschlüsselung mit aufgeführt wurde, habe ich mich gegen "Datenbanktechnologien" entschieden.

Nun zu meiner Frage:

Ich möchte in absehbarer Zeit eine Web-Anwendung veröffentlichen. Hier geht es um die Archivierung von kundenbezogenen Daten. Da ich die Anwendung als entsprechend Sicher bewerben möchte, wollte ich mir hier einen Rat einholen wie weit ihr die Verschlüsselung treibt. Reicht es die reinen Kundendaten (Name, Anschrift, etc.) zu verschlüsseln, damit auf referenzierte Daten nicht zurückgeschlossen werden kann? Oder soll ich soweit gehen, auch die gesamten Texte/Nachrichten in der DB zu verschlüsseln? (Gespeichert werden die Kundenanschriften, Nachrichtenverläufe, Dateien, austausch unter Kunde A und B, etc.)

Und wie verhält sich das ganze zur Laufzeit bei "Volltext" - Recherchen?

Ist meine Annahme richtig, dass ich quasi beim Einlesen u. Wegschreiben die Daten mittels einer eigenen Routine verschlüssle und in die Datenbank schreibe?

Ich freue mich über euer Feedback und bedanke mich schonmal vielmals bei allen, die sich die Zeit genommen haben.

Beste Grüße,
reloop

C
2.121 Beiträge seit 2010
vor 11 Jahren

Der Zugriff auf die Datenbank erfolgt bereits mit Passwort. Überleg dir ob das nicht reicht.
Wenn du die Daten selber noch verschlüsselst, musst du irgendwo den Schlüssel bereit halten. Ich würde lieber dafür sorgen dass nur der das DB-Zugangspasswort erhält, der auch wirklich auf die Daten zugreifen darf. Dann ersparst du dir viel Arbeit, die möglicherweise ziemlich umsonst ist.

49.485 Beiträge seit 2005
vor 11 Jahren

Hallo reloop,

ich gehe davon aus, dass das Verschlüsseln von Datenbankinhalten unüblich ist, obwohl es natürlich löblich wäre, gerade persönliche (und möglicherweise intime) Daten besonders zu sichern.

Die Gründe, die gegen eine Verschlüsselung sprechen, sind vielfältig.

Es würde natürlich einige Probleme bei Volltext-Recherchen und anderen Suchanfragen geben. Wenn man z.B. (Geburts-)Daten verschlüsselt speichern würde, könnte man nicht mehr die SQL-Operatoren größer und kleiner bzw. BETWEEN einsetzen, um Datensätze in einem bestimmten Datenbereich zu selektieren.

Der Aufwand für die Ver- und Entschlüsselung wäre auf heutigen Rechner vermutlich vertretbar, aber wenn man statt per SQL die gewünschten Datensätze zu ermitteln, alle Datensätze lesen, sie alle entschlüsseln, selbst dann nach den gewünschten suchen müsste, dann wäre das in vielen Fällen wohl ein Overkill.

Auch greift natürlich [FAQ] DB-Password/Kennwort/Connection-String sicher speichern, denn der Key zum Entschlüsseln, müsste ja der Anwendung bekannt sein, also z.B. in ihr gespeichert werden und damit könnte ihn ein Angreifer auslesen. Analog, wenn der Schlüssel in der Datenbank gespeichert wäre.

Natürlich bleibt die Möglichkeit, nur besonders sensible Daten zu verschlüsseln. Sowas passiert ja bei Passworten üblicherweise (dort sogar mit One-Way-Verschlüsselung). Wenn bei dir z.B. die Gespächsinhalte besonders sensibel sind, wäre es vermutlich sogar von Vorteil, wenn eine Volltextsuche nicht oder nur mit hohem Aufwand möglich wäre.

herbivore

F
115 Beiträge seit 2012
vor 11 Jahren

Huhu,

wenn man ein Bisschen Geld in die Hand nimmt gibt's da von IBM was schickes:

InfoSphere Guardium Data Encryption for DB2 and IMS Databases

Läuft aber nur auf Rechnern der z-Serie...

Gruß
f_igy