LW IT Solutions
« Blog Overview /Cloud & AI / Web Bot Auth: Wie Agenten-Anfragen signiert werden...
This post in other languages:

Web Bot Auth: Wie Agenten-Anfragen signiert werden und was die Signatur belegt

Web Bot Auth: Wie Agenten-Anfragen signiert werden und was die Signatur belegt
Inhalt
  1. Was auf der Leitung liegt
  2. Was die Unterschrift belegt
  3. Was sie nicht belegt
  4. Wie sich das prüfen lässt
  5. Der Stand, ehrlich benannt
  6. Fragen und Antworten
  7. Quellen

Ein agentischer Browser sieht in einem Analysebericht aus wie ein Mensch, weil er einer echten Browsermaschine gleicht. Die Frage, wer da eigentlich anfragt, lässt sich am Verhalten nur schätzen – oder von der Gegenseite beantworten, indem sie unterschreibt.

Genau das ist Web Bot Auth. Der Mechanismus ist kurz, die Kryptografie unspektakulär, und die interessanteste Aussage darüber ist, was er ausdrücklich nicht belegt.

Ein gerichteter Graph aus sechs Knoten: Betreiber, Schlüsselpaar, die Anfrage mit drei Header, Prüfer, Schlüsselverzeichnis auf der eigenen Domain und ein rot umrandeter Knoten für das künftige Verhalten des Agenten, zu dem nur eine gestrichelte Kante führt
Fünf Kanten sind durchgezogen und belegbar. Die sechste ist gestrichelt, weil sie nicht existiert – und sie ist die, die in Gesprächen über verifizierte Agenten meist gemeint ist.

Was auf der Leitung liegt

Die Grundlage ist RFC 9421, die HTTP-Nachrichtensignaturen. Der Betreiber eines Agenten erzeugt ein Ed25519-Schlüsselpaar, hinterlegt den öffentlichen Teil als JSON-Schlüsselsatz unter einem festen Pfad auf einer Domain, die er kontrolliert, und unterschreibt jede ausgehende Anfrage. Drei Header tragen das Ergebnis.

Signature-Agent: "https://beispiel-agent.de"
Signature-Input: sig=("@authority" "signature-agent");
                 created=1700000000;
                 expires=1700011111;
                 keyid="poqkLGiymh_W0uP6PZFw-dvez3QJT5SolqXBCW38r0U";
                 tag="web-bot-auth"
Signature: sig=jdq0SqOwHdyHr9+r5jw3iYZH6aNGKijYp/EstF4RQTQdi5N5YYKrD+mCT1HA1nZD…

  Verzeichnis   /.well-known/http-message-signatures-directory
  Inhaltstyp    application/http-message-signatures-directory+json

  Die Klammer hinter sig= nennt, was unterschrieben ist. Hier sind
  es zwei Bestandteile: der Zielhost und die Verzeichnisangabe.

Der Prüfer liest Signature-Agent, holt von dort das Verzeichnis, sucht darin den über keyid benannten Schlüssel, baut die Signaturbasis aus den in Signature-Input benannten Bestandteilen nach und rechnet die Unterschrift nach.

Was die Unterschrift belegt

Zwei Dinge, und beide sind stark. Erstens: Wer sie erzeugt hat, besitzt den privaten Schlüssel zu einem öffentlichen, der unter einer bestimmten Domain veröffentlicht ist. Zweitens: Er kontrolliert diese Domain, denn sonst könnte er dort nichts hinterlegen. Zusammen ergibt das eine überprüfbare Herkunft, und die ist mehr, als eine Kennung im User-Agent je war.

Dazu kommt der Ersatz für einen Wiedereinspielungsschutz: expires begrenzt die Gültigkeit, und eine Unterschrift nach diesem Zeitpunkt wird verworfen. Eine mitgeschnittene Anfrage lässt sich damit nicht beliebig lange wiederverwenden.

Was sie nicht belegt

Die Unterschrift deckt benannte Bestandteile ab, im veröffentlichten Beispiel den Zielhost und die Verzeichnisangabe. Den Rumpf der Anfrage deckt sie nicht ab, und über die Absicht sagt sie nichts. Sie belegt Identität, nicht Verhalten.

Damit ist eine gültige Unterschrift keine Erlaubnis. Ein sauber unterschriebener Agent kann denselben Inhalt abgreifen wie ein unsignierter, nur eben nachweisbar. Der Gewinn liegt nicht in der Abwehr, sondern in der Zurechenbarkeit: Wer weiß, welcher Betreiber angefragt hat, kann eine Regel je Betreiber setzen – und im Streitfall belegen, wer da war.

Wie sich das prüfen lässt

Die Prüfung ist überschaubar und lohnt sich als Übung, weil sie die Grenzen des Verfahrens unmittelbar zeigt. Vier Schritte: Signature-Agent lesen und auf eine erwartete Domain prüfen; das Verzeichnis unter dem festen Pfad holen und den Schlüssel zu keyid heraussuchen; die Signaturbasis aus den in Signature-Input genannten Bestandteilen in der genannten Reihenfolge zusammensetzen; die Ed25519-Prüfung rechnen und expires gegen die eigene Uhr halten.

Der dritte Schritt ist der, an dem eigene Umsetzungen scheitern, weil die Signaturbasis zeichengenau stimmen muss. Wer sie einmal von Hand gebaut hat, versteht danach auch, warum der Rumpf nicht mitunterschrieben ist: Er müsste dafür vollständig gepuffert werden, bevor die erste Prüfung beginnt.

Der Stand, ehrlich benannt

Beide Spezifikationen sind Internet-Drafts – die Architektur und das Verzeichnis, letzteres in der fünften Fassung. Eine IETF-Arbeitsgruppe befasst sich seit Anfang 2026 damit, ein verabschiedetes Dokument gibt es nicht, und Entwürfe ändern Header-Namen und Pfade durchaus noch.

Gleichzeitig prüfen mehrere große Netz- und Sicherheitsanbieter diese Unterschriften bereits im Wirkbetrieb. Für einen einzelnen Auftritt heißt das: verstehen ja, darauf verlassen noch nicht. Und der Satz, der beim Lesen der Ankündigungen mitzudenken ist, steht im Bild als gestrichelte Kante – eine Unterschrift beweist, wer anfragt, und niemals, was er vorhat.

Fragen und Antworten

Kann jemand den Header Signature-Agent einfach mit der Domain eines bekannten Betreibers füllen?

Schreiben lässt er sich, nur besteht er die Prüfung nicht. Die Prüfung holt den Schlüssel aus dem Verzeichnis genau dieser Domain, und ohne den passenden privaten Schlüssel geht die Ed25519-Prüfung nicht auf. Weil Signature-Agent selbst zu den unterschriebenen Bestandteilen gehört, lässt er sich auch nicht nachträglich gegen eine andere Domain tauschen.

Lässt sich eine mitgeschnittene, gültige Unterschrift vor Ablauf von expires erneut verwenden?

Innerhalb der Frist grundsätzlich ja. expires ist nur ein Ersatz für einen Wiedereinspielungsschutz: Die Angabe begrenzt, wie lange eine Unterschrift gilt, verhindert aber nicht, dass dieselbe Unterschrift in dieser Zeit mehrmals vorgelegt wird. Im Beispiel liegen zwischen created und expires 11.111 Sekunden, also gut drei Stunden.

Hinzu kommt, was unterschrieben ist. Im Beispiel sind es nur der Zielhost und die Verzeichnisangabe, weder Pfad noch Methode noch Rumpf. Wer die drei Header einer solchen Anfrage kennt, kann sie in dieser Zeit also auch an eine andere Adresse desselben Hosts hängen, und die Prüfung geht trotzdem auf.

Praktisch setzt das voraus, dass die Header überhaupt in fremde Hände geraten. Über HTTPS sind sie auf der Leitung verschlüsselt, sichtbar sind sie aber überall dort, wo TLS endet, etwa bei einem CDN oder einem Reverse Proxy, und in Protokollen, die Header mitschreiben. Für eine Regel je Betreiber heißt das: Eine gültige Unterschrift belegt, dass der Betreiber diese Header erzeugt hat, nicht zwingend, dass er genau diese Anfrage geschickt hat.

Hilft Web Bot Auth dabei, Agenten aus einem Analysebericht herauszurechnen?

Nur dort, wo die Header der Anfrage ankommen. Die Unterschrift steht in den Headern der HTTP-Anfrage, und die sieht der Server, ein vorgeschaltetes CDN oder das Server-Log. Ein Mess-Tag, das als JavaScript im Browser läuft, kann die Header der Anfrage nicht lesen, mit der seine eigene Seite geladen wurde; ein agentischer Browser zählt dort deshalb weiterhin wie ein Mensch.

Wer die Unterscheidung im Bericht haben will, muss sie am Server treffen: die Prüfung dort vornehmen und ihr Ergebnis weitergeben, etwa als Kennzeichen, das die Seite an das Tag übergibt, oder durch eine Messung auf dem Server selbst. Das setzt voraus, dass der Agent überhaupt unterschreibt; Agenten ohne Unterschrift bleiben so unsichtbar wie zuvor.

Lukas Wojcik

Lukas Wojcik

Systems architect and technology enthusiast specializing in scalable tracking solutions, GMP Stack (GA4 & GTM), and robust backend architectures. Advocate for clean code and privacy-first design.

Get in Touch

Briefly describe your project or inquiry for a tailored response. This site is protected by reCAPTCHA.

Kommentar schreiben

Erfahrungen mit anderen Modellen oder Anbietern und Rückfragen zur Umsetzung sind hier willkommen.

Die E-Mail-Adresse wird nicht veröffentlicht. Pflichtfelder sind mit einem Stern versehen.

ALL ARTICLES & CATEGORIES

CCTV

Diese Rubrik per RSS verfolgen

Cloud & AI

Alle 11 Artikel dieser Rubrik Diese Rubrik per RSS verfolgen

Data Privacy

Alle 18 Artikel dieser Rubrik Diese Rubrik per RSS verfolgen

Digital Analytics

Alle 58 Artikel dieser Rubrik Diese Rubrik per RSS verfolgen

Digital Marketing

Alle 37 Artikel dieser Rubrik Diese Rubrik per RSS verfolgen

IT & Networks

Alle 17 Artikel dieser Rubrik Diese Rubrik per RSS verfolgen

Music Production

Alle 16 Artikel dieser Rubrik Diese Rubrik per RSS verfolgen

Raspberry Pi

Diese Rubrik per RSS verfolgen

Smart Home

Alle 18 Artikel dieser Rubrik Diese Rubrik per RSS verfolgen

Web Entwicklung

Alle 11 Artikel dieser Rubrik Diese Rubrik per RSS verfolgen

WordPress-Plugins & Tricks

Alle 13 Artikel dieser Rubrik Diese Rubrik per RSS verfolgen