L'empreinte WebGPU : la génération qui succède à Canvas et WebGL
WebGPU expose des capacités matérielles plus profondes que Canvas et WebGL réunis — déjà disponible dans Chrome, Edge et Firefox. Ce qu'il révèle, et pourquoi il remplacera les techniques d'empreinte plus anciennes d'ici 2 à 3 ans.
WebGPU est arrivé dans Chrome 113 en 2023. En 2026, il est disponible dans tous les grands navigateurs sur toutes les grandes plateformes. Contrairement à WebGL — qui était une API navigateur enveloppant OpenGL ES 2.0 — WebGPU est une interface directe vers les API GPU modernes : Vulkan sous Linux, Metal sous macOS, DirectX 12 sous Windows.
Cela change ce qu'un navigateur peut interroger sur le matériel sous-jacent. L'empreinte Canvas et l'empreinte WebGL reposaient sur des sorties de rendu. WebGPU permet des requêtes directes de capacités auprès du GPU lui-même, exposant des détails architecturaux que la sortie de rendu ne peut que suggérer.
Pour l'empreinte numérique, c'est un saut qualitatif dans la qualité du signal.
Ce que WebGPU expose que WebGL n'expose pas
La surface de diagnostic de WebGL est limitée. L'élément le plus utile est l'extension WEBGL_debug_renderer_info, qui renvoie les chaînes du fournisseur et du moteur de rendu — souvent usurpées par les navigateurs anti-détection ou retirées par les fonctionnalités de confidentialité.
WebGPU fournit des objets GPUAdapter et GPUAdapterInfo avec des données substantiellement plus riches :
- Vendor — l'identifiant du fabricant du GPU (NVIDIA, AMD, Intel, Apple, Qualcomm).
- Architecture — la famille d'architecture du GPU (Ampere, RDNA 2, Xe-LP, Apple M2, Adreno).
- Device — le modèle précis lorsqu'il est disponible.
- Description — une chaîne lisible par un humain.
Au-delà de l'identification, WebGPU expose les limites du GPU — les capacités numériques exactes du matériel. Elles sont interrogeables via l'interface GPUSupportedLimits et comprennent plus de 30 propriétés numériques :
- Dimensions maximales de texture —
maxTextureDimension2D - Taille maximale de buffer —
maxBufferSize - Nombre maximal de bind groups —
maxBindGroups - Dimensions maximales des workgroups de calcul
- Nombre maximal d'attributs de vertex
- Exigences d'alignement des storage buffers
Chacune de ces valeurs est fixée par le pilote GPU en fonction des capacités du matériel. Différentes générations de GPU, même au sein d'un même fournisseur, ont des combinaisons de limites différentes. Un GPU de 2019 a des limites différentes de celles d'un GPU de 2023 de la même famille de fournisseur.
Pourquoi c'est plus difficile à usurper
Les navigateurs anti-détection usurpent Canvas et WebGL en interceptant les appels d'API et en modifiant les résultats. Les retours de Canvas sont des hachages de pixels rendus — le navigateur peut rendre, puis substituer le hachage. WebGL est interrogé pour un petit nombre de chaînes qui peuvent être remplacées en bloc.
WebGPU est différent. La surface d'API est vaste — des centaines de méthodes et de propriétés. Chaque appel a besoin d'une valeur de retour plausible. Une couche d'usurpation doit :
- Présenter une identité cohérente sur toutes les limites numériques — un GPU prétendant être une NVIDIA RTX 4090 doit renvoyer chaque valeur de limite correspondant à ce matériel.
- Gérer l'exécution réelle de calculs. WebGPU permet d'exécuter des compute shaders. Si une couche d'usurpation revendique de hautes performances mais délivre un calcul lent, le décalage est détectable par le timing.
- Suivre l'évolution au fil des mises à jour de pilotes. Chaque version de pilote GPU a des limites légèrement différentes. Les tables d'usurpation statiques deviennent obsolètes à mesure que sortent de nouvelles versions de pilotes.
Le vrai matériel fournit tout cela gratuitement. Usurper du matériel exige de maintenir une base de données des vraies combinaisons de limites par modèle de GPU et par version de pilote — une charge de maintenance permanente que la plupart des navigateurs anti-détection n'ont pas encore assumée.
La performance de calcul comme empreinte
WebGPU permet d'exécuter des compute shaders arbitraires dans le navigateur. Cela signifie que les systèmes de détection peuvent exécuter des charges de travail standardisées et mesurer leur durée.
Un benchmark de cassage de hachages, une multiplication de matrices ou une tâche de calcul proche du rendu s'exécutent tous à des vitesses déterminées par le matériel sous-jacent. Deux visiteurs prétendant avoir le même modèle de GPU mais délivrant des performances de calcul différentes mentent sur leur matériel.
La technique contourne entièrement l'usurpation d'empreinte statique. Un visiteur peut revendiquer n'importe quelle chaîne GPU. Il ne peut pas revendiquer une performance de calcul qu'il n'a pas.
Le compromis, c'est l'expérience utilisateur. Exécuter un compute shader en arrière-plan consomme des cycles GPU et peut être perçu comme de la lenteur. Cela limite l'agressivité avec laquelle la technique peut être employée — typiquement comme une vérification ponctuelle sur les sessions suspectes plutôt qu'une surveillance continue.
La disponibilité des fonctionnalités comme signal
WebGPU expose des fonctionnalités optionnelles via GPUAdapter.features. Certains GPU prennent en charge des extensions spécifiques :
timestamp-query— exige un GPU moderne doté de compteurs de performanceshader-f16— virgule flottante en demi-précision, courante sur les GPU mobilestexture-compression-bc— Block Compression, standard sur desktoptexture-compression-etc2— format de texture mobiletexture-compression-astc— format de texture mobile
L'ensemble de fonctionnalités est déterministe par modèle de GPU. Une machine Windows prétendant disposer de fonctionnalités mobiles Adreno est attrapée. Un appareil mobile revendiquant des formats de compression réservés au desktop est attrapé.
La cohérence avec WebGL
Avant WebGPU, les navigateurs avaient une surface principale d'interrogation du GPU : WebGL. Ils en ont désormais deux, et elles doivent concorder.
WebGL et WebGPU exposent le même GPU sous-jacent. Leurs réponses doivent être cohérentes. Un navigateur rapportant NVIDIA RTX 4080 via WebGL mais renvoyant des limites WebGPU correspondant à un GPU Intel intégré est impossible sur du vrai matériel.
La cohérence inter-API est un signal supplémentaire pour la détection. Usurper une API est simple. Usurper deux API de manière mutuellement cohérente est significativement plus difficile — et les navigateurs anti-détection actuels ne le font largement pas.
Ce que WebGPU expose sur l'OS et le pilote
Au-delà de l'identification du GPU, WebGPU expose du contexte sur la pile graphique :
- Sous Windows, WebGPU peut révéler si Direct3D 11 ou Direct3D 12 est utilisé, ce qui est corrélé à la version de l'OS et à l'ère du pilote.
- Sous macOS, la prise en charge des versions de Metal révèle la version de macOS — parce que les versions de Metal sont livrées avec les mises à jour de l'OS.
- Sous Linux, les niveaux de prise en charge de Vulkan exposent la distribution et l'origine du pilote (NVIDIA propriétaire vs Mesa open source, par exemple).
Aucun de ces signaux n'est direct — chacun exige une interprétation. Mais pris ensemble, ils dressent un tableau de la pile logicielle sous-jacente qui doit être corrélé à l'empreinte de navigateur déclarée. Les décalages indiquent une usurpation.
Calendrier d'adoption dans les piles de détection
L'empreinte WebGPU n'est pas encore une technique de détection grand public en 2026, pour trois raisons :
- La prise en charge par les navigateurs se stabilise encore. Le WebGPU de Firefox est sorti en 2024, mais avec une couverture de fonctionnalités limitée. Le WebGPU de Safari est sorti en 2024 mais avec des limites différentes de celles de Chrome. Les systèmes de détection ont besoin d'une couverture large avant de pouvoir s'appuyer sur les signaux WebGPU.
- La prise en charge de WebGPU chez les vrais utilisateurs est encore incomplète. Les appareils plus anciens n'ont pas de GPU prenant en charge les fonctionnalités WebGPU. Un système de détection qui pénalise les visiteurs sans WebGPU risque de bloquer des utilisateurs légitimes sur du matériel vieux de 5 ans.
- Les navigateurs anti-détection n'ont pas encore construit une usurpation WebGPU complète, ce qui signifie que les signaux basés sur WebGPU sont actuellement efficaces contre les attaquants sophistiqués qui pensent avoir masqué leurs traces. Cela changera à mesure que l'adoption de la détection augmentera et que les outils d'usurpation réagiront.
L'horizon d'adoption de 2 à 3 ans est réaliste. D'ici 2027–2028, les signaux WebGPU seront aussi centraux pour la détection de bots que WebGL l'est aujourd'hui. La question pour les équipes de détection est de savoir quand commencer à collecter les données WebGPU — la réponse est maintenant, pour que la base de référence historique existe lorsque ces signaux deviendront primaires.
Ce que cela signifie pour les défenseurs
L'empreinte Canvas est une technique mature. L'empreinte WebGL est une technique mature. Toutes deux sont activement usurpées par l'outillage anti-détection avec un succès raisonnable.
L'empreinte WebGPU est une technique jeune. Les outils d'usurpation n'ont pas rattrapé leur retard. Cela crée une fenêtre — probablement 18 à 36 mois — pendant laquelle les signaux WebGPU séparent proprement les vrais utilisateurs des bots sophistiqués. Cette fenêtre vaut l'investissement.
Les signaux qu'elle produit sont aussi structurellement plus difficiles à usurper que Canvas ou WebGL. Le rendu peut être intercepté. La performance de calcul, non. On peut mentir sur les ensembles de fonctionnalités, mais pas de manière cohérente sur toute la surface d'API. Chaque génération de technique d'empreinte élève le coût de l'usurpation. WebGPU l'élève substantiellement.
Pour les plateformes sérieuses sur la détection de bots en 2026 et au-delà, WebGPU est là où le signal se déplace.