HMAC (Hash-based Message Authentication Code) ist ein kryptografischer Mechanismus, der einen geheimen Schlüssel in Kombination mit einer Hash-Funktion verwendet, um sowohl die Integrität als auch die Authentizität einer Nachricht zu überprüfen.
Was ist HMAC?
HMAC (Hash-based Message Authentication Code) ist ein Mechanismus der kryptografischen Signatur, der zwei Dinge überprüft:
- Integrität — Die Nachricht wurde während der Übertragung nicht verändert
- Authentizität — Die Nachricht stammt tatsächlich vom legitimen Absender
Wie funktioniert HMAC?
HMAC kombiniert einen geheimen Schlüssel, der zwischen Absender und Empfänger geteilt wird, mit einer Hash-Funktion (SHA-256, SHA-512 usw.):
- Der Absender erstellt einen Hash der Nachricht unter Verwendung des geheimen Schlüssels:
HMAC(Schlüssel, Nachricht) = Signatur - Die Signatur wird zusammen mit der Nachricht gesendet
- Der Empfänger berechnet den Hash mit demselben Schlüssel neu und vergleicht
- Wenn die Signaturen übereinstimmen, ist die Nachricht authentisch und integer
HMAC im KI-Tracking
Im Kontext des KI-Trackings wird HMAC verwendet, um die vom Tracker an den Server gesendeten Ereignisse zu signieren. Dies verhindert:
- Einschleusung falscher Ereignisse — Ein Angreifer kann keine gefälschten Crawls oder Referrals erstellen
- Veränderung während der Übertragung — Die Daten können zwischen Tracker und Server nicht manipuliert werden
- Replay-Angriffe — In Kombination mit einem Zeitstempel können alte Ereignisse nicht erneut abgespielt werden
Praktisches Beispiel
import hmac, hashlib
secret = "ihr_hmac_geheimnis"
message = '{"event":"crawl","bot":"GPTBot","url":"/seite"}'
signature = hmac.new(secret.encode(), message.encode(), hashlib.sha256).hexdigest()
# Nachricht + Signatur im Header X-Signature senden