Die drei wesentlichen Eigenschaften sind Urbildresistenz (ein Digest verrät nichts über seine Eingabe), zweite Urbildresistenz (für eine gegebene Eingabe kann keine andere Eingabe mit demselben Digest gefunden werden) und Kollisionsresistenz (zwei Eingaben mit demselben Digest können überhaupt nicht gefunden werden). Algorithmen wie MD5 und SHA-1 sind an diesen Eigenschaften gescheitert und dürfen nicht verwendet werden, wo sie zählen.
Hashing erscheint überall in der Sicherheit: Integritätsprüfungen und Manipulationsnachweise, digitale Signaturen, die Digests statt ganzer Nachrichten signieren, Content Addressing und — mit bewusstem Mehraufwand — Passwortspeicherung. Passwörter brauchen gesalzene, rechenaufwendige Funktionen wie dedizierte Passwort-Hashing-Algorithmen; ein schneller Allzweck-Hash ist für diese spezifische Aufgabe das falsche Werkzeug.
Wichtigste Punkte
IntegritätsnutzungEin übereinstimmender Digest bestätigt, dass sich Inhalte seit der Berechnung des Digests nicht geändert haben — vorausgesetzt, der Digest selbst wurde über einen vertrauenswürdigen Kanal bezogen.
PasswortspeicherungGesalzene, langsam gehashte Digests statt schneller Hashes speichern; das Salt vereitelt vorberechnete Lookups, und der Aufwand verlangsamt Brute-Force-Raten im großen Maßstab.
AlgorithmuswahlAktuelle zugelassene Familien (SHA-2, SHA-3) verwenden und MD5 sowie SHA-1 für Sicherheitszwecke als gebrochen behandeln — sie bleiben nur für nicht-adversarielle Prüfsummen akzeptabel.
Wichtige EinschränkungEin Hash beweist nur, dass zwei Eingaben unter einer Funktion zu einem Zeitpunkt übereinstimmten. Er bietet keine Vertraulichkeit — der Digest einer erratbaren Eingabe wird durch Ausprobieren von Kandidaten trivial wiederhergestellt —, und ein über einen nicht vertrauenswürdigen Kanal berechneter Hash kann zusammen mit dem Inhalt ausgetauscht werden, für den er bürgt.