Las funciones de privacidad de los navegadores tratan la identidad como estado del navegador: las cookies, las huellas de canvas y las huellas de audio se borran, se aleatorizan o se bloquean mediante el modo incógnito, una VPN o Tor, de modo que cambiar de navegador parece un comienzo desde cero. Los investigadores de FingerprintJS atacaron la señal que permanece: las aplicaciones instaladas en una máquina no cambian cuando una persona cambia de navegador o se oculta tras una VPN, por lo que el conjunto de aplicaciones puede vincular a la misma persona entre Chrome, Firefox, Safari y Tor en ese ordenador.
El enlace profundo es el canal. Los navegadores de escritorio entregan esquemas de URL personalizados como skype:// a la aplicación instalada que los haya registrado, y preguntan al usuario antes de lanzarla. Por lo tanto, una página puede comprobar la presencia de una aplicación: navegar a su esquema y observar cómo reacciona el navegador. Sondear 32 aplicaciones populares y combinar las respuestas de sí/no produce un identificador de 32 bits en segundos, en Windows, macOS y Linux.
Cada navegador filtró la misma respuesta a través de una debilidad diferente. Chrome requería un gesto del usuario, pero una extensión como su visor de PDF restablecía el indicador de protección; Firefox mostraba una página de error interna para esquemas desconocidos, lo que hacía detectable la ventana emergente de una aplicación instalada; Safari no tenía protección contra la inundación de esquemas; y Tor, que desactiva por completo los diálogos de confirmación, ejecutaba los sondeos de forma invisible en iframes.
La medida fue de divulgación, no de explotación. FingerprintJS publicó la técnica con una demostración funcional, liberó el código fuente y presentó informes de errores a los cuatro proveedores de navegadores, declarando que no utiliza la vulnerabilidad en sus propios productos. El Bugzilla de Mozilla abrió el problema 1711084, y Tor Browser adjuntó posteriormente un parche; el anuncio en Hacker News del 13 de mayo de 2021 obtuvo 467 puntos y 200 comentarios, con lectores ejecutando la demostración como prueba de campo.
Sondear las aplicaciones instaladas mediante diálogos de esquemas de URL para construir un identificador que ningún modo de privacidad restablece
Las aplicaciones instaladas son estado a nivel de dispositivo, por lo que un identificador construido a partir de ellas sobrevive al modo incógnito, a las VPN, a los cambios de navegador y a Tor de una manera que ninguna cookie ni huella de canvas puede.
Los esquemas de URL personalizados exponen la presencia de aplicaciones sin permiso: un navegador ofrece lanzar un esquema solo cuando una aplicación real lo ha registrado, y JavaScript puede observar si esa oferta ocurrió.
El ataque utilizó únicamente ventanas emergentes, iframes y reglas de mismo origen que ya existían, por lo que todos los navegadores de escritorio principales expusieron la señal de alguna forma, sin necesidad de plugins ni acceso al sistema operativo.
La decisión de privacidad de Tor de desactivar los diálogos de confirmación se volvió en su contra: sin nada visible para el usuario, los sondeos se ejecutaban de forma invisible en iframes, convirtiendo al navegador más privado en la filtración más silenciosa.
Publicar una demostración y abrir informes de errores permitió a terceros reproducir el hallazgo, convirtiendo la afirmación privada de un proveedor en problemas rastreados, un parche de navegador y escrutinio público.
Las aplicaciones instaladas son estado a nivel de dispositivo que sobrevive al modo incógnito, a las VPN y a los cambios de navegador; cualquier diferencia observable en la interfaz de usuario, incluso si aparece un diálogo, se convierte en una señal de rastreo.
Mozilla rastreó el informe como el error 1711084 y Tor Browser adjuntó un parche desarrollado por Matthew Finkel; años después, el error seguía abierto. La actualización del artículo de agosto de 2022 informaba que las entradas de rastreadores de Chrome y Firefox seguían abiertas y sin resolver. La demostración y el repositorio de código fuente permanecieron activos, y el artículo mantuvo su descargo de responsabilidad de que FingerprintJS no utiliza la vulnerabilidad en sus propios productos. El hilo de Hacker News del 13 de mayo de 2021 obtuvo 467 puntos y 200 comentarios; los lectores ejecutaron la demostración como prueba de campo, algunos confirmando identificadores coincidentes entre navegadores, otros informando falsos positivos.
CONSULTA LAS PRUEBAS
Las fuentes
- Scheme flooding technique for reliable cross-browser fingerprinting Mozilla Bugzilla · bugzilla.mozilla.org
- Vulnerability allows cross-browser tracking in Chrome, Firefox, Safari, and Tor Hacker News · news.ycombinator.com ·