Karsten Nohl y Sascha Krißler, ingenieros de sotware expertos en criptografía, han destapado la caja de los vientos en el Chaos Communication Congress, un congreso organizado por Chaos Computer Club. En su presentación, han expuesto cómo han logrado reventar el código primario de cifrado utilizado por la red GSM, gracias a multitud de colaboradores que han ofrecido la potencia de cálculo de ordenadores y consolas de forma distribuida.
Comienzo con una pequeña aclaración. El algoritmo de cifrado ya se conocía, pese a ser secreto, gracias a la ingeniería inversa. Lo que se ha logrado es un mecanismo para obtener rápidamente la clave de cifrado, anulando la protección que ofrece dicho algoritmo.¿Hasta qué punto esto representa un problema? ¿Se está exagerando la noticia? ¿Hace falta cambiar el sistema de cifrado de la red GSM? ¿Tiramos nuestros móviles?Esto no es un problema nuevo. Muchos han estado denunciado las debilidades del sistema de cifrado de esta red, y que la GSM Association no ha tomado las medidas necesarias para paliarlas. Hay que tener en cuenta que los algoritmos utilizados tienen más de veinte años, una barbaridad. Tecnologías más nuevas, como UMTS, no utilizan el sistema de cifrado comprometido, por lo que las redes 3G no se ven afectadas por lo expuesto por el equipo de Nohl.
Algoritmos de cifrado de GSM: buena idea, pero anticuada
GSM utiliza varios algoritmos diferentes de cifrado, para la identificación del usuario, su autenticación, y la transmisión de datos y voz de forma cifrada. Estos algoritmos están distribuidos entre el operador de la red GSM, el teléfono móvil y la propia SIM. De algunos de estos algoritmos hay diferentes versiones.El suscriptor se identifica únicamente un código único, llamado IMSI (International Mobile Subscriber Identity), guardado en la SIM. Junto a ella están la clave única de usuario (Ki), el algoritmo de generación de claves de cifrado (A8), el algoritmo de autenticación (A3) y el PIN. En el móvil GSM está el algoritmo de cifrado (A5). Lo primero es autenticar al usuario en la red. Se comprueba que el IMSI y el PIN de la SIM son correctos, y los algoritmos de cifrado tanto de la SIM como del móvil están en orden.
Una vez autenticado, pasamos a lo que nos interesa debido a la noticia: el algoritmo A5, que se utiliza para transmitir datos por la red. Por seguridad, la clave única del usuario, almacenada en la SIM, no se envía a través de la red. El operador guarda una copia de esta clave, y para que el usuario pueda transmitir de forma cifrada, le envía un paquete aleatorio. Con el algoritmo A8 se genera una clave de sesión (Kc). En el receptor, mediante el algoritmo A5, se genera una respuesta a partir de la clave de sesión Kc única del usuario y el paquete aleatorio enviado por el operador de red. El operador de red realiza el mismo cálculo por su parte y compara los resultados.
Si el cálculo del lado del usuario y el del lado del operador coinciden, es que está todo en orden. Entonces, la voz digitalizada y los datos se van dividiendo en paquetes, se cifran con la clave única, y se transmiten en ambos sentidos. Para poder descifrarlos, necesitaríamos conocer esa clave Kc única. Para descubrir esa clave única, sólo tenemos la secuencia aleatoria enviada por el operador de red y la respuesta que manda el usuario.
El problema es que la operación matemática que aplica A5 no tiene inversa. Es decir, conociendo el resultado, no hay ninguna operación matemática que pueda calcular cuál era la clave única de usuario que ha utilizado el algoritmo para obtener ese resultado.
Existen tres variantes del A5, denominados A5/1, A5/2 y A5/3. El A5/1, como el resto de especificaciones, era secreto pero se obtuvo por ingeniería inversa, y por el momento es el más utilizado. Oficialmente, utiliza claves de 64 bits, lo que a día de hoy es pobre. Pero para colmo, esas claves de 64 bits contienen siempre 10 ceros fijos, por lo que en realidad es de 54 bits (aunque las SIMS actuales ya vienen usando los 64 bits).
El A5/2 apenas se usa, ya que se trata de una versión más débil y barata del A5/1 y lo reventaron al poco tiempo.
El A5/3 es más reciente y robusto, de 128 bits, pero su uso es muy limitado. Ya que implica actualizar hardware, pocos operadores de red se han gastado lo necesario para actualizar sus equipos para que lo soporten.
El algoritmo A5/1 reventado: implicaciones
El grupo ‘The Hackers Choice’ creó un proyecto en 2008 para desarrollar un ataque práctico sobre A5/1 (en el sentido de que fuera posible ponerlo en práctica, y no sólo a nivel teórico). Para ello hacía falta construir una tabla de búsqueda de unos 3 terabytes, que permitiera que dada cualquier combinación de secuencia aleatoria y resultado del cálculo con A5/1, cuál es la clave de usuario que daría ese resultado a partir de esa secuencia.
Sumado a un proyecto de escaneo de redes GSM, sería posible grabar cualquier llamada o SMS de la red GSM, cifrados con A5/1, y en unos minutos disponer de la clave de cifrado y así poder conocer el contenido con un mínimo retraso. Esa tabla se generaría aplicando A5/1 sobre todas las secuencias aleatorias que puede enviar el operador con cada una de las posibles claves de sesión usuario, y calculando el resultado.
Una vez que tengamos la clave, escuchamos la conversación entre el usuario y el operador de red. El operador manda la secuencia aleatoria, y el usuario responde con una cadena generada a partir de su clave de sesión única. Cruzamos esos dos datos en la tabla y al momento tenemos cuál es la clave Kc única que daría ese resultado sobre esa secuencia aleatoria. Listo, ya conocemos la clave de cifrado de las comunicaciones de ese usuario.
La clave Kc varía cada cierto tiempo, pero al tener disponible la tabla, es fácil descubrir la nueva clave.
Pero… ¿cómo se construye una tabla así? Pues de la misma forma que SETI@Home: con una red distribuida. En apenas unos meses, desde septiembre, la potencia de 80 nodos CUDA aportados por colaboradores de todas partes han conseguido generar la tabla, que está disponible por torrents.
Desde la GSM Association se ha emitido un comunicado diciendo que esto no es tan sencillo como lo están pintando, y que el equipamiento necesario para utilizar esta técnica de forma efectiva no está al alcance de cualquiera. También indican que los operadores tan sólo tienen que modificar el algoritmo existente para evitar el problema. Claro, pueden pasarse a A5/3, o implementar otro algoritmo más seguro, pero bastante se han gastado ya en UMTS como para ahora actualizar los equipos de la red GSM.
Pero el propio Nohl durante su presentación dijo que tanto el hardware como el software están disponibles de forma libre, y con unos pocos miles de dólares puedes tener tu estación de escucha. Esto lo sitúa lejos del usuario medio, pero lo deja al alcance de aquellas organizaciones con recursos e intereses suficientes como para ignorar las consecuencias de infringir leyes sobre el secreto de las comunicaciones.
¿Debo dejar de usar mi móvil?
No, no hay que ser tan extremista. Tan sólo ten en cuenta que si te siguen la pista porque pretendes defraudar a hacienda, recalificar unos terrenitos con la ayuda de tu amigo de urbanismo, o poner música del eMule en tu boda, no tengas conversaciones delicadas por tu móvil. Pero no sólo porque ahora esté roto, sino porque un juez podía solicitar escuchas, así que poco cambia la cosa.
El objetivo de todo esto es dejar claro que la tecnología de cifrado usada por GSM está muy anticuada y no es lo suficientemente segura. Hace falta que los operadores den el paso y sellen los agujeros de seguridad que se conocen desde hace tiempo, pero que ahora ya pueden ser explotados.
Gracias a userooo1 por las correcciones al artículo.
Más información | Chaos Comunication Congress Más información | GSM Association Más información | Algoritmo A5/1, Algoritmo A5/2, Algoritmo A5/3 En XatakaMovil | Descifran y publican el código de encriptación primario utilizado en las redes GSM
No hay comentarios:
Publicar un comentario