Test di fuga WebRTC

Una VPN cambia l’indirizzo che vedono i siti. Il tuo browser può però lasciarne sfuggire un altro tramite WebRTC, la funzione che sta dietro le chiamate nel browser. Questo test mette i due fianco a fianco.

01 · Cosa vede il nostro server

216.73.216.109

Amazon.com, Inc. · AS16509

L’indirizzo da cui esce il tuo traffico. Con una VPN connessa, dovrebbe essere quello della VPN.

02 · Cosa rivela WebRTC

Raccolta degli indirizzi…

Il confronto usa solo indirizzi pubblici e avviene nel tuo browser. Per conoscere il proprio indirizzo pubblico, il browser interroga due server STUN, uno gestito da Google e uno da Cloudflare, che vedono il tuo indirizzo come lo vede qualsiasi sito web. Gli indirizzi pubblici che emergono vengono inviati al nostro server per un solo scopo: dare un nome alla rete a cui appartengono. Gli indirizzi locali restano sul tuo dispositivo e non conserviamo nulla.

Perché un browser può conoscere più di un indirizzo

Caricare una pagina web è uno scambio semplice. Il browser chiede, un server risponde, e il server scopre una sola cosa sulla tua rete: l’indirizzo da cui è arrivata la richiesta. Una videochiamata funziona diversamente. Due browser cercano di mandarsi audio e video direttamente, e per farlo ognuno deve dire all’altro dove può essere raggiunto.

WebRTC è la funzione del browser che se ne occupa. Prima di una chiamata raccoglie tutti gli indirizzi che potrebbero funzionare, un passaggio chiamato ICE gathering. Elenca gli indirizzi delle interfacce di rete del tuo dispositivo, poi fa una sola domanda a un aiutante pubblico chiamato server STUN: «da quale indirizzo mi vedi arrivare?». Ogni risposta diventa un «candidato».

Qualsiasi pagina web può avviare questa raccolta con poche righe di JavaScript. Non servono una chiamata né una richiesta di permesso, e sullo schermo non compare nulla. Se la domanda STUN passa fuori dal tunnel della VPN, o da un’interfaccia che la VPN non copre, l’elenco dei candidati contiene l’indirizzo che ti ha dato il tuo provider. Ecco cos’è una fuga WebRTC.

Cosa fa il test

  1. Quando la pagina si carica, il nostro server annota l’indirizzo da cui è arrivata la tua richiesta e indica la rete che lo possiede. Questo è il riquadro 01.
  2. Il browser apre una connessione WebRTC che non va da nessuna parte, puntata verso due server STUN, uno gestito da Google e uno da Cloudflare, e raccoglie candidati per un massimo di sette secondi.
  3. I candidati vengono smistati. Gli intervalli privati (10.x, da 172.16 a 172.31, 192.168.x), gli indirizzi condivisi degli operatori (da 100.64 a 100.127), gli indirizzi link-local e i nomi .local vengono messi da parte come locali. Il resto è pubblico.
  4. Fino a sei indirizzi pubblici vengono inviati al nostro server, che restituisce la rete a cui appartiene ciascuno.
  5. Ogni indirizzo pubblico viene confrontato con il riquadro 01 e riceve un’etichetta.

Leggere le etichette

EtichettaRegolaSignificato
UgualeIdentico all’indirizzo visto dal nostro serverWebRTC non aggiunge nulla. Con la VPN attiva, entrambi sono l’indirizzo della VPN.
DiversoStessa famiglia (entrambi IPv4 o entrambi IPv6) ma un altro indirizzoCon la VPN attiva, è molto probabilmente il tuo vero indirizzo che esce.
Stesso providerAltra famiglia, stesso operatore di rete del riquadro 01Di solito il lato IPv6 della stessa connessione o della stessa VPN. Nessuna fuga.
Altro providerAltra famiglia, operatore di rete diversoDi solito un indirizzo IPv6 del tuo provider internet mentre la VPN fa passare nel tunnel solo IPv4.
Da verificareAltra famiglia, operatore non identificatoConfrontalo tu con l’indirizzo che hai quando la VPN è spenta.

Sotto l’elenco, la pagina dice se gli indirizzi locali sono visibili. I browser attuali li sostituiscono con un nome casuale che termina in .local, che a un sito non dice nulla. Un semplice indirizzo 192.168.x.x non riconduce a te nemmeno lui, ma è un dettaglio in più che un tracker può usare per distinguere i dispositivi.

«Nessun indirizzo pubblico» e «WebRTC è disattivato» vogliono dire entrambi che questa porta è chiusa. O il browser ha rifiutato di raccogliere candidati, o non è tornata nessuna risposta STUN.

Il test non ha modo di sapere se usi una VPN. Senza VPN, due indirizzi pubblici diversi possono essere del tutto normali, per esempio su una linea con IPv4 e IPv6, e i siti vedono comunque il tuo vero indirizzo. Un risultato rosso è un problema solo quando una VPN o un proxy dovrebbero nasconderti. Il test copre inoltre WebRTC e nient’altro. Le fughe DNS sono un’altra faccenda.

Chiudere la fuga

Nell’applicazione della VPN
Cerca «WebRTC leak protection», «IPv6 leak protection» e «kill switch», e attivale tutte e tre. Se il provider non supporta IPv6, disattiva IPv6 sulla scheda di rete mentre sei connesso. Una VPN che esiste solo come estensione del browser protegge il traffico delle pagine e può lasciare stare WebRTC, quindi scegli l’applicazione completa.
Firefox
Apri about:config e imposta media.peerconnection.ice.default_address_only su true. WebRTC si limita allora al percorso predefinito, cioè il tunnel. Impostare media.peerconnection.enabled su false elimina WebRTC del tutto.
Chrome ed Edge
Non c’è un interruttore integrato. Google pubblica un’estensione, WebRTC Network Limiter, con l’opzione «Use my default public interface only». L’estensione uBlock Origin ha un’impostazione simile, «Prevent WebRTC from leaking local IP addresses».
Brave
Impostazioni, Privacy e sicurezza, «WebRTC IP handling policy»: scegli «Disable non-proxied UDP».

Dopo ogni modifica, ricarica questa pagina con la VPN connessa. L’obiettivo è che ogni riga pubblica sia segnata «Uguale» o «Stesso provider», o che non ci sia nessun indirizzo pubblico.

Domande frequenti

Cos’è una fuga WebRTC?

È quando una pagina web ottiene il tuo vero indirizzo IP tramite la funzione WebRTC del browser, anche se una VPN o un proxy lo nascondono alle normali richieste delle pagine. Alla pagina basta un breve script. Non c’entra nessun permesso per fotocamera o microfono.

Non uso una VPN. Questo test mi riguarda?

Poco. Senza VPN, ogni sito riceve già il tuo vero indirizzo a ogni richiesta, quindi WebRTC non rivela niente in più. Il test è per chi conta su una VPN o un proxy per nascondere la propria posizione.

Disattivare WebRTC rompe qualcosa?

Spegnerlo del tutto blocca chiamate e condivisione dello schermo nel browser, cioè Google Meet, Microsoft Teams sul web, Discord, Jitsi e simili. Limitare WebRTC al percorso predefinito, o usare la protezione della VPN stessa, mantiene le chiamate funzionanti.

Perché il test mostra un indirizzo IPv6 quando la VPN è attiva?

Molte VPN fanno passare nel tunnel solo IPv4. Se il tuo provider internet ti dà anche IPv6, il traffico verso destinazioni IPv6 può aggirare il tunnel. Attiva la protezione dalle fughe IPv6 nella VPN, o disattiva IPv6 sul dispositivo.

Un indirizzo .local o 192.168 è una fuga?

No. Quelli identificano il tuo dispositivo sulla tua rete e non si possono raggiungere né localizzare da fuori. L’unica cosa che conta come fuga è un indirizzo pubblico diverso da quello che presenta la tua VPN.