# O agente de navegação da Dvina

> Como os proprietários de sites podem reconhecer, verificar, permitir ou bloquear o navegador que a Dvina utiliza para as pessoas para quem trabalha.

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](https://datatracker.ietf.org/wg/webbotauth/about/), usando assinaturas de mensagens HTTP ([RFC 9421](https://www.rfc-editor.org/rfc/rfc9421)) com uma chave Ed25519. Cada pedido 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 as suas chaves são publicadas.
- `Signature-Input` abrange o `@authority` do pedido (o seu anfitrião) e o cabeçalho `Signature-Agent`. O `tag` é `web-bot-auth`.
- Cada assinatura é válida durante 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 em 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 indica nada sobre a Dvina. Reconheça a Dvina pela assinatura, não pelo user agent.

> [!NOTE]
> 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:

```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 o seu site estiver na Cloudflare, a Cloudflare verifica os agentes com assinatura por si. Para verificar um pedido 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 a hora 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 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_bot` com 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](https://radar.cloudflare.com/verified-bots).

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](mailto:support@dvina.ai) com o endereço do teu site e, se os tiveres, a hora e o `keyid` dos pedidos.

## Conteúdo relacionado

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