Al ser HTTP un protocolo sin estado, las aplicaciones y servidores web necesitan identificar a los usuarios, así como las acciones que llevan hechas (por ejemplo, el saber el contenido del típico carrito de la compra de una web de comercio electrónico), mediante la utilización de Cookies. Éstas no dejan de ser más que una cadena de caracteres más o menos larga, que se intenta que sea de generación aleatoria y única para cada usuario. De esta manera, cuando entramos en una página en la que nos autenticamos anteriormente por ejemplo, veremos como las siguientes veces (si no hemos hecho un Logoff), el servidor "mágicamente" reconocerá nuestro usuario como aún "loggeado".
Este tipo de mecanismo tiene sus fallos y si logramos interceptar una cookie válida de otro usuario (aprovechando un XSS, robándole el PC, sniffando el tráfico web , etc,....) podremos suplantar su identidad.
Bruce Schneier, publicó una entrada en su blog sobre un mecanismo para identificar un navegador determinado de forma única. En Panopticlick, detectando una serie de parámetros de nuestro navegador (User Agent, Cabeceras HTTP_ACCEPT, Detalles de Plugins de navegador, Time Zone, Configuración de pantalla y colores, Fuentes de Sistema, admisión de cookies, test de supercookies limitadas)
Después de hacer diversas pruebas, no termino de creérmelo del todo. Es decir, accedo a hacer el test de la página y me dice que "El fingerprint de tu navegador parece ser único entre los 402.693 que ha escaneado hasta ahora". Repito la prueba sin reiniciar el navegador y me dice que sigue siendo único entre los 404.185 que ha probado hasta ahora?????
A ver, por partes. ¿Me dices que en la segunda prueba mi navegador sigue siendo único (yo estoy seguro que no he cambiado ningún parámetro desde hace un minuto) y hace unos milisegundos se ha hecho una prueba con el mismo navegador? Pero no perdáis de vista el número de navegadores probados: En menos de un minuto ha pasado de 402.693 a 404.185. Tienen más visitas que Google ¿o cómo hacen las cuentas? Repito reiniciando el navegador y no haciendo ningún cambio y sigue diciendo que sigue siendo único.
Se me ocurren varias explicaciones:
- o balancean entre varias máquinas para hacer los tests y no utilizan un repositorio compartido para almacenar el fingerprint de los navegadores que analizan,
- o el algoritmo que utilizan no está todo lo fino que debería,
- o es un FAIL total.
Ojalá entre nuestros lectores encontremos a algún afortunado que no "fingerprintee" como única su configuración de navegador entre las "taitantasmil" analizadas.