PBKDF2 (Password-Based Key Derivation Function 2) ist der Klassiker unter den Hashfunktionen für Passwörter. Die Funktion wurde von RSA Laboratories entwickelt und 2000 in RFC 2898 (PKCS #5) veröffentlicht — sie ist damit die älteste der drei gängigen Verfahren neben bcrypt und Argon2.

So funktioniert PBKDF2

PBKDF2 wendet eine Pseudozufallsfunktion — typischerweise HMAC mit SHA-256 — wiederholt auf Passwort und Salt an. Die Anzahl der Wiederholungen heißt Iterationszahl; sie macht die Berechnung absichtlich teuer. Dieses Prinzip nennt sich Key Stretching: Aus einem schwachen Passwort wird durch viele Runden ein aufwändig zu berechnender Hash.

Iterationszahlen

Weil Computer schneller werden, muss die Iterationszahl regelmäßig steigen. OWASP empfiehlt für HMAC-SHA256 inzwischen 600.000 Iterationen; für HMAC-SHA512 sind 210.000 üblich. Der Wert wird wie ein Kostenfaktor bei bcrypt pro System gewählt und bei Bedarf erhöht.

Einsatzbereiche

  • Passwort-Speicherung: gestreckte Hashes statt Klartext oder schnellem SHA-256.
  • Schlüsselableitung: aus Passwort und Salt wird ein kryptografischer Schlüssel erzeugt (z. B. für Festplatten- oder Datei-Verschlüsselung) — das Grundprinzip der Key Derivation.
  • FIPS-Konformität: PBKDF2 ist der einzige der drei Algorithmen mit FIPS-Zertifizierung — in regulierten Umgebungen oft Pflicht.

Gegen Rainbow Tables schützt das eingebaute Salt; ein Brute-Force-Angriff wird durch die Iterationszahl verteuert. Als Nachteil gilt, dass PBKDF2 kaum Arbeitsspeicher braucht — GPUs können viele Versuche parallel rechnen, anders als beim memory-hard Verfahren Argon2.

Verwandte Grundlagen: Hashfunktion, Salt, bcrypt, Argon2, Brute-Force-Angriff.