O CPU fingerprinting (impressão digital de CPU) é uma técnica de rastreamento do navegador que lê navigator.hardwareConcurrency — uma única propriedade JavaScript que revela quantos núcleos de processador lógicos seu dispositivo expõe ao navegador. Combinado com outros sinais de hardware, a contagem de núcleos da CPU ajuda rastreadores a construir um identificador persistente de dispositivo que sobrevive à exclusão de cookies, modo de navegação privada e trocas de VPN. Você pode verificar o que seu navegador expõe agora no whatsmy.fyi.
Resumo
navigator.hardwareConcurrency é uma API Web padrão que retorna o número de núcleos lógicos de CPU que seu navegador pode usar. Scripts de fingerprinting coletam esse valor — junto com saída do canvas, dados do renderer WebGL, resolução de tela e timezone — para construir uma impressão digital estável do dispositivo sem cookies. Por conta própria, a contagem de núcleos de CPU contribui com baixa a média entropia; combinado com outros sinais, adiciona unicidade significativa. As defesas mais eficazes são o Brave Browser (que randomiza o valor) e o Firefox com privacy.resistFingerprinting ativado (que o fixa em 2).
O que é CPU Fingerprinting?
O CPU fingerprinting é o uso de dados relacionados ao processador, expostos pelas APIs do navegador, para contribuir com um identificador único de dispositivo. O sinal principal é navigator.hardwareConcurrency, uma propriedade somente leitura definida no HTML Living Standard que retorna o número de processadores lógicos disponíveis para o navegador. Foi projetada para ajudar desenvolvedores web a determinar quantos Web Workers paralelos instanciar para tarefas computacionalmente intensivas. Scripts de fingerprinting a reutilizam como um descritor de hardware.
O CPU fingerprinting é uma camada da técnica mais ampla de browser fingerprinting, que reúne dezenas de sinais de navegador e hardware em um único identificador. Ao contrário dos cookies, o CPU fingerprinting não armazena nada no seu dispositivo — ele reconstrói seu identificador a partir das características observáveis do seu hardware toda vez que você visita um site.
Como Funciona o CPU Fingerprinting?
O ataque básico é a leitura de uma única propriedade JavaScript — uma linha de código que é executada em menos de um milissegundo. Ataques mais sofisticados vão além, usando canais laterais de tempo para estimar a microarquitetura real da sua CPU mesmo quando o navegador falsifica o valor.
Etapa 1 — Lendo hardwareConcurrency
A forma mais simples de CPU fingerprinting lê a contagem de núcleos lógicos diretamente do objeto Navigator. Esse valor está disponível sem nenhum prompt de permissões, sem interação do usuário, e é idêntico em sessões de navegação normais e anônimas.
// Reads logical CPU cores exposed by the browser
const logicalCores = navigator.hardwareConcurrency;
// → 8 on a MacBook Pro M3 Pro
// → 4 on a mid-range Android phone
// → 2 on Firefox with resistFingerprinting enabled
// → a random value between 2 and 8 on Brave BrowserEtapa 2 — Combinando com Outros Sinais de Hardware
Uma contagem de núcleos bruta (por exemplo, 8) não é única por si só — milhões de dispositivos compartilham a mesma contagem. Scripts de fingerprinting a combinam com sinais complementares: fornecedor e renderer de GPU via WebGL, hash de pixels do canvas, resolução de tela e densidade de pixels, timezone, idioma e características da pilha de áudio. Juntos, esses sinais criam uma impressão digital com entropia significativamente maior do que qualquer valor único isolado.
Etapa 3 — Identificação de CPU por Tempo (Avançado)
Pesquisas acadêmicas do CISPA Helmholtz Center for Information Security demonstraram que JavaScript pode realizar fingerprinting da microarquitetura da CPU — não apenas a contagem de núcleos — usando canais laterais de tempo. Ao executar computações paralelas especialmente elaboradas e medir a latência de execução, scripts podem estimar se seu processador é um Intel Core, AMD Ryzen, Apple M-series ou chip Qualcomm Snapdragon. Essa técnica contorna completamente a falsificação ingênua de hardwareConcurrencyporque observa o comportamento real do hardware, não o valor reportado pela API.
// Minimal CPU fingerprint collector
function getCpuFingerprint() {
return {
logicalCores: navigator.hardwareConcurrency, // e.g. 8
deviceMemory: navigator.deviceMemory ?? 'unknown', // e.g. 8 (GB, rounded)
platform: navigator.platform, // e.g. "MacIntel"
maxTouchPoints: navigator.maxTouchPoints, // 0 = desktop, >0 = touch
// Combined with canvas, WebGL, and screen signals
// this becomes a high-entropy device identifier
};
}Quanto hardwareConcurrency Contribui para a Unicidade da Impressão Digital?
Por conta própria, navigator.hardwareConcurrency contribui com entropia modesta porque a distribuição de contagens de núcleos é fortemente enviesada — a maioria dos dispositivos se concentra em torno de 4 ou 8 núcleos lógicos. Seu valor real está na combinação com outros sinais.
| Descoberta | Valor | Fonte |
|---|---|---|
| Suporte global do navegador para hardwareConcurrency | 95,51% | Can I Use |
| Precisão de identificação do fornecedor de CPU via timing JS | 97,5% | Pesquisa CISPA, 2022 |
| Identificação de modelo/microarquitetura de CPU via timing JS | >60% | Pesquisa CISPA, 2022 |
| Contagem de núcleos reportada pelo Firefox resistFingerprinting | Sempre 2 | Código-fonte Firefox |
| Intervalo randomizado do Brave para hardwareConcurrency | 2 – min(real, 8) | Fingerprint.com |
| Participantes no estudo de CPU fingerprinting do CISPA | 834 (297 modelos de CPU) | Pesquisa CISPA, 2022 |
As descobertas do CISPA são particularmente significativas: mesmo que um navegador falsifique hardwareConcurrency para um valor fixo de 2, um script de fingerprinting avançado ainda pode identificar o fornecedor da sua CPU com 97,5% de precisão medindo quanto tempo seu processador leva para concluir cargas de trabalho paralelas específicas. Falsificar apenas o valor da API é defesa insuficiente contra ataques baseados em tempo.
Quem Usa CPU Fingerprinting no Mundo Real?
Plataformas Comerciais de Fingerprinting
Serviços como Fingerprint.com, ThreatMetrix e Sift coletam navigator.hardwareConcurrency como um dos 30 ou mais sinais reunidos em uma impressão digital de dispositivo. Essas plataformas atendem tanto casos de uso de detecção de fraudes quanto de publicidade.
Detecção de Fraudes e Prevenção de Bots
Sistemas anti-fraude usam sinais de CPU para distinguir usuários humanos de bots e sinalizar inconsistências. Um navegador que alega ser um dispositivo móvel mas reporta 16 núcleos lógicos pode ser sinalizado como suspeito.
Atribuição de Publicidade
À medida que cookies de terceiros foram depreciados nos principais navegadores, as redes de anúncios aumentaram sua dependência do fingerprinting para atribuição entre sites. A contagem de núcleos de CPU é um sinal de hardware estável que não muda quando um usuário limpa cookies, troca de rede ou ativa a navegação privada.
O CPU Fingerprinting é Legal?
Sob o GDPR, ler características de hardware para construir um identificador persistente de dispositivo constitui processamento de dados pessoais quando esse identificador puder ser vinculado a um indivíduo. A CNIL francesa declarou que o fingerprinting do navegador para fins publicitários requer consentimento informado. No Brasil, a LGPD (Lei Geral de Proteção de Dados) igualmente exige base legal adequada para o tratamento de identificadores de hardware obtidos por fingerprinting.
Como se Proteger do CPU Fingerprinting
- Tor Browser (proteção mais forte): O Tor normaliza
navigator.hardwareConcurrencyem todos os usuários, retornando um valor uniforme que torna a identificação individual por contagem de núcleos impossível. - Brave Browser (recomendado para uso diário): O Brave randomiza
hardwareConcurrencypor site e por sessão, retornando um valor entre 2 eMath.min(coresReais, 8). Isso torna o rastreamento entre sites por contagem de núcleos de CPU não confiável. O Brave também aplica randomização semelhante ao canvas e WebGL — veja o guia de canvas fingerprinting para detalhes. - Firefox com
privacy.resistFingerprinting: Definir esta flag comotruenoabout:configdo Firefox faz o navegador reportarhardwareConcurrencycomo 2 em todos os dispositivos, independentemente da contagem real de núcleos. - Mullvad Browser: Baseado nas proteções de fingerprinting do Tor Browser, mas projetado para uso sem a rede Tor, o Mullvad remove ou normaliza APIs de hardware incluindo
hardwareConcurrencycompletamente. - Entenda os limites das VPNs: Uma VPN muda seu endereço IP visível, mas não tem nenhum efeito no que o ambiente JavaScript do seu navegador reporta.
navigator.hardwareConcurrencyé lido diretamente do navegador e não é afetado por rotear o tráfego através de um servidor VPN. Verifique se sua VPN está funcionando corretamente no whatsmy.fyi.
Perguntas Frequentes
O que navigator.hardwareConcurrency realmente retorna?
Retorna o número de núcleos de processador lógicos disponíveis para o navegador — não núcleos físicos. Uma CPU com 4 núcleos físicos e hyperthreading ativo reporta 8 núcleos lógicos. A propriedade é somente leitura e está disponível sem qualquer permissão do usuário.
O modo privado ou incógnito oculta minha contagem de núcleos de CPU?
Não. A navegação privada impede que seu navegador grave histórico, cookies e dados de formulário no disco — mas não muda os valores de hardware que seu navegador expõe ao JavaScript. navigator.hardwareConcurrency retorna o mesmo valor em uma janela anônima e em uma janela normal.
Falsificar hardwareConcurrency pode me proteger completamente?
Não. Embora falsificar o valor da API aumente a barreira para coleta passiva de impressão digital, não protege contra identificação de CPU baseada em tempo. Pesquisas acadêmicas demonstraram que JavaScript pode estimar seu fornecedor de CPU com 97,5% de precisão medindo a latência de computações paralelas cuidadosamente projetadas — independentemente do que o navegador reporta para hardwareConcurrency.
Artigos Relacionados
- O que é Browser Fingerprinting? Como Sites Rastreiam Você Sem Cookies — o guia completo de todos os sinais de fingerprinting combinados
- O que é Canvas Fingerprinting? Como Sites Rastreiam Você Sem Cookies — como renderizações invisíveis do canvas produzem um identificador único de dispositivo
- O que é WebGL Fingerprinting? Como Sua GPU Identifica Seu Navegador — como a API de gráficos 3D expõe o fornecedor e a versão do driver da sua GPU
- O que é Áudio Fingerprinting? Como o AudioContext Rastreia Seu Navegador — como a pilha de processamento de áudio do seu dispositivo produz um identificador único



