Verschlüsselung von Usercontent
steve12
- sonstiges
0 Cheatah0 steve12
0 Sven Rautenberg
Hallo,
ich möchte meinen Nutzern die Möglichkeit geben, dass sie in Ihrem Profil Daten abspeichern können, die aber nur sie auch lesen können.
Der Zugriff erfolgt mit Benutzernamen/ Passwort auf das Userkonto.
Die Daten sollen verschlüsselt in der Datenbank abgelegt sein, so dass auch ich keinen unverschlüsselten Zugriff auf die Daten haben kann.
Bsp. ist z.B. die Nutzer können ein Telefonbuch anlegen.
Habt ihr Ideen/ Vorschläge, auf welchem Weg ich das realisieren könnte?
Die Verschlüsselung könnte ja z.B. mit dem Passwort des Nutzers erfolgen. Dieses ist bei mir als MD5 abgespeichert, somit hätte ich bzw. jmd. der an den Inhalt der Datenbank kommt, darauf schon mal keinen Zugriff.
Danke
Steve
Hi,
Die Verschlüsselung könnte ja z.B. mit dem Passwort des Nutzers erfolgen. Dieses ist bei mir als MD5 abgespeichert,
es wird aber nicht als MD5 eingegeben.
Cheatah
Hi,
Die Verschlüsselung könnte ja z.B. mit dem Passwort des Nutzers erfolgen. Dieses ist bei mir als MD5 abgespeichert,
es wird aber nicht als MD5 eingegeben.
Danke für eure Nachrichten, es ist vorausgesetzt, dass die Nutzer mir vertrauen.
Mir geht es um die technische Seite, gibt es einen Ansatz, wie ich das Problem lösen kann?
Danke
Steve
Moin!
Danke für eure Nachrichten, es ist vorausgesetzt, dass die Nutzer mir vertrauen.
Mir geht es um die technische Seite, gibt es einen Ansatz, wie ich das Problem lösen kann?
Wenn sie dir vertrauen, wo ist dann das Problem, es unverschlüsselt zu speichern?
Ansonsten: Nimm halt irgendeine Verschlüsselungsfunktion an passender Stelle. Datenbanken bieten das genauso an, wie Programmiersprachen.
MySQL kennt z.B. AES_ENCRYPT und AES_DECRYPT. PHP hat u.a. die mcrypt-Extension.
Du kommst aber nicht drum herum, das für den Vorgang notwendige Geheimnis zum Zeitpunkt der Ver-/Entschlüsselung zu kennen.
- Sven Rautenberg
Wenn sie dir vertrauen, wo ist dann das Problem, es unverschlüsselt zu speichern?
Provider, unzuverlässige Helfer, Hacker, Backup gelangt in Hände anderer ...
Danke
Steve
Moin Moin!
Wenn sie dir vertrauen, wo ist dann das Problem, es unverschlüsselt zu speichern?
Provider, unzuverlässige Helfer, Hacker, Backup gelangt in Hände anderer ...
So lange wir über Webserver reden, wirst Du die Daten vermutlich auf dem Server ver- und entschlüsseln wollen. Dann ist alles, was ein Angreifer braucht, an einem Platz: Ver-/Entschlüsselungsmaschine, Schlüssel, und entweder Klartext oder Chiffrat. Sicherheitstechnisch ist das, um mal den Consultant raushängen zu lassen, SUBOPTIMAL.
Also brauchst Du einen anderen Ansatz: Die Daten des Benutzers kommen schon als verschlüsselter Datenblock am Server an, und gehen auch als verschlüsselter Datenblock wieder raus. Den Schlüssel behält der Benutzer und der kommt auch nie auf den Server.
Mitgedacht? Die Ver-/Entschlüsselungsmaschine ist aus dem Server rausgenommen, d.h. Du brauchst einen passenden Client, der das Ver- und Entschlüsseln sowie das Generieren eines Schlüssel(paar)s übernimmt.
Den Client samt Ver-/Entschlüsselungsmaschine kannst Du ganz normal per HTTP(S) ausliefern, und dann z.B. direkt im Browser laufen lassen. In reinem Javascript könnte das ETWAS langsam werden, Java ist oft nicht aktiviert, ein ActiveX-Control sperrt dich in die Windows-Ecke ein, Flash wäre noch eine Möglichkeit.
Wenn der Benutzerschlüssel als Datei vorliegt, scheiden Javascript (ohne sehr üble Tricks) und Flash sowie unsignierte Java-Applets aus. Der Rest (ActiveX-Controls und signierte Java-Applets) könnte auch auf die Datei zugreifen.
Mit allen Techniken (Javascript/AJAX, Java, Flash, ActiveX) könntest Du einen recht komfortablen Client bauen, der mehr an eine Native-Anwendung erinnert als an eine Website. HTTP(S) wäre dann nur noch Transportmedium für verschlüsselte Datenblöcke.
Ich gebe zu, das ist kein Projekt für ein Wochenende. Da geht definitiv mehr Zeit drauf.
Alexander
Moin!
ich möchte meinen Nutzern die Möglichkeit geben, dass sie in Ihrem Profil Daten abspeichern können, die aber nur sie auch lesen können.
Der Zugriff erfolgt mit Benutzernamen/ Passwort auf das Userkonto.
Die Daten sollen verschlüsselt in der Datenbank abgelegt sein, so dass auch ich keinen unverschlüsselten Zugriff auf die Daten haben kann.
Dieses technische Detail ist irrelevant, wenn die Benutzer nicht sicher sein können, dass sie dir in diesem Punkt voll vertrauen können. Denn egal ob du die vertraulichen Daten nun verschlüsselt ablegst, oder nicht - du als Admin hast immer die Möglichkeit, die Daten zu entschlüsseln oder beim Aufruf des Nutzers abzugreifen und dir somit zugänglich zu machen.
Grundsätzlich gilt für deine Nutzer also: Alles, was sie auf deinem Server ablegen, ist dir zugänglich. Egal was du ihnen erzählst. Denn sie können es ja nicht kontrollieren.
Die Verschlüsselung könnte ja z.B. mit dem Passwort des Nutzers erfolgen. Dieses ist bei mir als MD5 abgespeichert, somit hätte ich bzw. jmd. der an den Inhalt der Datenbank kommt, darauf schon mal keinen Zugriff.
Korrekt, du kennst das Passwort der Nutzer nur dann, wenn diese das Login-Formular ausfüllen. Damit aber kennst du das Passwort. Das ist dasselbe Vertrauensproblem, die verschlüsselte Speicherung in der Datenbank schützt nicht deine Benutzer, sondern sie schützt dich - vor den unangenehmen Folgen, solltest du durch irgendwelche ungünstigen Vorkommnisse die gespeicherten Passworte preisgeben.
- Sven Rautenberg