Zurück zur Übersicht

Begriff

Pepper (Cryptography)

Security Cryptography S3
2 Quellen 0 Lernpfade 0 Backlinks enriched

Warum wichtig?

Dieser Begriff ist ein Knoten im SengakujiWorks-Wissensnetz. Nutze Level 0 für die erste Einordnung, Level 1 für Praxis, Level 2 für technische Struktur und Level 3 für Grenzen, Fallstricke und Expertenkontext.

Du hast dein Passwort gehasht und gesalzen. Aber wenn ein Hacker deine Datenbank klaut, hat er:

  • Den Hash.
  • Das Salt (liegt daneben). Er kann jetzt zu Hause (offline) versuchen, das Passwort zu knacken (Brute Force). Pepper ist die letzte Verteidigungslinie. Es ist wie ein Salt, aber es wird nicht in der Datenbank gespeichert. Es steht fest im Programmcode oder in einer Umgebungsvariable auf dem Server. Formel: hash(passwort + salt + pepper). Wenn der Hacker die DB klaut, fehlt ihm der Pepper. Er kann die Hashes nicht knacken. Er müsste auch den Server hacken.

Merksatz: Ein geheimer Schlüssel (ähnlich einem Salt), der beim Hashen verwendet wird, aber getrennt von der Datenbank (z. B. im Anwendungscode oder HSM) gespeichert wird, um zusätzliche Sicherheit bei Datenbank-Leaks zu bieten.


Quick-Check

  1. Salt UND Pepper?
    Ja, beides zusammen ist Best Practice (Defense in Depth). Salt macht Rainbow Tables unmöglich. Pepper schützt bei reinem SQL-Dump-Diebstahl.
  2. Wo speichern?
    Auf keinen Fall im gleichen Backup wie die Datenbank! Am besten in einem Secrets Manager (Vault, AWS Secrets Manager) oder eben Environment Variables.
  3. Ist Pepper Standard?
    Nein. Viele Frameworks (Django, Rails) machen standardmäßig nur Salt. Pepper muss man oft manuell einbauen.