Ein Passwortmanager verlangt Vertrauen. Diese Seite sagt, wie EasyKeys verschlüsselt, und zeigt einen Weg, es ohne unseren Code nachzuprüfen.
EasyKeys erfindet keine eigene Verschlüsselung. Es benutzt zwei öffentlich genormte Verfahren:
Beide Bausteine werden bei jedem Bau der App gegen die veröffentlichten Prüfwerte ihrer Normen gerechnet (RFC 9106 für Argon2id, die GCM-Spezifikation für AES-256-GCM).
Der Schlüssel entsteht ausschließlich aus deinem Master-Passwort. Das Passwort wird nirgends gespeichert und nirgends hingeschickt; die App hat keine Internet-Berechtigung. Es gibt keinen zweiten Schlüssel und keinen Weg zurück: Ohne das Master-Passwort öffnet niemand den Tresor, auch wir nicht.
Schaltest du den Fingerabdruck ein, legt die App eine Kopie des Schlüssels in ein Schließfach, das Android nur nach deinem Fingerabdruck öffnet. Diese Kopie ist entbehrlich: Fügt jemand am Gerät einen weiteren Finger hinzu, wird sie wertlos, und es gilt wieder das Master-Passwort.
Du musst uns das nicht glauben. Das Programm tresor_nachbau.py (rund 80 Zeilen Python) öffnet eine Tresordatei ohne ein Stück Code aus der App. Es kennt nur die Formatbeschreibung unten und zwei fremde, weit verbreitete Bibliotheken: die Referenzfassung von Argon2 und OpenSSL. Öffnet es deine Datei, dann ist sie genau so verschlüsselt, wie hier steht.
pip install argon2-cffi cryptographypython3 tresor_nachbau.py tresor-….pwm und gib dein Master-Passwort ein.Das Programm nennt die Verfahren aus dem Kopf der Datei und die Zahl der Einträge; mit
--json gibt es den ganzen Inhalt im Klartext aus. Mit einem falschen Passwort oder
einer veränderten Datei bricht es ab.
Mach das auf einem Computer, dem du vertraust, und lösch die Ausgabe danach: Sie enthält deine Passwörter.
Die Datei beginnt mit 48 Byte, die nicht verschlüsselt, aber gegen Veränderung geschützt sind. Alle Zahlen stehen mit dem höchstwertigen Byte zuerst.
| Ab Byte | Länge | Inhalt |
|---|---|---|
| 0 | 8 | Kennung PWMGRVLT |
| 8 | 2 | Formatversion (1) |
| 10 | 1 | Schlüsselableitung (1 = Argon2id, Version 1.3) |
| 11 | 4 | Argon2: Speicher in KiB |
| 15 | 4 | Argon2: Durchgänge |
| 19 | 1 | Argon2: Spuren |
| 20 | 16 | Salz |
| 36 | 12 | Nonce für AES-GCM, bei jedem Speichern neu |
| 48 | Rest | AES-256-GCM über den Inhalt (JSON, UTF-8), am Ende 16 Byte Prüfwert |
Das Master-Passwort geht als UTF-8 in Argon2id, heraus kommen 32 Byte Schlüssel. Die ersten 48 Byte fließen als zusätzliche Daten in GCM ein.