Ein Hash ist das Ergebnis einer kryptografischen Hashfunktion. Diese nimmt eine beliebig große Eingabe
(z. B. eine Datei oder ein Passwort) und berechnet daraus eine Zeichenkette mit fester Länge.
Hashfunktionen sind Einwegfunktionen, das bedeutet, der ursprüngliche Wert kann nicht aus dem Hash zurückberechnet werden.
Zum Beispiel erzeugt der Algorithmus SHA-256 (Secure Hash Algorithm 256) einen 256-Bit-Hash, der
als 64 Zeichen lange Hexadezimalzeichenkette dargestellt wird.
Wozu werden Hashes verwendet?
Speichern von Passwörtern:
Statt Passwörter im Klartext zu speichern, wird ihr Hashwert gespeichert.
Beim Anmeldevorgang wird das eingegebene Passwort erneut gehasht und mit dem gespeicherten Wert verglichen.
Dadurch sieht ein Angreifer, der eine Datenbank stiehlt, nur die Hashes – nicht die echten Passwörter.
Integritätsprüfung:
Bereits eine minimale Änderung der Eingabe führt zu einem völlig anderen Hashwert (Avalanche-Effekt).
Dies wird genutzt, um Dateien oder Nachrichten auf Manipulationen zu prüfen.
Digitale Signaturen und Authentifizierung:
Hashes werden in der Kryptographie verwendet, um Daten sicher zu verifizieren und Identitäten zu bestätigen.
Hashes knacken
Finde die ursprünglichen Passwörter der folgenden MD5-Hashes und erhalte die Flag:
Öffne dafür Crackstation. Kopiere die folgenden Hashes in das Eingabefeld:
Welches Passwort gehört zu den Hashes? Gib eines der Passwörter als Flag ein:
Schwachstellen: Rainbow Tables und Hash-Kollisionen
Obwohl Hashes ein starkes Sicherheitsmerkmal sind, gibt es Angriffsmethoden wie Rainbow Tables.
Dabei handelt es sich um vorberechnete Tabellen mit gängigen Passwörtern und deren Hashes.
Ein Angreifer kann einen gestohlenen Hash mit diesen Tabellen abgleichen, um das ursprüngliche Passwort zu ermitteln.
Besonders schwache oder häufig verwendete Passwörter (z. B. "123456") sind leicht zu knacken.
Um dies zu verhindern, wird ein Salt eingesetzt. Dabei wird vor dem Hashing eine zufällige Zeichenkette an das Passwort angehängt.
Selbst wenn zwei Benutzer dasselbe Passwort haben, ergibt sich durch das Salt ein unterschiedlicher Hashwert.
Dadurch werden Rainbow Tables wirkungslos.
Eine weitere potenzielle Schwäche sind Hash-Kollisionen.
Dabei erzeugen zwei verschiedene Eingaben denselben Hash.
Moderne Hashfunktionen wie SHA-256 sind so konzipiert, dass solche Kollisionen extrem unwahrscheinlich sind.
Mit Salt arbeiten
Um Rainbow Tables zu umgehen, wird ein Salt verwendet. Es wird eine zufällige Zeichenkette an das Passwort angehängt, bevor es gehasht wird. Das Ergebnis ist ein einzigartiger Hash, selbst für gleiche Passwörter.
Hier ist ein Beispiel:
Passwort: password123
Salt: 2023
Eingabe in CyberChef: password1232023
Hashing-Methode: MD5
Finde den MD5-Hash mit
CyberChef
und gib ihn ein, um deine Flag zu erhalten:
Kannst du auch diesen neuen Hash mit Crackstation knacken?