Torna al blog
Approfondimenti·15 min di lettura

Cos'è la resistenza al fingerprinting — difendersi dal tracciamento dell'identità del browser e del dispositivo

Anche quando blocchi i cookie e usi una VPN, i siti web possono comunque identificarti in modo univoco combinando oltre 30 attributi sottili del dispositivo — la risoluzione dello schermo, i font, la GPU, lo stack audio, le impostazioni della lingua, il fuso orario, il modo specifico in cui il tuo browser esegue il rendering del testo. Questa combinazione è il tuo "fingerprint". La resistenza al fingerprinting è l'insieme delle tecniche che rendono il tuo fingerprint identico a quello di molti altri utenti. Ecco come funziona il fingerprinting, perché sopravvive al blocco dei cookie e cosa ti difende davvero.

Di Casper's Cloak Security Team

In breve: un cookie è un dato che il sito web memorizza sul tuo dispositivo per riconoscerti alla visita successiva. Un fingerprint è qualcosa di completamente diverso — è un insieme di misurazioni che il sito web effettua sul tuo dispositivo, combinate in una stringa statisticamente univoca. I cookie puoi cancellarli; i fingerprint no, perché sono proprietà del tuo hardware e software che il sito web si limita a osservare. Un fingerprint tipico del dispositivo combina circa 30 segnali — risoluzione dello schermo, font installati, modello della GPU, stack di elaborazione audio, lingua, fuso orario, versione del browser e molti altri dettagli più sottili — in un valore che identifica in modo univoco all'incirca 1 dispositivo su 10.000 fino a 1 su un milione. La resistenza al fingerprinting è la pratica di far sembrare il tuo dispositivo uguale a milioni di altri, in modo che il fingerprint non sia abbastanza univoco da identificarti. È difficile, è imperfetta, e una valutazione onesta porta a concludere che una resistenza perfetta probabilmente non è raggiungibile su un browser moderno — ma una resistenza significativa lo è, e la differenza conta.

Cos'è davvero un fingerprint di browser/dispositivo

Quando visiti un sito web, la pagina può eseguire JavaScript che interroga il tuo browser e dispositivo su decine di informazioni. Alcune di queste sono necessarie affinché il sito funzioni — la dimensione dello schermo determina il layout, il fuso orario determina come vengono visualizzate le date, la preferenza di lingua determina quale traduzione caricare. Le informazioni sono genuinamente utili per il sito. Ma sono anche genuinamente rivelatrici: ogni informazione restringe il campo dei possibili dispositivi del visitatore, e abbastanza informazioni combinate insieme diventano univoche.

I circa 30 segnali che compongono un fingerprint tipico includono:

  • Stringa User-Agent — nome e versione del browser, sistema operativo, spesso il modello del dispositivo.
  • Risoluzione dello schermo e profondità colore — di solito riduce il campo alla classe del dispositivo.
  • Fuso orario e lingua — restringe l'area geografica e la localizzazione.
  • Font installati — l'insieme dei font installati dal sistema operativo è sorprendentemente distintivo. Una pagina può elencarli tentando di eseguire il rendering del testo in ogni font e misurando se il risultato indica che il font era presente.
  • Canvas fingerprint — la pagina disegna una piccola immagine tramite canvas HTML5, poi legge i valori dei pixel. GPU, font e librerie di rendering diverse producono pixel leggermente diversi, anche da comandi di disegno identici. L'hash risultante è estremamente identificativo.
  • WebGL fingerprint — idea simile ma tramite comandi grafici WebGL. Rivela il modello della GPU, la versione del driver e le peculiarità del rendering.
  • Audio fingerprint — la pagina genera un breve segnale audio e legge l'output prodotto dallo stack di elaborazione audio. Schede audio, API audio del sistema operativo e versioni dei driver audio diverse producono output differenti.
  • Parallelismo hardware — numero di core della CPU. Rivela la classe del dispositivo.
  • Memoria del dispositivo — dimensione della RAM, esposta tramite l'API navigator.deviceMemory.
  • Battery API — livello della batteria, stato di ricarica, tempo di ricarica. In gran parte deprecata dai browser per via delle preoccupazioni sul fingerprinting, ma storicamente utilizzata.
  • Capacità touchscreen — numero di punti di tocco supportati, che distingue i tablet dai laptop.
  • Dispositivi media — numero di fotocamere, microfoni e altoparlanti collegati.
  • Lista dei plugin — plugin/estensioni del browser visibili tramite il DOM (meno utile nei browser moderni ma ancora divulgato in alcuni punti).
  • Media query CSS — la pagina interroga decine di feature media (prefers-color-scheme, prefers-reduced-motion, color-gamut, ecc.) e registra le risposte.
  • TLS fingerprint (JA3/JA4) — segnale a livello di rete: l'ordine e il contenuto dei campi nel pacchetto TLS Client Hello identifica la libreria TLS, a volte in modo più univoco dello user agent.
  • HTTP/2 fingerprint (Akamai H2) — a livello di protocollo HTTP/2, l'ordinamento dei frame e le impostazioni rivelano la libreria client HTTP.
  • Segnali comportamentali — ritmo di digitazione, pattern di movimento del mouse, velocità di scorrimento, il modo in cui si naviga tra i campi con il tasto Tab. Sono distintivi anche su interazioni brevi.

Nessuno di questi segnali è individualmente identificativo. Molti dispositivi hanno la stessa risoluzione dello schermo, molti hanno la stessa versione del browser, molti hanno gli stessi font installati. Ma la combinazione di tutti e 30 — la specifica tupla di valori — è di solito univoca. La ricerca Panopticlick dell'EFF (ora chiamata Cover Your Tracks) ha dimostrato che il fingerprint di un browser tipico è unico tra centinaia di migliaia di visitatori con alta probabilità.

Perché il fingerprinting sopravvive alla cancellazione dei cookie e alla modalità in incognito

Il tracciamento basato su cookie dipende dalla cooperazione del browser: il browser memorizza il cookie, lo invia nelle richieste successive e il sito web lo legge. Se cancelli il cookie o lo blocchi, il collegamento di tracciamento si interrompe. Il tracciamento basato su fingerprint dipende dal browser che rivela informazioni su se stesso e sul proprio ambiente quando gli viene chiesto — e queste informazioni non cambiano solo perché hai svuotato la memoria.

In concreto: cancelli tutti i cookie, apri una finestra in incognito, ti connetti a una VPN e visiti un sito con molto tracciamento. Il JavaScript del sito esegue la routine di raccolta del fingerprint, ottiene gli stessi 30 segnali che avrebbe ottenuto altrimenti, calcola lo stesso hash del fingerprint e ti riconosce. Il tuo indirizzo IP è diverso (sei su una VPN). Il tuo cookie è vuoto (l'incognito non lo condivide). Ma il tuo schermo è lo stesso schermo, la tua GPU è la stessa GPU, i tuoi font installati sono gli stessi font, il tuo fuso orario è ancora America/New_York. Il fingerprint identifica il dispositivo, non la sessione.

È per questo che le aziende ad-tech e le piattaforme di analytics hanno investito massicciamente nel fingerprinting a partire dal 2014 circa, ben prima che i cookie di terze parti iniziassero a essere eliminati progressivamente dai browser. Volevano un meccanismo di tracciamento che sopravvivesse ai controlli sulla privacy che gli utenti stavano iniziando a usare. Lo hanno ottenuto.

Le tre principali fonti di fingerprint

I segnali del fingerprint provengono da tre diversi livelli dello stack. Hanno attenuanti diverse, e una difesa che affronta un livello può lasciare gli altri completamente esposti.

1. Header HTTP (livello base, a risoluzione più bassa)

Ogni richiesta HTTP include header come User-Agent, Accept-Language, Accept-Encoding e Sec-CH-UA-* (i più recenti Client Hints). Questi rivelano browser, sistema operativo, lingua e preferenze di codifica. L'insieme degli header è a bassa larghezza di banda — forse una dozzina di bit di entropia — ma restringe notevolmente l'universo dei possibili dispositivi. Le difese a questo livello (spoofing dello user agent, armonizzazione delle preferenze di lingua) sono economiche e parzialmente efficaci, ma non affrontano i segnali a larghezza di banda molto più alta provenienti dal livello JavaScript.

2. API JavaScript (la superficie di fingerprinting più estesa)

Il browser espone decine di API JavaScript che gli script di fingerprinting interrogano — navigator.userAgent, screen.width, navigator.languages, Intl.DateTimeFormat().resolvedOptions().timeZone, la lista delle estensioni WebGL, le caratteristiche di elaborazione del contesto audio. Il Canvas fingerprinting tramite HTMLCanvasElement.toDataURL() da solo è responsabile di una grande parte dell'entropia in un fingerprint tipico. WebGL ne aggiunge altra. La Web Audio API ne aggiunge ancora. È qui che proviene la maggior parte dei bit del fingerprint, ed è il livello più difficile da difendere perché le API sono genuinamente utili per le applicazioni web legittime.

3. TLS e livello di rete (avanzato)

Prima di qualsiasi richiesta HTTP, il browser esegue un handshake TLS. Il messaggio Client Hello — il primo pacchetto inviato dal browser — contiene la lista dei cipher suite supportati, le estensioni TLS supportate, l'ordine di queste estensioni e vari altri parametri. La combinazione è il TLS fingerprint, catturato da strumenti come JA3 e JA4. Librerie TLS diverse (la versione inclusa in Chrome, quella di Firefox, CoreTLS di Apple, crypto/tls di Go, requests di Python) producono fingerprint diversi. Un osservatore di rete che conosce il TLS fingerprint che il tuo browser produce normalmente può identificarti anche se cambi browser ma usi lo stesso sistema operativo, o riconoscere quando uno strumento automatizzato (curl, requests, scrapers) sta tentando di impersonare un browser senza successo. L'ordinamento dei frame HTTP/2 e i valori SETTINGS producono un fingerprint simile ma separato. Questi livelli sono in gran parte al di fuori di ciò che l'utente può controllare — sono funzioni della libreria TLS sottostante — e sono invisibili alle difese che operano all'interno del browser.

Cosa significa davvero "unicità" — la metodologia di Cover Your Tracks dell'EFF

L'EFF mantiene uno strumento su coveryourtracks.eff.org che testa il tuo browser su una configurazione di fingerprinting reale e ti dice quanto è unico il tuo fingerprint. La metodologia è istruttiva indipendentemente dal fatto che tu esegua il test in prima persona.

Lo strumento calcola una misura di "entropia": quanti bit di informazione identificativa contiene il tuo fingerprint. La matematica è semplice — se il tuo fingerprint corrisponde a 1 visitatore su 10.000, sono circa 13,3 bit di entropia (log2(10000)). Se corrisponde a 1 su un milione, sono circa 20 bit. Lo strumento mostra anche quali segnali specifici contribuiscono maggiormente all'entropia nel tuo caso — ad esempio, il tuo canvas fingerprint potrebbe essere unico per 12 bit, la lista dei font per 8 bit, la risoluzione dello schermo per 4 bit, il fuso orario per 6 bit. Il totale è la somma (assumendo che i segnali siano indipendenti, il che non è del tutto vero, ma è un'approssimazione utile).

Per avere un termine di paragone: 13 bit di entropia significano che il fingerprint combinato con la geolocalizzazione del tuo indirizzo IP è essenzialmente univoco. 20 bit significa che è unico tra tutti gli abitanti del pianeta. La soglia per i dati "anonimizzati" nella maggior parte dei framework sulla privacy è intorno ai 10 bit — al di sotto di quella soglia, hai una plausibile negabilità. Sopra i 20 bit, sei individualmente identificabile. La maggior parte dei browser con le impostazioni predefinite produce fingerprint nell'intervallo 18-22 bit.

Mappa dei segnali del fingerprint

Ecco da dove provengono i principali segnali del fingerprint, se la cancellazione dei cookie li rimuove (non li rimuove), se una VPN protegge da essi (per lo più no) e se la difesa richiede un rafforzamento a livello di browser (per lo più sì):

Segnale Dove viene raccolto Resistente alla cancellazione cookie? Resistente alla VPN? Richiede rafforzamento del browser?
User agent + Client Hints Header HTTP Sì (sopravvive) Sì (sopravvive) Sì (spoofing UA o riduttore)
Canvas fingerprint JS (canvas + GPU) Sì (sopravvive) Sì (sopravvive) Sì (rumore canvas o blocco)
WebGL fingerprint JS (WebGL + driver GPU) Sì (sopravvive) Sì (sopravvive) Sì (disabilitare o randomizzare)
Contesto audio JS (Web Audio API) Sì (sopravvive) Sì (sopravvive) Sì (bloccare o alterare)
Font installati JS (enumerazione font) Sì (sopravvive) Sì (sopravvive) Sì (limitare i font esposti)
Fuso orario JS (Intl API) Sì (sopravvive) No (l'endpoint VPN non corrisponde al fuso orario locale — identificabile tramite fingerprint) Sì (simulare o armonizzare)
Indirizzo IP Livello di rete Sì (sopravvive) No (la VPN lo nasconde) No (usa la VPN)
TLS fingerprint (JA3/JA4) TLS Client Hello Sì (sopravvive) Principalmente (sopravvive — stessa lib TLS) No (impostato dalla libreria TLS)

Lo schema è coerente. Quasi tutto ciò che contribuisce al tuo fingerprint sopravvive sia alla cancellazione dei cookie che all'uso della VPN. Cookie e indirizzo IP sono solo due dei 30+ segnali; affrontare solo questi due non cambia nulla degli altri.

Come i browser tentano di resistere al fingerprinting

Tor Browser — il punto di riferimento

Tor Browser è il browser consumer più aggressivo per la resistenza al fingerprinting. Fa deliberatamente in modo che ogni utente di Tor Browser sembri identico: stessa dimensione di finestra predefinita (il browser si apre a 1000x1000 e resiste al ridimensionamento, poi aggiunge bande nere al contenuto se lo si ingrandisce), stesso insieme di font visibili a JavaScript, stesso comportamento del canvas (tutte le letture del canvas restituiscono solo valori consentiti o richiedono l'intervento dell'utente), stesso comportamento WebGL (in gran parte disabilitato), stesso fuso orario (sempre UTC). Il compromesso è severo — molti siti si rompono, le prestazioni risentono della rete Tor e l'esperienza utente è vincolata. Ma la resistenza al fingerprinting è notevolmente migliore rispetto a qualsiasi altro browser. Il fingerprint che un sito web vede da Tor Browser è approssimativamente lo stesso che vede da ogni altro utente di Tor Browser, che è l'unico approccio noto per anonimizzare davvero il segnale del fingerprint su larga scala.

Brave — randomizzazione strategica

Brave adotta un approccio diverso. Invece di far sembrare tutti gli utenti identici (la strategia di Tor), Brave fa sembrare lo stesso utente leggermente diverso ad ogni visita. Le letture del canvas includono rumore per sessione, l'enumerazione dei font è randomizzata, il contesto audio è alterato. La strategia si chiama "randomizzazione" o talvolta "protezione per sessione". Non riduce l'unicità all'interno di una singola visita, ma impedisce il tracciamento a lungo termine rendendo il fingerprint instabile tra le visite. Il compromesso è che alcuni siti con una forte rilevazione antifrode (banche, scommesse) potrebbero segnalare l'incoerenza come sospetta.

Firefox resistFingerprinting

Firefox ha una preferenza nascosta, privacy.resistFingerprinting, che abilita una suite di difese derivate da Tor Browser: dimensione fissa della finestra, fuso orario fisso (UTC), visibilità limitata dei font, richiesta di conferma per la lettura del canvas e varie altre misure. La documentazione Mozilla per questa funzionalità descrive l'intero insieme dei comportamenti. È la soluzione più vicina al comportamento del fingerprint di Tor Browser senza la rete Tor stessa, e funziona in un'installazione standard di Firefox. I compromessi di compatibilità sono significativi — molti siti si rompono visivamente, alcuni si rompono funzionalmente — motivo per cui non è attiva per impostazione predefinita.

Safari ITP e oltre

Intelligent Tracking Prevention (ITP) di Safari affronta alcuni vettori di fingerprinting ma si concentra principalmente sul tracciamento cross-site tramite storage. Safari 14+ ha aggiunto limiti all'enumerazione dei font e alcune altre riduzioni della superficie di fingerprinting. Safari 17 ha aggiunto la Protezione avanzata dal tracciamento e dal fingerprinting, che blocca attivamente gli script di fingerprinting noti identificati dal team Privacy di Apple. L'approccio è conservativo — Apple attribuisce grande importanza alla compatibilità con i siti — ma diventa più aggressivo ad ogni versione.

Cosa possono e non possono fare le difese a livello di rete

Una VPN, un resolver DNS orientato alla privacy e il filtraggio dei tracker a livello di rete affrontano collettivamente parte del problema della privacy — ma specificamente non la parte del fingerprinting. Vale la pena essere onesti su cosa affronta ciascun livello:

  • La VPN nasconde il tuo indirizzo IP — utile per nascondere la tua geolocalizzazione al sito di destinazione e per nascondere quali siti visiti al tuo ISP. Non influisce su nessuno dei segnali di fingerprint a livello JavaScript. Il sito vede ancora il tuo canvas, i tuoi font, la tua GPU, il tuo fuso orario — solo da un IP diverso.
  • Il filtraggio a livello DNS blocca gli script di fingerprinting noti — a livello di rete, puoi bloccare le richieste verso domini di fingerprinting noti (come fingerprintjs.com o vari endpoint ad-tech che includono il fingerprinting). Questo è parziale ma reale: impedisce ai fingerprinter più diffusi di essere eseguiti. I siti che includono codice di fingerprinting nel proprio dominio first-party non vengono bloccati con questo approccio. Trattiamo il meccanismo di filtraggio DNS nel nostro articolo su come fermare il tracciamento online.
  • Filtraggio dei tracker — simile al filtraggio DNS ma opera sugli URL anziché sui domini. Efficace contro i fingerprinter che si caricano da percorsi distintivi anche su domini CDN condivisi. Vedi la nostra funzione di filtraggio dei tracker.
  • Traffico decoy — affronta le minacce di analisi del traffico ma non il fingerprinting. I due modelli di minaccia sono distinti. Abbiamo un articolo separato sulle reti decoy.

Per essere onesti: le difese a livello di rete riducono quanto fingerprinting avviene bloccando molti degli script che lo farebbero. Non riducono quanto è identificativo il tuo fingerprint quando il fingerprinting avviene — quello è un problema a livello di browser.

Lo stato attuale onesto — la resistenza perfetta è difficile

Alcune scomode verità sulla resistenza al fingerprinting, che vale la pena dire esplicitamente:

La resistenza perfetta probabilmente non è possibile senza rompere il web. La piattaforma web ha genuinamente bisogno di accesso a molti dei segnali che il fingerprinting sfrutta. Il layout ha bisogno della dimensione dello schermo. L'internazionalizzazione ha bisogno di lingua e fuso orario. I contenuti adattivi hanno bisogno delle capacità del dispositivo. I segnali che il fingerprinting utilizza non sono artefatti — sono proprietà reali che la piattaforma espone per ragioni legittime. Eliminarle del tutto romperebbe troppo.

La resistenza che "sembra unica" è peggio di nessuna resistenza. Se personalizzi pesantemente il tuo browser con estensioni, font personalizzati, impostazioni personalizzate, diventi più unico di un utente predefinito, non meno. La strategia di Tor Browser funziona perché ogni utente di Tor Browser sembra identico; la strategia di installare 12 estensioni per la privacy su una configurazione browser personalizzata produce un fingerprint più identificativo dell'originale.

La corsa agli armamenti continua. Vengono aggiunte difese a livello di browser; gli script di fingerprinting trovano nuovi segnali da sfruttare. Le nuove API (battery, gamepad, WebGPU, orientamento del dispositivo) introducono nuove superfici di fingerprinting. Le attenuanti invecchiano e perdono efficacia. Lo stato dell'arte cambia ogni anno o giù di lì. Tutto ciò che è descritto in questo articolo era vero al momento della scrittura ma potrebbe richiedere revisioni tra 18 mesi.

Anche i sistemi antifrode usano il fingerprinting. Quando accedi alla tua banca, la banca fa il fingerprint del tuo dispositivo per rilevare il furto di account ("questo accesso proviene da un dispositivo che non abbiamo mai visto prima"). Una resistenza aggressiva al fingerprinting può far segnalare le tue sessioni come sospette. Gli strumenti che difendono dal tracciamento vanificano anche la rilevazione antifrode — è un vero compromesso, non un effetto collaterale, e vale la pena considerarlo per il tuo specifico profilo di rischio.

Livelli pratici di resistenza per diversi modelli di minaccia

Il giusto livello di resistenza al fingerprinting dipende da cosa stai cercando di difendere. Alcuni scenari comuni:

Privacy occasionale («Non voglio che l'ad-tech mi profili»)

Un browser standard (Safari, Firefox, Brave) con le impostazioni predefinite di protezione dal tracciamento attive, più il filtraggio dei tracker a livello di rete. Questo blocca la maggior parte degli script di fingerprinting preconfezionati (che si caricano da domini di terze parti noti) e limita il tracciamento cross-site tramite storage. Il tuo fingerprint è ancora individualmente identificativo se un sito si preoccupa di calcolarlo, ma la maggior parte dei siti non se ne preoccupa — il rapporto costo-beneficio non lo giustifica per i siti non critici per i ricavi. La postura predefinita sulla privacy gestisce l'80% della minaccia con un costo di usabilità praticamente nullo.

Resistenza alla sorveglianza («Sono un giornalista, un attivista o un ricercatore»)

Tor Browser per le attività che vuoi anonime. Un browser standard separato per tutto il resto. Evita di mescolare le identità tra i due browser. Tieni presente che anche all'interno di Tor Browser, il fingerprinting comportamentale (ritmo di digitazione, pattern di navigazione) può comunque identificarti per un avversario sufficientemente motivato. La documentazione del Tor Project stesso è il posto giusto per le specifiche di questo modello di minaccia. Le difese a livello di rete aiutano, ma il browser è la superficie difensiva principale.

Avversario a livello statale

Valutazione onesta: contro un avversario di uno stato nazionale con le risorse per combinare osservazione della rete, fingerprinting del dispositivo, analisi comportamentale e lavoro di intelligence tradizionale, la resistenza al fingerprinting a livello di browser è un elemento tra molti. Tor Browser è ancora utile (aumenta i costi), ma le pratiche di sicurezza operativa (dispositivi compartimentati, separazione disciplinata delle identità, formazione OPSEC) contano più di qualsiasi singola configurazione del browser. Questo è il modello di minaccia per cui il Tor Project progetta esplicitamente; gli strumenti di privacy per consumatori non sono costruiti per esso.

Per la maggior parte dei lettori — i primi due modelli di minaccia — il consiglio pratico è: usa un browser moderno rispettoso della privacy (Brave, Firefox con impostazioni ragionevoli, o Safari), abilita la protezione dal tracciamento integrata, aggiungi il filtraggio a livello di rete sopra, e riconosci che il fingerprinting è un rischio residuo reale che nessuno strumento consumer affronta completamente. La combinazione è significativamente migliore delle impostazioni predefinite — senza di essa, sei individualmente identificabile su ogni sito che visiti; con essa, sei identificabile principalmente dai siti che investono specificamente nel fingerprinting e sono disposti a spendere lo sforzo ingegneristico.

Casper's Cloak affronta la parte a livello di rete di questo stack difensivo. Il nostro filtraggio dei tracker blocca gli endpoint di fingerprinting noti a livello DNS, insieme all'ecosistema più ampio di ad-tech e analytics. Il tunnel VPN nasconde il tuo IP e impedisce al tuo ISP di osservare quali siti visiti. Nessuno dei due affronta la superficie di fingerprinting a livello di browser — per quella, scegli il tuo browser con cura e considera Tor Browser quando il modello di minaccia lo giustifica. La combinazione di un browser ben scelto e del filtraggio a livello di rete è la postura di massimo sforzo realistica per la maggior parte degli utenti, ed è sostanzialmente migliore delle impostazioni predefinite.

Per il riferimento canonico e una rapida misurazione dell'entropia personale, esegui lo strumento Cover Your Tracks dell'EFF nel browser che usi abitualmente. Il risultato ti dirà, in bit concreti di entropia, quanto è identificativa la tua configurazione attuale. Da lì, il compromesso tra privacy e usabilità diventa una decisione quantitativa invece di un vago gesto verso «più privacy».

Conclusione: la resistenza al fingerprinting è reale, è imperfetta e la postura giusta dipende dal tuo modello di minaccia. La risposta onesta a «come faccio a prevenire il fingerprinting?» è «non puoi farlo completamente — ma puoi ridurre sostanzialmente chi può farlo, cosa vede e quanto è stabile l'identificatore tra le visite».

Verificato da Casper's Cloak Security Team · Ultimo aggiornamento

Filtra i tracker prima che il fingerprinting inizi

Casper's Cloak filtra gli endpoint di fingerprinting e tracker noti a livello DNS — gli script non raggiungono mai il tuo browser per essere eseguiti. Per tutto il resto, abbinalo a un browser rispettoso della privacy. Siamo onesti sui limiti.