Worum geht’s
Ein Download soll unverfälscht sein, ein Passwort darf nie im Klartext liegen, eine Signatur muss auf genau ein Dokument passen. Hinter all dem steckt dieselbe Bausteinklasse: kryptografische Hashfunktionen. Wer im Second-Level Integrität prüft, Backups verifiziert oder eine Passwort-Datenbank bewertet, muss wissen, was ein Hash leistet — und was er ausdrücklich nicht leistet.
Konzept
Eine Hashfunktion bildet eine beliebig lange Eingabe auf einen festen, kurzen Wert (den Digest) ab. Kryptografische Hashes haben drei Kerneigenschaften:
- Deterministisch: gleiche Eingabe → immer gleicher Hash.
- Einwegfunktion: aus dem Hash lässt sich die Eingabe nicht zurückrechnen.
- Lawineneffekt: ein einzelnes geändertes Bit verändert den Hash vollständig.
Eine Kollision liegt vor, wenn zwei verschiedene Eingaben denselben Hash erzeugen. Bei einer guten Funktion ist das praktisch unmöglich zu erzeugen. MD5 und SHA-1 gelten als gebrochen (Kollisionen sind herstellbar) — Standard heute ist SHA-256 und größer.
Wichtig: Schnelle Hashes (SHA-256) sind ideal für Integrität, aber falsch für Passwörter. Passwörter brauchen langsame, gesalzene Verfahren (Argon2, bcrypt, scrypt):
- Salt: ein pro Eintrag zufälliger Wert, der vor dem Hashen angehängt wird. Er verhindert, dass identische Passwörter denselben Hash ergeben, und macht vorberechnete Rainbow-Tables wertlos.
- Work-Factor: die Funktion ist absichtlich rechenintensiv, damit Brute-Force teuer bleibt.
Die Botschaft des Diagramms: Was für Integrität gut ist (schnell), ist für Passwörter gefährlich — ein langsames Verfahren bremst Angreifer aus.
Beispiel-Fall
Aufgabe: Ein Kollege lädt ein ISO-Image herunter und will prüfen, ob es unverfälscht ist.
Der Anbieter veröffentlicht a1b2…f9 als SHA-256-Prüfsumme.
- Image lokal hashen:
sha256sum image.iso→ liefert einen 64-stelligen Hex-Wert. - Den ausgegebenen Hash zeichengenau mit der veröffentlichten Summe vergleichen.
- Stimmen sie überein → das Image ist bitidentisch zur Vorlage. Eine einzige geänderte Byte-Stelle (Übertragungsfehler, Manipulation) hätte durch den Lawineneffekt einen komplett anderen Hash erzeugt.
- Wichtig: Der Hash beweist Integrität, nicht Echtheit — dafür müsste die Prüfsumme selbst signiert sein (z. B. per GPG), sonst könnte ein Angreifer Image und Summe tauschen.
Anwenden
Erzeuge den Hash zweimal für denselben Text — er ist identisch. Das ist Determinismus in Aktion.
- Gib einen kurzen Text ein und erzeuge den SHA-256-Hash.
- Ändere einen einzigen Buchstaben und beobachte den Lawineneffekt — der Hash ist komplett anders.
- Vergleiche SHA-1 und SHA-256 desselben Texts: unterschiedliche Länge, beide deterministisch.
Selbsttest
Praxis-Challenge
Lade eine kleine Datei herunter (z. B. ein Tool-Binary mit veröffentlichter Prüfsumme). Erzeuge den SHA-256-Hash im Tool, vergleiche ihn zeichengenau mit der Vorgabe und formuliere in einem Satz, was ein Treffer beweist — und was er nicht beweist (Echtheit vs. Integrität).