Bienvenido a Tecnohackers

Tecnohackers » Comunicaciones y Redes » Phreaking / Dispositivos Moviles
 » 

Funcionamiento de la Sim Card



Autor Tema: Funcionamiento de la Sim Card  (Leído 1724 veces)

Desconectado char

  • Gran Colaborador
  • ****
  • Mensajes: 1158
  • Ingeniero de Sistemas
    • TIC´S
Funcionamiento de la Sim Card
« en: Agosto 23, 2009, 06:09:29 pm »
Las SIM y la autentificacion

La tarjeta You are not allowed to view links. Register or Login basicamente sirve para identificar a un usuario dentro del servicio de You are not allowed to view links. Register or Login. La tarjeta tiene un numero de identificacion (You are not allowed to view links. Register or Login) que se relaciona en una base de datos del operador, con el numero de telefono, un numero secreto Ki (que tambien esta en la tarjeta, facturacion y sus datos personales (en caso de que se sea una tarjeta de contrato).

Con esto solo seria facilmente "falsificar" los datos de un usario. Para evitarlo la SIM contiene un sistema de autentificacion basado en una funcion matematica. Esa funcion matematica es una funcion HASH. Estas funciones tienen la propiedad de devolver una unica salida a partir de una entrada. Esto es tu metes un numero (el 45) y la funcion te devuelve el siempre para ese numero otro (por ejm el 7. Si meterias otro numero el resultado nunca seria 78 (o tendrias poquisimas probabilidades de ello).
Otra de la propiedad de las rutinas HASH es que no puedes a partir de la salida deducir la entrada. Esto es: si tu tienes el 78 no puedes calcular de ninguna forma (aun teniendo la rutina HASH) cual era la entrada para esa salida. Es decir son funciones inreversibles.

Bueno, la tarjeta SIM tiene una funcion HASH se llama COMP128 y tiene dos versiones v1 y v2. Para acceder a esta funcion HASH se utiliza el comando GSM 11.11 A0 88.


La funcion HASH (COMP128)

La funcion HASH (COMP128) de las SIM se utiliza como hemos comentado para autentificar la tarjeta SIM.

¿Como? Con esta secuencia:

- La SIM manda a la central el IMSI y se identifica.
- El operador comprueba que datos tiene su base de datos para este IMSI.
- El operador genera un numero aleatorio que llamaremos SRand.
- Envia el SRand a la tarjeta (todo por medio de telefono que no es mas que un mero terminal)
- La tarjeta usa este SRand + mas un numero secreto Ki de datos de entrada para ejecutar el COMP128.
- El COM128 devuelve un resultado en dos partes SRes + Kc.
- El SRes es devuelto a la central. El Kc se guarda.
- La central que conoce Ki de esa SIM (que esta asociado al IMSI en su base de datos) repite toda la operacion que ha echo la SIM.
(Daros cuenta que tiene el Ki y el SRand por lo que puede ejecutar una COMP128 como lo hace la tarjeta).
- El operador compara el SRes enviado por la SIM, con el que acaba de calcular el. Si son iguales la tarjeta es "valida".

¿Para que todo esto?

Los numero que pasan entre el operador y la tarjeta son aletorios. No puedes generar con este procedimiento una autentificacion (o respuesta igual) si no tienes el Ki.

La implementacion concreta de la rutina COMP128 esta de la forma que sigue:
- Una entrada de 32 Bytes compuesta por 16 Bytes del SRand + 16 Bytes del Ki
- Una salida de 12 Bytes. De los cuales 4 Bytes son para el SRes + 8 para el Kc.

¿Para que se usa el Kc?

El Kc se usa posteriormente como clave de la encriptacion de voz. Los ultimos 10 bits del Kc en COMP128 v1 y v2 SON CEROS!!!. Se comenta por ahi que eso es para que los gobiernos o empresas estatales, puedan oir los telefonos moviles. Daros cuenta que las combinaciones del KC serian a 2^64, pero al ser los ultimos 10 bits ceros se reducen a 2^56. Numero de combinaciones altas pero superables con una maquina apropiada.

Para probar todo esto tenes una posibilidad mendiante el XSIM. El XSim en su funcion de busqueda del Ki tiene una solapa llamada Test Vectors.
Ahi lo que hace es mandar a la tarjeta 3 SRand diferentes y comprobar los resultados (separandolos por sus partes). Con esto se tiene una muestra de comportamiento de la tarjeta. Estos datos sirven posteriormente de TEST para comprobar si el Ki obtenido es el mismo que el que ha generado esas comprobaciones. Con eso se puede "certificar" que el Ki encontrado es bueno.



Fuente: pOrtalHAcker
« Última modificación: Mayo 02, 2010, 05:19:04 pm por alma_triste »

::Así es Volví::

Tags:
Tags:

 


SMF 2.0.19 | SMF © 2016, Simple Machines
Paginas Afiliadas
Twitter - FaceBook - Daraxblog
Designed by Smf Personal