Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Verschlüsselung der Datenbankinhalte
reloop
myCSharp.de - Member

Avatar #avatar-3256.jpg


Dabei seit:
Beiträge: 139

Themenstarter:

Verschlüsselung der Datenbankinhalte

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
chilic
myCSharp.de - Experte



Dabei seit:
Beiträge: 2.111

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 49.486
Herkunft: Berlin

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
f_igy
myCSharp.de - Member



Dabei seit:
Beiträge: 115

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers