HMAC (Hash-basierter Message Authentication Code) kombiniert einen geheimen Schlüssel mit einer Nachricht mithilfe einer Hash-Funktion, um einen kurzen Wert zu erzeugen, der nur von jemandem reproduziert werden kann, der denselben Schlüssel und dieselbe Nachricht besitzt. Er bietet Authentizität und Integrität zugleich, ohne Public-Key-Kryptographie.
Der Sender berechnet HMAC(Geheimnis, Nachrichtentext) und speichert das Ergebnis im Header. Der Empfänger berechnet dasselbe für den empfangenen Nachrichtentext und vergleicht die Ergebnisse. Weichen Nachrichtentext oder Schlüssel voneinander ab, stimmen die Werte nicht überein. Der Vergleich muss in konstanter Zeit erfolgen: Ein normaler Stringvergleich liefert bereits beim ersten abweichenden Byte einen frühen Rückgabewert, wodurch genügend Zeitinformationen preisgegeben werden, um bei ausreichend vielen Versuchen eine gültige Signatur zu rekonstruieren.
Eine Signatur beweist nicht die Aktualität einer Nachricht. Eine gültig signierte Nutzlast bleibt dauerhaft gültig, sodass ein Angreifer sie nach dem Abfangen erneut abspielen kann. Deshalb werden Signaturen üblicherweise anhand eines Zeitstempels und des Nachrichtentextes berechnet, und Empfänger verwerfen Nachrichten, die älter als einige Minuten sind.
Lösen Sie eine Webhook-Übermittlung aus und überprüfen Sie `x-funapi-signature` anhand des Ihnen bei der Anmeldung zugewiesenen Geheimnisses. Ändern Sie ein einziges Byte der Nutzdaten, und die Überprüfung schlägt fehl – genau das ist der Sinn der Sache.
Diese Seite auf Englisch lesen
Alle Glossarbegriffe · Testtechniken · Alle 39 Mock-REST-APIs
Zuletzt aktualisiert