In breve
Una VPN commerciale da sola è lontanissima dall'essere «anonima». Il vero anti-tracciamento è un problema di ingegneria dei sistemi: a livello IP devi chiudere le perdite WebRTC / IPv6 / DNS, il resolver DNS deve corrispondere al paese di uscita della VPN, l'impronta del browser deve «sembrare normale» (non piena di estensioni anti-fingerprint), le impronte TLS / TCP richiedono la modalità TUN perché subentri lo stack del server VPN, ti serve un provider VPN no-log in una giurisdizione favorevole alla privacy e gli account nel browser devono essere rigorosamente isolati. Qui sotto analizziamo tutte le 8 dimensioni, una per una.
Introduzione: perché una VPN non è una «carta esci gratis di prigione»
L'idea comune è questa: installi NordVPN / Surfshark / un WireGuard self-hosted, cambi l'IP di uscita e «nessuno può più capire chi sei». È una mentalità da anni 2010. Le tecnologie di tracciamento hanno superato da tempo il «livello IP»:
- Rilevare che «stai usando una VPN» è una capacità di base dei sistemi antifrode (si verifica se l'IP appartiene all'ASN di un provider VPN: quasi tutti i blocchi datacenter delle VPN commerciali sono già segnalati)
- Per identificare «il tuo IP reale di prima» basta il livello IP (perdite WebRTC / IPv6 / DNS, aggiramento della CDN verso l'origine), e un solo errore basta per restare marcato per sempre con un cookie
- Identificare «esattamente chi sei» non dipende affatto dall'IP: si basa sull'impronta digitale del browser, sugli schemi comportamentali e sulla correlazione tra account
- In casi estremi, l'assistenza giudiziaria (ordini di esibizione / indagini transfrontaliere) può costringere i provider VPN a consegnare i log
In altre parole, a tracciarti non è una singola vulnerabilità, ma l'intersezione di N dimensioni: tu devi difenderle tutte, mentre a chi ti traccia basta riuscire su una sola. Ecco perché l'«anonimato completo» è quasi impossibile dal punto di vista ingegneristico, mentre «ridurre in modo significativo la correlazione» è fattibile: questo articolo ti spiega come.
① Perdite a livello IP: il tuo IP reale esposto direttamente
È il caso più classico e più comune. Una VPN gestisce solo il traffico HTTP / TCP del browser, ma i canali seguenti possono aggirarla del tutto e consegnare direttamente all'altra parte l'IP pubblico di casa tua:
1.1 Perdite WebRTC
WebRTC, integrato nel browser (serve per le videochiamate), usa attivamente il protocollo STUN per scoprire l'IP pubblico con cui viene visto, e JavaScript può leggere direttamente quel valore. I proxy HTTP / SOCKS intercettano solo TCP, mentre STUN viaggia su UDP: aggira completamente il proxy uscendo dalla scheda di rete di casa ed espone il tuo IP reale.
Proxy HTTP/SOCKS + browser → WebRTC UDP esce direttamente dalla scheda di rete di casa → IP reale espostoDifesa: usa una VPN in modalità TUN (Mihomo / Clash Premium / WireGuard TUN / Tailscale), che gestisce tutto il traffico TCP+UDP sulla scheda di rete virtuale. Se usi solo un proxy nel browser, limita WebRTC con una policy invece di rimuoverlo: policy aziendale di Chrome / Edge WebRtcIPHandling = disable_non_proxied_udp; Brave: attiva «Disable non-proxied UDP»; Firefox: about:config → media.peerconnection.ice.proxy_only_if_behind_proxy = true.
Test pratico: usa il nostro test di perdita /leak per verificare se l'IP pubblico restituito da WebRTC STUN corrisponde alla tua uscita HTTP.
1.2 Perdite dal dual stack IPv6
La tua VPN gestisce solo IPv4, ma la banda larga di casa ha anche IPv6: il browser preferisce uscire via IPv6, aggirando completamente la VPN. È una falla molto comune tra gli utenti con banda larga domestica China Telecom.
Difesa: usa una VPN che gestisca sia IPv4 sia IPv6, oppure disattiva IPv6 a livello di sistema / browser. Su Windows modifica il registro di sistema; su macOS usa networksetup.
1.3 Perdite DNS (trattate a parte, vedi ② Livello DNS)
1.4 Aggiramento della CDN verso l'origine
Se un sito usa una CDN come Cloudflare, in realtà raggiungi l'IP di un nodo edge della CDN; ma se un attaccante ottiene il vero IP del server di origine del sito, può aggirare la CDN e accedervi direttamente. Vale anche al contrario, a favore di chi traccia: se il nodo CDN che raggiungi è in Cina, ma una risorsa statica della stessa sessione viene scaricata direttamente dall'origine (non coperta dalla CDN), il tuo IP reale finisce nei log di accesso del server di origine.
Difesa: questo caso limite dipende soprattutto dalla configurazione rigorosa del sito di destinazione: dal lato dell'utente si può fare poco.
② Perdite a livello DNS: i domini che interroghi rivelano la tua identità
Il tuo traffico IP passa dalla VPN, ma le query DNS potrebbero ancora passare dal tuo ISP locale. Le perdite avvengono in due modi:
2.1 Paese del resolver non coerente
La tua uscita VPN è nei Paesi Bassi, ma quando il sistema esegue le query DNS lo stub resolver usa il DNS configurato dal provider di banda larga di casa (China Telecom). Quando il nameserver autoritativo riceve la query, vede un IP di origine di China Telecom e così rivela la tua posizione reale ai gestori di ogni dominio che visiti.
2.2 Perdite della sottorete ECS
I resolver ricorsivi pubblici (l'8.8.8.8 di Google ha EDNS Client Subnet attivo di default) inoltrano la tua vera sottorete /24 al server autoritativo di destinazione per il «routing CDN basato sulla posizione». Ma in quel momento la tua sottorete è stata rivelata all'autorità remota: un dato più preciso dell'IP di uscita del resolver, che individua la sottorete del tuo quartiere.
Browser → DNS di sistema → 8.8.8.8 → NS autoritativo (vede IP del resolver = Google) + ECS = la sottorete /24 di casa tuaDifesa:
- Imponi al client VPN un DNS personalizzato: usa il DNS del provider VPN (NordVPN / Mullvad / ProtonVPN lo offrono tutti)
- Non permettere perdite DNS fuori dal tunnel: il resolver vedrebbe il tuo IP reale, che non corrisponde al tuo traffico web e ti tradisce all'istante. Nota che 1.1.1.1 / 8.8.8.8 sono anycast: finché la query passa dal tunnel arriva vicino alla tua uscita VPN e non rivela nulla. Il vero problema è il sistema che aggira il tunnel per raggiungerli direttamente
- Se scegli un resolver ricorsivo pubblico, assicurati almeno che sia nello stesso paese della tua uscita VPN
- Usa DoH (DNS-over-HTTPS) per cifrare sempre le query DNS ed evitare l'ispezione man-in-the-middle da parte dell'ISP
Test pratico: il nostro test di perdita DNS /leak usa un proprio nameserver autoritativo e instrada davvero le query del tuo browser verso il nostro server, così puoi vedere l'IP del resolver e la sottorete ECS. Per i dettagli sul funzionamento, vedi la guida completa ai resolver DNS pubblici.
③ Impronta TLS (ja3 / ja4): chi è il tuo client
Durante l'handshake HTTPS, il client invia al server un pacchetto ClientHello che elenca le versioni TLS, le suite di cifratura, le estensioni, le curve ellittiche e gli altri parametri che supporta. L'ordine e il contenuto esatti di questi campi variano da un client all'altro (Chrome 124 vs Firefox 123 vs curl vs Python requests) e l'impronta che ne risulta è ciò che nel settore si chiama ja3 / ja4.
I siti possono registrare l'impronta ja3 / ja4 di ogni visitatore e confrontarla con lo User-Agent: se il tuo UA dichiara Chrome 124 ma l'impronta ja3 corrisponde a Python requests, si tratta di traffico da bot o da script. È anche uno dei segnali principali usati dai servizi anti-bot come Cloudflare e Akamai.
| Client | Caratteristiche tipiche dell'impronta ja3 |
|---|---|
| Chrome 124+ | TLS 1.3 + GREASE + elenco completo delle estensioni |
| Firefox 123+ | TLS 1.3 + ordine diverso delle estensioni, niente GREASE |
| curl 8.x | Meno estensioni, niente GREASE |
| Python requests | Impronta nettamente semplificata |
| Go net/http | Ordine dei cipher caratteristico |
Difesa:
- Usa un vero browser diffuso (Chrome / Firefox / Edge): non usare Selenium / Puppeteer senza accorgimenti, le loro impronte ja3 sono estremamente riconoscibili
- Se ti serve l'automazione, usa undetected-chromedriver / Playwright + curl-impersonate
- Non installare estensioni «anti-fingerprint» nel browser — in realtà rendono il tuo ja3 più riconoscibile di un normale Chrome, come se ti segnalassi da solo come qualcuno che usa strumenti anti-tracciamento
④ Impronta HTTP / del browser: Canvas / WebGL / font / fuso orario
Le impronte esposte a livello applicativo sono più ricche e più difficili da contrastare:
| Dimensione | Come viene letta | Unicità |
|---|---|---|
| Impronta Canvas | JS disegna un testo e calcola l'hash del risultato | Altissima (differenze di GPU e rendering dei font) |
| Impronta WebGL | Interroga vendor / renderer della GPU | Altissima |
| Impronta AudioContext | JS genera audio e legge i valori restituiti | Alta |
| Font installati | JS verifica quali font vengono visualizzati | Alta |
| Risoluzione dello schermo + profondità di colore | window.screen | Media |
| Fuso orario | Intl.DateTimeFormat().resolvedOptions().timeZone | Media (ma fortissima se confrontata con l'IP) |
| Lingua (Accept-Language) | HTTP header | Media |
| Client hints (Sec-CH-UA-*) | HTTP header (Chrome) | Media |
Trappola chiave: se fuso orario, lingua o font non corrispondono al paese di uscita della VPN, è un segnale fortissimo di «uso di una VPN». La tua VPN esce negli Stati Uniti, ma il fuso orario del browser è ancora Asia/Shanghai e la lingua è zh-CN: si capisce al primo sguardo.
Difesa:
- «Sembrare normale» — non installare estensioni anti-fingerprint nel browser, perché sono già di per sé un'anomalia. La normale impronta di un Chrome qualunque è il miglior travestimento.
- Separa gli usi: il browser principale per la tua identità reale e un profilo browser separato / una VM / Tails / Whonix per le attività sensibili per la privacy
- Mantieni coerenti paese di uscita della VPN, fuso orario di sistema e lingua del browser: come minimo, non lasciar trapelare il segnale rivelatore «sono un utente cinese che passa da una VPN statunitense»
- Tor Browser è progettato proprio per questo: tutti gli utenti sembrano identici, a scapito delle prestazioni
Test pratico: usa il nostro test dell'impronta del browser /fingerprint per vedere quanto sono uniche le tue 14 dimensioni di impronta.
⑤ Impronta a livello TCP/IP: Initial Window / TTL / MTU
Ancora prima del livello applicativo, le impronte esistono già a livello di rete. L'implementazione dello stack TCP/IP di ogni sistema operativo è leggermente diversa:
- TTL iniziale: Windows usa di default 128, Linux 64, macOS 64, iOS 64
- TCP Initial Window Size: Windows 64KB, Linux 14600, macOS 65535
- Ordine delle opzioni TCP: sistemi operativi diversi inviano le opzioni MSS / SACK / Timestamp in ordine diverso
- MTU: la normale banda larga domestica è 1500, PPPoE 1492, i tunnel VPN di solito 1380-1450
Lo strumento p0f (fingerprinting passivo del sistema operativo) sfrutta proprio questi campi e determina il sistema operativo dell'altro capo senza inviare alcun pacchetto di sonda. I siti possono raccogliere queste informazioni e confrontarle con lo UA dichiarato: se il tuo UA dice Mac Safari, ma il TTL è 128 e l'Initial Window ha valori da Windows, in realtà usi Windows con uno UA Mac falsificato.
Anche l'MTU può rivelare che «stai usando una VPN»: poiché i tunnel VPN hanno di solito un MTU inferiore a 1500, il traffico si distingue nettamente da quello della banda larga nativa.
Difesa:
- Usa una VPN in modalità TUN: subentra lo stack del server VPN, quindi l'impronta TCP/IP che vedono i siti è quella del server VPN, non del tuo client
- OpenVPN / WireGuard usano la modalità TUN di default, i proxy HTTP/SOCKS no: è questa la differenza fondamentale
- Non forzare l'MTU del tunnel a 1500 per «sembrare meno una VPN»: l'incapsulamento del tunnel occupa già decine di byte, e superare il limite provoca frammentazione o un black hole PMTUD (i pacchetti grandi si bloccano, le pagine si caricano a metà). Mantieni il valore predefinito del client (WireGuard 1420, OpenVPN automatico)
⑥ Analisi comportamentale: tempi del traffico + abitudini di digitazione
È la dimensione più difficile da contrastare, perché non si basa su alcuna impronta tecnica, ma interamente sul machine learning:
- Distribuzione degli orari di accesso: se le tue ore online quotidiane coincidono su più account, si tratta della stessa persona
- Traiettoria del mouse / velocità di scorrimento / ritmo di digitazione: sono unici per ogni persona e vengono raccolti da banche e sistemi antifrode
- Durata delle sessioni / schemi di navigazione: le tue abitudini di navigazione sono uniche
- Caratteristiche del testo digitato: il tuo tasso di errori di battitura, le preferenze lessicali e la grammatica
Difesa:
- Separa rigorosamente gli orari di utilizzo tra un account e l'altro: non accedere contemporaneamente all'«account A + account B», ma distanziali di qualche ora
- Quando ti serve davvero l'anonimato, cambia dispositivo (dal portatile al telefono / tablet)
- Impossibile difendersi del tutto, ma puoi rendere la correlazione molto più difficile
⑦ Log del provider VPN + giurisdizione
Per le VPN è il peccato originale. Ti fidi del fatto che il provider VPN non conservi log, ma in realtà:
- I provider VPN commerciali possono essere acquisiti (Avast è stata acquisita da NortonLifeLock → la sua informativa sulla privacy è cambiata)
- Un provider può raccogliere log di nascosto (nel 2017 PureVPN ha consegnato i log degli utenti all'FBI, pur avendo sempre dichiarato di essere «no-log»)
- Gli ordini dell'autorità giudiziaria possono imporre la collaborazione: Stati Uniti / Regno Unito / Canada / Australia / Nuova Zelanda (Five Eyes) accettano tutti indagini transfrontaliere
- Nine Eyes = Five Eyes + Danimarca / Francia / Paesi Bassi / Norvegia
- Fourteen Eyes = Nine Eyes + Germania / Belgio / Italia / Spagna / Svezia
Criteri di scelta:
| VPN | Giurisdizione | Audit di terze parti | Valutazione |
|---|---|---|---|
| Mullvad | Svezia (14 Eyes) | Sì (Cure53 / Assured) | Nessuna email richiesta, nessun collegamento ai pagamenti, accetta contanti |
| ProtonVPN | Svizzera (neutrale) | Sì (Mozilla) | Tutelato dalla legge svizzera, ma richiede la registrazione con email |
| IVPN | Gibilterra (territorio britannico) | Sì | Simile a Mullvad, accetta XMR |
| ExpressVPN | Isole Vergini Britanniche (BVI) | Sì (PWC) | Acquisito da Kape nel 2021, la fiducia è calata |
| NordVPN | Panamá | Sì (PWC / Deloitte) | Ha subito una violazione di un server nel 2018, poi ha ristrutturato l'architettura |
| Surfshark | Paesi Bassi (9 Eyes) | Sì | Stessa società madre di NordVPN, giurisdizione all'interno dei Nine Eyes |
Una VPN self-hosted ti dà più controllo, ma i provider VPS (Vultr / Hetzner / DigitalOcean) hanno i propri log e possono a loro volta collaborare alle indagini. Il vero anonimato richiede di acquistare un VPS in contanti / criptovaluta e registrarsi con un'identità falsa, un notevole sforzo ingegneristico.
⑧ Correlazione tra account: più account che condividono cookie / impronte
Dopo l'accesso all'account A, il browser memorizza cookie / localStorage / cache. Se nello stesso browser passi all'account B, il sito capisce subito che sei la stessa persona.
- Stessa impronta + accesso a più account in un breve intervallo di tempo = correlazione tra account
- Tracciamento tramite cookie tra siti (anche se i browser moderni iniziano a limitarlo)
- Script di tracciamento di terze parti (Google Analytics / Facebook Pixel) che collegano l'attività tra siti
Difesa:
- In Firefox, l'estensione Multi-Account Containers: ogni account ha cookie e spazio di archiviazione isolati
- Più profili in Chrome (avatar in alto a destra → aggiungi un profilo)
- Misura estrema: usa account diversi in macchine virtuali separate, ognuna con un'uscita VPN diversa
Tabella riassuntiva delle strategie di difesa
| Dimensione | Come avviene l'esposizione | Difesa corrispondente | Strumento di rilevamento |
|---|---|---|---|
| IP | WebRTC / IPv6 / DNS / aggiramento della CDN | Modalità TUN + disattiva WebRTC + disattiva IPv6 | /leak |
| DNS | Resolver in un altro paese / sottorete ECS rivelata | DNS del provider VPN + DoH | /leak |
| Impronta TLS | ja3 / ja4 rivelano il client | Usa un vero browser diffuso, non installare strumenti anti-fingerprint | Strumento esterno (browserleaks) |
| Impronta HTTP | Canvas/WebGL/font/fuso orario | Fuso orario / lingua / font coerenti con l'uscita VPN | /fingerprint |
| Livello TCP/IP | TTL / Window / MTU | Modalità TUN: lascia subentrare lo stack del server VPN | Strumento esterno (browserleaks tcp) |
| Schemi comportamentali | Orari / mouse / abitudini di digitazione | Orari sfalsati tra account + cambio di dispositivo | Nessuno |
| Log della VPN | Ordine giudiziario al provider | Scegli no-log + giurisdizione favorevole alla privacy | Consulta i report di audit del provider |
| Tra account | Stesso cookie / stessa impronta | Multi-Account Containers / isolamento in VM | /headers |
Consigli pratici: quanto anonimato ti serve davvero?
Prima di decidere fin dove spingere le difese, chiarisci chi ti sta davvero tracciando:
- Inserzionisti + data broker (intensità bassa): uBlock Origin + rifiuto dei cookie di terze parti + una normale VPN bastano per la stragrande maggioranza delle situazioni quotidiane
- Sistemi antifrode (intensità media): quanto sopra + DNS della VPN coerente + fuso orario/lingua corrispondenti + profili del browser isolati
- Concorrenti / web scraper (intensità medio-alta): quanto sopra + modalità TUN + un vero browser (senza tracce di Selenium) + pulizia dei cookie residui
- Governi / indagini transfrontaliere (intensità estrema): tutto quanto sopra è solo la base. Servono Tor / Whonix / Tails / un VPS pagato in contanti + XMR + dispositivi completamente isolati
Alla maggior parte delle persone bastano i livelli 1-2; dal livello 3 in su è territorio da specialisti. Non complicarti l'uso quotidiano per un anonimato che non ti serve davvero.
Approfondimenti
- browserleaks.com: test completo delle impronteVerifiche WebRTC / Canvas / WebGL / TCP / ja3 in un unico posto
- amiunique.org: unicità dell'impronta del browserScopri quanto è unica la tua impronta nel database dell'INRIA
- salesforce/ja3: come funziona l'impronta TLS
- privacytools.io: il kit completo anti-tracciamento
- Tor Project: la rete di anonimato per eccellenza