Fingerprinting via WebGPU: a próxima geração depois do Canvas e do WebGL
O WebGPU expõe capacidades de hardware mais profundas que Canvas e WebGL juntos — já disponível no Chrome, Edge e Firefox. O que ele revela e por que substituirá as técnicas mais antigas de fingerprinting nos próximos 2–3 anos.
O WebGPU chegou no Chrome 113 em 2023. Em 2026, está disponível em todos os principais navegadores em todas as principais plataformas. Diferentemente do WebGL — que era uma API de navegador encapsulando o OpenGL ES 2.0 —, o WebGPU é uma interface direta para as APIs de GPU modernas: Vulkan no Linux, Metal no macOS, DirectX 12 no Windows.
Isso muda o que um navegador consegue consultar sobre o hardware subjacente. O fingerprinting de Canvas e WebGL dependia de saídas de renderização. O WebGPU permite consultas diretas de capacidade à própria GPU, expondo detalhes arquiteturais que a saída de renderização só consegue insinuar.
Para o fingerprinting, isso é um salto de qualidade no sinal.
O que o WebGPU expõe que o WebGL não expõe
A superfície de diagnóstico do WebGL é limitada. A peça mais útil é a extensão WEBGL_debug_renderer_info, que retorna strings de fabricante e renderer — frequentemente falsificadas por navegadores anti-detecção ou removidas por recursos de privacidade.
O WebGPU fornece os objetos GPUAdapter e GPUAdapterInfo com dados substancialmente mais ricos:
- Vendor — o identificador do fabricante da GPU (NVIDIA, AMD, Intel, Apple, Qualcomm).
- Architecture — a família de arquitetura da GPU (Ampere, RDNA 2, Xe-LP, Apple M2, Adreno).
- Device — o modelo específico, quando disponível.
- Description — uma string legível por humanos.
Além da identificação, o WebGPU expõe os limites da GPU — as capacidades numéricas exatas do hardware. Eles são consultáveis pela interface GPUSupportedLimits e incluem mais de 30 propriedades numéricas:
- Dimensões máximas de textura —
maxTextureDimension2D - Tamanho máximo de buffer —
maxBufferSize - Máximo de bind groups —
maxBindGroups - Dimensões máximas de workgroup de computação
- Máximo de atributos de vértice
- Requisitos de alinhamento de storage buffer
Cada um desses valores é definido pelo driver da GPU com base na capacidade do hardware. Gerações diferentes de GPU, mesmo dentro do mesmo fabricante, têm combinações de limites diferentes. Uma GPU de 2019 tem limites diferentes de uma GPU de 2023 da mesma família do mesmo fabricante.
Por que isso é mais difícil de falsificar
Navegadores anti-detecção falsificam Canvas e WebGL interceptando as chamadas de API e modificando os resultados. Os retornos do Canvas são hashes de pixels renderizados — o navegador pode renderizar e depois trocar o hash. O WebGL é consultado por um pequeno número de strings que podem ser substituídas em bloco.
O WebGPU é diferente. A superfície da API é grande — centenas de métodos e propriedades. Cada chamada precisa de um valor de retorno plausível. Uma camada de falsificação precisa:
- Apresentar uma identidade consistente em todos os limites numéricos — uma GPU que alega ser uma NVIDIA RTX 4090 precisa retornar cada valor de limite que corresponda a esse hardware.
- Lidar com a execução real de computação. O WebGPU permite rodar shaders de computação. Se uma camada de falsificação alega alto desempenho, mas entrega computação lenta, a divergência é detectável via temporização.
- Acompanhar a evolução entre atualizações de driver. Cada versão de driver de GPU tem limites ligeiramente diferentes. Tabelas estáticas de falsificação ficam desatualizadas conforme novas versões de driver são lançadas.
O hardware real fornece tudo isso de graça. Falsificar hardware exige manter um banco de dados de combinações verdadeiras de limites por modelo de GPU por versão de driver — um fardo de manutenção contínuo que a maioria dos navegadores anti-detecção ainda não assumiu.
Desempenho de computação como fingerprint
O WebGPU permite rodar shaders de computação arbitrários no navegador. Isso significa que os sistemas de detecção podem executar cargas de trabalho padronizadas e medir quanto tempo elas levam.
Um benchmark de quebra de hash, uma multiplicação de matrizes ou uma tarefa de computação próxima da renderização rodam, todos, em velocidades determinadas pelo hardware subjacente. Dois visitantes que alegam ter o mesmo modelo de GPU, mas entregam desempenhos de computação diferentes, estão mentindo sobre o hardware.
A técnica dispensa por completo a falsificação estática de fingerprint. Um visitante pode alegar qualquer string de GPU que quiser. Ele não pode alegar um desempenho de computação que não tem.
O custo é a experiência do usuário. Rodar um shader de computação em segundo plano consome ciclos de GPU e pode ser percebido como lentidão. Isso limita o quão agressivamente a técnica pode ser usada — normalmente como uma checagem única em sessões suspeitas, em vez de monitoramento contínuo.
Disponibilidade de recursos como sinal
O WebGPU expõe recursos opcionais por meio de GPUAdapter.features. Algumas GPUs suportam extensões específicas:
timestamp-query— exige GPU moderna com contadores de desempenhoshader-f16— ponto flutuante de meia precisão, comum em GPUs móveistexture-compression-bc— Block Compression, padrão em desktoptexture-compression-etc2— formato de textura móveltexture-compression-astc— formato de textura móvel
O conjunto de recursos é determinístico por modelo de GPU. Uma máquina Windows que alega ter recursos móveis Adreno é flagrada. Um dispositivo móvel que alega formatos de compressão exclusivos de desktop é flagrado.
Coerência com o WebGL
Antes do WebGPU, os navegadores tinham uma superfície primária de consulta à GPU: o WebGL. Agora têm duas, e elas precisam concordar.
WebGL e WebGPU expõem a mesma GPU subjacente. Suas respostas precisam ser consistentes. Um navegador que reporta NVIDIA RTX 4080 pelo WebGL, mas retorna limites de WebGPU compatíveis com uma GPU Intel integrada, é impossível em hardware real.
A consistência entre APIs é mais um sinal para a detecção. Falsificar uma API é simples. Falsificar duas APIs de forma mutuamente consistente é significativamente mais difícil — e os navegadores anti-detecção atuais, em grande medida, não fazem isso.
O que o WebGPU expõe sobre o SO e o driver
Além da identificação da GPU, o WebGPU expõe contexto sobre a pilha gráfica:
- No Windows, o WebGPU pode revelar se está sendo usado Direct3D 11 ou Direct3D 12, o que se correlaciona com a versão do SO e a era do driver.
- No macOS, o suporte à versão do Metal revela a versão do macOS — porque as versões do Metal chegam junto com as atualizações do SO.
- No Linux, os níveis de suporte a Vulkan expõem a distribuição e a origem do driver (NVIDIA proprietário vs. Mesa de código aberto, por exemplo).
Nenhum desses sinais é direto — cada um exige interpretação. Mas, tomados em conjunto, eles constroem um quadro da pilha de software subjacente que se correlaciona com o fingerprint de navegador reportado. Divergências indicam falsificação.
Cronograma de adoção nos stacks de detecção
O fingerprinting via WebGPU ainda não é uma técnica de detecção mainstream em 2026, por três razões:
- O suporte dos navegadores ainda está se estabilizando. O WebGPU do Firefox chegou em 2024, mas com cobertura limitada de recursos. O WebGPU do Safari chegou em 2024, mas com limites diferentes dos do Chrome. Os sistemas de detecção precisam de cobertura ampla antes de poder confiar nos sinais de WebGPU.
- O suporte a WebGPU entre usuários reais ainda é incompleto. Dispositivos mais antigos não têm GPUs que suportem os recursos do WebGPU. Um sistema de detecção que penaliza visitantes sem WebGPU corre o risco de bloquear usuários legítimos em hardware de 5 anos atrás.
- Os navegadores anti-detecção ainda não construíram uma falsificação completa de WebGPU, o que significa que os sinais baseados em WebGPU são atualmente eficazes contra atacantes sofisticados que presumem já ter escondido seus rastros. Isso vai mudar à medida que a adoção da detecção aumentar e as ferramentas de falsificação responderem.
O horizonte de adoção de 2–3 anos é realista. Em 2027–2028, os sinais de WebGPU serão tão centrais para a detecção de bots quanto o WebGL é hoje. A pergunta para as equipes de detecção é quando começar a coletar dados de WebGPU — e a resposta é agora, para que a linha de base histórica exista quando os sinais se tornarem primários.
O que isso significa para os defensores
O fingerprinting de canvas é uma técnica madura. O fingerprinting de WebGL é uma técnica madura. Ambas estão sendo ativamente falsificadas por ferramentas anti-detecção com sucesso razoável.
O fingerprinting via WebGPU é uma técnica jovem. As ferramentas de falsificação não alcançaram. Isso cria uma janela — provavelmente de 18–36 meses — em que os sinais de WebGPU separam de forma limpa usuários reais de bots sofisticados. Vale a pena investir nessa janela.
Os sinais que ele produz também são estruturalmente mais difíceis de falsificar do que os de Canvas ou WebGL. A renderização pode ser interceptada. O desempenho de computação, não. É possível mentir sobre conjuntos de recursos, mas não de forma consistente em toda a superfície da API. Cada geração de técnica de fingerprinting eleva o custo da falsificação. O WebGPU o eleva substancialmente.
Para plataformas que levam a sério a detecção de bots em 2026 e além, o WebGPU é para onde o sinal está se movendo.