Frage

Einige Webanwendungen wie Google Docs speichern von den Benutzern generierte Daten.Daten, die nur von ihrem Eigentümer gelesen werden können.Oder vielleicht nicht?

Soweit ich weiß, werden diese Daten unverändert in einer Remote-Datenbank gespeichert.Wenn also jemand mit ausreichenden Rechten im Remote-System (z. B. ein Systemadministrator) meine Daten ausspionieren kann, könnte meine Privatsphäre gefährdet werden.

Was könnte die beste Lösung sein, um diese Daten verschlüsselt in einer entfernten Datenbank zu speichern und nur der Eigentümer der Daten entschlüsseln zu können?Wie kann dieser Prozess für den Benutzer transparent gemacht werden?(Sie können das Passwort des Benutzers nicht als Schlüssel zum Verschlüsseln seiner Daten verwenden, da Sie sein Passwort nicht kennen sollten.)

War es hilfreich?

Lösung

Wenn die Verschlüsselung/Entschlüsselung auf dem Server durchgeführt wird, gibt es keine Möglichkeit sicherzustellen, dass der Klartext nicht irgendwo in einer Protokolldatei oder ähnlichem gespeichert wird.

Sie müssen die Verschlüsselung/Entschlüsselung im Browser mithilfe von JavaScript/Java/ActiveX oder was auch immer durchführen.Als Benutzer müssen Sie darauf vertrauen, dass die Client-Seite des Webdienstes die Informationen nicht unverschlüsselt an den Server zurücksendet.

Carl

Andere Tipps

Ich denke, Carl hat es auf den Punkt gebracht, aber ich wollte sagen, dass man bei jeder Website, wenn man ihr vertrauliche/persönliche/privilegierte Informationen zur Verfügung stellt, ein gewisses Maß an Vertrauen haben muss, und es liegt in der Verantwortung der Website Dienstleister, der dieses Vertrauen aufbaut.Dies ist eine dieser Fragen, die im Internet seit seiner Einführung oft gestellt wurden, und sie wird nur so lange zunehmen, bis wir alle unsere eigenen SSL-Zertifikate auf unserem Fingerabdruck haben, und selbst dann müssen wir die Frage stellen „Woher weiß ich, dass der Finger noch am Benutzer befestigt ist?“.

Nun, ich würde einen ähnlichen Prozess wie Amazons AWS in Betracht ziehen.Sie authentifizieren sich mit einem privaten Passwort, das nicht remote gespeichert wird.Zur Validierung des Benutzers wird lediglich ein Hash verwendet.Anschließend generieren Sie ein Zertifikat mit einem der wichtigsten und lang erprobten Algorithmen und stellen dieses von einer sicheren Seite aus zur Verfügung.Dann kann ein öffentlicher/privater Schlüsselalgorithmus verwendet werden, um Dinge für die Benutzer zu verschlüsseln.

Das Hauptproblem bleibt jedoch dasselbe:Wenn jemand mit ausreichenden Berechtigungen auf die Daten zugreifen kann (z. B.:Ihr Server gehackt wurde), sind Sie verloren.Mit genügend Zeit und Kraft könnte alles kaputt gehen.Es ist nur eine Frage der Zeit.

Aber ich denke, Algorithmen und Anwendungen wie GPG/PGP und ähnliche sind sehr bekannt und können so implementiert werden, dass sie Webanwendungen sichern – und die Benutzerfreundlichkeit auf einem Niveau halten, mit dem der durchschnittliche Benutzer umgehen kann.

bearbeiten Ich möchte aufholen @Carl Und Unkwntech und fügen Sie ihre Aussage hinzu:Wenn Sie der Website selbst nicht vertrauen, geben Sie keine privaten Daten weiter.Und das noch bevor jemand seine Server hackt ...;-)

Auron fragte:Wie generiert man einen Schlüssel für den Client zum Verschlüsseln/Entschlüsseln der Daten?Wo bewahren Sie diesen Schlüssel auf?

Nun, der Schlüssel wird normalerweise von einem vom Benutzer gewählten Passwort abgeleitet.Sie speichern es nicht, Sie vertrauen darauf, dass sich der Benutzer daran erinnert.Was Sie speichern können, ist möglicherweise ein mit diesem Benutzer verknüpfter Salt-Wert, um beispielsweise die Sicherheit vor Rainbow-Table-Angriffen zu erhöhen.

Krypto ist schwer richtig zu machen ;-) Ich würde empfehlen, sich den Quellcode anzusehen AxCrypt und für Geheimnisse'Offline-Client.

Carl

Nein, Sie können keine Passwörter verwenden, aber Sie könnten Passwort-Hashes verwenden.Da es bei Google Docs jedoch vor allem um die gemeinsame Nutzung geht, müsste bei einer solchen Methode für jeden Benutzer eine Kopie des Dokuments gespeichert werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top