Arquitectura y cifrado de seguridad en redes 3G

lunes, 13 de enero de 2014

Las redes de telefonía móvil, por su naturaleza radioeléctrica, son tanto o más vulnerables que otras redes de comunicaciones. Con su uso generalizado, garantizar la seguridad en este tipo de redes cobra mayor importancia. El estándar UMTS (Universal Mobile Telecommunications System) de telefonía 3G implementa un esquema de seguridad específico que intenta garantizar la confidencialidad y la integridad de la información enviada a través de la interfaz radio, ya sean datos de usuario o de señalización. ¿Cómo lo hace? Y, sobre todo... ¿lo consigue?

Fundamentalmente usamos hoy en día dos tecnologías:
  • 2G: Que es la combinación de GSM para voz (en Europa, porque en Estados Unidos se puede usar CDMA) y GPRS para datos. Estos estándares pueden ir cifrados o no, pero si lo están, ya se conocen formas de romperlo en un tiempo razonable. Además tiene un problema adicional: en el mundo 2G, el teléfono se autentica contra la torre pero no al revés. Por tanto se pueden "falsificar".
  • 3G: UMTS, del que hablaremos. La estación base (torre) sí se autentica contra el teléfono.
Actualmente, 2G es un desastre porque permite a un atacante suplantar la estación base (la torre) y que el teléfono se conecte a ella sin dudarlo. A todo esto ayuda bastante que los teléfonos "degraden" la conexión a 2G cuando lo necesitan y que uno de los modelos más usados (el iPhone) no permita evitar este comportamiento. Además, un atacante podría montar una estación base por relativamente poco dinero (actualmente, unos pocos miles de euros). El teléfono puede, para ahorrar batería o porque la señal es más fuerte, conectarse a esa estación base falsa que emite en 2G y ofrecer todos sus datos.

Arquitectura UMTS

A grandes rasgos, el sistema UMTS está dividido en dos grandes bloques lógicos:
  • El núcleo de red (Core Network, CN) desempeña labores de control de tráfico, señalización, conmutación y encaminamiento. Además, hace posible la conexión de UMTS con otras redes de comunicaciones. Reutiliza varios elementos ya presentes en la arquitectura 2G y soporta tanto conmutación de paquetes como conmutación de circuitos.
  • La red de acceso radio (UTRAN) se encarga de los aspectos de comunicaciones, tales como la gestión de los recursos radio, el control de potencia y el traspaso de llamadas.  Sus elementos principales son los controladores de red (RNC), que se encargan de gestionar una o varias estaciones base que dan cobertura a los terminales de usuario.

Arquitectura UMTS. Fuente: Wikipedia
Dado que la CN hereda elementos de la arquitectura 2G, es frecuente ver estaciones base GSM y UMTS coexistiendo dentro de una misma red móvil.

Arquitectura de Seguridad UMTS

La arquitectura de seguridad de UMTS está compuesta por un conjunto de características y mecanismos de seguridad. Un mecanismo de seguridad es un elemento que proporciona una característica de seguridad. Y una característica de seguridad es una funcionalidad de un servicio que satisface uno o varios requisitos de seguridad.

Brevemente, en UMTS tenemos cinco grupos de características de seguridad, cada uno orientado a hacer frente a ciertas amenazas y alcanzar determinados objetivos.
  • Seguridad en el acceso a la red (I en la figura): Proporciona acceso seguro a los servicios  y protege contra ataques en el enlace radio.
  • Seguridad en el dominio de red (II): Permite a los nodos del operador de red intercambiar datos de señalización de forma segura, y protege contra ataques en la red cableada.
  • Seguridad en el dominio del usuario (III): Permite a los usuarios disponer de acceso seguro a las estaciones móviles.
  • Seguridad en el dominio de aplicación (IV): Permite que las aplicaciones en el dominio de usuario y en el dominio del proveedor intercambien mensajes de forma segura.
  • Visibilidad y configuración de seguridad: Permite al usuario obtener información sobre las características de seguridad que  se están utilizando.
Arquitectura de seguridad UMTS. Fuente:www.etsi.org
En UMTS, por otra parte, tenemos tres grandes mecanismos de seguridad: el sistema de autenticación y acuerdo de claves; los algoritmos de integridad y confidencialidad; y el cifrado en bloque KASUMI. Los vemos a continuación.

UMTS Authentication and Key Agreement

El UMTS AKA es el mecanismo que gestiona todo el proceso de autenticación, basándose en un protocolo de tipo desafío-respuesta. Son los que se suelen utilizar para que una entidad verifique la identidad de otra sin revelar una clave compartida común.

El proceso UMTS AKA es gestionado por el registro de ubicación de visitante (Visitor Location Register, VLR), y consta de los siguientes pasos:
  1. El VLR envía al Registro de ubicación base (Home Location Register, HLR) del abonado una petición de autenticación.
  2. El HLR computa un conjunto de vectores de autenticación (AV1:AVn) a partir de la clave privada K del usuario (que solo se almacena en la propia USIM y en el HLR/AuC), y lo envía al VLR, que los almacena.
  3. El VLR escoge uno de los vectores de autenticación (AVi), y desafía a la USIM enviándole los campos RAND y AUTN (token de autenticación) del vector seleccionado.
  4. La USIM del usuario procesa el token de autenticación, y mediante su clave privada K puede comprobar que los datos recibidos solo pueden provenir de alguien que tenga acceso a esa clave, por lo que de esta forma la red queda autenticada frente al usuario. La USIM procede entonces a generar una clave de confidencialidad (CK), una clave de integridad (IK), y una respuesta para la red (RES).
  5. La USIM envía la RES al VLR.
  6. Como el VLR conoce el AV, puede computar la respuesta esperada (XRES), y contrastar la RES que recibe con ésta. De esta manera el usuario queda autenticado también. El VLR computa entonces CK e IK a partir del AV.
  7. Las CK e IK establecidas son transmitidas por la USIM y el VLR a las entidades encargadas de las funciones de integridad y cifrado (generalmente el RNC).
Mecanismo de control de integridad

La información de señalización es vital tanto para el usuario como para la red, por lo que es fundamental poder garantizar su integridad (para prevenir, por ejemplo, ataques de falsa estación base). Así, se implementa tanto en la estación móvil como en el RNC el llamado algoritmo f9. El proceso de verificación de integridad es como sigue:
Mecanismo de control de integridad UMTS. Fuente:www.etsi.org
  1. El dispositivo del usuario calcula un código de autenticación de mensaje de 32 bits (MAC-I) a partir de ciertos parámetros de entrada, entre ellos los propios datos y la IK  que se obtuvo en el proceso de autenticación.
  2. El MAC-I calculado se adjunta a los datos de señalización y se envía al controlador de red.
  3. Una vez que el controlador de red recibe la información de señalización con el MAC-I adjunto, calcula, empleando el mismo método que el dispositivo de usuario, el XMAC-I.
  4. La integridad de la información de señalización se comprueba comparando MAC-I y XMAC-I.
Mecanismo de control de confidencialidad

La confidencialidad de la información transmitida es esencial tanto para el usuario como para el operador móvil. De la comprobación de confidencialidad se encarga el denominado algoritmo f8, que funciona de la siguiente manera:
  1. El dispositivo de usuario, a partir de la CK previamente calculada durante la autenticación y otros parámetros, calcula una secuencia de cifrado. 
  2. Se realiza un XOR entre esta secuencia de bits y los datos, obteniendo un bloque de datos cifrados.
  3. Estos datos cifrados se envían a la red a través de la interfaz radio.
  4. El RNC, a partir de los mismos parámetros que el dispositivo de usuario (incluyendo la CK compartida), genera la misma secuencia binaria de cifrado.
  5. Realizando una operación XOR entre esta secuencia y el bloque cifrado recibido, se recuperan los datos originales.
Mecanismo de control de confidencialidad UMTS. Fuente:www.etsi.org
Algoritmo de cifrado por bloque KASUMI

Los algoritmos f8 y f9 de integridad y confidencialidad están basados en el algoritmo KASUMI. Este algoritmo de cifrado por bloque está desarrollado a partir de MISTY-1, y presenta una estructura de Feistel que opera con una clave de 128 bits sobre entradas y salidas de 64 bits.


Estructura Kasumi. Fuente: http://eprint.iacr.org/2010/013.pdf

El algoritmo KASUMI realiza ocho iteraciones o rondas y, para cada una, genera un conjunto de claves de ronda a partir de la clave K de 128 bits. Con esas claves de ronda se computa una función f, diferente para cada ronda. Cada una de estas funciones fi está compuesta por dos subfunciones, FLi y FOi, que dependen de los datos de entrada a esa ronda y de las claves.

Mientras que la función FL es relativamente sencilla (operaciones lógicas y desplazamientos binarios), la función FO presenta internamente una estructura de Feistel propia consistente en tres rondas, para cada una de las cuales se computa una subfunción FI que consta a su vez de otras tres rondas.

Debido a su complejidad, el algoritmo KASUMI ofrece un grado de seguridad elevado. Fue escogido por la 3GPP para la implementación de los algoritmos de confidencialidad e integridad en redes UMTS, además de integrarse posteriormente en las redes 2G. Sin embargo, varios equipos de investigación han intentado romperlo. Ya en 2003 se realizó una primera aproximación, que si bien no rompía el cifrado, lo eludía, haciendo posibles ataques MITM en GSM. Posteriormente, en 2005, investigadores israelíes propusieron un ataque boomerang contra KASUMI, que en realidad no resultaba práctico por su excesiva complejidad, pero comenzaba a medrar la confianza en el algoritmo. Finalmente, en 2010, investigadores del Weizmann Institute of Science de Israel consiguieron romperlo, obteniendo la clave completa en menos de dos horas utilizando un PC de sobremesa (y gracias a una tabla que fue previamente precomputada durante meses). Este ataque, curiosamente, no es efectivo contra el cifrado MISTY-1, que ha probado ser más robusto (pero también más consumidor de recursos) que KASUMI en contra de lo que sostenía inicialmente la 3GPP.

En general, los mecanismos anteriores hacen de UMTS un estándar relativamente seguro para la comunicación. Especialmente la doble autenticación (usuario-red y red-usuario) hace que UMTS sea difícil de vulnerar frente a ataques de hombre en el medio de falsa estación base, mientras perpetrar estos ataques en GSM resulta sencillo. Aunque el cifrado pueda considerarse fácil de romper, obtener el tráfico cifrado a través de ataques MiTM resultaría muy complejo para el atacante.

Las recientes tecnologías 4G, por otra parte, buscan mitigar los problemas de la actual generación. Entre las prestaciones de seguridad de LTE podemos encontrar la reutilización de la autenticación y acuerdo de claves UMTS, nuevos algoritmos para integridad y confidencialidad (SNOW 3G, AES) y una jerarquía de claves más profunda, con claves de hasta 256 bits.

Cristóbal Bordiú
cristobal.bordiu@11paths.com


No hay comentarios:

Publicar un comentario en la entrada