Zum Hauptinhalt springen

⭐️ Hashes knacken und würzen

Kryptographische Hashfunktion wie 👉 SHA2 sind also so konstruiert, dass man aus dem Hashwert nicht auf den ursprünglichen Eingabewert (z.B. das Passwort) schliessen kann. Doch ist das wirklich so einfach?

Schauen Sie sich beispielsweise folgenden Ausschnitt aus einer Benutzerdatenbank an:

BenutzernamePasswort-Hash (SHA2)
bobca167011d78e1241518bc68ee56176b993b7f1967095d4ebe5bc70f72f89f56b
alicee4ad93ca07acb8d908a3aa41e920ea4f4ef4f26e7f86cf8291c5db289780a5ae
charliee4ad93ca07acb8d908a3aa41e920ea4f4ef4f26e7f86cf8291c5db289780a5ae
tammy3700adf1f25fab8202c1343c4b0b4e3fec706d57cad574086467b8b3ddf273ec
suec8f0bb8290089184ffeb3317f1c3185c7ffce3f442e6c2c97e4de489e8f231a5
Was fällt Ihnen auf?

Was fällt Ihnen in dieser Tabelle auf? Wie könnten Sie diese Erkenntnis unter Umständen nutzen, um doch auf das ursprüngliche Passwort zu schliessen?

Diskutieren Sie zu zweit und halten Sie Ihre Beobachtungen fest.

Laden...
Laden...

Rainbow Tables

Fassen wir zusammen:

  • Gleiche Passwörter führen zu gleichen Hashes (jedenfalls unter Verwendung derselben Hashfunktion).
  • Wenn wir für einen bestimmten Hash das dazugehörige Passwort kennen, dann ist die Kenntnis des Hashwerts genauso nützlich wie die Kenntnis des Passworts.

Aus der Sicht eines Angreifers ist damit folgende Strategie interessant:

  1. Wir nehmen eine Liste von häufig verwendeten Passwörtern, zum Beispiel von 👉 Wikipedia.
  2. Wir berechnen für jedes Passwort den entsprechenden Hash mit einer häufig verwendeten Hashfunktion (z.B. SHA2) und erstellen daraus eine Tabelle.
  3. Wenn wir an eine Datenbank mit gehashten Passwörtern gelangen, dann suchen wir für jeden Hash in der Datenbank den passenden Eintrag in unserer Tabelle.
  4. Wenn der Benutzer ein sicheres Passwort verwendet, dann haben wir Pech gehabt — wir werden in unserer Tabelle dazu keinen Hash finden. Wenn er aber ein häufig verwendetes Passwort gewählt hat, dann taucht der Hash in unserer Tabelle auf und wir kennen sein Passwort.

Eine solche Passwort-Hash-Tabelle bezeichnen wir als Rainbow Table. Wir müssen sie auch nicht selbst erstellen, denn man findet sie problemlos im Internet. Es gibt sogar Online-Tools, mit denen man einen Passwort-Hash in einer solchen Rainbow Table nachschlagen kann.

Hashes knacken

Alle Benutzer in der obigen Benutzerdatenbank haben ein unsicheres, häufig verwendetes Passwort gewählt: jeder dieser Passwort-Hashes ist in den einschlägigen Rainbow Tables zu finden.

  1. Verwenden Sie das Online-Tool 👉 CrackStation um die Passwörter von alice und charlie sowie bob herauszufinden (siehe Tabelle ganz oben).
  2. Überlegen Sie sich ein weiteres Passwort, von dem Sie glauben, dass es mit CrackStation geknackt werden kann. Verwenden Sie das untenstehende Hashing-Tool um dessen SHA2-Hashwert zu berechnen, welchen Sie dann bei CrackStation überprüfen können.
  3. Überlegen Sie sich nun auch noch ein Passwort, von dem Sie glauben, dass es auf keiner Rainbow Table erscheint. Verwenden Sie wiederum das Hash-Tool und CrackStation um Ihre Vermutung zu prüfen.

Halten Sie alle Beobachtungen unten im Textfeld fest.

SHA-2 Hash

Input

SHA-2 Hash

Laden...

Hashes würzen

Entwickler verwenden zwei wichtige Strategien, um ihre Benutzer im Falle eines Datenlecks vor der Verwendung von Rainbow Tables zu schützen: Salts und Peppers. Diese beiden Konzepte werden im folgenden Video erklärt:

Passwörter salzen

Sie kennen bereits die Passwörter von alice, charlie und tammy. Nun wechseln Sie von der bösen auf die gute Seite.

Legen Sie einen beliebigen Salt fest und erstellen Sie anschliessend eine neue Benutzertabelle mit Einträgen für diese User (z.B. in OneNote). Verwenden Sie beim Hashen der Passwörter diesmal aber den gewählten Salt. Überprüfen Sie dann nochmal mit 👉 CrackStation, ob die Benutzer jetzt wirklich gegen die Verwendung von Rainbow Tables geschützt sind.

SHA-2 Hash

Input

SHA-2 Hash

Fügen Sie am Schluss hier ein Screenshot Ihrer neuen Benutzertabelle ein:

Laden...