Descifrando el algoritmo de cifrado de voz A5/1

El domingo pasado el ingeniero Karsten Nohl durante su presentación en el Chaos Communication Congress (CCC) en Berlín, comentó que había descifrado y publicado el código que se usa para cifrar la mayor parte de las llamadas de teléfonos móviles y supondría una debilidad en la seguridad en las comunicaciones inalámbricas de todo el mundo.

Hasta la fecha ya se conocían diversos ataques que permitían romper este cifrado. En 1999 se detectaron los primeros ataques que permitían descifrar el algoritmo A5 y escuchar la comunicación interceptando la clave de sesión (Kc) de 64 bits.

Durante una presentación en el CCC 2007 se explicó cómo realizar ataques sobre GSM utilizando un programa llamado GNU Radio y un hardware especializado construido con semiconductores FPGA. Este método tenía ciertas limitaciones ya que sólo podía ser utilizado contra objetivos identificados que se encontraran en un radio relativamente cerca de la ubicación del atacante.

Un año más tarde, durante la Black Hat 2008, David Hulton and Steve Miller presentaron un método de ataque pasivo (no necesitaba inyectar paquetes de datos, como en un ataque activo), que capturaba la señal entre el terminal móvil y la centralita del operador. Y de forma remota, aprovechando los avances de la computación paralela, obtenía unas listas con las posibles claves de cifrado.

La semana pasada Karsten Nohl publicó su proyecto A5/1 Cracking, que es una re-implementación del trabajo del 2008 que no fue liberado. Su planteamiento difiere ligeramente en que utilizan hardware común para generar las tablas, como NVIDIA y tarjetas gráficas ATI con capacidad GPGPU para construir una infraestructura distribuida de nodos. Cada nodo proporciona la capacidad de cómputo necesaria para la generación y el almacenamiento en disco de una parte de las rainbow tables. Este verano lanzó un proyecto de código abierto para la generación de estas rainbow tables. Todo esto está disponible en Internet, prefirió no colgarlo en una página web por temor a que aunque este proyecto ha sido realizado con fines académicos pudieran emprender acciones legales.

El algoritmo A5/1, es un algoritmo de cifrado de voz de clave de 64 bits que permite cifrar y descifrar las tramas entre el terminal y el operador haciendo uso de la clave de sesión (Kc). Una evolución es el algoritmo A5/3, implementado en hardware en el terminal. Puede utilizarse con GPRS, en HSCSD y en EDGE y está basado en Kasumi para 3G que asegura la confidencialidad e integridad, y clave de 128 bits.

Pero A5/3 no es suficiente, teóricamente está roto. Las mismas claves (RAND) son usadas en A5/1 y en A5/3. Y con un ataque semi-activo, como comenta Nohl en su presentación, interceptando una comunicación cifrada y pidiéndole a través de una estación base falsa que reutilice la clave, si damos con dos RAND iguales tendremos dos claves idénticas.

Ya va siendo hora de que la operadoras y empresas de telefonía móvil se pongan las pilas para proteger la privacidad de las llamadas móviles.

[+] Presentación del proyecto
[+] Web oficial del proyecto

Autor: Laura García
Fuente: Security By Default

Los comentarios están cerrados.