Informatik

Salt bei Passwörtern: Wirkung und sichere Nutzung

Salt bei Passwörtern: Wirkung und sichere Nutzung
Salt bei Passwörtern: Wirkung und sichere Nutzung
Für Quiz, Lückentext, Lernkarten und Fortschritt ist JavaScript nötig. Alle Inhalte und Lösungen bleiben direkt lesbar.

Ein Salt ist ein zufälliger, individueller Zusatzwert für das Hashen eines Passworts. Er darf neben dem Hash in der Datenbank stehen. Dadurch erzeugen sogar gleiche Passwörter unterschiedliche Hashwerte. Salt erschwert vorberechnete Angriffe, ersetzt aber weder ein starkes Passwort noch ein langsames Passwort-Hashverfahren.

Deine Lernziele

Hake ab, was du schon kannst — und komm am Ende hierher zurück!

Warum gleiche Passwörter zum Problem werden

Eine Hashfunktion bildet eine Eingabe auf einen Hashwert fester Länge ab. Beim Anmelden muss das System das Klartextpasswort nicht wiederherstellen: Es hasht die Eingabe erneut und vergleicht das Ergebnis mit dem gespeicherten Wert.

Ohne Salt liefert dasselbe Passwort bei demselben Verfahren denselben Hash. Ein Angreifer mit einer gestohlenen Datenbank könnte deshalb:

  • gleiche Passwörter an gleichen Hashes erkennen;
  • einen berechneten Passwortkandidaten gegen viele Konten gleichzeitig testen;
  • vorberechnete Zuordnungen wie Rainbow Tables verwenden.
Definition

Rainbow Table

Eine Rainbow Table ist eine vorberechnete Suchstruktur für mögliche Passwörter und zugehörige Hashwerte. Sie soll das erneute Berechnen vieler Kandidaten teilweise ersetzen.

Ein individueller Salt verändert die Eingabe jedes Kontos. Eine Vorbereitung für einen Salt passt dann nicht zu einem anderen Salt.

Beispiel

Anna und Max verwenden beide das Passwort geheim123.

  • Anna erhält den Salt x7Kp2mQs.
  • Max erhält den Salt 9LnR4tWv.
  • Das System verarbeitet jeweils Passwort, Salt und Verfahrensparameter.

Obwohl die Passwörter gleich sind, entstehen unterschiedliche gespeicherte Hashwerte. Die verkürzten Beispielwerte a3f2b1... und 8c7d6e... veranschaulichen nur das Ergebnis; sie sind keine vollständige reale Berechnung.

Teste dich
Frage 1 von 1LeichtWarum sollen zwei Konten mit demselben Passwort unterschiedliche Hashwerte besitzen?
Lösung: Damit vorberechnete Ergebnisse und Kandidaten nicht einfach für beide Konten wiederverwendet werden können — Der individuelle Salt macht die Hashberechnung kontospezifisch. Geheimhaltung ist dafür nicht erforderlich.
So werden Passwort und Salt gespeichert und geprüft

Beim Anlegen oder Ändern eines Passworts läuft der Vorgang in dieser Reihenfolge ab:

  1. Eine etablierte Bibliothek erzeugt einen kryptografisch zufälligen Salt.
  2. Die Passwort-Hashfunktion verarbeitet Passwort, Salt und ihre Kostenparameter.
  3. Das System speichert den resultierenden Hash zusammen mit Salt und Parametern.
  4. Das Klartextpasswort wird nicht gespeichert.

Beim Login liest das System Salt und Parameter, verarbeitet die Eingabe auf dieselbe Weise und vergleicht den neu berechneten Hash mit dem gespeicherten Hash.

Merke

Der Salt muss verfügbar sein, damit das System eine Eingabe prüfen kann. Deshalb darf er offen beim Hash stehen.

Moderne Bibliotheken speichern Salt und Parameter häufig in einem gemeinsamen Format. Ein bcrypt-Beispiel kann etwa Version, Kostenfaktor, Salt und Hash enthalten. Ein Kostenfaktor von 12 steht im dargestellten bcrypt-Schema für $2^{12}$, also 4096 Rechenschritte des zugrunde liegenden Kostenmodells. Das ist ein Formatbeispiel, keine für jedes System unveränderliche Parameterempfehlung.

Teste dich
Frage 1 von 1MittelWelche Daten braucht das System beim nächsten Login?
Lösung: Den gespeicherten Salt, die Verfahrensparameter und den gespeicherten Hash — Ohne Salt und passende Parameter könnte das System die neue Eingabe nicht auf dieselbe Weise prüfen.
Welche Angriffe Salt erschwert – und welche nicht

Salt schützt vor allem gegen die Wiederverwendung von Vorberechnungen. Bei einem eigenen Salt pro Konto muss ein Angreifer jeden Passwortkandidaten für jedes Konto erneut berechnen.

Salt stoppt jedoch keinen Offline-Angriff auf einen einzelnen Hash. Wer Datenbank, Hash, Salt und Parameter besitzt, kann weiterhin Kandidaten ausprobieren. Der Salt ist schließlich nicht geheim.

Definition

Offline-Angriff

Bei einem Offline-Angriff prüft ein Angreifer Passwortkandidaten auf eigener Hardware gegen gestohlene Daten. Der angegriffene Server kann die Zahl der Versuche dann nicht begrenzen.

Das unterscheidet sich vom Online-Angriff über ein Loginformular. Dort kann der Server Fehlversuche verzögern, begrenzen oder vorübergehend blockieren.

Merke

Salt macht jeden Hash individuell. Eine langsame Passwort-Hashfunktion macht jeden einzelnen Rateversuch teurer.

Für Passwörter sind deshalb eigens dafür entwickelte Verfahren wie Argon2id, scrypt oder bcrypt vorgesehen. Sie können Rechenzeit und teilweise Speicherbedarf gezielt erhöhen. Schnelle allgemeine Hashfunktionen wie MD5 oder die SHA-Familie sind allein für die Passwortspeicherung ungeeignet, weil ein Angreifer damit sehr viele Kandidaten schnell testen kann.

Teste dich
Frage 1 von 1MittelEine Datenbank mit Hashes und individuellen Salts wurde gestohlen. Was kann ein Angreifer weiterhin tun?
Lösung: Passwortkandidaten für einzelne Konten berechnen und vergleichen — Salt verhindert das Raten nicht. Es verhindert vor allem, dass dieselbe Berechnung direkt für viele unterschiedlich gesalzene Konten gilt.
Woran du eine sichere Gestaltung erkennst

Eine sichere Passwortspeicherung verbindet mehrere Maßnahmen:

  1. Individueller Salt: Jedes Passwort erhält einen eigenen zufälligen Wert.
  2. Sicherer Zufall: Benutzername, Zeitstempel oder eine kleine feste Werteliste sind keine geeigneten Salts.
  3. Passwort-Hashverfahren: Eine etablierte, absichtlich aufwendige Funktion verarbeitet Passwort und Salt.
  4. Passende Kostenparameter: Der Aufwand wird für die vorhandene Serverleistung angemessen eingestellt und später überprüft.
  5. Neue Berechnung bei Änderung: Bei einem Passwortwechsel wird auch ein neuer Salt erzeugt.
  6. Bewährte Bibliothek: Erzeugung, Formatierung und Prüfung werden nicht selbst erfunden.
Beispiel

Ein Entwurf speichert für alle Konten den festen Salt SCHULE2026 und verwendet eine schnelle allgemeine Hashfunktion.

Der Entwurf hat zwei Fehler:

  • Der feste Salt macht alle Konten wieder vergleichbar und ermöglicht gemeinsame Vorbereitungen für genau diesen Salt.
  • Die schnelle Funktion verbilligt jeden Offline-Rateversuch.

Eine geeignete Überarbeitung lässt eine Passwort-Hashbibliothek pro Passwort einen zufälligen Salt erzeugen und nutzt ein dafür vorgesehenes Verfahren mit geprüften Kostenparametern.

Teste dich
Frage 1 von 1SchwerWelcher Entwurf schützt die gespeicherten Passwörter am besten?
Lösung: Eine etablierte Passwort-Hashbibliothek erzeugt pro Passwort einen zufälligen Salt und verwendet angemessene Kostenparameter — Entscheidend sind ein individueller, nicht vorhersagbarer Salt und ein geeignetes langsames Passwort-Hashverfahren.
Salt, Pepper und Verschlüsselung unterscheiden

Diese drei Begriffe erfüllen unterschiedliche Aufgaben:

VerfahrenMuss geheim sein?Typischer SpeicherortAufgabe
Saltneinzusammen mit Hash und ParameternHashes individualisieren und Vorberechnungen erschweren
Pepperjagetrennt von der Passwortdatenbankbei einem reinen Datenbankdiebstahl einen zusätzlichen unbekannten Faktor schaffen
Verschlüsselungsschlüsseljasicherer SchlüsselspeicherDaten umkehrbar ver- und entschlüsseln

Ein Pepper ist ein zusätzliches Geheimnis, das in die Verarbeitung einfließt. Sein Nutzen hängt davon ab, dass er nicht gemeinsam mit der Passwortdatenbank gestohlen wird. Er ersetzt weder den individuellen Salt noch das langsame Passwort-Hashverfahren.

Passwort-Hashing ist nicht dasselbe wie Verschlüsselung. Verschlüsselung ist mit einem Schlüssel umkehrbar. Beim Passwort-Hashing ist diese Rückgewinnung nicht nötig: Das System prüft eine Eingabe durch erneutes Berechnen und Vergleichen.

Teste dich
Frage 1 von 2LeichtWelche Aussage beschreibt den wichtigsten Unterschied zwischen Salt und Pepper?
Lösung: Der Salt darf beim Hash gespeichert werden, der Pepper muss geheim und getrennt aufbewahrt werden — Salt individualisiert die Berechnung. Pepper ergänzt sie um ein getrennt gespeichertes Geheimnis.
Frage 2 von 2SchwerBei einem Angriff werden Datenbank und Anwendung samt Pepper gemeinsam kompromittiert. Welche Schutzwirkung bleibt sicher bestehen?
Lösung: Individuelle Salts verhindern weiterhin die direkte Wiederverwendung derselben Kandidatenberechnung über alle Konten — Sicherheitsmaßnahmen wirken nur innerhalb ihres Bedrohungsmodells. Der Verlust des Peppers hebt nicht automatisch die Individualisierung durch Salts auf.
Karteikasten
Karteikasten

Überlege zuerst selbst und drehe die Karte anschließend zum Prüfen um.

Alles auf einen Blick
Mindmap
  • Sichere Passwortspeicherung
    • Individueller Salt
      • unterschiedliche Hashes bei gleichen Passwörtern
      • Schutz vor gemeinsamen Vorbereitungen
    • Passwort-Hashverfahren
      • hoher Aufwand pro Rateversuch
      • etablierte Bibliothek und passende Parameter
    • Pepper als Zusatzschutz
      • geheim
      • getrennt von der Datenbank
    • Loginprüfung
      • Salt und Parameter lesen
      • Eingabe hashen und Ergebnis vergleichen
    • Grenzen
      • Salt verhindert das Raten eines einzelnen Passworts nicht
      • schwache Passwörter bleiben ein Risiko
Abschluss-Check
Teste dich
Frage 1 von 3LeichtWelche Aussage über einen sicheren Salt stimmt?
Lösung: Er ist zufällig, individuell und darf zusammen mit dem Hash gespeichert werden — Salt individualisiert die Hashberechnung, ist aber kein eigenständiges Hashverfahren.
Frage 2 von 3MittelZwei gespeicherte Konten haben denselben Hash. Welcher Gestaltungsfehler ist besonders wahrscheinlich?
Lösung: Es wurden keine individuellen Salts verwendet — Bei demselben Verfahren führen individuelle Salts auch bei gleichen Passwörtern zu unterschiedlichen gespeicherten Ergebnissen.
Frage 3 von 3SchwerEin Entwickler sagt: „Unsere Salts stehen in der Datenbank. Deshalb sind sie nutzlos.“ Wie beurteilst du die Aussage?
Lösung: Sie ist falsch, weil ein Salt nicht geheim sein muss und trotzdem Vorberechnungen sowie kontenübergreifende Wiederverwendung erschwert — Die Wirkung des Salts beruht auf Individualität, nicht auf Geheimhaltung. Gegen das Raten eines einzelnen Passworts braucht es zusätzlich ein aufwendiges Passwort-Hashverfahren.

Du kannst einen Speicherentwurf nun mit drei Fragen prüfen: Hat jedes Passwort einen eigenen zufälligen Salt? Nutzt das System ein geeignetes langsames Passwort-Hashverfahren? Werden zusätzliche Geheimnisse wie ein Pepper wirklich getrennt geschützt?

Passend dazu