Os recursos de privacidade dos navegadores tratam a identidade como estado do navegador: cookies, impressões digitais de canvas e de áudio são apagados, randomizados ou bloqueados pelo modo anônimo, por uma VPN ou pelo Tor, de modo que trocar de navegador parece um recomeço. Os pesquisadores da FingerprintJS atacaram o sinal que permanece: os aplicativos instalados em uma máquina não mudam quando uma pessoa troca de navegador ou se esconde atrás de uma VPN, então o conjunto de aplicativos pode vincular a mesma pessoa entre Chrome, Firefox, Safari e Tor naquele computador.

O deep linking é o canal. Os navegadores de desktop entregam esquemas de URL personalizados, como skype://, ao aplicativo instalado que os registrou, e perguntam ao usuário antes de iniciá-lo. Uma página pode, portanto, testar a presença de um aplicativo: navegar até seu esquema e observar como o navegador reage. Sondar 32 aplicativos populares e combinar as respostas sim/não produz um identificador de 32 bits em segundos, no Windows, no macOS e no Linux.

Cada navegador vazou a mesma resposta por meio de uma fraqueza diferente. O Chrome exigia um gesto do usuário, mas uma extensão como o seu visualizador de PDF redefinia o sinalizador de proteção; o Firefox mostrava uma página de erro interna para esquemas desconhecidos, tornando detectável o popup de um aplicativo instalado; o Safari não tinha proteção contra inundação de esquemas; e o Tor, que desativa totalmente os diálogos de confirmação, executava as sondagens de forma invisível em iframes.

A medida foi de divulgação, não de exploração. A FingerprintJS publicou a técnica com uma demonstração funcional, liberou o código-fonte e abriu relatórios de bug com os quatro fornecedores de navegadores, declarando que não usa a vulnerabilidade em seus próprios produtos. O Bugzilla da Mozilla abriu a issue 1711084, e o Tor Browser posteriormente anexou um patch; o anúncio no Hacker News em 13 de maio de 2021 atraiu 467 pontos e 200 comentários, com leitores executando a demonstração como teste de campo.

Sondar aplicativos instalados por meio de diálogos de esquema de URL para construir um ID que nenhum modo de privacidade reinicia

Os aplicativos instalados são estado no nível do dispositivo, então um identificador construído a partir deles sobrevive ao modo anônimo, a VPNs, a trocas de navegador e ao Tor de uma forma que nenhum cookie ou impressão digital de canvas consegue.

Esquemas de URL personalizados expõem a presença de aplicativos sem permissão: um navegador só oferece iniciar um esquema quando um aplicativo real o registrou, e o JavaScript pode observar se essa oferta ocorreu.

O ataque usou apenas janelas popup, iframes e regras de mesma origem que já existiam, então todo grande navegador de desktop expôs o sinal de alguma forma, sem necessidade de plugin ou acesso ao sistema operacional.

A escolha de privacidade do Tor de desativar os diálogos de confirmação saiu pela culatra: sem nada visível para o usuário, as sondagens rodavam de forma invisível em iframes, transformando o navegador mais privado no vazamento mais silencioso.

Publicar uma demonstração e abrir relatórios de bug permitiu que terceiros reproduzissem a descoberta, transformando a alegação privada de um fornecedor em issues rastreadas, um patch de navegador e escrutínio público.

Aplicativos instalados são estado no nível do dispositivo que sobrevive ao modo anônimo, a VPNs e a trocas de navegador; qualquer diferença observável na interface, até mesmo se um diálogo aparece, torna-se um sinal de rastreamento.

A Mozilla rastreou o relatório como bug 1711084 e o Tor Browser anexou um patch desenvolvido por Matthew Finkel; anos depois, o bug ainda estava aberto. A atualização de agosto de 2022 do artigo informava que os registros de rastreadores do Chrome e do Firefox ainda estavam abertos e não resolvidos. A demonstração e o repositório de código-fonte permaneceram no ar, e o artigo manteve sua ressalva de que a FingerprintJS não usa a vulnerabilidade em seus próprios produtos. A thread do Hacker News em 13 de maio de 2021 atraiu 467 pontos e 200 comentários; leitores executaram a demonstração como teste de campo, alguns confirmando identificadores correspondentes entre navegadores, outros relatando falsos positivos.

CONFIRA AS EVIDÊNCIAS

As fontes

  1. Scheme flooding technique for reliable cross-browser fingerprinting Mozilla Bugzilla · bugzilla.mozilla.org
  2. Vulnerability allows cross-browser tracking in Chrome, Firefox, Safari, and Tor Hacker News · news.ycombinator.com ·