Eine Hash-Funktion ordnet Daten beliebiger Größe einem Wert fester Größe zu. Dieselbe Eingabe erzeugt immer dieselbe Ausgabe. Ändert man ein einziges Bit, ändert sich die Ausgabe vollständig. Diese Eigenschaft macht Hashes nützlich für Integritätsprüfungen. Man lädt eine Datei herunter und vergleicht ihren Hash mit dem veröffentlichten Wert. Stimmen sie überein, ist die Datei intakt angekommen. Andernfalls wurde sie verändert.
Hashfunktionen sind Einwegfunktionen. Man kann nicht vom Hashwert zum Originaldatensatz zurückrechnen. Daher eignen sie sich zur Passwortspeicherung. Systeme speichern den Hashwert eines Passworts, nicht das Passwort selbst. Beim Anmelden berechnet das System den Hashwert der Eingabe und vergleicht ihn mit dem gespeicherten Hashwert. Bei einem Datenbankleck erhält der Angreifer Hashwerte, nicht die Passwörter. Schwache Passwörter lassen sich dennoch mit Rainbow-Tabellen oder Brute-Force-Angriffen knacken. Deshalb ist das sogenannte Salting so wichtig. Ein Salt ist ein zufälliger Wert, der vor dem Hashing an jedes Passwort angehängt wird, sodass identische Passwörter unterschiedliche Hashwerte erzeugen. SHA-256 und SHA-3 sind gängige kryptografische Hashfunktionen. MD5 und SHA-1 gelten als unsicher und sollten nicht für Sicherheitszwecke verwendet werden. Hashfunktionen werden auch für Blockchains, digitale Signaturen und die Deduplizierung von Dateien eingesetzt.
Eigenschaften der Hash-Funktion
- Deterministisch – gleiche Eingabe, gleiche Ausgabe
- Schnell – schnell zu berechnen
- Vorbildresistent – nicht umkehrbar
- Kollisionsresistent – es ist schwierig, zwei Eingaben mit demselben Hashwert zu finden.
Ein Hashwert ist ein Fingerabdruck, keine Verschlüsselung. Er beweist die Integrität. Er verbirgt keine Daten.
Comments
No comments yet. Be the first to share a thought.
Leave a comment