Impressão digital de dispositivo sem cookies: como funciona
Os cookies estão morrendo. Veja como a impressão digital de dispositivo oferece identificação persistente sem qualquer armazenamento no lado do cliente.
O cookie está morrendo. O Intelligent Tracking Prevention (ITP) do Safari limita a vida útil dos cookies a 7 dias. O Enhanced Tracking Protection do Firefox bloqueia cookies de terceiros por completo. O Privacy Sandbox do Chrome está descontinuando os cookies de terceiros. As exigências de consentimento do GDPR fazem com que os usuários recusem cada vez mais os banners de cookies.
Para a prevenção de fraudes, isso é um problema. Se você não consegue identificar dispositivos de forma persistente, não consegue rastrear reincidentes, detectar multicontas ou vincular sessões suspeitas. A impressão digital de dispositivo resolve isso identificando dispositivos por meio de suas características técnicas — sem cookies, sem localStorage, sem nenhum tipo de armazenamento no lado do cliente.
As categorias de sinais
Impressão digital passiva (não requer JavaScript)
Antes mesmo de a sua página carregar, o navegador revela informações por meio de sinais de nível de rede:
Impressão digital de TLS (JA4). A mensagem TLS Client Hello contém suítes de cifras, extensões, curvas elípticas e algoritmos de assinatura. Usamos o hashing JA4 — uma substituição moderna do JA3 com melhor granularidade.
Análise da pilha TCP/IP. O tamanho da janela TCP, os valores de TTL e as configurações de MSS variam entre sistemas operacionais. Linux, Windows e macOS têm, cada um, configurações características de pilha TCP.
Análise de cabeçalhos HTTP. A ordenação dos cabeçalhos, os valores de Accept-Language e as preferências de conexão diferem entre navegadores.
Impressão digital ativa (JavaScript no lado do cliente)
Impressão digital de canvas. Desenhamos uma cena cuidadosamente projetada — texto específico, formas geométricas e gradientes. GPUs diferentes renderizam isso com sutis diferenças no nível de pixel devido a anti-aliasing, renderização de subpixels e variações na mistura de cores. Fazemos o hash dos dados de pixels.
Impressão digital de WebGL. O WebGL expõe strings de fabricante/renderizador da GPU, tamanhos máximos de textura, extensões suportadas e capacidades de shader. Esses dados identificam fortemente o modelo da GPU e a versão do driver.
Impressão digital de AudioContext. Geramos um sinal de teste e analisamos como ele é processado. Hardwares de áudio diferentes produzem uma saída mensuravelmente diferente por causa de diferenças na precisão de ponto flutuante.
Enumeração de fontes. As fontes de sistema disponíveis variam conforme o SO, o pacote de idioma e o software instalado. Testamos cerca de 300 fontes diagnósticas usando técnicas de medição por canvas.
Propriedades do navigator. Núcleos de CPU, memória do dispositivo, platform, idioma, fuso horário, resolução de tela, profundidade de cor e capacidades de ponteiro e toque.
Análise de entropia
Nem todos os sinais têm o mesmo peso. Medimos a entropia de cada sinal:
| Categoria de sinal | Entropia aproximada |
|---|---|
| Canvas + WebGL combinados | ~18 bits |
| Lista de fontes | ~8 bits |
| AudioContext | ~5 bits |
| Propriedades do navigator | ~7 bits |
| Impressão digital de TLS | ~6 bits |
| Tela + display | ~4 bits |
| Fuso horário + idioma | ~3 bits |
Combinados, nossos 130+ sinais fornecem aproximadamente 50+ bits de entropia — suficiente para identificar de forma única mais de 1 quatrilhão de dispositivos distintos.
Dos sinais a um hash estável
A coleta bruta de sinais é apenas metade do problema. As atualizações de navegador mudam as strings de user agent. As atualizações de driver alteram os parâmetros de WebGL. As instalações de fontes mudam a lista de fontes.
Correspondência difusa
Em vez de exigir correspondências exatas, usamos um algoritmo de correspondência difusa que pondera os sinais por estabilidade e entropia. Sinais estáveis (canvas, modelo de GPU) têm mais peso que sinais voláteis (user agent, resolução de tela).
A geração de candidatos usa locality-sensitive hashing (LSH) sobre os sinais mais estáveis para identificar correspondências potenciais. A pontuação de similaridade calcula uma pontuação ponderada em todas as categorias de sinais, calibrada de modo que mudanças normais no dispositivo não alterem o ID de visitante, enquanto mudanças reais de dispositivo o alterem.
Isso atinge 99.5% de precisão — identificando corretamente visitantes recorrentes ao longo de atualizações de navegador, limpezas de cookies, modo anônimo e trocas de navegador.
Arquitetura que preserva a privacidade
Processamento no lado do servidor. Todo o cálculo da impressão digital acontece em nossos servidores. O agente no lado do cliente coleta os sinais brutos, mas não calcula nem armazena o hash da impressão digital.
Sem armazenamento de PII. Armazenamos hashes de impressão digital, não sinais brutos. O hash é uma função de mão única.
Residência de dados. Os dados de clientes da UE são processados e armazenados em data centers da UE. O Artigo 6(1)(f) do GDPR cobre a prevenção de fraudes como interesse legítimo.
Identificação entre navegadores
O desafio mais difícil é identificar o mesmo dispositivo em diferentes navegadores. Contamos com sinais independentes de navegador: hardware da GPU, características da tela, fuso horário, configurações de idioma, fontes instaladas (no nível do SO) e características da pilha TCP/IP.
A precisão da vinculação entre navegadores é de aproximadamente 94% — menor que a identificação no mesmo navegador, mas suficiente para detectar multicontas entre navegadores no mesmo dispositivo.
Integração
Adicionar a impressão digital de dispositivo leva três linhas de código. O agente carrega de forma assíncrona, coleta sinais em menos de 50ms e os envia à nossa API. A resposta do servidor inclui o ID de visitante, a pontuação de confiança e todos os 24 Smart Signals.