Zum Inhalt springen
ecdsa.com

Passwort-Hashing

Das Speichern eines Passworts als Ausgabe einer absichtlich langsamen, vorzugsweise speicherharten Funktion mit Salt wie Argon2id, scrypt, bcrypt oder PBKDF2, damit eine gestohlene Datenbank Offline-Rateangriffen standhält.
Auch geschrieben alsArgon2idbcryptscryptPBKDF2password hash

Ein schneller Hash wie SHA-256 erlaubt Angreifern, auf GPUs Milliarden Versuche pro Sekunde zu testen. Passwort-Hashes fügen pro Passwort ein eindeutiges, zufälliges Salt hinzu (das vorberechnete Tabellen nutzlos macht) sowie einstellbare Kosten. Das Password Storage Cheat Sheet von OWASP empfiehlt in dieser Reihenfolge: Argon2id (RFC 9106) mit mindestens 19 MiB Speicher, 2 Iterationen und Parallelität 1; scrypt mit N = 2¹⁷, r = 8, p = 1; bcrypt mit einem Work Factor von 10 oder mehr (bcrypt schneidet die Eingabe nach 72 Byte ab); und, wo FIPS 140 verlangt ist, PBKDF2-HMAC-SHA256 mit mindestens 600.000 Iterationen.

Speichere Algorithmus und Parameter zusammen mit dem Hash (im PHC-String-Format $argon2id$v=19$m=19456,t=2,p=1$…, bei bcrypt $2b$10$…), damit sich die Kosten später erhöhen und alte Hashes bei der nächsten Anmeldung aktualisieren lassen. Ein optionaler Pepper, ein außerhalb der Datenbank aufbewahrtes Geheimnis, schützt zusätzlich, wenn nur die Datenbank abfließt.

NIST SP 800-63B-4 verlangt eine Speicherung mit Salt und hohem Kostenfaktor sowie für Passwörter, die als einziger Authentifizierungsfaktor dienen, eine Mindestlänge von 15 Zeichen. Passkeys beseitigen das gespeicherte Geheimnis ganz: Der Server hält nur einen öffentlichen Schlüssel.

Standards und Quellen

Alle Begriffe