Affidarsi a un servizio VPN e attivare la connessione con un server remoto italiano o straniero permette di proteggere i dati che si scambiano sulla rete Internet grazie all’utilizzo di un tunnel crittografato.
Attivando una VPN ci si collega a qualunque server remoto usando un indirizzo IP pubblico. Tale indirizzo non corrisponde a quello assegnato dal provider Internet ma è l’IP del server di uscita della VPN stessa.
In passato tanti servizi VPN soffrivano di un noto problema chiamato DNS leak: in parole semplici un’applicazione remota aveva la possibilità di risalire al vero indirizzo IP pubblico dell’utente anche con una connessione VPN attiva.
La problematica è stata presa in carico e corretta dai principali fornitori di servizi VPN ma ancora oggi esistono sistemi per provare a risalire non tanto all’identità dell’utente che usa la VPN ma quanto meno alla sua posizione geografica.
Se la VPN nasconde l’indirizzo IP del dispositivo e quindi la posizione fisica dell’utente, è possibile utilizzare funzioni JavaScript per interrogare il browser web e stimare la posizione geografica del client.
Metodi JavaScript come Intl.DateTimeFormat().resolvedOptions()
e Date().toLocaleString()
possono essere rispettivamente utilizzati per accedere al fuso orario impostato sul dispositivo client e recuperare l’ora locale.
Utilizzo queste e altre tattiche un’applicazione web può determinare da quale Paese l’utente è connesso, a dispetto dell’azione di “mascheramento” esercitata dalla VPN.
Provate ad esempio a visitare la pagina Vytal con e senza un servizio VPN attivo: in entrambi i casi otterrete le stesse informazioni con tutti i riferimenti al fuso orario, alla lingua prescelta e alla stringa user agent reali.
L’estensione gratuita Vytal per Google Chrome e per i browser derivati da Chromium (quindi anche Microsoft Edge) consente di effettuare lo spoofing delle informazioni restituite in risposta all’utilizzo delle funzioni e dei metodi JavaScript cui abbiamo fatto riferimento in precedenza.
Dopo aver installato l’estensione Vytal e attivato la VPN cliccate sul pulsante che appare a destra della barra degli indirizzi quindi scegliete Match IP dal primo menu a tendina.
Nel nostro esempio siamo collegati con una VPN che utilizza un server di uscita situato in Belgio: lo si può verificare dall’indirizzo IP pubblico che compare accanto a Current IP usando ad esempio un servizio WHOIS.
Selezionando Match IP quindi cliccando il pulsante Reload, le risposte fornite dal browser web saranno modificate artificiosamente così da essere in linea con l’indirizzo IP pubblico in uso.
Eseguendo di nuovo il test con la pagina di verifica Vytal presentata in precedenza, come si vede tutte le funzioni JavaScript restituiscono informazioni che inducono il sito Web visitato a ritenere che l’utente sia in questo caso effettivamente belga.
L’estensione Vytal non è ancora perfetta: poiché c’è un leggero ritardo tra il momento in cui avviene caricamento delle pagine Web e quando il debugger inizia a falsificare i dati, le informazioni reali sull’utente potrebbero essere recuperate durante il caricamento iniziale della pagina HTML (Initial Load). Abbiamo però verificato che lasciando aperto il browser quindi sospendendo o ibernando il sistema e poi proseguendo la sessione di lavoro anche l’informazione Initial Load viene correttamente modificata da parte dell’estensione Vytal.
Il sorgente dell’estensione Vytal è pubblicato su GitHub ed è consultabile da chiunque.