Altro che cookie! Il fingerprinting è una tecnica davvero subdola che permette ai gestori di qualunque sito Web di raccogliere informazioni sui client e risalire all’identità di un utente indipendentemente dal browser e dal fatto che si serva o meno della modalità di navigazione in incognito. Il browser può addirittura passare a un’applicazione Web il nome utente macOS senza che il possessore del dispositivo ne sia minimamente consapevole.
Cos’è il fingerprinting in breve
Il fingerprinting sul Web è una tecnica utilizzata per raccogliere informazioni uniche e identificative sui visitatori di un sito o di un’applicazione web. I dati acquisiti permettono di creare un profilo utente univoco che aiuta a tracciare il comportamento online di ciascun individuo. Il fingerprinting si basa sull’idea che ogni dispositivo e ogni utente abbiano una combinazione di attributi che li rende unici. Tra gli attributi possono esservi informazioni come l’indirizzo IP, il tipo di browser, la versione del sistema operativo, le impostazioni di lingua, le estensioni del browser eventualmente installate, le dimensioni dello schermo e altre caratteristiche del dispositivo e del browser. Alcuni parametri usati ai fini del fingerprinting sono davvero curiosi e spesso non si sospetta neppure che possano essere sfruttati a tale scopo.
mDNS aiuta ad estrarre il nome utente macOS
mDNS (Multicast DNS) è un protocollo di rete che consente ai dispositivi di manifestare reciprocamente la loro presenza e comunicare a vicenda senza la necessità di un server DNS centralizzato. Il meccanismo poggia sulla trasmissione di pacchetti multicast UDP (User Datagram Protocol) per permettere ai dispositivi di annunciare il proprio nome e risolvere i nomi degli altri dispositivi utilizzati in rete locale. I dispositivi possono essere raggiunti utilizzando un nome di dominio come device.local
anziché un indirizzo IP privato.
Il sistema Apple Bonjour si serve di mDNS proprio per le attività di ricerca dei dispositivi e per attivare comunicazioni reciproche. Il TLD (top-level domain) .local
indica che il nome dell’host deve essere risolto proprio utilizzando il protocollo mDNS.
Per impostazione predefinita, i dispositivi Apple espongono il nome dell’utente nei nomi host locali. Ogni utente può visualizzare o modificare il nome host locale di macOS nella sezione Condivisione delle impostazioni di sistema.
Come spiega FingerprintJS, un’applicazione Web remota può servirsi di semplice codice JavaScript per sferrare un attacco brute force e “indovinare” il nome dell’host locale. Infatti, quando un indirizzo viene risolto, si verifica l’invio automatico di un pacchetto dati sulla porta TCP 80. A conferma dell’esistenza di quello specifico host all’interno della LAN.
La pagina dimostrativa Can I Guess Your Name? non fa altro che indovinare il nome dell’utente configurato su un sistema macOS, ad esempio un Macbook o un iMac. Il risultato del test viene quindi mostrato.
Per ottimizzare i tempi di elaborazione, la demo pubblicata da FingerprintJS si limita a svolgere un numero ridotto di prove. Già così, tuttavia, è possibile ottenere il risultato corretto, quindi il nome dell’utente effettivamente impostato sul sistema macOS, nel 65% dei casi.
L’attivazione del firewall nelle impostazioni del sistema operativo Apple e l’utilizzo di nomi host non convenzionali, permettono di neutralizzare questo eventuale tentativo di monitoraggio degli utenti.