Abra o console do seu navegador e digite navigator.userAgent. Aquela string, a que diz que você está no “Chrome 137 no Windows”, é apenas texto que o seu navegador entrega. Você pode alterá-la com uma extensão em cerca de dois cliques, e os navegadores anti-detecção a reescrevem a cada requisição. Então, para um rastreador, o seu User-Agent é uma alegação, não um fato.
O detalhe é que existe um fato bem ao lado dessa alegação. Cada versão do Chromium vem com um conjunto específico de recursos web embutidos no motor. Você pode renomear o rótulo da caixa, mas não consegue mudar facilmente o que está de fato dentro dela.
O widget nesta página faz exatamente isso. Ele ignora completamente o seu User-Agent e descobre a sua versão real do Chromium a partir dos recursos que o seu navegador realmente suporta.
Como a detecção de recursos descobre a sua versão
A cada poucas semanas o Google lança uma nova versão do Chromium, e cada uma delas ativa um punhado de novos recursos web. Uma propriedade CSS aqui, uma API JavaScript ali. Tudo isso está documentado publicamente no Chrome Platform Status.
Isso nos dá uma linha do tempo para trabalhar, e podemos simplesmente percorrê-la até o seu navegador não conseguir mais acompanhar:
- Chromium 144adiciona
Temporal APIseu navegador tem isso - Chromium 145adiciona
text-justifyseu navegador tem isso - Chromium 146adiciona
Iterator.concat()seu navegador tem isso - Chromium 147 você está aquiadiciona
contrast-color()seu navegador tem isso - Chromium 148adiciona
revert-ruleseu navegador não tem isso
A parte engenhosa é que nada disso pode ser falsificado editando uma string. Ou 'variants' in Intl.Locale.prototype é verdadeiro no seu motor, ou não é. Para falsificar os próprios recursos, você teria que distribuir uma build de navegador inteiramente diferente.
Por que tudo isso importa
Por si só, saber que você está no Chromium 137 não é grande coisa. Boa parte da internet também está. O que realmente importa é se a sua história se sustenta.
Um navegador normal e intacto é consistente consigo mesmo: um User-Agent do Chrome 137 fica em cima de um conjunto de recursos do Chromium 137, porque ambos vieram da mesma build. Mas no momento em que algo falsifica apenas o User-Agent, digamos uma extensão de privacidade, um proxy barato ou uma ferramenta de automação mal configurada, os dois deixam de bater. Experimente alternar o interruptor abaixo:
Essa contradição é mais barulhenta do que o número da versão jamais foi. Falsificar um sinal enquanto se deixa o motor intocado pode, na verdade, tornar você mais fácil de identificar, não mais difícil. Aprofundamos mais nisso em como os navegadores se comparam em fingerprinting e a peculiaridade do Widevine DRM.
O que realmente fazer a respeito
- Mantenha o seu navegador atualizado. Um motor antigo é um fingerprint por si só, e um risco de segurança ainda por cima. O widget vai avisar se a sua versão real está ficando para trás.
- Não falsifique pela metade. Alterar o seu User-Agent deixando o motor de lado é pior do que não fazer nada, porque fabrica exatamente a incompatibilidade que os rastreadores procuram.
- Alinhe toda a stack. Se você genuinamente precisa operar múltiplas identidades, para verificação de anúncios, pesquisa de mercado ou gerenciar muitas contas, o objetivo é um navegador em que o User-Agent, os recursos do motor e todos os outros sinais contem uma história consistente.
Esse último ponto é muito difícil de conseguir na mão, e é justamente por isso que os navegadores anti-detecção existem. O Incogniton monta cada perfil sobre uma base Chromium real e consistente, de modo que o motor que os seus recursos expõem de fato corresponde à identidade que você está apresentando, em vez de entrar em contradição com ela.