martes, 11 de octubre de 2011

Seguridad en telefonía móvil. 4.2 La segunda generación -2G- GSM

4.2.- La segunda generación (2G): GSM
La segunda generación de telefonía móvil adoptó la tecnología digital. La mayor parte de los terminales usan el Sistema Global para Comunicaciones Móviles, o GSM, que se diseñó desde el inicio para facilitar el roaming internacional y se lanzó en 1992.

Los diseñadores de GSM intentaron asegurar el sistema contra la clonación y otros ataques conocidos; el objetivo era que fuera al menos tan seguro como los sistemas cableados.

Para conseguirlo la industria intentó mantener en secreto la criptografía y otros mecanismos de protección que forman parte del corazón de los protocolos GSM. En cualquier caso este sistema, obviamente no funcionó, ya que pronto se conocieron algunas vulnerabilidades y el resto del sistema fue conocido mediante el empleo de ingeniería inversa.

Las funciones o servicios de seguridad básicos desarrollados para GSM se podrían agrupar en tres grupos: autenticación de la identidad del suscriptor, confidencialidad de la identidad del suscriptor y confidencialidad de los datos, incluyendo elementos de información de señalización, datos de usuario y datos de conexiones físicas.

a.- Autenticación de la identidad del suscriptor: Identificación
Cada red tiene dos bases de datos, un registro de localización local (HLR Home Location Register) que contiene la localización de sus propios móviles -los pertenecientes a su red- , y un registro de localización de visitantes ( VLR visitor location register) para la localización de visitantes procedentes de otras redes y que llegan a la actual por roaming. Estas bases de datos permiten la redirección de las llamadas a la célula correcta en la que se encuentre el usuario.

En cuanto a la terminología empleada, podemos decir que en un entorno GSM, un teléfono se conoce como estación móvil (MS Mobile Station) y éste a su vez, se divide en dos componentes : el módulo de identificación del suscriptor (SIM Subscriber Identity Module) y el equipo móvil (ME Mobile Equipment). Tal y como indica su nombre SIM es un componente sustituible que contiene, como veremos a continuación, información del suscriptor. El ME no puede funcionar completamente sin él.
La función principal del SIM es la de autenticar nuestro teléfono en la red de modo que tengamos acceso a los servicios que hemos contratado. De todos modos también provee de espacio para almacenar información personal tal como agenda telefónica, mensajes de texto e información relacionada con los servicios contratados.

En realidad podemos pensar en SIM como un “contenedor” de tres números:
  • Un número de identificación que se usa para desbloquear la tarjeta. En teoría, esto evitaría que los móviles usados se siguieran usando, en la práctica no es extraño que nuestra red pongan un PIN inicial 0000 que nunca será cambiado por muchos usuarios.
  • Contiene también un identificador de suscriptor de móvil internacional (IMSI International Mobile Subscriber Identification) un número único que se asigna al número de teléfono móvil.
  • Por último hay una clave de autenticación del suscriptor Ki, un número de 128 bits que sirve para autenticar el IMSI y que es conocido por nuestra red. Esta clave es generada de forma aleatoria y se guarda en una base de datos de autenticación conectada al HLR.
El proceso de autenticación que es sólo en una dirección (se autentica el teléfono), es el siguiente. Al encender el móvil, el SIM nos solicitará el PIN, si se introduce correctamente, el SIM emite el IMSI a la estación base más cercana. Se retransmite al HLR del suscriptor que, a su vez, genera cinco tripletes. Cada triplete consiste en:
  1. RAND: desafío aleatorio
  2. SRES: una respuesta
  3. Kc: una clave cifrada
La relación entre estos valores es que RAND, encriptada bajo la clave “ki” de autenticación del SIM, da como salida SRES concatenada con kc: {RAND}Ki = (SRES|kc)

El modo estándar de realizar la encriptación es usando una función de un sólo sentido llamada Comp128 o A3/A8. (A3 hace referencia a la salida SRES y A8 a la salida kc). Este algoritmo, como hemos dicho se desarrolló en el mayor de los secretos en un intento de hacerlo invulnerable al criptoanálisis. Se basa en la búsqueda en tablas y la mezcla de los resultados. Hay cinco tablas, con 512, 256 128, 64 y 32 entradas de bytes cada una, la función hash las usa sucesivamente en cada bloque de cinco vueltas; hay ocho de estos bloques. Una vez se hizo público el algoritmo se encontraron debilidades. Cuatro de los bytes de salida de la segunda ronda dependían sólo del valor de los mismos bytes en la entrada. Una vez sabido esto se desarrolló software que realizando pruebas a partir de unos 150,000 valores de entrada escogidos, eran capaces de extraer la clave de autenticación en unas pocas horas de cualquier SIM que emplee Comp128.

Afortunadamente las compañías pueden reemplazar Com128 con una función hash adecuada como SHA-256 sin que esto afecte a nada más; la función hash se almacena sólo en la SIM y en el software en el HLR. En cualquier caso no se registraron demasiados ataques de este tipo ya que no permiten realizar llamadas gratuitas (ni hacerlas a nombre de un tercero).

En cualquier caso se envían los tripletes a la estación base, esta envía el primer RAND al móvil (MS), se le pasan al SIM que calcula SRES y lo devuelve a la BS, si es correcto ambos se pueden comunicar empleando la clave de cifrado Kc.
Ataques y vulnerabilidades del sistema de identificación
    Existen algunas vulnerabilidades conocidas en el proceso:
En primer lugar, en la mayoría de los países las comunicaciones entre la BS y el VLR se realiza mediante enlaces microondas no encriptados. De este modo un atacante podría enviar un IMSI de su elección e interceptar el triplete en el enlace microondas cuando es devuelto a la estación base. Esto permitiría realizar llamadas gratuitas cargándolas al IMSI empleado.

En segundo lugar, se pueden reutilizar las tripletas, esto podría servir para que una red ajena solicitara las cinco tripletas mientras hacemos roaming y una vez obtenidas no solicitase nuevas tripletas y permitiéndonos llamar todo lo que quisiéramos. Esto haría que no sirvieran de nada los limites de consumo/responsabilidad establecidas en nuestra operadora de origen, ya que aún en el caso de solicitar nuevas tripletas podría tardar hasta una semana en enviar los datos de consumo. Una operadora poco escrupulosa podría incluso generar facturas de consumo falso. Esto funcionaría incluso cuando empleamos tarjetas prepago ya que para habilitar el roaming en ellas, la mayoría de las operadoras solicitan un número de tarjeta de crédito.

En cualquier caso el hecho de aumentar la dificultad de clonación de los móviles con respecto a los de la primera generación hizo que se modificase el patrón de actuación criminal incrementándose el número de móviles robados de manera significativa. En ocasiones estos móviles eran reprogramados cambiando su IMEI (International Mobile Equipment Identifier) el número de serie en el móvil.

Por otra parte en 1997 se introdujeron los móviles prepago que igualmente dieron lugar a la posibilidad de realizar pequeños fraudes, por ejemplo podrían ser recargados con tarjetas de crédito robadas ya que en un principio no era necesario identificarse para realizar la compra de un móvil. Un fraude que también se podía producir es que alguien realizara una última llamada de un día de duración, al final del día se podría generar una factura enorme que no se podría cobrar si el propietario se deshiciera del móvil. Esta es la razón por la que las operadoras normalmente finalizan de modo automático las llamadas de excesiva duración. En cualquier caso, para crímenes importantes la policía puede perseguir no sólo el SIM (el número de teléfono) sino el terminal en sí, hay que recordar que cuando se inicia la llamada no sólo se envía el IMSI del SIM sino que también se envía el IMEI del terminal.
b.- Confidencialidad de la identidad del suscriptor
El doble objetivo de esta función es evitar que por un lado que un intruso pueda averiguar nuestra identidad y por otro que una vez averiguada lo pueda emplear para localizar al usuario GSM.
Para conseguirlo, cuando el móvil se registra en una red, se genera una identificación de suscriptor de móvil temporal (TMSI temporary mobile subscriber identification). Esta identificación es un número local que siempre debe ir acompañada del Identificador de Área de Localización (LAI) y que sólo tiene sentido en ese área. Cuando se recibe un TMSI en una LAI distinta de la VLR actual, se solicita la transmisión de IMSI bien al MS, bien al VLR al que pertenece LAI. Cada vez que se procede a la actualización de la localización, es necesario establecer un nuevo TMSI eliminándose el anterior.
Ataques y vulnerabilidades de la confidencialidad GSM
Para el ataque a este mecanismo se emplea un dispositivo llamado IMSI-catcher que en teoría se les vende a los cuerpos de seguridad. El dispositivo se instala en un vehículo que sigue a la víctima simulando ser una estación base GSM. Al permanecer más cerca de la víctima su señal es más fuerte con lo que el terminal intentará registrarse en la nueva estación. El IMSI-catcher simula no entender el TMSI, por lo que el terminal como ayuda se lo envía en texto plano. Esta característica se introdujo para facilitar el roaming entre redes distintas y para recuperarse fácilmente de fallos en el VLR. La policía podría ahora interceptar las comunicaciones o simplemente realizar un ataque “man in the middle” en el que funcionan como red para el móvil y como móvil para la red.
c.- Confidencialidad de los datos
Mediante este mecanismo de seguridad se supone que GSM proporciona confidencialidad mediante la encriptación del tráfico entre el terminal y la estación base una vez que los procesos de autenticación y registro se han realizado correctamente. Básicamente se digitaliza la voz, se comprime y se generan una serie de paquetes, cada uno de los cuales es encriptado mediante una secuencia seudoaleatoria que se genera a partir de la clave de cifrado Kc y el número de paquete.

El algoritmo de cifrado usado inicialmente en Europa es el A5/1 que al igual que Comp128 fue elaborado en secreto y sin verificarlo con expertos externos. Es un mecanismo débil y rápidamente surgieron ataques para el mismo.
Ataques a la confidencialidad de datos GSM
Una vez detectadas las carencias del algoritmo, que inicialmente requería de gran potencia de cálculo Biryukov y Shamir encontraron algunas optimizaciones que permitían romper con mayor facilidad A5. El sistema se basaba en la generación de un fichero con datos en los que el algoritmo converge, después se trataría de buscar una coincidencia con el tráfico observado.

Por ingeniería inversa también se demostró que se habían introducido debilidades en el mecanismo de manera intencionada. En teoría la clave de cifrado es de 64 bits, en realidad los diez bits menos significativos se rellenaban a cero.

En cualquier caso, para solucionar este problema se introdujo un tercer cifrado A5/3 que se basa en un sistema de cifrado fuerte conocido como Kasumi y que, de hecho, se usa también en los móviles de tercera generación.

A pesar de todo ello se han desarrollado ataques que explotan las debilidades subyacentes en el sistema. En realidad muchas compañías de telefonía en numerosos países emplean una versión débil de A5/1 llamada A5/2. Los teléfonos móviles, generalmente, son capaces de emplear ambos algoritmos con el fin de facilitar el roaming.

El ataque diseñado por Elad Barkan, Eli Biham y Nathan Keller se basa en lo siguiente. Se sigue a la víctima y se graba su llamada incluyendo el protocolo inicial de desafío respuesta. Una vez finalizada la llamada se emplea un IMSI-catcher para provocar el registro de la víctima en nuestra estación base. El IMSI-catcher le dice al teléfono que use el algoritmo A5/2, en lugar de A 5/1 y se establece una clave debidamente – el IMSI-catcher envía en realidad el mismo desafío empleado anteriormente. Por tanto el móvil genera la misma clave Kc que antes. Como ahora se emplea un algoritmo débil de encriptación para su encriptación, puede ser craqueada rápidamente dándonos acceso a la conversación grabada previamente. De hecho, no importa si fue protegida empleando el algoritmo de media seguridad A5/1 o el de alta seguridad A5/3 ya que, lo cierto, es que hay un algoritmo de baja seguridad, que las claves suelen ser cifradas empleando uno de los dos principales y que dichas claves son compartidas entre los algoritmos haciendo vulnerable todo el sistema.

De hecho existen numerosas corrientes que sostienen que la vulnerabilidad de A5/1 se introdujo debido a la presión de las agencias de seguridad Europeas bajo la justificación de que no querían exportar mecanismos de seguridad a países hostiles ya que haría complicaría su espionaje En cualquier caso la historia de seguridad de GSM es un buen ejemplo de cómo la inserción deliberada de vulnerabilidades puede tener repercusiones mucho mayores de las contempladas inicialmente.
Existen numerosas violaciones de la confidencialidad de las comunicaciones en GSM documentadas, en 2007, por ejemplo se prohibieron las comunicaciones móviles a los soldados de la RAF ya que los talibanes interceptaban sus comunicaciones y las empleaban para llamar a familiares comunicando falsos fallecimientos. En 2004-5 personas desconocidas interceptaron las comunicaciones del Primer Ministro griego y de un ciento de políticos, policías y militares empleando una serie de debilidades en la red Griega de Vodafone.

También existen numerosos casos de vulneración de la confidencialidad de la localización, por ejemplo en Suiza en 1997 se desató una tormenta en la prensa cuando se supo que las compañías telefónicas proporcionaban de manera rutinaria la localización de sus usuarios a la policía. Mientras, en EEUU la FCC (Federal Communications Commission) una agencia gubernamental independiente y directamente responsable del Congreso, ordenaba a las compañías de teléfono posibilitar la localización de sus usuarios con la disculpa de que las llamadas al 911 (número de emergencias) fuesen desviadas al servicio más cercano.
d.- Conclusiones sobre seguridad en GSM
Tras hacer un repaso por los distintos mecanismos de seguridad perseguidos con la introducción de GSM es evidente que se han producido fallos evidentes: por un lado los algoritmos de encriptación se desarrollaron con el mayor secretismo y sin la debida auditoría externa, por otra parte se introdujeron de manera deliberada algunas vulnerabilidades destinadas a facilitar la actuación de los cuerpos de seguridad, finalmente las redes no se identifican frente a los equipos, lo que hace que puedan ser falseadas por un atacante.

En cualquier caso y ya sea por una u otra circunstancia, las debilidades iniciales se arrastraron en las posteriores implementaciones del sistema en aras de facilitar una coexistencia con los sistemas más antiguos y la interacción con otras redes (roaming/itinerancia, por ejemplo) que lo único que hicieron fue convertir el problema en persistente.

De hecho incluso existen proyectos en la red como trac (http://reflextor.com/trac/a51) dónde se han desarrollado librerías completas que permiten interceptar tanto los datos como la información de señalización GSM que empleen el algoritmo A5/1 en apenas segundos. De hecho en la situación actual del proyecto uno de los puntos es: “se podría, hipotéticamente, construir un interceptador completo GSM para recoger datos GSM a partir de componentes open source. No lo hemos hecho porque podría ser ilegal en ciertos países”. Lo cierto es que todo el código y las tablas están disponibles en la página del proyecto.


 << Anterior                                                                                                                Siguiente >>

Resto de entradas sobre seguridad en telefonía móvil y bibliografía en el enlace http://tecnoloxiaxa.blogspot.com/2011/09/seguridad-en-telefonia-movil.html

2 comentarios:

Anónimo dijo...

Muy buena recopilación de documentación acerca de la seguridad en la Telefonia.

Juan dijo...

Gracias