Pepper
Ein Pepper ist ein serverseitiges Geheimnis, das beim Passwort-Hashing hinzugefügt wird (anders als ein Salt global geteilt und geheim gehalten), was Offline-Angriffe erschwert.
Zweck
Ergänzt das Salt um ein Server-Geheimnis, sodass ein reiner Datenbank-Leak nicht ausreicht, Passwörter offline zu knacken.
Mechanismus
H(password || salt || pepper). Der Pepper wird global geteilt, bleibt aber geheim (in Config/HSM gespeichert, nicht in der Datenbank). Bei einem Datenbank-Leak können Angreifer ohne den Pepper nicht offline hashen. Das Salt bleibt pro Nutzer eindeutig. Leakt der Pepper, degeneriert der Schutz auf nur Salt.
Anwendungsfälle
- Gehärtetes Passwort-Hashing
- Zusatzschutz nach einem Datenbank-Leak
- Speicherung des Peppers in einem HSM
- Compliance-Anforderungen
Beispiele
- Eingabe
H(pass + salt + pepper)OutputThe pepper is required for verificationPepper kept secret
Häufige Fehler
- Storing the pepper in the database (the same one as the hashes)
- Keep the pepper in config/HSM, separate from the database
Verwandte Begriffe
Salt
Ein Salt ist ein Zufallswert, der beim Passwort-Hashing hinzugefügt wird, damit identische Passwörter unterschiedliche Hashes erzeugen; dadurch werden Rainbow-Tabellen und die Erkennung gleicher Passwörter unwirksam. GLOSSAR
Hash Salting
Hash-Salting fügt der Hash-Eingabe ein zufälliges Salt hinzu, sodass identische Eingaben verschiedene Hashes erzeugen; Rainbow Tables und Kollisionserkennung werden damit ausgeschaltet. GLOSSAR
PBKDF2
PBKDF2 (Password-Based Key Derivation Function 2) ist die in PKCS#5 standardisierte KDF, die über iteriertes HMAC Schlüssel aus Passwörtern ableitet; weit verbreitet für Passwort-Hashing und Schlüsselableitung. GLOSSAR