Vedi in Markdown

Il browser di Dvina visita i siti web per una persona alla volta, quando questa chiede a Dvina qualcosa che richiede un vero browser. Questa pagina è rivolta a chi gestisce un sito web: spiega cosa fa il browser, come riconoscere le sue richieste e come consentirne o bloccarne l'accesso.

Cos'è

Dvina è un assistente personale. Quando una persona che ha effettuato l'accesso a Dvina chiede di svolgere un'attività che richiede un sito web, come confrontare offerte o compilare un modulo su sua richiesta, Dvina può farlo nel proprio browser, sul computer Dvina di quella persona. È un browser Chromium desktop con una finestra, non un browser headless, e la persona può seguirne l'attività in tempo reale e prenderne il controllo in qualsiasi momento.

  • Agisce per una sola persona. Ogni browser appartiene a un solo utente che ha effettuato l'accesso a Dvina e lavora su ciò che quella persona ha richiesto.
  • Non è un crawler. Non ha un elenco di siti da visitare autonomamente. Apre le pagine necessarie per un'attività, un passo alla volta: carica una pagina, la legge e poi interagisce con essa, come farebbe una persona.
  • Non viene mai usato per addestrare modelli. Ciò che il browser di Dvina legge sul tuo sito viene usato solo per la richiesta della persona che assiste. Non viene mai usato per addestrare un modello di IA.
  • Lascia alla persona le decisioni che le spettano. Non digita password o dati delle carte di pagamento. Quando una pagina richiede alla persona di accedere o pagare, Dvina si ferma e le chiede di prendere il controllo. L'inserimento di dati personali, gli invii, i pagamenti e le eliminazioni attendono la sua conferma.
  • Non supera le verifiche che richiedono una persona. Quando incontra un controllo che verifica che a navigare sia una persona, come il controllo di Cloudflare, Turnstile, reCAPTCHA o hCaptcha, non fa clic sul controllo, non lo risolve e non lo ricarica. Se il controllo si completa da solo, Dvina attende. Se invece rimane, l'attività si interrompe e la persona prende il controllo del browser, supera la verifica e lo restituisce a Dvina.

Riconosci le sue richieste

Il browser di Dvina firma ogni richiesta http e https che invia usando Web Bot Auth, con firme dei messaggi HTTP (RFC 9421) e una chiave Ed25519. Ogni richiesta include tre intestazioni:

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 Dvina, l'origine in cui sono pubblicate le sue chiavi.
  • Signature-Input include nella firma il valore @authority della richiesta (il tuo host) e l'intestazione Signature-Agent. Il valore di tag è web-bot-auth.
  • Ogni firma è valida per 60 secondi, da created a expires.
  • keyid è l'impronta JWK della chiave (RFC 7638).

Il browser invia lo user agent di Chromium, uguale a quello di qualsiasi browser Chromium su Linux, per esempio:

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

La versione di Chrome cambia con gli aggiornamenti di Chromium e lo user agent non contiene alcun riferimento a Dvina. Riconosci Dvina dalla firma, non dallo user agent.

Nota

Con l'app desktop, una persona può anche consentire a Dvina di usare un browser sul proprio computer. Quel browser non firma le richieste e appare come la normale navigazione della persona.

Verifica una firma

Dvina pubblica la propria chiave pubblica nella sua directory delle chiavi:

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

La directory risponde con Content-Type: application/http-message-signatures-directory+json e un JSON Web Key Set contenente la chiave pubblica Ed25519 di Dvina. La risposta è firmata con la stessa chiave, con tag="http-message-signatures-directory".

Se il tuo sito usa Cloudflare, Cloudflare verifica per te gli agenti che firmano le richieste. Per verificare una richiesta autonomamente:

  1. Controlla che Signature-Agent sia "https://api.dvina.ai" e che Signature-Input contenga tag="web-bot-auth".
  2. Controlla che l'ora attuale sia compresa tra created e expires.
  3. Recupera la directory delle chiavi e scegli la chiave la cui impronta JWK corrisponde a keyid.
  4. Costruisci la base della firma a partire da @authority, signature-agent e dai parametri della firma, come descritto in RFC 9421, e verifica Signature con quella chiave Ed25519.

Chiunque può inviare queste intestazioni. Considera una richiesta come proveniente da Dvina solo se la firma risulta valida dopo la verifica con la directory delle chiavi di Dvina.

Consenti o blocca l'accesso

Il browser di Dvina agisce in tempo reale per una singola persona: è il tipo di traffico coperto dalla categoria Agent di Cloudflare. Se il tuo sito usa Cloudflare:

  • Criteri per i bot IA: In Impostazioni di sicurezza, scegli Configura i criteri per i bot IA. Per Agent, scegli Consenti (non bloccare), Blocca sulle pagine con annunci o Blocca (su tutte le pagine).
  • Regole WAF personalizzate: Nelle richieste provenienti da bot verificati e agenti con firma, cf.client.bot (cf.bot_management.verified_bot con Bot Management) è impostato su true. Usa questo campo in una regola personalizzata per escludere queste richieste dai controlli, sottoporle a una verifica o bloccarle.
  • Elenco dei bot verificati: Consulta gli agenti verificati da Cloudflare su Cloudflare Radar.

Negli altri casi, verifica la firma come descritto sopra, poi consenti o blocca le richieste il cui Signature-Agent verificato è "https://api.dvina.ai".

Contattaci

Hai domande sul browser di Dvina sul tuo sito, o vuoi segnalare una richiesta che non si è comportata come descritto in questa pagina? Scrivi a support@dvina.ai indicando l'indirizzo del tuo sito e, se li hai, l'orario e il keyid delle richieste.