Schlüsselableitung und Passwort-Hashing (Argon2)
Kurz: Passwörter speichert man nie im Klartext, sondern als Ergebnis eines absichtlich langsamen, speicherhungrigen Verfahrens (Argon2, bcrypt, scrypt) mit Salz. So werden Brute-Force-Angriffe nach einem Datenleck sehr teuer.
Genauer: Normale Hashes wie SHA-256 sind schnell, Grafikkarten probieren Milliarden pro Sekunde. Passwort-Hashes sind einstellbar aufwendig: Argon2id verlangt viel Rechenzeit und Arbeitsspeicher, was Spezialhardware bremst. Ein zufälliges Salz pro Nutzer verhindert Rainbow-Tabellen und gleiche Hashes bei gleichen Passwörtern.
Im Detail
- Salz: Zufälliger Wert je Nutzer, offen gespeichert.
- Pepper: Geheimer Zusatz, der nicht in der Datenbank liegt.
- Kostenparameter: Zeit, Speicher, Parallelität. Anpassen, sodass ein Login ca. 0,1–0,5 s dauert.
- KDF: Key Derivation Function, leitet aus Passwort einen Schlüssel ab (PBKDF2, scrypt, Argon2).
- HKDF: Leitet aus einem schon starken Schlüssel weitere Schlüssel ab.
- Upgrade: Beim Login auf stärkere Parameter umhashen.
- Nie: MD5/SHA-1 oder ein einfacher SHA-256 für Passwörter.
Siehe auch: Authentifizierte Verschlüsselung (AEAD), OWASP Top 10