Online-Passwortwiederherstellung bedeutete bisher meist, seine Datei an einen entfernten Server zu übergeben und ihm zu vertrauen. Browserbasierte Wiederherstellung dreht das um: Das Archiv verlässt Ihr Gerät nie, und die kryptografische Arbeit findet lokal über WebAssembly statt. Dieser Beitrag erklärt, wie das möglich ist und warum es eine bedeutsame Verbesserung für die Privatsphäre darstellt.
Das alte Modell: hochladen und hoffen
Klassische Online-Wiederherstellungswerkzeuge verlangen, dass Sie das Archiv auf einen Server hochladen, der die Arbeit erledigt. Das Problem ist, dass eine ZIP-Datei, zu der Sie den Zugang verloren haben, oft genau die Art von Datei ist, die Sie am wenigsten aus der Hand geben möchten, etwa Finanzunterlagen, Backups oder persönliche Dokumente.
Einmal hochgeladen, liegt diese Datei auf der Festplatte eines anderen. Sie kann protokolliert, zwischengespeichert oder aufbewahrt werden, und Sie haben keine Möglichkeit zu überprüfen, was tatsächlich mit ihr geschieht. Selbst wenn der Dienst es gut meint, erhöht das Hochladen sensibler Daten schlicht die Zahl der Orte, von denen sie abfließen können.
Das lokale Modell (Local-First)
Moderne Browser können alles leisten, was eine Wiederherstellung braucht, ohne dass ein Server beteiligt ist:
- Die File API liest die Bytes des Archivs direkt von Ihrer Festplatte in den Speicher der Seite, sobald Sie die Datei auswählen. Diese Bytes bleiben im Browser-Tab.
- WebAssembly führt die aufwendige Kryptografie aus, einschließlich PBKDF2, HMAC und CRC, schnell genug, um Passwörter lokal zu testen. Für die AES-Schlüsselableitung misst das Werkzeug außerdem das eingebaute Web Crypto des Browsers und verwendet es stattdessen, wenn es auf Ihrem Gerät schneller ist.
- Ein Pool von Web Workern, einer pro CPU-Kern, führt die Suche in Hintergrund-Threads aus, sodass die Oberfläche reaktionsfähig bleibt. Masken- und Brute-Force-Kandidaten werden in den Workern erzeugt; ein Wörterbuch, das Sie eingeben oder laden, übergibt ihnen die Seite. Keiner dieser Kandidaten wird über das Netzwerk gesendet.
Nichts in diesem Ablauf erfordert, dass Ihre Datei irgendwohin gesendet wird.
Warum WebAssembly hier wichtig ist
Die Überprüfung eines AES-Passworts wird von PBKDF2-HMAC-SHA1 mit 1000 Iterationen dominiert, das einmal pro Versuch berechnet wird. Das ist eine enge numerische Schleife, genau die Art von Arbeit, die reines JavaScript relativ langsam erledigt und die kompiliertes WebAssembly schnell erledigt. Diese rechenintensive Schleife in WebAssembly oder im nativen Web Crypto des Browsers statt in reinem JavaScript auszuführen, macht die lokale Wiederherstellung praktikabel statt quälend langsam. Es ändert nichts an der zugrunde liegenden Mathematik, aber es lässt Ihre eigene Hardware weit mehr Kandidaten pro Sekunde testen.
Was tatsächlich geschieht, Schritt für Schritt
- Sie wählen eine Datei aus. Der Browser liest sie lokal, und die Datei wird nirgendwohin gesendet.
- Die Seite analysiert die Struktur des Archivs, um seine Einträge zu finden, das Verschlüsselungsverfahren zu erkennen und den Eintrag auszuwählen, den die Worker testen, bevorzugt den kleinsten verschlüsselten Eintrag, der groß genug ist, um ein Passwort eindeutig zu bestätigen (unter den Einträgen bis 256 MB komprimiert).
- Masken- und Brute-Force-Kandidaten werden in den Workern erzeugt; Wörterbuchwörter (Ihre eigenen und, falls aktiviert, die eingebaute Liste häufiger Passwörter) übergibt die Seite den Workern, die daraus auch die von Ihnen aktivierten Varianten bilden.
- Jeder Kandidat wird zuerst mit dem günstigen Filter überprüft, dann mit einer Bestätigungsprüfung für jeden Überlebenden.
- Wenn ein Passwort bestätigt wird, wird es Ihnen angezeigt, nur auf Ihrem Bildschirm.
Zu keinem Zeitpunkt werden das Archiv, ein Kandidat oder das endgültige Passwort übertragen. Der Bestätigungsschritt berechnet bei AES den HMAC neu und entschlüsselt bei einem ZipCrypto-Eintrag ab 4 Bytes, der gespeichert (Store) oder mit Deflate komprimiert ist, den Eintrag und prüft die CRC-32; deshalb wird bei einem AES-Archiv praktisch nie ein falsches Passwort gemeldet, und bei fast jedem ZipCrypto-Archiv hat ein gemeldetes Passwort eine Prüfung bestanden, die ein falsches Passwort etwa einmal in 2^40 Kandidaten besteht: sehr selten, bei einer sehr langen Suche aber nicht nie. Lässt sich nur ein kürzerer ZipCrypto-Eintrag prüfen, weist das Ergebnis darauf hin, dass das Passwort nur eine schnelle Prüfung bestanden hat. So funktioniert es erklärt die seltene Ausnahme und zeigt das vollständige Bild.
Warum lokale Verarbeitung wirklich privater ist
- Die Datei verlässt Ihr Gerät nie, sodass es keinen Upload gibt, den man abfangen, speichern oder abfließen lassen könnte.
- Die getesteten Passwörter werden nicht protokolliert oder übertragen; jeder Kandidat wird in einem Worker getestet und dann verworfen.
- Es gibt keine serverseitigen Aufzeichnungen Ihrer Dateinamen oder -inhalte, weil es keinen Server gibt, der sie verarbeitet.
Das ist der Kern unseres Sicherheitsansatzes: Der privateste Weg, mit einer sensiblen Datei umzugehen, besteht darin, sie gar nicht erst zu bewegen.
Was das Werkzeug behält, und wie lange
Weil die Wiederherstellung innerhalb der Seite läuft, ist ihr Fußabdruck klein. Die Bytes des Archivs leben im Tab, solange dieser geöffnet ist, jeder Kandidat wird in einem Worker getestet und dann verworfen, und der Fortschritt sowie die Zeitschätzungen ergeben sich aus Ihrer eigenen Testrate. Zwei Dinge können den Tab überdauern, beide nur auf Ihrem Gerät. Ein ZIP, das Sie auf der Startseite ablegen oder auswählen, wartet im Speicher des Browsers, bis die Wiederherstellungsseite es öffnet und löscht; den Tab überdauert es also nur, wenn sich die Wiederherstellungsseite nie öffnet. Und eine laufende Masken- oder Brute-Force-Suche speichert ihre Einstellungen (einschließlich Name und Größe der Datei und einer von Ihnen eingegebenen Maske) und ihren Fortschritt, damit Sie nach einem Neuladen oder nach dem Schließen des Tabs weitermachen können; dieser Eintrag wird gelöscht, wenn die Suche endet, wenn Sie auf „Stopp“ klicken oder wenn Sie „Neu beginnen“ wählen. Keines von beiden wird jemals irgendwohin gesendet; die Datenschutzrichtlinie listet auf, was sie enthalten und wie Sie sie löschen. Es gibt kein Konto und keinen serverseitigen Verlauf Ihrer Wiederherstellungen.
Die ehrlichen Grenzen
Local-First ist ein Gewinn für die Privatsphäre, kein Zauberstab:
- Die Geschwindigkeit hängt von Ihrer eigenen Hardware ab. Ein Laptop testet weniger AES-Kandidaten pro Sekunde als eine große Maschine, sodass ein starkes Passwort außer Reichweite bleibt, was ja der ganze Sinn der Verschlüsselung ist.
- Die Wiederherstellung hängt weiterhin davon ab, die Suche einzugrenzen. Lokale Verarbeitung ändert, wo die Arbeit stattfindet, nicht die Mathematik des Ratens.
Nichts davon spricht gegen ein starkes Passwort, denn dass es schwer zu erraten ist, ist genau das, was Ihre Daten schützt. Wenn Sie es versuchen möchten, läuft alles auf der Wiederherstellungsseite.
Überprüfen Sie die Datenschutzbehauptung selbst
Sie müssen niemandem aufs Wort glauben:
- Öffnen Sie die Entwicklerwerkzeuge Ihres Browsers, wechseln Sie zum Netzwerk-Tab, laden Sie dann eine Datei und starten Sie eine kurze Wiederherstellung. Sie sehen, wie die Seite ihre eigenen Skripte herunterlädt, darunter den Worker und die WebAssembly-Prüfung, und nichts, was Ihr Archiv enthält. Die einzige Anfrage, die Daten sendet, ist ein POST an
/api/error, und auch das nur, wenn der Code der Website selbst auf einen Fehler stößt; sie enthält die Fehlermeldung und den Stacktrace, den Seitenpfad und die User-Agent-Kennung Ihres Browsers (Abschnitt 4 der Datenschutzrichtlinie nennt jedes Feld), niemals Dateidaten oder Passwörter. - Für eine zweite Prüfung lassen Sie den Netzwerk-Tab offen, während diese Suche läuft: Sie sehen keine Anfrage an eine andere Website und keinen Upload Ihres Archivs. Die Anfragen, die Sie sehen, gehen an diese Website, etwa das Skript, das jeder Worker lädt, und keine enthält Ihre Datei oder ein Passwort.
Führen Sie wie immer die Wiederherstellung nur für Archive durch, die Ihnen gehören oder die zu öffnen Sie berechtigt sind.
Kurz gefasst
- Browserbasierte Wiederherstellung liest Ihre Datei lokal mit der File API und lädt sie nie hoch.
- WebAssembly macht die langsame AES-Schlüsselableitung schnell genug, um auf Ihrem eigenen Gerät zu laufen.
- Web Worker halten die Oberfläche reaktionsfähig, und kein Kandidat geht über das Netzwerk.
- Sie können selbst überprüfen, dass Ihre Datei Ihren Rechner nie verlässt.