Fingerprinting WebGPU: la generazione successiva dopo Canvas e WebGL
WebGPU espone capacità hardware più profonde di Canvas e WebGL messi insieme — ed è già disponibile in Chrome, Edge e Firefox. Cosa può rivelare, e perché sostituirà le tecniche di fingerprinting più datate nei prossimi 2–3 anni.
WebGPU è stato rilasciato in Chrome 113 nel 2023. Nel 2026 è disponibile in tutti i principali browser su tutte le principali piattaforme. A differenza di WebGL — che era un'API del browser che incapsulava OpenGL ES 2.0 — WebGPU è un'interfaccia diretta verso le API GPU moderne: Vulkan su Linux, Metal su macOS, DirectX 12 su Windows.
Questo cambia ciò che un browser può interrogare sull'hardware sottostante. Il fingerprinting con Canvas e WebGL si basava sugli output di rendering. WebGPU consente interrogazioni dirette delle capacità della GPU stessa, esponendo dettagli architetturali che l'output di rendering può solo lasciar intuire.
Per il fingerprinting, si tratta di un salto di qualità nella qualità del segnale.
Cosa espone WebGPU che WebGL non espone
La superficie diagnostica di WebGL è limitata. L'elemento più utile è l'estensione WEBGL_debug_renderer_info, che restituisce le stringhe del produttore e del renderer — spesso falsificate dai browser anti-rilevamento o rimosse dalle funzionalità per la privacy.
WebGPU fornisce gli oggetti GPUAdapter e GPUAdapterInfo con dati sostanzialmente più ricchi:
- Vendor — l'identificatore del produttore della GPU (NVIDIA, AMD, Intel, Apple, Qualcomm).
- Architecture — la famiglia architetturale della GPU (Ampere, RDNA 2, Xe-LP, Apple M2, Adreno).
- Device — il modello specifico, dove disponibile.
- Description — una stringa leggibile.
Oltre all'identificazione, WebGPU espone i limiti della GPU — le capacità numeriche esatte dell'hardware. Sono interrogabili tramite l'interfaccia GPUSupportedLimits e comprendono oltre 30 proprietà numeriche:
- Dimensioni massime delle texture —
maxTextureDimension2D - Dimensione massima dei buffer —
maxBufferSize - Numero massimo di bind group —
maxBindGroups - Dimensioni massime dei workgroup di calcolo
- Numero massimo di attributi dei vertici
- Requisiti di allineamento degli storage buffer
Ciascuno di questi valori è impostato dal driver della GPU in base alle capacità dell'hardware. Generazioni diverse di GPU, anche dello stesso produttore, hanno combinazioni di limiti diverse. Una GPU del 2019 ha limiti diversi da una GPU del 2023 della stessa famiglia di produttore.
Perché è più difficile da falsificare
I browser anti-rilevamento falsificano Canvas e WebGL intercettando le chiamate API e modificandone i risultati. I ritorni del canvas sono hash dei pixel renderizzati — il browser può renderizzare e poi sostituire l'hash. WebGL viene interrogato per un piccolo numero di stringhe che possono essere sostituite in blocco.
WebGPU è diverso. La superficie API è ampia — centinaia di metodi e proprietà. Ogni chiamata richiede un valore di ritorno plausibile. Un livello di spoofing deve:
- Presentare un'identità coerente attraverso tutti i limiti numerici — una GPU che dichiara di essere una NVIDIA RTX 4090 deve restituire ogni valore di limite corrispondente a quell'hardware.
- Gestire l'esecuzione effettiva di calcolo. WebGPU consente di eseguire compute shader. Se un livello di spoofing dichiara prestazioni elevate ma fornisce un calcolo lento, la discrepanza è rilevabile tramite la temporizzazione.
- Tracciare l'evoluzione attraverso gli aggiornamenti dei driver. Ogni versione del driver GPU ha limiti leggermente diversi. Le tabelle di spoofing statiche diventano obsolete man mano che escono nuove versioni dei driver.
L'hardware reale fornisce tutto questo gratuitamente. Falsificare l'hardware richiede il mantenimento di un database delle vere combinazioni di limiti per modello di GPU e per versione del driver — un onere di manutenzione continuo che la maggior parte dei browser anti-rilevamento non si è ancora assunta.
Le prestazioni di calcolo come fingerprint
WebGPU consente di eseguire compute shader arbitrari nel browser. Ciò significa che i sistemi di rilevamento possono eseguire carichi di lavoro standardizzati e misurare quanto tempo richiedono.
Un benchmark di hash-cracking, una moltiplicazione di matrici o un task di calcolo affine al rendering vengono tutti eseguiti a velocità determinate dall'hardware sottostante. Due visitatori che dichiarano di avere lo stesso modello di GPU ma forniscono prestazioni di calcolo diverse mentono sull'hardware.
La tecnica aggira completamente lo spoofing statico del fingerprint. Un visitatore può dichiarare qualsiasi stringa GPU voglia. Non può dichiarare prestazioni di calcolo che non possiede.
Il compromesso è l'esperienza utente. Eseguire un compute shader in background consuma cicli della GPU e può essere percepito come lentezza. Questo limita quanto aggressivamente la tecnica possa essere usata — tipicamente come verifica una tantum sulle sessioni sospette anziché come monitoraggio continuo.
La disponibilità delle funzionalità come segnale
WebGPU espone funzionalità opzionali tramite GPUAdapter.features. Alcune GPU supportano estensioni specifiche:
timestamp-query— richiede una GPU moderna con contatori di prestazionishader-f16— virgola mobile a mezza precisione, comune sulle GPU mobilitexture-compression-bc— Block Compression, standard su desktoptexture-compression-etc2— formato di texture mobiletexture-compression-astc— formato di texture mobile
Il set di funzionalità è deterministico per modello di GPU. Una macchina Windows che dichiara di avere funzionalità mobili Adreno viene intercettata. Un dispositivo mobile che dichiara formati di compressione esclusivi del desktop viene intercettato.
La coerenza con WebGL
Prima di WebGPU, i browser avevano una sola superficie primaria di interrogazione della GPU: WebGL. Ora ne hanno due, e devono concordare.
WebGL e WebGPU espongono la stessa GPU sottostante. Le loro risposte devono essere coerenti. Un browser che riporta NVIDIA RTX 4080 tramite WebGL ma restituisce limiti WebGPU corrispondenti a una GPU Intel integrata è impossibile su hardware reale.
La coerenza cross-API è un ulteriore segnale per il rilevamento. Falsificare una API è semplice. Falsificare due API in modo mutuamente coerente è significativamente più difficile — e gli attuali browser anti-rilevamento in gran parte non lo fanno.
Cosa rivela WebGPU sul sistema operativo e sul driver
Oltre all'identificazione della GPU, WebGPU espone il contesto dello stack grafico:
- Su Windows, WebGPU può rivelare se viene usato Direct3D 11 o Direct3D 12, il che si correla con la versione del sistema operativo e l'epoca del driver.
- Su macOS, il supporto delle versioni di Metal rivela la versione di macOS — perché le versioni di Metal vengono distribuite con gli aggiornamenti del sistema operativo.
- Su Linux, i livelli di supporto Vulkan espongono la distribuzione e l'origine del driver (NVIDIA proprietario contro Mesa open-source, per esempio).
Nessuno di questi segnali è diretto — ciascuno richiede interpretazione. Ma presi insieme, costruiscono un quadro dello stack software sottostante che si correla con il fingerprint del browser dichiarato. Le discrepanze indicano spoofing.
Tempistiche di adozione negli stack di rilevamento
Il fingerprinting WebGPU non è ancora una tecnica di rilevamento mainstream nel 2026, per tre ragioni:
- Il supporto dei browser si sta ancora stabilizzando. WebGPU su Firefox è arrivato nel 2024, ma con una copertura di funzionalità limitata. WebGPU su Safari è arrivato nel 2024 ma con limiti diversi da Chrome. I sistemi di rilevamento hanno bisogno di una copertura ampia prima di poter fare affidamento sui segnali WebGPU.
- Il supporto WebGPU tra gli utenti reali è ancora incompleto. I dispositivi più vecchi non hanno GPU che supportano le funzionalità WebGPU. Un sistema di rilevamento che penalizza i visitatori senza WebGPU rischia di bloccare utenti legittimi su hardware di 5 anni fa.
- I browser anti-rilevamento non hanno ancora sviluppato uno spoofing WebGPU completo, il che significa che i segnali basati su WebGPU sono attualmente efficaci contro gli aggressori sofisticati convinti di aver nascosto le proprie tracce. Questo cambierà man mano che l'adozione del rilevamento aumenterà e gli strumenti di spoofing risponderanno.
L'orizzonte di adozione di 2–3 anni è realistico. Entro il 2027–2028, i segnali WebGPU saranno centrali per il rilevamento dei bot quanto lo è WebGL oggi. La domanda per i team di rilevamento è quando iniziare a raccogliere i dati WebGPU — la risposta è adesso, così che la baseline storica esista quando i segnali diventeranno primari.
Cosa significa per i difensori
Il fingerprinting del canvas è una tecnica matura. Il fingerprinting WebGL è una tecnica matura. Entrambe vengono attivamente falsificate dagli strumenti anti-rilevamento con discreto successo.
Il fingerprinting WebGPU è una tecnica giovane. Gli strumenti di spoofing non si sono ancora adeguati. Questo crea una finestra — probabilmente di 18–36 mesi — in cui i segnali WebGPU separano nettamente gli utenti reali dai bot sofisticati. Quella finestra merita un investimento.
I segnali che produce sono anche strutturalmente più difficili da falsificare rispetto a Canvas o WebGL. Il rendering può essere intercettato. Le prestazioni di calcolo no. Sui set di funzionalità si può mentire, ma non in modo coerente attraverso l'intera superficie API. Ogni generazione di tecniche di fingerprinting alza il costo dello spoofing. WebGPU lo alza in modo sostanziale.
Per le piattaforme che prendono sul serio il rilevamento dei bot nel 2026 e oltre, WebGPU è la direzione verso cui si sta spostando il segnale.