Zum Inhalt springen
uencoder

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 + message
    Output
    HMAC-SHA256 tag

    32-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

Verwandte Tools

References