Que sinais são usados na impressão digital?
Os clássicos, por ordem de quão distintivos são:
- Impressão digital por canvas: um site pede ao navegador que desenhe uma pequena imagem e depois lê os píxeis. Pequenas diferenças nos controladores gráficos, no modelo da GPU e no sistema operativo fazem a imagem sair ligeiramente diferente, o suficiente para que o resultado seja quase único por dispositivo.
- Impressão digital por WebGL: semelhante ao canvas, mas usando APIs de gráficos 3D. Revela de forma bastante direta o modelo da sua GPU e a versão do controlador.
- Impressão digital por áudio: o processamento de áudio do navegador tem pequenas diferenças numéricas de sistema para sistema. Um site pode tocar um som através da API (sem que o ouça) e ler a forma de onda resultante.
- Enumeração de tipos de letra: os tipos de letra que tem instalados são um sinal surpreendentemente distintivo. Um computador típico tem 50 a 200 tipos de letra; é raro a lista exata repetir-se.
- Tamanho do ecrã e densidade de píxeis
- Cadeia User-Agent e Client Hints (o seu navegador, a versão, o sistema operativo)
- Fuso horário, idioma, número de núcleos, memória disponível, API de bateria em alguns navegadores
Cada um destes sinais, isoladamente, é fraco. Combinados, chegam a uma unicidade da ordem de 1 em milhões.
Porque funciona mesmo quando bloqueia os cookies
Os cookies de terceiros estão prestes a desaparecer de todos os principais navegadores. A impressão digital é a alternativa para a qual a indústria publicitária já se virou. Os sinais que usa não são «dados de rastreamento» que pode recusar fornecer: são dados que o navegador tem de enviar para a página ser apresentada corretamente. O tamanho do ecrã importa porque as páginas têm de se adaptar a ele. Os tipos de letra importam porque a página escolhe o melhor para usar. O facto de a combinação ser única é um efeito secundário de ser preciso enviar esses dados.
Como os navegadores se defendem
Duas estratégias, ambas imperfeitas:
- Uniformidade (a abordagem do Tor): fazer com que todos os utilizadores do Tor pareçam idênticos. A mesma impressão digital, o mesmo tamanho de ecrã, os mesmos tipos de letra. A desvantagem é que a web deixa de funcionar bem de muitas pequenas formas: as páginas aparecem no tamanho «errado», os tipos de letra são substituídos, as aplicações web detetam mal o seu dispositivo.
- Aleatorização (a abordagem do Brave e do Dazr): acrescentar um pequeno ruído por domínio aos sinais. Duas visitas ao mesmo site veem resultados coerentes (para que os inícios de sessão funcionem); dois sites diferentes veem impressões digitais diferentes. É o compromisso que a maioria dos navegadores focados na privacidade para o dia a dia faz.
A defesa do Dazr está ativada por defeito e aplica-se às medições de canvas, WebGL, áudio e tipos de letra, com exceções por site para os raros sites que deixam de funcionar.
O que pode realmente fazer
Para reduzir a sua impressão digital, as opções são limitadas:
- Use um navegador com proteção contra a impressão digital ativada por defeito (Dazr, Tor Browser, Brave com proteções em modo estrito)
- Desative a API de bateria, os plug-ins e as funcionalidades desnecessárias do navegador nas definições avançadas
- Não instale tipos de letra de que não precisa
- Tenha presente que, mesmo desativando o JavaScript, a impressão digital passiva (cabeçalhos HTTP, IP, tamanho do ecrã através de CSS) continua intacta