Buscar
Social
Ofertas laborales ES
« OpenXava 4.0: Desarrollo Rápido Web con Java | Main | Tapestry 5 estrena web y versión »
martes
nov232010

Con cookies o sin cookies; no importa: en el siglo XXI la privacidad en la web ha muerto

Aunque el contenido de esta noticia no es puramente Java, me parece interesante poner al día a gente que desarrolla portales web (como es el caso de muchos usuarios de esta comodidad) sobre cómo está el estado del arte del tracking de usuarios online, más allá de las simples y tradicionales cookies.


Las Cookies, especialmente las de terceras partes, siempre han sido un mecanismo para realizar tracking de un usuario web cuando se está moviendo entre distintas páginas, y así saber qué sitios visita y poder hacer un perfil preciso de él. Hace unos pocos días me quede completamente sorprendido viendo el perfil que ha hecho sobre mi Google (podéis ver vuestro propio perfil de Google aquí).


Por temas de privacidad, mucha gente desabilitan las Cookies, especialmente las de terceras partes. Menos gente sabe que su plugin de flash (y de Silverlight y similares) también suelen tener "Cookies" propias, y además la interfaz de usuario que permite su configuración no está integrada dentro de la interfaz de usuarios del navegador, por lo que son más difíciles de desactivar.


Sin embargo, la realidad es que a día de hoy da igual lo que hagas, lo que actives o actives. Incluso lo que borres o dejes de borrar. Existen soluciones para realizar tracking que no requieren Cookies. 


Un proyecto muy interesante en esta línea es Evercookie, desarrollado por Samy Kamkar. Evercookie es un API javascript que ha implementado una "super cookie" de la cual es prácticamente imposible librarse. Esta "super cookie" se guarden tu equipo empleando 13 mecanismos diferentes, entre ellos las cookies tradicionales y las de flash, así como todos los mecanismos de Local Storage de HTML 5.


Pero entre los 13 mecanismos hay también ideas muy originales y potentes. Por ejemplo, codificar en forma de imagen un ID único del usuario. Los valores RGB de esta pequeña imagen realmente están codificando tu identificador único (que es lo que es necesario para realizar tracking de un usuario). La imagen en su cabecera indica que puede ser cacheada durante un período muy largo del tiempo. Esta imagen es empotrado en múltiples web que quieren seguir a sus usuarios. Cuando un usuario que tiene la imagen vuelve a pedirlo, el servidor responde 304, por lo que se carga de la cache local. Y empleando el API de HTML 5 canvas esta imagen cacheada puede volver a ser leída por javascript, decodificando así el identificador único del usuario y enviándolo al servidor. La "cookie" es la imagen, que te identifica de modo unívoco.


Otro de los mecanismos que emplea Evercookie es la historia del navegador. Evercookie genera para cada visitante un enlace único, y lo marca como visitado. Después, en otra web, Evercookie prueba a generar múltiples enlaces, sin mostrarlos al usuario, y comprueba su color; como todos sabéis prácticamente todos los navegadores modernos muestran los enlaces visitados en un color diferente de los no visitados. En un tiempo razonable, empleando un esquema jerárquico en la generación de los enlaces, Evercookie es capaz de volver a generar el enlace-identificador único para este usuario. Evercookie sabe que ha generado de nuevo el enlace porque su color es el color de los enlaces visitados. La cookie/identificador único aquí es simplemente un enlace.


Para deshacerse de Evercookie es necesario borrar los 13 sitios donde se guarda a la vez. Si te dejas uno, se vuelve a regenerar y se vuelve a guardar mediante los 13 mecanismos. Desde la página de Evercookie podéis bajar su código fuente (es opensource) e instalar una Evercookie en vuestro equipo a través de un botón, para experimentar con ella.


Pero bueno, en el caso de Evercookie, tienes la opción de borrar los 13 sitios de modo simultáneo. Peor es todavía el proyecto Panopticlick de la Electronic Frontier Foundation (EFF). Este proyecto no almacena nada en tu equipo (así que olvídate de borrar nada...). Este proyecto genera una "huella dactilar" de tu equipo.


Para ello recoge un montón de información que tu equipo hace pública, como las cabeceras de tu navegador, la resolución de tu pantalla (que puede obtenerse a través de Javascript), qué plugins tiene instalado tu navegador, y qué versiones de cada plugin, y un largo etcétera. Empleando sólo esta información, un 83,6% de los equipos que han probado hasta ahora y que no tenían instalado ni Java ni Flash han obtenido una huella única. Es decir, pueden ser identificados únicamente a partir de la huella que genera el proyecto Panopticlick, huella que no se basa en almacenar absolutamente nada en tu equipo.


Si el equipo tiene Java o Flash instalado (la inmensa mayoría de los usuarios lo tienen) el 94,2% de los usuarios genera una huella única. El truco en este caso consiste en emplear Java o Flash para enumerar las fuentes del sistema. Las fuentes suelen variar bastante entre equipos. Encima, las fuentes al enumerarlas se suelen enumerar por orden de instalación, y no por orden alfabético. Esto todavía aporta más información.


Puedes probar el test Panopticlick aquí. A pesar de que ya llevan 1,267,193 testados, al menos mi equipo sigue teniendo una huella única!!!. Os recomiendo que todos hagáis este test por colaborar con el experimento de la EFF.


Y el proyecto Panopticlick hace cosas relativamente sencillas. Hay empresas con soluciones comerciales (por las que cobran a sus clientes) que hacen todo tipo de virguerías. Aquí tenéis algunos ejemplos:

  • Arcot entre sus soluciones de autenticación fuerte tiene un jacascript que, entre otros factores, realiza distintos benckmarks a la CPU para generar la huella única.
  • 41st Parameter a pesar de su nombre, identifica no 41 sino más de 100 parámetros para generar una huella única de cada equipo. Uno de los más ingeniosos es medir la diferencia entre el reloj del equipo y un reloj de referencia con una precisión de milisegundos. Aunque los equipos modernos habitualmente se sincronizan periódicamente a través de Internet, todos los relojes de cada CPU suelen ser diferentes y suelen adelantar o retrasar algunos milisegundos entre sincronizaciones.
  • ThreatMetrix afirma que es capaz de detectar distintas irregularidades en el stack TCP/IP de los equipos, que le permiten realizar tracking ¡incluso de usuarios que se encuentran detrás de servidores proxy!.
  • Iovation afirma tener una base de datos con millones de equipos para los cuales ha generado huellas únicas y a partir de ellos ha generado una base de datos de "reputación" que emplea para recomendar a sus clientes si deben o no aceptar una transacción de un determinado equipo.

El ser capaz de realizar tracking de los usuarios a través de Internet es un mercado muy lucrativo. Y visto el panorama, parece que no hay solución. Las web van a ser capaces de realizar tracking preciso de los usuarios hagamos lo que hagamos. Aunque no nos guste y creó mucha polémica, Eric Schmidt (CEO de Google) tenía razón cuando dijo que la privacidad ha muerto.

Reader Comments

There are no comments for this journal entry. To create a new comment, use the form below.
Comentarios deshabilitados
Comentarios deshabilitados en esta noticia.