Quais sinais sobrevivem às atualizações de navegadores? Uma análise de estabilidade
Analisamos a estabilidade de sinais em 50 atualizações de Chrome, Firefox e Safari. Veja os sinais de impressão digital mais e menos estáveis.
As atualizações de navegadores são o inimigo natural da impressão digital de dispositivo. A cada 4-6 semanas, Chrome, Firefox e Safari lançam novas versões que podem alterar valores de sinais — mudando strings de user agent, modificando o comportamento de renderização, adicionando ou removendo APIs. Como observado nas Diretrizes de Impressão Digital do W3C, os navegadores estão trabalhando ativamente para limitar a superfície passível de impressão digital. Para sistemas de impressão digital que tratam todos os sinais igualmente, cada atualização é uma potencial quebra de identidade para milhões de visitantes.
Rodamos uma análise abrangente de estabilidade em 50 atualizações de navegadores para responder à pergunta fundamental: em quais sinais você pode confiar e quais vão trair você?
Metodologia
Instrumentamos 200 dispositivos físicos em 5 sistemas operacionais (Windows 10, Windows 11, macOS Ventura, macOS Sonoma, Ubuntu 22.04) e 3 navegadores (Chrome, Firefox, Safari). Cada dispositivo rodou coleta automatizada de sinais diariamente por 14 meses, cobrindo 50 grandes atualizações de versão de navegadores: 24 lançamentos do Chrome, 16 do Firefox e 10 do Safari.
Para cada sinal, acompanhamos: com que frequência o valor mudava, se a mudança se correlacionava com uma atualização de navegador ou fator externo (atualização de driver, patch do SO) e a magnitude da mudança (substituição completa do valor vs. variação menor).
Os níveis de estabilidade
Nível 1: Sólido como rocha (99.5%+ de estabilidade)
Esses sinais mudavam apenas quando o hardware físico mudava ou os drivers eram atualizados — nunca por atualizações de navegadores isoladamente.
Concorrência de Hardware (navigator.hardwareConcurrency): 99.97% estável. Mudou apenas em 1 dispositivo que teve uma atualização de BIOS afetando o hyperthreading. Memória do Dispositivo (navigator.deviceMemory): 99.98% estável. Um dispositivo foi atualizado de 8GB para 16GB durante o estudo. Resolução de Tela e Profundidade de Cor: 99.92% estável. As mudanças se correlacionaram com trocas de monitor e eventos de estação de acoplamento. Tamanho Máximo de Textura do WebGL: 99.99% estável. Zero mudanças relacionadas a navegadores. Mudou uma vez em um dispositivo que recebeu uma atualização de driver NVIDIA. Taxa de Amostragem de Áudio: 100% estável. Zero mudanças em todos os 200 dispositivos e 50 atualizações. Este é o sinal mais estável que rastreamos.
Nível 2: Majoritariamente estável (95-99.5%)
Esses sinais ocasionalmente mudam com atualizações de navegadores, mas permanecem estáveis na maioria dos lançamentos.
Impressão Digital de Canvas 2D: 97.8% estável. As mudanças ocorreram no Chrome 118 (atualização do mecanismo de renderização de fontes), Chrome 122 (mudança na suavização de subpixel) e Firefox 121 (atualização de shaping de texto). Cada mudança afetou todos os dispositivos daquele navegador simultaneamente — um padrão detectável que tratamos com correspondência ciente da versão do navegador. String do Renderizador WebGL: 98.1% estável. O Chrome ocasionalmente reformata a string do wrapper ANGLE. As informações subjacentes da GPU permanecem inalteradas, mas a representação da string muda. Extraímos o modelo da GPU da string em vez de fazer o hash da string diretamente. Lista de Fontes: 96.4% estável. Atualizações do SO ocasionalmente adicionam ou removem fontes do sistema. Atualizações de navegadores raramente afetam a enumeração de fontes, mas o Chrome 120 mudou a ordem em que as fontes são reportadas, o que quebrou a impressão digital de fontes baseada em hash. Usamos comparação baseada em conjuntos (similaridade de conjuntos) em vez de hashing ordenado.
Nível 3: Estabilidade moderada (80-95%)
Esses sinais mudam com frequência significativa, mas ainda fornecem valor de identificação útil entre as mudanças.
Plugins Instalados: 89.2% estável. A contínua redução do array de plugins do Chrome (navigator.plugins) removeu completamente a visibilidade dos plugins em alguns contextos. O Firefox manteve a enumeração de plugins. O Safari a restringiu a um conjunto padrão. Detecção de Recursos de CSS: 91.7% estável. Novos recursos de CSS são adicionados a cada lançamento de navegador, o que muda o conjunto de recursos detectados pela nossa sondagem de CSS. Ponderamos os recursos novos abaixo dos consolidados para reduzir o impacto. Suporte a Toque: 93.1% estável. Navegadores de desktop ocasionalmente mudam seu suporte a toque reportado quando o Chrome ajusta sua detecção de emulação de dispositivos.
Nível 4: Volátil (<80%)
Esses sinais mudam com frequência e nunca deveriam ser âncoras primárias de identificação.
String de User Agent: 42.3% estável. A iniciativa de redução do User-Agent do Chrome mudou o formato da string várias vezes. O Firefox atualiza o número da versão a cada lançamento. O Safari modifica a string de versão do WebKit regularmente. Isso costumava ser a espinha dorsal dos sistemas simples de impressão digital — esses sistemas agora estão quebrados. Tipo de Conexão (navigator.connection): 68.4% estável. Muda com a troca de rede (WiFi para celular, redes WiFi diferentes). Battery API: 71.2% estável. Varia com o estado de carga e a disponibilidade da API no navegador. O Chrome restringiu o acesso à Battery API em alguns contextos. Área de Tela Disponível: 76.8% estável. Muda com a visibilidade da barra de tarefas, o gerenciamento de janelas e os ajustes de escala de exibição.
Comparação entre navegadores
O Chrome é o navegador mais volátil para a estabilidade de impressão digital. O Google trabalha ativamente para reduzir a capacidade de impressão digital, o que significa que as atualizações do Chrome quebram mais sinais que as atualizações do Firefox ou do Safari. Ao longo do nosso período de estudo:
O Chrome causou mudanças de sinal em 3.2% das sessões de coleta. O Firefox causou mudanças de sinal em 1.8% das sessões de coleta. O Safari causou mudanças de sinal em 1.1% das sessões de coleta.
A menor volatilidade do Safari se deve em parte ao fato de a Apple lançar menos versões por ano e em parte porque as contramedidas de impressão digital do Safari (Intelligent Tracking Prevention) operam no nível de rede em vez de mudar os valores de retorno das APIs.
Recomendações práticas
Com base nesta análise, fazemos cinco recomendações para sistemas de impressão digital em produção:
Nunca use o user agent como âncora de identificação. É o sinal distintivo menos estável. Use-o apenas para detecção de navegador e pontuação de confiança de Nível 3.
Separe os sinais de hardware dos sinais de software. Os sinais de hardware (GPU, tela, áudio) são 40x mais estáveis que os sinais de software (user agent, plugins, recursos de CSS). Pondere-os de acordo.
Use comparação baseada em conjuntos para sinais enumeráveis. Listas de fontes, listas de plugins e resultados de detecção de recursos devem ser comparados usando similaridade de conjuntos ou métricas de distância de conjuntos semelhantes, não hashing ordenado. Mudanças de ordem são comuns; mudanças de conteúdo são raras.
Implemente correspondência ciente da versão do navegador. Quando o Chrome 118 muda a renderização de canvas para todos os usuários do Chrome simultaneamente, seu sistema deve reconhecer isso como uma atualização de navegador, não como uma quebra de identidade em massa. Rastreie as versões dos navegadores e aplique tolerâncias de correspondência específicas por versão.
Monitore a estabilidade dos sinais continuamente. Nossos percentuais de estabilidade se baseiam em dados históricos. Atualizações futuras de navegadores podem mudar o perfil de estabilidade de qualquer sinal. Rodamos monitoramento contínuo e ajustamos automaticamente os pesos dos sinais quando a estabilidade muda.
Impacto no tracio.ai
Nossa arquitetura de identificação de múltiplos níveis V3 reflete diretamente esta análise de estabilidade. Os sinais de Nível 1 (hardware) carregam 60% do peso. Os sinais de Nível 2 (renderização, fontes) carregam 30% do peso. Os sinais de Nível 3 (metadados do navegador, conexão) carregam 10% do peso. Essa ponderação garante que os sinais mais estáveis conduzam a identificação, enquanto os sinais voláteis contribuem para a pontuação de confiança sem causar quebras de identidade.
O resultado: 99.5% de estabilidade de identificação em 50 atualizações de navegadores, contra 69% dos sistemas que usam impressão digital plana baseada em hash. A diferença não é esperteza algorítmica — é análise empírica de sinais aplicada a decisões arquiteturais.