ForHosting KIT · Entwickler-Tools

Webhook-Signatur mit HMAC sicher prüfen

Nennen Sie den HMAC-Algorithmus, etwa HMAC-SHA256, und den Header mit der Signatur, und Sie erhalten 8 geordnete Schritte: Rohinhalt bewahren, signierte Nachricht nachbauen, in konstanter Zeit vergleichen und Wiederholungen abweisen. Kostenlos in Ihrem Browser.

  • Kostenlos
  • Läuft in Ihrem Browser
  • Ohne Anmeldung
  • Ihre Daten bleiben auf Ihrem Gerät
Nutzen Sie es über WebAPIE-MailTelegramApp bald

Nutzen Sie das Ergebnis zur Implementierung oder Kontrolle und gleichen Sie Zeitformat, Kodierung und Replay-Toleranz mit der Anbieterdokumentation ab.

Was eine HMAC-Signatur beweist

Der Absender berechnet mit einem gemeinsamen Geheimnis einen HMAC über die exakten Bytes der Nachricht und legt das Ergebnis in einen Header. Beim Empfang rechnet Ihr System dasselbe nach: Es nimmt den Rohinhalt genau so, wie er angekommen ist, ergänzt den Zeitstempel oder das Präfix, das der Anbieter verlangt, wendet den angegebenen Algorithmus an und kodiert das Ergebnis wie dokumentiert, meist hexadezimal oder als Base64. Stimmen beide Signaturen überein, hat jemand mit dem Geheimnis diese Nachricht erzeugt. Das beweist weder, dass sie aktuell ist, noch, dass sie nicht schon verarbeitet wurde; deshalb folgen das Toleranzfenster für den Zeitstempel und das Speichern bereits angenommener Ereigniskennungen.

Typische Fehler und wann die Schritte helfen

Der häufigste Fehler passiert vor der Berechnung: Das System liest und ordnet den Inhalt neu, ändert Leerzeichen, Reihenfolge oder Zeilenenden, und die richtige Signatur passt nicht mehr. Ebenso typisch sind ein leerer oder doppelter Header, der trotzdem akzeptiert wird, ein gewöhnlicher Textvergleich und das Kürzen oder Auffüllen ungleich langer Werte, statt sie abzulehnen. Nutzen Sie die Schritte, wenn Sie einen Empfänger bauen oder prüfen und einen Prüfplan mit veränderten Inhalten, abgelaufenen Zeitstempeln, falschen Geheimnissen und wiederholten Ereignissen aufstellen. Für das Header-Format bleibt die Dokumentation des Anbieters maßgeblich.

Beginnen Sie mit den signierten Bytes

Bewahren Sie vor dem Parsen exakt die empfangenen Bytes auf. Lesen Sie den genannten Header ohne Beachtung der Großschreibung seines Namens, prüfen Sie seinen Wert jedoch streng. Folgen Sie der dokumentierten Grammatik, lehnen Sie fehlende, leere, doppelte oder fehlerhafte Werte ab und speichern Sie das Geheimnis ausschließlich geschützt.

Rekonstruieren, berechnen und vergleichen Sie korrekt

Rekonstruieren Sie die signierte Nachricht exakt: nur den Roh-Body oder Zeitstempel, Trennzeichen und Body. Beachten Sie Reihenfolge und Kodierung. Berechnen Sie HMAC mit Geheimnis und normalisiertem Algorithmus und kodieren Sie das Ergebnis wie vorgeschrieben.

Dekodieren Sie beide Signaturen in gleich lange Bytefolgen und vergleichen Sie diese in konstanter Zeit. Ungültige Kodierung oder abweichende Länge bedeutet Ablehnung.

Betrachten Sie Kryptografie als Teil der Annahme

Ein passendes HMAC belegt Kenntnis des Geheimnisses, aber weder Aktualität noch Einmaligkeit. Erzwingen Sie das empfohlene Zeitfenster, speichern Sie angenommene Ereignis-IDs und verarbeiten Sie idempotent. Rotieren Sie Geheimnisse mit der dokumentierten Überlappung.

Lehnen Sie vor dem Einreihen ab, antworten Sie allgemein und protokollieren Sie nur sichere Codes. Testen Sie veränderte Bodys, alte Zeitstempel, ungültige Header, falsche Geheimnisse und Replays.

Bestehende Integration prüfen

Kontrollieren Sie die Reihenfolge von Erfassung, HMAC, sicherem Vergleich und Replay-Schutz.

Sicherheitstests vorbereiten

Leiten Sie Negativtests für fehlende Header, veränderte Bodys, ungültige Signaturen, alte Zeitstempel und Replays ab.

Welche Algorithmen werden erkannt?

HMAC-SHA1, HMAC-SHA256, HMAC-SHA384 und HMAC-SHA512. Andere Algorithmen führen zu einem Eingabefehler.

Warum muss der Roh-Body erhalten bleiben?

Parsen und erneutes Serialisieren kann die Bytes ändern und eine gültige Signatur entwerten.

Verhindert ein gültiges HMAC Replay-Angriffe?

Nein. Prüfen Sie signierte Zeitstempel und deduplizieren Sie vorhandene Ereignis-IDs.

Warum muss die Signatur in konstanter Zeit verglichen werden?

Weil ein gewöhnlicher Vergleich über die Antwortzeit verraten kann, wie viel der Signatur übereinstimmte. Wandeln Sie beide Werte in gleich lange Bytefolgen um und nutzen Sie einen zeitsicheren Vergleich; abweichende Länge oder Dekodierung gilt als fehlgeschlagene Prüfung.

Muss ich mein Geheimnis oder die empfangene Nachricht eingeben?

Nein. Die Schrittliste braucht nur den HMAC-Algorithmus und den Namen des Signatur-Headers; Geheimnis, Nachricht und Signatur bleiben in Ihrem eigenen Empfänger.

Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.

POSThttps://api.kit.forhosting.com/security/webhook-signature-verify-steps

Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.

curl -X POST https://api.kit.forhosting.com/security/webhook-signature-verify-steps \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"algorithm":"HMAC-SHA256","header_name":"X-Webhook-Signature"}'
{
  "algorithm": "HMAC-SHA256",
  "header_name": "X-Webhook-Signature"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "security.webhook_signature_verify_steps",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.

pro Anfrage$0.002

Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.

HTTPCodeBedeutung
401unauthorizedDer API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer).
402insufficient_balanceIhr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht.
404unknown_typeUnbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog.
429rate_limitedZu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt.

Die Prüfung von Webhook-Signaturen scheitert häufig an Schnittstellen: Das Framework verändert den Body, der Header wird zu großzügig ausgewertet oder ein gewöhnlicher Vergleich verrät Zeitinformationen. Diese Funktion wandelt den HMAC-Algorithmus und Header des Anbieters in eine präzise, geordnete Prüfliste um. Payload, Geheimnis und Signatur werden nicht benötigt.

Beginnen Sie mit den signierten Bytes

Erneutes Serialisieren von JSON kann Leerraum, Reihenfolge, Escapes, Unicode oder Zeilenenden verändern.

Neuen Webhook-Endpunkt umsetzen

Wandeln Sie Algorithmus und Header vor der Programmierung in eine prüfbare Liste um.

Prüft dieses Werkzeug einen echten Webhook?

Nein. Es erzeugt Umsetzungsschritte und fragt nie nach Payload, Geheimnis oder Signatur.

Soll ich das Webhook-Geheimnis übermitteln?

Nein. Nur Algorithmus und Header sind nötig; bewahren Sie das Geheimnis geschützt auf.

Was kostet eine API-Anfrage?

Jede Anfrage kostet $0.002. Die deterministische Browser-Ausführung übermittelt keine Geheimnisse.

Vollständige KIT-Dokumentation lesen →