Programeri biblioteke fingerprintjs, koja omogućava generiranje identifikatora preglednika u pasivnom režimu na temelju indirektnih znakova, poput razlučivosti ekrana, karakteristika WebGL-a, popisa instaliranih dodataka i fontova, predstavili su novu metodu identifikacije temeljenu na procjeni instaliranih tipičnih aplikacija korisnika koja radi kroz provjeru podrške dodatnih protokola u pregledniku. Kod skripte s implementacijom metode objavljen je pod MIT licencom.
Provjera se provodi na temelju analize vezivanja handlera na 32 popularne aplikacije. Na primjer, određivanjem prisutnosti handlera URL shema telegram://, slack:// i skype:// može se zaključiti o prisutnosti aplikacija telegram, slack i skype u sustavu, te se ta informacija može iskoristiti kao znak pri generiranju identifikatora sustava. Budući da je popis handlera isti za sve preglednike u sustavu, identifikator se ne mijenja prilikom promjene preglednika i može se koristiti u Chromeu, Firefoxu, Safari, Braveu, Yandex Pretraživaču, Edgeu i čak u Tor Pretraživaču.
Metoda omogućava generiranje 32-bitnih identifikatora, tj. pojedinačno ne omogućava postizanje velike točnosti, ali ima smisla kao dodatni znak u kombinaciji s drugim parametrima. Značajan minus metode je uočljivost pokušaja identifikacije za korisnika — pri generiranju identifikatora na ponuđenoj demo stranici u donjem desnom kutu otvara se mali, ali očigledno vidljiv prozor u kojem se prilično dugo pretražuju handleri. Ovaj minus nije prisutan u Tor Pretraživaču, gdje se identifikator može izračunati neprimjetno.
Za određivanje prisutnosti aplikacije skripta pokušava otvoriti u skočnom prozoru vezu povezanu s vanjskim handlerom, nakon čega preglednik prikazuje dijalog s prijedlogom da se sadržaj otvori u povezanoj aplikaciji, ako provjeravana aplikacija postoji, ili prikazuje error stranicu ako aplikacija nije prisutna u sustavu. Kroz sekvencijalno pretraživanje tipičnih vanjskih handlera i analizu vraćene greške može se zaključiti o prisutnosti provjerenih programa u sustavu.
U Chrome 90 za Linux metoda nije uspjela, a preglednik je na sve pokušaje provjere operatera prikazao standardni dijalog za potvrdu operacije (u Chromeu za Windows i macOS metoda radi). U Firefoxu 88 za Linux, kako u običnom tako i u incognito načinu, skripta je identificirala prisutnost instaliranih dodatnih aplikacija iz popisa, a točnost identifikacije ocijenjena je na 99,87% (35 takvih podudaranja iz 26 tisuća provedenih testova). U pokrenutom Tor Browseru na istoj sustavu generiran je identifikator koji se podudarao s testom u Firefoxu.
Zanimljivo je da je dodatna zaštita u Tor Browseru odigrala lošu šalu i pretvorila se u mogućnost neprimjetne identifikacije za korisnika. Zbog onemogućivanja u Tor Browseru dijaloga za potvrdu korištenja vanjskih operatera, provjere su se mogle otvarati u iframeu, a ne u izlaznom prozoru (za odvajanje prisutnosti i odsutnosti operatera koristi se to što pravila same-origin blokiraju pristup stranicama s greškom i dopuštaju pristup stranicama about:blank). Zbog zaštite od fluda, provjera u Tor Browseru traje značajno duže vrijeme (10 sekundi po aplikaciji).
Izvor: opennet.ru
