Device fingerprinting bez cookies: jak to funguje
Cookies končí. Zde je návod, jak device fingerprinting poskytuje trvalou identifikaci bez jakéhokoli úložiště na straně klienta.
Cookie končí. Intelligent Tracking Prevention (ITP) Safari omezuje životnost cookies na 7 dní. Enhanced Tracking Protection Firefoxu blokuje cookies třetích stran úplně. Privacy Sandbox Chromu cookies třetích stran postupně ruší. Požadavky GDPR na souhlas znamenají, že uživatelé stále častěji cookie lišty odmítají.
Pro prevenci podvodů je to problém. Pokud nedokážete zařízení trvale identifikovat, nemůžete sledovat opakované pachatele, odhalovat multi-accounting ani propojovat podezřelé relace. Device fingerprinting to řeší tím, že identifikuje zařízení podle jejich technických charakteristik — žádné cookies, žádné localStorage, žádné úložiště na straně klienta.
Kategorie signálů
Pasivní fingerprinting (bez JavaScriptu)
Ještě předtím, než se vaše stránka načte, prohlížeč prozrazuje informace prostřednictvím signálů na úrovni sítě:
TLS fingerprinting (JA4). Zpráva TLS Client Hello obsahuje šifrovací sady, rozšíření, eliptické křivky a algoritmy podpisů. Používáme hashování JA4 — moderní náhradu za JA3 s lepší granularitou.
Analýza TCP/IP stacku. Velikost TCP okna, hodnoty TTL a nastavení MSS se liší napříč operačními systémy. Linux, Windows i macOS mají každý charakteristické konfigurace TCP stacku.
Analýza HTTP hlaviček. Pořadí hlaviček, hodnoty Accept-Language a preference připojení se mezi prohlížeči liší.
Aktivní fingerprinting (JavaScript na straně klienta)
Canvas fingerprinting. Vykreslíme pečlivě navrženou scénu — konkrétní text, geometrické tvary a přechody. Různé GPU ji vykreslují s jemnými rozdíly na úrovni pixelů, které vznikají kvůli anti-aliasingu, sub-pixelovému renderování a odlišnostem v míchání barev. Data pixelů zahashujeme.
WebGL fingerprinting. WebGL odhaluje řetězce vendor/renderer GPU, maximální velikosti textur, podporovaná rozšíření a schopnosti shaderů. Tato data silně identifikují model GPU a verzi ovladače.
AudioContext fingerprinting. Vygenerujeme testovací signál a analyzujeme, jak je zpracován. Různý zvukový hardware produkuje měřitelně odlišný výstup kvůli rozdílům v přesnosti výpočtů s plovoucí desetinnou čárkou.
Výčet fontů. Dostupné systémové fonty se liší podle OS, jazykového balíčku a nainstalovaného softwaru. Testujeme přibližně 300 diagnostických fontů pomocí technik měření přes canvas.
Vlastnosti Navigatoru. Počet jader CPU, paměť zařízení, platforma, jazyk, časové pásmo, rozlišení obrazovky, barevná hloubka, schopnosti ukazatele a dotyku.
Analýza entropie
Ne všechny signály mají stejnou váhu. Měříme entropii každého signálu:
| Kategorie signálu | Přibližná entropie |
|---|---|
| Canvas + WebGL dohromady | ~18 bitů |
| Seznam fontů | ~8 bitů |
| AudioContext | ~5 bitů |
| Vlastnosti Navigatoru | ~7 bitů |
| TLS fingerprint | ~6 bitů |
| Obrazovka + displej | ~4 bity |
| Časové pásmo + jazyk | ~3 bity |
Dohromady poskytuje našich 130+ signálů přibližně 50+ bitů entropie — dost na jednoznačnou identifikaci více než 1 kvadrilionu odlišných zařízení.
Od signálů ke stabilnímu hashi
Sběr surových signálů je jen polovina problému. Aktualizace prohlížeče mění řetězce user agenta. Aktualizace ovladačů mění parametry WebGL. Instalace fontů mění seznam fontů.
Fuzzy matching
Místo abychom vyžadovali přesné shody, používáme algoritmus fuzzy matchingu, který váží signály podle stability a entropie. Stabilní signály (canvas, model GPU) mají větší váhu než proměnlivé signály (user agent, rozlišení obrazovky).
Generování kandidátů využívá locality-sensitive hashing (LSH) na nejstabilnějších signálech k identifikaci potenciálních shod. Skórování podobnosti počítá vážené skóre napříč všemi kategoriemi signálů, kalibrované tak, aby běžné změny zařízení neměnily ID návštěvníka, zatímco skutečné změny zařízení ano.
Tím se dosahuje 99,5% přesnosti — správné identifikace vracejících se návštěvníků napříč aktualizacemi prohlížeče, smazáním cookies, anonymním režimem a přepínáním prohlížečů.
Architektura chránící soukromí
Zpracování na straně serveru. Veškerý výpočet fingerprintu probíhá na našich serverech. Agent na straně klienta sbírá surové signály, ale hash fingerprintu nepočítá ani neukládá.
Žádné ukládání PII. Ukládáme hashe fingerprintů, nikoli surové signály. Hash je jednosměrná funkce.
Rezidence dat. Data zákazníků z EU jsou zpracovávána a ukládána v datacentrech v EU. Článek 6 odst. 1 písm. f) GDPR pokrývá prevenci podvodů jako oprávněný zájem.
Identifikace napříč prohlížeči
Nejtěžší výzvou je identifikovat totéž zařízení napříč různými prohlížeči. Spoléháme na signály nezávislé na prohlížeči: hardware GPU, charakteristiky obrazovky, časové pásmo, jazyková nastavení, nainstalované fonty (na úrovni OS) a charakteristiky TCP/IP stacku.
Přesnost propojení napříč prohlížeči je přibližně 94 % — nižší než u identifikace v rámci téhož prohlížeče, ale dostatečná pro odhalování multi-accountingu napříč prohlížeči na tomtéž zařízení.
Integrace
Přidání device fingerprintingu zabere tři řádky kódu. Agent se načítá asynchronně, sbírá signály za méně než 50 ms a odesílá je do našeho API. Odpověď serveru obsahuje ID návštěvníka, skóre spolehlivosti a všech 24 Smart Signals.