Sprache auswählen

Ein sicherer Passwortgenerator basierend auf einem Pseudozufallszahlengenerator (PRNG)

Dieses Paper schlägt einen sicheren Passwortgenerator vor, der auf HMAC-, CMAC- oder KMAC-basierten PRNGs basiert und über NIST SP 800-90B Entropie- und IID-Tests validiert wird.
computationalcoin.com | PDF Size: 0.5 MB
Bewertung: 4.5/5
Ihre Bewertung
Sie haben dieses Dokument bereits bewertet
PDF-Dokumentendeckel - Ein sicherer Passwortgenerator basierend auf einem Pseudozufallszahlengenerator (PRNG)

Inhaltsverzeichnis

1. Einleitung

In den letzten Jahren gab es kontinuierlich Berichte über das Ausspähen von Website-Konten und textbasierten Passwörtern, was die kritische Bedeutung von Informations- und Passwortsicherheit unterstreicht. Neben Schwachstellen auf Websites ist die Sicherheit des Passworts selbst von größter Bedeutung. Zu den gängigen unsicheren Passwortpraktiken gehören schlüsselwortbasierte Passwörter, Passwörter basierend auf gängigen Phrasen, benutzerinformationsbasierte Passwörter und die Wiederverwendung von Passwörtern. Die rasante Entwicklung von KI und großen Sprachmodellen (LLMs) befähigt Angreifer weiterhin, Passwörter effektiver zu erraten.

Während Plattformen Abwehrmaßnahmen wie Einmalpasswörter (OTP), Multi-Faktor-Authentifizierung (MFA) und verschlüsselte Passwortspeicherung einsetzen, bleibt die Verbesserung der inhärenten Sicherheit von Passwörtern entscheidend. Diese Forschung schlägt einen sicheren Passwortgenerator vor, der auf einem sicheren Pseudozufallszahlengenerator (PRNG) basiert. Der PRNG wird unter Verwendung von Hash-basierten Message Authentication Codes (HMAC), Cipher-basierten Message Authentication Codes (CMAC) oder KECCAK Message Authentication Codes (KMAC) konstruiert, um kryptografisch sichere Zufallszahlen zu erzeugen, die dann zur Erzeugung von Passwörtern verwendet werden.

Die Hauptbeiträge sind:

2. Literaturübersicht

2.1. Pseudozufallszahlengenerator basierend auf linearen Kongruenzgeneratoren

Viele Programmiersprachen (z.B. C, Java) implementieren PRNGs basierend auf linearen Kongruenzgeneratoren (LCG). Gegeben ein Seed $k$, wird die Sequenz wie folgt erzeugt:

$f_0(k) \equiv a \oplus k \ (\text{mod} \ m)$

$f_i(k) \equiv a \times f_{i-1}(k) + c \ (\text{mod} \ m)$ für $i \ge 1$

LCGs sind jedoch unsicher, da der nächste Zustand linear aus dem vorherigen abgeleitet wird ($f_{i-1}(k) \equiv (f_i(k) - c) \times a^{-1} \ (\text{mod} \ m)$), was es einem Angreifer ermöglicht, zum Seed zurückzuverfolgen.

2.2. Sicherer Pseudozufallszahlengenerator

2.2.1. Basierend auf Hash-basierten Message Authentication Codes (HMAC)

Die Sicherheit von HMAC basiert auf der Einweg-Eigenschaft kryptografischer Hash-Funktionen (z.B. SHA-2, SHA-3). Für einen Schlüssel $k$ und eine Nachricht $M$ wird der HMAC wie folgt berechnet:

$r_{hmac}(k, M) = h((k \oplus opad) \ || \ h((k \oplus ipad) \ || \ M))$

wobei $ipad$ und $opad$ feste Padding-Konstanten sind und $h$ die Hash-Funktion ist. Um einen Zufallsbitstrom der Länge $L$ zu erzeugen, wird ein Zählermodus verwendet, der die Nachricht für jeden Ausgabeblock modifiziert: $M_i = i \ || \ \text{KDF} \ || \ 0x00 \ || \ M \ || \ L$, was $r_{hmac,i}(k, M_i)$ erzeugt.

2.2.2. Basierend auf Cipher-basierten Message Authentication Codes (CMAC)

Die Sicherheit von CMAC basiert auf dem Advanced Encryption Standard (AES). Für einen Schlüssel $k$ und eine in Blöcke $M'_i$ der Länge $l_a$ aufgeteilte Nachricht $M$ arbeitet es im Cipher Block Chaining (CBC)-Modus:

$c_{i+1} = AES(k, c_i \oplus M'_{i+1})$, mit $c_0 = Pad0(0)$.

Die endgültige Ausgabe $r_{cmac}(k, Split(M))$ wird aus dem letzten Chiffretextblock nach spezifischem Padding (Pad1) abgeleitet.

2.2.3. Basierend auf KECCAK Message Authentication Codes (KMAC)

KMAC basiert auf der SHA-3 (KECCAK) Sponge-Konstruktion und bietet Flexibilität und Sicherheit. Es kann ähnlich wie HMAC in einem Zählermodus verwendet werden, um einen deterministischen, unvorhersehbaren Bitstrom für PRNG-Zwecke zu erzeugen, wie in NIST SP 800-108 Rev. 1 beschrieben.

2.3. Methoden zur Validierung von Zufälligkeit

Das Papier übernimmt das NIST SP 800-90B Framework zur Validierung von Zufälligkeit und konzentriert sich auf zwei Schlüsselaspekte:

3. Vorgeschlagener sicherer Passwortgenerator basierend auf sicheren PRNGs

Die vorgeschlagene Systemarchitektur umfasst:

  1. Eingabe: Eine optionale, vom Benutzer bereitgestellte "To-Be-Hashed Message" (TBHM) und Parameter (gewünschte Passwortlänge, Zeichensatz).
  2. Sicherer PRNG-Kern: Ein PRNG, der unter Verwendung einer der drei MAC-Funktionen (HMAC, CMAC oder KMAC) im Zählermodus gemäß NIST SP 800-108 aufgebaut ist. Dieser Kern nimmt die TBHM (und einen internen Schlüssel/Seed), um eine kryptografisch sichere pseudozufällige Bitsequenz zu erzeugen.
  3. Passwortgenerierung: Die Zufallsbits werden auf den benutzerspezifischen Zeichensatz (z.B. alphanumerisch + Sonderzeichen) abgebildet, um ein Passwort der gewünschten Länge zu erstellen.

Die Sicherheitsanalyse vergleicht den effektiven Schlüsselraum der generierten Passwörter (basierend auf der Größe des Zeichensatzes $C$ und der Länge $L$, was $C^L$ Möglichkeiten ergibt) mit der Brute-Force-Resistenz von AES-128 ($2^{128}$) und AES-256 ($2^{256}$). Beispielsweise bietet ein 16-stelliges Passwort aus einem 94-stelligen Zeichensatz ~$94^{16} \approx 2^{105}$ Möglichkeiten, was schwächer ist als AES-128, aber für viele Zwecke immer noch robust ist.

4. Experimentelle Umgebung und Ergebnisse

4.1. Experimenteller Aufbau

Es wurden Experimente durchgeführt, um große Sequenzen von Zufallszahlen mit den vorgeschlagenen HMAC-, CMAC- und KMAC-basierten PRNGs zu erzeugen. Diese Sequenzen wurden dann dem NIST SP 800-90B Testsuite unterzogen.

4.2. Ergebnisse der Zufälligkeitsvalidierung

Hauptergebnis: Die experimentellen Ergebnisse zeigten, dass die von allen drei vorgeschlagenen PRNG-Methoden (HMAC/SHA-256, CMAC/AES-256, KMAC) erzeugten Zufallszahlen sowohl die Entropievalidierung als auch die IID-Validierungstests gemäß NIST SP 800-90B erfolgreich bestanden.

Implikation: Dies bestätigt, dass die Ausgabesequenzen eine hohe Entropie aufweisen und keine nachweisbaren statistischen Abhängigkeiten oder Verzerrungen zeigen, was die Kernanforderung für eine sichere Zufallsquelle bei der Passwortgenerierung erfüllt.

4.3. Analyse der Recheneffizienz

Obwohl nicht der primäre Fokus, deutet das Papier auf einen Kompromiss hin. HMAC/SHA-256 und KMAC sind in der Regel in Software sehr effizient. CMAC/AES kann auf bestimmten Plattformen Vorteile durch Hardwarebeschleunigung haben. Die Wahl kann basierend auf den Leistungsbeschränkungen der Einsatzumgebung angepasst werden.

5. Schlussfolgerung und zukünftige Arbeiten

Diese Forschung hat erfolgreich ein Framework für einen sicheren Passwortgenerator basierend auf kryptografisch starken PRNGs (HMAC, CMAC, KMAC) entworfen und validiert. Die generierten Passwörter leiten ihre Sicherheit aus den bewährten Eigenschaften dieser MAC-Funktionen und der validierten hohen Zufälligkeit des zugrundeliegenden Bitstroms ab.

Zukünftige Richtungen umfassen:

6. Originalanalyse & Experteneinschätzung

Kerneinsicht: Chens Arbeit ist eine pragmatische, standardkonforme Ingenieurslösung für ein grundlegendes Sicherheitsproblem: schwache Passwortentropie. Sie identifiziert richtig, dass die Ursache vieler Passwortlecks nicht nur Speicherschwachstellen, sondern vorhersehbare Generierung ist. Indem die Lösung in NIST-genehmigten Konstrukten (HMAC, CMAC, KMAC) und Validierungsframeworks (SP 800-90B) verankert wird, vermeidet die Forschung kryptografische Neuheit um ihrer selbst willen und liefert stattdessen eine nachweislich solide Methode. Dieser Ansatz spiegelt die Philosophie hinter etablierten Systemen wie der /dev/urandom-Schnittstelle in Linux wider, die Entropie aus Systemereignissen aggregiert, aber hier liegt der Fokus auf einem deterministischen, seedbaren und benutzerbeeinflussbaren Prozess, der für reproduzierbare Passwortgenerierung geeignet ist.

Logischer Ablauf: Das Argument ist methodisch: 1) Das Problem etablieren (schwache, erratbare Passwörter). 2) Häufige, aber fehlerhafte Lösungen (LCG-basierte RNGs) verwerfen. 3) Bausteine mit bewährter Sicherheit (kryptografische MACs) vorschlagen. 4) Sie gemäß bestehender Standards (NIST SP 800-108 Zählermodus) zusammenfügen. 5) Die Ausgabe anhand rigoroser Benchmarks (NIST SP 800-90B) validieren. Dieser Ablauf ist robust und spiegelt Best Practices in der angewandten Kryptografieforschung wider, ähnlich der strukturierten Evaluation in wegweisenden Arbeiten wie dem CycleGAN-Paper, das die Bildübersetzungsqualität über mehrere Domänen und Metriken hinweg systematisch validierte.

Stärken & Schwächen: Die primäre Stärke ist ihre Zuverlässigkeit. Die Verwendung erprobter kryptografischer Primitiven und NIST-Leitlinien minimiert das Risiko. Die optionale Benutzereingabe (TBHM) ist ein cleveres Feature, das personalisierte, dennoch sichere Seeds ermöglicht. Eine signifikante Schwäche ist jedoch das Fehlen einer direkten, vergleichenden Sicherheitsanalyse gegenüber modernsten Passwortgeneratoren, wie z.B. solchen, die Argon2 oder bcrypt für Key Stretching in einem ähnlichen Kontext verwenden. Der Vergleich mit der AES-Brute-Force-Stärke ist nützlich, aber vereinfacht. Der reale Angriffsvektor ist oft das Offline-Knacken gehashter Passwörter; das Papier könnte seine Argumentation stärken, indem es die Resistenz gegen Tools wie Hashcat mit optimierten Regelsätzen modelliert. Darüber hinaus sind die NIST-Tests zwar autoritativ, aber nicht erschöpfend für alle kryptografischen Eigenschaften; eine Diskussion der Resistenz gegen Seitenkanalangriffe auf die PRNG-Implementierung wäre wertvoll.

Umsetzbare Erkenntnisse: Für Sicherheitsarchitekten bietet dieses Papier eine gebrauchsfertige Blaupause. Empfehlung 1: Implementieren Sie die KMAC-basierte Variante. Als SHA-3-Ableitung ist sie darauf ausgelegt, resistent gegen Längenerweiterungsangriffe zu sein, die SHA-2-basierte HMACs in bestimmten Szenarien theoretisch betreffen, und stellt eine zukunftssicherere Wahl dar. Empfehlung 2: Integrieren Sie diesen Generator als Kern-Engine für Unternehmens-Passworttresore oder SSO-Systeme, wo eine richtlinienbasierte Passworterstellung erforderlich ist. Seine deterministische Natur (gleiche TBHM + Parameter = gleiches Passwort) kann ein Feature für Wiederherstellungsszenarien sein. Empfehlung 3: Ergänzen Sie diese technische Lösung durch Benutzerschulung. Der Generator kann eine 20-stellige Zufallszeichenfolge erzeugen, aber wenn der Benutzer einen kurzen, einprägsamen TBHM und eine 8-stellige Länge wählt, bricht die Sicherheit ein. Die Oberfläche muss sinnvolle Standardeinstellungen (z.B. mindestens 12 Zeichen, voller Zeichensatz) erzwingen und die Entropiestärke visuell vermitteln, ähnlich wie Passwortstärke-Meter, die durch Forschung von Organisationen wie der NCC Group informiert werden.

7. Technische Details & Mathematische Formulierungen

Die Kern-Sicherheit basiert auf der Pseudo-Random Function (PRF)-Eigenschaft der MACs. Der PRNG im Zählermodus kann abstrahiert werden als:

$R_i = PRF(K, \text{Zähler} \ || \ \text{Label} \ || \ 0x00 \ || \ \text{Eingabe} \ || \ L)$

wobei $PRF$ $HMAC$, $CMAC$ oder $KMAC$ ist, $K$ ein geheimer Schlüssel ist und $R_i$ die Ausgabeblöcke sind, die zum endgültigen Bitstrom verkettet werden.

Passwortabbildung: Gegeben ein vom Bitstrom abgeleiteter Zufallswert $v$ und ein Zeichensatz der Größe $C$, wird der Zeichenindex wie folgt ausgewählt: $index = v \mod C$. Dies wird $L$ Mal wiederholt.

8. Analyseframework & Konzeptionelles Beispiel

Szenario: Ein Webdienst muss ein hochsicheres, zufälliges Initialpasswort für neue Benutzer generieren.

Framework-Anwendung:

  1. Parameterauswahl: Der Dienst wählt KMAC256 als PRF, einen systemgenerierten kryptografischen Schlüssel $K_{sys}$, der sicher gespeichert wird, und eine TBHM, die aus der eindeutigen, unveränderlichen UserID des Benutzers und einem Zeitstempel besteht.
  2. Prozess:
    • Eingabe: TBHM = "USER12345@2023-10-27T10:30:00Z", Länge $L$ = 16, Zeichensatz = 94 druckbare ASCII-Zeichen.
    • Der PRNG-Kern verarbeitet dies mit $K_{sys}$ im Zählermodus, um 128 Zufallsbits zu erzeugen (16 Zeichen * log2(94) ≈ 105 Bits, daher bieten 128 Bits ausreichend Entropie).
    • Bits werden in eine Zeichenkette wie s9*!Lq9@Pz%2m#X& umgewandelt.
  3. Sicherheitseigenschaften:
    • Unvorhersehbarkeit: Ohne $K_{sys}$ ist die Ausgabe selbst bei bekannter TBHM unvorhersehbar.
    • Determinismus: Derselbe Benutzer zu genau diesem Zeitpunkt würde dasselbe Passwort erhalten, was das Debuggen unterstützt.
    • Hohe Entropie: Das Passwort hat eine Entropie von ~105 Bits, was Brute-Force unpraktikabel macht.

9. Zukünftige Anwendungen & Entwicklungsrichtungen

10. Referenzen

  1. M. Bellare, R. Canetti, und H. Krawczyk, "Keying Hash Functions for Message Authentication," CRYPTO 1996.
  2. NIST, "Recommendation for Block Cipher Modes of Operation: The CMAC Mode for Authentication," SP 800-38B.
  3. NIST, "SHA-3 Standard: Permutation-Based Hash and Extendable-Output Functions," FIPS PUB 202.
  4. NIST, "Recommendation for the Entropy Sources Used for Random Bit Generation," SP 800-90B.
  5. NIST, "Recommendation for Key Derivation Using Pseudorandom Functions," SP 800-108 Rev. 1.
  6. J. Kelsey, B. Schneier, und N. Ferguson, "Yarrow-160: Notes on the Design and Analysis of the Yarrow Cryptographic Pseudorandom Number Generator," SAC 1999.
  7. J. Zhu, T. Park, P. Isola, A.A. Efros, "Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks," ICCV 2017. (Zitiert als Beispiel für rigorose methodische Evaluation).
  8. NCC Group, "Password Storage Cheat Sheet," OWASP Foundation. (Zitiert als Quelle für praktische Passwortrichtlinien-Leitfäden).