O que é WebGL Vendor Fingerprinting? Como Sua Marca de GPU Identifica Você
Navegador & Dispositivo

O que é WebGL Vendor Fingerprinting? Como Sua Marca de GPU Identifica Você

O WebGL vendor fingerprinting usa WEBGL_debug_renderer_info para extrair o nome exato do fornecedor e renderer da sua GPU — expondo diretamente seu modelo de GPU para qualquer script de rastreamento.

8 min de leitura·

O WebGL vendor fingerprinting (impressão digital por fornecedor WebGL) lê o fabricante e o nome exato do modelo da sua GPU a partir da API de gráficos 3D do navegador para construir um identificador persistente de dispositivo — sem armazenar nada na sua máquina. Você pode verificar o que seu navegador expõe agora mesmo no whatsmy.fyi.

Resumo

O WebGL vendor fingerprinting usa uma extensão do navegador chamada WEBGL_debug_renderer_info para ler duas strings que o driver da sua GPU expõe: o nome do fornecedor (por exemplo, NVIDIA Corporation) e a string do renderer (por exemplo, ANGLE (NVIDIA GeForce RTX 3050 Direct3D11 vs_5_0 ps_5_0)). Essas strings são específicas o suficiente para identificar seu modelo de GPU, backend de driver e às vezes até a versão do driver — informações que raramente mudam e não podem ser limpas como um cookie.

O que é WebGL Vendor Fingerprinting?

O WebGL vendor fingerprinting é uma técnica de rastreamento do navegador que explora a extensão WEBGL_debug_renderer_info — um recurso de depuração integrado na especificação WebGL — para extrair informações detalhadas sobre seu hardware gráfico. Ao contrário do canvas fingerprinting, que infere diferenças de GPU a partir de variações de renderização no nível de pixel, o WebGL vendor fingerprinting pergunta diretamente ao driver: "Quem te fabricou e como você se chama?"

O resultado é um par de strings — UNMASKED_VENDOR_WEBGL e UNMASKED_RENDERER_WEBGL — que identificam o fabricante da sua GPU, nome do modelo, backend gráfico (Direct3D, Metal, Vulkan ou OpenGL) e frequentemente a versão do driver. Juntos, esses dois valores carregam 10–15 bits de entropia, tornando-os um dos atributos individuais de maior sinal no conjunto de ferramentas de browser fingerprinting.

A técnica foi originalmente destinada a desenvolvedores depurando problemas de desempenho gráfico. Nunca foi projetada como uma superfície de rastreamento — mas como expõe identificadores no nível de hardware que são estáveis entre sessões do navegador, janelas privadas e até reinstalações do SO, tornou-se um dos sinais de fingerprinting mais amplamente implantados na web.

Como Funciona o WebGL Vendor Fingerprinting?

O processo de extração requer apenas algumas linhas de JavaScript e é concluído em menos de um milissegundo.

Etapa 1 — Solicitar a Extensão de Depuração

O script chama gl.getExtension("WEBGL_debug_renderer_info") em um contexto WebGL. A maioria dos navegadores expõe essa extensão por padrão; navegadores com proteções de privacidade podem retornar null ou uma string genérica.

Etapa 2 — Ler as Strings de Fornecedor e Renderer

Com a extensão disponível, o script chama gl.getParameter() duas vezes — uma para ext.UNMASKED_VENDOR_WEBGL (por exemplo, Google Inc. (NVIDIA)) e uma para ext.UNMASKED_RENDERER_WEBGL. Essas são strings brutas do driver — não valores que o navegador ou SO sanitiza antes de retornar.

Etapa 3 — Combinar com Outros Sinais

A string do renderer é hasheada e combinada com extensões WebGL suportadas, tamanho máximo de textura, precisão do shader e outros parâmetros WebGL para produzir uma impressão digital composta de GPU.

// WebGL vendor fingerprinting — how tracking scripts extract GPU identity
function getWebGLVendorFingerprint() {
  const canvas = document.createElement('canvas');
  const gl =
    canvas.getContext('webgl') ||
    canvas.getContext('experimental-webgl');

  if (!gl) return { vendor: 'unsupported', renderer: 'unsupported' };

  // Request the debug extension that exposes unmasked driver strings
  const ext = gl.getExtension('WEBGL_debug_renderer_info');

  if (!ext) {
    // Browser is protecting you (Brave / Firefox resistFingerprinting)
    return { vendor: 'protected', renderer: 'protected' };
  }

  // These strings directly identify your GPU brand and model
  const vendor   = gl.getParameter(ext.UNMASKED_VENDOR_WEBGL);
  const renderer = gl.getParameter(ext.UNMASKED_RENDERER_WEBGL);

  // Example output:
  // vendor:   "Google Inc. (NVIDIA)"
  // renderer: "ANGLE (NVIDIA, NVIDIA GeForce RTX 3050 Laptop GPU
  //            (0x000025A2) Direct3D11 vs_5_0 ps_5_0, D3D11)"

  return { vendor, renderer };
}

Como São as Strings de Renderer no Mundo Real?

Fornecedor GPUExemplo de String RENDERER
NVIDIA (Windows)ANGLE (NVIDIA, NVIDIA GeForce RTX 3050 Laptop GPU (0x000025A2) Direct3D11 vs_5_0 ps_5_0, D3D11)
AMD (Windows)ANGLE (AMD, AMD Radeon RX 6600 Direct3D11 vs_5_0 ps_5_0, D3D11)
Intel (Linux / Mesa)ANGLE (Intel, Vulkan 1.3.267 (Intel(R) UHD Graphics (TGL GT2) (0x00009A78)), Intel open-source Mesa driver)
Apple SiliconANGLE (Apple, ANGLE Metal Renderer: Apple M2 Max, Unspecified Version)

Quão Única é uma Impressão Digital de Fornecedor WebGL?

DescobertaValorFonte
Contribuição de entropia da string do renderer de GPU10–15 bitsEFF Cover Your Tracks
Participação dos 10.000 principais sites usando WebGL fingerprinting>8%Princeton Web Transparency & Accountability Project, 2020
Estabilidade do GPU fingerprinting entre reinicializações do navegadorPermanente até mudança de hardwareEstudo DrawNApart GPU fingerprinting (arXiv 2022)
Sinais rastreados por fornecedores modernos de anti-fraude100+Fingerprint.com

Quem Usa WebGL Vendor Fingerprinting no Mundo Real?

Plataformas de Detecção de Fraudes

Empresas de segurança como a Fingerprint (anteriormente FingerprintJS) usam a string do renderer WebGL como sinal central de identidade do dispositivo. Quando uma tentativa de login chega de um dispositivo cuja impressão digital de GPU não corresponde a nenhuma sessão anterior dessa conta, ela aciona uma escalada de risco.

Ad-Tech e Rastreamento Entre Sites

Redes de publicidade combinam a string do renderer WebGL com saída do canvas, impressão digital de áudio, dimensões de tela e timezone para construir um identificador de dispositivo entre sites que sobrevive à exclusão de cookies.

Detecção de Bots e Automação

Bots automatizados rodando em ambientes headless ou containerizados retornam valores de renderer anômalos — frequentemente Google SwiftShader (renderer de software fallback do Chrome) ou Mesa OffScreen. Um dispositivo humano real quase nunca retorna esses valores na navegação normal.

Aplicação de Paywall

Editoras que medem o acesso a artigos usam a string do renderer de GPU junto com impressões digitais de canvas e áudio para identificar visitantes que retornam limpando cookies para redefinir seu contador de artigos.

O WebGL Vendor Fingerprinting é Legal?

Sob o GDPR, qualquer identificador persistente que possa razoavelmente ser vinculado a um indivíduo — incluindo uma string de renderer de GPU usada para re-identificação — constitui processamento de dados pessoais. A CNIL francesa listou explicitamente o browser fingerprinting como uma técnica que requer consentimento informado. Sob CCPA e CPRA dos EUA, dados de fingerprinting são classificados como informações pessoais sujeitas a direitos de exclusão.

Como se Proteger do WebGL Vendor Fingerprinting

  • Brave Browser (recomendado para uso diário): O sistema Farbling integrado do Brave randomiza as strings do renderer e do fornecedor WebGL por sessão e por site. Cada site recebe uma descrição de GPU ligeiramente diferente, tornando o rastreamento entre sites por string de renderer não confiável. Nenhuma configuração é necessária.
  • Firefox com privacy.resistFingerprinting: Definir esta flag como true no about:config faz o Firefox retornar uma string de renderer genérica e não identificadora em vez dos dados reais da GPU. O Tor Browser a ativa por padrão.
  • Firefox webgl.enable-debug-renderer-info: false: Uma opção mais direcionada no about:config que desabilita apenas a extensão de depuração — o restante do WebGL continua funcionando normalmente.
  • Extensão WebGL Fingerprint Defender: Disponível para Chrome e Firefox, intercepta chamadas da extensão WEBGL_debug_renderer_info e retorna uma string de renderer randomizada ou falsificada.
  • Tor Browser (proteção mais forte): O Tor normaliza toda a saída WebGL para que cada usuário retorne dados de renderer idênticos, eliminando completamente a identificação baseada em GPU.

Observe que uma VPN não tem nenhum efeito no WebGL fingerprinting. A string do renderer de GPU é lida das APIs locais do navegador, não da sua conexão de rede. Verifique se sua VPN está realmente ocultando seu endereço IP no whatsmy.fyi.

Perguntas Frequentes

Qual é a diferença entre vendor e renderer no WebGL fingerprinting?

Eles são dois aspectos da mesma técnica. A string de fornecedor (UNMASKED_VENDOR_WEBGL) identifica o fabricante da GPU — tipicamente NVIDIA, AMD, Intel, Apple ou uma camada de tradução como Google (ANGLE). A string de renderer (UNMASKED_RENDERER_WEBGL) identifica o modelo específico da GPU, o backend gráfico e frequentemente a versão do driver. Ambas são lidas na mesma chamada de API.

O modo de navegação privada oculta minha string de renderer WebGL?

Não. O modo incógnito e privado impede que seu navegador salve histórico e cookies, mas não muda o hardware em que seu navegador é executado. A string de renderer da sua GPU é idêntica no modo privado e em uma janela normal.

Como o WebGL vendor fingerprinting difere do canvas fingerprinting?

O canvas fingerprinting infere diferenças de GPU indiretamente — desenha uma imagem e analisa variações de renderização no nível de pixel causadas pelo seu hardware. O WebGL vendor fingerprinting consulta o driver da GPU diretamente, lendo strings explícitas de fabricante e modelo. Eles são tipicamente implantados juntos porque capturam dimensões complementares da unicidade do dispositivo. Veja o guia de canvas fingerprinting para uma comparação detalhada.

Artigos Relacionados

Verifique seu endereço IP, localização e pontuação de privacidade — instantaneamente.

Zero logs. Zero rastreamento. Zero APIs externas.

Executar a verificação agora →

Artigos relacionados

O que é WebGL Vendor Fingerprinting? Como Sua Marca de GPU Identifica Você | whatsmy.fyi