Které signály přežijí aktualizace prohlížečů? Analýza stability
Analyzovali jsme stabilitu signálů napříč 50 aktualizacemi prohlížečů Chrome, Firefox a Safari. Zde jsou nejstabilnější a nejméně stabilní signály pro fingerprinting.
Aktualizace prohlížečů jsou přirozeným nepřítelem fingerprintingu zařízení. Každé 4–6 týdnů vydávají Chrome, Firefox a Safari nové verze, které mohou měnit hodnoty signálů — mění řetězce user-agent, upravují chování vykreslování, přidávají nebo odebírají API. Jak uvádí W3C Fingerprinting Guidance, prohlížeče aktivně pracují na omezení plochy vhodné k fingerprintingu. Pro systémy fingerprintingu, které se všemi signály zacházejí stejně, je každá aktualizace potenciálním narušením identity pro miliony návštěvníků.
Provedli jsme komplexní analýzu stability napříč 50 aktualizacemi prohlížečů, abychom odpověděli na zásadní otázku: na které signály se můžete spolehnout a které vás zradí?
Metodika
Instrumentovali jsme 200 fyzických zařízení napříč 5 operačními systémy (Windows 10, Windows 11, macOS Ventura, macOS Sonoma, Ubuntu 22.04) a 3 prohlížeči (Chrome, Firefox, Safari). Každé zařízení denně provádělo automatizovaný sběr signálů po dobu 14 měsíců, což pokrylo 50 hlavních aktualizací verzí prohlížečů: 24 vydání Chromu, 16 vydání Firefoxu a 10 vydání Safari.
U každého signálu jsme sledovali: jak často se hodnota měnila, zda změna korelovala s aktualizací prohlížeče nebo vnějším faktorem (aktualizace ovladače, oprava OS) a rozsah změny (úplná výměna hodnoty vs. drobná odchylka).
Vrstvy stability
Vrstva 1: Naprosto pevné (stabilita 99,5 % a více)
Tyto signály se změnily pouze tehdy, když se změnil fyzický hardware nebo se aktualizovaly ovladače — nikdy jen kvůli aktualizacím prohlížeče.
Hardware Concurrency (navigator.hardwareConcurrency): stabilita 99,97 %. Změnilo se pouze na 1 zařízení, které mělo aktualizaci BIOSu ovlivňující hyperthreading. Device Memory (navigator.deviceMemory): stabilita 99,98 %. Jedno zařízení bylo během studie upgradováno z 8 GB na 16 GB. Rozlišení obrazovky a barevná hloubka: stabilita 99,92 %. Změny korelovaly s výměnami monitorů a událostmi dokovacích stanic. WebGL Max Texture Size: stabilita 99,99 %. Nulové změny související s prohlížečem. Změnilo se jednou na zařízení, které dostalo aktualizaci ovladače NVIDIA. Vzorkovací frekvence zvuku (Audio Sample Rate): stabilita 100 %. Nulové změny napříč všemi 200 zařízeními a 50 aktualizacemi. Jde o jediný nejstabilnější signál, který sledujeme.
Vrstva 2: Většinou stabilní (95–99,5 %)
Tyto signály se občas mění s aktualizacemi prohlížečů, ale zůstávají stabilní napříč většinou vydání.
Canvas 2D Fingerprint: stabilita 97,8 %. Ke změnám došlo v Chrome 118 (aktualizace enginu vykreslování písem), Chrome 122 (změna subpixelového vyhlazování) a Firefox 121 (aktualizace tvarování textu). Každá změna zasáhla všechna zařízení s daným prohlížečem současně — detekovatelný vzorec, který řešíme párováním s ohledem na verzi prohlížeče. WebGL Renderer String: stabilita 98,1 %. Chrome občas přeformátuje řetězec obalu ANGLE. Podkladová informace o GPU zůstává nezměněná, ale mění se textová reprezentace řetězce. Model GPU parsujeme z řetězce, místo abychom řetězec přímo hashovali. Seznam písem (Font List): stabilita 96,4 %. Aktualizace OS občas přidají nebo odeberou systémová písma. Aktualizace prohlížečů málokdy ovlivní výčet písem, ale Chrome 120 změnil pořadí, v jakém jsou písma hlášena, což rozbilo fingerprinting písem založený na hashích. Místo hashování podle pořadí používáme porovnání na základě množin (podobnost množin).
Vrstva 3: Střední stabilita (80–95 %)
Tyto signály se mění s významnou frekvencí, ale mezi změnami stále poskytují užitečnou identifikační hodnotu.
Nainstalované pluginy: stabilita 89,2 %. Pokračující redukce pole pluginů v Chromu (navigator.plugins) v některých kontextech zcela odstranila viditelnost pluginů. Firefox výčet pluginů zachoval. Safari jej omezilo na standardní sadu. Detekce CSS funkcí: stabilita 91,7 %. S každým vydáním prohlížeče přibývají nové CSS funkce, což mění množinu funkcí zjištěných naším CSS sondováním. Novým funkcím přiřazujeme nižší váhu než zavedeným, abychom dopad snížili. Podpora dotyku (Touch Support): stabilita 93,1 %. Desktopové prohlížeče občas mění svou hlášenou podporu dotyku, když Chrome upravuje detekci emulace zařízení.
Vrstva 4: Nestabilní (<80 %)
Tyto signály se mění často a nikdy by neměly být primárními kotvami identifikace.
User Agent String: stabilita 42,3 %. Iniciativa Chromu na redukci User-Agentu opakovaně změnila formát řetězce. Firefox aktualizuje číslo verze s každým vydáním. Safari pravidelně upravuje řetězec verze WebKitu. Kdysi to byla páteř jednoduchých systémů fingerprintingu — tyto systémy jsou nyní rozbité. Typ připojení (navigator.connection): stabilita 68,4 %. Mění se s přepínáním sítě (WiFi na mobilní data, různé WiFi sítě). Battery API: stabilita 71,2 %. Kolísá podle stavu nabití a dostupnosti API v prohlížeči. Chrome v některých kontextech omezil přístup k Battery API. Dostupná plocha obrazovky: stabilita 76,8 %. Mění se s viditelností hlavního panelu, správou oken a úpravami škálování displeje.
Srovnání napříč prohlížeči
Chrome je z hlediska stability fingerprintingu nejméně stabilní prohlížeč. Google aktivně pracuje na snížení možnosti fingerprintingu, což znamená, že aktualizace Chromu rozbíjejí více signálů než aktualizace Firefoxu nebo Safari. Za období naší studie:
Chrome způsobil změny signálů ve 3,2 % relací sběru. Firefox způsobil změny signálů v 1,8 % relací sběru. Safari způsobil změny signálů v 1,1 % relací sběru.
Nižší nestabilita Safari je zčásti dána tím, že Apple vydává méně verzí za rok, a zčásti tím, že protiopatření Safari proti fingerprintingu (Intelligent Tracking Prevention) fungují na úrovni sítě, místo aby měnila návratové hodnoty API.
Praktická doporučení
Na základě této analýzy dáváme pět doporučení pro produkční systémy fingerprintingu:
User agent nikdy nepoužívejte jako kotvu identifikace. Je to nejméně stabilní rozlišovací signál. Používejte jej pouze pro detekci prohlížeče a bodování důvěry ve Vrstvě 3.
Oddělte hardwarové signály od softwarových. Hardwarové signály (GPU, obrazovka, zvuk) jsou 40× stabilnější než softwarové signály (user agent, pluginy, CSS funkce). Podle toho je vážte.
Pro vyčíslitelné signály používejte porovnání na základě množin. Seznamy písem, seznamy pluginů a výsledky detekce funkcí by se měly porovnávat pomocí podobnosti množin nebo obdobných metrik vzdálenosti množin, nikoli hashováním podle pořadí. Změny pořadí jsou běžné; změny obsahu jsou vzácné.
Zaveďte párování s ohledem na verzi prohlížeče. Když Chrome 118 změní vykreslování canvasu pro všechny uživatele Chromu současně, váš systém by to měl rozpoznat jako aktualizaci prohlížeče, ne jako hromadné narušení identity. Sledujte verze prohlížečů a uplatňujte tolerance párování specifické pro danou verzi.
Průběžně monitorujte stabilitu signálů. Naše procenta stability vycházejí z historických dat. Budoucí aktualizace prohlížečů mohou změnit profil stability kteréhokoli signálu. Provozujeme průběžné monitorování a automaticky upravujeme váhy signálů, když se stabilita změní.
Dopad na tracio.ai
Naše vícevrstvá identifikační architektura V3 přímo odráží tuto analýzu stability. Signály Vrstvy 1 (hardware) nesou váhu 60 %. Signály Vrstvy 2 (vykreslování, písma) nesou váhu 30 %. Signály Vrstvy 3 (metadata prohlížeče, připojení) nesou váhu 10 %. Toto vážení zajišťuje, že identifikaci řídí nejstabilnější signály, zatímco nestabilní signály přispívají k bodování důvěry, aniž by způsobovaly narušení identity.
Výsledek: 99,5% stabilita identifikace napříč 50 aktualizacemi prohlížečů, oproti 69 % u systémů používajících plochý fingerprinting založený na hashích. Rozdíl nespočívá v algoritmické důmyslnosti — jde o empirickou analýzu signálů uplatněnou v architektonických rozhodnutích.