# De browseragent van Dvina

> Hoe website-eigenaren de browser die Dvina gebruikt voor de mensen voor wie het werkt, kunnen herkennen, verifiëren, toestaan of blokkeren.

De browser van Dvina bezoekt websites voor één persoon tegelijk, wanneer die persoon Dvina vraagt om iets waarvoor een echte browser nodig is. Deze pagina is voor website-eigenaren: wat de browser doet, hoe je de verzoeken herkent en hoe je de browser toestaat of blokkeert.

## Wat het is

Dvina is een persoonlijke assistent. Wanneer iemand die bij Dvina is ingelogd een taak geeft waarvoor een website nodig is, zoals aanbiedingen vergelijken of een formulier invullen op verzoek van die persoon, kan Dvina dat doen in een eigen browser op de Dvina-computer van die persoon. Het is een desktopversie van Chromium met een venster, geen headless browser. De persoon kan live meekijken en de browser op elk moment overnemen.

- **De browser werkt voor één persoon.** Elke browser hoort bij één ingelogde Dvina-gebruiker en werkt aan wat die persoon heeft gevraagd.
- **Het is geen crawler.** Er is geen lijst met sites die de browser uit zichzelf bezoekt. De browser opent de pagina's die nodig zijn voor een taak, stap voor stap: een pagina laden, lezen en er vervolgens iets op doen, zoals een persoon dat doet.
- **Nooit gebruikt om modellen te trainen.** Wat de browser van Dvina op je site leest, wordt alleen gebruikt voor het verzoek van de persoon voor wie de browser werkt. Het wordt nooit gebruikt om een AI-model te trainen.
- **De browser laat persoonlijke beslissingen aan de persoon zelf over.** De browser voert geen wachtwoorden of kaartgegevens in. Als iemand op een pagina moet inloggen of betalen, stopt Dvina en vraagt het die persoon om de browser over te nemen. Persoonlijke gegevens, verzenden, betalen en verwijderen wachten op toestemming van die persoon.
- **De browser lost geen controles op die nagaan of de bezoeker een mens is.** Bij een controle die nagaat of een persoon de browser gebruikt, zoals de controle van Cloudflare, Turnstile, reCAPTCHA of hCaptcha, klikt de browser die niet aan, lost die niet op en laadt die niet opnieuw. Als een controle vanzelf wordt afgerond, wacht Dvina daarop. Als de controle blijft staan, stopt het werk en neemt de persoon de browser over, doorloopt de controle en geeft de browser weer terug.

## Herken de verzoeken

De browser van Dvina ondertekent elk http- en https-verzoek dat wordt verzonden met [Web Bot Auth](https://datatracker.ietf.org/wg/webbotauth/about/): HTTP-berichthandtekeningen ([RFC 9421](https://www.rfc-editor.org/rfc/rfc9421)) met een Ed25519-sleutel. Elk verzoek bevat drie headers:

```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` identificeert Dvina en geeft de origin aan waar de sleutels worden gepubliceerd.
- `Signature-Input` omvat de `@authority` van het verzoek (je host) en de header `Signature-Agent`. De `tag` is `web-bot-auth`.
- Elke handtekening is 60 seconden geldig, van `created` tot `expires`.
- `keyid` is de JWK-thumbprint van de sleutel ([RFC 7638](https://www.rfc-editor.org/rfc/rfc7638)).

De browser verstuurt de eigen user agent van Chromium, dezelfde als die van elke Chromium-browser op Linux, bijvoorbeeld:

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

De Chrome-versie verandert mee met de updates van Chromium en de user agent vermeldt niets over Dvina. Herken Dvina aan de handtekening, niet aan de user agent.

> [!NOTE]
> Met de desktopapp kan iemand Dvina ook een browser op de eigen computer laten gebruiken. Die browser ondertekent de verzoeken niet en ziet eruit als het eigen browsergebruik van die persoon.

## Verifieer een handtekening

Dvina publiceert de openbare sleutel in de sleuteldirectory:

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

De directory antwoordt met `Content-Type: application/http-message-signatures-directory+json` en een JSON Web Key Set met de openbare Ed25519-sleutel van Dvina. Het antwoord is ondertekend met dezelfde sleutel, met `tag="http-message-signatures-directory"`.

Als je site Cloudflare gebruikt, verifieert Cloudflare ondertekende agents voor je. Zo verifieer je zelf een verzoek:

1. Controleer of `Signature-Agent` `"https://api.dvina.ai"` is en of `Signature-Input` `tag="web-bot-auth"` bevat.
2. Controleer of de huidige tijd tussen `created` en `expires` ligt.
3. Haal de sleuteldirectory op en kies de sleutel waarvan de JWK-thumbprint overeenkomt met `keyid`.
4. Stel de handtekeningbasis samen uit `@authority`, `signature-agent` en de handtekeningparameters, zoals beschreven in RFC 9421, en verifieer de `Signature` met die Ed25519-sleutel.

Iedereen kan deze headers versturen. Beschouw een verzoek alleen als afkomstig van Dvina als de handtekening geldig blijkt bij verificatie met de sleuteldirectory van Dvina.

## Sta de browser toe of blokkeer deze

De browser van Dvina handelt in realtime namens één persoon: het soort verkeer waarvoor de voorinstelling **Agent** van Cloudflare bedoeld is. Als je site Cloudflare gebruikt:

- **Beleid voor AI-bots:** Kies in **Security Settings** voor **Configure AI bot policies**. Kies bij **Agent** voor **Allow (do not block)**, **Block on pages with ads** of **Block (on all pages)**.
- **Aangepaste WAF-regels:** Bij verzoeken van geverifieerde bots en ondertekende agents staat `cf.client.bot` (`cf.bot_management.verified_bot` met Bot Management) op true. Gebruik dit veld in een aangepaste regel om ze over te slaan, een challenge te laten doorlopen of te blokkeren.
- **Overzicht van geverifieerde bots:** Bekijk de agents die Cloudflare verifieert in [Cloudflare Radar](https://radar.cloudflare.com/verified-bots).

Anywhere else, verify the signature as described above, then allow or block requests whose verified `Signature-Agent` is `"https://api.dvina.ai"`.

## Neem contact met ons op

Heb je vragen over de browser van Dvina op je site, of over een verzoek dat zich anders gedroeg dan op deze pagina beschreven? Mail naar [support@dvina.ai](mailto:support@dvina.ai) met het adres van je site en, als je die hebt, het tijdstip en de `keyid` van de verzoeken.

## Gerelateerd

- [Computergebruik](/docs/use-dvina/features/computer-use)
- [Privacy en gegevens](/docs/help/privacy-and-data)
