Zurück zur Übersicht

Begriff

Salt (Cryptography)

Security Cryptography S1
2 Quellen 0 Lernpfade 1 Backlink 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.

Wenn zwei User das gleiche Passwort haben ("geheim123"), haben sie auch den gleichen Hash. Ein Hacker sieht in der Datenbank: "Aha, User A und User B haben das gleiche Passwort." Und er kann eine Rainbow Table nutzen. Um das zu verhindern, gibt man Salz dazu. Rezept:

  1. Generiere eine Zufallszahl (Salt) für User A: "X9z".
  2. Hash = sha256("geheim123" + "X9z").
  3. Speichere Salt ("X9z") offen neben dem Hash in der Datenbank.

Auch wenn User B auch "geheim123" nutzt, kriegt er ein anderes Salt ("A7b") -> Der Hash sieht komplett anders aus.

Merksatz: Zufällige Daten, die vor dem Hashen an ein Passwort angehängt werden, um identische Passwörter unterschiedlich aussehen zu lassen und Rainbow-Table-Angriffe zu verhindern.


Quick-Check

  1. Muss das Salt geheim sein?
    Nein! Es steht meist im Klartext in der gleichen Datenbank-Zeile wie der Hash. Sein einziger Zweck ist Einzigartigkeit, nicht Geheimhaltung.
  2. Client-Side Salting?
    Das Passwort schon im Browser salzen und hashen? Schlechte Idee. Dann ist der Hash das "neue Passwort". Wenn der Hacker den Hash klaut, kann er sich damit einloggen (Pass-the-Hash). Hashing gehört auf den Server.
  3. Kollision im Salt?
    Extrem unwahrscheinlich bei 128 Bit. Und selbst wenn: Dann haben halt zufällig zwei User das gleiche Salt. Kein Sicherheitsbruch, nur ein minimaler Zufall.