Toma de huellas digitales eficiente a través de la caché de favicon del navegador



Favicon del



sitio de demostración : un pequeño icono .ico de 16 * 16 o 32 * 32 píxeles en una pestaña del navegador. Te ayuda a navegar por cientos de pestañas. Twitter tiene un pájaro azul, Gmail tiene un símbolo de correo rojo, Wikipedia tiene una W en negrita.



Pero resulta que estos íconos representan una vulnerabilidad a través de la cual puede realizar huellas digitales, para identificar al usuario incluso a través de VPN y modo incógnito en el navegador ( ver demo ).



El programador alemán Jonas Strehle en el repositorio de Github describe un método para instalar una supercookie no removible a través de favicons: “Las supercookies asignan identificaciones únicas a los visitantes del sitio a través de favicons. A diferencia de los métodos de seguimiento tradicionales, esta identificación se conserva casi para siempre y el usuario no puede eliminarla mediante métodos simples. El método de seguimiento funciona incluso en modo incógnito. Las súper cookies no se eliminan cuando borra su caché, cierra su navegador o reinicia su sistema, usa una VPN o bloqueadores de anuncios ".



Cómo funcionan las huellas dactilares



Para mostrar el icono, se inserta el siguiente atributo en el código de la página:



<link rel="icon" href="/favicon.ico" type="image/x-icon">
      
      





Los favicons deben ser fácilmente accesibles a través de un navegador. Por lo tanto, se almacenan en caché en una base de datos local separada, la llamada caché de favicon (F-Cache), donde se almacenan la URL, el ID de favicon y la duración.



Cuando un usuario visita el sitio, el navegador busca en el F-Cache local una entrada que contenga la URL del sitio web activo. Si se encuentra la entrada, el icono se carga desde la caché. Si no hay ninguna entrada, el navegador envía una solicitud GET para descargar el favicon del servidor.



Este mecanismo permite que el servidor aprenda mucho sobre el visitante. Al combinar el estado de favicons entregados y fallidos para URL específicas, al cliente se le asigna una plantilla única (número de identificación). Luego se guarda la identificación:



const N = 4;
const ROUTES = ["/a", "/b", "/c", "/d"];
const ID = generateNewID(); // -> 1010 • (select unassigned decimal number, here ten: 10 -> 1010b in binary)
      
      





const vector = generateVectorFromID(ID); // -> ["/a", "/c"] • (because [a, b, c, d] where [1, 0, 1, 0] is 1 -> a, c)
      
      





Después de volver a cargar el sitio, este ID se puede restaurar de la lista de solicitudes de red enviadas por el cliente para los favicons que faltan, y así identificar el navegador.



const visitedRoutes = [];
Webserver.onvisit = (route) => visitedRoutes.push(route);  // -> ["/b", "/d"]
Webserver.ondone = () => { const ID = getIDFromVector(visitedRoutes) }; // -> 10 • (because "/a" and "/b" are missing -> 1010b)
      
      





El autor lanzó un sitio web para demostrar la toma de huellas dactilares utilizando favicons. Se ha publicado el código fuente y una descripción detallada del mecanismo.



La peor parte de esta vulnerabilidad es lo fácil que es evitar los métodos tradicionales que la gente usa para proteger su privacidad. La toma de huellas dactilares rompe el modo "privado" de Chrome, Safari, Edge y Firefox, dijo Strehle. Limpieza de caché, VPN o bloqueador de anuncios: nada se interpone en el camino de favicons maliciosos.



Investigadores de la Universidad de Illinois llegaron a las mismas conclusiones en el trabajo científico recientemente publicado "Tales of Favicons and Caches: Persistent Tracking in Modern Browsers"."Descubrimos que la combinación de nuestra técnica de seguimiento de favicon con huellas dactilares a través de atributos inmutables del navegador permite al sitio recuperar una identificación de seguimiento de 32 bits en dos segundos", dijo el estudio. - Debido a la gravedad de la vulnerabilidad, proponemos realizar cambios en el almacenamiento en caché del navegador de favicons para evitar esta forma de seguimiento. Hemos compartido nuestros hallazgos con los desarrolladores de proveedores de navegadores que actualmente están explorando opciones de mitigación ".



La toma de huellas digitales a través de favicons funciona actualmente en todos los navegadores principales, incluidos los móviles (signo más):



Navegador





Ventanas





Mac OS





Linux





iOS





Androide





Notas
Chrome (v 87.0) + + + + + ?
Safari (versión 14.0) ? + ? + ? ?
Borde (v 87.0) + + ? ? + ?
Firefox (v 85.0) + + ? ? ? Otra toma de huellas dactilares en modo incógnito
Valiente (v 1.19.92) + + + ? ? ?


La siguiente tabla muestra el tiempo mínimo requerido para llevar a cabo un ataque. La cifra real también depende de factores adicionales como la velocidad de conexión a Internet, la ubicación, el rendimiento del hardware y el tipo de navegador.



Redirecciones

(N bits)
Número de clientes distinguibles Tiempo de grabación Tiempo de leer Escala de ataque
2 cuatro <300 ms <300 ms Un usuario con cuatro navegadores
3 8 <300 ms ~ 300 ms Número aproximado de Kardashian
cuatro dieciséis <1 s ~ 1 s Un montón de tus vecinos
8 256 <1 s ~ 1 s Todos tus amigos de Facebook
diez 1024 <1,2 s ~ 1 s Pueblo muy pequeño
20 1.048.576 <1,8 s <1,5 s Pueblo pequeño (San José)
24 16.777.216 <2,4 s <2 s Todos los Países Bajos
32 4294967 296 ~ 3 s <3 s Todas las personas con acceso a internet
34 17 179 869 184 ~ 4 s ~ 4 s 4



All Articles