Einleitung: Warum Passwörter immer noch wichtig sind
Seit den frühen Tagen der Time-Sharing-Computersysteme in den 1960er Jahren sind Passwörter die primären Wächter zwischen Benutzern und ihren Daten. Fernando Corbató, der MIT-Forscher, der das Compatible Time-Sharing System (CTSS) entwickelte, führte Passwörter 1961 ein – nicht als Sicherheitsmaßnahme, sondern lediglich, um jedem Benutzer einen privaten Dateibereich zu geben. Mehr als sechs Jahrzehnte später bleiben Passwörter der am weitesten verbreitete Authentifizierungsmechanismus im Internet und schützen alles von E-Mail-Konten bis hin zu Bankensystemen.
Dennoch verwenden viele Menschen Passwörter auf Dutzenden von Websites wieder, wählen vorhersehbare Muster wie Sommer2024! und haben wenig Gespür dafür, was ein Passwort wirklich unerratbar macht. Dieser Artikel bietet einen tiefen technischen Einblick in die Passwortsicherheit: wie die Entropie berechnet wird, warum Zufälligkeit wichtig ist, was die neuesten Richtlinien besagen und wie man Gewohnheiten entwickelt, die einen tatsächlich schützen.
Entropie verstehen: Die Mathematik der Unvorhersehbarkeit
Entropie in der Informationstheorie misst die Unvorhersehbarkeit. Bei Passwörtern beantwortet sie die Frage: Wie viele Versuche bräuchte ein Angreifer im Durchschnitt, um dieses Passwort zu knacken?
Die Formel lautet:
H = L × log₂(N)
Wobei:
- H = Entropie in Bits
- L = Passwortlänge (Anzahl der Zeichen)
- N = Größe des Zeichensatzes (Pool der möglichen Zeichen)
Zeichensatzgrößen
| Zeichensatz | Größe (N) | Bits pro Zeichen |
|---|---|---|
| Nur Kleinbuchstaben | 26 | 4,7 Bits |
| Klein- + Großbuchstaben | 52 | 5,7 Bits |
| Alphanumerisch | 62 | 5,95 Bits |
| Vollständiges druckbares ASCII | 94 | 6,55 Bits |
| Erweitertes ASCII / Unicode | 128+ | 7+ Bits |
Entropie-Beispiele
| Passwort | L | N | Entropie (H) |
|---|---|---|---|
passwort |
8 | 26 | 37,6 Bits |
P@ssw0rt |
8 | 94 | 52,4 Bits |
k9$mQzLw |
8 | 94 | 52,4 Bits |
xK#7pL!qR2@v |
12 | 94 | 78,6 Bits |
correct horse battery staple |
28 | 26 | 131,9 Bits |
Ein Passwort mit 128+ Bits Entropie gilt mit heutiger Technologie als rechnerisch unmöglich per Brute-Force zu knacken. Zum Vergleich: Eine 256-Bit-AES-Verschlüsselung – die als unknackbar gilt – entspricht einem Schlüsselraum von 2²⁵⁶ Kombinationen.
CSPRNG vs. Math.random(): Warum die Quelle des Zufalls wichtig ist
Nicht alle Zufallszahlen sind gleich. Der Unterschied zwischen einem sicheren Passwortgenerator und einem unsicheren liegt oft in der Quelle des Zufalls.
Math.random() – Nicht für Sicherheit geeignet
Das in JavaScript integrierte Math.random() ist ein Pseudozufallszahlengenerator (PRNG). Er ist schnell und statistisch gleichmäßig, aber nicht kryptographisch sicher. Sein interner Zustand kann aus seiner Ausgabe abgeleitet werden, was bedeutet, dass ein Angreifer, der genügend Werte beobachtet, zukünftige Werte vorhersagen könnte.
// ❌ Unsicher – NICHT für die Passwortgenerierung verwenden
function unsicheresPasswort(laenge) {
const zeichen = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
return Array.from({ length: laenge }, () => zeichen[Math.floor(Math.random() * zeichen.length)]).join('');
}
crypto.getRandomValues() – Das richtige Werkzeug
Die Web Cryptography API bietet crypto.getRandomValues(), die Entropie aus dem kryptographisch sicheren Pseudozufallszahlengenerator (CSPRNG) des Betriebssystems bezieht. Unter Linux ist dies /dev/urandom, unter Windows CryptGenRandom. Diese Quellen sammeln Entropie aus Hardware-Ereignissen (Tastenanschläge, Festplatten-I/O, Netzwerk-Timing) und gelten als kryptographisch stark.
// ✅ Sicher – verwendet CSPRNG
function generierePasswort(laenge, zeichensatz) {
const array = new Uint32Array(laenge);
crypto.getRandomValues(array);
return Array.from(array, (val) => zeichensatz[val % zeichensatz.length]).join('');
}
const zeichensatz =
'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*()_+-=[]{}|;:,.<>?';
console.log(generierePasswort(16, zeichensatz));
// Beispiel-Ausgabe: "aK7!xQz2#Lp9@Wm5"
Hinweis zum Modulo-Bias: Das obige Beispiel weist einen leichten Modulo-Bias auf, wenn
zeichensatz.lengthnicht gleichmäßig durch 2³² teilbar ist. Verwenden Sie für Produktionscode Rejection Sampling, um diesen Bias vollständig zu eliminieren.
Zeichensätze und Komplexität
Die meisten Passwortgeneratoren bieten Optionen für:
- Kleinbuchstaben (a–z): 26 Zeichen
- Großbuchstaben (A–Z): 26 Zeichen
- Ziffern (0–9): 10 Zeichen
- Symbole (!@#$%^&*…): ~32 Zeichen
Die Kombination aller vier ergibt einen Pool von 94 druckbaren ASCII-Zeichen. Jedes zusätzliche Zeichen in Ihrem Passwort multipliziert den Suchraum mit 94. Ein 12-stelliges Passwort aus 94 Zeichen hat 94¹² ≈ 4,76 × 10²³ Kombinationen – eine astronomische Zahl selbst für spezialisierte Hardware.
Warum Länge wichtiger als Komplexität ist
Viele Altsysteme erforderten „mindestens einen Großbuchstaben, eine Ziffer, ein Symbol“, erlaubten aber Passwörter mit 8 Zeichen. Ein 8-stelliges Passwort aus 94 Zeichen hat nur 94⁸ ≈ 6 × 10¹⁵ Kombinationen – mit einem modernen GPU-Cluster in Stunden knackbar. Die Erweiterung auf 16 Zeichen rein aus Kleinbuchstaben (26¹⁶ ≈ 4,4 × 10²²) bietet tatsächlich mehr Entropie als ein 8-stelliges komplexes Passwort.
NIST SP 800-63B: Moderne Passwort-Richtlinien
Die NIST Special Publication 800-63B des US National Institute of Standards and Technology (Digital Identity Guidelines, 2017, aktualisiert 2024) hat viele weit verbreitete Annahmen über Passwörter revidiert:
Was das NIST heute empfiehlt
- Mindestlänge von 8 Zeichen für vom Benutzer gewählte Passwörter; 15 Zeichen für maschinengenerierte Passwörter.
- Länge vor Komplexität bevorzugen – obligatorische Komplexitätsregeln (Großbuchstaben + Ziffer + Symbol) erhöhen die Sicherheit nicht wesentlich und frustrieren die Benutzer.
- Passwörter gegen Listen kompromittierter Daten prüfen – Passwörter ablehnen, die in bekannten Datenlecks gefunden wurden (z. B. über die HaveIBeenPwned API).
- Keine regelmäßige erzwungene Passwortänderung, es sei denn, es gibt Beweise für eine Kompromittierung – erzwungene Änderungen führen zu vorhersehbaren Mustern wie
Sommer2024→Herbst2024. - Keine Zusammensetzungsregeln – keine spezifischen Zeichentypen vorschreiben; stattdessen alle druckbaren Zeichen inklusive Leerzeichen erlauben.
- Rate-Limiting und Sperrung von Authentifizierungsversuchen, um Online-Angriffe zu verhindern.
Diese Richtlinien spiegeln die Realität wider, dass menschliches Verhalten unter Komplexitätsbeschränkungen vorhersehbar ist: Menschen hängen ein ! an, um Symbolanforderungen zu erfüllen, schreiben nur den ersten Buchstaben groß und verwenden leicht merkbare Jahreszahlen.
Passwortmanager: Die praktische Lösung
Die größte Sicherheitsverbesserung für die meisten Menschen ist die Verwendung eines Passwortmanagers. Ein Passwortmanager:
- Generiert starke, einzigartige Passwörter für jedes Konto.
- Speichert sie in einem verschlüsselten Tresor (typischerweise AES-256).
- Füllt Anmeldedaten in Browsern und Apps automatisch aus.
- Warnt Sie vor wiederverwendeten oder kompromittierten Passwörtern.
Beliebte Passwortmanager
| Tool | Typ | Besonderheit |
|---|---|---|
| Bitwarden | Open-Source, Cloud/Self-Host | Kostenlose Version, auditiert |
| 1Password | Kommerziell, Cloud | Reisemodus, Familienpläne |
| KeePass | Open-Source, lokal | Vollständig offline, Plugin-Ökosystem |
| KeePassXC | Open-Source, lokal | Plattformübergreifender KeePass-Fork |
| Dashlane | Kommerziell, Cloud | Dark-Web-Überwachung |
Das Master-Passwort für Ihren Passwortmanager sollte eine lange, merkbare Passphrase sein – das eine Passwort, das Sie sich merken.
Passphrasen und die Diceware-Methode
Für Passwörter, die Sie sich merken müssen (wie das Master-Passwort Ihres Passwortmanagers), sind Passphrasen kurzen, komplexen Zeichenfolgen weit überlegen.
Wie Diceware funktioniert
Die Diceware-Methode, die 1995 von Arnold Reinhold entwickelt wurde, verwendet echte Würfel, um eine wirklich zufällige Wortauswahl zu treffen:
- Besorgen Sie sich die EFF Large Wordlist (7.776 Wörter, indiziert von 11111 bis 66666 im 6er-System).
- Würfeln Sie 5 Würfel, um eine 5-stellige Zahl zu erhalten (z. B. 2-4-1-3-6 → 24136).
- Schlagen Sie das entsprechende Wort nach (z. B. „clump“).
- Wiederholen Sie dies 6–8 Mal, um eine Passphrase aufzubauen.
Eine 6-Wort-Diceware-Passphrase aus 7.776 Wörtern hat:
H = 6 × log₂(7776) = 6 × 12,93 ≈ 77,6 Bits
„correct horse battery staple“ (bekannt durch XKCD #936) enthält 4 Wörter aus einem Pool von ~2.000 häufigen Wörtern, was etwa 44 Bits Entropie ergibt – illustrativ, aber zu kurz. Sechs oder mehr Wörter aus der vollständigen Diceware-Liste ist die praktische Empfehlung.
Häufige Passwort-Angriffe
Das Verständnis der Angriffe hilft Ihnen, die Verteidigung zu kalibrieren.
Wörterbuchangriffe
Angreifer verwenden Wortlisten – von Millionen bis Milliarden von Einträgen – kombiniert mit regelbasierten Mutationen (Großschreibung des ersten Buchstabens, Anhängen von Zahlen, Ersetzen von @ durch a). Tools wie Hashcat können Tausende von Mutationsregeln pro Sekunde anwenden. Jedes Passwort, das durch einfache Ersetzungen von einem Wörterbuchwort abgeleitet werden kann, ist anfällig.
Brute-Force-Angriffe
Reines Brute-Force probiert jede Kombination aus. Mit einem dedizierten GPU-Rig (8× RTX 4090) sind die Geschwindigkeiten für gängige Hashing-Algorithmen:
| Hashing-Algorithmus | Geschwindigkeit (H/s) | Zeit zum Knacken von 8 Zeichen (94-Zeichensatz) |
|---|---|---|
| MD5 | ~200 GH/s | ~8 Stunden |
| SHA-1 | ~70 GH/s | ~24 Stunden |
| bcrypt (Cost 10) | ~184 kH/s | ~1.100 Jahre |
| Argon2id | ~1 kH/s | ~200.000 Jahre |
Diese Tabelle verdeutlicht, warum korrektes Passwort-Hashing auf der Serverseite enorm wichtig ist – aber auch, warum ein 16-stelliges Zufallspasswort selbst MD5-Hashing widersteht.
Rainbow Tables
Vorberechnete Hash-zu-Passwort-Tabellen, die Speicherplatz gegen Geschwindigkeit eintauschen. Werden durch Salting vollständig vereitelt – das Hinzufügen eines einzigartigen Zufallswerts zu jedem Passwort vor dem Hashen. Moderne Algorithmen wie bcrypt und Argon2 enthalten Salting bereits im Design.
Credential Stuffing
Verwendung von Benutzernamen/Passwort-Paaren aus einem Datenleck, um andere Dienste anzugreifen. Die Verteidigung besteht in einzigartigen Passwörtern pro Website – genau hier glänzen Passwortmanager.
Warum browserbasierte Passwortgenerierung sicherer ist
Unser Tool generiert Passwörter vollständig in Ihrem Browser mittels JavaScript. Es verlassen keine Daten Ihr Gerät. Hier ist der Grund, warum das wichtig ist:
- Keine Serverübertragung – das Passwort berührt nie ein Netzwerkpaket.
- Keine Serverprotokolle – es gibt nichts, was beschlagnahmt, geleakt oder gestohlen werden könnte.
- Keine Drittanbieter-Abhängigkeiten zur Generierungszeit – keine API-Aufrufe, keine externen Skripte während der Generierung.
- Reproduzierbar – Sie können den Quellcode inspizieren, um die Logik zu überprüfen.
Vergleichen Sie dies mit serverseitigen Generatoren: Selbst mit HTTPS existiert das generierte Passwort im Serverspeicher, könnte in Zugriffsprotokollen erscheinen und hängt vollständig von der Vertrauenswürdigkeit des Betreibers ab.
Die relevante Web-API ist unkompliziert:
// Der CSPRNG des Browsers – verfügbar in allen modernen Browsern
const buffer = new Uint8Array(32);
self.crypto.getRandomValues(buffer);
// buffer enthält nun 32 kryptographisch zufällige Bytes
Passwortspeicherung: bcrypt, scrypt und Argon2
Wenn Dienste Passwörter speichern, sollten sie niemals Klartext oder reversibel verschlüsselte Formen speichern. Der richtige Ansatz ist eine Passwort-Hash-Funktion (PHF) – eine langsame Einwegfunktion, die speziell für diesen Zweck entwickelt wurde.
bcrypt
1999 von Niels Provos und David Mazières entwickelt, enthält bcrypt einen Cost-Faktor, der erhöht werden kann, wenn die Hardware schneller wird. Ein Cost von 12 bedeutet 2¹² = 4.096 Iterationen des Blowfish-Schlüssel-Setups. Heute Standard und weit verbreitet.
scrypt
2009 von Colin Percival entwickelt. Memory-hard – erfordert neben CPU-Zeit große Mengen an RAM, was GPU/ASIC-Angriffe teuer macht. Parameter: N (CPU/Speicherkosten), r (Blockgröße), p (Parallelisierung).
Argon2
Gewinner der Password Hashing Competition (PHC) 2015. Drei Varianten:
- Argon2d: GPU-resistent, anfällig für Seitenkanalangriffe
- Argon2i: Seitenkanalresistent, weniger GPU-resistent
- Argon2id: Hybrid – die empfohlene Standardvariante
Argon2id mit m=65536 (64 MB Speicher), t=3 (3 Iterationen), p=4 (4 Threads) ist der aktuelle Goldstandard für neue Anwendungen.
Zwei-Faktor-Authentisierung: Die unverzichtbare Ergänzung
Selbst ein perfektes Passwort kann durch Phishing, Keylogger oder Datenlecks gestohlen werden. Zwei-Faktor-Authentisierung (2FA) stellt sicher, dass ein gestohlenes Passwort allein nicht ausreicht.
2FA-Methoden (Schwächste bis Stärkste)
| Methode | Mechanismus | Angriffswiderstand |
|---|---|---|
| SMS OTP | Code per Textnachricht | Phishing-anfällig, SIM-Swapping-Gefahr |
| TOTP (Google Authenticator) | Zeitbasierter 6-stelliger Code (RFC 6238) | Echtzeit-Phishing-anfällig |
| Push-Benachrichtigung | Bestätigen am Telefon | Phishing-anfällig (MFA Fatigue) |
| Hardware-Key (FIDO2/WebAuthn) | YubiKey, Passkey | Phishing-resistent |
| Passkeys | Gerätegebundener kryptographischer Key | Stärkste Methode; ersetzt Passwörter |
FIDO2/WebAuthn Hardware-Keys und Passkeys sind per Design phishing-resistent, da die kryptographische Challenge-Response an die exakte Domain gebunden ist. Eine gefälschte Website kann die Anmeldedaten nicht wiederverwenden.
Zusammenfassung der Best Practices
- Verwenden Sie einen Passwortmanager – generieren und speichern Sie einzigartige Passwörter für jedes Konto.
- Mindestens 16 Zeichen für sensible Konten; mindestens 12 überall sonst.
- Aktivieren Sie 2FA – vorzugsweise FIDO2/WebAuthn oder TOTP; vermeiden Sie SMS, wo möglich.
- Verwenden Sie Passwörter niemals wieder – ein Leck auf einer Seite darf andere Konten nicht gefährden.
- Prüfen Sie HaveIBeenPwned – verifizieren Sie, dass Ihre E-Mail-Adressen und Passwörter nicht in bekannten Lecks aufgetaucht sind.
- Nutzen Sie eine Passphrase für Ihr Master-Passwort – 6+ Diceware-Wörter, merkbar, extrem stark.
- Misstrauen Sie „Komplexitätstheater“ –
P@ssw0rd123ist viel schwächer alsxK8mLq2vZnRj. - Priorisieren Sie die Länge – 20 zufällige Kleinbuchstaben (94 Bits) schlagen 12 komplexe Zeichen (78 Bits).
- Aktualisieren Sie kompromittierte Passwörter sofort – ändern Sie sie nur bei Bedarf, nicht nach willkürlichen Zeitplänen.
- Nutzen Sie Tools zur Leck-Überwachung – Dienste wie Firefox Monitor oder 1Password Watchtower überwachen Ihre Konten kontinuierlich.
Häufig gestellte Fragen (FAQ)
F: Wie lang sollte mein Passwort sein? Für die meisten Konten bieten 16 zufällige Zeichen aus einem vollen 94-Zeichensatz etwa 105 Bits Entropie – mehr als ausreichend. Für hochkarätige Konten (Banking, E-Mail, Passwortmanager) verwenden Sie 20+ Zeichen oder eine 6-Wort-Passphrase.
F: Ist es sicher, einen Online-Passwortgenerator zu verwenden? Nur wenn die gesamte Generierung clientseitig (in Ihrem Browser) ohne Serverkommunikation erfolgt. Unser Tool erfüllt diese Anforderung. Überprüfen Sie dies im Netzwerk-Tab des Browsers – es sollten keine Anfragen beim Generieren eines Passworts gesendet werden.
F: Sollte ich Symbole verwenden? Symbole erhöhen die Entropie pro Zeichen (6,55 Bits gegenüber 5,17 Bits für nur Kleinbuchstaben), also ja – wenn die Website sie erlaubt. Ein längeres Passwort ohne Symbole kann jedoch die Entropie eines kürzeren mit Symbolen erreichen.
F: Können Quantencomputer mein Passwort knacken? Der Grover-Algorithmus verleiht Quantencomputern eine quadratische Beschleunigung für Brute-Force-Angriffe, was die Sicherheitsbits effektiv halbiert. Ein 256-Bit-Schlüssel wird so sicher wie ein 128-Bit-Schlüssel. Für Passwörter bedeutet dies, dass man 256-Bit-Entropie-Passwörter für langfristige Quantenresistenz bräuchte – erreichbar mit einem 40-stelligen Passwort aus 94 Zeichen (262 Bits). Für die meisten aktuellen Bedrohungen sind 128 Bits Entropie (20 zufällige Zeichen) mehr als ausreichend.
F: Was ist falsch an merkbaren Passwörtern wie IchLiebePizza2024?
Sie sind anfällig für Wörterbuchangriffe. Die Rule-Engine von Hashcat generiert trivialerweise Millionen Variationen gängiger Phrasen mit Leetspeak, Großschreibung und angehängten Zahlen. Selbst scheinbar persönliche Passwörter folgen Mustern, die Angreifer statistisch modellieren.
F: Wie generiert dieses Tool Zufälligkeit?
Wir verwenden crypto.getRandomValues() – die Web Cryptography API, die auf dem CSPRNG Ihres Betriebssystems basiert. Dies ist dieselbe Zufallsquelle, die für TLS/SSL, SSH-Key-Generierung und andere kryptographische Operationen in Ihrem Browser verwendet wird.