Passwortsicherheit analysieren: Berechnungen und Empfehlungen für Entwickler
Passwörter bleiben das Fundament der Authentifizierung, weil sie einfach zu verstehen und nutzerfreundlich sind. Ein Benutzername identifiziert ein Konto, während das Passwort den Nachweis des Wissens über ein Geheimnis liefert. Trotz Alternativen wie Hardware-Tokens, OTPs, Biometrie und WebAuthn dominieren Passwörter weiterhin bei Low-Friction-Login-Systemen.
Beispielweise nutzt WebAuthn asymmetrische Verschlüsselung: Der private Schlüssel bleibt auf dem Gerät, und der Server prüft die Signatur mit dem öffentlichen Schlüssel. Biometrische Daten werden lokal gespeichert – niemals an Server übertragen – was das Risiko von Datenlecks minimiert.
Praktische Sicherheit: Die Mathematik hinter Brute-Force-Angriffen
Jedes Passwort kann theoretisch durch Brute-Force geknackt werden – doch die Sicherheit beruht auf wirtschaftlicher Unpraktikabilität. Betrachten wir Angriffszeiten für verschiedene Konfigurationen.
Eine 5-stellige PIN (10^5 = 100.000 Kombinationen) lässt sich in Sekunden knacken bei 10 Versuchen pro Sekunde. Mit einem Botnet aus 10.000 Geräten (100.000 Versuche pro Sekunde) dauert es unter 9 Minuten, ein 5-Zeichen-Passwort aus einem 36-Zeichen-Alphabet (Buchstaben + Ziffern) zu brechen.
Erweitern wir das Zeichenset:
- 62 Zeichen (Groß- und Kleinbuchstaben + Ziffern): 62^5 ≈ 916 Millionen → etwa 2,5 Stunden mit Botnet.
- 95 Zeichen (inkl. Sonderzeichen): 95^5 ≈ 7,7 Milliarden → etwa 21 Stunden.
Die Länge ist entscheidend. Bei 8 Zeichen aus 95: 95^8 ≈ 6,6×10^15 → über 2.000 Jahre bei 100.000 Versuchen pro Sekunde. Selbst ohne Sonderzeichen (62^8 ≈ 2,2×10^14) → etwa 70 Jahre.
| Zeichensatz | Länge | Kombinationen | Zeit (100k/sec) |
|----------------|--------|--------------|----------------|
| 36 | 5 | 52 Millionen | 9 Minuten |
| 62 | 5 | 916 Millionen | 2,5 Stunden |
| 95 | 5 | 7,7 Milliarden | 21 Stunden |
| 62 | 8 | 218 Billionen | 70 Jahre |
| 95 | 8 | 6,6 Quintillionen | 2.000+ Jahre |
Rate Limiting ist essenziell: Begrenzte Anfragen pro IP zwingen Angreifer zur Nutzung verteilter Botnets, was die Kosten drastisch erhöht.
Wörterbuchangriffe und häufige Muster
Vollständige Brute-Force-Angriffe sind ineffizient bei langen Passwörtern. Die echte Bedrohung? Wörterbuchangriffe und Credential Stuffing.
Beispiele für schwache Passwörter:
Qwertyuio1— Tastaturfolge.Abcdefghi0— aufsteigende Buchstaben.P@ssW0rD36— Leetspeak-Ersatz.Ghbdtn— QWERTY-Layout für "Hello" (auf Russisch).
Empfehlung: Nutzen Sie Passphrasen aus 4–6 zufälligen Wörtern (aus einem 20.000-Wort-Wörterbuch: 20.000^4 = 1,6×10^17 Kombinationen → Zehntausende von Jahren zum Knacken). Vermeiden Sie Anführungszeichen oder vorhersehbare Phrasen; verwenden Sie Trennzeichen wie Bindestriche oder Leerzeichen.
PIN-Codes (4 Ziffern) sind nicht sicher wegen geringer Entropie – sie werden durch Versuchsbeschränkungen (3–10 Versuche) und hardwarebasierte Hash-Schutzmechanismen geschützt.
Häufige Fehler von Entwicklern beim Speichern von Passwörtern
Passwörter sollten niemals im Klartext gespeichert werden. Stattdessen nutzen Sie starke Hash-Algorithmen wie bcrypt, Argon2 oder scrypt. Häufige Fehler:
- Speicherung im Klartext oder Verwendung schwacher Hashes wie MD5/SHA-1.
- Fehlender Salt – macht Rainbow-Table-Angriffe möglich.
- Schwache Hashing ohne ausreichend viele Iterationen – ermöglicht schnelle GPU-Knackversuche.
- Kein Rate Limiting oder CAPTCHA-Schutz.
- Ignorieren von Credential-Stuffing-Checks – fehlende Überprüfung, ob Login-Daten in Datenleck-Datenbanken auftauchen (z. B. Have I Been Pwned?).
Best Practices:
- Verwenden Sie Argon2id mit memory-hard Parametern.
- Weisen Sie jedem Benutzer einen eindeutigen Salt zu.
- Implementieren Sie Rate Limiting (z. B. 5 Versuche pro Minute pro IP).
Praktische Empfehlungen
Für Nutzer:
- Verwenden Sie für jedes Dienst ein einzigartiges Passwort.
- Streben Sie mindestens 12 Zeichen oder eine Passphrase (4+ zufällige Wörter) an.
- Nutzen Sie Passwort-Manager:
* Lokal nur (KeePassXC): volle Kontrolle, manuelle Synchronisation.
* Cloud-basiert (Bitwarden): automatische Synchronisation, Schutz durch Master-Passwort.
- Aktivieren Sie 2FA (TOTP bevorzugt – SMS vermeiden).
Für Entwickler:
- Fordern Sie Passphrasen oder mindestens 16-Zeichen-Passwörter an.
- Hashen Sie mit Argon2 (p=2, m=64MB, t=3).
- Setzen Sie Rate Limiting mit exponentiellem Backoff um.
- Integrieren Sie Passkeys/WebAuthn in neue Systeme.
- Überwachen Sie Datenlecks mit Tools wie Have I Been Pwned?
Wichtige Erkenntnisse
- Länge schlägt Komplexität: 95^8 bietet weitaus mehr Sicherheit als 62^12.
- Rate Limiting + Botnets = exponentieller Kostenanstieg für Angreifer.
- Zufällige Wortpassphrasen liefern >10^17 mögliche Kombinationen.
- Speichern Sie nur saltierte Hashes mit Argon2; Klartext = sofortige Ausnutzung.
- Einzigartige Passwörter verhindern Credential-Stuffing-Angriffe.
— Editorial Team
Noch keine Kommentare.