Web Bot Auth (RFC 9421)
¿Qué es web-bot-auth?
Web-bot-auth es un estándar emergente para que los agentes de IA prueben su identidad usando firmas criptográficas de mensajes HTTP (RFC 9421). En lugar de depender de cadenas User-Agent — que pueden falsificarse — los agentes firman sus solicitudes con una clave privada. Los sitios verifican la firma contra una clave pública publicada.
Por qué importa
La detección por User-Agent ya no es confiable:
- El Agent Mode de ChatGPT usa un UA falso de Chrome (
Chrome/138.0.0.0) — indistinguible de un navegador solo por el UA - Perplexity ejecuta rastreadores sigilosos (3-6M solicitudes/día) con UAs genéricos de Chrome
- Google-Agent usa cadenas estándar de UA de Chrome
La industria se está moviendo hacia la identidad criptográfica. OpenAI, Google, Cloudflare, Shopify, Vercel y Visa respaldan este enfoque. La estandarización en el IETF está en curso.
Qué verifica AgentGrade
Directorio de firmas publicado — Verificamos /.well-known/http-message-signatures-directory. Esta es la ubicación estándar donde un sitio publica su identidad de agente y las claves públicas que se pueden usar para verificar sus solicitudes firmadas.
Miembros declarados — El directorio debe contener un arreglo members que liste las identidades de agente (por ejemplo, "ChatGPT", "GoogleAgent") que el sitio reconoce o como las que actúa.
Claves públicas disponibles — Cada miembro debe tener un publicKeyUrl que apunte a una clave pública obtenible para verificar firmas.
Cómo implementarlo
Publica un archivo JSON en /.well-known/http-message-signatures-directory:
{
"members": [
{
"name": "my-agent",
"publicKeyUrl": "https://example.com/.well-known/keys/agent.pub"
}
]
}
Para verificar solicitudes firmadas entrantes de agentes conocidos (como ChatGPT), usa el paquete npm web-bot-auth:
npm install web-bot-auth
Directorios de agentes conocidos
| Agente | URL del directorio |
|---|---|
| ChatGPT | https://chatgpt.com/.well-known/http-message-signatures-directory |
Más información
- RFC 9421: HTTP Message Signatures
- Paquete web-bot-auth en npm
- Blog de Cloudflare: web-bot-auth
- Implementación de SeatGeek