Udviklerne af biblioteket fingerprintjs, som gør det muligt at generere browseridentifikatorer i passiv tilstand baseret på indirekte tegn såsom skærmopløsning, WebGL-funktioner, lister over installerede plugins og skrifttyper, har præsenteret en ny identifikationsmetode, der er baseret på at vurdere, hvilke typiske applikationer brugeren har installeret, og som fungerer ved at kontrollere understøttelsen af yderligere protokolhåndterere i browseren. Koden til scriptet, der implementerer metoden, er offentliggjort under MIT-licensen.
Kontrollen udføres på baggrund af en analyse af bindingshåndterere til 32 populære applikationer. For eksempel, ved at bestemme tilstedeværelsen af hændelseshåndterere for URL-schemerne telegram://, slack:// og skype:// kan man konkludere, at applikationerne telegram, slack og skype findes på systemet, og denne information kan bruges som et tegn ved generering af systemets identifikator. Da listen over håndterere er den samme for alle browsere i systemet, ændres identifikatoren ikke, når browseren skiftes, og den kan anvendes i Chrome, Firefox, Safari, Brave, Yandex Browser, Edge og endda Tor Browser.
Metoden gør det muligt at generere 32-bit identifikatorer, dvs. den tillader ikke at opnå høj nøjagtighed alene, men giver mening som et ekstra tegn i kombination med andre parametre. En væsentlig ulempe ved metoden er synligheden af identifikationsforsøget for brugeren — ved generering af identifikatoren på den foreslåede demonstrationsside åbnes der et lille, men tydeligt vindue i nederste højre hjørne, hvor hændelseshåndtererne forsøges gennemgået i længere tid. Denne ulempe manifesterer sig ikke i Tor Browser, hvor identifikatoren kan beregnes uset.
For at bestemme tilstedeværelsen af en applikation forsøger scriptet at åbne et link i et popup-vindue, som er relateret til en ekstern håndterer, hvorefter browseren viser en dialog, der tilbyder at åbne indholdet i den tilknyttede applikation, hvis den kontrollerede applikation er til stede, eller viser en fejlside, hvis applikationen ikke findes i systemet. Gennem en sekventiel gennemgang af typiske eksterne håndterere og analyse af den returnerede fejl kan man konkludere, om de kontrollerede programmer er til stede i systemet.
I Chrome 90 til Linux fungerede metoden ikke, og browseren viste en standard bekræftelsesdialog for alle forsøg på at kontrollere handleren (metoden fungerer i Chrome til Windows og macOS). I Firefox 88 til Linux, både i normal tilstand og i inkognitomode, identificerede scriptet tilstedeværelsen af installerede ekstra programmer fra listen, og nøjagtigheden af identifikationen blev vurderet til 99,87% (35 lignende match fra 26.000 udførte tests). Ved kørsel af Tor Browser på det samme system blev der genereret et id, der matchede testen i Firefox.
Det er interessant, at den ekstra beskyttelse i Tor Browser spillede en makaber spøg og blev til en mulighed for at gennemføre identifikation uden brugerens viden. På grund af deaktiveringen af bekræftelsesdialoger i Tor Browser kunne kontrolforespørgsler åbnes i en iframe i stedet for i et popup-vindue (for at adskille tilstedeværelsen og fraværet af håndterere bruges det faktum, at reglerne for same-origin blokerer adgang til sider med fejl og tillader adgang til sider about:blank). På grund af beskyttelsen mod flood tager kontrol i Tor Browser betydeligt længere tid (10 sekunder pr. app).
Kilde: opennet.ru
