Sprache auswählen

Auf dem Weg zur formalen Verifikation von Passwortgenerierungsalgorithmen in Passwortmanagern

Ein Ansatz zur formalen Verifikation mit EasyCrypt, um die funktionale Korrektheit und Sicherheit von Zufallspasswortgeneratoren in Chrome, Bitwarden und KeePass zu beweisen.
strongpassword.org | PDF Size: 0.1 MB
Bewertung: 4.5/5
Ihre Bewertung
Sie haben dieses Dokument bereits bewertet
PDF-Dokumentendeckel - Auf dem Weg zur formalen Verifikation von Passwortgenerierungsalgorithmen in Passwortmanagern

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

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:

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