En esta entrada me gustaría repasar algunas técnicas de fingerprinting aplicadas a la privacidad/seguridad informática, teniendo en cuenta que la idea es la misma que en la clásica huella dactilar: aunque todas son parecidas, no hay dos iguales, y se puede identificar individuos concretos analizándolas. Además de las huellas dactilares hay muchos otros casos de elementos de serie o estandar, pero que acaban siendo diferentes e identificativos, como una bala que identifica el arma que la disparo, la rueda de un coche, etc.
En estos ejemplos estamos viendo que son elementos que dejan “huella”, y por lo tanto suponen un riesgo importante para la privacidad (el riesgo se convierte en ventaja para las fuerzas de seguridad del Estado). Estas mismas técnicas llevadas a las redes informáticas nos permiten hacer cosas similares e identificar tipos de sistemas de manera única. Por nombrar tipos clásicos diferentes de herramientas, me gustaría reseñar una de cada tipo:
- Nmap active fingerprinting Fue la primera herramienta que conocí de este tipo: dada una dirección IP, le lanza una serie de paquetes y según las respuestas es capaz de saber que sistema operativo hay al otro lado.
- Passive fingerprinting p0f Esta herramienta obtiene algo parecido a la anterior pero con la gracia de que no necesita enviarle nada, sino que simplemente ve pasar el trafico y con eso ya tiene bastante.
Los dos casos anteriores son clásicos y conocidos, y en el fondo sólo detectan un sistema operativo, pero este proyecto que cito a continuación es bastante mas inquietante:
- No hay dos navegadores iguales, PANOPTICLICK Este proyecto de la EFF nos muestra como cada navegador es diferente de otro, por la diferencia de plugins, fuentes, configuración, de manera que se puede sacar una “huella” diferente de cada uno e identificarlo de manera unívoca. Es sorprendente cómo funciona incluso en equipos de la misma organización, que en teoría deberían de ser iguales. En todos mis equipos en los que he probado el proyecto, nunca me ha salido repetido, por lo que para ese servidor soy “unicamente” identificable.
La base matemática de cualquier fingerprinting es bastante sencilla; sólo tiene que tener un número de parámetros variables de entrada, y una respuesta. Con eso, simplemente se rellena la tabla, si es capaz de identificar lo que se quiere con las entradas, tenemos la respuesta, si aparece un nuevo patrón, se da de alta. Dicho esto, si combinamos las nuevas tecnologías con las huellas físicas o comportamientos físicos/humanos, da lugar a interesantes e inquietantes nuevas posibilidades. Por ejemplo:
¿Puede identificarse un individuo por la manera en la que teclea? ¿Cadencia de tecleo, letras que teclea más rápido, etc.? Si se escanea una firma, ¿puede identificarse o diferenciarse no por el trazado final, sino por la fuerza, velocidad de los trazos? Seguro que más de una vez han reconocido a una persona desde lejos solo por la manera de caminar; ¿puede automatizarse este rasgo y combinado con otros rasgos identificar individuos? En este caso, la huella que dejaríamos que nos identificaría, no es física, sino virtual, ya que la podrían recoger cámaras, sensores, etc.
Adicionalmente, se pueden realizar técnicas de fingerprinting de manera activa, es decir interaccionando con el individuo u objeto que se quiera perfilar, o de manera pasiva simplemente “viendo” pasar al individuo o sus dispositivos, sin que tenga éste que hacer nada especial, y por supuesto, sin su consentimiento.
Sin duda nuevas posibilidades, cada una de ella con sus ventajas e inconvenientes que los individuos y las organizaciones tendremos que gestionar.
[…] Fingerprinting (…) En estos ejemplos estamos viendo que son elementos que dejan “huella”, y por lo tanto suponen un riesgo importante para la privacidad (el riesgo se convierte en ventaja para las fuerzas de seguridad del Estado). Estas mismas técnicas llevadas a las redes informáticas nos permiten hacer cosas similares e identificar tipos de sistemas de manera única… […]