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.
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:
| Canal | O que está sendo medido | Valor distintivo típico |
|---|---|---|
| Lista de fontes | quais fontes estão instaladas no sistema | maior entropia: 9,45 bits, 35% das máquinas são únicas |
| WebGL | linha de placa de vídeo, parâmetros de renderização | alto, dependente de hardware |
| Canvas | hash da imagem renderizada | alto |
| Áudio | hash de sinal via Web Audio | alto em máquinas diferentes |
| Tela e DPR | resolução e densidade de pixels | média |
| Fuso horário, idioma | configurações do sistema | baixo 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.
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ície | Varia entre os dois perfis |
|---|---|
| WebGL fornecedor e renderizador | Sim |
| Parâmetros WebGL | Sim |
| Geometria da tela e DPR | Sim |
| Número de núcleos e memória | Sim |
| Lista de fontes | Sim |
| Vozes de síntese de fala | Sim |
| Tabela constante de áudio da Web | Sim |
| Canvas | sim, o barulho é da semente do perfil |
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.
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:
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.
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.
Áudio: o limite atual · Coerência importa mais que volume