Eine kryptografische Hashfunktion bildet beliebige Eingaben auf einen Fingerabdruck fester Länge ab. Sie ist deterministisch: dieselbe Eingabe erzeugt denselben Digest, während schon eine kleine Änderung einen völlig anderen Wert liefern sollte.
Hash, Integrität und Fingerprint-Vergleich: Was ein Hash wirklich beweist
Unterscheide Hashing, Verschlüsselung und Kodierung und verstehe SHA-256, SHA-3, Kollisionen sowie die Grenzen eines Hashes ohne Authentisierung.
Inhalt anzeigen
Hashing ist weder Verschlüsselung noch Kodierung
Verschlüsselung ist mit einem Schlüssel umkehrbar. Kodierung ändert nur die Darstellung und soll ebenfalls wieder dekodiert werden können. Ein Hash ist dagegen nicht dazu gedacht, die ursprüngliche Eingabe wiederherzustellen.
Moderne und veraltete Hashverfahren unterscheiden
SHA-256 und SHA-3 sind etablierte moderne Verfahren für Integritätsaufgaben. MD5 und SHA-1 kommen weiterhin in älteren Systemen vor, besitzen aber bekannte Kollisionsschwächen und sollten nicht für neue Designs gewählt werden, die Kollisionsresistenz benötigen.
Ein gleicher Hash beweist Gleichheit, nicht Herkunft
Wenn eine vertrauenswürdige Quelle einen Fingerabdruck über einen vertrauenswürdigen Kanal veröffentlicht, kann ein Vergleich Veränderungen erkennen. Kann ein Angreifer aber Datei und angezeigten Hash ersetzen, reicht der Vergleich nicht für Authentizität aus. Dafür kann ein HMAC oder eine digitale Signatur erforderlich sein.
Mit dem Hash-Generator und dem Hash-Vergleich lassen sich solche Prüfungen lokal durchführen. Der HMAC-Generator und -Verifier zeigt den Unterschied zwischen einem ungeschützten Digest und einem MAC mit gemeinsamem Geheimnis.
Passwörter brauchen spezielle Verfahren
Schnelle Hashfunktionen sind für große Datenmengen effizient, machen aber auch massenhaftes Passwort-Raten effizient. Passwortspeicherung verwendet deshalb speziell konfigurierte Verfahren mit Salt und Arbeitsfaktor.
Eine breitere Entscheidungshilfe bietet Verschlüsselung, Hashing und HMAC. Für Browser-Ressourcen setzt Subresource Integrity die Hash-Idee direkt im HTML ein.
War dieser Artikel hilfreich?
Quellen und Referenzen
- NIST — FIPS 180-4: Secure Hash Standard (öffnet in einem neuen Tab)Seite auf Englisch
- NIST — FIPS 202: SHA-3 Standard (öffnet in einem neuen Tab)Seite auf Englisch
- NIST — Policy on Hash Functions (öffnet in einem neuen Tab)Seite auf Englisch
- RFC 6151 — Updated Security Considerations for MD5 and HMAC-MD5 (öffnet in einem neuen Tab)Seite auf Englisch