Ich muss Inhalte in meiner Webanwendung auf Benutzerbasis verschlüsseln.
Ich, der root-Benutzer, möchte keinen Zugriff auf den Inhalt der Benutzer haben, Punkt.
Wie kann ich es so einrichten, dass Nutzer als einzige Zugriff auf ihre Inhalte haben? Vielleicht kann ich es so machen, dass ein Hash ihres Login-Passworts als Verschlüsselungs- und Entschlüsselungsschlüssel fungiert (dann wird ihr Passwort in meiner Datenbank unidirektional gespeichert und der Verschlüsselungs- / Entschlüsselungs-Hash wird aus ihrem rohen Passwort beim Login generiert und gespeichert ein lokales Cookie)? Was aber, wenn sie ihr Passwort ändern? Dann muss ich alle ihre Inhalte aktualisieren, die eine Menge Rechenleistung benötigen.
Gibt es eine Verschlüsselungsmethode, die dies bietet, ohne ihren Inhalt neu verschlüsseln zu müssen, wenn sich ihr Passwort ändert? Etwas ähnliches wie ecryptfs auf Linux, vielleicht? Ist die Erforschung von ecryptfs ein guter Anfang?
Macht es so, dass nur der Benutzer auf seine Inhalte auf meinen Servern (und nicht einmal ich) zugreifen kann?
Prozess:
Bei Änderung des Passworts:
Bei der Anmeldung:
Hinweise:
Sie müssen darauf achten, dass Sie ihr Passwort als Schlüssel verwenden müssen.
Ich würde mich nicht mit ecryptfs herumschlagen, weil ein verschlüsseltes Dateisystem nicht die beste Lösung ist. Sie möchten nicht, dass die Daten eines Benutzers mit demselben Schlüssel verschlüsselt werden, den ein anderer Benutzer verwendet hat.
Wenn Sie die Daten verschlüsseln, sollten Sie eine zufällige Zeichenfolge generieren, die als Salz verwendet wird. Dies verhindert, dass jemand eine vorgenerierte Liste von Hashes verwendet, um Ihre Daten zu entschlüsseln. Es ändert auch den Hash von zwei Personen, die möglicherweise das gleiche Passwort verwenden.
Wenn ein Benutzer sein Passwort ändert, müssen Sie die Daten erneut verschlüsseln und einen neuen Salt-Wert generieren. Dies ist das Sicherheitsniveau, das ich als Kunde erwarte. Ich weiß, dass ich alle meine Daten neu verschlüssle, wenn ich mein Passwort ändere, um zu verhindern, dass jemand versucht, meinen Schlüssel brutal zu erzwingen.
Sie können den Salt-Wert unverschlüsselt in Ihrer Datenbank speichern.
Tags und Links encryption