Verschlüsselung, Hashing und HMAC verwenden kryptografische Funktionen, lösen aber unterschiedliche Aufgaben. Ausgangspunkt ist die Frage: Was muss geschützt oder überprüft werden?
- Verschlüsselung, wenn Daten vertraulich bleiben und später wiederhergestellt werden müssen;
- Hashing für einen reproduzierbaren Fingerabdruck;
- HMAC zur Authentifizierung einer Nachricht mit einem gemeinsamen Geheimnis;
- eine Schlüsselableitungsfunktion wie PBKDF2 für Werte aus Passwörtern.
Verschlüsselung schützt Vertraulichkeit
Verschlüsselung wandelt lesbare Daten mithilfe eines Schlüssels in Ciphertext um. Mit dem richtigen Schlüssel und den nötigen Parametern ist der Vorgang umkehrbar.
AES ist ein symmetrischer Verschlüsselungsalgorithmus. Das AES-Tool veranschaulicht dieses Modell.
Verschlüsselung ist richtig, wenn der ursprüngliche Wert später wieder benötigt wird. Ein Hash ist dafür kein Ersatz.
Hashing erzeugt einen Fingerabdruck
Eine Hashfunktion wandelt eine Eingabe in einen Digest fester Länge um. Dieselbe Eingabe mit demselben Algorithmus erzeugt dasselbe Ergebnis.
Der Hash-Generator und das Hash-Vergleichstool unterstützen diese Arbeitsabläufe.
Ein Hash allein beweist nicht, dass ein Digest von einer autorisierten Partei stammt. Wer Daten und Digest austauschen kann, kann auch ein neues Paar berechnen.
HMAC verbindet Hash und Geheimnis
HMAC nutzt eine Hashfunktion zusammen mit einem geheimen Schlüssel. Parteien mit demselben Geheimnis können einen Message Authentication Code berechnen und prüfen.
Der HMAC-Generator und -Verifier zeigt den Unterschied.
HMAC verbirgt die Nachricht nicht. Es schützt Integrität und Authentizität, nicht Vertraulichkeit.
PBKDF2 ist mehr als ein einzelner Passwort-Hash
Allgemeine Hashfunktionen sind absichtlich schnell. Das erleichtert wiederholtes Erraten von Passwörtern.
PBKDF2 wiederholt eine pseudorandom Funktion mit Salt und Iterationszahl. Das PBKDF2-Tool zeigt Passwort, Salt, Iterationen und Ausgabelänge.
Ein Salt ist kein zusätzliches Passwort und kann zusammen mit dem abgeleiteten Wert gespeichert werden.
Welcher Mechanismus passt?
| Bedarf |
Mechanismus |
Umkehrbar? |
Geheimnis nötig? |
| Daten verbergen und später wiederherstellen |
AES |
Ja |
Ja |
| Fingerabdruck erzeugen |
Hash |
Nein |
Nein |
| Nachricht mit gemeinsamem Geheimnis authentifizieren |
HMAC |
Nein |
Ja |
| Wert aus Passwort ableiten |
PBKDF2 |
Nein |
Passwort |
Die Mechanismen können gemeinsam eingesetzt werden.
Häufige Fehler
Kodierung ist keine Verschlüsselung. Base64 bietet keine Vertraulichkeit.
Hashing ist keine Verschlüsselung. Ein Digest ist kein verschlüsselter Text.
HMAC verbirgt keine Nachricht. Es authentifiziert sie mit einem Geheimnis.
Passwörter sollten normalerweise nicht als entschlüsselbare Anwendungsdaten gespeichert werden.
Mehr Kontext bietet Web-Sicherheit: grundlegende Schutzmaßnahmen.