Metodo di identificazione del sistema utente basato sulle informazioni della GPU

I ricercatori dell'Università Ben-Gurion (Israele), dell'Università di Lille (Francia) e dell'Università di Adelaide (Australia) hanno sviluppato una nuova tecnica per identificare i dispositivi degli utenti rilevando i parametri operativi della GPU in un browser web. Il metodo si chiama "Drawn Apart" e si basa sull'utilizzo di WebGL per ottenere un profilo prestazionale della GPU, che può migliorare significativamente la precisione dei metodi di tracciamento passivo che funzionano senza l'uso di Cookie e senza memorizzare un identificatore nel sistema dell'utente.

In precedenza venivano utilizzati metodi che tengono conto delle caratteristiche di rendering, GPU, stack grafico e driver durante l'identificazione, ma erano limitati alla possibilità di separare i dispositivi solo a livello di diversi modelli di schede video e GPU, ad es. potrebbe essere utilizzato solo come fattore aggiuntivo per aumentare la probabilità di identificazione. La caratteristica fondamentale del nuovo metodo "Drawn Apart" è che non si limita a separare diversi modelli di GPU, ma cerca di identificare le differenze tra GPU identiche dello stesso modello dovute all'eterogeneità del processo produttivo di chip progettati per applicazioni massivamente parallele. informatica. Si osserva che le variazioni che si verificano durante il processo di produzione consentono di formare impronte non ripetibili per gli stessi modelli di dispositivi.

Metodo di identificazione del sistema utente basato sulle informazioni della GPU

Si è scoperto che queste differenze possono essere identificate contando il numero di unità di esecuzione e analizzando le loro prestazioni nella GPU. Controlli basati su una serie di funzioni trigonometriche, operazioni logiche e calcoli in virgola mobile sono stati utilizzati come primitive per identificare diversi modelli di GPU. Per identificare le differenze nelle stesse GPU, è stato valutato il numero di thread eseguiti contemporaneamente durante l'esecuzione dei vertex shader. Si presume che l'effetto rilevato sia causato dalle differenze nelle condizioni di temperatura e nel consumo energetico di diverse istanze di chip (in precedenza, un effetto simile era stato dimostrato per le CPU: processori identici mostravano un consumo energetico diverso durante l'esecuzione dello stesso codice).

Poiché le operazioni tramite WebGL vengono eseguite in modo asincrono, l'API JavaScript performance.now() non può essere utilizzata direttamente per misurare il tempo di esecuzione, quindi sono stati proposti tre trucchi per misurare il tempo:

  • sullo schermo: rendering della scena in una tela HTML, misurazione del tempo di risposta della funzione di callback, impostata tramite l'API Window.requestAnimationFrame e richiamata dopo il completamento del rendering.
  • offscreen: utilizzando un lavoratore e rendendo la scena in un oggetto OffscreenCanvas, misurando il tempo di esecuzione del comando convertToBlob.
  • GPU: disegna su un oggetto OffscreenCanvas, ma utilizza un timer fornito da WebGL per misurare il tempo che tiene conto della durata di un set di comandi sul lato GPU.

Durante il processo di creazione dell'ID, vengono eseguiti 50 test su ciascun dispositivo, ciascuno dei quali copre 176 misurazioni di 16 diverse caratteristiche. Un esperimento che ha raccolto informazioni su 2500 dispositivi con 1605 GPU diverse ha mostrato un aumento del 67% nell'efficienza dei metodi di identificazione combinati aggiungendo il supporto Drawn Apart. In particolare, il metodo combinato FP-STALKER ha fornito l’identificazione in media entro 17.5 giorni, mentre se combinato con Drawn Apart, la durata dell’identificazione è aumentata a 28 giorni.

Metodo di identificazione del sistema utente basato sulle informazioni della GPU

  • La precisione di separazione di 10 sistemi con chip Intel i5-3470 (GEN 3 Ivy Bridge) e GPU Intel HD Graphics 2500 nel test su schermo è stata del 93% e nel test offscreen è stata del 36.3%.
  • Per 10 sistemi Intel i5-10500 (Comet Lake GEN 10) con una scheda video NVIDIA GTX1650, la precisione era del 70% e del 95.8%.
  • Per 15 sistemi Intel i5-8500 (GEN 8 Coffee Lake) con GPU Intel UHD Graphics 630: 42% e 55%.
  • Per 23 sistemi Intel i5-4590 (GEN 4 Haswell) con GPU Intel HD Graphics 4600: 32.7% e 63.7%.
  • Per sei smartphone Samsung Galaxy S20/S20 Ultra con GPU Mali-G77 MP11, la precisione di identificazione nel test su schermo è stata del 92.7%, mentre per gli smartphone Samsung Galaxy S9/S9+ con Mali-G72 MP18 è stata del 54.3%.

Metodo di identificazione del sistema utente basato sulle informazioni della GPU

Si noti che la precisione è stata influenzata dalla temperatura della GPU e, per alcuni dispositivi, il riavvio del sistema ha portato ad una distorsione dell'identificatore. Quando si utilizza il metodo in combinazione con altri metodi di identificazione indiretta, la precisione può essere notevolmente aumentata. Prevedono inoltre di aumentare la precisione attraverso l'uso di shader di calcolo dopo la stabilizzazione della nuova API WebGPU.

Intel, ARM, Google, Khronos, Mozilla e Brave sono stati informati del problema nel 2020, ma i dettagli del metodo vengono rivelati solo ora. I ricercatori hanno anche pubblicato esempi funzionanti scritti in JavaScript e GLSL che possono funzionare con e senza visualizzare le informazioni sullo schermo. Inoltre, per i sistemi basati su GPU Intel GEN 3/4/8/10, sono stati pubblicati set di dati per classificare le informazioni estratte nei sistemi di machine learning.

Fonte: opennet.ru

Aggiungi un commento