Identifikasjon gjennom analyse av eksterne protokollbehandlere i nettleseren

Utviklerne av fingerprintjs-biblioteket, som lar deg generere nettleseridentifikatorer i passiv modus basert på indirekte funksjoner som skjermoppløsning, WebGL-funksjoner, lister over installerte plugins og fonter, presenterte en ny identifiseringsmetode basert på en vurdering av de typiske applikasjonene som er installert på brukeren og arbeider gjennom å sjekke støtte i nettleserens tilleggsprotokollbehandlere. Skriptkoden med implementering av metoden er publisert under MIT-lisensen.

Kontrollen utføres basert på en analyse av bindingen av behandlere til 32 populære applikasjoner. For eksempel, ved å bestemme tilstedeværelsen av URL-skjemabehandlere telegram://, slack:// og skype:// i nettleseren, kan du konkludere med at systemet har telegram-, slack- og skype-applikasjoner, og bruke denne informasjonen som et tegn når du genererer en systemidentifikator. Siden listen over behandlere er den samme for alle nettlesere i systemet, endres ikke identifikatoren når du bytter nettleser og kan brukes i Chrome, Firefox, Safari, Brave, Yandex Browser, Edge og til og med Tor Browser.

Metoden lar deg generere 32-bits identifikatorer, dvs. individuelt tillater ikke å oppnå stor nøyaktighet, men det er fornuftig som en tilleggsfunksjon i kombinasjon med andre parametere. En merkbar ulempe med metoden er synligheten av identifikasjonsforsøket for brukeren - når du genererer en identifikator på den foreslåtte demosiden, åpnes et lite, men tydelig merkbart vindu i nedre høyre hjørne der behandlerne ruller i ganske lang tid. Denne ulempen vises ikke i Tor Browser, der identifikatoren kan beregnes ubemerket.

For å fastslå tilstedeværelsen av en applikasjon, prøver skriptet å åpne en lenke knyttet til en ekstern behandler i et popup-vindu, hvoretter nettleseren viser en dialog som ber deg åpne innholdet i den tilknyttede applikasjonen hvis applikasjonen som sjekkes er tilstede, eller viser en feilside hvis applikasjonen ikke er på systemet. Gjennom et sekvensielt søk av typiske eksterne behandlere og analyse av feilretur kan man konkludere med at systemet inneholder programmene som testes.

I Chrome 90 for Linux fungerte ikke metoden, og nettleseren viste en standard dialogboks for bekreftelse av operasjoner for alle forsøk på å sjekke behandleren (i Chrome for Windows og macOS fungerer metoden). I Firefox 88 for Linux, både i normal modus og i inkognitomodus, oppdaget skriptet tilstedeværelsen av installerte tilleggsapplikasjoner fra listen, og identifikasjonsnøyaktigheten ble estimert til 99.87% (35 lignende treff av 26 tusen utførte tester). I Tor Browser som kjører på samme system, ble det generert en identifikator som samsvarte med testen i Firefox.

Interessant nok spilte tilleggsbeskyttelsen i Tor Browser en grusom spøk og ble til en mulighet til å utføre identifikasjon ubemerket av brukeren. På grunn av deaktivering av bekreftelsesdialoger for bruk av eksterne behandlere i Tor Browser, viste det seg at verifiseringsforespørsler kan åpnes i en iframe og ikke i et popup-vindu (for å skille tilstedeværelse og fravær av behandlere, reglene med samme opprinnelse blokkere tilgang til sider med feil og gi tilgang til about:blanke sider). På grunn av flombeskyttelse tar det merkbart lengre tid å sjekke inn Tor-nettleseren (10 sekunder per applikasjon).

Kilde: opennet.ru

Legg til en kommentar