3) LA TELEFONÍA GSM: ACIERTOS Y FALLOS

El sistema de telefonía móvil utilizado en Europa se denomina GSM. Las iniciales significan Group Speciál Mobile, o bien Global System for Mobile Communications, que en esto no parece haber acuerdo. Cualquiera que sea su nombre real, representa un grupo de estándares gestionado por la GSM Association[25]. Entre esos estándares se encuentran los necesarios para la autenticación y cifrado.

Para entender el uso que se hace de la criptografía en la telefonía GSM, hemos de considerar los diferentes elementos que componen el sistema. Por un lado, está el terminal telefónico; por otro… bueno, en realidad hay un conjunto de subsistemas: la antena o estación base, el centro de conmutación, el de autenticación y otros más. Para simplificar, hablaremos simplemente de tres elementos: el móvil, la estación (o antena) y la red.

La estructura de seguridad se configura en dos fases: autenticación y cifrado. En la primera fase, el móvil y la estación han de asegurarse de que “el otro” está autorizado para entrar en la conversación; en la segunda fase, se cifra la comunicación. Por supuesto, ello conlleva la necesidad de intercambiar alguna clave de cifrado de forma segura. Eso significa que, en conjunto, necesitaremos tres algoritmos criptográficos:

—A3 para la autenticación

—A8 para la generación de claves

—A5 para el cifrado de la conversación

Vamos a comenzar el proceso de negociación entre el móvil y la estación. Comienza por una petición de sesión segura por parte del móvil, una especie de “hola, soy yo, ¿puedo conectarme?” La estación, escéptica y con buen motivo para ello, envía la solicitud al llamado centro de autenticación, quien responde enviando un triplete de datos: en primer lugar, una clave Ki; en segundo lugar, un paquete de datos aleatorios RAND; y en tercer lugar, un paquete llamado SRES (Respuesta Firmada), que se obtiene aplicando el algoritmo de autenticación A3 a partir de Ki y RAND. Es decir, podríamos escribirlo como SRES=A3(Ki,RAND).

El motivo de hacerlo de este modo es que así se preserva el secreto de Ki. Esa clave solamente existe en dos lugares: en el centro de autenticación de la red, y en la tarjeta SIM del móvil. El móvil ha de demostrar que posee dicha clave Ki, pero no puede transmitirla por la red; y la estación no puede decir “eh, móvil, ¿es Ki tu clave secreta?”, porque si lo hiciese cualquiera podría captarla.

El problema estriba en que ambas partes deben convencerse mutuamente de que conocen un secreto, pero sin revelarlo. Para conseguirlo, el sistema le dice al móvil: “si eres tú de verdad, toma este paquete RAND que te envío, pásalo por el algoritmo A3 usando tu clave Ki, y envíame la respuesta”. Y eso hace el móvil. Si el SRES calculado por el móvil es el mismo que el generado por el centro de autenticación, eso significa que el móvil realmente posee la clave Ki, y por tanto, es quien afirma ser.

Puede parecer que el paquete RAND aleatorio es superfluo, pero no lo es. Imaginemos que el paquete SRES solamente se calculase a partir de la clave Ki. En tal caso, un atacante podría captar A3(Ki) en cualquier momento. No sabe qué vale Ki, pero sí sabe que A3(Ki) es la respuesta que hay que dar a la red para hacerse pasar por el interlocutor válido; así que en cualquier caso no tiene más que decir “A3(Ki)” y acceder al sistema. Por el contrario, el paquete de datos A3(Ki,RAND) varía con cada petición de conexión, de modo que un valor correcto le dice a la red que a) el móvil es del dueño de la clave Ki, y b) la petición es actual, no una grabación de hace dos semanas. Y, por supuesto, si ambos valores (el del móvil y el de la red) no coinciden, la red puede bloquear la comunicación, y en caso necesario informar de que un móvil ha sido robado. Este proceso tiene lugar cada vez que conectamos el móvil y también, como mínimo, cada vez que el móvil pasa a la zona de cobertura de otra antena distinta.

Puesto que no hace falta que nadie conozca la identidad de nadie cada vez que alguien llama, la red nos identifica con una identidad temporal, en la forma de un código llamado Identidad Temporal de Suscriptor Móvil (TMSI). Esto garantiza la privacidad, de forma que un intruso no puede conocer quién está al otro lado de la línea. Es algo así como un edificio con control de acceso donde, para no tener que llevar el DNI a la vista, el guardia de seguridad me entrega una acreditación que pone “visitante temporal autorizado número 812”. La idea es que, una vez me he identificado a satisfacción en la puerta, no necesito ir mostrando mi identificación a todos, y solamente necesito demostrar que estoy autorizado a estar allí.

De acuerdo, ya estamos identificados ante la red. Ahora tenemos el problema de acordar una clave común a ambos para cifrar las conversaciones que hagamos en el futuro. Por supuesto, no vamos a usar nuestra clave Ki, porque es la “clave” de nuestra identidad como usuarios de móviles, y resulta demasiado valiosa para tontear con ella. En estos casos, se recurre a una clave de sesión a la que llamaremos Kc, válida únicamente para una sola llamada. Para obtener Kc se usa un algoritmo de generación de claves denominado A8. Como el A3, también usa el paquete aleatorio RAND y la clave Ki como datos de entrada. De este modo, Kc=A8(Ki,RAND) es calculada de modo independiente por el móvil y por la estación.

En realidad, tanto A3 (autenticación) como A8 (generación de claves) se basan en el mismo algoritmo. Lo que hace ese algoritmo es tomar Ki, RAND como datos de entrada y generar un paquete de 128 bits de salida. Los primeros 32 bit constituyen la respuesta SRES, y los últimos 64 bits forman la clave Kc para el algoritmo de cifrado A5. Ya hemos autenticado el móvil frente a la red, hemos obtenido una clave para cifrar, y lo único que queda es hablar.

Ahora bien, un detalle muy importante que el lector tiene que tener claro es que A3, A5 y A8 no son los nombres de algoritmos concretos. La GSMA no apoyaba el uso de un algoritmo u otro, así que dejaba a las operadoras telefónicas que escogiesen sus favoritos con tal que cumpliesen ciertas características técnicas. Para entendernos, es como si usted, al comprar un piso, tuviese libertad para escoger la caldera de gas que quisiese. Cualquiera vale, con tal de que cumpla ciertos parámetros: diámetro de los tubos, caudal de agua, etc.

Ahora bien, si usted tiene mil cosas en la cabeza y no sabe gran cosa de calderas, su elección más probable será la que le sugiera el constructor. Eso pasó en la telefonía móvil GSM. La GSMA sugirió un algoritmo de autenticación/generación de claves A3/A8, de origen alemán, llamado COMP128, y un algoritmo de cifrado A5, al que a falta de nombre mejor dejó bautizado como A5 (con lo que A5 pasó a representar un algoritmo de cifra concreto, en lugar de “uno cualquiera”). Estos algoritmos fueron desarrollados por el Grupo de Expertos sobre Seguridad de Algoritmos (SAGE) del Instituto Europeo de Estándares de Telecomunicación (ETSI), con la advertencia de que cualquier operadora podría escoger el que desease. ¿Y qué sucedió? Pues que las telecos, que no son agencias criptológicas ni aspiran a serlo, se limitaron en su mayoría por adoptar los algoritmos que se le ofrecieron de serie.

Se trató de una elección que simplifica la tarea, pero se basaba en el supuesto de que los algoritmos eran eficaces y seguros. Y seguros, lo que se dice seguros… vale, le estropearé la sorpresa: no lo son. El fallo fue el mismo que el cometido por otras empresas usuarias de productos criptográficos: crear ellos mismos sus algoritmos, en un proceso cerrado y con seguridad mediante oscuridad, en la esperanza de que nadie más que ellos conocerán sus entresijos.

Los algoritmos de cifrado y autenticación GSM fueron desarrollados en secreto, e incluso hoy día sus detalles son confidenciales. Quien esto escribe realizó una petición oficial de información en 2001. La respuesta fue: desafortunadamente, las reglas que rigen la distribución de las especificaciones de los algoritmos GSM solamente me permiten distribuirlas a los operadores y fabricantes GSM (James Moran, Director de Seguridad y Fraude de la GSM Association, Mayo 2001). Incluso en la actualidad, los algoritmos de cifrado y autenticación GSM originales siguen sin ser oficialmente publicados y permanecen bajo control de la GSM Association[26].

A pesar de ello, los algoritmos se filtraron e hicieron públicos, o se reconstruyeron mediante ingeniería inversa, al menos desde 1994. En el caso del algoritmo COMP128, el algoritmo de autenticación y generación de claves, se filtró una copia en código fuente C, recreada por los investigadores Marc Briceno (de la Smartcard Developers Association), Ian Goldberg y David Wagner (ambos de la Universidad de California-Berkeley) en 1998[27]. Se trata de una función unidireccional tipo hash, que recibe una entrada de 256 bits para producir una salida de 128 bits. Ya puestos en faena, realizaron un estudio criptoanalítico, y descubrieron que el algoritmo de autenticación de GSM es débil. Un fallo permite obtener la clave de 128 bits Ki. Los requisitos: acceso físico a la tarjeta SIM y unas ocho horas para efectuar un total de 150 000 interrogatorios electrónicos[28].

Para entender el mecanismo exacto del ataque hay que tener conocimientos criptográficos, pero vamos a simplificar un poco. En general, un algoritmo se puede ver como una máquina de entrada y salida. Los bits entran por un lado, se los mezcla cuidadosamente como las cartas de un juego de naipes, y luego salen. En el caso de un algoritmo de cifrado, ese proceso de mezcla ha de ser tal que no revele información en absoluto ni sobre la clave ni sobre la entrada de datos inicial. Pero si no está bien diseñado, es posible obtener información en ciertas circunstancias. Si el esfuerzo para obtener la clave es inferior al que necesitaríamos para probar todas las posibles claves, tenemos un ataque criptoanalítico con éxito.

En nuestro caso particular, tenemos la función que hemos llamamos A3, y que ahora viene representada por el algoritmo COMP128. Se trata de una función que toma un paquete de datos RAND como entrada, una clave Ki, y a partir de ahí produce un paquete de 128 bits. Matemáticamente podemos representarlo como COMP128(Ki,RAND). Su esquema interno está basado en la repetición de dos procesos: una función de compresión, que toma los datos y los combina con los bits de la clave; y una función de permutación, que cambia los bits de posición. Esta operación se repite un número determinado de veces, y el resultado final son los bits de salida, que como vimos servían para el proceso de autenticación y para obtener la clave de cifrado de la conversación telefónica.

El problema es que el esquema de barajado es imperfecto, concretamente la función de compresión. En teoría, en cada ronda todos los bits de la clave deben estar bien “mezclados” con los datos de entrada, de forma que usamos un valor de RAND, o uno de la clave, que varíen siquiera en un solo bit, el resultado COMP128(Ki,RAND) sea totalmente distinto. Ese es el objetivo a conseguir. Debido a un fallo en un paso de la función de compresión, algunos bits de salida dependen solamente de unos pocos bits de entrada. Gracias a eso, se pueden escoger valores de RAND muy parecidos entre sí (llamémosles RAND1 y RAND2) que producen la misma salida final, esto es:

COMP128(Ki,RAND1) = COMP128(Ki,RAND2)

Cuando sucede esto, recibe el nombre de “colisión”. En este caso particular, una colisión permite conocer parte de la clave. Concretamente, si RAND1 y RAND2 son iguales salvo los bits 1 y 9, se produce una colisión que revela los bits 1 y 9 de la clave Ki. A continuación tomamos otros valores de RAND1 y RAND2 que solamente se diferencien en los bits 2 y 10, y cuando encontremos una colisión tendremos los bits 2 y 10 de la clave. Repitiendo el proceso acabaremos recuperando los 96 bits de Ki.

La obtención de la clave Ki representa un suceso muy grave, ya que está asociada unívocamente a la tarjeta SIM, lo que significa que un atacante que la conozca podría clonar la tarjeta. Por ello, resultó desconcertante la respuesta de la GSM Association. En primer lugar, negaron la mayor: según ellos, duplicar una tarjeta SIM no es clonarla porque la red no permite el uso de dos teléfonos con el mismo número al mismo tiempo (algo como mínimo discutible). Luego afirmaron, tan tranquilamente, que copiar una tarjeta SIM “no es nada nuevo,” pero que requiere un equipo electrónico muy sofisticado. Sin embargo, fueron desmentidos por el grupo hacker alemán Chaos Computer Club, que pronto consiguió aplicar el ataque Wagner-Briceno-Goldberg (WBG) y clonar con éxito un móvil[29], llegando incluso al extremo de hacer público el código informático que utilizaron[30].

Un clavo (ardiendo, en mi opinión) al que se agarraron los representantes de la industria fue el hecho de que el ataque requería acceso físico[31], algo en lo que también hizo hincapié la Asociación de Industrias de Telecomunicación Móvil (CTIA), quienes también esgrimieron el hecho de que clonar una tarjeta de móvil es un delito federal[32]. Una empresa de seguridad relacionada con temas de telefonía y redes afirmó que el nuevo ataque no permitía clonar tarjetas SIM por el aire (es decir, sin presencia física), pero al mismo tiempo confirmaba que el ataque WBG era “verdadero, reproducible y técnicamente sólido[33].

Para los lectores interesados en una refutación más a fondo, les recomiendo consultar el excelente compendio que en su día hizo Jesús Cea Avión[34]. Yo quisiera subrayar un punto importante: el ataque no requería necesariamente acceso físico. Los autores del estudio WBG afirmarían más tarde que

"Extensas conversaciones con ingenieros de GSM nos hacen concluir que los ataques ‘por el aire’ deben ser considerados posible en la práctica para un atacante sofisticado. No hemos intentado aún construir una demostración de laboratorio (parece que sería ilegal, bajo las leyes de EEUU, hacer este tipo de investigación), pero los expertos de GSM con los que hemos hablado han confirmado que sería posible en teoría y en la práctica. Han informado de que diversos aspectos de los protocolos GSM se combinan para permitir montar el ataque matemático de entrada escogida sobre COMP128, si se pudiese construir una estación base falsa. Tal estación base no necesita soportar todo el protocolo GSM, y podría ser construida por unos 10 000 dólares"[35].

En cualquier caso, sea por el aire o con acceso físico, el ataque WBG puso contra las cuerdas a las telecos por varios motivos. Primero, porque un algoritmo de autenticación supuestamente robusto caía de forma estrepitosa. Segundo, porque la industria vio expuestas sus vergüenzas al aire al escoger, casi sin excepción y sin evaluación independiente, el algoritmo por defecto en lugar de escoger uno propio. Tercero, y fue algo que en su momento no se subrayó, el ataque WBG no solamente permite clonar teléfonos, sino algo mucho peor: clonar estaciones de telefonía móvil. La “estación base” descrita en el párrafo anterior podría servir como un centro para interceptar llamadas, lo que constituiría una valiosa herramienta para agencias de inteligencia y otros curiosos no autorizados.

Una de las soluciones que adoptaron algunas operadoras de telefonía fue restringir la vida de sus tarjetas SIM a 2^16 (65 536) operaciones. Un investigador que en 2003 presentaba una mejora del ataque WBG sugirió esta misma idea, y añadió que “muchos teléfonos GSM no harán 50 000 llamadas en toda su vida[36]. En efecto, ayudaría a proteger hasta cierto punto contra el ataque WBG original, pero no contra otros ataque mejorados que podrían producirse en el futuro, ya que —no hay que olvidarlo— los ataques criptoanalíticos van mejorando en potencia y prestaciones con el tiempo. Lo que hoy requiere 150 000 interrogatorios electrónicos puede necesitar solamente 1000 mañana. Como ejemplo, un artículo de 2002, de Josyula Rao y otros, mostró un ataque que solamente requiere ocho textos llanos escogidos por el atacante[37]. Su duración es del orden de minutos.

Puesto que el fallo correspondía al algoritmo COMP128, lo lógico sería sustituirlo, o como mínimo modificarlo; y así se hizo. El viejo algoritmo se rebautizó como COMP128-1, y a continuación se redactaron dos versiones: COMP128-2 y COMP128-3. No han sido publicados, así que no se conocen sus detalles ni su fortaleza, y tampoco se sabe cuándo fueron utilizados para sustituir a COMP128-1 o qué redes de telefonía los usaron, aunque hay referencias que indican que COMP128-1 seguía siendo utilizado por algunas operadoras a finales de 2009[38]. Al parecer, COMP128-2 fue diseñado para contrarrestar el ataque WBG, en tanto que COMP128-3 fue una “mejora” para fortalecer la calidad de la clave de cifrado de la conversación[39]. El motivo por el que he escrito “mejora” entre comillas lo veremos en breve. No se lo pierdan, porque no tiene desperdicio.

Comencemos con A5. En teoría, los detalles del algoritmo son secretos. Cuando un instituto de investigación o una operadora telefónica recibe la información técnica de algoritmos secretos, lo habitual es firmar antes un acuerdo de no divulgación por el que se comprometen a mantener confidencial la información recibida. Pero a veces hay filtraciones. Una operadora de telecomunicaciones británica envió las especificaciones de A5 a la Universidad de Bradford, pero olvidó decirles que firmasen el acuerdo de confidencialidad. Eso permitió que los documentos se filtrasen. En la actualidad, hay multitud de copias del algoritmo en Internet, como la que se guarda en[40], y eso nos brinda la oportunidad de examinarlo.

Desde un punto de vista técnico, podemos clasificar el algoritmo A5 como una cifra de flujo (stream cipher). Tres registros LFSR de 19, 22 y 23 bits, se combinan para producir una clave pseudoaleatoria que se suma (XOR) al mensaje para obtener el mensaje cifrado. A efectos prácticos, por tanto, A5 funciona con una clave de 19+22+23=64 bits, lo que lo haría mucho más resistente a ataques de fuerza bruta que otros algoritmos de la época como el conocido DES. Según Bruce Schneier cuenta en su libro Applied Cryptography:

Se está haciendo evidente que las ideas básicas tras A5 son buenas. Es muy eficiente. Pasa todos los test estadísticos; su única vulnerabilidad conocida es que los registros son lo bastante cortos para hacer posible una búsqueda exhaustiva”.

La vulnerabilidad mencionada por Schneier se basa en que existe un ataque trivial: suponiendo conocidos los dos primeros LFSR, y conocida la clave pseudoaleatoria, se puede deducir el estado del tercer LFSR. Eso significa que la fortaleza del algoritmo es solamente equivalente a la de un algoritmo de 39 bits. El criptoanalista británico Ross Anderson llegó a afirmar que, por dicho motivo, A5 debería estar libre de controles a la exportación[41]. En aquella época todavía existían fuertes controles a la exportación de material criptográfico fuerte, y aunque a mediados de los años 90 la Unión Soviética había desaparecido, los países occidentales temían un mal uso por parte de países como el Irak de Sadam Hussein. Por ese motivo, había dos “sabores” de A5: el A5/1, reservado para uso doméstico, y el A5/2 debilitado para exportación. Puede el lector acceder al código fuente de ambas versiones en[42] y [43], respectivamente. Y, para ser correcto, existe una tercera variante, llamada A5/0, que significa “sin cifrado en absoluto”.

Resulta paradójico que un sistema de cifrado demasiado fuerte para ser exportado acabe siendo débil en exceso. Toda la historia del algoritmo A5 siempre ha sido controvertida. Según Anderson y Schneier, cuando se comenzó a plantear la seguridad del algoritmo de cifrado GSM, allá por los años 80, hubo una fuerte trifulca entre las diversas agencias de inteligencia occidentales. Alemania, que compartía frontera con el Imperio del Mal (en palabras de Ronald Reagan) deseaban un algoritmo fuerte, pero otros países aficionados a poner la oreja se decantaban por un algoritmo débil, y finalmente estos últimos acabaron imponiéndose. El actual A5 es un sistema basado en una cifra naval francesa, especialmente eficiente cuando está implementado en hardware[44].

Rumores aparte, lo cierto es que una cifra con una fortaleza real de 40 bits entra dentro de lo que se consideraba tan débil que podía exportarse a terceros países, así que muy bueno no es. Eso, por supuesto, suponiendo que no fuese susceptible a otros ataques criptoanalíticos. Para su desgracia, lo fue, y enseguida veremos algunos ejemplos.

Antes hemos de explicar un detalle escandaloso. Cuando el grupo WBG efectuó su análisis del algoritmo COMP128, se reveló algo sorprendente. Como recordarán, uno de los productos de salida de COMP128 era un paquete de 64 bits (Kc) que funciona como clave de sesión para cifrar la conversación. Bien, pues lo primero que descubrieron los investigadores fue que el algoritmo había sido debilitado, de tal forma que 10 de esos 64 bits ¡son siempre iguales a cero! Sí, como lo oyen: un algoritmo que se vende con 64 bits teóricos, es en la práctica 1024 veces más débil.

La GSM Alliance intentó explicar este estropicio dándole la vuelta a la tortilla: no es que hayamos debilitado el algoritmo, dijeron, sino que los diez bits adicionales “proporcionan a los operadores [de telefonía] una flexibilidad adicional como respuesta a amenazas de seguridad y de fraude” [31b]. Decida el lector lo que quiera creer. En cualquier caso, si la versión COMP128-2 se desarrolló para contrarrestar el ataque WBG, el escándalo de los diez bits obligó a la industria a desarrollar una nueva variante que, por fin, proporcionase una clave de 64 bits, y esa fue la COMP128-3. Por eso antes la llamé “mejora,” ya que aunque técnicamente es una mejora respecto a la situación anterior, no hacía sino volver al supuesto statu quo ante.

Ahora que los algoritmos A5 (en sus dos variantes) eran públicos, los ataques criptoanalíticos se sucedieron. Comencemos por la versión de exportación A5/2. Es bastante parecido a su “hermano mayor” ya que también cuenta con registros LFSR de 19, 22 y 23 bits. Se diferencia en el mecanismo que hace funcionar esos registros: ahora los tres registros se ponen en marcha y se detienen siguiendo las instrucciones de un cuarto LFSR, que actúa como un reloj.

Al ser destinado específicamente para la exportación, no nos sorprenderá descubrir que había sido debilitado. El mismo equipo (Wagner, Briceno, Goldberg) descubrió en 1999 un ataque criptoanalítico contra A5/2, que presentaron de forma oral en el simposio Crypto 99 de Santa Bárbara, California. Aunque nunca se molestaron en darle forma de artículo, las descripciones que hicieron informalmente nos dan suficientes detalles: se necesita una pequeña cantidad de mensaje cifrado, y el factor de trabajo es de 2^16[45]. Es decir, A5/2 es tan débil como un buen algoritmo de 16 bits. Esto significa que los ataques pueden hacerse en tiempo real con equipo sencillo… así que ya podemos imaginarnos el banquete que se han dado las agencias de espionaje electrónico como la NSA o la GCHQ durante estos años. A todos los efectos, es como si no se cifrase nada.

Las propias operadoras lo reconocieron, pero tardaron mucho en tomar medidas al respecto. Parece que la idea subyacente era que, puesto que A5/2 es débil y todo el mundo lo sabe, ¿qué importa? El ataque WBC ponía en evidencia la vulnerabilidad de un algoritmo ya de por sí débil. Pero finalmente, las consideraciones económicas pesaron más que las de seguridad. Ya no interesaban tanto tener un algoritmo débil para la exportación. La Guerra Fría había acabado, y si la telefonía GSM era incapaz de proporcionar cifrado mínimamente fuerte a terceros países, otros lo harían. Los Sadam Hussein del mundo podían ser espiados por otros medios.

La desaparición de A5/2, por tanto, fue cuestión de tiempo. De mucho tiempo. Un interesante seguimiento hecho por Harald Welte en 2010 nos muestra que en fecha tan tardía como 2006, la oposición más fuerte a la retirada de A5/2 provenía de algunos operadores móviles norteamericanos, algo inusitado si se considera que EEUU estaba en la lista de países que podían utilizar la versión fuerte A5/1. Eso significa que las comunicaciones GSM norteamericanas eran tan vulnerables como las de cualquier país tercermundista, algo que realmente hace pensar de qué lado están agencias como la NSA, por no hablar de las propias operadoras, que necesariamente habrían de saber lo que se estaba cociendo. La retirada del algoritmo A5/2 no fue decretada hasta julio de 2007[46].

Eso por lo que respecta a la versión débil para la exportación. Veamos ahora qué pasó con A5/1, una variante supuestamente tan fuerte que nadie fuera de los privilegiados países occidentales podía disfrutarla. Como ya hemos visto, del dicho al hecho hay mucho trecho. Incluso dejando al margen la jugarreta de los diez bits nulos, ya hemos visto que, de entrada, su fortaleza es equivalente a la de una cifra de 39 bits, no más.

Esta conjetura fue confirmada por Jovan Golic en 1997[47] al diseñar un ataque teórico que, por desgracia, requería demasiado espacio de memoria para ser práctico. El trabajo de Golic utilizó lo que se denomina un compromiso (trade-off) entre tiempo y memoria, lo que significa que un atacante puede tener éxito en poco tiempo si antes ha hecho una extensa labor de cálculo previo. Este truco fue aprovechado en diciembre de 1999 por Alex Biryunov, Adi Shamir y David Wagner para diseñar un ataque contra A5/1[48]. Primero es necesario un trabajo previo de cálculo de unos 2^28 pasos, tarea difícil pero que solamente hay que realizar una vez. Después, aprovecharon diversos “fallos sutiles” para recuperar la clave de cifrado.

El atacante puede incluso escoger el tipo de ataque. En un caso se requiere el equivalente a un par de segundos de conversación cifrada y el ataque requiere unos minutos; en otro, es preciso obtener dos minutos de conversación, pero la obtención de la clave lleva apenas un segundo. Este ataque NO aprovechó el hecho de que diez de los 64 bits de la clave fuesen cero. Los autores dejaron caer que “es un problema abierto muy interesante el ver si podemos hacer nuestro ataque más rápido suponiendo que los diez bits son cero”.

En esta ocasión, las operadoras de telefonía no podrían replicar que “es un ataque muy sofisticado que requiere equipo técnico especializado,” ya que el material que usaron los investigadores fue un PC con 128 MB de memoria, una capacidad de almacenamiento equivalente a entre dos y cuatro discos duros de 73 GB, un escáner digital para captar conversaciones (esto no lo dicen los investigadores, pero se sobreentiende), y poco más.

A pesar de su simplicidad técnica, en declaraciones al New York Times, un portavoz de la compañía Omnipoint (la teleco que presumía de ser inmune a los ataques contra el algoritmo norteamericano CMEA tres años antes), calificó los resultados como “ridículos… lo que están describiendo es un ejercicio académico que nunca funcionaría en el mundo real[49]. Por supuesto, en estos casos hay que tener en cuenta que, si los investigadores hubieran demostrado su “ejercicio académico” en el mundo real, habrían acabado en prisión.

Mundo real o no, los investigadores demostraron que el algoritmo de A5/1 es vulnerable. Y más aún, según Bruce Schneier:

Lo que es más interesante sobre esos algoritmos es lo robustamente malos que son. Ambos mecanismos de cifrado de voz tienen fallos, pero no obvios. Los ataques tanto sobre A5/1 como sobre A5/2 hacen uso de estructuras sutiles del algoritmo, y resultan en la habilidad de descifrar tráfico de voz en tiempo real con equipo informático medio. Al mismo tiempo, la salida de algoritmo A8 que proporciona material de clave para A5/1 y A5/2 ha sido debilitada artificialmente ajustando diez bits a cero. Y asimismo, el algoritmo COMP128 que proporciona el material de clave… es débil[50].

A la vista de todo ello, quedaba claro ya en 1999 que “seguridad GSM” era una contradicción en sus términos. Tristemente, se trataba del sistema de telefonía móvil más seguro, lo que no contribuye precisamente a tranquilizarnos.

Por el contrario, ahora que se conocían los detalles del algoritmo A5/1, se desarrollaron otros métodos de ataque. Uno de ellos aprovechaba correlaciones estadísticas entre los datos de los LFSR y el flujo de clave resultante. La ventaja de este procedimiento de ataque es que no exige largas etapas de procesamiento previo ni discos duros enormes. El primer ataque de este tipo se debe a Patrik Ekdahl y Thomas Johansson en 2003, a los que siguieron otros en 2004 (Alexander Maximov, Thomas Johansson y Steve Babbage) y 2005 (Elad Barkan y Eli Biham). En general, se requiere un ordenador tipo Pentium 4, un conjunto de material conocido (texto no cifrado) y un tiempo de procesamiento de entre dos y diez minutos, con una tasa de éxito variable de entre el 3% y el 99.99%[51].

Al año siguiente, Barkan y Biham, con la colaboración de Nathan Keller, asestaron un golpe aún mayor a la serie A5 en sus tres sabores conocidos (doméstico, exportación y nulo). Hasta entonces, la mayoría de los ataques conocidos eran del tipo “texto llano conocido” (known-plaintext), lo que significa que hay que conocer parte de la conversación. Esto podía conseguirse en algunos casos, por ejemplo suponiendo momentos en los que no hay conversación, pero en general había que confiar en tener conocimiento previo del contenido en texto llano. Hasta cierto punto, nos recuerda los ataques criptoanalíticos aliados contra la máquina cifradora Enigma durante la Segunda Guerra Mundial, donde conocer ciertas palabras (conocidas en inglés como cribs o “chuletas”) en los mensajes permitía obtener las claves.

El título del artículo de Barkan, Biham y Keller lo dice a las claras: “Criptoanálisis instantáneo mediante texto cifrado de una comunicación cifrada por GSM[52]. En este caso no hay que suponer nada sobre la conversación, sino que basta con captar el contenido cifrado. Comenzaron por el débil A5/2, y demostraron que bastaba con unos milisegundos de conversación cifrada y un segundo de procesamiento en un PC. Para ello, se aprovecharon de un cambio en el orden de dos operaciones esenciales: el uso de cifrado (para proteger la comunicación) y de códigos de corrección de errores (para detectar la existencia de fallos de la transmisión).

La regla en estos casos suele ser: primero cifrar, luego añadir códigos de corrección (“first encrypt then MAC”). No se suele hacer al revés, porque entonces un atacante podría montar un ataque del tipo “texto cifrado conocido” (known-ciphertext). El problema con el protocolo GSM es que primero aplica la corrección de errores y luego el cifrado, justo el orden incorrecto. Eso permite una vía de entrada a un atacante hábil. Eso sí, necesitaría gran cantidad de memoria y ordenadores potentes, pero la idea estaba demostrada: se puede descifrar una conversación examinando el contenido cifrado.

Los investigadores también diseñaron ataques sobre el algoritmo A5/1, más resistente. Sin embargo, pronto se dieron cuenta de un detalle: ¿por qué esforzarse para romper un cifrado difícil cuando pueden persuadir al móvil de que no utilice cifrado en absoluto? Esto puede hacerse por un fallo en el proceso de autenticación del protocolo GSM. El problema es que el móvil se autentifica ante la estación telefónica, pero no al revés. Es decir, el móvil asume por defecto que la señal más fuerte en su proximidad se corresponde con una antena legítima de su operadora. Eso significa que, en principio, un atacante puede montar una estación telefónica falsa para engañar al móvil, aun careciendo de la clave de autenticación Ki. La conecta y el móvil considera que está en la zona de cobertura de una antena legítima.

De ese modo, el atacante puede hacer cosas como escoger el algoritmo de cifrado usado, incluyendo la opción de no usar cifrado en absoluto. El móvil puede recibir la orden de, por ejemplo, usar A5/2 (puede que el móvil avise al dueño cuando no se está usando cifrado, así que la opción “no cifrar” puede no ser la más aconsejable). De ese modo, se puede obtener fácilmente la clave de cifrado Kc, con lo que el atacante ya puede descifrar las comunicaciones que efectuó el móvil desde que se autenticó por última vez con la estación legítima.

El atacante también puede captar conversaciones en tiempo real mediante la técnica del hombre interpuesto (man-in-the-middle). Para el usuario, el intruso aparece como la red; para la red telefónica, el intruso es otro usuario legítimo. En este caso, el intruso hace de correveidile entre la red y el usuario, pero con una sutil diferencia: instruye al móvil del usuario para que use cifrado débil A5/2, de modo que el intruso tiene acceso a la conversación telefónica en tiempo real. Fíjese el lector que este tipo de ataques no se realiza sobre el algoritmo de cifrado, sino sobre el protocolo de comunicaciones GSM, y que por tanto funcionaría incluso en el caso de un algoritmo de cifrado matemáticamente impenetrable. Existen soluciones contra este ataque, pero son básicamente parches que requieren requisitos extra de vigilancia por parte de la red para protegerse contra un tipo de ataques que un sistema bien diseñado no debería temer.

Y aún no hemos terminado. Cuando comenzaron a operar las redes GSM, incluso una clave de 54 bits era algo serio (luego se convirtió en 64 una vez se hubo calmado el furor por el descubrimiento de que 10 bits eran cero). Atacar un sistema mediante técnicas de fuerza bruta quedaba fuera del alcance para el investigador o el hacker medio, y las agencias gubernamentales capaces de hacerlo callaban, pero hoy día cualquier persona tiene acceso a una capacidad de computación increíble, por no hablar de grupos de investigación. Para demostrarlo, un grupo formado por investigadores de las universidades alemanas de Bochum y Kiel presentaron en 2006 un dispositivo computador asequible creado con el fin específico de ayudar en los ataques criptoanalíticos. El nombre del aparato es COPACOBANA (Cost-Optimizer Parallel Code Breaker), y con un coste de unos 10 000 euros es capaz de probar todas las claves del algoritmo DES (de 56 bits) en un máximo de diecisiete días, algo impresionante si recordamos que estamos hablando de probar miles de billones de claves[53].

En A5/1, la clave de cifrado determina el estado inicial de los registros LFSR, y éstos producen un flujo pseudoaleatorio que usamos para proteger la conversación. En principio, podríamos ir calculando una tabla donde, para cada estado inicial, me de un resultado en forma de flujo de datos. Por ejemplo, el estado inicial A52F8C02 podría corresponder con el resultado 52E01001, lo que significa que, cuando ponga la oreja y escuche “52E01001,” ya sé que la clave corresponde al estado A52F8C02. De ese modo, creamos una tabla (look-up table) que nos liga claves y estados. Se trata de un ataque de fuerza bruta puro y duro.

El problema es que, incluso para una clave de 54 bits, las necesidades de memoria y computación son enormes, millones y millones de terabytes. Eso no es práctico. Sin embargo, el proceso puede simplificarse “encadenando” bloques de estadios iniciales y resultados finales gracias a tablas alfanuméricas denominadas “tablas arcoíris” que son relativamente pequeñas, nada de millones de terabytes. Es uno de esos casos en los que el ataque supone un compromiso entre tiempo y memoria, lo que se conoce como TMTO (Time-Memory Trade-Off). El lector podrá encontrar más información sobre las tablas arcoíris en el capítulo “12345” de este mismo libro.

En 2008, los creadores de COPACOBANA evaluaron la utilidad de la máquina para diversos compromisos tiempo-memoria en los que se utilizaban tablas arcoíris precomputadas. El ataque más rápido contra el algoritmo A5/1 tardaba solamente siete segundos, pero necesitaba más de 7 terabytes de datos y un conjunto de cálculos previos que llevaba casi tres meses, con una tasa de éxito del 60%[54]. Los compromisos permitían jugar con los principales parámetros, a saber: tasa de éxito, tiempo de computación previo y cantidad de datos.

En 2008, Timo Gendrullis, Martin Novotný y Andy Rupp mostraron al mundo sus resultados. En promedio, necesitaban seis horas para obtener la clave de cifrado completa. Es mucho tiempo para poder entrar en una conversación, pero demuestra que, incluso en el caso de que los algoritmos de protección en la telefonía GSM fuesen perfectos (que no lo son), un atacante podría ir a por todas y hacer una búsqueda exhaustiva. El coste de funcionamiento de COPACOBANA fue evaluado por los autores como 36 céntimos en electricidad. Y eso con una máquina hecha con un presupuesto inferior al precio de un utilitario[55].

No obstante, quedaba por ver si un esfuerzo conjunto de “internautas de a pie” podía crear tablas arcoíris para uso práctico contra A5/1 (los artículos relativos a COPACOBANA afirmaban que se habían calculado, pero no fueron abiertas para acceso público). En agosto de 2009, Karsten Nohl anunció el lanzamiento de un proyecto dedicado a crear tablas arcoíris para A5/1, demostrando así de una vez por todas que los algoritmos de GSM eran débiles[56]. Cuando efectuó su anuncio, la GSM Association (GSMA) se apresuró a declarar que eso queda muy lejos de constituir un ataque práctico: “requiere la construcción de una tabla de aproximadamente 2 terabytes, equivalente a la cantidad de datos contenidos en una torre de libros de 20 kilómetros de altura[57].

Nohl estimó que, con la ayuda de colaboradores dispuestos a donar tiempo de computación, las tablas arcoíris podrían estar listas en tres meses. Y así fue. En diciembre de 2009, durante la celebración del Chaos Communications Congress de Berlín, Nohl desveló que el proyecto había concluido con éxito[58]. La GSMA se mantuvo en sus trece. Su razonamiento fue: no importa que la cripto sea vulnerable porque, de todos modos, no dicen cómo capturar las conversaciones del aire, y si lo intentan tampoco lograrán el éxito porque lo impediremos gracias a nuestros derechos de propiedad intelectual[59].

En mi humilde opinión, un grupo capaz de crear tablas arcoíris de 2 terabytes es perfectamente capaz de cualquier cosa. Las tablas arcoíris, ya calculadas, están disponibles en Internet, donde pueden ser descargadas vía torrent[60]. El software necesario para reventar una conversación GSM real está disponible desde julio de 2010[61], y en la actualidad el Chaos Computer Club está trabajando en el llamado proyecto AirProbe con el fin de demostrar que se pueden capturar paquetes GSM del aire, algo que la GSMA considera imposible[62].

A tenor de todo lo anterior, podemos concluir que el protocolo de seguridad GSM adolece de una alarmante falta de seguridad. El proceso de creación en secreto produce algoritmos vulnerables. Más allá de los problemas de un sistema de cifrado en concreto, lo cierto es que incluso en un caso perfecto la protección del sistema GSM es incompleta. Preocupados tan sólo por proteger el tramo aéreo de la comunicación, los responsables se olvidaron de prepararse contra otros tipos de amenazas. Algunos fallos que podemos señalar son los siguientes:

—Protección limitada del cifrado. Los algoritmos de cifrado, perfectos o no, solamente protegen el tramo entre el móvil y la estación base. Durante el resto del tramo, la llamada va “en claro”, es decir, sin cifrado, lo que la hace vulnerable a una escucha no autorizada.

—Vulnerabilidad en la verificación. Al verificar una llamada, el centro de conmutación recibe del centro de autenticación un triplete de datos (clave+semilla+respuesta). Pero ese triplete se envía sin cifrar, por medio de líneas de comunicación vulnerables. Cualquiera que acceda a dichas líneas podrá obtener Ki, la clave del móvil, y con ello podrá clonarlo.

—Asimetría en la autenticación. El móvil se identifica ante la red, pero no al revés, y el móvil asume que las transmisiones se hacen a través de la red adecuada. No hay forma de poder asegurarse de que la estación base es la auténtica, ya que los diseñadores tomaron por evidente el hecho de que la red no sería duplicada. Las policías de varios países utilizan desde hace más de una década en sus investigaciones un equipo apodado Stingray, que no es más que una estación base falsa. El móvil es engañado por esta estación de pega, que puede ordenarle transmitir las llamadas ““en claro” para poder interceptarlas, así como darle un nuevo identificador temporal que permita identificarlo. Otros atacantes pueden montar estaciones falsas para interrogar móviles y extraer sus claves Ki.

—Falta de integridad. Existe autenticación y confidencialidad, pero no integridad. Es decir, no hay métodos para detectar si un paquete de datos ha sido alterado.

—Falta de flexibilidad. Los algoritmos para autenticación (A3/A8) y cifrado (A5) podían haber sido escogidos por las telecos, pero casi todas se limitaron a utilizar los que venían “de serie”. Cuando éstos mostraron su vulnerabilidad, no existía suplente. La única defensa de la industria consistió en negar la evidencia, cosa que hace incluso en nuestros días.

A ello podríamos añadir la vulnerabilidad añadida de insertar servicios de “interceptación legal”. En teoría, la interceptación legal solamente se utilizaría con orden judicial y bajo estricta supervisión legal, aunque en la práctica el sistema técnico sencillamente, está allí, listo para interceptar lo que le manden. Durante los años noventa, Estados Unidos y su poderosa Agencia de Seguridad Nacional (NSA) presionaron a otros países para que incorporasen estas vías de acceso a las comunicaciones, que por supuesto podrían ser usadas (y abusadas) por agencias de inteligencia[63].

¿Paranoia, dijo usted? Durante los años 2004 y 2005, un grupo desconocido interceptó las llamadas de más de cien personalidades griegas, incluido el propio primer ministro, lo que provocó un gran escándalo mayor en Grecia[64]. Al parecer, en la red de telefonía móvil Vodafone había un módulo de interceptación ilegal. Poco tiempo después se conoció que dicho módulo ilegal era en realidad de lo más legal: estaba a disposición de la policía griega para obtener capacidad de interceptación legal.

El sistema de interceptación estaba oculto en los equipos conmutadores AXE que utilizaba Vodafone Grecia para sus operaciones. Dichos conmutadores, construidos por la empresa Ericsson, contenían una opción para proporcionar acceso legal a las autoridades policiales[65]. En lugar de acceder al contenido de la comunicación en el aire (donde está, como hemos visto cifrado), el acceso legal se lleva a cabo en estos conmutadores, que transportan el contenido de las llamadas sin cifrado alguno. El lector interesado puede leer muchos más detalles sobre el caso en[66].

Al parecer, el servicio de acceso legal era opcional, con un precio de varios millones de euros. El gobierno griego no pagó por esa opción, pero en su lugar un grupo desconocido implantó software que hacía dos cosas: activar la opción de interceptación legal, y al mismo tiempo borrar cualquier evidencia de que el sistema estaba activado. La primera noticia de su existencia provino de los problemas que algunos usuarios tenían durante el envió de mensajes; las quejas llegaron a Vodafone, quien solicitó a Ericsson una auditoría, y fue entonces cuando se descubrió que el sistema de pinchazos legales estaba activado[67].

Los detalles del caso no se supieron hasta febrero de 2006, cuando terminó la investigación judicial. Al parecer, Vodafone se había apresurado en borrar los registros (logs) y las propias copias del software de interceptación, lo que le valió una multa de varios millones de euros tanto a ellos como a Ericsson[68]. El técnico que ordenó el borrado fue encontrado muerto en su casa, aparentemente por suicidio, justo un día antes de que el primer ministro griego fuese informado del caso. Varios altos cargos técnicos de Vodafone fueron acusados de la intrusión[69].

A día de hoy, no se sabe quién estuvo detrás de los pinchazos telefónicos en Grecia. Lo único seguro es que, si se construye un sistema de interceptación de comunicaciones, alguien lo usará tarde o temprano. Y no siempre de forma legal. Desde bandas mafiosas a grupos de interés político, llegando incluso a los propios gobiernos, hay muchos interesados en cotillear los secretos ajenos.