O screen fingerprinting (impressão digital de tela) lê a resolução, a densidade de pixels e a profundidade de cor do seu monitor por meio das APIs nativas do navegador para construir um identificador estável que persiste entre sessões, janelas privadas e conexões VPN. Você pode ver exatamente o que sua tela expõe agora mesmo no whatsmy.fyi.
Resumo
O screen fingerprinting combina valores de window.screen e window.devicePixelRatio — sua resolução de tela, viewport disponível, profundidade de cor e razão de densidade de pixels — para criar um identificador persistente do dispositivo. Por conta própria, contribui com 3–5 bits de entropia; combinado com outros sinais de fingerprinting, torna-se um rastreador confiável entre sessões que nenhuma quantidade de limpeza de cookies ou navegação privada consegue derrotar.
O que é Screen Fingerprinting?
O screen fingerprinting é uma técnica passiva de rastreamento do navegador que coleta características do monitor expostas pela API Screen e pela propriedade window.devicePixelRatio. Essas APIs foram projetadas para ajudar desenvolvedores web a construir layouts responsivos e dimensionar corretamente imagens para telas de alta densidade — mas ao mesmo tempo entregam aos scripts de fingerprinting uma descrição detalhada do seu monitor físico e configuração de hardware.
Ao contrário do canvas ou WebGL fingerprinting, o screen fingerprinting não requer renderização — os valores estão disponíveis de forma síncrona, sem qualquer computação, no instante em que uma página é carregada. Uma única linha de JavaScript é suficiente para ler o perfil completo de tela de um dispositivo. Isso o torna um dos vetores de fingerprinting de menor custo e maior disponibilidade para os rastreadores.
O screen fingerprinting é um sinal-chave na família mais ampla de técnicas de browser fingerprinting. É rotineiramente combinado com dados de GPU do WebGL fingerprinting, dados da pilha de áudio do áudio fingerprinting, e diferenças de renderização capturadas pelo canvas fingerprinting para formar um identificador composto.
Como Funciona o Screen Fingerprinting?
Todo navegador expõe um conjunto de propriedades somente leitura que descrevem o monitor físico e a relação entre pixels CSS e pixels físicos. Os scripts de fingerprinting coletam todos eles em uma única passagem.
As Propriedades Principais
screen.width / screen.height — As dimensões totais em pixels do monitor físico, reportadas em pixels CSS. Um monitor 1920×1080 a 100% de escalonamento reporta 1920 × 1080. O mesmo monitor a 125% de escalonamento no Windows reporta 1536 × 864, revelando imediatamente a configuração de escalonamento do SO.
window.devicePixelRatio — A razão entre pixels físicos e pixels CSS. Um monitor 1080p padrão tem razão 1. Um MacBook Pro Retina tem2. Um Android flagship moderno a 3× de escalonamento tem 3. Este único valor distingue confiavelmente dispositivos HiDPI de monitores padrão, Macs Retina de máquinas Windows, e celulares básicos de modelos top de linha.
screen.colorDepth / screen.pixelDepth — O número de bits usados para representar a cor de cada pixel. Na prática é 24em praticamente todo dispositivo moderno, mas sistemas legados e algumas configurações de desktop remoto retornam 16 ou 8.
O Código
// Screen fingerprinting — all values are synchronous, no rendering needed
function getScreenFingerprint() {
const dpr = window.devicePixelRatio;
return {
// Physical display dimensions (CSS pixels)
screenWidth: window.screen.width,
screenHeight: window.screen.height,
// Available area after system UI (taskbar, dock)
availWidth: window.screen.availWidth,
availHeight: window.screen.availHeight,
// HiDPI / Retina ratio — key differentiator
devicePixelRatio: dpr,
// Physical pixels (what the GPU actually renders)
physicalWidth: Math.round(window.screen.width * dpr),
physicalHeight: Math.round(window.screen.height * dpr),
// Color depth — usually 24; lower values flag VMs or legacy systems
colorDepth: window.screen.colorDepth,
pixelDepth: window.screen.pixelDepth,
// Viewport — reflects browser window state at load time
innerWidth: window.innerWidth,
innerHeight: window.innerHeight,
// Orientation
orientation: screen.orientation?.type ?? 'unknown',
};
}
// Example output — MacBook Pro 14-inch (2023), Chrome, fullscreen
// {
// screenWidth: 1512, screenHeight: 982,
// availWidth: 1512, availHeight: 932, ← 50px macOS menubar
// devicePixelRatio: 2,
// physicalWidth: 3024, physicalHeight: 1964,
// colorDepth: 24, pixelDepth: 24,
// innerWidth: 1512, innerHeight: 879,
// orientation: 'landscape-primary'
// }Quão Única é uma Impressão Digital de Tela?
| Sinal / Descoberta | Valor | Fonte |
|---|---|---|
| Entropia da resolução de tela sozinha | ~3,3 bits | EFF Cover Your Tracks |
| Entropia com devicePixelRatio adicionado | ~4,8 bits | BrowserLeaks |
| Resolução de tela mais comum globalmente (1920×1080) | ~24% dos usuários | Statcounter GlobalStats, 2025 |
| Usuários com perfil de tela único (resolução + DPR + escalonamento do SO) | ~18% | Pesquisa Fingerprint.com |
| Precisão combinada (tela + canvas + WebGL) | >95% | Fingerprint.com Pro |
Como se Proteger do Screen Fingerprinting
- Tor Browser (proteção mais forte): O Tor normaliza todos os valores de tela — reporta uma resolução padronizada de
1000×900e fixadevicePixelRatioem1, independentemente do seu monitor real. - Firefox com
privacy.resistFingerprinting(RFP): Quando RFP está ativado, o Firefox arredonda as dimensões de tela para um valor padronizado e limitadevicePixelRatioa1. - Brave Browser (recomendado para uso diário): O Brave aplica sua técnica Farbling aos dados de tela — introduz um pequeno valor de ruído por sessão e por origem nas propriedades de tela.
- Evite escalonamento não padrão do SO: Usuários do Windows que definem escalonamento de tela para 125% ou 150% produzem valores incomuns de
screenWidthque são mais identificadores. - VPN — útil, mas insuficiente: Uma VPN mascara seu endereço IP, mas tem efeito zero nas suas propriedades de tela. Verifique o que seu IP real revela no whatsmy.fyi.
Perguntas Frequentes
O screen fingerprinting funciona no modo incógnito ou privado?
Sim. O modo de navegação privada não altera seu monitor físico. Seus valores de screen.width, screen.height e devicePixelRatiosão idênticos no modo incógnito e em uma janela normal.
O screen fingerprinting é mais preciso em celular ou desktop?
Dispositivos móveis produzem maior entropia combinada porque a fragmentação de resolução e DPR é muito maior no ecossistema Android. Desktop é mais homogêneo — 1920×1080 a 100% de escalonamento domina — mas usuários do Windows com escalonamentos não padrão produzem valores incomuns que aumentam a unicidade.
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 é Canvas Fingerprinting? Como Sites Rastreiam Você Sem Cookies — como a renderização oculta de canvas revela sua GPU e pilha de fontes
- O que é WebGL Fingerprinting? Como Sua GPU Identifica Seu Navegador — como a API de gráficos 3D expõe diretamente o fornecedor e modelo da sua GPU
- O que é Áudio Fingerprinting? Como o AudioContext Rastreia Seu Navegador — como a pilha de áudio do seu dispositivo produz um identificador único



