Muchas veces he hablado por aquí de las técnicas de WebBrowser Fingerprinting, o lo que es lo mismo, como sacar la huella digital de tu conexión para poder identificarla de forma unívoca y reconocerla cada vez que vuelvas a visitar el sitio. Esas técnicas de WebBrowsing fingerprinting son útiles para los sitios webs si además se almacenan en los sitios que visitas junto a tu identidad en ese sitio y además se pueden pasar a terceras compañías para que te reconozcan. Algo muy útil para el mundo de la publicidad y el marketing... pero que incumple las configuraciones de Do Not Track Me que se implementan en los navegadores.
Google fue pillado haciendo este tipo de tracking por el Wall Street Journal y le costó una denuncia y varias multas. Aquí en España Alejandro Ramos localizó varios periódicos y sitios web que utilizaban las técnicas de tracking por medio de eTags y otras técnicas y día tras día las webs implementan nuevas técnicas y trucos para implementar este tracking dentro de la web y de eso va este estudio que me ha encantado: The Web Never Forgets.
WebBrowsing FingerPrinting con Pixel Perfect
El objetivo de las Técnicas de WebBrowsing FingerPrinting es poder reconocer la huella digital de la conexión de un usuario que se conecta a un sitio. Saber las fuentes TrueType, los plugins, el idioma, el User-Agent, la versión de Adobe Flash Player, la dirección IP local si usa WebRTC, los mensajes de error en JavaScript, etcétera, ayudan a identificar de forma única un cliente, y por tanto a ponerle un identificador.
Figura 2: Algunas de las técnicas utilizadas por los productos de WebBrowsing Fingerprinting |
Las empresas que se dedican a este tipo de técnicas, buscan hacer bases de datos entre huellas digitales de conexión y cuentas de Facebook, Twitter, Linkedin, etcétera para poder reconocer a los usuarios que navegan por cualquier web sin que ellos sepan cómo los identifican. Así, cada nueva técnica que se descubre para hacer WebBrowsing Fingerprinting - incluso en terminales móviles - ayuda a identificar mejor a los navegantes. Una de estas técnicas es Pixel Perfect, publicada en el año 2012 y que utiliza el Canvas de HTML5 de los navegadores para reconocer qué versiones de software y hardware usa el cliente.
Figura 3: Un mismo texto se renderiza de formas diversas según el software y el hardware del cliente |
Para ello, el test manda imprimir una tipografía con una determinada característica y genera un hash de la imagen resultante que puede ser reconocida con uno de los grupos conocidos que se tienen pre-calculados.
Figura 4: Funcionamiento del Canvas Fingerprinting de Pixel Perfect |
Así, por ejemplo, se pueden obtener diferencias entre una larga lista de combinaciones distintas que permiten a un programa extraer información del software y hardware del cliente, que pasará a formar parte de la larga lista de atributos que se evalúan en el fingerprinting del usuario.
Figura 5: Tabla de grupos de Pixel Perfect. Se reconocen 50 grupos distintos de resultados |
Las Cookies "casi" Inmortales: EverCookies
Para que sea mucho más eficiente aún el método de reconocer a cada uno de los usuarios, se utilizan las EverCookies, o cookies para siempre. Realmente no es que sean inmortales, pero lo parecen ya que aunque el usuario de a borrar cookies no siempre se consigue el objetivo.
Figura 6: Técnicas y lugares para guardar las EverCookies |
Esto es porque el investigador Samy Kankar creó estas técnicas para guardar el valor de la cookie no solo en los ficheros de cookies tradicionales, sino en cualquier lugar en el que se pueda almacenar algo, como por ejemplo el Local Shared Objects de Flash, en el HTML5 Local o Global Storage, etcétera.
Figura 7: Si una cookie ha desaparecido de un sitio, se vuelve a recrear |
Cada vez que una cookie se lee de uno de todos los sitios en los que mira el JavaScript de EverCookies, automáticamente copia la cookie en todos los demás sitios en los que no esté. De esta forma, si el usuario no ha borrado todos y cada uno de los lugares en los que se ha creado esa EverCookie, el JavaScript podrá leerlo y volver a regenerarlo en todos los sitios.
El Tracking de usuarios: Cookie Sync
El objetivo de estas técnicas es muy sencillo. Imaginad que hay una web a la que llamaremos Web_Origen que está suscrita a una compañía de publicidad que llamaremos Web_Publicidad que paga por conocer qué usuario de la web está navegando en cada instante, con el identificador que ese usuario tienen en la Web_Origen.
El código JavaScript de la Web_Publicidad, que está alojado en la Web_Origen, calcula la huella digital de la conexión en base al WebBrowsing Fingerprinting que utiliza el usuario en la Web_Publicidad. Ese nombre de usuario más la información del WebBrowsing Fingerprinting se pasa por una función de hashing que genera un valor único que se almacenará dentro del navegador web del cliente, además de en el servidor de la Web_Publicidad junto con los datos del usuario de Web_Origen.
Figura 9: Esquema de consulta de datos por ID generado |
Ahora el usuario visita - él cree que de forma anónima - a una Web_Destino que ha contratado los servicios de la Web_Publicidad también. El JavaScript que la Web_Destino utiliza de la Web_Publicidad genera de nuevo el hash del WebBrowsing Fingerprinting y descubre que está ya en el servidor de la Web_Publicidad por lo que realmente ese usuario anónimo es el usuario que se conectó en la Web_Origen. De esta forma puede poner información y publicidad dirigida para ese usuario.
The Web Never Forgets
Explicado todo esto, el estudio del que os quería hablar analiza cuántos sitios en los Rankings Tops de Alexa utilizan este tipo de técnicas para "reconocer" a sus visitantes, y los resultados son impactantes, ya que una buena cantidad de ellos hace uso de ellos.
Entre la lista de scripts descubiertos haciendo uso de estas técnicas, en el Top 100.000 de Alexa hay 5.559 webs que usan estos ficheros de fingerprinting, y sin ocultar mucho su función en el nombre. Estos son los scripts utilizados en los sitios, por si los quieres bloquear.
Al final, parece que estándares como Do Not Track Me no son del gusto de los que se dedican a ganar dinero con tus datos, así que siempre dan una vuelta de tuerca para contarle a las webs que visitas quién eres tú realmente.
Saludos Malignos!
Figura 10: Frecuencia de sitios en los Tops Ranking de Alexa usando estas técnicas |
Entre la lista de scripts descubiertos haciendo uso de estas técnicas, en el Top 100.000 de Alexa hay 5.559 webs que usan estos ficheros de fingerprinting, y sin ocultar mucho su función en el nombre. Estos son los scripts utilizados en los sitios, por si los quieres bloquear.
Figura 11: Scripts detectados para usar estas técnicas |
Al final, parece que estándares como Do Not Track Me no son del gusto de los que se dedican a ganar dinero con tus datos, así que siempre dan una vuelta de tuerca para contarle a las webs que visitas quién eres tú realmente.
Saludos Malignos!
AdBlock para todos, aunque paguen justos por pecadores. ADBLOCK
ResponderEliminarGracias por al análisis. Quisiera formular dos preguntas:
ResponderEliminar1) ¿Sabes si está usando o se podría usar para otros fines aparte de la publicidad personalizada?
2) ¿Existe algún plugin que, ante cada petición, altere de manera aleatoria la huella digital para inducirles a confusión?
El punto 3 de la figura 8-9 es aclaratorio :P
ResponderEliminarCon AdBlock no tiene por qué paga justos por pecadores. Puedes no activar la lista de bloqueo por defecto, y generar la tuya propia. Además tiene la opción de "permitir publicidad no intrusiva" que es genial para permitir justos pero no pecadores.
ResponderEliminarYo ya estoy añadiendo los fingerprinting scripts a mi lista personalizada
Saludos.
Y ¿Cómo nos protegemos de eso, qué podemos hacer?
ResponderEliminarRecomendar la lectura de Cookieless Monster: https://seclab.cs.ucsb.edu/media/uploads/papers/sp2013_cookieless.pdf
ResponderEliminarDraft sobre el fingerprinting:
https://w3c.github.io/fingerprinting-guidance/
@lino esos enlaces están tratados en los enlaces de este post.
ResponderEliminarSaludos
Interesante articulo. Ya días me he estado fijando que las busquedas que hago con google y busquedas en amazon, aunque haya cerrado sesion, me aparecen publicidad alusiva a las busquedas que he realizado pero en facebook y hasta en diferentes maquinas me aparece. El tracking me lo hara el buscador de google o sera amazon ?
ResponderEliminarGracias por la información.
La verdad amigo que con usted siempre se aprende, esta es una de las mejores web sobre seguridad según mi modesta opinión. ¡Lo felicito!
ResponderEliminarCuanto más leo este magnífico blog, más ganas de dan de no volver a encender un ordenador.
ResponderEliminarPor cierto en las imágenes 8 y 9 hay dos puntos 5 no se si es un error o son dos procesos correlativos.
Desde hace mucho tiempo uso NoScript. Entre otros motivos por el abuso de las empresas de publicidad pretendiendo invadir mi intimidad y traceando toda mi navegación por Internet. Como consecuencia de sus actos, hoy en las páginas que visito y gracias a NoScript, no se muestra ninguna publicidad.
ResponderEliminar