# Dvina-selainagentti

> Näin verkkosivuston omistajana tunnistat ja varmennat selaimen, jota Dvina käyttää käyttäjiensä puolesta, ja sallit tai estät sen käytön.

Dvina-selain käy verkkosivustoilla yhden henkilön puolesta kerrallaan, kun tämä pyytää Dvina-avustajalta jotakin, johon tarvitaan oikea selain. Tämä sivu on tarkoitettu verkkosivustojen omistajille: mitä selain tekee, miten tunnistat sen pyynnöt ja miten sallit tai estät sen käytön.

## Mikä se on

Dvina on henkilökohtainen avustaja. Kun Dvina-palveluun kirjautunut henkilö pyytää tehtävää, johon tarvitaan verkkosivustoa, kuten tarjousten vertailua tai lomakkeen täyttämistä, Dvina voi hoitaa sen omassa selaimessaan kyseisen henkilön Dvina-tietokoneella. Selain on ikkunallinen Chromiumin työpöytäversio, ei ilman käyttöliittymää toimiva selain. Henkilö voi seurata sen toimintaa reaaliajassa ja ottaa sen hallintaansa milloin tahansa.

- **Se toimii yhden henkilön puolesta.** Jokainen selain kuuluu yhdelle kirjautuneelle Dvina-käyttäjälle ja tekee tämän pyytämiä tehtäviä.
- **Se ei ole indeksointirobotti.** Sillä ei ole luetteloa sivustoista, joilla se kävisi oma-aloitteisesti. Se avaa tehtävän vaatimat sivut vaihe kerrallaan: lataa sivun, lukee sen ja toimii sitten sen sisällön perusteella, kuten ihminenkin.
- **Sisältöä ei koskaan käytetä mallien kouluttamiseen.** Dvina-selaimen sivustoltasi lukemaa sisältöä käytetään vain sen henkilön pyyntöön, jonka puolesta selain toimii. Sitä ei koskaan käytetä tekoälymallin kouluttamiseen.
- **Se jättää henkilön omat päätökset hänelle itselleen.** Se ei kirjoita salasanoja tai korttitietoja. Kun sivu edellyttää kirjautumista tai maksamista, Dvina pysähtyy ja pyytää henkilöä ottamaan selaimen hallintaansa. Henkilötietojen käyttö, lähettäminen, maksaminen ja poistaminen odottavat henkilön hyväksyntää.
- **Se ei ratkaise ihmisen tekemää käyttöä varmistavia tarkistuksia.** Kun se kohtaa tarkistuksen, jolla varmistetaan selaajan olevan ihminen, kuten Cloudflaren tarkistuksen, Turnstilen, reCAPTCHAn tai hCaptchan, se ei napsauta, ratkaise tai lataa sitä uudelleen. Jos tarkistus menee läpi itsestään, Dvina odottaa sitä. Jos tarkistus jää näkyviin, työ pysähtyy. Henkilö ottaa selaimen hallintaansa, läpäisee tarkistuksen ja luovuttaa selaimen takaisin.

## Tunnista selaimen pyynnöt

Dvina-selain allekirjoittaa jokaisen lähettämänsä http- ja https-pyynnön [Web Bot Auth](https://datatracker.ietf.org/wg/webbotauth/about/) -menetelmällä käyttäen HTTP-viestiallekirjoituksia ([RFC 9421](https://www.rfc-editor.org/rfc/rfc9421)) ja Ed25519-avainta. Jokaisessa pyynnössä on kolme otsaketta:

```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` yksilöi Dvina-palvelun eli alkuperän, jossa sen avaimet julkaistaan.
- `Signature-Input` kattaa pyynnön `@authority`-arvon (sivustosi isäntä) ja `Signature-Agent`-otsakkeen. `tag`-arvo on `web-bot-auth`.
- Jokainen allekirjoitus on voimassa 60 sekuntia, `created`-ajankohdasta `expires`-ajankohtaan.
- `keyid` on avaimen JWK-sormenjälki ([RFC 7638](https://www.rfc-editor.org/rfc/rfc7638)).

Selain lähettää Chromiumin oman user agent -tunnisteen, joka on sama kuin millä tahansa Linuxissa toimivalla Chromium-selaimella, esimerkiksi:

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

Sen Chrome-versio muuttuu Chromiumin päivitysten mukana, eikä user agent -tunniste kerro mitään Dvina-palvelusta. Tunnista Dvina allekirjoituksesta, älä user agent -tunnisteesta.

> [!NOTE]
> Työpöytäsovelluksella henkilö voi myös antaa Dvina-avustajan käyttää omalla tietokoneellaan olevaa selainta. Tämä selain ei allekirjoita pyyntöjään, ja sen käyttö näyttää henkilön omalta selaamiselta.

## Varmenna allekirjoitus

Dvina julkaisee julkisen avaimensa avainhakemistossaan:

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

Hakemisto palauttaa vastauksen, jonka sisältötyyppi on `Content-Type: application/http-message-signatures-directory+json` ja joka sisältää Dvina-palvelun julkisen Ed25519-avaimen JSON Web Key Set -muodossa. Vastaus allekirjoitetaan samalla avaimella, ja siinä käytetään parametria `tag="http-message-signatures-directory"`.

Jos sivustosi käyttää Cloudflarea, Cloudflare varmentaa allekirjoitetut agentit puolestasi. Näin varmennat pyynnön itse:

1. Tarkista, että `Signature-Agent` on `"https://api.dvina.ai"` ja että `Signature-Input` sisältää parametrin `tag="web-bot-auth"`.
2. Tarkista, että nykyinen aika on `created`- ja `expires`-ajankohtien välissä.
3. Hae avainhakemisto ja valitse avain, jonka JWK-sormenjälki vastaa `keyid`-arvoa.
4. Muodosta allekirjoituksen pohja arvoista `@authority` ja `signature-agent` sekä allekirjoituksen parametreista RFC 9421:n mukaisesti ja varmenna `Signature` kyseisellä Ed25519-avaimella.

Kuka tahansa voi lähettää nämä otsakkeet. Käsittele pyyntöä Dvina-palvelun lähettämänä vain, jos sen allekirjoitus varmentuu Dvina-palvelun avainhakemiston avulla.

## Salli tai estä selaimen käyttö

Dvina-selain toimii reaaliaikaisesti yhden henkilön puolesta. Tällaisen liikenteen kattaa Cloudflaren **Agent**-esiasetus. Jos sivustosi käyttää Cloudflarea:

- **Tekoälybottien käytännöt:** Valitse **Security Settings** -asetuksista **Configure AI bot policies**. Valitse **Agent**-kohdassa **Allow (do not block)**, **Block on pages with ads** tai **Block (on all pages)**.
- **WAF:n mukautetut säännöt:** Vahvistettujen bottien ja allekirjoitettujen agenttien pyynnöissä `cf.client.bot` (`cf.bot_management.verified_bot`, jos käytössä on Bot Management) on asetettu arvoon true. Käytä sitä mukautetussa säännössä ohittaaksesi tarkistukset, vaatiaksesi lisävarmennuksen tai estääksesi pyynnöt.
- **Vahvistettujen bottien hakemisto:** Katso Cloudflaren vahvistamat agentit [Cloudflare Radarista](https://radar.cloudflare.com/verified-bots).

Muissa ympäristöissä tarkista allekirjoitus edellä kuvatulla tavalla ja salli tai estä sitten pyynnöt, joiden vahvistettu `Signature-Agent` on `"https://api.dvina.ai"`.

## Ota yhteyttä

Onko sinulla kysyttävää Dvina-selaimen toiminnasta sivustollasi, tai oletko havainnut pyynnön, joka ei toiminut tällä sivulla kuvatulla tavalla? Lähetä sähköpostia osoitteeseen [support@dvina.ai](mailto:support@dvina.ai) ja kerro sivustosi osoite sekä pyyntöjen ajankohta ja `keyid`, jos ne ovat tiedossasi.

## Aiheeseen liittyvää

- [Tietokoneen käyttö](/docs/use-dvina/features/computer-use)
- [Tietosuoja ja tiedot](/docs/help/privacy-and-data)
