
Firefox hat vor kurzem seinen File-Share-Dienst gestartet,Schicken. Es verspricht eine Ende-zu-Ende-Verschlüsselung: Die freizugebende Datei wird im Browser des Absenders verschlüsselt und im Browser des Empfängers mithilfe eines in der freigegebenen URL eingebetteten Schlüssels entschlüsselt.
Eine URL zum Teilen einer Datei hat das folgende Format:
https://send.firefox.com/download/03837dac3928b1d1/#lIFX1W1S2oXSwJF0QgMe_A
Ich nehme an, dass ein Teil der URL den Speicherort der Datei auf den Servern von Mozilla darstellt und der andere den Verschlüsselungsschlüssel. Bei einer gültigen URL erhalte ich jedoch, egal welchen Teil ich ändere, die Fehlermeldung „Dieser Link ist abgelaufen“. Daher konnte ich nicht herausfinden, ob meine Vermutung richtig war.
Meine Frage ist jedenfalls, wie sicher ich mich bei dieser End-to-End-Verschlüsselung fühlen kann. Der Mechanismus ist clever, aber ich habe festgestellt, dass ich den Link zu allen meinen Freigaben von meinem Firefox-Konto auf jedem Gerät wiederherstellen konnte. Das bedeutet, dass der gesamte Link irgendwie in meinem Konto auf den Servern von Mozilla gespeichert ist.
Wenn ja, ist es für Mozilla technisch möglich, jede freigegebene Datei zu entschlüsseln. Übersehe ich etwas? Weiß jemand genau, wie Firefox Send wirklich funktioniert und ob es sicher ist, sich auf diesen End-to-End-Verschlüsselungsmechanismus zu verlassen?
Vielen Dank.
Antwort1
Ich habe mich das Gleiche gefragt und bin auf diese Frage gestoßen. Na ja, ich kann versuchen, selbst zu recherchieren.
Mozilla dokumentierte die verwendete VerschlüsselungHierund um es einfacher zu erklären:
Hochladen
- Ihre App/Ihr Browser generiert einen Verschlüsselungsschlüssel
- Der Schlüssel wird verwendet, um drei weitere Schlüssel zu generieren: einen für die Dateiverschlüsselung selbst, einen für die Metadaten und einen Signaturschlüssel.
- Wenn Sie ein Passwort festlegen, werden das Passwort und der Verschlüsselungsschlüssel auf sichere Weise kombiniert, um den Signaturschlüssel zu erstellen, anstatt
- Die Datei und die Metadaten werden verschlüsselt
- Verschlüsselte Daten und der Signaturschlüssel werden an Mozilla gesendet
- Beachten Sie, dass es aufgrund der Art und Weise, wie der Signaturschlüssel generiert wird, nicht möglich ist, den ursprünglichen Verschlüsselungsschlüssel, der zur Generierung eines der Schlüssel verwendet wurde, zurückzurechnen.
- Mozilla sendet Ihnen die URL der Datei (ohne den Teil nach #) und ein Token. Mit diesem Token können Sie die Datei löschen.
- Ihre App fügt das #-Zeichen und den Verschlüsselungsschlüssel an
wird heruntergeladen
- Sie gelangen auf die Download-Seite. Nicht alle Browser übermitteln den Teil nach # an den Server. (Sie werden normalerweise für Ankerlinks verwendet, die auf einen anderen Abschnitt derselben Seite verweisen.)
- Mozilla sendet Ihrer App eine „Nonce“ (nur einmal verwendete Nummer) oder im Grunde genommen zufällige Datenmüll
- Da Sie den Verschlüsselungsschlüssel nach dem # haben, generiert die App alle 3 Schlüssel wie in Upload-Schritt 2. Sie erhalten genau dieselben Schlüssel wie der Uploader.
- Die App signiert den vom Server bereitgestellten Nonce mit dem Signaturschlüssel
- Die App sendet den signierten Nonce an Mozilla
- Da Mozilla den gleichen Signaturschlüssel hat, führen sie auch Schritt 4 auf ihrer Seite aus und erwarten, dass dieser mit dem von Ihnen gesendeten übereinstimmt. Dieser Schritt stellt sicher, dass entweder
- Sie kennen den richtigen Verschlüsselungsschlüssel
- oder wenn die Datei passwortgeschützt ist, kennen Sie das Passwort
- Sobald Sie bestätigt haben, dass Sie den Schlüssel kennen (ohne den Schlüssel dem Server mitzuteilen), sendet Ihnen Mozilla die verschlüsselten Metadaten.
- Die App entschlüsselt diese Metadaten auf Ihrem Computer und zeigt Ihnen Details
- Sie klicken auf Download
- Die App lädt die verschlüsselten Dateien herunter und entschlüsselt sie auf Ihrem Computer
Um Ihre Fragen zu beantworten:
Ich nehme an, dass ein Teil der URL den Speicherort der Datei auf den Servern von Mozilla darstellt und der andere den Verschlüsselungsschlüssel. Bei einer gültigen URL erhalte ich jedoch, egal welchen Teil ich ändere, die Fehlermeldung „Dieser Link ist abgelaufen“. Daher konnte ich nicht herausfinden, ob meine Vermutung richtig war.
Wenn Sie ab Downloadschritt 6 nicht nachweisen können, dass Sie den richtigen Verschlüsselungsschlüssel kennen, lehnt Mozilla die Zusendung der Datei ab.
Meine Frage ist jedenfalls, wie sicher ich mich bei dieser End-to-End-Verschlüsselung fühlen kann. Der Mechanismus ist clever, aber ich habe festgestellt, dass ich den Link zu allen meinen Freigaben von meinem Firefox-Konto auf jedem Gerät wiederherstellen konnte. Das bedeutet, dass der gesamte Link irgendwie in meinem Konto auf den Servern von Mozilla gespeichert ist.
Dieser Teil steht nicht in dem Dokument, das ich verlinkt habe. Ich schaue mich umdie Quelleund habe festgestellt, dass sie die Liste der hochgeladenen Dateien auf Ihr Konto hochladen. Ich glaube, diese Daten werden mit einem ähnlichen Verfahren wie bei der Dateiverschlüsselung verschlüsselt.
Ich habe nachgeschaut und es scheint, dass der Verschlüsselungsschlüssel lokal generiert wird. Ich bin mir jedoch nicht sicher, wie der Schlüssel synchronisiert wird.
Wenn ja, ist es für Mozilla technisch möglich, jede freigegebene Datei zu entschlüsseln. Übersehe ich etwas? Weiß jemand genau, wie Firefox Send wirklich funktioniert und ob es sicher ist, sich auf diesen End-to-End-Verschlüsselungsmechanismus zu verlassen?
Ein großer Haftungsausschluss hier ist, dass ich kein Verschlüsselungsexperte bin und Sie vielleicht fragen möchtenkrypto.se's Meinung hierzu.
Meiner Meinung nach ist der Verschlüsselungsprozess hier ziemlich solide und die verwendeten Algorithmen entsprechen dem Industriestandard. Mozilla kann keine einzelne Datei entschlüsseln, ohne jeden einzelnen verwendeten Schlüssel, einen pro Datei, mit Brute Force zu knacken.
Sie sollten sich jedoch über die zusätzlichen Funktionen im Klaren sein und darauf vertrauen müssen, dass Mozilla seine Aufgabe erfüllt:
- Das Passwort wird nur vom Server überprüft. Wenn Sie die verschlüsselten Dateien und den Verschlüsselungsschlüssel erhalten, können Sie die Daten entschlüsseln, ohne das Passwort zu kennen. Normalerweise wäre das kein Problem, da der Server Ihnen die verschlüsselten Dateien nicht sendet, bis Sie nachgewiesen haben, dass Sie das Passwort kennen. Mozilla selbst hat jedoch Zugriff auf die verschlüsselte Datei, sodass der Verschlüsselungsschlüssel hier der einzige Schutz ist.
- Angesichts der Tatsache, dass die meisten von Benutzern vergebenen Passwörter schwach sind, ist die Generierung eines zufälligen, starken Verschlüsselungsschlüssels besser, als das Passwort zum direkten Verschlüsseln von Daten zu verwenden.
- Ablaufdaten können nicht kryptografisch sicher implementiert werden, da Sie die tatsächliche aktuelle Zeit nicht in einer mathematischen Funktion abrufen können. Sie müssen also darauf vertrauen, dass Mozilla Ihre abgelaufenen Dateien entfernt.
Beachten Sie, dass der Open-Source-Server Firefox Send AWS als Speicher-Backend unterstützt. Ich bin nicht sicher, was Firefox in seinem öffentlichen Dienst verwendet, aber wenn es AWS ist, müssen Sie AWS auch in beiden oben genannten Punkten vertrauen.