O device memory fingerprinting (impressão digital por memória do dispositivo) usa a propriedade JavaScript navigator.deviceMemory para ler o nível de RAM aproximado do seu dispositivo e incluí-lo na impressão digital única do seu navegador — sem cookies, sem permissões, sem aviso. Você pode ver o que seu navegador expõe agora mesmo no whatsmy.fyi.
Resumo
navigator.deviceMemory retorna a RAM do seu dispositivo em gigabytes, arredondada para a potência de dois mais próxima: 0,25, 0,5, 1, 2, 4 ou 8 GB. Esse valor em bucket grosseiro contribui com aproximadamente 2–3 bits de entropia para sua impressão digital do navegador. Sozinho não pode identificá-lo unicamente, mas combinado com a contagem de núcleos de CPU, resolução de tela, detalhes da GPU e 30 ou mais outros sinais, ajuda os serviços comerciais de fingerprinting a identificar seu dispositivo. O Firefox e o Safari deliberadamente se recusaram a implementar a API. Apenas navegadores baseados em Chromium a expõem.
O que é Device Memory Fingerprinting?
O device memory fingerprinting é uma técnica de rastreamento do navegador que lê a propriedade Navigator.deviceMemory — um atributo somente leitura introduzido no Chrome 63 em dezembro de 2017 — para determinar quanta RAM seu dispositivo tem. O valor é deliberadamente impreciso: um dispositivo com 6 GB de RAM reporta 8, e um dispositivo com 3 GB reporta 4, porque a especificação exige arredondamento para a potência de dois mais próxima. Essa quantização foi projetada para limitar o risco de fingerprinting, mas cria um sinal estável e consistente que persiste entre sessões de navegação, modo incógnito e conexões VPN.
A API faz parte de uma família mais ampla de propriedades de exposição de hardware no navegador, junto com navigator.hardwareConcurrency (contagem de núcleos de CPU) e navigator.platform. Cada uma por si só fornece precisão limitada, mas juntas constroem um perfil de hardware que a Orientação de Fingerprinting do W3C classifica explicitamente como vetor de fingerprinting.
Ao contrário do rastreamento baseado em cookies, o device memory fingerprinting não pode ser bloqueado limpando os dados do navegador. É um componente do conjunto mais amplo de browser fingerprinting que empresas de rastreamento usam para identificá-lo em toda a web.
Como navigator.deviceMemory Funciona?
A especificação W3C Device Memory define um algoritmo preciso para derivar o valor que seu navegador reporta.
Etapa 1 — Lendo a Memória Física
O navegador lê a RAM física do dispositivo em bytes do sistema operacional. A implementação do Chrome em approximated_device_memory.cc lê o valor em megabytes e o arredonda para a potência de dois mais próxima usando uma operação de deslocamento de bits.
Etapa 2 — Convertendo para Gigabytes e Limitando
O valor arredondado em megabytes é dividido por 1.024 para produzir a figura em gigabytes. Qualquer resultado acima de 8 é limitado a 8,0. Versões mais recentes do Chrome em plataformas não-Android estenderam o limite superior para 32.
Etapa 3 — Restrito a Contextos HTTPS
A especificação determina que navigator.deviceMemory só está disponível em Contextos Seguros (HTTPS). Em páginas HTTP, a propriedade retorna undefined.
Etapa 4 — Disponível para Scripts Sem Permissão
Qualquer JavaScript rodando na página pode ler navigator.deviceMemory sem nenhum prompt de usuário, sem solicitação de permissão e sem notificação do navegador.
// Reading navigator.deviceMemory
// Returns: 0.25 | 0.5 | 1 | 2 | 4 | 8 (or undefined in Firefox/Safari)
const ram = navigator.deviceMemory;
console.log(ram); // e.g. 8 (on a 16 GB MacBook Pro)
// The absence of the value is itself a fingerprinting signal:
// undefined → browser is Firefox, Safari, or Tor Browser (not Chromium)
if (ram === undefined) {
console.log('Non-Chromium browser detected');
}
// Fingerprinting services combine it with CPU core count
const hardwareProfile = {
deviceMemory: navigator.deviceMemory,
cpuCores: navigator.hardwareConcurrency, // e.g. 10
platform: navigator.platform, // e.g. "MacIntel"
};
// Bot detection: flag out-of-spec values
const VALID_VALUES = [0.25, 0.5, 1, 2, 4, 8, 16, 32];
const isOutOfSpec = ram !== undefined && !VALID_VALUES.includes(ram);
// Out-of-spec values (e.g. 3, 6, 12) → high-confidence spoof or headless browserQuanto a Memória do Dispositivo Contribui para o Fingerprinting?
Os valores de retorno quantizados significam que navigator.deviceMemoryfornece entropia limitada em isolamento — mas o sinal que fornece é estável e legível por máquina.
| Sinal | Valor / Descoberta | Fonte |
|---|---|---|
| Entropia de Shannon (isolamento) | ~2–3 bits | Especificação W3C Device Memory |
| Número de valores de bucket padrão | 6 (0,25, 0,5, 1, 2, 4, 8 GB) | Especificação W3C Device Memory |
| Taxa de suporte global do navegador | 76,37% (todos baseados em Chromium) | Can I Use, 2025 |
| Suporte Firefox / Safari | 0% — deliberadamente não implementado | MDN Web Docs |
| Valores fora da especificação em amostra de tráfego de 7 dias | Mais de 16.000 eventos sinalizados como falsificados | Castle.io, 2025 |
Quem Usa Device Memory Fingerprinting no Mundo Real?
Plataformas Comerciais de Fingerprinting
O FingerprintJS, a biblioteca de código aberto usada por milhões de sites, lista explicitamente deviceMemory como uma fonte de sinal nomeada (getDeviceMemory) em sua camada de coleta, ao lado de hardwareConcurrency, osCpu, cpuClass e architecture.
Detecção de Bots e Prevenção de Fraudes
Plataformas de segurança usam navigator.deviceMemory não principalmente como sinal de rastreamento, mas como verificação de consistência. Navegadores anti-detecção e frameworks de automação headless frequentemente configuram incorretamente esse atributo — definindo valores como 3, 6 ou 12que não são potências de dois válidas. A Castle.io observou mais de 16.000 eventos de deviceMemory fora da especificação em uma única janela de tráfego de 7 dias.
Redes de Publicidade Comportamental
À medida que cookies de terceiros foram depreciados nos principais navegadores, as redes de publicidade incorporaram cada vez mais sinais no nível do dispositivo — incluindo o nível de memória do dispositivo — em gráficos de identidade probabilísticos. O bucket de memória também carrega valor demográfico: um dispositivo reportando 0,25 GB é um telefone ultra-low-end; um reportando 8 GB é um laptop premium ou telefone topo de linha.
A Ausência como Sinal
Quando navigator.deviceMemory retorna undefined, um script de fingerprinting aprende imediatamente que o navegador não é baseado em Chromium — confirmando Firefox, Safari ou Tor Browser. Essa distinção binária presente/ausente em si tem valor identificador e é coletada por bibliotecas de fingerprinting como sinal negativo.
O Device Memory Fingerprinting é Legal?
Sob o GDPR, o browser fingerprinting cria um identificador único persistente e, portanto, constitui processamento de dados pessoais. A CNIL (autoridade francesa de proteção de dados) declarou explicitamente que o rastreamento baseado em fingerprinting requer o mesmo consentimento informado que o rastreamento baseado em cookies. No Brasil, a LGPD (Lei Geral de Proteção de Dados) exige base legal adequada para o tratamento de identificadores de dispositivo obtidos por fingerprinting, incluindo o nível de memória RAM.
Como se Proteger do Device Memory Fingerprinting
- Tor Browser (proteção mais forte): Baseado em Firefox, portanto
navigator.deviceMemoryretornaundefinednativamente — a API não está implementada. Combinado com letterboxing, normalização de user-agent e roteamento de rede pela rede de anonimato Tor, o Tor Browser fornece a proteção mais forte do mundo real contra fingerprinting no nível do dispositivo. - Firefox (recomendado para uso diário): O Firefox não implementa
navigator.deviceMemoryde forma alguma. Ativarprivacy.resistFingerprintingnoabout:confignormaliza adicionalmente o tamanho da tela, timezone, locale e métricas de fontes. - Brave Browser (proteção baseada em Chromium): O Brave implementa a API (base de código Chromium), mas aplica randomização por sessão e por site — uma técnica chamada Farbling. Seu valor reportado de
deviceMemorydifere entre sites e entre sessões. - Safari: Como o Firefox, o Safari se recusou a implementar a API.
navigator.deviceMemoryretornaundefinedem todas as versões do Safari até 2025. - Entenda as limitações das VPNs: Uma VPN muda seu endereço IP e roteia o tráfego através de um túnel criptografado, mas não tem absolutamente nenhum efeito em
navigator.deviceMemory. Verifique se seu IP está devidamente mascarado no whatsmy.fyi.
Perguntas Frequentes
navigator.deviceMemory funciona no modo incógnito ou privado?
Sim. A navegação privada impede que seu navegador grave histórico e cookies no disco, mas não muda sua RAM ou como o Chrome a reporta. navigator.deviceMemory retorna o mesmo valor em uma janela anônima e em uma janela normal.
Por que Firefox e Safari se recusaram a implementar navigator.deviceMemory?
Ambas as equipes concluíram que o custo de fingerprinting superava o benefício de conveniência para desenvolvedores. Uma issue no repositório W3C Device Memory argumentou que "a quantidade de RAM é um vetor de fingerprinting" e pediu aos fabricantes de navegadores que "pensassem dez vezes antes de implementar esta proposta". O Firefox e o Safari adotaram essa posição; o Chrome e o Edge não.
O que é o client hint HTTP Device-Memory?
Além da API JavaScript, a especificação Device Memory define um cabeçalho de solicitação HTTP Sec-CH-Device-Memory. Quando um servidor envia Accept-CH: Device-Memory, o Chrome anexará o bucket de memória do dispositivo a solicitações subsequentes como cabeçalho — antes que qualquer JavaScript seja executado. Isso significa que um servidor pode ler seu nível de RAM de cada solicitação HTTP, sem executar uma única linha de JavaScript.
Artigos Relacionados
- O que é Browser Fingerprinting? Como Sites Rastreiam Você Sem Cookies — o guia completo de todos os sinais de fingerprinting e como eles se combinam
- O que é CPU Fingerprinting? Como navigator.hardwareConcurrency Identifica Você — a API irmã de deviceMemory, expondo sua contagem de núcleos de CPU
- O que é WebGL Fingerprinting? Como Sua GPU Identifica Seu Navegador — como a API de gráficos 3D expõe o fornecedor, modelo e versão do driver da sua GPU
- O que é Áudio Fingerprinting? Como o AudioContext Rastreia Seu Navegador — como o hardware de áudio do seu dispositivo produz uma impressão digital acústica única



