Sprache auswählen

Sicherer Passwortgenerator basierend auf einem Pseudozufallszahlengenerator (PRNG)

Ein Forschungsbericht, der einen sicheren Passwortgenerator unter Verwendung von HMAC-, CMAC- oder KMAC-basierten PRNGs vorschlägt, validiert durch NIST SP 800-90B Entropie- und IID-Tests.
computationalcoin.com | PDF Size: 0.5 MB
Bewertung: 4.5/5
Ihre Bewertung
Sie haben dieses Dokument bereits bewertet
PDF-Dokumentendeckel - Sicherer Passwortgenerator basierend auf einem Pseudozufallszahlengenerator (PRNG)

Inhaltsverzeichnis

1. Einleitung

Diese Forschung befasst sich mit dem anhaltenden Problem von Passwortlecks und dem daraus resultierenden Risiko der Offenlegung persönlicher Daten. Während die Sicherheit von Websites ein Faktor ist, ist die inhärente Stärke des Passworts selbst von größter Bedeutung. Häufige Schwachstellen sind Passwörter, die auf Schlüsselwörtern, gängigen Phrasen, Benutzerinformationen und der Wiederverwendung von Passwörtern basieren. Der Aufstieg von KI und großen Sprachmodellen befähigt Angreifer weiterhin, Passwörter effektiver zu erraten.

Als Antwort darauf schlägt dieses Papier einen sicheren Passwortgenerator vor, der auf einem sicheren Pseudozufallszahlengenerator (PRNG) aufbaut. Der Kern-PRNG wird unter Verwendung kryptografischer Primitiven wie HMAC, CMAC oder KMAC konstruiert, um hochwertige Zufallszahlen zu erzeugen, die dann zur Erstellung von Passwörtern verwendet werden. Das System erlaubt optional eine Benutzereingabe (To-Be-Hashed Message, TBHM) als Ausgangswert für den Prozess. Die Hauptbeiträge sind:

2. Literaturübersicht

2.1. Pseudozufallszahlengenerator basierend auf linearem Kongruenzgenerator

Gängige Programmiersprachen (C, Java) verwenden lineare Kongruenzgeneratoren (LCG). Gegeben ein Seed $k$ wird die Sequenz erzeugt als: $f_0(k) \equiv a \oplus k \ (\text{mod} \ m)$ und $f_i(k) \equiv a \times f_{i-1}(k) + c \ (\text{mod} \ m)$. Diese Methode ist unsicher, da der Zustand umgekehrt werden kann: $f_{i-1}(k) \equiv (f_i(k) - c) \times a^{-1} \ (\text{mod} \ m)$, was den Seed und die gesamte Sequenz offenlegt.

2.2. Sicherer Pseudozufallszahlengenerator

Sichere PRNGs basieren auf kryptografischen Primitiven, wie in NIST SP 800-108 Rev. 1 dargelegt.

2.2.1. Basierend auf HMAC

Die Sicherheit beruht auf der Einweg-Eigenschaft von Hash-Funktionen (z.B. SHA2, SHA3). Für einen Schlüssel $k$ und eine Nachricht $M$ wird der HMAC berechnet als: $r_{hmac}(k, M) = h((k \oplus opad) \ || \ h((k \oplus ipad) \ || \ M))$. Um einen Zufallsbitstrom der Länge $L$ zu erzeugen, wird ein Zählermodus verwendet: $M_i = i \ || \ \text{KDF} \ || \ 0x00 \ || \ M \ || \ L$, der Ausgaben $r_{hmac,i}$ erzeugt.

2.2.2. Basierend auf CMAC

Die Sicherheit beruht auf dem AES-Blockchiffre im CBC-Modus. Die Nachricht $M$ wird in Blöcke $M'_1, M'_2, ...$ aufgeteilt. Der Prozess iteriert: $c_{i+1} = AES(k, c_i \oplus M'_{i+1})$ mit $c_0 = Pad0(0)$. Die endgültige Ausgabe $r_{cmac}$ wird aus dem letzten Chiffreblock nach spezifischem Padding (Pad1) abgeleitet.

2.2.3. Basierend auf KMAC

Verwendet die KECCAK-Schwammfunktion (die Grundlage von SHA-3), die eine flexible und robuste MAC-Funktion bietet, die sich für die Erzeugung deterministischer Zufallsbits eignet.

2.3. Methoden zur Validierung von Zufälligkeit

Das Papier übernimmt das NIST SP 800-90B Framework, das der De-facto-Standard für die Validierung von Entropiequellen ist. Es umfasst zwei kritische Validierungssuiten:

3. Vorgeschlagener sicherer Passwortgenerator

Die vorgeschlagene Systemarchitektur ist einfach, aber leistungsstark:

  1. Eingabe/Seed: Akzeptiert eine optionale, vom Benutzer bereitgestellte TBHM. Falls vorhanden, wird sie verarbeitet; andernfalls wird ein systemgenerierter sicherer Seed verwendet.
  2. Sicherer PRNG-Kern: Die TBHM/der Seed wird in eine der drei kryptografischen PRNG-Konstruktionen (HMAC-basiert, CMAC-basiert, KMAC-basiert) eingespeist, um eine kryptografisch starke pseudozufällige Bitsequenz zu erzeugen.
  3. Passwortkonstruktion: Die Zufallsbits werden auf einen benutzer- oder systemdefinierten Zeichensatz (z.B. alphanumerisch + Sonderzeichen) abgebildet, um ein Passwort der gewünschten Länge zu erzeugen.

Sicherheitsanalyse: Das Papier argumentiert, dass die Sicherheit des generierten Passworts direkt von der Entropie der PRNG-Ausgabe und der Größe des Zeichensatzes abhängt. Es führt eine vergleichende Analyse durch und zeigt, dass ein 16-stelliges Passwort aus einem 94-Zeichen-Satz, das mit dieser Methode erzeugt wird, eine Brute-Force-Resistenz bieten kann, die mit der von AES-128- oder AES-256-Schlüsseln vergleichbar ist oder diese übertrifft, vorausgesetzt, die PRNG-Ausgabe ist wirklich zufällig.

4. Experimentelle Ergebnisse und Analyse

Die experimentelle Validierung ist eine zentrale Stärke des Papiers.

Diagrammbeschreibung (impliziert): Ein Balkendiagramm würde effektiv die Min-Entropie-Schätzungen (in Bits pro Bit) für die drei PRNG-Methoden im Vergleich zum Idealwert von 1,0 darstellen. Alle Balken wären sehr nahe an 1,0. Ein zweites Diagramm könnte die p-Werte aus wichtigen IID-Tests (z.B. Chi-Quadrat, Kolmogorov-Smirnov) zeigen, wobei alle Werte deutlich über dem typischen Signifikanzniveau (z.B. 0,01) liegen, was ein Bestehen anzeigt.

5. Schlussfolgerung und zukünftige Arbeiten

Die Forschung demonstriert erfolgreich ein sicheres Passwortgenerierungs-Framework basierend auf kryptografischen PRNGs. Die vorgeschlagenen Methoden erzeugen Passwörter mit ausreichender Zufälligkeit, wie durch NIST-Standards rigoros validiert. Zukünftige Arbeitsrichtungen umfassen:

6. Originalanalyse & Experteneinschätzung

Kerneinsicht: Dieses Papier erfindet keine neue kryptografische Primitive; es geht um die disziplinierte Anwendung und Validierung bestehender, geprüfter Primitive (HMAC, CMAC, KMAC), um das banale aber kritische Problem der Passwortgenerierung zu lösen. Sein wirklicher Wert liegt in der Überbrückung der Lücke zwischen theoretischer Kryptografie und praktischer Sicherheitshygiene, indem es rigoros mit der Goldstandard-NIST-Testsuite beweist, dass seine Ausgabe für den Zweck geeignet ist.

Logischer Ablauf: Das Argument ist schlüssig: 1) Standard-LCGs sind kryptografisch gebrochen. 2) Sichere PRNGs, die aus kryptografischen MACs aufgebaut sind, sind nachweislich robust. 3) Daher erben Passwörter, die von solchen PRNGs abgeleitet werden, diese Robustheit. 4) Diese Behauptung wird nicht nur durch Theorie, sondern durch das Bestehen strenger empirischer Tests (NIST SP 800-90B) validiert. Diese End-to-End-Validierung fehlt vielen "sicheren Passwortgenerator"-Tools.

Stärken & Schwächen:
Stärken: Die methodische Strenge ist lobenswert. Die Verwendung von NIST SP 800-90B zur Validierung erhöht sofort seine Glaubwürdigkeit, ähnlich wie kryptografische Algorithmen durch das CAVP (Cryptographic Algorithm Validation Program) validiert werden. Der Vergleich mit der AES-Schlüsselstärke ist eine praktische, nachvollziehbare Metrik für Sicherheitsteams.
Schwächen: Das Papier operiert in einer kontrollierten, idealisierten Umgebung. Es geht davon aus, dass der initiale Seed/die TBHM ausreichend Entropie hat – eine kritische und oft schwache Stelle in realen Systemen. Die "optionale" Benutzereingabe ist ein zweischneidiges Schwert; eine schwache, vorhersagbare Benutzerphrase (z.B. "meinpasswort") könnte die gesamte kryptografische Konstruktion untergraben, ein Risiko, das nicht vollständig quantifiziert wird. Darüber hinaus, wie im Review "Post-Quantum Cryptography: A Ten-Year Journey" von NIST aus dem Jahr 2023 festgestellt, bewegt sich das Feld hin zu quantenresistenten Algorithmen. Die Konstruktionen des Papiers, obwohl sicher gegen klassische Computer, basieren auf SHA2/AES, deren langfristige Quantenresistenz ungewiss ist.

Umsetzbare Erkenntnisse: Für Sicherheitsarchitekten bietet dieses Papier einen Bauplan. Entwickeln Sie keinen eigenen PRNG. Verwenden Sie etablierte kryptografische Konstrukte als Bausteine. Noch wichtiger: validieren, validieren, validieren. Integrieren Sie kontinuierliche Entropievalidierung (wie die NIST-Tests) in Ihre kritischen Zufallszahlengenerierungssysteme, eine Praxis, die von Organisationen wie den CCC-Bemühungen (Common Criteria Certification) der Linux Foundation betont wird. Für die Produktentwicklung ist die unmittelbare Erkenntnis, jegliche LCG-basierte Passwortgenerierung in Ihren Systemen durch einen KMAC- oder HMAC-SHA256-basierten Generator zu ersetzen, der einen sicher bezogenen Seed verwendet. Der zukunftssichere Schritt ist, mit SHA-3/KECCAK-basierten Designs (wie KMAC) zu prototypisieren und die Entwicklung der NIST-Post-Quantum-Kryptografiestandards für eine eventuelle Integration zu beobachten.

7. Technische Details & Mathematische Formulierung

Die Kernmathematischen Operationen sind in der Literaturübersicht (Abschnitt 2) definiert. Wichtige Formeln umfassen:

Die Passwortgenerierung bildet eine Zufallszahl $R$ (aus der PRNG-Ausgabe) auf einen Zeichenindex ab: $\text{index} = R \ \text{mod} \ |S|$, wobei $|S|$ die Größe des Zeichensatzes ist.

8. Analyseframework & Fallbeispiel

Fallbeispiel: Bewertung des Passwortgenerators eines Altsystems
Szenario: Eine Legacy-Webanwendung verwendet einen modifizierten LCG zur Generierung temporärer Benutzerpasswörter. Ein Sicherheitsaudit ist erforderlich.
Framework-Anwendung:

  1. PRNG-Typ identifizieren: Quellcode inspizieren. Finden: seed = (a * seed + c) % m; Bestätigen, dass es sich um eine LCG-Variante handelt.
  2. Kryptografische Sicherheit bewerten: LCG ist deterministisch und umkehrbar. Ein Angreifer, der einige aufeinanderfolgende Passwörter erhält, könnte den Seed berechnen und alle zukünftigen Passwörter vorhersagen, was gegen die NIST SP 800-63B Richtlinien zur Authentifikator-Zufälligkeit verstößt.
  3. Sanierung gemäß der Methode des Papiers vorschlagen:
    • Seed-Quelle: Systemzeit-Seed durch einen CSPRNG ersetzen (z.B. /dev/urandom unter Linux, CryptGenRandom unter Windows).
    • Kern-Generator: Einen HMAC-SHA256-basierten PRNG gemäß dem Design des Papiers implementieren.
    • Validierung: Vor der Bereitstellung eine große Stichprobe (1.000.000 Bits) vom neuen Generator erzeugen und den NIST STS (Statistical Test Suite) oder die Entropieschätzer aus SP 800-90B ausführen, um die Zufälligkeit zu verifizieren.
Dieses Framework verlagert die Bewertung von "sieht es zufällig aus?" zu "besteht es standardisierte kryptografische Validierung?".

9. Zukünftige Anwendungen & Entwicklungsrichtungen

Die Prinzipien erstrecken sich über Benutzerpasswörter hinaus:

10. Referenzen

  1. M. Bishop, “Computer Security: Art and Science”, Addison-Wesley, 2019.
  2. NIST, “Special Publication 800-63B: Digital Identity Guidelines”, 2020.
  3. NIST, “Special Publication 800-90B: Recommendation for the Entropy Sources Used for Random Bit Generation”, 2018.
  4. NIST, “Special Publication 800-108 Rev. 1: Recommendation for Key Derivation Using Pseudorandom Functions”, 2022.
  5. NIST, “FIPS 202: SHA-3 Standard: Permutation-Based Hash and Extendable-Output Functions”, 2015.
  6. J. Kelsey, B. Schneier, D. Wagner, “Secure Applications of Low-Entropy Keys”, Information Security Workshop, 1997.
  7. M. Dworkin, “Recommendation for Block Cipher Modes of Operation: The CMAC Mode for Authentication”, NIST SP 800-38B, 2005.
  8. NIST, “Status Report on the Third Round of the NIST Post-Quantum Cryptography Standardization Process”, 2022. [Online]. Verfügbar: https://csrc.nist.gov/projects/post-quantum-cryptography
  9. Linux Foundation, “Common Criteria Certification and Open Source”, 2023. [Online]. Verfügbar: https://www.linuxfoundation.org/