1. Einleitung
Passwortmanager (PMs) sind unverzichtbare Werkzeuge zur Generierung und Speicherung sicherer, zufälliger Passwörter und adressieren Schwachstellen in der Passwortauthentifizierung. Dennoch bleibt das Benutzervertrauen ein Hindernis für die Verbreitung. Dieses Papier schlägt eine formal verifizierte Referenzimplementierung für einen Zufallspasswortgenerator (RPG) unter Verwendung der EasyCrypt-Beweisumgebung vor, wobei der Schwerpunkt auf funktionaler Korrektheit und Sicherheitseigenschaften liegt.
2. Inhaltsverzeichnis
- 1. Einleitung
- 2. Inhaltsverzeichnis
- 3. Aktuelle Passwortgenerierungsalgorithmen
- 4. Formaler Verifikationsrahmen
- 5. Technische Details und mathematische Formulierung
- 6. Experimentelle Ergebnisse und Diagramme
- 7. Beispiel eines Analyseframeworks
- 8. Ursprüngliche Analyse
- 9. Zukünftige Anwendungen und Ausblick
- 10. Referenzen
3. Aktuelle Passwortgenerierungsalgorithmen
Die Autoren untersuchten 15 PMs und konzentrierten sich dabei auf drei weit verbreitete Open-Source-PMs: Google Chrome (v89.0.4364.1), Bitwarden (v1.47.1) und KeePass (v2.46). Diese wurden aufgrund ihrer Beliebtheit und des zugänglichen Quellcodes ausgewählt.
3.1 Passwortzusammensetzungsrichtlinien
PMs ermöglichen es Benutzern, Richtlinien für die Passwortzusammensetzung zu definieren, darunter Länge, Zeichenklassen (Kleinbuchstaben, Großbuchstaben, Zahlen, Sonderzeichen), minimale/maximale Vorkommen pro Satz, Ausschluss ähnlicher Zeichen und benutzerdefinierte Zeichensätze. Tabelle 1 fasst die Richtlinien für Chrome, Bitwarden und KeePass zusammen.
3.2 Zufällige Passwortgenerierung
Der Kernalgorithmus generiert zufällige Zeichen aus definierten Sätzen, bis die Passwortlänge erreicht ist, wobei die Einschränkungen für minimale/maximale Vorkommen eingehalten werden. Der Algorithmus von Chrome generiert zunächst Zeichen aus Sätzen mit Mindestvorkommen, dann aus der Vereinigung aller Sätze, die die Maxima nicht überschreiten, und wendet schließlich eine Permutation auf die Zeichenfolge an.
4. Formaler Verifikationsrahmen
4.1 EasyCrypt-Überblick
EasyCrypt ist ein Beweisassistent für kryptografische Sicherheitsbeweise, der einen spielbasierten Ansatz verwendet. Er ermöglicht die Spezifikation von Referenzimplementierungen und die formale Verifikation der funktionalen Korrektheit und von Sicherheitseigenschaften.
4.2 Sicherheitseigenschaften
Die Formalisierung umfasst Eigenschaften wie Gleichmäßigkeit der Zufälligkeit, Widerstandsfähigkeit gegen Seitenkanalangriffe und Einhaltung von Richtlinieneinschränkungen. Der spielbasierte Ansatz modelliert die Fähigkeiten von Angreifern und beweist die Ununterscheidbarkeit von der idealen Zufallsgenerierung.
5. Technische Details und mathematische Formulierung
Die Sicherheit des RPG wird mithilfe des Konzepts der rechnerischen Ununterscheidbarkeit modelliert. Sei $\mathcal{G}$ der Passwortgenerierungsalgorithmus und $\mathcal{U}$ ein gleichmäßiger Zufallsgenerator. Der Vorteil eines Angreifers $\mathcal{A}$ ist definiert als:
$$\text{Adv}_{\mathcal{G}}(\mathcal{A}) = |\Pr[\mathcal{A}^{\mathcal{G}} = 1] - \Pr[\mathcal{A}^{\mathcal{U}} = 1]|$$
Das Ziel ist zu beweisen, dass $\text{Adv}_{\mathcal{G}}(\mathcal{A})$ für alle probabilistischen polynomiellen Zeitangreifer vernachlässigbar ist. Der formale Beweis in EasyCrypt beinhaltet die Konstruktion einer Sequenz von Spielen, die sich jeweils geringfügig vom vorherigen unterscheiden, und die Begrenzung der Differenz in der Erfolgswahrscheinlichkeit des Angreifers.
6. Experimentelle Ergebnisse und Diagramme
Die formale Verifikation wurde an einer Referenzimplementierung des RPG durchgeführt. Der Beweis umfasst etwa 500 Zeilen EasyCrypt-Code und deckt die funktionale Korrektheit (das generierte Passwort erfüllt die Richtlinie) und die Sicherheit (die Ausgabe ist von gleichmäßigem Zufall nicht unterscheidbar) ab. Die Beweiszeit betrug auf einem Standard-Laptop weniger als 10 Sekunden. Ein Diagramm der spielbasierten Beweisstruktur ist unten dargestellt:
Abbildung 1: Spielbasierte Beweisstruktur: Spiel 0 (echter Algorithmus) → Spiel 1 (PRG durch Zufall ersetzen) → Spiel 2 (Zeichenauswahl durch Gleichverteilung ersetzen) → Spiel 3 (ideal). Jeder Übergang wird durch eine kryptografische Annahme oder eine Reduktion gerechtfertigt.
7. Beispiel eines Analyseframeworks
Fallstudie: Verifikation der KeePass-Passwortgenerierung
Betrachten Sie eine Richtlinie, die ein 12-stelliges Passwort mit mindestens 2 Kleinbuchstaben, 2 Großbuchstaben, 2 Ziffern und 2 Sonderzeichen erfordert. Die formale Spezifikation in EasyCrypt definiert:
- Vorbedingung: Richtlinienparameter (Länge, Min/Max pro Satz, ausgeschlossene Zeichen).
- Nachbedingung: Das generierte Passwort erfüllt alle Einschränkungen und ist über der Menge der gültigen Passwörter gleichmäßig zufällig.
- Sicherheit: Kein Angreifer kann die Ausgabe von einer wirklich zufälligen Zeichenfolge derselben Länge unterscheiden.
Der Beweis erfolgt durch Induktion über die Passwortlänge und zeigt, dass jedes Zeichen gleichmäßig aus dem entsprechenden Satz gezogen wird und die abschließende Permutation keine positionsbezogene Verzerrung gewährleistet.
8. Ursprüngliche Analyse
Kernaussage: Dieses Papier adressiert eine kritische Lücke im Vertrauen in Passwortmanager, indem es formale Verifikation auf Passwortgenerierungsalgorithmen anwendet. Während viele PMs Sicherheit behaupten, bieten nur wenige mathematische Garantien. Die Verwendung von EasyCrypt ist ein bedeutender Schritt in Richtung beweisbar sicherer Passwortgenerierung.
Logischer Ablauf: Die Autoren untersuchen zunächst bestehende Algorithmen und identifizieren gemeinsame Muster und potenzielle Schwachstellen. Anschließend schlagen sie eine Referenzimplementierung vor und verifizieren deren Korrektheit und Sicherheit formal mittels spielbasierter Beweise. Der Ablauf ist logisch: Problemidentifikation → Lösungsentwurf → formale Verifikation → Implikationen.
Stärken und Schwächen: Die Stärke liegt im rigorosen formalen Ansatz, der Garantien bietet, die über typische Tests hinausgehen. Das Papier konzentriert sich jedoch auf eine einzelne Referenzimplementierung und nicht auf die Verifikation des tatsächlichen Codes von Chrome, Bitwarden oder KeePass. Dies schränkt die praktische Auswirkung ein. Darüber hinaus setzt der Beweis einen vertrauenswürdigen Zufallszahlengenerator voraus, der in allen Einsatzszenarien möglicherweise nicht gegeben ist. Wie von Bellare und Rogaway (1993) in ihrer grundlegenden Arbeit über Random Oracles festgestellt, bleibt die Kluft zwischen theoretischen Modellen und praktischen Implementierungen eine Herausforderung.
Handlungsorientierte Erkenntnisse: Für PM-Entwickler kann die Einführung formaler Verifikationswerkzeuge wie EasyCrypt das Vertrauen stärken und Schwachstellen reduzieren. Für Forscher wäre es wertvoll, diese Arbeit auf die Verifikation des tatsächlichen PM-Quellcodes auszudehnen (z. B. durch Dekompilierung oder symbolische Ausführung). Benutzer sollten Transparenz und formale Garantien von PM-Anbietern fordern. Der Ansatz steht im Einklang mit dem breiteren Trend formaler Methoden in der Sicherheit, wie er vom National Institute of Standards and Technology (NIST) in seinen Richtlinien zur Validierung kryptografischer Module befürwortet wird.
9. Zukünftige Anwendungen und Ausblick
Der formale Verifikationsrahmen kann auf andere PM-Funktionen wie Passwortspeicherung und Autofill erweitert werden. Die Integration in Continuous-Integration-Pipelines könnte eine automatische Verifikation von Passwortgenerierungscode ermöglichen. Zukünftige Arbeiten könnten auch die Seitenkanalresistenz und die quantensichere Zufallsgenerierung untersuchen. Da Passwortmanager allgegenwärtig werden, werden formale Garantien für den Aufbau von Benutzervertrauen und die Erfüllung gesetzlicher Anforderungen (z. B. DSGVO, eIDAS) unerlässlich sein.
10. Referenzen
- Bellare, M., & Rogaway, P. (1993). Random oracles are practical: A paradigm for designing efficient protocols. Proceedings of the 1st ACM Conference on Computer and Communications Security, 62-73.
- Barthe, G., et al. (2011). EasyCrypt: A tutorial. Foundations of Security Analysis and Design VII, 146-204.
- NIST. (2020). Cryptographic Module Validation Program (CMVP). National Institute of Standards and Technology.
- Shoup, V. (2004). Sequences of games: A tool for taming complexity in security proofs. IACR Cryptology ePrint Archive, 2004/332.
- Grilo, M., Ferreira, J. F., & Almeida, J. B. (2021). Towards Formal Verification of Password Generation Algorithms used in Password Managers. arXiv:2106.03626v2.