Vývojáři knihovny fingerprintjs, která umožňuje generovat identifikátory prohlížeče pasivně na základě nepřímých znaků, jako je rozlišení obrazovky, vlastnosti WebGL, seznamy nainstalovaných pluginů a písem, představili novou metodu identifikace založenou na hodnocení nainstalovaných standardních aplikací uživatele a fungující prostřednictvím kontroly podpory v prohlížeči dalších zpracovatelů protokolů. Kód skriptu s realizací metody byl publikován pod licencí MIT.
Ověření se provádí na základě analýzy provázanosti zpracovatelů s 32 populárními aplikacemi. Například, určením existence zpracovatelů schémat URL telegram://, slack:// a skype:// v prohlížeči lze usoudit, že v systému jsou nainstalovány aplikace telegram, slack a skype, a tuto informaci použít jako znak při generování identifikátoru systému. Vzhledem k tomu, že seznam zpracovatelů je stejný pro všechny prohlížeče v systému, identifikátor se nemění při změně prohlížeče a může být používán v Chrome, Firefox, Safari, Brave, Yandex Browser, Edge a dokonce i v Tor Browseru.
Metoda umožňuje generovat 32bitové identifikátory, tj. jednotlivě nedovoluje dosáhnout velké přesnosti, ale má smysl jako doplňkový znak v kombinaci s jinými parametry. Významnou nevýhodou metody je viditelnost pokusu o identifikaci pro uživatele — při generování identifikátoru na navrhované demonstrační stránce se v pravém dolním rohu otevře malé, ale zřetelně viditelné okno, ve kterém se dlouho procházejí zpracovatelé. Tato nevýhoda se neprojevuje v Tor Browseru, ve kterém může být identifikátor počítán nenápadně.
Pro určení přítomnosti aplikace skript se pokouší otevřít vyskakovací okno s odkazem souvisejícím s externím zpracovatelem, po čemž prohlížeč zobrazuje dialog s nabídkou otevřít obsah ve spojené aplikaci, pokud je kontrolovaná aplikace přítomna, nebo vyhodí stránku s chybou, pokud aplikace není v systému. Prostřednictvím sekvenčního průchodu standardními externími zpracovateli a analýzou chybového návratu lze usoudit na přítomnost kontrolovaných programů v systému.
V Chromu 90 pro Linux metoda nefungovala a prohlížeč na všechny pokusy o ověření zpracovatele vyvolal typový dialog pro potvrzení operace (v Chromu pro Windows a macOS metoda funguje). Ve Firefoxu 88 pro Linux, ať už v normálním režimu, nebo v režimu inkognito, skript určil přítomnost nainstalovaných rozšíření ze seznamu a přesnost identifikace byla vyhodnocena na 99,87 % (35 podobných shod z 26 tisíc provedených testů). V aplikaci Tor Browser spuštěné na stejné systémové konfiguraci byl vygenerován identifikátor, který odpovídal testu ve Firefoxu.
Zajímavé je, že dodatečná ochrana v Tor Browser vtipně vedla k možnosti provádět identifikaci nepozorovaně pro uživatele. Kvůli vypnutí dialogů o potvrzení použití externích zpracovatelů v Tor Browser bylo možné kontrolní dotazy otevírat v iframe, nikoli v okně popup (pro oddělení přítomnosti a absence zpracovatelů se používá to, že pravidla same-origin blokují přístup na stránky s chybou a povolují přístup na stránky about:blank). Kvůli ochraně před spammem kontrola v Tor Browser trvá znatelně déle (10 sekund na aplikaci).
Zdroj: opennet.ru
