Introducción

DMR (Digital Mobile Radio) es un estándar de radio digital desarrollado por la ETSI (European Telecommunications Standards Institute), diseñado para reemplazar sistemas analógicos de radio y ofrecer comunicaciones más eficientes. Opera en TDMA (Time Division Multiple Access) con dos slots de tiempo dentro de un canal de 12.5 kHz, lo que permite que dos transmisiones simultáneas ocurran en la misma frecuencia. Permite servicios adicionales al envío de la voz, como el envío de datos, tales como mensajes de texto o reportes de ubicación de los terminales. En torno a la voz, permite tanto llamadas individuales, similares a las de un teléfono móvil, como llamadas de grupo, de las que podrán formar parte los terminales registrados.

El codec AMBE+2 (Advanced Multi-Band Excitation) es el responsable de la compresión de voz en DMR. Este codec se usa debido a su alta eficiencia en ancho de banda y su robustez frente a ruido e interferencias. La voz analógica se muestrea a 8 kHz y se extraen parámetros de voz, como la frecuencia fundamental y la forma del espectro. La información de voz se comprime a una tasa de 2450 bps, con 1150 bps adicionales para corrección de errores, resultando en 3600 bps en formato digital.

La transmisión de voz en DMR se organiza en marcos TDMA, donde cada slot de tiempo dura 30 ms y contiene la voz digital codificada junto con los metadatos de señalización. Cada marco DMR de voz contiene 108 bits: 6 bloques de voz AMBE+2 (cada uno de 20 ms de voz comprimida con 49 bits de voz y 36 bits de corrección de errores), bits de control (24 bits) y sincronización, y finalmente, el código de verificación por redundancia cíclica (4 bits). Estos datos aseguran que los receptores puedan reconstruir la voz de forma robusta, incluso en presencia de errores.

DMR soporta varios métodos de cifrado, fuera de la especificación oficial, debido a los requerimientos de usuarios del sistema de comunicaciones. Algunos de ellos son propietarios como los definidos por los fabricantes Motorola o Hytera y otros son definidos por la DMR Association, los cuáles pueden ser implementados por los fabricantes que pertenezcan a la asociación, y son los que van a ser analizados. Son el RC4 y el AES (de 128 y 256 bits).

El marco PI (Privacy Indicator) es un componente del protocolo DMR que se inserta en los paquetes de señalización e indica si la transmisión está cifrada, qué tipo de cifrado se está utilizando, el índice de la clave utilizada y el vector de inicialización si fuera necesario. Permite a los receptores decodificar correctamente las transmisiones cifradas y se envía al principio de cada llamada.

El concepto de Late Entry en DMR permite a una radio que se una tarde a una conversación cifrada (después de haber sido emitido el marco PI), recibir los datos anteriores y decodificar correctamente la comunicación en curso. Los marcos de voz incluyen datos auxiliares de sincronización para permitir esta reconexión, sacrificando algunos de sus bits y degradando en algunos casos las comunicaciones. Una descripción más detallada se encuentra en la patente EP2347540B1 de Motorola.

Cifrado RC4

RC4 (Rivest Cipher 4) es un algoritmo de cifrado de flujo diseñado por Ron Rivest en 1987 para RSA Security. Es un algoritmo simétrico que opera sobre bytes individuales, generando un flujo de claves pseudoaleatorio que se combina con los datos mediante una operación XOR. Es rápido con un bajo consumo de recursos, ideal para hardware limitado, fácil de implementar en software y al ser cifrado simétrico usa la misma clave para cifrar y descifrar. Hoy en día se considera inseguro debido a diversas vulnerabilidades, aunque mejora la privacidad frente a receptores no autorizados sin conocimientos técnicos en criptografía o con acceso a herramientas de recuperación de claves.

En el caso del protocolo DMR se ignoran los primeros 256 bytes del flujo de claves pseudoaleatorio y se utiliza un vector de inicialización (IV) para minimizar el riesgo de vulnerabilidades. Pero el tamaño de la clave, de 40 bits, permite 2^40 claves diferentes, es decir, 1.099.511.627.776 claves. Este número de claves permite realizar un ataque de fuerza bruta conociendo el contenido de alguno de los marcos de voz, que puede ser predecible según el fabricante del dispositivo. Este ataque se puede realizar en cuestión de semanas en un ordenador doméstico.

Otras de las cuestiones es que el vector de inicialización es predecible y no es aleatorio siendo generado mediante un registro de desplazamiento con retroalimentación lineal (LFSR) con el polinomio P(x) = x^32 + x^4 + x^2 + 1, definido en la especificación TIA-EIA-102.AAAD.

También existen otros ataques basados en criptografía como la predicción de los bytes de salida en la S-Box, ataques de clave parcial que permiten recuperar partes de la clave con suficiente tráfico cifrado, utilizado previamente en la recuperación de claves del protocolo WEP de Wi-Fi.

Cifrado AES

El AES (Advanced Encryption Standard) es un algoritmo de cifrado simétrico por bloques, adoptado como estándar por el NIST (National Institute of Standards and Technology) en el año 2001. AES cifra bloques de 128 bits aplicando una serie de rondas de transformación que dependen del tamaño de la clave. Cada ronda consiste en operaciones matemáticas sobre la matriz de datos que representan el texto en claro. Dispone de tamaños de clave flexibles: AES-128 (clave de 128 bits, 10 rondas), y AES-256 (clave de 256 bits, 14 rondas). Es seguro contra ataques de fuerza bruta debido a su estructura matemática y eficiente en hardware y software, ideal para aplicaciones de alta seguridad.

En DMR se utiliza el modo de AES OFB (Output Feedback Mode), que convierte el cifrador de bloques en un cifrador de flujo, similar al RC4. Esto permite cifrar datos en tamaño variable y con alta resistencia a errores en la transmisión. Usa un vector de inicialización (IV) para generar un flujo de claves, los errores en la transmisión afectan solo el bit erróneo, y es utilizado en aplicaciones de transmisión de datos en tiempo real. En este caso se descarta la primera ronda del flujo (16 bytes) en el descifrado de los datos. En la transmisión se envía un IV de 32 bits que es convertido a uno de 128 bits mediante el LFSR con el polinomio P(x) = x^32 + x^22 + x^2 + x + 1, definido en la especificación TIA-EIA-102.AAAD.

A día de hoy el algoritmo no ha sido vulnerado, aunque se recomienda el uso de una clave generada aleatoriamente, el uso de AES-256 para una máxima seguridad y una rotación periódica de las claves ya que al ser un cifrado simétrico los poseedores de un terminal DMR podrían extraer la clave si no se encuentra debidamente protegida.

Conclusión

En el artículo se ha abordado una breve descripción del protocolo DMR y sus diferentes métodos de cifrado establecidos por la DMR Association, concluyendo que preferentemente se debe utilizar el algoritmo de cifrado AES en su versión de 256 para evitar escuchas de las comunicaciones por parte de receptores no autorizados.