Vuelvo a la carga con otro de esos artículos que hacen que se te explote la cabeza.
La semana pasada desmitificaba la identidad única de un sistema de verificación basado en la inherencia tan habitual en nuestros días como es la huella dactilar. Básicamente demostraba como, aunque realmente cada huella dactilar (o cada iris del ojo, o cada latido de un corazón) es única para cada persona, en la práctica, y debido a las limitaciones propias del software y hardware utilizado en su medición, no lo es. Hasta el punto de que es posible crear llaves maestras que bypaseen los controles de seguridad biométricos con una tasa de acierto verdaderamente peligrosa.
Hoy quería centrarme en los sistemas de identificación basados en el conocimiento, como es el caso de los patrones de desbloqueo y las contraseñas. Un sistema que, a diferencia de como ocurre con los sistemas de inherencia (basados en un patrón simplificado de la huella original) es exacto (el patrón, PIN o contraseña almacenados en el servidor es exactamente el mismo que el que el usuario debe meter).
Hay algunos peros a esta última afirmación, como la que explicaba recientemente al hilo de cómo Facebook permite varias combinaciones de pares de usuario/contraseña que contengan algún error específico, y lo poco que de hecho afecta esto a la seguridad global del sistema, pero vamos a suponer que en efecto, y como suele ser habitual, para loguearnos en un servicio o dispositivo solo existe una única contraseña: un grupo de caracteres que deben ser insertados en un orden específico, tal cual marca el patrón que el servicio tiene almacenado.
¿Es entonces más inexpugnable una contraseña que un sensor de huella dactilar?
Ya expliqué que no. Aunque tenga alguna ventaja (y esta es una), lo cierto es que resulta mucho más sencilla de robar una contraseña que un patrón biométrico, y las combinaciones posibles son considerablemente menores (lo que ayuda en ataques dirigidos y/o fuerza bruta).
Para colmo, recientemente se ha demostrado que es posible aprovechar un elemento presente en prácticamente todos los dispositivos móviles del mercado para identificar contraseñas con una tasa de acierto que llega a ser del 100%.
El uso de canales paralelos para el robo de contraseñas
Leía hace unos días por EurekAlert! (EN) que varios investigadores de la Universidad de Newcastle (Reino Unido) habían encontrado la manera de aprovechar los sensores de un dispositivo para adivinar el código PIN del móvil.
El proyecto se basa en los datos suministrados por el giroscopio (el sensor que controla la rotación y la orientación de la muñeca mientras sujetamos el dispositivo). Mapearon el movimiento habitual que un usuario realiza cada vez que presiona un botón, generando una suerte de patrón sensitivo para cada uno de los números que pueden conformar un PIN, y con ello, empezaron a hacer pruebas.
En un primer pase su sistema ha conseguido tener una tasa de acierto del 70%. Conforme más intentos incluimos, más posibilidades tiene de acertar, hasta llegar al quinto intento, con una tasa del 100%.
Con solo 5 veces es capaz de reconocer sin posibilidad de fallo el PIN que el usuario utiliza en su dispositivo.
La investigación me parece interesante ya no solo por el hecho demostrado, sino porque de paso abre la veda a que vuele la imaginación.
Cada dispositivo móvil tiene cerca de 25 sensores diferentes, y solo unos pocos (la cámara, el GPS) piden permiso al usuario antes de conceder el acceso a los datos que suministra. Basta de nuevo con que alguien dedique el tiempo suficiente para extrapolar una acción específica (como puede ser apretar la pantalla en el lugar donde habitualmente aparece cada número en el teclado numérico) a los datos suministrados por uno o varios sensores, para acabar teniendo una suerte de mapa de sensores que un tercero podría utilizar para espiar conversaciones y/o robar credenciales.
Tan solo es necesario instalar una aplicación que permita la lectura de estos sensores (recalco que algunos ni siquiera requieren solicitar permiso al usuario), que esa base de datos mapeada hará de las suyas en segundo plano.
Que vale que no es el método más sencillo para realizar el mal. Sin ir más lejos, la mayoría de spyware disponible para iOS y Android se basa en pedir permiso a todo lo habido y por haber, amparándose en que las víctimas generalmente ni se preocupan en esto. O aprovechan una superposición de pantallas que hace que el usuario piense que está incluyendo credenciales en X servicio cuando realmente los datos se envían a una pantalla que está justo debajo de la interfaz visible. Pero sin lugar a duda es el menos invasivo que he conocido hasta la fecha.
Instalas una app que puede ser totalmente legítima, y de paso, en segundo plano, se encarga de monitorizar uno o varios sensores, almacenando todos los inputs que reconoce como potencialmente interesantes (cuatro giros de muñeca que podrían deberse a un PIN, un cambio brusco de altura que podría deberse a que el usuario ha sacado su dispositivo del bolsillo, y presumiblemente va a desbloquearlo, la apertura de una aplicación específica que de antemano conocemos que está situada en X escritorio, y que habitualmente tiene asociado un movimiento específico…).
Un ejemplo más de cómo no hay nada 100% seguro. Que la seguridad depende en buena medida del ecosistema donde debe ser implementada, cada vez más complejo, y que conforme más pasa el tiempo, más bebe la seguridad informática de otras ciencias nobles como es la física, las matemáticas e incluso la biología y la química.