Was ist HMAC?

Ein Verfahren für Message Authentication Codes, das eine Hashfunktion und einen symmetrischen Schlüssel verwendet. Mit zwei aus dem Schlüssel abgeleiteten Werten K ⊕ ipad und K ⊕ opad wird HMAC(K, m) = H((K ⊕ opad) ‖ H((K ⊕ ipad) ‖ m)) berechnet, die Hashfunktion also zweimal angewendet. Anders als beim einfachen Hashen der Verkettung von Schlüssel und Nachricht ist HMAC auch mit Hashfunktionen mit Merkle–Damgård-Konstruktion wie SHA-256 nicht anfällig für Length-Extension-Angriffe. Es ist in RFC 2104 festgelegt und wird in TLS, IPsec, JWT, der Schlüsselableitungsfunktion HKDF und anderem breit eingesetzt.

Japanische Bezeichnung: HMAC

„HMAC“ kommt in 4 Übungsfragen aus 2 Themen vor, z. B. Grundlagen und Anwendungen der Kryptografie, Grundlagen der Informationssicherheit.

Fachgebiet: Grundlagen und Anwendungen der Kryptografie

Jetzt üben: Fragen zu HMAC

Welche Aussage vergleicht einen Message Authentication Code (MAC) und eine digitale Signatur richtig?

  1. AEin MAC kann von jedem mit einem öffentlichen Schlüssel geprüft werden, daher ist seine Wirkung für die Nichtabstreitbarkeit stärker als die einer digitalen Signatur
  2. BEin MAC wird mit einem symmetrischen Schlüssel erstellt, den Sender und Empfänger teilen; er erkennt Manipulationen, kann aber keine Nichtabstreitbarkeit bieten, also Dritten nicht beweisen, dass der Sender die Nachricht erstellt hat, weil auch der Empfänger denselben MAC erzeugen kann
  3. CEin MAC berechnet nur einen Hashwert ohne Schlüssel; selbst wenn ein Angreifer die Nachricht verändert und den MAC neu berechnet, kann der Empfänger es bemerken
Antwort und Erläuterung anzeigen

Antwort: B. Ein MAC wird mit einem symmetrischen Schlüssel erstellt, den Sender und Empfänger teilen; er erkennt Manipulationen, kann aber keine Nichtabstreitbarkeit bieten, also Dritten nicht beweisen, dass der Sender die Nachricht erstellt hat, weil auch der Empfänger denselben MAC erzeugen kann

Ein Message Authentication Code (MAC) ist ein kurzer Wert, der aus einer Nachricht und einem symmetrischen Schlüssel berechnet wird; verbreitet ist HMAC, das eine Hashfunktion verwendet. Der Empfänger berechnet ihn mit demselben Schlüssel neu und vergleicht; stimmen die Werte überein, stammt die Nachricht von jemandem, der den Schlüssel kennt, und wurde unterwegs nicht verändert. Ein Angreifer ohne Kenntnis des Schlüssels kann für eine veränderte Nachricht keinen korrekten MAC erzeugen. Der Empfänger besitzt jedoch denselben Schlüssel und kann ebenfalls MACs erzeugen. Er kann Dritten daher nicht beweisen, dass der Sender die Nachricht erstellt hat; ein MAC bietet also keine Nichtabstreitbarkeit. Eine digitale Signatur lässt sich nur mit dem privaten Schlüssel des Senders erstellen und von jedem mit dem öffentlichen Schlüssel prüfen, sie kann also Nichtabstreitbarkeit bieten. MACs sind dagegen leicht zu berechnen und werden verbreitet für Prüfungen zwischen den beiden Beteiligten eingesetzt, etwa um Manipulationen an jedem einzelnen Paket einer Verbindung zu erkennen. Einen einfachen Hashwert ohne Schlüssel kann ein Angreifer zusammen mit der veränderten Nachricht neu berechnen, er eignet sich daher nicht zur Erkennung absichtlicher Manipulationen.

Den Hashwert SHA-256(K ‖ m) der Verkettung aus geheimem Schlüssel K und Nachricht m als Tag zur Erkennung von Manipulationen zu verwenden, gilt als gefährlich. Was ist der richtige Grund?

  1. AWer Tag und Länge der Eingabe kennt, kann ohne Kenntnis von K das Tag einer Nachricht berechnen, an die hinter m weitere Daten angehängt wurden
  2. BEs wurde ein effizientes Verfahren gefunden, aus der Ausgabe von SHA-256 nur den am Anfang der Eingabe stehenden Schlüssel K zurückzurechnen
  3. CSteht der Schlüssel K vor der Nachricht, wird die Eingabe länger, und bei SHA-256 lassen sich leichter Kollisionen finden
Antwort und Erläuterung anzeigen

Antwort: A. Wer Tag und Länge der Eingabe kennt, kann ohne Kenntnis von K das Tag einer Nachricht berechnen, an die hinter m weitere Daten angehängt wurden

Bei einer Hashfunktion mit Merkle–Damgård-Konstruktion wie SHA-256 ist der ausgegebene Hashwert genau der innere Zustand nach Verarbeitung des letzten Blocks. Ein Angreifer kann daher das Tag als inneren Zustand übernehmen, die Berechnung fortsetzen und ohne Kenntnis von K den Hashwert einer Nachricht berechnen, bei der an K ‖ m ein Padding fester Form und beliebige Daten angehängt sind (Length-Extension-Angriff). HMAC verwendet zwei aus dem Schlüssel abgeleitete Werte und hasht den inneren Hashwert noch einmal zusammen mit dem Schlüssel; diese Struktur verhindert den Angriff. SHA-3 ist aufgrund seiner Struktur gegen diesen Angriff immun, daher ist mit KMAC auch ein Verfahren standardisiert, das den Schlüssel einfach voranstellt.

„HMAC“ in den Erläuterungen

Fragen mit „HMAC“ (4)

  1. Welche Aussage vergleicht einen Message Authentication Code (MAC) und eine digitale Signatur richtig?
  2. Den Hashwert SHA-256(K ‖ m) der Verkettung aus geheimem Schlüssel K und Nachricht m als Tag zur Erkennung von Manipulationen zu verwenden, gilt als gefährlich. Was ist der richtige Grund?
  3. Welcher Grund ist angemessen dafür, dass Protokolle wie TLS 1.3 das im ECDHE-Schlüsselaustausch gewonnene gemeinsame Geheimnis nicht direkt als Schlüssel verwenden, sondern die Schlüssel mit einer Schlüsselableitungsfunktion (KDF) wie HKDF erzeugen?
  4. Welche Kombination gibt an, was die Cipher Suite TLS_AES_128_GCM_SHA256 von TLS 1.3 festlegt?

Verwandte Begriffe

Hashfunktion TLS (Transport Layer Security) Diffie-Hellman-Schlüsselaustausch Message Authentication Code (Nachrichtenauthentifizierungscode) Digitale Signatur Informationsentropie AES Authentifizierte Verschlüsselung (AEAD) RSA-Kryptosystem Betriebsmodus für Blockchiffren

Zur Glossarübersicht