Fingerprinting de Canvas e WebGL em 2026
O estado do fingerprinting baseado em GPU: o que mudou com o privacy sandbox do Chrome, como nos adaptamos e por que os sinais de hardware continuam sendo os identificadores mais estáveis.
Canvas
e
WebGL
o fingerprinting tem sido pilar da identificação de dispositivos desde o início dos anos 2010. Mas o cenário mudou significativamente com as iniciativas do
Privacy Sandbox
do Chrome, a Enhanced Tracking Protection do Firefox e a Intelligent Tracking Prevention do Safari. Este é o estado do fingerprinting baseado em GPU em 2026 — o que mudou, como nos adaptamos e por que esses sinais continuam indispensáveis.
O que mudou com o Privacy Sandbox do Chrome
O Privacy Sandbox do Chrome, implantado progressivamente a partir de 2024, introduziu várias mudanças que afetam o fingerprinting. A mais significativa é a iniciativa de armazenamento particionado, que reduz a eficácia do rastreamento baseado em cookies, mas não afeta diretamente o fingerprinting de canvas ou WebGL.
No entanto, o Chrome começou a experimentar a injeção de ruído no canvas — adicionando pequenas perturbações aleatórias aos dados de pixel do canvas para impedir o fingerprinting exato. Quando ativada, as mesmas instruções de desenho produzem saídas de pixel ligeiramente diferentes a cada execução. Isso quebra o fingerprinting ingênuo de canvas baseado em hash, que espera reprodutibilidade exata.
Adaptando-se ao ruído do canvas
Nossa resposta à injeção de ruído no canvas foi trocar o casamento exato pelo casamento baseado em similaridade para os sinais de canvas. Em vez de calcular um único hash de todos os dados de pixel do canvas, agora extraímos múltiplos vetores de features de diferentes regiões e operações de desenho.
A injeção de ruído costuma ser pequena — alguns pixels alterados por frame. Ao extrair features em uma granularidade mais grosseira (dividindo o canvas em regiões e calculando estatísticas agregadas), conseguimos identificar a assinatura de hardware subjacente apesar do ruído. Nosso algoritmo de casamento entre sessões compara esses vetores de features usando similaridade de cosseno, com um limiar ajustado para aceitar variações consistentes com o hardware e rejeitar dispositivos diferentes.
WebGL: ainda uma mina de ouro
Enquanto o fingerprinting de canvas enfrenta novos desafios, o fingerprinting de WebGL permanece praticamente intocado pelas iniciativas de privacidade. A API WebGL expõe parâmetros de hardware — tamanhos máximos de textura, formatos de precisão de shader, extensões suportadas — que são inerentes à GPU e não podem ser facilmente perturbados sem quebrar a funcionalidade do WebGL.
O Chrome já discutiu limitar o acesso às strings de renderer e vendor do WebGL (substituindo nomes específicos de GPU por rótulos genéricos como "GPU"), mas essa mudança não foi amplamente implantada. Mesmo que fosse, as dezenas de outros parâmetros de WebGL que consultamos ainda forneceriam sinais de identificação altamente distintivos.
A GPU como âncora de hardware
A razão fundamental pela qual o fingerprinting baseado em GPU continua poderoso é que ele lê características de hardware que são fisicamente determinadas pelo chip da GPU, pelo driver e pelo pipeline de renderização. Essas características não são escolhas de software que podem ser facilmente alteradas — são consequências de como o silício foi projetado e fabricado.
Um dispositivo com uma NVIDIA RTX 4070 sempre reportará tamanhos máximos de textura específicos, precisão de shader específica e suporte a extensões específico, porque esses valores são determinados pela arquitetura da GPU. A única forma de mudar esses valores é usar uma GPU diferente ou um driver diferente — e trocas de driver são relativamente infrequentes para a maioria dos usuários.
Renderização de canvas: além do hashing de pixel
O fingerprinting moderno de canvas vai além do simples hashing de pixel. Usamos operações de desenho projetadas especificamente para amplificar diferenças de renderização dependentes do hardware. A renderização de texto com fontes específicas exercita o rasterizador de fontes. Curvas de Bézier com pontos de controle específicos exercitam a tesselação de curvas da GPU. Gradientes com paradas de cor específicas exercitam o pipeline de mistura de cores.
Ao escolher operações de desenho que maximizam a variância entre modelos de GPU e minimizam a variância entre execuções repetidas na mesma GPU, criamos testes de canvas que são simultaneamente mais distintivos e mais robustos do que a abordagem simples de textos-e-formas usada pelas primeiras bibliotecas de fingerprinting.
Fingerprinting de shader WebGL
Uma técnica mais recente que empregamos é o fingerprinting de shader WebGL. Ao compilar programas de shader específicos e consultar suas propriedades compiladas (precisão, nível de otimização, contagem de instruções), conseguimos extrair informações sobre o compilador de shader da GPU — outra característica dependente de hardware que varia entre famílias de GPU.
Essa técnica é particularmente valiosa para distinguir dispositivos que têm parâmetros básicos de WebGL semelhantes. Dois modelos diferentes de GPU podem suportar o mesmo tamanho máximo de textura, mas seus compiladores de shader produzirão saídas compiladas diferentes para o mesmo código-fonte de shader.
Considerações de privacidade
O fingerprinting baseado em GPU, como todo fingerprinting, deve ser usado de forma responsável. Usamos esses sinais para fins legítimos — prevenção de fraudes, detecção de bots e segurança de contas — não para rastreamento entre sites ou publicidade. Nossa implantação hospedada em nuvem garante que os dados de fingerprint permaneçam na infraestrutura dos nossos clientes, eliminando o compartilhamento de dados com terceiros.
O cenário de privacidade continuará evoluindo. Os navegadores podem introduzir proteções adicionais que afetem o fingerprinting de GPU. Nossa estratégia é nos adaptarmos continuamente — encontrando novos sinais dependentes de hardware à medida que os antigos são restringidos, mantendo a acurácia e a estabilidade das quais nossos clientes dependem.