Ben-Gurioni Ülikooli (Iisrael), Lille Ülikooli (Prantsusmaa) ja Adelaide Ülikooli (Austraalia) teadlased on välja töötanud uue tehnika kasutaja seadmete tuvastamiseks GPU tööparameetrite määramise kaudu veebibrauseris. Meetod on saanud nimeks „Drawn Apart” ja põhineb WebGL kasutamisel GPU jõudluse profiili saamiseks, mis võimaldab oluliselt suurendada passiivsete jälgimismeetodite täpsust, mis töötavad ilma küpsiseid kasutamata ja ilma seadme identifikaatori salvestamiseta.
Varem on seadmete tuvastamisel kasutatud meetodeid, mis arvestavad renderdamise, GPU, graafikahiire kihi ja draiverite eripära, kuid need olid piiratud seadmete eristamise võimalustega ainult erinevate graafikakaardi mudelite tasemel ja GPU, st neid võidi kasutada ainult täiendava tegurina identifitseerimise 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 GPU-de vahel, mis tulenevad kiipide tootmisprotsessi ebatasasusest, mis on mõeldud massiliste paralleelsete arvutuste jaoks. Toodetud variatsioonide tõttu on võimalik luua ainulaadseid jälgi sama seadme mudeli jaoks.

Selgus, et neid erinevusi saab tuvastada käitust blokkide arvu arvestamise ja nende jõudluse analüüsimise kaudu GPU-s. GPU erinevate mudelite tuvastamiseks kasutasime primitiivneid, mis põhinevad trigonomeetriliste funktsioonide, loogiliste operatsioonide ja ujuva komaga arvutuste kontrollidel. Üksikute GPU-de erinevuste tuvastamiseks hinnati samaaegselt käitatavate jääkide arvu vertikaalsete varjude teostamisel. Eeldatakse, et tuvastatud efekt tuleneb erinevustest kiipide erinevates temperatuurirežiimides ja energiatarbimises (sarnane efekt on varem demonstreeritud CPU-de puhul — samad protsessorid olid sama koodi täitmisel erineva energiatarbimisega).
Kuna WebGL operatsioonid toimuvad asünkroonselt, ei saa nende täitmise aega otse mõõta JavaScript API performance.now() abil, seetõttu on aja mõõtmiseks välja pakutud kolm nippi:
- onscreen — stseeni joonistamine HTML canvasis ajaga, mille mõõdab callback-funktsiooni käivitamine, mis on seatud API Window.requestAnimationFrame kaudu ja kutsutakse välja pärast joonistamise lõpetamist.
- offscreen — töötaja kasutamine ja stseeni joonistamine objektis OffscreenCanvas koos ajaga, mille mõõdab käsk convertToBlob.
- GPU — joonistamine objektis OffscreenCanvas, kuid aja mõõtmiseks kasutatakse WebGL-i timerit, mis arvestab käsu täitmise kestust GPU poolel.
Iga seadme identifikaatori loomise protsessis tehakse 50 kontrolli, millest igaüks katab 176 mõõtmist 16 erinevast omadusest. Eksperimendi käigus, mille jooksul koguti teavet 2500 seadme kohta 1605 erineva GPU-ga, näitas kombineeritud identifitseerimismeetodite tõhususe kasv 67% võrra, kui lisati Drawn Apart tugi. Eelkõige andis kombineeritud meetod FP-STALKER keskmiselt 17,5 päeva identifitseerimise, samas kui koos Drawn Apartiga suurenes identifitseerimise kestus 28 päevani.

- Kümne süsteemi puhul, millel on Intel i5-3470 (GEN 3 Ivy Bridge) ja GPU Intel HD Graphics 2500, oli onscreen testi täpsus 93%, samas kui offscreen testi puhul oli see 36,3%.
- Kümne süsteemi Intel i5-10500 (GEN 10 Comet Lake) ja NVIDIA GTX1650 graafikakaardiga oli täpsus vastavalt 70% ja 95,8%.
- Viieteistkümne süsteemi Intel i5-8500 (GEN 8 Coffee Lake) ja GPU Intel UHD Graphics 630 puhul oli täpsus 42% ja 55%.
- Kakskümmend kolm süsteemi Intel i5-4590 (GEN 4 Haswell) ja GPU Intel HD Graphics 4600 puhul oli täpsus 32,7% ja 63,7%.
- Kuue Samsung Galaxy S20/S20 Ultra nutitelefoni, millel on GPU Mali-G77 MP11, puhul oli ekraanile kuvamise testi täpsus 92,7%, samas kui Samsung Galaxy S9/S9+ nutitelefonidel, millel on Mali-G72 MP18, oli see 54,3%.

Täpsuse peale mõjutas GPU temperatuur, samuti tõi mõnede seadmete süsteemi taaskäivitamine kaasa identifikaatori moonutamise. Kui meetodit kasutatakse koos teiste kaudse tuvastamise meetoditega, võib täpsust märkimisväärselt suurendada. Täpsust plaanitakse tõsta ka arvutuslike shaderite kasutamise kaudu pärast uue API WebGPU stabiliseerumist.
Intel, ARM, Google, Khronos, Mozilla ja Brave on probleemist teavitatud juba 2020. aastal, kuid meetodi üksikasjad on avalikustatud alles nüüd. Uurijad avaldasid töötavad näidised, mis on kirjutatud JavaScriptis ja GLSL-is, mis võivad töötada nii väljastuse kui ka ilma ekraanile teabe kuvamiseta. Samuti on GPU Intel GEN 3/4/8/10 süsteemide jaoks avaldatud andmekogumid, et klassifitseerida välja tõmmatud teavet masinõppesüsteemides.
Allikas: opennet.ru
