Jak funguje sledování digitální stopy pod pokličkou
Od TLS handshake po vykreslování canvasu — jak rekonstruujeme digitální stopu zařízení z více než 130 pasivních signálů bez cookies a úložiště.
Každé zařízení, které se připojí k internetu, za sebou zanechává stopu technických artefaktů — digitální stopu. V tracio.ai tuto stopu rekonstruujeme z více než 130 pasivních signálů sesbíraných během jediného načtení stránky, aniž bychom se spoléhali na cookies, localStorage nebo jakoukoli formu trvalého úložiště na straně klienta. Tento článek přesně vysvětluje, jak celý proces funguje.
Vrstva sběru signálů
Když se náš JavaScriptový agent načte v prohlížeči návštěvníka, začne současně sbírat signály napříč několika kategoriemi. Vykreslování canvasu, dotazy na parametry WebGL, zpracování AudioContext, výčet fontů a čtení vlastností objektu navigator — to vše běží paralelně. Celý proces sběru se na moderním hardwaru dokončí za méně než 50 milisekund.
Klíčové je, že každý signál zachycuje jiný aspekt hardwarového a softwarového vybavení zařízení. Vykreslování canvasu odráží GPU, ovladač a engine pro vykreslování fontů. Parametry WebGL odhalují model grafické karty a její schopnosti. AudioContext ukazuje rozdíly v tom, jak zvukový DSP zpracovává operace s plovoucí desetinnou čárkou. Vlastnosti objektu navigator reportují počet jader CPU, paměť, platformu a jazyková nastavení.
Náš tým to minulý měsíc naměřil napříč 2 miliardami událostí: medián doby sběru byl 38 ms a 99. percentil 52 ms. Nejprve jsme vlastně zkusili naivní přístup — sbírat signály sekvenčně. Byl 40× pomalejší. Paralelní sběr s časovým limitem bylo jedno z prvních architektonických rozhodnutí, které jsme udělali správně.
TLS fingerprinting: první vrstva
Ještě než se náš JavaScript vůbec spustí, prohlížeč už odhalil značné množství informací prostřednictvím TLS handshake. Zpráva Client Hello obsahuje šifrovací sady, které prohlížeč podporuje, TLS rozšíření, která používá, eliptické křivky, jimž dává přednost, a podpisové algoritmy, které přijímá. Tyto informace určuje TLS knihovna prohlížeče a výrazně se liší napříč rodinami prohlížečů, verzemi a operačními systémy.
Tento TLS fingerprint zachycujeme pomocí hašování JA4 — moderní náhrady za JA3, která nabízí lepší granularitu a stabilitu napříč verzemi. Samotný haš JA4 dokáže odlišit Chrome od Firefoxu a od Safari a často zúží identifikaci na konkrétní rozsah verzí prohlížeče. V kombinaci s našimi signály na straně klienta poskytuje vrstvu křížové validace, kterou je mimořádně obtížné podvrhnout.
Fingerprinting canvasu a GPU
Fingerprinting canvasu využívá toho, že různá GPU vykreslují stejné kreslicí instrukce s jemnými rozdíly na úrovni pixelů. Canvas API nám umožňuje vykreslit pečlivě navrženou scénu — konkrétní textové řetězce ve více fontech, geometrické tvary s určitými souřadnicemi a přechody s přesnými barevnými body — a poté spočítat haš výsledných pixelových dat.
Rozdíly ve vykreslování pramení z odlišností v algoritmech vyhlazování hran, subpixelovém vykreslování, prolínání barev a hintingu fontů napříč modely GPU a verzemi ovladačů. I dvě zařízení se stejným modelem GPU mohou produkovat odlišné výstupy canvasu, pokud používají různé verze ovladačů nebo operační systémy. Díky tomu je haš canvasu jedním z našich nejrozlišovatelnějších signálů.
Hardwarové profilování přes WebGL
WebGL API
odhaluje podrobné informace o grafickém subsystému, které daleko přesahují řetězce renderer a vendor. Dotazujeme se na maximální velikosti textur, formáty přesnosti shaderů, podporovaná rozšíření, rozměry viewportu a desítky dalších parametrů, které se liší napříč modely GPU a konfiguracemi ovladačů.
Kombinace těchto parametrů vytváří podrobný hardwarový profil. Zařízení s NVIDIA RTX 4070 například nahlásí jiné maximální velikosti textur, jinou přesnost shaderů a jinou podporu rozšíření než zařízení s AMD RX 7800 XT. Tento hardwarový profil je ze své podstaty stabilní — nemění se s aktualizacemi prohlížeče, pouze se změnami hardwaru nebo ovladačů.
Fingerprinting zpracování zvuku
Web Audio API poskytuje další zdroj signálů závislých na hardwaru. Vytvoříme oscilátorový uzel, připojíme jej k dynamickému kompresoru a změříme výstupní buffer. Rozdíly v přesnosti operací s plovoucí desetinnou čárkou, v implementaci DSP a v převzorkovacích algoritmech napříč zvukovým hardwarem a operačními systémy produkují měřitelné odchylky ve výstupu.
Zvukové fingerprinty mají střední unikátnost, ale výjimečnou stabilitu. Řetězec zpracování zvuku se mění jen zřídka, pokud uživatel nevymění zvukový hardware nebo nepřeinstaluje operační systém. Díky tomu jsou zvukové signály cennými kotvami v našem vícestupňovém identifikačním systému.
Fúze signálů a rozlišení identity
Surové signály jsou zašifrovány a přeneseny na náš server, kde je engine pro identifikaci zařízení zpracuje třístupňovým systémem hašování. Signály na úrovni hardwaru (canvas, WebGL, zvuk) tvoří stupeň 1 — stabilní jádro identity. Signály na úrovni prohlížeče (detekce funkcí, CSS vlastnosti, mediální schopnosti) tvoří stupeň 2, zpracovaný prostřednictvím párování napříč relacemi, aby se zvládl očekávaný posun způsobený aktualizacemi prohlížeče. Nestálé signály (user agent, časové pásmo, jazyk) tvoří stupeň 3 a přispívají k výpočtu míry jistoty, aniž by řídily rozhodnutí o identitě.
Fúzní algoritmus váží každý signál podle jeho unikátnosti a stability. Shoda na vzácném haši canvasu má mnohem větší váhu než shoda na běžném rozlišení obrazovky. Tento vážený přístup zajišťuje, že identifikace zůstává přesná i tehdy, když se změní část signálů.
Žádné úložiště, žádné cookies
Zásadním principem návrhu našeho systému je, že identifikace nezávisí na žádné formě úložiště na straně klienta. Nenastavujeme cookies, nezapisujeme do localStorage ani nepoužíváme IndexedDB pro účely sledování. ID návštěvníka je odvozeno výhradně z inherentních charakteristik zařízení — hardwaru, softwarového vybavení a konfigurace sítě. To znamená, že identifikace přežije smazání cookies, anonymní režim, a dokonce i přeinstalaci prohlížeče.
Soukromí díky architektuře
Protože sbíráme pouze technické atributy prohlížeče — žádnou historii prohlížení, žádná data z formulářů, žádný osobní obsah — je dopad na soukromí minimální. W3C Fingerprinting Guidance popisuje osvědčené postupy pro zodpovědné využívání signálů prohlížeče a naše architektura je s těmito principy v souladu. Při nasazení v cloudu probíhá veškeré zpracování na vaší infrastruktuře. Žádná data návštěvníků se nikdy nedostanou na naše servery. Díky této architektuře je soulad s GDPR, CCPA a dalšími předpisy o ochraně soukromí přímočarý.