I didn’t set a cookie («No he puesto ni una cookie») es un proyecto de esos de fin de semana de Kuber Mentha, que andaba investigando la identificación mediante huellas digitales (fingerprinting) de los visitantes a una página web. El resultado es tan inquietante como didáctico, además de ser de código abierto. La página es una especie de demo y no está pensada para «hacer el mal», así que ni guarda tus datos. Y, apropiadamente, no te pone ni una cookie, como su propio nombre indica.
Y es que las cookies son como las brujas malas de la web, unas asustar viejas: todo el mundo las acusa de ser lo peor y en realidad hoy en día ya no hacen ni falta. Tan es así que la página de Mentha puede identificar 166 señales distintas para crear un fingerprint único e identificar a los visitantes. No hace falta ni darle permisos (aunque en un momento dado los pide, como un extra); todo sucede a través de los datos expuestos por los navegadores web y los datos que circulan en cada conexión.
En la misma visita se puede ir viendo (¡tachán, tachán! paso a paso para hacerlo más inquietante) datos como el sistema operativo, el navegador web real (aunque intente ocultarse), el proveedor de Internet o la ciudad (más o menos). También están otros muy típicos como la resolución de pantalla, el nivel de batería, el hardware gráfico y el número de cámaras y micrófonos conectados. Más llamativas son las fuentes tipográficas o incluso poder distinguir si el usuario utiliza herramientas de programación. Esto último me pareció un buen truco: contrastando las fuentes tipográficas instaladas con una lista de las más habituales en programación se puede saber si la persona es programadora o no (y casi seguro que acierte). Toma perfilado.
Otro dato que me sorprendió es que sepa cuántas voces sistéticas (texto-a-voz) hay instaladas en el sistema, supongo que cosa de mi MacOS; por no hablar de que hace un gran guiño al decir «tu navegador pide el Do Not Track para evitar el seguimiento… pero lo he ignorado». ¡Touché! Además, descubrió que tenía instalado y activado mi media player (ni me acordaba) con un truco muy ingenioso: hace una petición a varios de los puertos típicos, mide el tiempo de respuesta y si en vez de una denegación en unos 30-60 ms (que sería lo habitual si el puerto está cerrado) la petición se deniega en más de 1200 ms… es que el puerto existe y por tanto esa aplicación (media player) está abierta localmente. ¡Muy bueno!
También hay otro par de datos relativos al comportamiento humano del usuario, para lo cual muestra cómo es capaz de analizar el ritmo de escritura y bastante información sobre el perfil publicitario (qué temas de interés, qué has buscado…), dado que el resto de dato pueden enviarse como parte de una puja publicitaria OpenRTB en apenas una décima de segundo. Esto ya inquieta más.
La combinación de todo esto crea una huella digital del navegador (browser fingerprint) con, cierto número de bits de entropía que te dicen cuán improbable es que seas el mismo visitante que otro. En mi caso solo 1 de cada 145 millones de personas tenemos exactamente la misma configuración, así que… no puedo refugiarme en la masa.
El autor recuerda al final del todo que en este proyectillo el objetivo no es recopilar datos, sino mostrar cómo se hace: junto a cada sección hay un enlace que explica las técnicas usadas. Todo funciona localmente en el navegador y el proyecto es de código abierto para quien quiera aprender más. Y, parafraseando al chiste infantil, «mira mamá, sin cookies».
☞ El artículo completo original de alvy@microsiervos.com (Alvy) lo puedes ver aquí


No hay comentarios.:
Publicar un comentario