0Pricing
Cryptology Academy · Lektion

HMAC-Aufbau und Sicherheitsnachweis

Vollziehen Sie den Aufbau mit ipad und opad sowie dessen Sicherheitseigenschaften nach.

HMAC-Aufbau und Sicherheitsnachweis ist eine kostenlose Cryptology Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Cryptology Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Cryptology Academy-Kurs umfasst insgesamt 4 Lektionen.

Willkommen

HMAC ist die standardisierte Konstruktion für einen schlüsselabhängigen MAC. Das Double-Hash-Design verhindert Length-Extension-Angriffe und verfügt über einen formalen Sicherheitsbeweis, der die Sicherheit von HMAC auf die zugrunde liegende Hashfunktion zurückführt.

HMAC-Konstruktion

HMAC(K, M) = H((K' ⊕ opad) || H((K' ⊕ ipad) || M)) Dabei gilt: - K' = K mit Nullen auf die Blockgröße B aufgefüllt (oder H(K), wenn |K|>B) - ipad = 0x36, B-mal wiederholt - opad = 0x5C, B-mal wiederholt

Warum ipad und opad?

ipad (0x36) und opad (0x5C) sind unterschiedliche Konstanten und stellen sicher, dass K' ⊕ ipad ≠ K' ⊕ opad gilt. Dadurch werden effektiv zwei verschiedene pseudorandom Schlüssel aus K erzeugt, die für das innere und äußere Hashing verwendet werden.

HMAC Schritt für Schritt

Für K=secret, M=message und H=SHA256: 1. K' = K auf 64 Byte aufgefüllt 2. inner_key = K' XOR ipad 3. inner_hash = SHA256(inner_key || M) 4. outer_key = K' XOR opad 5. result = SHA256(outer_key || inner_hash)

HMAC in Python

import hmac, hashlib key = b'my_secret_key' message = b'Hello, World!' mac = hmac.new(key, message, hashlib.sha256) print(mac.hexdigest()) # 64-char hex string (256 bits)

Warum Length Extension bei HMAC scheitert

Gegeben sei HMAC(K,M) = SHA256(outer_key || SHA256(inner_key || M)) Der Angreifer kennt SHA256(inner_key || M) = inner_hash. Er kann diesen Wert jedoch nicht erweitern – der äußere Hash verwendet (outer_key || inner_hash) als Eingabe und nicht nur inner_hash. outer_key ist ihm nicht bekannt.

Sicherheitsbeweis für HMAC (Bellare)

Bellare (1996) hat bewiesen: Wenn die Hashfunktion H eine pseudorandom Funktion (PRF) ist, dann ist auch HMAC eine PRF. In der Praxis bedeutet das: HMAC-SHA256 ist für seine vorgesehenen Sicherheitseigenschaften genauso sicher wie SHA-256.

Schlüssellänge für HMAC

Der HMAC-Schlüssel muss: - Mindestens L Byte lang sein (Länge der Hashausgabe) - Empfohlen: genau L Byte zufällige Daten enthalten - Bei einer Länge > block_size wird der Schlüssel auf block_size vorab gehasht - Verwenden Sie os.urandom(32) für HMAC-SHA256-Schlüssel

HMAC-Kürzung

Die HMAC-Ausgabe kann ohne wesentlichen Sicherheitsverlust auf die halbe Ausgabelänge gekürzt werden. TOTP/HOTP kürzen auf 4 Byte. TLS-MACs werden gekürzt. Kürzen Sie niemals auf weniger als 80 Bit (10 Byte).

HMAC in verschiedenen Kontexten

HMAC-SHA256 wird verwendet für: - TOTP: Authentifizierungscodes (auf 6 Ziffern gekürzt) - TLS 1.2: Sitzungs-MACs (in TLS 1.3 mit AEAD nicht erforderlich) - JWTs: HS256-Signaturen (symmetrisch) - Signierung von API-Anfragen: GitHub-Webhooks, AWS SigV4

HKDF: HMAC-basierte Schlüsselableitung

HKDF(IKM, salt, info, L) verwendet HMAC zweimal: 1. Extract: PRK = HMAC-SHA256(salt, IKM) 2. Expand: OKM = HMAC-SHA256(PRK, info || counter) Wird für die Schlüsselableitung in der TLS-1.3-Key-Schedule, in Signal und in WireGuard verwendet.

Schnelltest

Welchen Zweck erfüllt opad (B-mal wiederholtes 0x5C) in HMAC?

Zusammenfassung

Sie verstehen nun die HMAC-Konstruktion und den Sicherheitsbeweis. Als Nächstes wenden wir HMAC auf die Signierung von API-Anfragen an und sehen uns an, wie Replay-Angriffe verhindert werden.

Häufig gestellte Fragen

Ist die Lektion „HMAC-Aufbau und Sicherheitsnachweis“ kostenlos?

Ja — der vollständige Text von „HMAC-Aufbau und Sicherheitsnachweis“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Cryptology Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Cryptology Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „HMAC-Aufbau und Sicherheitsnachweis“?

Vollziehen Sie den Aufbau mit ipad und opad sowie dessen Sicherheitseigenschaften nach. Du übst Cryptology Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Cryptology Academy zu starten?

Keine Vorkenntnisse erforderlich. Cryptology Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.

Wie lange dauert die Lektion „HMAC-Aufbau und Sicherheitsnachweis“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Cryptology Academy-Lektion Code schreiben und ausführen?

Ja. Jede Cryptology Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. MAC-Konzepte und Length-Extension-Angriffe
  2. HMAC-Aufbau und Sicherheitsnachweis
  3. HMAC in APIs: Anforderungssignierung
  4. CMAC und Poly1305: MACs für Blockchiffren
← Zurück zu Cryptology Academy