lunes, 23 de septiembre de 2013

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.
4.3.- 2.5G: GPRS
El General Packet Radio Services (GPRS) es un servicio que proporciona la transmisión de paquetes vía radio a los usuarios de GSM. Proporciona multitud de servicios que hacen posible el concepto de Internet móvil. Se considera en su diseño la seguridad como algo vital, para ello emplea una arquitectura específica para proteger la red de accesos no autorizados mientras se protege la seguridad de los usuarios. La arquitectura está basada en las medidas de seguridad implementadas en GSM ya que emplea la infraestructura GSM. Sin embargo GPRS está más expuesta a los ataques ya que usa la tecnología IP que presenta una serie de conocidas vulnerabilidades.
image
Ilustración 6: Arquitectura de la red GPRS
En general, al igual que en el caso de GSM hablaremos de ataques pasivos, aquellos en los que el atacante se “limita” a escuchar las comunicaciones entre dos nodos sin modificar las comunicaciones (el objetivo suele ser desvelar la información que viaja por el canal) y ataques activos en los que se realiza alguna modificación o de los datos o de la información de control enviada. Se podría escuchar, modificar o inyectar datos en el canal de comunicación. Estos últimos podrían dividirse en dos grupos externos (los producidos por personas o nodos no pertenecientes a GPRS) y los internos (producidos por personas o nodos comprometidos pertenecientes a GPRS).
a.- Arquitectura GPRS
Tal y como se puede ver en la imagen y si la comparamos con la Ilustración 5, veremos que GPRS introduce dos nuevos nodos de red respecto al diseño GSM. Las nueva clase de nodos llamada nodos de soporte GPRS (GSN) es la responsable de la entrega y enrutamiento de los paquetes de datos entre MS y la red de datos de paquetes externa (PDN). el nodo de soporte GPRS de servicios (SGSN) -al mismo nivel que MSC- con objeto de gestionar los servicios de enrutamiento y transferencia de paquetes, localización, ejecución de funciones de seguridad, control de acceso, manejo de la movilidad y del enlace lógico de un MS con su área de servicio; y la Pasarela de GSN (GGSN) que actúa como una interfaz entre la red central GPRS y las redes de paquetes conmutados externas (PDN) y que, a su vez, se conecta con SGSN a través de una red GPRS-IP (en realidad túneles IP que usan el protocolo GTP -GPRS tunneling protocol-).
El centro de la red sigue usando elementos de GSM tales como HLR, VLR, AuC (mantiene información de seguridad relacionada con la identidad de los usuarios) y EIR (mantiene información relacionada con los terminales). Opcionalmente MSC y VLR pueden unirse para proporcionar mayor coordinación de servicios y funcionalidades y para actualizaciones de localización combinadas GPRS y no-GPRS.
b.-Arquitectura de seguridad GPRS
Para cumplir los objetivos de seguridad GPRS incluye una serie de mecanismos que constituyen la arquitectura de seguridad GPRS. La mayoría de ellos procedentes de GSM han sido modificados para adaptarlos a la naturaleza del tráfico orientado a paquetes y los nuevos componentes de GPRS. En el caso de GPRS persigue dos objetivos: proteger la red de accesos no autorizados y proteger la privacidad de los usuarios. Incluye por tanto los siguientes componentes, algunos ya vistos en GSM, a los que se le realizan pequeñas modificaciones:
  • Módulo de identificación del suscriptor (SIM)
  • Confidencialidad de la identidad del suscriptor.
  • Autenticación de la identidad del suscriptor.
  • Confidencialidad de los datos y de la información de control entre MS y el SGSN.
  • Seguridad de la red troncal GPRS.
Las diferencias con respecto a lo visto a GSM para cada una de ellas son las siguientes.
Por lo que se refiere a la SIM, contiene los mismos códigos ya vistos y la única diferencia relevante es que el algoritmo de autenticación es A3 y el algoritmo de generación de claves A8.
En lo que se refiere a la confidencialidad de la identidad del usuario, emplea igualmente una identidad temporal para SGSN que se denomina Identidad de Suscriptor Móvil Temporal de Paquetes (P-TMSI). Si SGSN incluye la firma digital de P-TMSI en algún mensaje enviado a MS, este debe hacer lo mismo en los siguientes mensajes de actualización de área o de establecimiento de conexión, la relación entre los valores y el IMSI es conocida sólo en MS y en SGSN.
El proceso de autenticación del suscriptor es el mismo que en GSM con la diferencia de que los procesos se realizan ahora en el SGSN en lugar de en la estación base y emplea un generador de número aleatorio diferente (GPRS-RAND) y por tanto produce una respuesta distinta (GPRS-SRES) y una clave de encriptación distinta (GPRS-Kc). El mecanismo de GPRS ofrece autenticación de suscriptor, selección de algoritmo de cifrado y sincronización de cifrado. La información relativa a la seguridad por parte de la red se almacena en SGSN. MSC/VLR autenticarán a MS en el proceso de establecimiento de la conexión.
En cuanto al mecanismo de confidencialidad de los datos de usuario y de señalización GMM/SM se basa en la utilización del algoritmo de cifrado GPRS (GPRS-A5), que se conoce como algoritmo de encriptación GPRS (GEA) y que es similar al GSM A5. Actualmente existen tres versiones: GEA 1, GEA 2 Y GEA3 ( que es A5/3). Al igual que en GSM se produce una negociación entre SGSN y MS en aras de adoptar un mecanismo de cifrado conocido por ambos, en caso de no acuerdo puede liberarse la conexión. Una diferencia importante con respecto a GSM, por tanto, es que en lugar de existir el canal sólo entre BTS y MS, en GPRS el ámbito de cifrado va desde el SGSN hasta MS. Para la gestión de claves se emplea el procedimiento establecido para Kc en GSM.
Seguridad de la red troncal GPRS
Como vimos anteriormente, una de las debilidades de la red GSM era que los enlaces aéreos de la red troncal podían viajar en texto plano facilitando su escucha.
La red troncal GPRS incluye tanto a los elementos de red y sus conexiones físicas como los datos de usuario y la información de señalización y control. Las señales en GPRS se basan en la tecnología SS7 (Signaling System 7), que no incluye ninguna medida de seguridad para el despliegue de redes GPRS. De manera similar el protocolo GTP que se emplea para la comunicación entre GSN tampoco incorpora seguridad. Por ello, tanto señalización como datos se transmiten en texto claro exponiéndolos a numerosos ataques. Además la comunicaciones entre redes de distintos operadores se basa en Internet público, lo que habilitaría la suplantación de identidad (spoofing) IP.
Para tratar de solucionar los problemas citados las operadoras suelen emplear las siguientes técnicas:
  • Uso de direcciones IP privadas y NAT ( Network address translation) para restringir los accesos desde Ips no autorizadas a la red troncal.
  • Uso de cortafuegos en la frontera para proteger la red GPRS de accesos no autorizados.
  • Empleo de políticas que sólo permitan la salida del tráfico originado en MS y no desde internet atravesar el firewall protegiendo al MS y los elementos de red de ataques externos y al MS de tráfico no deseado.
  • También pueden desplegar protocolos de control de ancho de banda que impidan que un único usuario consuma demasiado hasta el punto de afectar al resto.
  • Cortafuegos a nivel de aplicación previenen el acceso directo a los sistemas mediante el uso de proxies capaces de analizar los protocolos involucrados, los comandos, realizan la autenticación y mantienen logs de registro.
  • Para proteger la privacidad y confidencialidad de los datos se emplean VPNs (redes privadas virtuales). La VPN se emplea para la autenticación y autorización del acceso del usuario a los recursos corporativos, el establecimiento de túneles seguros entre las partes y la encapsulación y la protección de los datos transmitidos por la red( ya sea entre los elementos de red de la propia GPRS, entre las redes de distintas operadoras o entre la red GPRS y una red privada corporativa remota.

* en la próxima entrega vulnerabilidades y posibles ataques a la red GPRS
 

No hay comentarios:

Publicar un comentario