Explotando WIFIs compartidas de iPhone

La eterna lucha de Apple contra la seguridad. Una empresa que ha sido capaz de desarrollar productos tan tremendamente robustos como iMessage o FaceTime, y que en cambio tiene en su haber algunas de las vulnerabilidades más extendidas, como la incapacidad de borrar conexiones WIFI pasadas a no ser que te vuelvas a conectar.

WPA

Por ello seguramente la noticia no le sorprenderá a nadie.

Investigadores de la universidad Friedrich-Alexander han han sacado a la luz el método de generación en iOS de la clave por defecto cuando se activa la conexión WIFI compartida (EN).

Lees esto una mañana justo antes de entrar en una sede de telefonía para un evento de desarrolladores con tu querido iPad Mini en la mano y te entra el tembleque tonto. Luego te detienes y piensas:

Va, seguro que estamos ante los típicos analistas con un pedazo de ordenador de la ostia que han acabado por petar el algoritmo de aleatoriedad que usarán los de Cupertino para generarlo después de meses de tedioso estudio.

Como vas con tiempo, te dedicas a “cacharrear” con el chisme probando las posibles contraseñas autogeneradas para la PSK. Y vuelve el tembleque.

Te das cuenta que la clave está formada por una sucesión de caracteres seguida de 4 dígitos.  Vuelves la vista hacia atrás, y recuerdas que romper una contraseña numérica de 4 dígitos lo hace hasta la hija de ocho años de tu vecino con la baticao a fuerza bruta, por lo que pones toda la esperanza en esa sucesión de caracteres, y le das unas cuantas pruebas más.

¡WTF!

Esa es la expresión que se te viene a la cabeza cuando a base de probar y probar, ves que de aleatorio tiene poco. La sucesión de letras sigue dos patrones muy claros:

  • Entre 4 y 6 caracteres.
  • Forma palabras o nombres reales.

Lo que quiere decir que la única parte aleatoria es el hecho de recorrer una biblioteca de palabras, que presupones infinita. Pero ahí es donde entran los ya citados investigadores.

Mientras tu estás llegando al evento, a estos chicos les dio por tracear con un diccionario de 52.500 entradas, sacadas nada menos que del “Scrabble“, ese popular juego que seguramente habéis sufrido en alguna noche de esas que es mejor olvidar ¡Y voilà! Éxito absoluto.

El caso es que no contentos con ello (a fin de cuentas acertar a la primera suele ser signo de que algo está mal), decidieron aplicar un poco de minería en el código (ahí la diferencia entre un aficionado y un profesional), y es así como encontraron una correlación entre la llamada al método supuestamente aleatoria, y otro perteneciente al Framework “ProofReader” usado para la corrección ortográfica.

Ahora faltaba hacer ingeniería inversa y reproducir la situación en un entorno controlado, de esos que primero arrojan millones de posibles soluciones y con el tiempo se van estabilizando, hasta llegar al bonito número de  1.842 palabras distintas.

Ala, de algo aparentemente aleatorio, pasamos a un algoritmo del tipo 1.842*104, un número que a día de hoy cualquier ordenador de andar por casa explota en poco más de un minuto (y si tienes un pepino de ordenador en menos).

Como era de esperar, se RECOMIENDA (ojo a esas mayúsculas en negrita) no usar la contraseña que tan gentilmente nos genera “aleatoriamente” (ojo a esa itálica entre corchetes) iOS a la hora de compartir nuestros datos como punto de acceso WIFI. En el mismo servicio, podéis crear una contraseña propia, que a poco que no uséis una palabra real y le metáis unos números será hasta más segura 🙂