NimbusX
00
› página carregada
← blog
impressão digital08.08.20269 minutos

Como os detectores relacionam perfis

Sistemas antifraude não comparam apenas cookies. Eles reúnem sinais do navegador em uma identidade e procuram relações entre contas. Veja quais sinais pesam mais e por que mudar só o Canvas não basta.

01Uma identidade do navegador, não um cookie

Um site não vê apenas um navegador, mas um conjunto de medições. Cada sinal isolado é fraco; em conjunto, eles formam uma impressão que resiste à limpeza de cookies e à troca de IP. Os principais sinais são:

CanalO que está sendo medidoValor distintivo típico
Lista de fontesquais fontes estão instaladas no sistemamaior entropia: 9,45 bits, 35% das máquinas são únicas
WebGLlinha de placa de vídeo, parâmetros de renderizaçãoalto, dependente de hardware
Canvashash da imagem renderizadaalto
Áudiohash de sinal via Web Audioalto em máquinas diferentes
Tela e DPRresolução e densidade de pixelsmédia
Fuso horário, idiomaconfigurações do sistemabaixo individualmente, a consistência é importante

As fontes aparecem primeiro porque apresentaram a maior entropia nas nossas medições. Só a lista de fontes instaladas tornou 35% das máquinas únicas na amostra.

02O que medimos no início

A primeira medição revelou um problema sério. Dois perfis na mesma máquina, sem configurações de dispositivo próprias, produziam resultados idênticos nas métricas de fontes, nos parâmetros WebGL, em clientRects e no áudio, qualquer que fosse a configuração. O site podia relacionar as contas sem usar cookies ou IP. Esse resultado definiu a arquitetura do produto.

A solução não foi adicionar ruído aleatório, mas dar a cada perfil uma configuração coerente de um computador real. Depois disso, os mesmos sinais passaram a ser diferentes. Confirmamos o resultado em navegadores reais:

SuperfícieVaria entre os dois perfis
WebGL fornecedor e renderizadorSim
Parâmetros WebGLSim
Geometria da tela e DPRSim
Número de núcleos e memóriaSim
Lista de fontesSim
Vozes de síntese de falaSim
Tabela constante de áudio da WebSim
Canvassim, o barulho é da semente do perfil

03Por que mudar apenas o Canvas não basta

Alterar o Canvas e manter a lista real de fontes não impede a associação: os demais sinais continuam iguais. Alguns sinais nem sequer devem ser modificados.

O motor preserva de propósito as métricas de texto das fontes comuns. Os detectores têm uma verificação measuretext-grid, feita justamente para detectar essa distorção. Alterar o valor deixaria o navegador mais fácil de identificar. O mesmo vale para clientRects (veja bcr-vs-range). Esses sinais não deveriam variar: em dois computadores reais com o mesmo sistema e DPR, a largura da Arial é igual porque depende do arquivo da fonte e do sistema.

Um erro que quase levou na direção errada. A primeira versão do teste media a largura de dezoito fontes comuns e sempre encontrava correspondência. Parecia que a configuração de dispositivo não funcionava. Na prática, os computadores se diferenciam pela lista de fontes instaladas, não pelas métricas das fontes em comum. Depois de corrigirmos o teste, o resultado se inverteu: o perfil B enxerga suas três fontes exclusivas; o perfil A não enxerga nenhuma delas.

04Como conferir

Confira por conta própria. Crie dois perfis no plano gratuito, abra a página de teste em cada um e compare os valores brutos:

$ python -m app.cli profile create --name link-a $ python -m app.cli profile create --name link-b # abra os dois perfis e acesse nimbusx.app/check

Canvas e WebGL são diferentes, mas os sinais de cada configuração permanecem coerentes. Isso aparece nos valores brutos, não apenas no nosso texto. Ou abra o teste de impressão do navegador: ele mede os sinais do seu navegador e coloca uma configuração NimbusX ao lado para comparação.

05O limite atual

Um sinal ainda relaciona perfis executados no mesmo computador: o hash de áudio renderizado. A variação do motor depende do domínio, não do perfil. Dois computadores reais produzem hashes diferentes; perfis na mesma máquina ainda compartilham o resultado. O painel mostra esse limite na célula AUD de cada perfil. Até termos uma compilação própria do motor, mantenha perfis da mesma plataforma em computadores diferentes.

06Leia mais

Áudio: o limite atual · Coerência importa mais que volume

Baixar NimbusXPergunta técnica: @Get_NimbusX_Bot