Skip to content

Muss ein Passwort-Salt geheim gehalten werden?

Kurzantwort

Nein. Ein Salt ist ein eindeutiger Zufallswert, der direkt neben dem Hash gespeichert wird; seine Aufgabe ist es, identische Passwörter unterschiedlich hashen zu lassen und vorberechnete Rainbow Tables zu vereiteln — nicht geheim zu bleiben. Es ist unproblematisch, wenn ein Angreifer, der die Datenbank stiehlt, auch die Salts erhält. Was Passwörter wirklich schützt, ist ein langsamer, gesalzener Hash (bcrypt, scrypt, Argon2). Ein separater, optionaler geheimer „Pepper“ ist ein anderes Konzept.

Kandidaten nehmen oft an, ein Salt sei eine Art geheimer Schlüssel, den man verbergen muss. Das ist er nicht, und ihn so zu behandeln verrät ein Missverständnis darüber, was Salting tatsächlich leistet.

Wozu ein Salt dient

Ein Salt ist ein eindeutiger Zufallswert, der pro Passwort erzeugt und im Klartext direkt neben dem resultierenden Hash gespeichert wird. Sein einziger Zweck ist sicherzustellen, dass zwei Nutzer mit demselben Passwort verschiedene Hashes erzeugen, und vorberechnete Angriffe — Rainbow Tables — wertlos zu machen. Eine Rainbow Table wird im Voraus gegen ungesalzene Hashes erstellt; hat jedes Passwort seinen eigenen Zufalls-Salt, bräuchte der Angreifer eine eigene Tabelle pro Salt, was die Wirtschaftlichkeit der Vorberechnung zerstört.

Warum Geheimhaltung nicht der Punkt ist

Da der Salt neben dem Hash liegt, erhält ein Angreifer, der Ihre Datenbank stiehlt, auch die Salts. Das ist erwartet und unbedenklich. Der Salt macht eine einzelne Rateprobe nicht schwerer zu prüfen — er macht Massenangriffe über viele Konten undurchführbar, da jedes Kandidatenpasswort gegen den Salt jedes Nutzers neu gehasht statt einmal nachgeschlagen werden muss. Geheimhaltung war nie der Mechanismus.

Was Passwörter wirklich schützt

Echter Schutz kommt von einem langsamen, gesalzenen, adaptiven Hash: bcrypt, scrypt oder Argon2 (Argon2id ist die moderne Empfehlung). Sie verbrauchen bewusst CPU und Speicher, damit jeder Versuch teuer ist, und bremsen Offline-Cracking extrem aus. Ein schneller Allzweck-Hash wie SHA-256 lässt sich selbst gesalzen milliardenfach pro Sekunde auf einer GPU durchprobieren.

Der Pepper: ein anderes Konzept

Es gibt in diesem Bereich ein Geheimnis — den Pepper — doch er unterscheidet sich vom Salt. Ein Pepper ist ein einziger seitenweiter Geheimwert, der vor oder nach dem Hashen eingemischt und außerhalb der Datenbank gespeichert wird (z. B. in einem HSM oder der App-Konfiguration). Da er nicht im gestohlenen Dump steckt, fügt er gerade dann Schutz hinzu, wenn die Datenbank leakt. Salt mit Pepper zu verwechseln ist der Kern dieser Falle: Der Salt ist öffentlicher Zufall pro Datensatz; der Pepper ist ein verborgenes globales Geheimnis.

Wahrscheinliche Anschlussfragen

  • Was ist ein Pepper und wie unterscheidet er sich von einem Salt?
  • Warum vereitelt ein eindeutiger Salt pro Nutzer vorberechnete Rainbow Tables?
  • Warum reicht ein schneller Hash wie SHA-256 zum Speichern von Passwörtern nicht aus?

Quellen

Zertifizierungen

Erhalte 100 Cybersecurity-Interviewfragen + Antworten

Gib deine E-Mail-Adresse ein und wir senden dir das kostenlose PDF-Paket und das Flashcard-Deck.

Kein Spam. Jederzeit abbestellbar.