# Браузерный агент Dvina

> Как владельцам сайтов распознавать и проверять запросы браузера, который Dvina использует для своих пользователей, а также разрешать или блокировать его.

Браузер Dvina посещает сайты в интересах одного человека за раз, когда этот человек просит Dvina выполнить задачу, для которой нужен настоящий браузер. Эта страница предназначена для владельцев сайтов: здесь описано, что делает браузер, как распознать его запросы и как разрешить или заблокировать его.

## Что это такое

Dvina — персональный помощник. Когда пользователь, вошедший в Dvina, просит выполнить задачу, для которой нужен сайт, например сравнить предложения или заполнить указанную им форму, Dvina может сделать это в собственном браузере на компьютере этого пользователя в Dvina. Это настольный Chromium с окном, а не браузер без графического интерфейса. Пользователь может наблюдать за его работой в реальном времени и в любой момент взять управление на себя.

- **Он действует в интересах одного человека.** Каждый браузер принадлежит одному пользователю, вошедшему в Dvina, и выполняет его запросы.
- **Это не поисковый робот.** У него нет списка сайтов, которые он посещает самостоятельно. Он открывает страницы, необходимые для задачи, шаг за шагом: загружает страницу, читает её, затем выполняет на ней действия — так же, как человек.
- **Данные никогда не используются для обучения моделей.** Всё, что браузер Dvina читает на вашем сайте, используется только для выполнения запроса человека, в интересах которого он работает. Эти данные никогда не используются для обучения моделей ИИ.
- **Личные решения остаются за человеком.** Браузер не вводит пароли или данные банковских карт. Когда на странице нужно войти в аккаунт или оплатить покупку, Dvina останавливается и просит пользователя взять управление на себя. Действия с личными данными, отправка, оплата и удаление выполняются только после подтверждения пользователя.
- **Он не проходит проверки на то, что пользователь — человек.** При появлении такой проверки, например проверки Cloudflare, Turnstile, reCAPTCHA или hCaptcha, браузер не нажимает на неё, не решает её и не перезагружает. Если проверка проходит автоматически, Dvina ждёт её завершения. Если она остаётся, работа останавливается: пользователь берёт управление браузером на себя, проходит проверку и возвращает управление.

## Как распознать его запросы

Браузер Dvina подписывает каждый отправляемый http- и https-запрос с помощью [Web Bot Auth](https://datatracker.ietf.org/wg/webbotauth/about/) — подписей HTTP-сообщений ([RFC 9421](https://www.rfc-editor.org/rfc/rfc9421)) с ключом Ed25519. Каждый запрос содержит три заголовка:

```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` указывает на Dvina — источник, где опубликованы её ключи.
- `Signature-Input` охватывает `@authority` запроса (ваш хост) и заголовок `Signature-Agent`. Значение `tag` — `web-bot-auth`.
- Каждая подпись действительна в течение 60 секунд, от `created` до `expires`.
- `keyid` — это отпечаток JWK ключа ([RFC 7638](https://www.rfc-editor.org/rfc/rfc7638)).

Браузер отправляет собственный user agent Chromium, такой же, как у любого Chromium в Linux, например:

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

Версия Chrome меняется по мере обновления Chromium, а user agent не содержит никаких сведений о Dvina. Распознавайте Dvina по подписи, а не по user agent.

> [!NOTE]
> В приложении для компьютера пользователь также может разрешить Dvina использовать браузер на своём компьютере. Этот браузер не подписывает запросы, и его работа выглядит как обычные действия самого пользователя в браузере.

## Как проверить подпись

Dvina публикует свой открытый ключ в каталоге ключей:

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

Каталог возвращает ответ с `Content-Type: application/http-message-signatures-directory+json` и набором JSON Web Key Set, содержащим открытый ключ Ed25519 Dvina. Ответ подписан тем же ключом с `tag="http-message-signatures-directory"`.

Если ваш сайт использует Cloudflare, сервис сам проверяет агентов, подписывающих запросы. Чтобы проверить запрос самостоятельно:

1. Check that `Signature-Agent` is `"https://api.dvina.ai"` and that `Signature-Input` has `tag="web-bot-auth"`.
2. Check that the time now is between `created` and `expires`.
3. Get the key directory and pick the key whose JWK thumbprint matches `keyid`.
4. Build the signature base from `@authority`, `signature-agent` and the signature parameters, as RFC 9421 describes, and verify the `Signature` with that Ed25519 key.

Эти заголовки может отправить кто угодно. Считайте запрос исходящим от Dvina только после успешной проверки его подписи по каталогу ключей Dvina.

## Как разрешить или заблокировать браузер

Браузер Dvina действует в реальном времени от имени одного человека: именно такой трафик охватывает предустановка **Agent** в Cloudflare. Если ваш сайт использует Cloudflare:

- **Политики для ИИ-ботов:** В разделе **Настройки безопасности** выберите **Настроить политики для ИИ-ботов**. Для **Agent** выберите **Разрешить (не блокировать)**, **Блокировать на страницах с рекламой** или **Блокировать (на всех страницах)**.
- **Пользовательские правила WAF:** В запросах от проверенных ботов и агентов с подписью поле `cf.client.bot` (`cf.bot_management.verified_bot` при использовании Bot Management) имеет значение true. Используйте его в пользовательском правиле, чтобы пропускать такие запросы, требовать проверки или блокировать их.
- **Каталог проверенных ботов:** Список агентов, которых проверяет Cloudflare, доступен в [Cloudflare Radar](https://radar.cloudflare.com/verified-bots).

В остальных случаях проверьте подпись, как описано выше, затем разрешите или заблокируйте запросы, у которых проверенное значение `Signature-Agent` равно `"https://api.dvina.ai"`.

## Свяжитесь с нами

Есть вопросы о работе браузера Dvina на вашем сайте или о запросе, который не соответствовал описанию на этой странице? Напишите на [support@dvina.ai](mailto:support@dvina.ai), указав адрес вашего сайта и, если они у вас есть, время запросов и их `keyid`.

## См. также

- [Управление компьютером](/docs/use-dvina/features/computer-use)
- [Конфиденциальность и данные](/docs/help/privacy-and-data)
