# Agent prohlížeče Dvina

> Jak mohou majitelé webů rozpoznat, ověřit, povolit nebo zablokovat prohlížeč, který Dvina používá pro lidi, jimž pomáhá.

Prohlížeč Dvina navštěvuje weby vždy pro jednoho člověka, když tento člověk požádá Dvina o něco, co vyžaduje skutečný prohlížeč. Tato stránka je určená majitelům webů: vysvětluje, co prohlížeč dělá, jak rozpoznat jeho požadavky a jak ho povolit nebo zablokovat.

## Co je to

Dvina je osobní asistentka. Když přihlášený uživatel požádá Dvina o úkol, který vyžaduje práci s webem, například porovnání nabídek nebo vyplnění formuláře podle jeho zadání, Dvina ho může provést ve vlastním prohlížeči na počítači tohoto uživatele v Dvina. Jde o desktopový Chromium s oknem, nikoli o bezhlavý prohlížeč. Uživatel ho může sledovat živě a kdykoli převzít jeho ovládání.

- **Jedná za jednoho člověka.** Každý prohlížeč patří jednomu přihlášenému uživateli Dvina a pracuje na tom, o co tento uživatel požádal.
- **Není to crawler.** Nemá žádný seznam webů, které by navštěvoval z vlastní iniciativy. Otevírá stránky potřebné pro daný úkol, krok za krokem: načte stránku, přečte ji a pak na ní něco udělá, stejně jako člověk.
- **Nikdy se nepoužívá k trénování modelů.** To, co prohlížeč Dvina přečte na vašem webu, se používá pouze pro požadavek člověka, pro kterého pracuje. Nikdy se tím netrénuje model AI.
- **Osobní rozhodnutí nechává na uživateli.** Nezadává hesla ani údaje o platebních kartách. Když stránka vyžaduje přihlášení nebo platbu, Dvina se zastaví a požádá uživatele, aby převzal ovládání. Osobní údaje, odesílání, platby a mazání čekají na souhlas uživatele.
- **Neřeší ověření, že jde o člověka.** Když narazí na kontrolu, zda web prohlíží člověk, například kontrolu od Cloudflare, Turnstile, reCAPTCHA nebo hCaptcha, nekliká na ni, neřeší ji ani ji znovu nenačítá. Pokud kontrola proběhne sama, Dvina na ni počká. Pokud zůstane zobrazená, práce se zastaví a uživatel převezme prohlížeč, projde kontrolou a předá ho zpět.

## Jak rozpoznat jeho požadavky

Prohlížeč Dvina podepisuje každý odeslaný požadavek http a https pomocí [Web Bot Auth](https://datatracker.ietf.org/wg/webbotauth/about/), tedy podpisů zpráv HTTP ([RFC 9421](https://www.rfc-editor.org/rfc/rfc9421)) s klíčem Ed25519. Každý požadavek obsahuje tři hlavičky:

```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` uvádí origin Dvina, kde jsou zveřejněny její klíče.
- `Signature-Input` zahrnuje `@authority` požadavku (váš hostitel) a hlavičku `Signature-Agent`. Hodnota `tag` je `web-bot-auth`.
- Každý podpis platí 60 sekund, od `created` do `expires`.
- `keyid` je otisk JWK klíče ([RFC 7638](https://www.rfc-editor.org/rfc/rfc7638)).

Prohlížeč odesílá vlastní user agent prohlížeče Chromium, stejný jako jakýkoli Chromium na Linuxu, například:

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

Jeho verze Chrome se mění s aktualizacemi Chromium a user agent neobsahuje žádnou zmínku o Dvina. Dvina rozpoznávejte podle podpisu, ne podle user agentu.

> [!NOTE]
> V desktopové aplikaci může uživatel také povolit Dvina používat prohlížeč na svém vlastním počítači. Tento prohlížeč své požadavky nepodepisuje a vypadá jako běžné prohlížení webu daným uživatelem.

## Jak ověřit podpis

Dvina zveřejňuje svůj veřejný klíč v adresáři klíčů:

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

Adresář vrací odpověď s `Content-Type: application/http-message-signatures-directory+json` a sadou JSON Web Key Set s veřejným klíčem Ed25519 Dvina. Odpověď je podepsaná stejným klíčem s `tag="http-message-signatures-directory"`.

Pokud váš web používá Cloudflare, podepsané agenty za vás ověřuje Cloudflare. Pokud chcete požadavek ověřit sami:

1. Zkontrolujte, že `Signature-Agent` je `"https://api.dvina.ai"` a že `Signature-Input` obsahuje `tag="web-bot-auth"`.
2. Zkontrolujte, že aktuální čas je mezi `created` a `expires`.
3. Načtěte adresář klíčů a vyberte klíč, jehož otisk JWK odpovídá `keyid`.
4. Sestavte základ podpisu z `@authority`, `signature-agent` a parametrů podpisu podle RFC 9421 a ověřte `Signature` pomocí tohoto klíče Ed25519.

Tyto hlavičky může poslat kdokoli. Považujte požadavek za požadavek od Dvina pouze tehdy, když se jeho podpis podaří ověřit pomocí adresáře klíčů Dvina.

## Jak ho povolit nebo zablokovat

Prohlížeč Dvina jedná v reálném čase za jednoho člověka: právě tento typ provozu zahrnuje předvolba **Agent** v Cloudflare. Pokud váš web používá Cloudflare:

- **Pravidla pro AI boty:** V **Security Settings** vyberte **Configure AI bot policies**. Pro **Agent** vyberte **Allow (do not block)**, **Block on pages with ads** nebo **Block (on all pages)**.
- **Vlastní pravidla WAF:** Požadavky od ověřených botů a podepsaných agentů mají `cf.client.bot` (při použití Bot Management `cf.bot_management.verified_bot`) nastavené na true. Pomocí tohoto pole ve vlastním pravidle můžete tyto požadavky vyjmout z kontrol, vyžádat si ověření nebo je zablokovat.
- **Adresář ověřených botů:** Agenty, které Cloudflare ověřuje, najdete v [Cloudflare Radar](https://radar.cloudflare.com/verified-bots).

V ostatních případech ověřte podpis podle výše uvedeného postupu a poté povolte nebo zablokujte požadavky, jejichž ověřený `Signature-Agent` je `"https://api.dvina.ai"`.

## Kontaktujte nás

Máte dotazy k prohlížeči Dvina na svém webu nebo jste zaznamenali požadavek, který se nechoval podle popisu na této stránce? Napište na [support@dvina.ai](mailto:support@dvina.ai) a uveďte adresu svého webu. Pokud máte k dispozici čas požadavků a jejich `keyid`, připojte je také.

## Související

- [Ovládání počítače](/docs/use-dvina/features/computer-use)
- [Soukromí a data](/docs/help/privacy-and-data)
