E16 · Vetor do draft
3 minRode o bloco vetor.
Pronto quando: vetor E.2.1: confere e saída: 0.
Aula 6 · 18 min
User-Agent qualquer um escreve. Web Bot Auth é a proposta do IETF para o bot assinar cada pedido com uma chave publicada numa URL dele. Ainda é rascunho (-00, setembro de 2026). Nesta aula você confere uma assinatura contra o vetor do draft e vê num servidor local o que ela prova e o que não prova.
Começar a aula
Objetivo: conferir uma assinatura Web Bot Auth com o vetor do draft e verificar pedidos assinados num servidor local, sabendo o que a assinatura não prova.
draft-ietf-webbotauth-httpsig-protocol-00 (01/09/2026). Clique em cada etapa.
Rascunho de grupo do IETF (Cloudflare e Google), expira em 05/03/2027. Não é RFC.
Apêndice E.2.1: Ed25519 com a chave de teste pública do RFC 9421 (B.1.4). Só node:crypto, nenhum pacote.
cd ~/projetos/formacao-webmcp-seguranca-v72/kit node scripts/wba.mjs vetor; echo "saída: $?"
== node v24.13.0 · draft-ietf-webbotauth-httpsig-protocol-00 (01/09/2026) keyid calculado: poqkLGiymh_W0uP6PZFw-dvez3QJT5SolqXBCW38r0U · confere assinatura: RdNFx5Bj6au3YgAMQL/RzmUl… · confere vetor E.2.1: confere saída: 0
Ed25519 é determinístico: mesma chave e mesma base dão a mesma assinatura. Se a sua implementação refaz o vetor, ela monta a base de assinatura do jeito do draft. A chave de teste nunca vai para produção (anexo C.12 do draft).
Chave nova a cada execução. A origem já tem o diretório do agente, como o draft permite (§4.4); nada sai da sua máquina.
cd ~/projetos/formacao-webmcp-seguranca-v72/kit node scripts/wba.mjs demo; echo "saída: $?"
== node v24.13.0 · draft-ietf-webbotauth-httpsig-protocol-00 (01/09/2026) · origem http://127.0.0.1:36913 1 · sem assinatura → anônimo: sem assinatura (a política do site decide) 2 · assinado, válido → identificado: https://agente.exemplo (chave gw6T0rIc…) 3 · mesma assinatura em outro caminho → recusado: assinatura não confere 4 · assinatura vencida → recusado: assinatura vencida 5 · chave que a origem não conhece → recusado: chave desconhecida para https://agente.exemplo 6 · replay dentro da validade → identificado: https://agente.exemplo (chave gw6T0rIc…) 7 · assinatura mínima (só @authority) usada em /admin → identificado: https://agente.exemplo (chave gw6T0rIc…) 7/7 casos como esperado · replay dentro da validade: aceito saída: 0
Os casos 6 e 7 são o aviso do draft (§5.2): dentro da validade, quem viu o pedido pode repeti-lo; e uma assinatura que cobre só @authority vale para qualquer caminho do site. Por isso: validade curta e @method + @path cobertos, e a origem pode exigir esses componentes.
Desde 01/07/2026, agentes assinados com Web Bot Auth contam como Verified, com um campo novo: Direct (um operador só) ou Intermediary (serviço que muitos usuários comandam).
No Intermediary, você pode confiar no operador e não em cada usuário que dirige o agente. A Cloudflare chama isso de confiança transitiva.
Anônimo continua existindo: assinar é escolha do bot. Escreva a sua política para os três casos: anônimo, assinado e conhecido, assinado e desconhecido.
robots.txt diz para que finalidade cada bot pode vir; a assinatura diz quem é. O robots a fundo é da Formação inemaSEO.
Conferir e decidir.
Rode o bloco vetor.
Pronto quando: vetor E.2.1: confere e saída: 0.
Rode o bloco demo e explique, em uma frase cada, por que os casos 6 e 7 foram aceitos.
Pronto quando: 7/7 casos como esperado · replay dentro da validade: aceito.
Crie politica-bots.md com três linhas, uma por caso, começando por anônimo:, assinado e conhecido: e assinado e desconhecido:, cada uma com o que o site faz (permitir, limitar, bloquear, em quais páginas). Os prefixos ficam em português porque o comando de conferência procura por eles.
Pronto quando: grep -c -E "^(anônimo|assinado e conhecido|assinado e desconhecido):" politica-bots.md → 3.
Pergunta 1 de 4
Uma assinatura Web Bot Auth válida prova o quê?competência
Pergunta 2 de 4
Por que a assinatura mínima (só @authority) foi aceita em /admin no caso 7?
Pergunta 3 de 4
Qual é o status do Web Bot Auth em 19/10/2026?
Pergunta 4 de 4
Na Cloudflare, o que muda quando o agente é Intermediary?
Escolha uma alternativa. A explicação aparece depois da sua tentativa.