Escolher idioma

Gerador de Chaves Web Bot Auth e HTTP Signatures

Gere chaves Ed25519 no navegador, exporte JWK e PEM e configure o diretório de HTTP Message Signatures para identificar crawlers e agentes de IA.

Gerador de Chaves Web Bot AuthComo funciona ↓
A origem https que servirá seu diretório de chaves. Torna-se o valor do cabeçalho Signature-Agent.
Usado apenas para o exemplo de requisição assinada abaixo
Grava nbf e exp na entrada do diretório

O par de chaves é gerado pela Web Crypto API do seu navegador e nunca sai desta página. Recarregar a página o descartará, portanto baixe a chave privada antes de sair.

Mehmet Demiray Publicado Atualizado
Compartilhar

O que é o Web Bot Auth e por que ele existe

O tráfego de agentes automatizados e rastreadores de inteligência artificial na web moderna enfrenta um problema clássico de confiança. Durante décadas, os administradores de sites dependeram do cabeçalho User-Agent e de faixas de endereços IP para identificar bots legítimos, como os indexadores de motores de busca. Esses métodos são frágeis. Qualquer cliente HTTP pode falsificar o cabeçalho User-Agent, enquanto a manutenção de listas de IPs públicas exige consultas frequentes a arquivos estáticos ou checagens de DNS reverso que aumentam a latência e falham com facilidade.

O protocolo Web Bot Auth resolve essa vulnerabilidade introduzindo autenticação criptográfica direta em cada requisição. Baseado no padrão RFC 9421 (HTTP Message Signatures) e em propostas ativas no IETF (Internet-Drafts), o Web Bot Auth permite que o operador de um bot assine as requisições HTTP com uma chave privada assimétrica usando a curva Ed25519. O servidor de destino lê o cabeçalho Signature-Agent, busca a chave pública correspondente no domínio oficial do operador e valida a assinatura digital em milissegundos.

Dessa forma, o servidor web recebe prova matemática inequívoca de que a requisição partiu realmente da entidade que controla aquele domínio. O Gerador de Chaves Web Bot Auth fornece todas as estruturas e chaves necessárias para implementar esse fluxo sem complexidade.

Estrutura e saídas do Gerador de Chaves Web Bot Auth

Ao configurar a origem HTTPS do seu bot, o Gerador de Chaves Web Bot Auth cria um conjunto completo de arquivos e parâmetros criptográficos no próprio navegador. Cada elemento gerado desempenha uma função específica na arquitetura do RFC 9421:

  1. Identificador da Chave (keyid): Identificador exclusivo gerado pelo cálculo do JWK Thumbprint (RFC 7638) com algoritmo SHA-256 e codificação base64url. Esse identificador conecta a assinatura à chave pública do diretório.
  2. Diretório de Chaves JSON: O arquivo que deve ser publicado pelo operador, contendo a chave pública em formato JWK com os parâmetros kty, crv, x e campos opcionais de vigência temporal (nbf e exp).
  3. Cabeçalhos de Resposta do Diretório: Conjunto de cabeçalhos HTTP com um exemplo de assinatura válida por 24 h para proteger o próprio arquivo do diretório contra ataques de substituição.
  4. Par de Chaves Ed25519: A chave privada nos formatos JWK e PKCS#8 PEM (para uso nos clientes e bibliotecas do bot) e a chave pública correspondente no formato SPKI PEM.
  5. Exemplo de Requisição Assinada e Signature Base: O comando curl com os cabeçalhos Signature, Signature-Input e Signature-Agent prontos para teste, acompanhados da base exata de assinatura calculada com validade de 5 min.

Publicação do diretório de chaves e ciclo de vida

A confiança no Web Bot Auth repousa na capacidade dos servidores de destino consultarem a chave pública do bot em um local previsível e seguro. O padrão determina que o arquivo JSON gerado seja hospedado sob o caminho padronizado /.well-known/http-message-signatures-directory no domínio correspondente ao Signature-Agent.

O servidor que serve esse arquivo deve responder com o tipo de conteúdo application/http-signatures-directory+json ou application/json. As chaves publicadas contêm propriedades de ciclo de vida essenciais para a segurança contínua:

  • O campo nbf (Not Before): Marca o timestamp Unix a partir do qual a chave passa a ser válida.
  • O campo exp (Expiration): Determina o momento exato em que a chave expira e deve ser rejeitada pelos validadores.

O Gerador de Chaves Web Bot Auth permite escolher períodos de validade predefinidos de 30 dias, 90 dias, 365 dias ou sem expiração. Em ambientes de produção, a resposta HTTP que serve o diretório também deve ser assinada dinamicamente pelo servidor de origem. Essa medida impede que intermediários em proxies ou redes de entrega de conteúdo injetem chaves públicas forjadas no fluxo de verificação.

Anatomia de uma requisição HTTP assinada com RFC 9421

A assinatura de uma mensagem HTTP conforme o RFC 9421 exige a criação de uma string canônica estruturada, conhecida como Signature Base. O processo de criação e verificação segue uma sequência determinística.

Primeiro, o cliente define quais componentes da mensagem serão cobertos. No Web Bot Auth, a especificação exige minimamente o componente @authority (o host de destino) e o cabeçalho signature-agent (a origem que hospeda a chave pública).

Segundo, o cliente monta o cabeçalho Signature-Input. Esse cabeçalho declara a lista de componentes cobertos e inclui metadados críticos:

  • keyid: O identificador exclusivo da chave pública.
  • alg: O algoritmo criptográfico utilizado (ed25519).
  • created: O instante da assinatura no formato timestamp Unix.
  • expires: O prazo máximo de aceitação da requisição (geralmente 5 min após a criação).
  • tag: O rótulo contextual obrigatório web-bot-auth.

Terceiro, a Signature Base é montada linha por linha, separando cada componente com quebras de linha estritas e finalizando com a linha @signature-params correspondente ao conteúdo exato de Signature-Input. O cliente calcula a assinatura digital Ed25519 sobre essa string e a anexa no cabeçalho Signature. Qualquer discrepância de espaço, caractere invisível ou ordem de linhas resulta na invalidação imediata da assinatura pelo servidor receptor.

Segurança da chave privada e execução no navegador

A segurança de qualquer esquema de assinatura digital depende inteiramente da proteção intransigente da chave privada. O Gerador de Chaves Web Bot Auth foi concebido com arquitetura puramente local: toda a geração criptográfica ocorre por meio da API nativa Web Crypto implementada no próprio navegador.

Nenhuma chave, credencial ou parâmetro digitado é transmitido a servidores externos. Ao recarregar ou fechar a aba do navegador, todas as informações em memória são permanentemente descartadas.

Para operar seu bot de forma segura, siga estas recomendações fundamentais de custódia:

  1. Baixe a chave privada no formato JWK ou PKCS#8 PEM e armazene-a imediatamente em um gerenciador de segredos seguro, como HashiCorp Vault, AWS Secrets Manager ou variáveis de ambiente criptografadas.
  2. Nunca exponha o parâmetro d da chave privada JWK. O diretório público hospedado em /.well-known/http-message-signatures-directory deve conter exclusivamente os campos públicos (kty, crv, x e kid).
  3. Implemente rotação periódica de chaves gerando novos pares antes do vencimento do campo exp e mantendo a chave antiga e a nova temporariamente no diretório durante o período de transição.

Autenticação versus autorização no ecossistema de bots

É fundamental distinguir dois conceitos complementares no gerenciamento de agentes automatizados: autenticação de identidade e controle de permissões de conteúdo.

O Web Bot Auth atua exclusivamente na camada de autenticação. Ele responde com certeza matemática à pergunta sobre quem está fazendo a requisição HTTP. Ao validar a assinatura Ed25519 contra o domínio do operador, o servidor obtém garantia técnica sobre a identidade do bot.

A autenticação não define se o bot tem permissão para acessar determinado recurso. As regras de permissão continuam sob responsabilidade dos arquivos de diretrizes do site. Os administradores utilizam arquivos de rastreamento para definir quais rotas podem ser indexadas. É possível estruturar as permissões com um gerador de robots.txt para rastreadores de IA e validar a conformidade dos acessos por meio de um testador de robots.txt.

A combinação de assinaturas criptográficas com políticas claras de rastreamento cria um ecossistema sustentável, no qual agentes de inteligência artificial e crawlers legítimos são reconhecidos instantaneamente e respeitam as fronteiras definidas pelos criadores de conteúdo.

As que mais respondemos.

Como implementar o Web Bot Auth no meu rastreador ou agente de IA?

Gere o par de chaves no Gerador de Chaves Web Bot Auth, publique o arquivo JSON no caminho /.well-known/http-message-signatures-directory da sua origem HTTPS e configure seu bot para assinar cada requisição HTTP com a chave privada correspondente. Para definir quais páginas seu agente pode acessar após ser autenticado, configure também as diretrizes de acesso com um gerador de robots.txt para IA.

A minha chave privada é transmitida ou salva em algum servidor?

Não. Todo o processo criptográfico com Ed25519 é executado localmente no navegador por meio da API Web Crypto. Nenhuma chave privada, identificador ou parâmetro de origem é enviado para servidores externos ou armazenado pela Callculation.

O que é o Key ID (keyid) e como ele é determinado?

O Key ID representa o identificador único da chave pública do seu bot. Ele é calculado por meio do hash SHA-256 sobre a estrutura canônica da chave pública no formato JWK thumbprint (especificado nas RFC 7638 e RFC 8037) e codificado em base64url. Esse valor é incluído no parâmetro keyid do cabeçalho Signature-Input para indicar ao servidor qual chave pública deve ser usada na validação.

Por que o padrão Web Bot Auth adota chaves Ed25519 em vez de RSA?

O algoritmo Ed25519 produz chaves muito compactas e assinaturas determinísticas de execução extremamente rápida. Isso reduz o tamanho dos cabeçalhos HTTP transmitidos a cada requisição e minimiza o consumo de processamento tanto para o cliente que assina quanto para o servidor web que valida.

O que é a base de assinatura (signature base)?

A base de assinatura é o texto estruturado exato criado a partir dos cabeçalhos e metadados da requisição HTTP antes da aplicação da chave privada, conforme a RFC 9421. Divergências milimétricas de quebra de linha, espaçamento ou ordenação entre o cliente e o servidor são a causa principal de assinaturas rejeitadas.

Recarreguei a página e perdi a chave privada. O que devo fazer?

Como o Gerador de Chaves Web Bot Auth não mantém registros nem armazena segredos em banco de dados, a chave é descartada da memória ao fechar ou recarregar a aba. Você precisará gerar um novo par de chaves e atualizar o arquivo publicado no seu diretório público.

Qual é a vantagem do Web Bot Auth sobre a verificação por User-Agent e IP?

Cabeçalhos User-Agent podem ser clonados sem qualquer dificuldade técnica e listas de endereços IP sofrem com mudanças constantes de infraestrutura. O Web Bot Auth fornece prova criptográfica da identidade do agente vinculada ao domínio do operador. Para conferir se o comportamento do seu bot segue as regras do site de destino, utilize um testador de robots.txt.

É melhor escolher uma validade para a chave ou deixá-la sem expiração?

Definir um período de validade, como 90 dias ou 365 dias, incentiva rotinas regulares de rotação criptográfica e reduz riscos caso uma chave privada seja comprometida. Se o seu ambiente não tiver automação para atualizar chaves em produção, utilizar chaves sem expiração pode evitar paradas indesejadas no rastreamento.