HMAC
HMAC (hashbasierter Nachrichtenauthentifizierungscode) ist ein MAC, der eine Hashfunktion mit einem geheimen Schlüssel kombiniert und Integrität und Authentizität liefert.
Zweck
Baut aus einer bestehenden Hashfunktion einen sicheren MAC, ohne eigenes Design.
Mechanismus
HMAC(K, m) = H((K ⊕ opad) || H((K ⊕ ipad) || m)), wobei ipad/opad feste Paddings sind. Schlüssel, die länger als der Hashblock sind, werden zuerst gehasht. Muss mit einem sicheren Hash (SHA-256) verwendet werden; obwohl MD5/SHA-1 als Hash gebrochen sind, gelten HMAC-MD5/SHA1 als vergleichsweise sicher.
Anwendungsfälle
- API-Anforderungssignierung (z. B. AWS SigV4)
- JWT-HS256-Signierung
- TLS-Datensatz-MAC
- Manipulationsschutz für Cookies
Beispiele
- Eingabe
key + messageOutputHMAC-SHA256 tag32-byte authentication tag
Häufige Fehler
- Using the bare hash H(key||msg) as a MAC (vulnerable to length-extension attacks)
- Always use the HMAC construction
Verwandte Begriffe
SHA-256
SHA-256 ist das 256-Bit-Ausgabemitglied der SHA-2-Familie, weit verbreitet in TLS, Blockchains und Kryptoanwendungen, ohne bekannte praktische Angriffe. GLOSSAR
SHA-512
SHA-512 ist das 512-Bit-Ausgabemitglied der SHA-2-Familie; auf 64-Bit-Plattformen schneller als SHA-256, bietet es eine größere Sicherheitsmarge. GLOSSAR
MD5
MD5 ist eine 128-Bit-kryptografische Hashfunktion von Ronald Rivest; durch Kollisionsangriffe als unsicher erwiesen, wird sie heute nur für nicht sicherheitsrelevante Zwecke wie Prüfsummen verwendet. GLOSSAR
JWT
JWT (JSON Web Token) ist ein kompakter, in sich geschlossener Token, der Claims sicher als JSON-Objekt übermittelt; weit verbreitet für zustandslose Authentifizierung und Informationsaustausch. GLOSSAR