O que é Canvas Fingerprinting? Como Sites Rastreiam Você Sem Cookies
Navegador & Dispositivo

O que é Canvas Fingerprinting? Como Sites Rastreiam Você Sem Cookies

O canvas fingerprinting usa a API Canvas HTML5 para desenhar uma imagem oculta que sua GPU renderiza de forma ligeiramente diferente de qualquer outro dispositivo — criando uma impressão digital estável sem cookies.

7 min de leitura·

O canvas fingerprinting (impressão digital por canvas) é uma técnica de rastreamento do navegador que desenha uma imagem invisível usando a API HTML5 Canvas e lê os dados de pixels resultantes para criar um identificador único do seu dispositivo — sem cookies, sem armazenamento, nada para excluir. Você pode testar se o seu navegador expõe uma impressão digital de canvas agora mesmo no whatsmy.fyi.

Resumo

O canvas fingerprinting é um método de rastreamento que instrui seu navegador a desenhar uma imagem oculta e depois lê os dados de pixels para identificar seu dispositivo. Funciona porque sua GPU, sistema operacional e renderizador de fontes introduzem individualmente diferenças minúsculas e consistentes na forma como essa imagem é desenhada — invisíveis a olho nu, mas únicas para a sua combinação de hardware e software.

O que é Canvas Fingerprinting?

O canvas fingerprinting explora a API Canvas do HTML5, um recurso projetado para permitir que navegadores desenhem gráficos diretamente na janela do navegador. Todo navegador moderno oferece suporte a ela — o que significa que a superfície de rastreamento é praticamente universal. Quando um script de fingerprinting é executado, ele cria um elemento canvas fora da tela, completamente invisível para você, desenha texto e formas nele e depois chama canvas.toDataURL() para ler os dados de pixels como uma string Base64. Essa string é então transformada em uma impressão digital compacta e estável.

O que torna o canvas fingerprinting poderoso é que a saída de pixels não é perfeitamente consistente entre dispositivos. Os mesmos comandos de desenho produzem resultados sutilmente diferentes dependendo do fabricante da GPU, da versão do driver gráfico, do sistema operacional, das fontes instaladas e das configurações de anti-aliasing. Duas máquinas que parecem idênticas no papel — mesmo SO, mesma versão do navegador — ainda podem produzir um hash de canvas diferente porque seus drivers de GPU diferem. A ferramenta Cover Your Tracks da Electronic Frontier Foundation classifica consistentemente a saída do canvas entre os sinais de maior entropia no kit de ferramentas de browser fingerprinting.

O canvas fingerprinting é um componente da família mais ampla de técnicas de browser fingerprinting. Ao contrário dos cookies, não requer armazenamento no seu dispositivo e não é afetado por limpar seu histórico de navegação, ativar o modo privado ou trocar de rede.

Como Funciona o Canvas Fingerprinting?

O processo ocorre em quatro etapas, cada uma levando apenas milissegundos e completamente invisível para o usuário.

Etapa 1 — Desenhando o Canvas

Um trecho de JavaScript cria um elemento canvas fora da tela e desenha uma combinação de texto, formas e gradientes usando fontes, cores e modos de mesclagem específicos. A complexidade do desenho importa: formas geométricas simples produzem menos variação; texto rico em fontes com sombras e gradientes produz mais.

Etapa 2 — Renderização pela GPU e SO

O navegador passa as instruções de desenho para a pilha gráfica do sistema operacional. No Windows, o ClearType cuida da renderização de fontes com sub-pixels. No macOS, o Core Text aplica seu próprio algoritmo de hinting. No Linux, o FreeType renderiza de forma diferente. Sua GPU lida com o anti-aliasing e a interpolação de cores. Cada camada introduz variações consistentes mas específicas do dispositivo no nível de pixel.

Etapa 3 — Extração de Pixels

O script chama canvas.toDataURL() para ler a imagem completa como um PNG codificado em Base64. Essa string codifica cada valor de pixel — incluindo as variações de sub-pixels introduzidas durante a renderização. Como alternativa, os scripts podem usar canvas.getImageData() para acessar o buffer de pixels brutos diretamente.

Etapa 4 — Hashing

A string Base64 ou o buffer de pixels brutos é submetido a hash — comumente usando MurmurHash ou MD5 — para produzir um valor de impressão digital compacto e estável. Esse hash é transmitido ao servidor de rastreamento e armazenado como identificador do dispositivo.

// Exemplo mínimo de canvas fingerprinting
function getCanvasFingerprint() {
  const canvas = document.createElement('canvas');
  canvas.width = 280;
  canvas.height = 60;

  const ctx = canvas.getContext('2d');

  // Background — color blending varies by GPU
  ctx.fillStyle = 'rgb(255, 102, 0)';
  ctx.fillRect(10, 10, 100, 30);

  // Text — font rendering varies by OS (ClearType / Core Text / FreeType)
  ctx.fillStyle = '#069';
  ctx.font = '18px Arial';
  ctx.fillText('Canvas fingerprint', 2, 45);

  // Shadow — shadow rendering varies by graphics driver
  ctx.shadowColor = 'rgba(0, 0, 0, 0.5)';
  ctx.shadowBlur = 6;
  ctx.shadowOffsetX = 2;
  ctx.shadowOffsetY = 3;

  // Returns a Base64 string that differs subtly across devices
  // even with identical browser and OS versions
  return canvas.toDataURL();
}

Quão Única é uma Impressão Digital de Canvas?

O canvas fingerprinting contribui com uma entropia significativa para a impressão digital geral do navegador. Os resultados de pesquisas variam conforme o conjunto de dados e a metodologia, mas a direção é consistente: a saída do canvas é um identificador de alto sinal, especialmente quando combinada com outros atributos do navegador.

DescobertaValorFonte
Entropia do canvas em isolamento8–10 bitsEFF Cover Your Tracks
Navegadores identificáveis unicamente via canvas83,6%BrowserLeaks
Parcela dos 20.000 principais sites usando canvas fingerprinting12,7%ACM Internet Measurement Conference, 2025
Unicidade geral no mundo real (8 milhões de impressões digitais)33,6%Estudo de campo acadêmico, 2018
Unicidade do canvas em dispositivos móveis62%ACM Internet Measurement Conference, 2025

A diferença entre resultados laboratoriais (80–90% de unicidade) e dados do mundo real (33,6%) existe porque muitas configurações populares produzem saídas de canvas idênticas. Todos os MacBook Pros rodando o mesmo macOS e versão do Safari, por exemplo, compartilham um hash de canvas. A unicidade é mais alta em dispositivos com combinações incomuns de GPU e driver. Dispositivos móveis pontuam mais alto porque a fragmentação de hardware é maior.

Quem Usa Canvas Fingerprinting no Mundo Real?

Redes de Publicidade

Empresas de ad-tech usam o canvas fingerprinting para rastrear usuários entre sites para direcionamento comportamental e controle de frequência. Tornou-se especialmente valioso com a descontinuação dos cookies de terceiros nos principais navegadores — o canvas fingerprinting cumpre o mesmo papel de identificação sem precisar de cookies ou consentimento do usuário na maioria das implementações atuais.

Plataformas de Detecção de Fraudes

Empresas de segurança como Fingerprint (anteriormente FingerprintJS) e Castle.io usam canvas fingerprinting para detectar invasões de contas, preenchimento de credenciais e atividade de bots. Se a impressão digital de canvas de um dispositivo não corresponde à registrada para uma conta, ela aciona um sinal de risco para revisão. Esse caso de uso geralmente se qualifica sob a base de interesse legítimo do GDPR sem exigir consentimento explícito.

Aplicação de Paywall e Acesso Medido

Editoras de notícias e serviços de assinatura usam o canvas fingerprinting para aplicar limites de artigos em usuários que limpam cookies para redefinir seu contador de acesso medido. Como a impressão digital é derivada do hardware em vez de dados armazenados, ela persiste mesmo após a exclusão de cookies e a navegação privada.

O Canvas Fingerprinting é Legal?

Sob o GDPR na Europa, o canvas fingerprinting constitui processamento de dados pessoais quando o hash resultante pode ser razoavelmente vinculado a um indivíduo. A autoridade francesa de proteção de dados (CNIL) nomeou explicitamente o browser fingerprinting como exigindo consentimento informado, a menos que uma exceção restrita de interesse legítimo se aplique. No âmbito da CCPA e CPRA dos EUA, os dados de fingerprinting são tratados como informações pessoais sujeitas a direitos de exclusão, e várias ações coletivas foram movidas contra empresas de ad-tech que usam fingerprinting sem divulgação. No Brasil, a LGPD (Lei Geral de Proteção de Dados) também exige base legal adequada para o processamento de dados pessoais, incluindo identificadores derivados de fingerprinting.

A Orientação de Fingerprinting do W3C reconhece o canvas como um "vetor de fingerprinting de alta fidelidade" e aconselha os autores de especificações web a considerar o risco de fingerprinting ao projetar novas APIs do navegador. A aplicação das leis varia entre jurisdições.

Como se Proteger do Canvas Fingerprinting

A prevenção completa é difícil — as defesas eficazes envolvem trade-offs de compatibilidade web. Estas opções são classificadas da mais forte à mais prática para uso diário:

  • Navegador Tor (proteção mais forte): O Tor normaliza a saída do canvas para que todo usuário do Tor retorne um hash de canvas idêntico, tornando a identificação individual impossível. O trade-off é a navegação mais lenta devido à rede Tor.
  • Navegador Brave (recomendado para uso diário): O Brave usa uma técnica chamada Farbling — injeta um pequeno valor de ruído aleatório por sessão na saída de pixels do canvas. Sua impressão digital muda a cada sessão e por site, tornando o rastreamento entre sites não confiável, mas permanecendo visualmente indistinguível para você.
  • Firefox com privacy.resistFingerprinting: Definir essa flag como true em about:config faz o Firefox retornar saída de canvas uniforme, semelhante ao Tor Browser. Está desativado por padrão; alguns sites que dependem de gráficos baseados em canvas podem se comportar de forma inesperada.
  • Extensão CanvasBlocker (Firefox e Chrome): Esta extensão intercepta chamadas canvas.toDataURL() e getImageData() e as bloqueia completamente ou retorna dados aleatorizados. Útil para usuários que precisam de proteção de impressão digital sem trocar de navegador.
  • Evite fontes raras e drivers de GPU incomuns: Manter os drivers atualizados e usar hardware padrão reduz a unicidade da sua saída de canvas.
  • Use uma VPN — mas entenda seus limites: Uma VPN mascara seu endereço IP, mas não tem nenhum efeito na saída do canvas. Verifique se sua VPN está funcionando no whatsmy.fyi.

Perguntas Frequentes

O canvas fingerprinting funciona no modo privado/incógnito?

Sim. O modo de navegação privada impede que seu navegador salve histórico, cookies e dados de formulário no disco — mas não altera sua GPU, driver gráfico ou renderizador de fontes do SO. Sua impressão digital de canvas é idêntica no modo incógnito e em uma janela normal. Apenas navegadores com aleatorização ativa de impressão digital, como o Brave ou o Tor Browser, se comportam de forma diferente.

Uma VPN pode impedir o canvas fingerprinting?

Não. Uma VPN muda seu endereço IP visível e roteia o tráfego por um túnel criptografado, mas não toca na pilha de renderização do navegador. O canvas fingerprinting lê dados de renderização no nível da GPU e do SO, completamente não afetados por qual servidor seu tráfego passa. Para se proteger do canvas fingerprinting, use o Brave Browser, Firefox com privacy.resistFingerprinting, ou Tor Browser.

O canvas fingerprinting é o mesmo que o rastreamento por cookies?

Não. O rastreamento por cookies armazena um arquivo identificador no seu dispositivo, que você pode visualizar, excluir ou bloquear. O canvas fingerprinting não armazena nada — reconstrói um identificador a partir das características de hardware e software do seu dispositivo em cada visita. Limpar cookies, excluir o armazenamento local ou bloquear cookies de terceiros não tem efeito no canvas fingerprinting.

Desativar o JavaScript interrompe o canvas fingerprinting?

Sim — o canvas fingerprinting requer JavaScript para ser executado. No entanto, desativar o JavaScript quebra a maioria dos sites modernos. Uma abordagem mais prática é usar o Farbling do Brave ou a extensão CanvasBlocker, que interceptam chamadas da API Canvas especificamente sem desativar a funcionalidade geral do JavaScript.

Como o canvas fingerprinting difere do WebGL fingerprinting?

Ambos exploram o pipeline de renderização gráfica do navegador, mas visam APIs diferentes. O canvas fingerprinting usa a API Canvas 2D e é sensível às diferenças de renderização de fontes e texto com sub-pixels. O WebGL fingerprinting usa a API de gráficos 3D e expõe diretamente o nome do fornecedor da GPU, o modelo da GPU e a versão do driver. Eles são frequentemente implantados juntos porque capturam dimensões complementares da unicidade do dispositivo. Veja o guia de WebGL fingerprinting para mais detalhes.

O canvas fingerprinting é preciso o suficiente para substituir cookies completamente?

Por conta própria, o canvas fingerprinting é insuficiente — a unicidade no mundo real em grandes conjuntos de dados é de cerca de 33,6%. Mas quando combinado com dados do renderer WebGL, audio fingerprinting, dimensões de tela, fuso horário e concorrência de hardware, a impressão digital combinada se aproxima da precisão no nível de cookie. Plataformas comerciais de fingerprinting geralmente combinam 30 ou mais sinais, com o canvas como um dos componentes individuais de maior contribuição.

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 é Canvas Fingerprinting? Como Sites Rastreiam Você Sem Cookies | whatsmy.fyi