O que é a impressão digital do Canvas e como ela funciona?

O que é a impressão digital do Canvas e como ela funciona?
Andrey Vorster
Gerente de conteúdo, Octo Browser
Uma pesquisa de 500.000 dos sites mais populares revelou que 0,77% utiliza o Canvas para identificação secreta dos visitantes. Este método de impressão digital rastreia os usuários com base em como os seus dispositivos renderizam imagens. Neste artigo, explicaremos o que é uma impressão digital baseada no Canvas, como ela funciona e por que os métodos mais óbvios de combater essa tecnologia de identificação geralmente falham em fornecer os resultados desejados.

Índice

O que é a impressão digital do Canvas e como ela pode rastrear você?

O Canvas é um elemento HTML5 projetado para renderizar gráficos raster usando JavaScript. À primeira vista, ele é utilizado para animações e efeitos, mas, na realidade, também é utilizado para propósitos menos óbvios como, por exemplo, criar uma impressão digital do seu dispositivo.

A impressão digital do Canvas é um método de rastreamento de usuários que emprega a API do Canvas HTML5 para gerar uma impressão digital exclusiva de um dispositivo. Ao contrário dos cookies, que podem ser facilmente excluídos ou bloqueados, esse método permite que os sites e as redes de publicidade identifiquem e rastreiem você.

De modo geral, os usuários não sabem que estão sendo rastreados e têm meios limitados para evitar isso. Os navegadores fornecem automaticamente parte dos seus dados para a exibição correta do site e podem executar discretamente um script para renderizar uma imagem. Portanto, os sites poderão reconhecer você mesmo que você exclua ou bloqueie os cookies.

Para combater esse rastreamento, você pode instalar extensões do navegador que alteram os dados usados ​​para a criação de impressão digital. Você também pode definir as configurações de privacidade do seu navegador para limitar a execução do JavaScript. No entanto, nenhum desses métodos é confiável. Vamos explicar o porquê.

Como funciona a impressão digital do Canvas?

Cada dispositivo renderiza o mesmo objeto à sua maneira. As diferenças existem no nível do código e são invisíveis ao olho humano. Como a imagem renderizada resultante é exclusiva, ela pode ser usada para criar impressões digitais e rastrear usuários.

Usando gráficos

Quando um site pede a um navegador para desenhar um objeto usando a API do Canvas HTML5 (por exemplo, linhas, retângulos, texto ou imagens com vários elementos, cores e fundos), o resultado pode depender de diversos fatores. Esses fatores incluem o sistema operacional, a versão do navegador, fontes instaladas e drivers gráficos. Todos esses recursos influenciam como a imagem final aparecerá, tornando-a exclusiva para cada dispositivo.

Hashing de imagem

Para facilitar a transmissão, comparação, pesquisa e armazenamento, converte-se a imagem gerada em um código hash, que é exclusivo para o dispositivo específico e para a sua configuração. Em seguida, esses hashes são usados ​​como um componente da impressão digital.

Rastreamento de usuário
As impressões digitais coletadas com esse método são difíceis de alterar ou falsificar. Mesmo que um usuário limpe a sua cache ou altere as configurações do navegador, a sua impressão digital exclusiva poderá permanecer inalterada. O hash é armazenado em um servidor e será usado para identificação do usuário durante acessos posteriores ao site. Como o hash é exclusivo para cada dispositivo, ele permite que os sites e as redes de publicidade rastreiem os usuários.
Verifique no site browserleaks.com quais informações do Canvas os sites podem coletar
Verifique no site browserleaks.com quais informações do Canvas os sites podem coletar

O que torna as impressões digitais do Canvas exclusivas?

Com o surgimento de um vasto número de dispositivos com resoluções variadas, os desenvolvedores começaram a criar filtros para processar as imagens a fim de melhorar a aparência final. Como resultado, ao receberem instruções idênticas, dispositivos diferentes podem renderizar objetos de forma diferente.

Filtros de matriz e a sua função na geração de imagens

Esses filtros são aplicados para melhorar a qualidade e a nitidez da imagem. O filtro mais notável é o anti-aliasing. No entanto, há outros como, por exemplo, as instruções usadas ao renderizar fontes.

Da mesma forma, todas as fontes são definidas por fórmulas matemáticas específicas e consistem em glifos, que podem ser descritos como conjuntos de contornos ou curvas fechadas. Por exemplo, o “i” minúsculo consiste em dois glifos: um para o ponto e outro para o corpo da letra. Esses glifos, também conhecidos como contornos, são preenchidos posteriormente com pixels para criar o formato final do caractere.
Diversas métricas dos glifos
Diversas métricas dos glifos

Instruções para fonte e sua função

Além dos dados matemáticos básicos que definem o contorno de cada glifo específico, as fontes podem armazenar instruções (hints) adicionais. As instruções são executadas quando os glifos são renderizados na tela. Estas instruções ajustam certos pontos que definem o formato das letras para garantir que estejam alinhadas corretamente à grade na qual o glifo é exibido. Isso garante que a fonte apareça da mesma forma em diferentes dispositivos e telas, independentemente da resolução ou densidade de pixels.

Anti-aliasing de tela

O Anti-aliasing envolve adicionar pixels cinzas para desfocar as bordas de cada glifo. Ao aumentar o zoom em uma página, você notará que as bordas das letras curvas não são perfeitas, mas irregulares. O filtro suaviza os limites dos objetos e os faz parecer mais suaves porque os nossos olhos processam a média das diferenças dos tons.
Anti-aliasing de tela
A exclusividade de cada impressão digital baseada no Canvas não está na imagem final que vemos, mas em como cada dispositivo processa as sombras e o anti-aliasing. Quando dois dispositivos recebem a mesma tarefa de renderização, os pixels nas bordas terão sombras ligeiramente diferentes, entre outras diferenças. Essas pequenas variações no processamento fazem com que a imagem pareça idêntica para nós, mas não para os sites.

Por que o hash é usado para impressão digital?

O hash é o processo de conversão de dados em um valor único de comprimento fixo (código hash), o que permite comparações de dados rápidas e eficientes. Isso é particularmente importante para a impressão digital, pois ajuda a criar impressões digitais do dispositivo exclusivas com base em imagens geradas pelo Canvas.

O hash é usado por vários motivos:
  • Exclusividade: as funções hash geram valores únicos para diferentes dados de entrada, permitindo uma identificação de dados inequívoca, mesmo que os dados sejam muito semelhantes.
  • Determinismo: o mesmo conjunto de dados de entrada sempre gerará o mesmo hash.
  • Irreversibilidade: as funções hash são unidirecionais, o que significa que você pode converter qualquer dado em um hash, mas não pode reverter o hash de volta para os dados originais.
  • Consistência: uma função hash sempre retorna o mesmo resultado se os dados de entrada permanecerem inalterados.

Comparando impressões digitais usando hashes

Para criar impressões digitais baseadas no Canvas, os sites enviam instruções idênticas para renderizar objetos gráficos. No entanto, recuperar e processar um volume tão grande de imagens é ineficiente. Em vez disso, usa-se uma função hash para reduzir o tamanho dos dados, preservando a sua exclusividade.

Tendo em vista que mesmo pequenas diferenças nas imagens geradas resultarão em hashes significativamente diferentes, este é um método excelente para identificar e rastrear os visitantes que usam os valores exclusivos dos códigos hash. Além disso, os cálculos da função hash são quase instantâneos, permitindo a geração e comparação rápidas das impressões digitais.

É praticamente impossível construir um banco de dados de hashes para falsificar impressões digitais devido à grande variedade de instruções e funções de hash. Além disso, os sites podem alterá-los a qualquer momento para identificar visitantes de diferentes maneiras.

Adicionando ruído de hardware

O ruído de hardware refere-se a pequenos desvios de software dos valores do sistema que influenciam a geração de objetos do Canvas. Este método dificulta o reconhecimento da impressão digital.

A ideia é que toda vez que um site acessa a API do Canvas, um aplicativo especial ou um navegador antidetecção intercepta a solicitação e adiciona ruído aleatório aos dados. Como resultado, o hash gerado não ajuda mais a identificar o seu dispositivo. O problema, no entanto, é que o ruído do hardware torna, simultaneamente, a impressão digital não padrão. Isso significa que você não pode simplesmente adicionar parâmetros de ruído aleatório, pois isso faria com que a impressão digital resultante se destacasse muito entre as outras. É por isso que ignorar as solicitações do Canvas é uma tarefa extremamente complexa.

Ao usar os seus próprios algoritmos matemáticos, o Octo Browser introduz um ruído aleatório, porém consistente, no Canvas, afetando o resultado da imagem de verificação de dados de CRC. Essas alterações são invisíveis a olho nu, mas o hash da imagem será diferente. Em seguida, a impressão digital torna-se exclusiva e “regular” para cada perfil que você executar. Os sites percebem esses perfis virtuais como visitantes regulares, enquanto o seu dispositivo permanece protegido contra rastreamento.
O que você deve esperar de um navegador antidetecção é que a verificação seja aprovada sem alertas
O que você deve esperar de um navegador antidetecção é que a verificação seja aprovada sem alertas

Impressão digital sem ruído de hardware

Adicionar ruído de hardware aleatório nem sempre é justificado. Os rastreadores da web comparam o hash gerado com milhões de outros valores-padrão. Com um banco de dados tão vasto, os sites podem reconhecer o ruído gerado aleatoriamente. É por isso que a regularidade é um recurso tão importante quanto a exclusividade.

Se você desabilitar a adição de ruído de hardware e a interceptação de solicitações da API do Canvas, os sites receberão o código hash real do dispositivo. Isso pode ser útil quando os sites reagem mal a um Canvas totalmente exclusivo ou bloqueado.

Usando perfis em vários dispositivos

Para perfis virtuais com a configuração do Canvas habilitada, o hash não permanecerá consistente em inicializações em diferentes dispositivos com hardware variável.
Parâmetros da impressão digital no Octo Browser
Parâmetros da impressão digital no Octo Browser

No Octo Browser, o ruído de hardware adicionado é constante, mas atua como um filtro sobre a impressão digital do Canvas existente. Dessa forma, se o dispositivo mudar, o valor de hash resultante também mudará.

Aqui está um exemplo: iniciar o mesmo perfil virtual em dois dispositivos diferentes. Apesar do ruído de hardware adicionado ao perfil, os resultados da verificação do Canvas diferem.
À medida que ruído aleatório é adicionado aos dados, um site que usa análise estatística pode observar que a impressão digital é 100% exclusiva
À medida que ruído aleatório é adicionado aos dados, um site que usa análise estatística pode observar que a impressão digital é 100% exclusiva

Como obter uma impressão digital consistente do Canvas em vários dispositivos?

É verdade que o hardware, os drivers e as versões do navegador de um dispositivo podem influenciar os objetos gráficos gerados. No entanto, em cenários do mundo real, os hashes de impressão digital do Canvas nem sempre são exclusivos porque muitos PCs, Macs e laptops compartilham configurações idênticas. A sua impressão digital do Canvas se mistura com outros usuários com configurações semelhantes.

As impressões digitais do Canvas podem diferir por vários motivos:
  • Unidade de Processamento Gráfico (GPU): diferentes GPUs têm arquiteturas e níveis de desempenho variados, afetando como elas renderizam os gráficos. Algumas GPUs são compatíveis com certos recursos que outras não têm.
  • Sistema Operacional: versões diferentes de SO podem ter configurações diferentes para processar gráficos.
  • Drivers: os drivers gráficos diferem entre os sistemas operacionais e as suas versões, impactando a renderização.
  • Navegador: diferentes navegadores usam diferentes mecanismos de renderização (por exemplo, Blink no Chrome, Gecko no Firefox, WebKit no Safari). Esses mecanismos são otimizados de forma diferente, influenciando os resultados da renderização.
  • Atualizações e patches de versão: as novas versões de SO e do driver podem alterar os algoritmos de renderização. Da mesma forma, as diferentes versões do mesmo navegador podem empregar diferentes otimizações de renderização.
  • Configurações de fonte: mesmo com as mesmas fontes instaladas, configurações como, por exemplo, kerning, rastreamento e espaçamento entre linhas podem afetar a exibição do texto na tela.
Todos esses fatores podem influenciar como o Canvas renderiza os gráficos, levando a diferenças nas impressões digitais. No entanto, descobrimos que os dispositivos com GPUs, sistemas operacionais, drivers e versões do navegador idênticos provavelmente produzem resultados idênticos.

Se você precisa de impressões digitais do Canvas consistentes e invariáveis ​​para um trabalho seguro em vários dispositivos, tente usar perfis em modelos de dispositivos idênticos com hardware, drivers e sistemas operacionais correspondentes. Como os dados usados ​​para verificações do Canvas virão do mesmo hardware, as impressões digitais permanecerão consistentes em todas as sessões.

Dispositivos Mac

Uma maneira de tornar as impressões digitais do perfil virtual indistinguíveis das configurações comuns regulares é usar o Octo Browser em dispositivos Mac. Como os modelos Mac idênticos compartilham a mesma construção, as suas impressões digitais do Canvas também são quase idênticas.

Trabalhando com impressões digitais do Canvas

A impressão digital do Canvas é um método de identificação do usuário poderoso e sutil. A sua principal característica é que os parâmetros que geram a impressão digital são do lado do servidor. Como resultado, sem o conhecimento do usuário, o seu dispositivo pode gerar vários objetos gráficos usando a API do Canvas, os quais são, posteriormente, convertidos em um hash. O spoofing do hash, de modo efetivo, é impossível sem conhecer o algoritmo de hash.

Desabilitar a API do Canvas já foi considerado uma maneira simples de evitar a impressão digital de hardware. No entanto, essa abordagem agora está desatualizada. Muitos sites usam ativamente a API do Canvas para funcionar corretamente, e bloquear esse elemento pode gerar suspeita ou até mesmo restringir completamente o acesso ao site.

Por que escolher o Octo Browser?

Os sistemas modernos de rastreamento de sites estão em constante evolução. A impressão digital baseada no Canvas é combinada frequentemente com outros métodos de rastreamento, permitindo a criação de uma impressão digital do navegador mais precisa e confiável. Isso pode representar desafios significativos para multiconta.

Com o Octo Browser, você tem o controle total sobre a sua impressão digital e pode decidir como os sites a percebem. Se você precisar ocultar certos parâmetros de impressão digital do navegador e substituí-los por valores exclusivos, você pode habilitar o ruído de hardware. Se você deseja se misturar à multidão, deixe o ruído desabilitado. Dessa forma, você não se destacará entre os visitantes com configurações de hardware semelhantes.

Com base na nossa experiência, recomendamos evitar adicionar ruído de hardware, a menos que seja absolutamente necessário, pois alguns serviços podem reagir a ele de forma sensível. Tenha sempre em mente que a verificação de hash baseada no Canvas é apenas um dos fatores que influenciam a decisão de um site de bloquear ou não o seu dispositivo. Todos os parâmetros do perfil virtual e a sua impressão digital devem ser indistinguíveis daqueles de dispositivos verdadeiros, e é exatamente nesse ponto que o Octo Browser se destaca.

Mantenha-se atualizado com as últimas notícias do Octo Browser
Ao clicar no botão, você concorda com a nossa Política de Privacidade.

Artigos relacionados
Junte-se ao Octo Browser agora mesmo
Ou entre em contato com a equipe de suporte no chat para tirar dúvidas a qualquer momento.