Signaturbasis nach RFC 9421
Fügen Sie eine signierte HTTP-Anfrage ein und sehen Sie die Signaturbasis, über die die Signatur gebildet wurde. Ideal zum Vergleich mit der eigenen Implementierung.
So funktioniert es
Bei HTTP Message Signatures wird nicht die ganze Anfrage signiert, sondern eine Signaturbasis aus den Komponenten, die im Header Signature-Input aufgeführt sind. Das Werkzeug liest Anfragezeile und Header, ermittelt abgeleitete Komponenten wie @method, @path und @authority und setzt die Signaturbasis Zeile für Zeile nach RFC 9421 zusammen. Die letzte Zeile enthält die Signaturparameter.
Wofür das hilft
Die häufigste Ursache für ungültige HTTP-Signaturen ist eine abweichende Signaturbasis: ein anders geschriebener Header, ein fehlender Pfadteil, ein falscher Host. Mit dem Werkzeug vergleichen Sie die Basis Ihrer Implementierung mit der, die eine Prüfstelle erwartet. Das Beispiel aus Anhang B.2.6 des Standards ergibt exakt die dort veröffentlichte Basis.
Was das Werkzeug nicht tut
Es prüft die Signatur nicht und kennt keine Schlüssel. Komponenten mit Parametern wie ;sf oder ;key werden angezeigt, aber nicht abgebildet. Für die Prüfung der Signatur nutzen Sie die Prüfseite oder die Anleitung zur HTTP-Signatur.
Typische Einsätze
- Implementierung testen: Die eigene Signaturbasis Zeile für Zeile mit der erwarteten vergleichen.
- Fehlersuche bei Web Bot Auth: Herausfinden, warum eine Website eine signierte Anfrage ablehnt.
- Konfiguration prüfen: Sehen, welche Komponenten ein Agent tatsächlich signiert und ob der Pfad dazugehört.
Tipps zur Fehlersuche
Header-Namen werden klein geschrieben, Werte ohne führende und folgende Leerzeichen übernommen. Mehrere gleichnamige Header werden mit Komma und Leerzeichen verbunden. Die letzte Zeile muss die Signaturparameter genau so enthalten, wie sie im Header Signature-Input stehen.
Häufige Fragen
Warum nimmt das Werkzeug https als Schema an?
Eine Anfragezeile enthält in der Regel nur den Pfad, nicht das Schema. Für @target-uri und @scheme nimmt das Werkzeug deshalb https an und weist darauf hin.
Welche Komponenten werden unterstützt?
Header-Felder sowie @method, @authority, @path, @query, @scheme, @request-target und @target-uri. Komponenten mit Parametern werden als nicht abgebildet gemeldet.
Gilt das auch für Web Bot Auth?
Ja. Web Bot Auth und das Trusted Agent Protocol verwenden HTTP Message Signatures nach RFC 9421 und damit dieselbe Signaturbasis.
Was mache ich bei mehreren Signaturen in einer Anfrage?
Das Werkzeug nimmt die erste Signatur aus Signature-Input. Weitere Signaturen lassen sich prüfen, indem Sie die übrigen Einträge vorübergehend entfernen.
Kann ich das Werkzeug für Antworten eines Servers nutzen?
Nein, das Werkzeug bildet die Signaturbasis für Anfragen. Antworten verwenden zusätzlich Komponenten wie @status, die hier nicht abgebildet werden, und brauchen eine eigene Prüfung.