Forskere fra Ben-Gurion Universitetet (Israel), Universitetet i Lille (Frankrig) og Universitetet i Adelaide (Australien) har udviklet en ny metode til identifikation af brugerens enheder ved at bestemme GPU'ens arbejdsparametre i webbrowseren. Metoden hedder "Drawn Apart" og er baseret på brugen af WebGL til at skaffe en profil af GPU'ens ydeevne, som markant kan øge nøjagtigheden af passive sporingsmetoder, der fungerer uden brug af cookies og uden at gemme identifikatoren på brugerens system.
Metoder, der tager højde for egenskaberne ved rendering, GPU, grafikstakken og drivere, er blevet brugt tidligere, men de var begrænset til muligheden for at adskille enheder kun på niveauet for forskellige modeller af grafikkort og GPU'er, dvs. de kunne kun anvendes som en ekstra faktor til at øge sandsynligheden for identificering. En nøglefunktion ved den nye metode "Drawn Apart" er, at den ikke er begrænset til at adskille forskellige modeller af GPU'er, men forsøger at afsløre forskelle mellem identiske GPU'er af samme model, som skyldes uregelmæssigheder i chipproduktionsprocessen, der er designet til massive parallelle beregninger. Det bemærkes, at de variationer, der opstår i produktionsprocessen, muliggør dannelse af unikke aftryk for de samme enhedsmodeller.

Det viste sig, at disse forskelle kan identificeres ved at tælle antallet af udførelsesblokke og analysere deres ydelse i GPU'en. Som primitive til at afsløre forskellige GPU-modeller blev der brugt tests baseret på et sæt trigonometriske funktioner, logiske operationer og flydende punktberegninger. For at identificere forskelle i identiske GPU'er blev antallet af samtidige tråde, der blev kørt under udførelsen af topografiske shaderes, vurderet. Det antages, at den identificerede effekt skyldes forskelle i temperaturforholdene og energiforbruget af forskellige chip-eksamplarer (en lignende effekt er tidligere blevet demonstreret for CPU'er - identiske processorer viste forskelligt energiforbrug ved udførelse af den samme kode).
Da operationer gennem WebGL udføres asynkront, kan JavaScript API performance.now() ikke bruges direkte til at måle tiden for deres udførelse, så der er foreslået tre tricks til at måle tiden:
- onscreen — rendering af scenen i HTML canvas med måling af tiden for callback-funktionen, der er indstillet gennem API Window.requestAnimationFrame og kaldes efter at renderingen er afsluttet.
- offscreen — brug af en worker og rendering af scenen i objektet OffscreenCanvas med måling af tiden for udførelsen af kommandoen convertToBlob.
- GPU — rendering i objektet OffscreenCanvas, men brug af timeren, der tilbydes i WebGL, til at måle tiden, der tager højde for varigheden af udførelsen af et sæt kommandoer på GPU-siden.
Under oprettelse af en identifikator på hver enhed udføres 50 kontroller, hver af dem dækker 176 målinger af 16 forskellige karakteristika. Eksperimentet, hvor der blev indsamlet information om 2500 enheder med 1605 forskellige GPU'er, viste en stigning i effektiviteten af de kombinerede identifikationsmetoder på 67% ved at tilføje støtte til Drawn Apart. Specifikt leverede den kombinerede metode FP-STALKER i gennemsnit identifikation i 17,5 dage, mens varigheden af identifikation med Drawn Apart steg til 28 dage.

- Præcisionen i adskillelsen af 10 systemer med Intel i5-3470 chip (GEN 3 Ivy Bridge) og GPU Intel HD Graphics 2500 var 93% i onscreen testen og 36,3% i offscreen.
- For 10 systemer Intel i5-10500 (GEN 10 Comet Lake) med grafikkortet NVIDIA GTX1650 var præcisionen 70% og 95,8%.
- For 15 systemer Intel i5-8500 (GEN 8 Coffee Lake) med GPU Intel UHD Graphics 630 var det henholdsvis 42% og 55%.
- For 23 systemer Intel i5-4590 (GEN 4 Haswell) med GPU Intel HD Graphics 4600 var det henholdsvis 32,7% og 63,7%.
- For seks smartphones Samsung Galaxy S20/S20 Ultra med GPU Mali-G77 MP11 var præcisionen i identifikationen i testen med skærmoutput 92,7%, mens den for smartphones Samsung Galaxy S9/S9+ med Mali-G72 MP18 var 54,3%.

Det bemærkes, at temperaturen på GPU havde indflydelse på præcisionen, og at genstart af systemet for nogle enheder førte til forvrængning af identifikatoren. Når metoden bruges i kombination med andre metoder til indirekte identifikation, kan præcisionen øges væsentligt. Der planlægges også at hæve præcisionen ved brug af compute shaders efter stabiliseringen af det nye API WebGPU.
Virksomhederne Intel, ARM, Google, Khronos, Mozilla og Brave blev informeret om problemet allerede i 2020, men detaljerne om metoden blev først offentliggjort nu. Forskerne offentliggjorde også funktionelle eksempler skrevet i JavaScript og GLSL, som kan arbejde med og uden skærmudgang. Derudover er der offentliggjort datasæt til klassificering af udvundet information i maskinlæringssystemer for systemer baseret på Intel GPU GEN 3/4/8/10.
Kilde: opennet.ru
