Fingerprinting prohlížeče není žádnou novinkou. O možnosti identifikovat konkrétní prohlížeč pomocí sady technických údajů, které o sobě poskytne, se hovoří už mnoho let. Jde o překvapivě spolehlivou metodu, která dokáže uživatele dlouhodobě identifikovat, i když si neukládá cookies a nepředává o sobě žádné konkrétní informace.
Podobně je možné použít například známý CSS exploit, který dovoluje z prohlížeče získat informaci o tom, zda uživatel navštěvuje konkrétní webové adresy. Další variantou je zneužití hlavičky HSTS, kdy uživateli vložíme do databáze určitou sadu adres a necháme ho přepsat protokol na HTTPS. Tím si k němu můžeme uložit identifikaci. Funguje to pak i v anonymním režimu.
Všechny tyhle metody ovšem identifikují konkrétní prohlížeč, nikoliv počítač. Pokud tedy uživatel zavře Firefox a otevře Chrome, získá na webu odlišný otisk a prohlásí se tím za jiného uživatele. Nová metoda ale dovoluje uživatele sledovat napříč prohlížeči, protože místo otisku prohlížeče vytváří otisk počítače.
Napříč webem i prohlížeči
Tříčlenný tým vědců z amerických univerzit vedený profesorem Yinzhi Cao zveřejnil novou studii, podle které je možné použít moderní součásti prohlížečů k vytvoření otisku (fingerprint) uživatele, který se nebude měnit ani po změně prohlížeče. Systém tak i po výměně prohlížeče dokáže s překvapivou přesností zjistit, že jde o stejného uživatele.
Tuto metodu nazvali „cross-browser fingerprinting“ (CBF) a používají pro ni často nové vlastnosti přidané do prohlížečů v posledních letech. Všechny využívají toho, že ke zpracování dat je využit hardware a ne software v samotném prohlížeči. Například je možné použít WebGL a nechat vykreslit obrázek na stěnu trojrozměrné krychle. Operace přinese na stejném počítači vždy totožný výsledek, protože o vykreslení se nepostará jádro prohlížeče, ale grafická karta.
Vědci byli schopni dát všechny tyto informace dohromady a získali tak jedinečný otisk hardware a systému, který je možné získat bez ohledu na použitý prohlížeč.
Co je možné použít?
Rozlišení obrazovky – Používá se při běžném fingerprintingu, ale je možné jej využít i v CBF. Když se k němu ještě přidá míra zvětšení (zoom) stránky, jedná se o velmi spolehlivý prvek.
Počet procesorových jader – Parametr prohlížeče nazvaný hardwareConcurrency
je ve většině prohlížečů stejný, u některých je nutné provést triviální přepočet. Například v Safari jej vynásobíte dvěma.
AudioContext – Nabízí sadu funkcí pro zpracování signálů a využívá při tom rozhraní operačního systému i funkcí zvukové karty. Měřením výstupních hodnot je tak možné získat unikátní data.
Seznam fontů – Nová technika, která staví na tradičním postupu, se spoléhá na různé metody používané při vykreslování vektorových písem.
Renderování vektorů a anti-aliasing – Vědci jsou schopni měřit, jak prohlížeč vykresluje čáry, křivky a jak provádí anti-aliasing. Používají k tomu HTML5 Canvas a WebGL, čímž zapojí do činnosti grafickou kartu, která podá jedinečný výsledek.
Vertex Shader – Vykreslování grafiky pomocí karty a jejich ovladačů využije vertex shadery pro zobrazení stínů a světel na 3D objektech ve WebGL.
Fragment Shader – Je možné je využít podobně jako vertex shadery.
Průhlednost pomocí alfa kanálu – Prohlížeče dnes používají grafickou kartu k aplikaci průhlednosti v obrázcích. Výstup je pak shodný ve všech prohlížečích, protože se používají stejné algoritmy.
Nainstalované jazyky – Čínština, korejština či arabština vyžadují doinstalování speciálních knihoven, které kvůli své velikosti nejsou součástí ostatních lokalizací. Prohlížeč k nim nenabízí API, takže není možné získat jednoduše jejich seznam, ale je možné použít postranní kanál: lze sledovat, zda se text v daném jazyce na konkrétním počítači vyrenderoval správně nebo jsou místo znaků třeba jen čtverečky. Výsledek se pak může snadno stát součástí fingerprintu.
Modeling a Multiple Models – Další technika, která zapojuje do práce grafickou kartu. Testuje se, jak počítač vykreslí připravené 3D modely.
Lighting a Shadow Mapping – Podobně touto metodou je možné měřit, jak počítač zpracovává světla a stíny v 3D obraze.
Kamera – Není tím myšlena web kamera v počítači, ale další technika související s 3D modelováním. Používá se k porovnávání různých 2D reprezentací 3D modelů.
Ořez roviny – Měří se, jak se počítač vyrovná s umístěním 3D objektů na omezené roviny. Ořezová operace WebGL je opět předána grafické kartě a prohlížeč ji sám neprovádí.
Vysoká úspěšnost
Vědci použili všechny zmíněné techniky k pokusu, při kterém měřili, kolik uživatelů budou schopni přiřadit k jednomu počítači. Používali při tom prohlížeče Chrome, Firefox, Edge, IE, Opera, Safari, Maxthon, UC Browser a Coconut. Výsledky studie [PDF] ukazují, že CBF dokázala správně identifikovat 99,24 % testovaných uživatelů. Předchozí metody přitom dosahovaly úspěšnosti 90,84 %.