Identificazione attraverso l'analisi dei gestori di protocollo esterni nel browser

Gli sviluppatori della libreria fingerjs, che consente di generare identificatori del browser in modalità passiva in base a segni indiretti come risoluzione dello schermo, funzionalità WebGL, elenchi di plugin e font installati, hanno presentato un nuovo metodo di identificazione basato su una valutazione delle tipiche applicazioni installate sull'utente e lavorando controllando il supporto nei gestori di protocollo aggiuntivi del browser. Il codice dello script con l'implementazione del metodo è pubblicato sotto licenza MIT.

Il controllo viene effettuato sulla base di un'analisi dell'associazione dei gestori a 32 applicazioni popolari. Ad esempio, determinando la presenza dei gestori di schemi URL telegram://, slack:// e skype:// nel browser, puoi concludere che il sistema dispone di applicazioni Telegram, slack e Skype e utilizzare queste informazioni come segno durante la generazione di un identificatore di sistema. Poiché l'elenco dei gestori è lo stesso per tutti i browser del sistema, l'identificatore non cambia quando si cambia browser e può essere utilizzato in Chrome, Firefox, Safari, Brave, Yandex Browser, Edge e persino Tor Browser.

Il metodo consente di generare identificatori a 32 bit, ad es. singolarmente non consente di raggiungere una grande precisione, ma ha senso come caratteristica aggiuntiva in combinazione con altri parametri. Uno svantaggio evidente del metodo è la visibilità del tentativo di identificazione per l'utente: quando si genera un identificatore sulla pagina demo proposta, nell'angolo in basso a destra si apre una finestra piccola ma chiaramente evidente in cui i gestori scorrono per un periodo piuttosto lungo. Questo svantaggio non si presenta in Tor Browser, nel quale l'identificatore può essere calcolato senza che nessuno se ne accorga.

Per determinare la presenza di un'applicazione, lo script tenta di aprire un collegamento associato a un gestore esterno in una finestra pop-up, dopodiché il browser visualizza una finestra di dialogo che chiede di aprire il contenuto nell'applicazione associata se l'applicazione controllata è presente oppure visualizza una pagina di errore se l'applicazione non è presente nel sistema. Attraverso una ricerca sequenziale di tipici gestori esterni e l'analisi degli errori restituiti, si può concludere che il sistema contiene i programmi da testare.

In Chrome 90 per Linux, il metodo non funzionava e il browser mostrava una finestra di dialogo standard di conferma dell'operazione per tutti i tentativi di controllare il gestore (in Chrome per Windows e macOS il metodo funziona). In Firefox 88 per Linux, sia in modalità normale che in modalità di navigazione in incognito, lo script ha rilevato la presenza di applicazioni aggiuntive installate dall'elenco e la precisione dell'identificazione è stata stimata al 99.87% (35 corrispondenze simili su 26mila test eseguiti). In Tor Browser in esecuzione sullo stesso sistema, è stato generato un identificatore che corrispondeva al test in Firefox.

È interessante notare che la protezione aggiuntiva in Tor Browser ha giocato uno scherzo crudele e si è trasformata in un'opportunità per effettuare l'identificazione senza che l'utente se ne accorgesse. A causa della disabilitazione delle finestre di dialogo di conferma per l'uso di gestori esterni in Tor Browser, si è scoperto che le richieste di verifica possono essere aperte in un iframe e non in una finestra popup (per separare la presenza e l'assenza di gestori, le regole della stessa origine bloccare l'accesso alle pagine con errori e consentire l'accesso a about:pagine vuote). A causa della protezione contro le inondazioni, il check-in Tor Browser richiede notevolmente più tempo (10 secondi per applicazione).

Fonte: opennet.ru

Aggiungi un commento