Identificatie door analyse van externe protocolhandlers in de browser

De ontwikkelaars van de vingerafdrukjs-bibliotheek, waarmee u in passieve modus browser-ID's kunt genereren op basis van indirecte functies zoals schermresolutie, WebGL-functies, lijsten met geïnstalleerde plug-ins en lettertypen, presenteerden een nieuwe identificatiemethode op basis van een beoordeling van de typische geïnstalleerde applicaties op de gebruiker en het controleren van de ondersteuning in de browser van aanvullende protocolhandlers. De scriptcode met de implementatie van de methode wordt gepubliceerd onder de MIT-licentie.

De controle wordt uitgevoerd op basis van een analyse van de binding van handlers aan 32 populaire applicaties. Door bijvoorbeeld de aanwezigheid van URL-schema-handlers telegram://, slack:// en skype:// in de browser te bepalen, kunt u concluderen dat het systeem over telegram-, slack- en skype-applicaties beschikt en deze informatie als teken gebruiken bij het genereren van een systeem-ID. Omdat de lijst met handlers hetzelfde is voor alle browsers in het systeem, verandert de identificatie niet bij het wisselen van browser en kan deze worden gebruikt in Chrome, Firefox, Safari, Brave, Yandex Browser, Edge en zelfs Tor Browser.

Met deze methode kunt u 32-bits identificatiegegevens genereren, d.w.z. individueel maakt het niet mogelijk om grote nauwkeurigheid te bereiken, maar het is zinvol als extra functie in combinatie met andere parameters. Een opvallend nadeel van de methode is de zichtbaarheid van de identificatiepoging voor de gebruiker - bij het genereren van een identificatie op de voorgestelde demopagina wordt rechtsonder een klein maar duidelijk zichtbaar venster geopend waarin de handlers behoorlijk lang scrollen. Dit nadeel komt niet voor in Tor Browser, waarin de identifier ongemerkt kan worden berekend.

Om de aanwezigheid van een applicatie vast te stellen, probeert het script een link te openen die is gekoppeld aan een externe handler in een pop-upvenster, waarna de browser een dialoogvenster weergeeft waarin u wordt gevraagd de inhoud in de bijbehorende applicatie te openen als de applicatie die wordt gecontroleerd, is aanwezig of geeft een foutpagina weer als de applicatie niet op het systeem staat. Door een sequentiële zoektocht naar typische externe handlers en analyse van foutretouren kan men concluderen dat het systeem de programma's bevat die worden getest.

In Chrome 90 voor Linux werkte de methode niet en de browser gaf een standaard bevestigingsvenster weer voor alle pogingen om de handler te controleren (in Chrome voor Windows en macOS werkt de methode). In Firefox 88 voor Linux detecteerde het script, zowel in de normale modus als in de incognitomodus, de aanwezigheid van geïnstalleerde extra applicaties uit de lijst, en de identificatienauwkeurigheid werd geschat op 99.87% (35 vergelijkbare overeenkomsten uit 26 uitgevoerde tests). In Tor Browser die op hetzelfde systeem draait, werd een identificatie gegenereerd die overeenkwam met de test in Firefox.

Interessant genoeg speelde de extra bescherming in Tor Browser een wrede grap en veranderde het in een mogelijkheid om identificatie uit te voeren onopgemerkt door de gebruiker. Door het uitschakelen van bevestigingsdialogen voor het gebruik van externe handlers in Tor Browser, bleek dat verificatieverzoeken in een iframe kunnen worden geopend en niet in een pop-upvenster (om de aan- en afwezigheid van handlers te scheiden, gelden dezelfde regels blokkeer de toegang tot pagina's met fouten en sta toegang toe tot about:lege pagina's). Vanwege de bescherming tegen overstromingen duurt het inchecken in Tor Browser merkbaar langer (10 seconden per applicatie).

Bron: opennet.ru

Voeg een reactie