I sistemi antifrode non confrontano solo i cookie. Riuniscono i segnali del browser in un'impronta e cercano legami tra account. Vediamo quali segnali contano e perché cambiare solo Canvas non basta.
Un sito non vede una semplice etichetta del browser, ma un insieme di misure. Ogni segnale preso da solo è debole; insieme formano un'impronta che resiste alla cancellazione dei cookie e al cambio di IP. I segnali principali sono:
| Canale | Cosa viene misurato | Valore distintivo tipico |
|---|---|---|
| Elenco dei caratteri | quali caratteri sono installati nel sistema | entropia più alta: 9,45 bit, il 35% delle macchine sono uniche |
| WebGL | linea della scheda video, parametri di rendering | alto, dipendente dall'hardware |
| Canvas | hash dell'immagine renderizzata | alto |
| Audio | hash del segnale tramite Web Audio | elevato su macchine diverse |
| Schermo e DPR | risoluzione e densità di pixel | media |
| Fuso orario, lingua | impostazioni di sistema | basso individualmente, la coerenza è importante |
I font sono al primo posto perché nelle nostre misurazioni hanno fornito l'entropia più alta. Il solo elenco dei font installati ha reso unico il 35% dei computer del campione.
La prima misurazione ha evidenziato un problema serio. Due profili sulla stessa macchina, senza configurazioni del dispositivo separate, restituivano valori identici nelle metriche dei font, nei parametri WebGL, in clientRects e nell'audio, qualunque fosse la configurazione. Il sito poteva collegare questi account senza cookie o indirizzo IP. Quel risultato ha definito l'architettura del prodotto.
La soluzione non era aggiungere rumore casuale, ma assegnare a ogni profilo una configurazione coerente proveniente da un computer reale. Da quel momento gli stessi segnali sono diventati distinti. Lo abbiamo verificato su browser reali:
| Superficie | Varia tra i due profili |
|---|---|
| WebGL fornitore e renderer | Sì |
| Parametri WebGL | Sì |
| Geometria dello schermo e DPR | Sì |
| Numero di core e memoria | Sì |
| Elenco dei caratteri | Sì |
| Voci di sintesi vocale | Sì |
| Tabella delle costanti audio Web | Sì |
| Canvas | sì, il rumore proviene dal seed del profilo |
Cambiare Canvas mantenendo il vero elenco dei font non impedisce il collegamento: gli altri segnali continuano a coincidere. Alcuni segnali, inoltre, non devono essere alterati.
Il motore lascia deliberatamente inalterate le metriche di testo dei font comuni. I rilevatori hanno un controllo measuretext-grid, progettato proprio per rilevare questa distorsione. Alterare il valore renderebbe il browser più facile da riconoscere. Lo stesso vale per clientRects (vedi bcr-vs-range). Questi segnali non devono necessariamente variare: su due computer reali con lo stesso sistema operativo e DPR, Arial ha la stessa larghezza perché il valore dipende dal file del font e dal sistema.
Verifica direttamente. Crea due profili con il piano gratuito, apri la pagina di controllo in ciascuno e confronta i valori grezzi:
Canvas e WebGL sono diversi, ma i segnali all'interno di ogni configurazione restano coerenti. Puoi verificarlo nei valori grezzi, senza affidarti alla nostra descrizione. Oppure apri il test dell'impronta del browser: la pagina misura i segnali del browser e affianca una configurazione NimbusX per il confronto.
Un segnale collega ancora i profili eseguiti sullo stesso computer: l'hash dell'audio renderizzato. La variazione audio del motore dipende dal dominio, non dal profilo. Due computer reali producono hash diversi; i profili sulla stessa macchina condividono ancora il risultato. Il pannello indica apertamente questo limite nella cella AUD di ogni profilo. Finché NimbusX non distribuirà una propria build del motore, esegui i profili della stessa piattaforma su computer diversi.
Impronta audio: il limite attuale · La coerenza conta più della quantità