Ben-Gurioni Ülikooli (Iisrael), Lille'i Ülikooli (Prantsusmaa) ja Adelaide'i Ülikooli (Austraalia) teadlased on välja töötanud uue seadme tuvastamistehnika, mis põhineb GPU tööparameetrite määramisel veebibrauseris. Meetod on nimega „Drawn Apart” ja see põhineb WebGL-i kasutamisel GPU jõudluse profiili saamiseks, mis võimaldab oluliselt suurendada passiivsete jälgimismeetodite täpsust, mis töötavad ilma küpsiste kasutamiseta ja ilma kasutaja süsteemis identifikaatori salvestamiseta.
Identifitseerimismeetodid, mis arvestavad joonistamisprotsessi, GPU, graafikavahendi ja draiverite omadustega, on varem kasutusele võetud, kuid nende rakendus oli piiratud seadmete diferentseerimisega ainult erinevate video- ja GPU mudelite tasandil, st neid saadi kasutada ainult täiendava tegurina tuvastamise tõenäosuse suurendamiseks. Uue meetodi "Drawn Apart" peamine omadus seisneb selles, et see ei piirdu erinevate GPU mudelite eristamisega, vaid püüab tuvastada erinevusi ühe mudeli identsete GPUde vahel, mis tulenevad kiibiproduktsiooniprotsessi heterogeensusest, mis on mõeldud ulatuslikeks paralleelseteks arvutusteks. Toodetud variatsioonid võimaldavad luua unikaalseid jäljendeid sama seadme mudeli kohta.

Selgus, et neid erinevusi saab tuvastada täitmisplokkide arvu loendamise ja nende jõudluse analüüsimise kaudu GPU-s. Erinevate GPU mudelite tuvastamiseks kasutati primitiivideks trigonometriliste funktsioonide, loogiliste operatsioonide ja ujuvkomaga arvutuste baasil tehtud teste. Sama GPU puhul hinnati samal ajal töötavate voogude arvu, kui täideti tippshaderid. Eeldatakse, et tuvastatud efekt tuleneb temperatuurirežiimide ja erinevate kiibi eksemplaride energiatarbimise erinevustest (varem on sarnane efekt näidatud ka CPU-de puhul — sama protsessor, täites sama koodi, näitas erinevat energiatarbimist).
Kuna WebGL kaudu toimuvad operatsioonid töötavad asünkroonselt, ei saa nende täitmisaja mõõtmiseks otse kasutada JavaScript API-d performance.now(), seetõttu on mõõtmiseks pakutud kolm nippi:
- onscreen — stseeni joonistamine HTML canvas'is, kus mõõdetakse callback-funktsiooni aktiveerimise aega, mis on seatud läbi API Window.requestAnimationFrame ja kutsutakse üles pärast joonistamise lõppu.
- offscreen — worker'i ja stseeni joonistamine OffscreenCanvas'i objektis koos convertToBlob käsku täitmise ajamõõtmisega.
- GPU — joonistamine OffscreenCanvas'i objektis, kuid ajamõõtmiseks kasutatakse WebGL-i aega, mis arvestab GPU-l poolte käskude täitmise kestust.
Iga seadme identifikaatori loomisel tehakse 50 kontrolli, millest igaühes katab 176 mõõtmist 16 erineva omaduse kohta. Eksperiment, milles koguti teavet 2500 seadme kohta, millel on 1605 erinevat GPU-d, näitas, et identifitseerimise kombineeritud meetodite efektiivsus suurenes 67% võrra, kui lisati Drawn Apart tugi. Eriti keskmiselt tagas kombinatsioonimeetod FP-STALKER identifitseerimise 17,5 päevaks, ning Drawn Apart'i lisamine pikendas identifitseerimise kestust kuni 28 päevani.

- 10 süsteemi, millel on Intel i5-3470 (GEN 3 Ivy Bridge) kiibid ja GPU Intel HD Graphics 2500, onsreen-testis eristamise täpsus oli 93%, offscreen-is aga 36,3%.
- 10 süsteemi Intel i5-10500 (GEN 10 Comet Lake) ja NVIDIA GTX1650 graafikakaardiga täpsus oli vastavalt 70% ja 95,8%.
- 15 süsteemi Intel i5-8500 (GEN 8 Coffee Lake) koos GPU Intel UHD Graphics 630 täpsus oli 42% ja 55%.
- 23 Intel i5-4590 (GEN 4 Haswell) süsteemi jaoks, millel on GPU Intel HD Graphics 4600 — 32.7% ja 63.7%.
- Kuue Samsung Galaxy S20/S20 Ultra nutitelefoni, millel on GPU Mali-G77 MP11, ekraanil kuvamise testis oli identifitseerimise täpsus 92.7%, samas kui Samsung Galaxy S9/S9+ nutitelefonide, millel on Mali-G72 MP18, täpsus oli 54.3%.

Täpsusele mõjutas GPU temperatuur, ning mõnede seadmete puhul põhjustas süsteemi taaskäivitamine identifikaatori moonutamist. Kombineerides meetodit teiste kaudsete identifitseerimise meetoditega, saab täpsust oluliselt suurendada. Samuti plaanitakse täpsust tõsta arvutuslike shaderite kasutamise kaudu pärast uue WebGPU API stabiliseerimist.
Intel, ARM, Google, Khronos, Mozilla ja Brave said probleemist teavituse juba 2020. aastal, kuid meetodi detailid paljastati alles nüüd. Uurijad avaldasid ka JavaScriptis ja GLSLis kirjutatud toimivad näidised, mis võivad töötada nii teabe kuvamisega kui ka ilma. Samuti on Intel GEN 3/4/8/10 GPU-dele avaldatud andmekogusid masinõppe süsteemide väljavõetud teabe klassifitseerimiseks.
Allikas: opennet.ru
