Vědci z Ben-Gurionovy univerzity (Izrael), Lille University (Francie) a University of Adelaide (Austrálie) vyvinuli novou techniku identifikace zařízení uživatelů prostřednictvím analýzy parametrů výkonu GPU v internetovém prohlížeči. Metoda s názvem „Drawn Apart“ je založena na použití WebGL pro získání profilu výkonu GPU, což významně zvyšuje přesnost pasivních sledovacích metod, které fungují bez cookies a bez zachování identifikátorů v systému uživatele.
Metody, které při identifikaci zohledňovaly specifika vykreslování, GPU, grafického stacku a ovladačů, byly již dříve používány, ale byly omezeny na schopnost dělení zařízení pouze na úrovni různých modelů grafických karet a GPU, tj. mohly se použít pouze jako doplňkový faktor pro zvýšení pravděpodobnosti identifikace. Klíčovým rysem nové metody „Drawn Apart“ je, že není omezena na dělení různých modelů GPU, ale snaží se odhalit rozdíly mezi identickými GPU stejného modelu, způsobené heterogenitou výrobního procesu čipů určených pro masivní paralelní výpočty. Bylo zdůrazněno, že vznikající variace během výroby umožňují vytvářet jedinečné otisky pro stejné modely zařízení.

Ukázalo se, že tyto rozdíly lze odhalit počítáním počtu vykonávacích bloků a analýzou jejich výkonu v GPU. Jako primitiva pro identifikaci různých modelů GPU byly použity testy založené na sadě trigonometrických funkcí, logických operací a výpočtů s plovoucí desetinou čárkou. Pro odhalení rozdílů mezi identickými GPU se hodnotil počet zároveň vykonávaných vláken při provádění vrcholových shaderů. Předpokládá se, že zjištěný efekt je způsoben rozdíly v teplotních režimech a spotřebě energie různých vzorků čipů (podobný efekt byl dříve demonstrován pro CPU — identické procesory při vykonávání stejného kódu vykazovaly různé spotřeby energie).
Vzhledem k tomu, že operace přes WebGL se provádějí asynchronně, nelze pro měření doby jejich vykonání přímo použít JavaScript API performance.now(). Proto byly navrženy tři triky pro měření času:
- onscreen – vykreslení scény v HTML canvas s měřením doby reakce callback funkce nastavené pomocí API Window.requestAnimationFrame, která se vyvolává po dokončení vykreslení.
- offscreen – využití workeru a vykreslení scény v objektu OffscreenCanvas s měřením doby vykonání příkazu convertToBlob.
- GPU – vykreslení v objektu OffscreenCanvas, ale s využitím časovače poskytnutého v WebGL, který zohledňuje dobu provádění příkazů na straně GPU.
Při vytváření identifikátoru na každém zařízení se provádí 50 kontrol, přičemž každá zahrnuje 176 měření 16 různých charakteristik. Experiment, během něhož byly shromážděny informace o 2500 zařízeních s 1605 různými GPU, ukázal zlepšení účinnosti kombinovaných metod identifikace o 67 % při přidání podpory Drawn Apart. Konkrétně průměrná doba identifikace kombinované metody FP-STALKER byla 17.5 dní, zatímco v kombinaci s Drawn Apart se doba identifikace zvýšila na 28 dní.

- Přesnost rozlišení 10 systémů s čipy Intel i5-3470 (GEN 3 Ivy Bridge) a GPU Intel HD Graphics 2500 v testu onscreen dosáhla 93 %, zatímco v offscreen 36.3 %.
- Pro 10 systémů Intel i5-10500 (GEN 10 Comet Lake) s grafickou kartou NVIDIA GTX1650 byla přesnost 70 % a 95.8 %.
- Pro 15 systémů Intel i5-8500 (GEN 8 Coffee Lake) s GPU Intel UHD Graphics 630 byla přesnost 42 % a 55 %.
- Pro 23 systémů Intel i5-4590 (GEN 4 Haswell) s GPU Intel HD Graphics 4600 byla přesnost 32.7 % a 63.7 %.
- Pro šest smartphonů Samsung Galaxy S20/S20 Ultra s GPU Mali-G77 MP11 v testu s výstupem na obrazovku dosáhla přesnost identifikace 92.7 %, zatímco pro smartphony Samsung Galaxy S9/S9+ s Mali-G72 MP18 činila 54.3 %.

Zaznamenává se, že na přesnost měla vliv teplota GPU, a u některých zařízení zpětné restartování systému vedlo k deformaci identifikátoru. Při použití metody v kombinaci s dalšími metodami nepřímé identifikace může být přesnost výrazně zvýšena. Také se plánuje zlepšit přesnost využitím výpočetních shaderů po stabilizaci nového API WebGPU.
Společnosti Intel, ARM, Google, Khronos, Mozilla a Brave byly o problému informovány již v roce 2020, ale detaily metody byly zveřejněny až nyní. Mezi jiným zveřejnili výzkumníci příklady napsané v JavaScriptu a GLSL, které mohou fungovat s výstupem i bez zobrazení informací na obrazovce. Také byly zveřejněny datové sady pro systémy s GPU Intel GEN 3/4/8/10 pro klasifikaci extrahovaných informací v systémech strojového učení.
Zdroj: opennet.ru
