# El agente de navegador de Dvina

> Cómo reconocer, verificar, permitir o bloquear el navegador que Dvina usa para las personas a las que asiste, si eres propietario de un sitio web.

El navegador de Dvina visita sitios web para una sola persona a la vez, cuando esa persona le pide a Dvina algo que requiere un navegador real. Esta página está dirigida a los propietarios de sitios web: explica qué hace el navegador, cómo reconocer sus solicitudes y cómo permitirlo o bloquearlo.

## Qué es

Dvina es un asistente personal. Cuando alguien que ha iniciado sesión en Dvina le pide una tarea que requiere un sitio web, como comparar ofertas o rellenar un formulario que esa persona ha solicitado, Dvina puede hacerla en su propio navegador, en el ordenador de Dvina de esa persona. Es un Chromium de escritorio con una ventana, no un navegador sin interfaz gráfica, y la persona puede verlo en directo y tomar el control en cualquier momento.

- **Actúa para una sola persona.** Cada navegador pertenece a un usuario que ha iniciado sesión en Dvina y trabaja en lo que esa persona ha pedido.
- **No es un rastreador.** No tiene una lista de sitios que visita por su cuenta. Abre las páginas que necesita para una tarea, paso a paso: carga una página, la lee y luego actúa en ella, como lo haría una persona.
- **Nunca se usa para entrenar modelos.** Lo que el navegador de Dvina lee en tu sitio se usa únicamente para la solicitud de la persona a la que asiste. Nunca se usa para entrenar un modelo de IA.
- **Deja las decisiones personales en manos de la persona.** No introduce contraseñas ni datos de tarjetas. Cuando una página requiere que la persona inicie sesión o pague, Dvina se detiene y le pide que tome el control. Los datos personales, los envíos, los pagos y las eliminaciones requieren su aprobación.
- **No resuelve verificaciones humanas.** Cuando encuentra una comprobación de que quien navega es una persona, como la de Cloudflare, Turnstile, reCAPTCHA o hCaptcha, no hace clic en ella, no la resuelve ni la recarga. Si la comprobación se supera por sí sola, Dvina espera. Si permanece, el trabajo se detiene y la persona toma el control del navegador, supera la comprobación y devuelve el control a Dvina.

## Reconoce sus solicitudes

El navegador de Dvina firma todas las solicitudes http y https que envía mediante [Web Bot Auth](https://datatracker.ietf.org/wg/webbotauth/about/), con firmas de mensajes HTTP ([RFC 9421](https://www.rfc-editor.org/rfc/rfc9421)) y una clave Ed25519. Cada solicitud incluye tres cabeceras:

```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 e indica el origen donde se publican sus claves.
- `Signature-Input` cubre el `@authority` de la solicitud (tu host) y la cabecera `Signature-Agent`. El `tag` es `web-bot-auth`.
- Cada firma es válida durante 60 segundos, desde `created` hasta `expires`.
- `keyid` es la huella digital JWK de la clave ([RFC 7638](https://www.rfc-editor.org/rfc/rfc7638)).

El navegador envía el agente de usuario propio de Chromium, igual que cualquier Chromium en Linux, por ejemplo:

```text
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/155.0.0.0 Safari/537.36
```

Su versión de Chrome cambia con las actualizaciones de Chromium, y el agente de usuario no indica nada sobre Dvina. Reconoce a Dvina por su firma, no por su agente de usuario.

> [!NOTE]
> Con la aplicación de escritorio, una persona también puede permitir que Dvina use un navegador en su propio ordenador. Ese navegador no firma sus solicitudes y se muestra como la navegación de la propia persona.

## Verifica una firma

Dvina publica su clave pública en su directorio de claves:

```text
https://api.dvina.ai/.well-known/http-message-signatures-directory
```

El directorio responde con `Content-Type: application/http-message-signatures-directory+json` y un conjunto de claves web JSON (JSON Web Key Set) con la clave pública Ed25519 de Dvina. La respuesta está firmada con la misma clave, con `tag="http-message-signatures-directory"`.

Si tu sitio está en Cloudflare, Cloudflare verifica los agentes firmados por ti. Para verificar una solicitud por tu cuenta:

1. Comprueba que `Signature-Agent` sea `"https://api.dvina.ai"` y que `Signature-Input` tenga `tag="web-bot-auth"`.
2. Comprueba que la hora actual esté entre `created` y `expires`.
3. Obtén el directorio de claves y elige la clave cuya huella digital JWK coincida con `keyid`.
4. Construye la base de la firma a partir de `@authority`, `signature-agent` y los parámetros de la firma, como se describe en RFC 9421, y verifica `Signature` con esa clave Ed25519.

Cualquiera puede enviar estas cabeceras. Considera que una solicitud es de Dvina solo si su firma se verifica con el directorio de claves de Dvina.

## Permite o bloquea el navegador

El navegador de Dvina actúa en tiempo real para una sola persona: el tipo de tráfico que cubre la categoría **Agente** de Cloudflare. Si tu sitio usa Cloudflare:

- **Políticas de bots de IA:** En **Configuración de seguridad**, selecciona **Configurar políticas de bots de IA**. Para **Agente**, selecciona **Permitir (no bloquear)**, **Bloquear en páginas con anuncios** o **Bloquear (en todas las páginas)**.
- **Reglas personalizadas del WAF:** Las solicitudes de bots verificados y agentes firmados tienen `cf.client.bot` (`cf.bot_management.verified_bot` con Bot Management) establecido en true. Úsalo en una regla personalizada para omitir comprobaciones, solicitar un desafío o bloquear esas solicitudes.
- **Directorio de bots verificados:** Consulta los agentes que verifica Cloudflare en [Cloudflare Radar](https://radar.cloudflare.com/verified-bots).

En cualquier otro caso, verifica la firma como se describe arriba y, después, permite o bloquea las solicitudes cuyo `Signature-Agent` verificado sea `"https://api.dvina.ai"`.

## Contacta con nosotros

¿Tienes preguntas sobre el navegador de Dvina en tu sitio o sobre alguna solicitud que no se haya comportado como se describe en esta página? Escribe a [support@dvina.ai](mailto:support@dvina.ai) e incluye la dirección de tu sitio y, si los tienes, la hora y el `keyid` de las solicitudes.

## Contenido relacionado

- [Uso del ordenador](/docs/use-dvina/features/computer-use)
- [Privacidad y datos](/docs/help/privacy-and-data)
