Articulo de referencia

COMP128

Los algoritmos COMP128 son implementaciones de las funciones A3 y A8 definidas en el estándar GSM . A3 se utiliza para autenticar la estación móvil en la red. A8 se utiliza para...

Los algoritmos COMP128 son implementaciones de las funciones A3 y A8 definidas en el estándar GSM . A3 se utiliza para autenticar la estación móvil en la red. A8 se utiliza para generar la clave de sesión que A5 utiliza para cifrar los datos transmitidos entre la estación móvil y la BTS .

Existen tres versiones de COMP128. Originalmente eran confidenciales. Una descripción parcial de la primera versión se filtró en 1997 y se completó mediante ingeniería inversa . Esto condujo a su publicación completa en 1998. [ 1 ] La segunda y la tercera versiones se obtuvieron mediante ingeniería inversa del software que verifica la conformidad de las tarjetas SIM. [ 2 ]

Introducción

Para obtener más información sobre cómo se utilizan A3 y A8, consulte el Centro de autenticación .

Las funciones A3 y A8 reciben como entrada una clave de 128 bits ( K i ) y un desafío de 128 bits ( RAND ). A3 genera una respuesta de 32 bits ( SRES ) y A8 genera una clave de sesión de 64 bits ( K c ). A3/A8 es la función combinada que recibe como entrada K i y RAND , y genera como salida SRES y K c .

Dado que A3 y A8 no se especifican con mayor detalle, los operadores pueden elegir libremente los algoritmos concretos que se utilizarán para A3 y A8.

Algoritmos COMP128

Los algoritmos COMP128 implementan la función A3/A8. Hay tres de ellos:

  • COMP128-1 – algoritmo original con debilidades conocidas
  • COMP128-2 – algoritmo más robusto que aún borra los 10 bits más a la derecha de K c
  • COMP128-3: mismo algoritmo que COMP128-2 con los 64 bits de K c generados.

Todos ellos se basan en una función de compresión con dos entradas de 128 bits y una salida de 128 bits, de ahí sus nombres. K i y RAND se utilizan como entradas de la función de compresión. Los bits de su salida se utilizan para rellenar SRES y K c .

Descripción de COMP128-1

COMP128-1 utiliza una función de compresión de ocho rondas basada en una estructura de mariposa de cinco etapas. SRES se rellena con los primeros 32 bits de la salida. K c se rellena con los últimos 54 bits de la salida, seguidos de diez ceros.

Para obtener una descripción completa del algoritmo, el lector puede consultar la implementación de OsmocomBB .

Descripción de COMP128-2/3

La implementación de COMP128-2 y COMP128-3 es notablemente más compleja que la de COMP128-1. Para una descripción completa del algoritmo, el lector puede consultar la implementación de OsmocomBB o la implementación de FreeRADIUS , ambas basadas en el código Python del artículo Secrets of Sim [ 2 ] . COMP128-2 es idéntico a COMP128-3 excepto por el hecho de que, al final, borra los 10 bits más a la derecha de K c .

Seguridad

La función hash COMP128-1 se considera débil debido a la insuficiente difusión de pequeños cambios en la entrada. Se han demostrado ataques prácticos que pueden recuperar la clave del suscriptor de la tarjeta SIM. [ 3 ]

Las claves de sesión generadas por COMP128-1 y COMP128-2 tienen intencionadamente solo 54 bits de entropía. Esto debilita significativamente el cifrado A5 o A6.

Referencias

  1. Briceno, Marc; Goldberg, Ian; Wagner, David (1998), Implementación de COMP128 , archivado del original el 18 de marzo de 2009.
  2. 1 2 Tamas, Jos (2013), Secretos del SIM , archivado del original el 24-12-2014 , recuperado el 24-12-2014
  3. Brumley, Billy (2004), A3/A8 y COMP128 (PDF)
  • Briceno, Marc; Goldberg, Ian (1998), Clonación GSM
  • Handschuh, Helena; Paillier, Pascal (2000), Reducción de la probabilidad de colisión de supuestos Comp128 , CiteSeerX 10.1.1.141.1033