O navegador da Dvina visita sites para uma pessoa de cada vez, quando essa pessoa pede à Dvina algo que exige um navegador real. Esta página destina-se aos proprietários de sites: explica o que o navegador faz, como reconhecer os seus pedidos e como permitir ou bloquear o seu acesso.
O que é
A Dvina é uma assistente pessoal. Quando alguém com sessão iniciada na Dvina pede uma tarefa que exige um site, como comparar ofertas ou preencher um formulário solicitado por essa pessoa, a Dvina pode fazê-lo num navegador próprio, no computador Dvina dessa pessoa. É um Chromium de desktop com uma janela, não um navegador sem interface gráfica, e a pessoa pode acompanhar a atividade em direto e assumir o controlo a qualquer momento.
- Age em nome de uma única pessoa. Cada navegador pertence a um único utilizador com sessão iniciada na Dvina e trabalha no que essa pessoa pediu.
- Não é um rastreador. Não existe uma lista de sites que visite por iniciativa própria. Abre as páginas necessárias para uma tarefa, um passo de cada vez: carrega uma página, lê-a e depois age sobre ela, tal como uma pessoa.
- Nunca é usado para treinar modelos. O que o navegador da Dvina lê no seu site é usado apenas para responder ao pedido da pessoa para quem trabalha. Nunca é usado para treinar um modelo de IA.
- Deixa as decisões pessoais nas mãos da pessoa. Não introduz palavras-passe nem dados de cartões. Quando uma página exige que a pessoa inicie sessão ou pague, a Dvina para e pede-lhe que assuma o controlo. Dados pessoais, envios, pagamentos e eliminações ficam à espera da aprovação da pessoa.
- Não resolve verificações humanas. Quando encontra uma verificação de que é uma pessoa a navegar, como a verificação da Cloudflare, o Turnstile, o reCAPTCHA ou o hCaptcha, não clica nela, não a resolve nem a recarrega. Quando uma verificação é concluída automaticamente, a Dvina aguarda. Quando permanece, o trabalho para e a pessoa assume o controlo do navegador, passa a verificação e devolve-lhe o controlo.
Reconhecer os pedidos
O navegador da Dvina assina todos os pedidos http e https que envia com Web Bot Auth, usando assinaturas de mensagens HTTP (RFC 9421) com uma chave Ed25519. Cada pedido inclui três cabeçalhos:
Signature-Agent: "https://api.dvina.ai"
Signature-Input: sig1=("@authority" "signature-agent");created=<unix time>;expires=<created + 60>;keyid="<key id>";alg="ed25519";nonce="<random>";tag="web-bot-auth"
Signature: sig1=:<Ed25519 signature>:
Signature-Agentidentifica a Dvina, a origem onde as suas chaves são publicadas.Signature-Inputabrange o@authoritydo pedido (o seu anfitrião) e o cabeçalhoSignature-Agent. Otagéweb-bot-auth.- Cada assinatura é válida durante 60 segundos, de
createdaexpires. keyidé a impressão digital JWK da chave (RFC 7638).
O navegador envia o user agent do próprio Chromium, igual ao de qualquer Chromium em Linux, por exemplo:
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/155.0.0.0 Safari/537.36
A versão do Chrome acompanha as atualizações do Chromium, e o user agent não indica nada sobre a Dvina. Reconheça a Dvina pela assinatura, não pelo user agent.
Nota
Com a aplicação de desktop, uma pessoa também pode permitir que a Dvina utilize um navegador no seu próprio computador. Esse navegador não assina os pedidos e parece ser a navegação da própria pessoa.
Verificar uma assinatura
A Dvina publica a sua chave pública no seu diretório de chaves:
https://api.dvina.ai/.well-known/http-message-signatures-directory
O diretório responde com Content-Type: application/http-message-signatures-directory+json e um JSON Web Key Set com a chave pública Ed25519 da Dvina. A resposta é assinada com a mesma chave, com tag="http-message-signatures-directory".
Se o seu site estiver na Cloudflare, a Cloudflare verifica os agentes com assinatura por si. Para verificar um pedido por conta própria:
- Verifique se
Signature-Agenté"https://api.dvina.ai"e seSignature-Inputcontémtag="web-bot-auth". - Verifique se a hora atual está entre
createdeexpires. - Obtenha o diretório de chaves e selecione a chave cuja impressão digital JWK corresponde a
keyid. - Construa a base da assinatura a partir de
@authority,signature-agente dos parâmetros da assinatura, conforme descrito na RFC 9421, e verifique aSignaturecom essa chave Ed25519.
Qualquer pessoa pode enviar estes cabeçalhos. Só considere que um pedido é da Dvina quando a sua assinatura for validada com o diretório de chaves da Dvina.
Permitir ou bloquear o acesso
O navegador da Dvina atua em tempo real para uma pessoa: é este o tipo de tráfego abrangido pela predefinição Agent da Cloudflare. Se o teu site estiver na Cloudflare:
- Políticas para bots de IA: Em Definições de segurança, escolhe Configurar políticas para bots de IA. Para Agent, escolhe Permitir (não bloquear), Bloquear em páginas com anúncios ou Bloquear (em todas as páginas).
- Regras personalizadas do WAF: Os pedidos de bots verificados e agentes assinados têm
cf.client.bot(cf.bot_management.verified_botcom Bot Management) definido como true. Usa este campo numa regra personalizada para ignorar verificações, apresentar um desafio ou bloquear esses pedidos. - Diretório de bots verificados: Consulta os agentes que a Cloudflare verifica no Cloudflare Radar.
Nas restantes plataformas, verifica a assinatura conforme descrito acima e, em seguida, permite ou bloqueia os pedidos cujo Signature-Agent verificado seja "https://api.dvina.ai".
Contacta-nos
Tens dúvidas sobre o navegador da Dvina no teu site ou sobre um pedido que não se comportou conforme descrito nesta página? Envia um email para support@dvina.ai com o endereço do teu site e, se os tiveres, a hora e o keyid dos pedidos.