RFC 2104 – HMAC: Keyed-Hashing for Message Authentication

StatusInformational
VeröffentlichtFebruar 1997
Volltextrfc-editor.org/rfc/rfc2104

RFC 2104 spezifiziert HMAC (Keyed-Hashing for Message Authentication), einen Mechanismus zur Absicherung der Nachrichtenintegrität mittels kryptografischer Hashfunktionen und eines geheimen Schlüssels. HMAC dient als Message Authentication Code (MAC) und ermöglicht es zwei Parteien, die Authentizität und Integrität ihrer Kommunikation zu überprüfen, ohne die zugrunde liegende Hashfunktion modifizieren zu müssen.

Der Kern des Verfahrens besteht aus einer zweistufigen Hashoperation: Der geheime Schlüssel wird zunächst mit einem inneren Padding (ipad) mittels XOR verknüpft, die Nachricht angehängt und gehasht. Dieses Zwischenergebnis wird anschließend mit dem Schlüssel, der mit einem äußeren Padding (opad) verknüpft wurde, kombiniert und erneut gehasht: H(K XOR opad, H(K XOR ipad, text)). Die Padding-Konstanten bestehen aus den wiederholten Bytes 0x36 (ipad) und 0x5C (opad) auf die Blocklänge der jeweiligen Hashfunktion.

HMAC ist ein fundamentaler Sicherheitsstandard, der bis heute in zahlreichen Internetprotokollen wie IPsec, TLS und SSH eingesetzt wird. Die kryptografische Stärke von HMAC basiert auf der Sicherheit der gewählten Hashfunktion; durch die spezielle Konstruktion bleibt HMAC selbst dann sicher, wenn Kollisionsangriffe gegen die reine Hashfunktion bekannt werden, wie etwa bei MD5.