HMAC kombiniert Hashing mit einem geheimen Key, um Authentizität und Integrität von Nachrichten zu prüfen. Beispiel: HMAC-SHA256(key, message). Basis für JWT-Signaturen.
detaillierte erklärung
HMAC ist eine kryptographische Funktion, die Hashing mit einem symmetrischen Key kombiniert: HMAC(K, m) = H((K ⊕ opad) || H((K ⊕ ipad) || m)). Vereinfacht: HMAC-SHA256(key, message) erzeugt 256-Bit-Tag. Eigenschaften: 1) Authentizität - nur wer Key kennt, kann gültigen HMAC erzeugen. 2) Integrität - minimale Nachrichtenänderung verändert HMAC komplett. 3) Replay-Protection (mit Timestamp/Nonce). Ablauf: Sender berechnet HMAC, hängt an Nachricht an. Empfänger berechnet HMAC mit seinem Key, vergleicht - Match = authentisch, Mismatch = manipuliert/gefälscht. Anwendungen: API-Request-Signierung (AWS Signature v4), JWT-Tokens (JWS mit HS256 = HMAC-SHA256), Cookie-Integrity (Signed Cookies), TLS (Handshake-Verification). Wichtig: HMAC ≠ Verschlüsselung (Nachricht bleibt lesbar), HMAC ≠ Digitale Signatur (symmetrischer Key, kein Public-Key).
warum ist das wichtig?
HMAC ist Standard für API-Authentifizierung und JWT-Signaturen - du musst verstehen, dass HMAC Integrität garantiert, aber nicht Vertraulichkeit (kombiniere mit Encryption bei sensiblen Daten). Essentiell für API-Security und Token-basierte Auth.