Estas son las dudas más comunes que surgen al usar el Generador de claves Web Bot Auth y al implementar el estándar en general:
¿Cómo configuro Web Bot Auth para mi bot? Primero, usa el generador para crear una clave privada y el directorio de claves. Publica el directorio en /.well-known/http-message-signatures-directory de tu dominio y configura tu bot para firmar cada solicitud con la clave privada. El generador te proporciona un ejemplo completo de cómo debe verse una solicitud firmada.
¿Es gratis el Generador de claves Web Bot Auth? ¿Necesito registrarme? Sí, el generador es completamente gratuito y no requiere registro. Todo el proceso se realiza en tu navegador, sin que la clave privada se envíe a ningún servidor.
*¿Qué es el key ID y cómo se calcula? El key ID es un identificador único para tu clave pública, calculado como el hash SHA-256 del JWK público, codificado en base64url. Este valor se usa en el encabezado Signature-Input para que el sitio sepa qué clave pública debe usar para verificar la firma. Por ejemplo, si tu JWK público es {"kty":"OKP","crv":"Ed25519","x":"..."}, el key ID* será el hash de este JSON.
¿Por qué se usa el algoritmo Ed25519? Ed25519 es el algoritmo recomendado en los borradores de Web Bot Auth porque ofrece un buen equilibrio entre seguridad y rendimiento. Las claves son pequeñas (32 bytes para la clave privada y 32 bytes para la pública) y las firmas son rápidas de generar y verificar. Además, Ed25519 produce firmas deterministas, lo que significa que firmar el mismo mensaje dos veces generará la misma firma, algo útil para depuración.
*¿Qué es la signature base y por qué es importante? La signature base es el texto exacto que se firma con la clave privada. Se construye concatenando los componentes cubiertos de la solicitud, como @method, @target-uri y @authority, cada uno en una línea separada. Si la signature base no coincide byte a byte con lo que espera el servidor, la firma será rechazada. El generador te proporciona la signature base* exacta que debes usar, lo que es útil para depurar errores.
¿Se envía mi clave privada a algún servidor? No. La clave privada se genera localmente en tu navegador usando Web Crypto y nunca se transmite a ningún servidor. Si recargas la página, la clave se pierde y tendrás que generar una nueva.
Recargué la página y la clave desapareció. ¿Qué hago? Esto es intencional. El generador no almacena la clave en ningún lugar, por lo que si cierras la página, la clave se pierde. Debes generar una nueva clave y volver a publicar el directorio de claves en tu servidor.
*Mi navegador no puede generar claves o rechaza el origin. ¿Qué pasa? Para generar claves Ed25519, necesitas un navegador moderno como Chrome, Firefox o Safari. Además, el origin debe ser una URL HTTPS sin ruta (por ejemplo, https://tudominio.com). Si usas un navegador antiguo o un origin* inválido, el generador no funcionará.
¿Debo elegir una validez para la clave o dejarla sin expiración? Depende de tu caso. Si eliges una validez (por ejemplo, 90 día), deberás rotar la clave antes de que expire, lo que requiere más mantenimiento pero mejora la seguridad. Si dejas la clave sin expiración, no tendrás que rotarla, pero una clave comprometida podría ser usada indefinidamente. Evalúa qué opción se adapta mejor a tus necesidades.
*¿Cómo se compara Web Bot Auth con la verificación por User-Agent o IP? Web Bot Auth usa criptografía para probar la identidad del bot, lo que es mucho más seguro que depender de señales como el User-Agent o listas de IPs, que son fáciles de falsificar o frágiles. Sin embargo, implementar firmas requiere más esfuerzo que enviar un User-Agent* o configurar una lista de IPs. Para más detalles, consulta el artículo sobre diferencias entre Web Bot Auth y métodos tradicionales.