|
|
|
|
|
|
|
#1 (permalink) |
|
Gast
Beiträge: n/a
|
Mir stellt sich gerade die Frage, in wie fern man die Datenbank sicher verschlüsseln kann, ohne jedoch die Funktionalität einzuschränken. Gute Verschlüsselungstechniken sind nämlich nicht linear, das bedeutet das man wahrscheinlich auf Suchfunktionen verzichten muss.
Mal angenommen in der DB steht folgenders: Herr Prof. Dr. Max Mustermann Musterweg 44 44444 Musterstatt Musterland nach der Chiffrierung steht da: 564gvf5rag23z6Fdahd56gfFhaeWdhfdca5DbggrSewgds8etu gRTrte3shSre3 7Sfseasrrztz523ggrtwgg4wfHgssetHgsrZHf3q3gfSdhjgzh huzkhtJujhJdrFGj6 744fGqw3yGqH4Stfw3SqqasVyXyyCVj23ufvaJhdtz854FhkMb DMlOzhjSDsD Fgr338auz1 nun habe ich eine Suchfunktion die mit ... LIKE '%$suchstring%' arbeiten soll. Man müsste nun den Suchstring chiffrieren damit es bei der Suche nach "Max Mustermann" einen match geben kann - was z.b. bei linearer monoalphabetischer Substitution (exrem unsicher) gehen müsste. Wie ist das aber bei nonlinearer polyalphabetischer Verschlüsselung? Dann noch eine Frage, die ich mal so in den Raum stellen möchte: Bringt es überhaupt etwas, sich um die Verschlüsselung der DB gedanken zu machen? Gedanke: Wenn jemand an meine DB kommt, kommt er auch an meine Skripte. Und damit hat er dann auch das Werkzeug zum dechiffrieren. Was spricht dafür, die DB zu verschlüsseln, und was dagegen? Wie macht ihr das - verschlüsselt ihr eure DB? Warum? Warum nicht? Ich freue mich über sachliche Kommentare. |
|
|
|
|
PHP Code Flüsterer
Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten
|
|
|
|
#2 (permalink) |
|
Gast
Beiträge: n/a
|
a) Wenn jemand an deine db kommt heisst das noch lange nicht, das er auch an deine scripte kommt
b) Verschlüsselung der DB verlangsamt eher alles mögliche - was soll es bringen? c) Verschlüsselung macht bei einem passwort sinn, da vergleicht man aber meist direkt Ich glaube eher, das du dir mit der Verschlüsselung steine in den Weg legst... . |
|
|
#3 (permalink) |
|
Gast
Beiträge: n/a
|
Na ja, was mir u.a. Kopfschmerzen macht sind die Fälle aus der Vergangenheit, wo es Hacker immer wieder geschafft haben (weis nicht wie) die Adressdaten von grossen Firmen im Internet offenzulegen. Wäre da die DB verschlüsselt, hätte man nur den Spaghetti-Code vorgefunden.
Ein weiteres Sicherheitsrisiko besteht beim Provider selbst. Heutzutage kann man niemandem mehr trauen, und wer garantiert einem das beim Provider nicht jemand angestellt ist, der sich an den Daten der Kunden bedient um damit Geld zu verdienen. Ich bin zwar bei 1&1, habe aber trotzdem ein komisches Gefühl. Schließlich haben die Admins dort auf alles Zugriff. Ist alles nicht ausgeschlossen. Mit einer Verschlüsselung würden diesen Leuten schon mal Steine in den Weg gelegt werden. Aber ich sehe das auch so, das man sich selbst massiv Steine in den Weg legt. Vor allem auch wenn man mal ein par Fehler in der DB hat die behoben werden müssen. Ist alles verschlüsselt, kann man die Arbeit mit dem Telnet Client in vielen Fällen knicken, wenn es nicht nur um Datenbankdesign geht sondern um Suche nach verwaisten Datensätzen etc. Hinzu kommt, das man in vielen Fällen wohl auf BLOB anstatt auf z.B. varchar(20) zurück greifen muss, weil der Code einfach viel länger wird. Passwörter sind MD5() verschlüsselt, aber die will man ja auch nicht durchsuchen oder irgendwo anzeigen. In dem Fall stört es nicht Nur musste ich bisher die Erfahrung machen das Seitens der Kundschaft immer wieder nach Verschlüsselung gefragt wird. Die Leute fühlen sich einfach sicherer, wenn ihre sensiblen Daten auf dem Server nich in Klartext gespeichert werden. Aber im Moment sehe ich da noch massive Schwierigkeiten was die Umsetzung angeht, und glaube auch das die Performance spürbar darunter leidet. Bin aber kein Experte, bestimmt weis es jemand besser |
|
|
#4 (permalink) | |
|
Erfahrener Benutzer
|
Zitat:
Die Frage ist ob sich der Aufwand überhaupt lohnt. Ich kann mir nämlich nicht vorstellen das die Provider die Daten ihrer Kunden ausspähen. |
|
|
|
|
|
#5 (permalink) | ||
|
Gast
Beiträge: n/a
|
Zitat:
MD5 nehme ich nur wenn ich ein Login-Passwort speichern will. Bei Eingabe des Passwortes wird auf den Input md5() angewandt damit man in der DB vergleichen kann. Zitat:
|
||
|
|
#6 (permalink) |
|
Erfahrener Benutzer
Registriert seit: 30.06.2004
Beiträge: 619
![]() |
zur Sache mit der Suche:
PHP-Code:
|
|
|
|
|
#8 (permalink) | |
|
Gast
Beiträge: n/a
|
gutes Argument... wie ist es wenn die Skripte nun kompiliert sind (z.b. Zend)?
Zitat:
|
|
|
|
#9 (permalink) | |
|
Erfahrener Benutzer
Registriert seit: 27.10.2003
Beiträge: 530
![]() |
Zitat:
MfG Andy
__________________
kintzebros.de | KintzeBros Home Entertainment 2061. Nach dem Frieden | kurzfilm Paula | spielfilm |
|
|
|
|
|
#10 (permalink) |
|
Gast
Beiträge: n/a
|
stimmt. Schlüssel gibts ja nicht. Gibt es eigentlich einen Fall, wo zwei unterschiedliche strings nach md5() Anwendung den selben String ergeben? Nicht, oder? Wenn das so wäre, und die Sache eine eineindeutig (kein Tippfehler) ist, müsste es doch theretisch möglich sein den md5-String zurück in den Ursprungsstring zu bringen...
|
|
|
|
|
PHP Code Flüsterer
Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten
|
|
| Themen-Optionen | |
| Thema bewerten | |
|
|
| Besucher kamen über folgende Suchanfragen bei Google auf diese Seite |
| datenbank verschlüsselung sinnvoll |

Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.