---
title: "How to verify Web Bot Auth signatures | Agent Ready Crawlers"
description: "How to verify Web Bot Auth signatures: read Signature-Agent, fetch the key directory, check the RFC 9421 signature and keep IP checks as a fallback."
canonical: https://agentreadycrawlers.com/guides/verify-web-bot-auth
site: "Agent Ready Crawlers"
last_updated: 2026-11-04
date: 2026-11-04
section: "Guides"
---

# How to verify Web Bot Auth signatures | Agent Ready Crawlers

> How to verify Web Bot Auth signatures: read Signature-Agent, fetch the key directory, check the RFC 9421 signature and keep IP checks as a fallback.

Source: https://agentreadycrawlers.com/guides/verify-web-bot-auth
Site: Agent Ready Crawlers
Last reviewed: 2026-11-04

# How to verify Web Bot Auth signatures

In short

Read Signature-Agent, fetch the key directory at /.well-known/http-message-signatures-directory, verify the RFC 9421 signature, and fall back to IP checks for unsigned traffic. Web Bot Auth builds on HTTP Message Signatures (RFC 9421); the signer publishes Ed25519 public keys in a directory named by the Signature-Agent header. The IETF webbotauth working group adopted draft-ietf-webbotauth-httpsig-protocol; revision -01 is dated 2026-10-29.

Web Bot Auth lets an operator prove a request is its own with a signature. Verification is five steps and the first is reading one header.

## In practice

1.  Read the Signature-Agent header, along with Signature and Signature-Input. Compare Signature-Agent exactly with the value the operator documents. OpenAI says to confirm it matches "https://chatgpt.com", quotation marks included.
2.  Fetch the key directory from the origin that header names, at `/.well-known/http-message-signatures-directory`. It holds the signer's Ed25519 public keys.
3.  Verify the RFC 9421 HTTP Message Signature against those keys. Cloudflare does no nonce validation today and relies on short expires values, so reject stale signatures.
4.  Keep IP and reverse DNS checks for everything unsigned. Google signs only a subset of Google-Agent requests, as https://agent.bot.goog, and says to keep them.
5.  Decide policy separately. A valid signature proves who signed, not whether the request is authorised; that stays your origin's decision.

## What the sources say

-   Primary source Web Bot Auth builds on HTTP Message Signatures (RFC 9421); the signer publishes Ed25519 public keys in a directory named by the Signature-Agent header. [Source](https://blog.cloudflare.com/web-bot-auth/), read 2026-11-04.
-   Primary source The IETF webbotauth working group adopted draft-ietf-webbotauth-httpsig-protocol; revision -01 is dated 2026-10-29. [Source](https://datatracker.ietf.org/wg/webbotauth/documents/), read 2026-11-04.
-   Primary source OpenAI tells site owners to confirm Signature-Agent exactly matches "https://chatgpt.com", including quotation marks, before verifying. [Source](https://help.openai.com/en/articles/11845367-chatgpt-agent-allowlisting), read 2026-11-04.
-   Primary source Google signs only a subset of Google-Agent requests as https://agent.bot.goog and says to keep IP and reverse-DNS checks. [Source](https://developers.google.com/crawling/docs/crawlers-fetchers/web-bot-auth), read 2026-11-04.
-   Primary source Cloudflare accepts Ed25519 keys and does no nonce validation today, relying on short expires values. [Source](https://developers.cloudflare.com/bots/reference/bot-verification/web-bot-auth/), read 2026-11-04.
-   Secondary source A valid signature proves who signed, not whether the request is authorised; that remains origin policy, per the draft as quoted by Centinel Analytica. [Source](https://www.centinelanalytica.com/blog/ai-browser-agents), read 2026-11-04.

## Related

-   [Which operators publish key directories](https://agentreadycrawlers.com/verification/)
-   [ChatGPT agent profile](https://agentreadycrawlers.com/crawlers/chatgpt-agent/)
-   [Google-Agent profile](https://agentreadycrawlers.com/crawlers/google-agent/)
-   [Web Bot Auth](https://agentreadycrawlers.com/glossary/web-bot-auth/)
-   [Key directory](https://agentreadycrawlers.com/glossary/key-directory/)
-   [Verified bot programmes compared](https://agentreadycrawlers.com/verification/programmes-compared/)

## Sources

-   [Forget IPs: using cryptography to verify bot and agent traffic](https://blog.cloudflare.com/web-bot-auth/) read 2026-11-04
-   [IETF webbotauth working group documents](https://datatracker.ietf.org/wg/webbotauth/documents/) read 2026-11-04
-   [ChatGPT Work's Cloud browser allowlisting](https://help.openai.com/en/articles/11845367-chatgpt-agent-allowlisting) read 2026-11-04
-   [Authenticate requests with Web Bot Auth (experimental)](https://developers.google.com/crawling/docs/crawlers-fetchers/web-bot-auth) read 2026-11-04
-   [developers.cloudflare.com: web bot auth](https://developers.cloudflare.com/bots/reference/bot-verification/web-bot-auth/) read 2026-11-04
-   [centinelanalytica.com: ai browser agents](https://www.centinelanalytica.com/blog/ai-browser-agents) read 2026-11-04

Last reviewed 2026-11-04
