# Agente de navegação da Dvina

> Como proprietários de sites podem reconhecer, verificar, permitir ou bloquear o navegador que a Dvina usa para as pessoas que atende.

O navegador da Dvina visita sites para uma pessoa por vez, quando ela pede à Dvina algo que exige um navegador real. Esta página é para proprietários de sites: explica o que o navegador faz, como reconhecer suas requisições e como permitir ou bloquear seu acesso.

## O que é

A Dvina é uma assistente pessoal. Quando alguém conectado à Dvina pede uma tarefa que exige acessar um site, como comparar ofertas ou preencher um formulário solicitado pela pessoa, a Dvina pode executá-la em um navegador próprio, no computador Dvina dessa pessoa. É um Chromium para desktop com uma janela, não um navegador headless, e a pessoa pode acompanhar tudo ao vivo e assumir o controle a qualquer momento.

- **Age em nome de uma pessoa.** Cada navegador pertence a um usuário conectado à Dvina e trabalha no que essa pessoa pediu.
- **Não é um rastreador.** Não há uma lista de sites que ele visita por conta própria. Ele abre as páginas necessárias para uma tarefa, uma etapa por vez: carrega uma página, lê seu conteúdo e depois age nela, como uma pessoa faria.
- **O conteúdo nunca é usado para treinar modelos.** O que o navegador da Dvina lê no seu site é usado apenas para atender à solicitação da pessoa para quem ele trabalha. Esse conteúdo nunca é usado para treinar um modelo de IA.
- **Deixa as decisões da pessoa nas mãos dela.** Não digita senhas nem dados de cartão. Quando uma página exige que a pessoa faça login ou pague, a Dvina para e pede que ela assuma o controle. Dados pessoais, envios, pagamentos e exclusões aguardam a aprovação da pessoa.
- **Não resolve verificações humanas.** Ao encontrar uma verificação de que quem navega é uma pessoa, como a verificação da Cloudflare, Turnstile, reCAPTCHA ou hCaptcha, ele não clica nela, não a resolve nem a recarrega. Quando a verificação é concluída sozinha, a Dvina aguarda. Quando ela permanece, o trabalho para, e a pessoa assume o controle do navegador, passa pela verificação e devolve o controle.

## Reconheça suas requisições

O navegador da Dvina assina todas as requisições http e https que envia usando [Web Bot Auth](https://datatracker.ietf.org/wg/webbotauth/about/), assinaturas de mensagens HTTP ([RFC 9421](https://www.rfc-editor.org/rfc/rfc9421)) com uma chave Ed25519. Cada requisição inclui três cabeçalhos:

```http
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-Agent` identifica a Dvina, a origem onde suas chaves são publicadas.
- `Signature-Input` abrange o `@authority` da requisição (seu host) e o cabeçalho `Signature-Agent`. O `tag` é `web-bot-auth`.
- Cada assinatura é válida por 60 segundos, de `created` a `expires`.
- `keyid` é a impressão digital JWK da chave ([RFC 7638](https://www.rfc-editor.org/rfc/rfc7638)).

O navegador envia o user agent do próprio Chromium, igual ao de qualquer Chromium no Linux, por exemplo:

```text
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 informa nada sobre a Dvina. Reconheça a Dvina pela assinatura, não pelo user agent.

> [!NOTE]
> Com o aplicativo para desktop, a pessoa também pode permitir que a Dvina use um navegador no próprio computador dela. Esse navegador não assina suas requisições e se parece com a navegação da própria pessoa.

## Verifique uma assinatura

A Dvina publica sua chave pública no diretório de chaves:

```text
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 seu site está na Cloudflare, a Cloudflare verifica agentes assinados para você. Para verificar uma requisição por conta própria:

1. Verifique se `Signature-Agent` é `"https://api.dvina.ai"` e se `Signature-Input` contém `tag="web-bot-auth"`.
2. Verifique se o horário atual está entre `created` e `expires`.
3. Obtenha o diretório de chaves e selecione a chave cuja impressão digital JWK corresponde a `keyid`.
4. Construa a base da assinatura a partir de `@authority`, `signature-agent` e dos parâmetros da assinatura, conforme descrito na RFC 9421, e verifique a `Signature` com essa chave Ed25519.

Qualquer pessoa pode enviar esses cabeçalhos. Só considere uma requisição como sendo da Dvina quando sua assinatura for validada com uma chave do diretório de chaves da Dvina.

## Permita ou bloqueie o acesso

O navegador da Dvina atua em tempo real para uma pessoa: é o tipo de tráfego abrangido pela predefinição **Agent** da Cloudflare. Se o seu site usa a Cloudflare:

- **Políticas para bots de IA:** Em **Configurações de segurança**, escolha **Configurar políticas para bots de IA**. Para **Agent**, escolha **Permitir (não bloquear)**, **Bloquear em páginas com anúncios** ou **Bloquear (em todas as páginas)**.
- **Regras personalizadas do WAF:** As solicitações de bots verificados e agentes com assinatura têm `cf.client.bot` (`cf.bot_management.verified_bot` com Bot Management) definido como true. Use esse campo em uma regra personalizada para ignorar, desafiar ou bloquear essas solicitações.
- **Diretório de bots verificados:** Veja os agentes que a Cloudflare verifica no [Cloudflare Radar](https://radar.cloudflare.com/verified-bots).

Nos demais casos, verifique a assinatura conforme descrito acima e permita ou bloqueie as solicitações cujo `Signature-Agent` verificado seja `"https://api.dvina.ai"`.

## Fale conosco

Tem dúvidas sobre o navegador da Dvina no seu site ou sobre uma solicitação que não se comportou como esta página descreve? Envie um e-mail para [support@dvina.ai](mailto:support@dvina.ai) com o endereço do seu site e, se tiver essas informações, o horário e o `keyid` das solicitações.

## Conteúdo relacionado

- [Uso do computador](/docs/use-dvina/features/computer-use)
- [Privacidade e dados](/docs/help/privacy-and-data)
