Identifikation gennem analyse af eksterne protokolhandlere i browseren

Udviklerne af fingerprintjs-biblioteket, som giver dig mulighed for at generere browser-id'er i passiv tilstand baseret på indirekte funktioner såsom skærmopløsning, WebGL-funktioner, lister over installerede plugins og skrifttyper, præsenterede en ny identifikationsmetode baseret på en vurdering af de typiske installerede applikationer på brugeren og arbejder gennem kontrol af support i browserens ekstra protokolhandlere. Scriptkoden med implementeringen af ​​metoden udgives under MIT-licensen.

Kontrollen udføres på baggrund af en analyse af handlernes binding til 32 populære applikationer. For eksempel, ved at bestemme tilstedeværelsen af ​​URL-skemabehandlere telegram://, slack:// og skype:// i browseren, kan du konkludere, at systemet har telegram-, slack- og skype-applikationer og bruge disse oplysninger som et tegn ved generering af et system-id. Da listen over behandlere er den samme for alle browsere i systemet, ændres identifikatoren ikke, når du skifter browser, og den kan bruges i Chrome, Firefox, Safari, Brave, Yandex Browser, Edge og endda Tor Browser.

Metoden giver dig mulighed for at generere 32-bit identifikatorer, dvs. individuelt tillader det ikke at opnå stor nøjagtighed, men det giver mening som en ekstra funktion i kombination med andre parametre. En mærkbar ulempe ved metoden er synligheden af ​​identifikationsforsøget for brugeren - når der genereres en identifikator på den foreslåede demoside, åbnes et lille, men tydeligt synligt vindue i nederste højre hjørne, hvori behandlerne scroller i ret lang tid. Denne ulempe optræder ikke i Tor Browser, hvor identifikatoren kan beregnes ubemærket.

For at fastslå tilstedeværelsen af ​​en applikation, forsøger scriptet at åbne et link tilknyttet en ekstern handler i et pop-up vindue, hvorefter browseren viser en dialog, der beder dig om at åbne indholdet i den tilknyttede applikation, hvis applikationen, der kontrolleres, er til stede, eller viser en fejlside, hvis applikationen ikke er på systemet. Gennem en sekventiel søgning af typiske eksterne handlere og analyse af fejlreturneringer kan man konkludere, at systemet indeholder de programmer, der testes.

I Chrome 90 til Linux virkede metoden ikke, og browseren viste en standarddialog for bekræftelse af driften for alle forsøg på at kontrollere handleren (i Chrome til Windows og macOS virker metoden). I Firefox 88 til Linux, både i normal tilstand og i inkognitotilstand, registrerede scriptet tilstedeværelsen af ​​installerede yderligere applikationer fra listen, og identifikationsnøjagtigheden blev estimeret til 99.87% (35 lignende kampe ud af 26 tusinde test udført). I Tor Browser, der kører på samme system, blev der genereret en identifikator, der matchede testen i Firefox.

Interessant nok spillede den ekstra beskyttelse i Tor Browser en grusom joke og blev til en mulighed for at udføre identifikation ubemærket af brugeren. På grund af deaktivering af bekræftelsesdialoger til brug af eksterne handlere i Tor Browser, viste det sig, at verifikationsanmodninger kan åbnes i en iframe og ikke i et popup-vindue (for at adskille tilstedeværelsen og fraværet af behandlere, reglerne med samme oprindelse blokere adgang til sider med fejl og tillade adgang til about:blanke sider). På grund af oversvømmelsesbeskyttelse tager det mærkbart længere tid at tjekke Tor Browser (10 sekunder pr. applikation).

Kilde: opennet.ru

Tilføj en kommentar