Breve introducción a la tarjeta SIM

Cuando la pregunta, "¿Qué es usted?", Le contesté, "desarrollador de software para tarjetas SIM", incluso las personas conocedores de la tecnología a menudo se sorprenden. Muchos piensan que la tarjeta SIM es "algo así como una unidad flash."

En este artículo voy a tratar de explicar brevemente lo que la tarjeta SIM (y las tarjetas inteligentes en general), por lo que se necesita, y que ella tenía en su interior.

En realidad la tarjeta SIM - este es un caso especial de un contacto de la tarjeta inteligente del microprocesador. De hecho, representa un microordenador bastante seguro con CPU, ROM (opcional), la memoria RAM y NVRAM (que actúa como un análogo del disco duro en PC), con hardware generador de números aleatorios, y la implementación hardware de cripto-algoritmos.

En alguna aproximación arquitectura de microprocesador tarjetas inteligentes se pueden representar como:


Un poco sobre la producción h4>
Para mayor comprensión del material que me parece el derecho a explicar brevemente los procesos básicos en la producción de mapas.

1. La producción de chips
Artista: El fabricante de los chips (proveedor de silicio).
El producto final:. B> plato con patatas fritas (obleas)
Los chips son fabricados por varias compañías, el más común - Samsung, ST Microelectronics, Infinion, SST, etc.



El reverso del módulo. Rectángulo blanco en el centro - chip de la tarjeta SIM
.
2. Montaje de módulos
Artista: fabricante de tarjetas inteligentes (proveedor de la tarjeta) o una de terceros módulos de la planta de ensamblaje.
El producto final:. Módulos de la cinta (chip + pad)
En esta etapa la placa se corta en virutas (a menudo las placas son cortadas por el fabricante del chip), los chips se montan en las almohadillas, entonces los contactos soldados y el chip se rellena con pegamento (ver. Lado Anterior foto parte posterior del módulo). Toda esta construcción se llama "módulos".

3. Fabricación de tarjetas
Artista: proveedor de la tarjeta.
El producto final:. B> de la tarjeta SIM
Los módulos se extraen de las cintas están montados en una tarjeta base de plástico, después cargue el sistema de archivos, la aplicación a continuación, va la tarjeta de personalización - la carga de datos única para cada tarjeta (diferente de identificación, llaves, etc.) y su aplicación a la tarjeta (códigos por ejemplo ICCID y PIN el caso de las tarjetas SIM).

Tipos de tarjetas h4> El tipo de memoria utilizada recientemente la tarjeta SIM se dividen en 2 grupos: las tarjetas que utilizan la ROM y EEPROM, y una tarjeta que utiliza memoria flash.
En el primer tipo de sistema operativo de la tarjeta (OS), y se utiliza con regularidad y aplicaciones maloizmenyaemye se colocan en el fabricante de chips ROM (la primera etapa de la producción). Ciclo de producción, en este caso es muy larga y la brecha entre el lanzamiento del sistema operativo, y el primer embarque de chips de toma de 2-3 meses. EEPROM usando el fabricante de la tarjeta para descargar el sistema de archivos (FS) y aplicaciones.
En el caso de Flash Card OS, FS y aplicaciones se almacenan en la memoria flash. Utilización de Flash, puede descargar el sistema operativo durante el montaje de los módulos o en la producción de mapas (pasos 2 y 3). En este punto, la tarjeta con memoria flash prácticamente sustituida ROM con el mercado de tarjetas SIM. Los chips flash son más baratos y permiten bastante fácil de realizar cambios en el sistema operativo. También, del fabricante de la tarjeta más fácil planificar el orden de los chips, ya que no tienen que pedir patatas fritas con versiones específicas del sistema operativo, pero los chips sólo ordenados con diferentes tamaños de memoria, y que ya han descargado el sistema operativo para un cliente específico - el operador. Dado que el pronóstico para la compra de fichas se hace generalmente una vez al año, que simplifica en gran medida la planificación.

Mapas

Java h4> Sí, no me equivoqué. De acuerdo con el programa de "relleno" tarjetas inteligentes se dividen en 2 grupos -. nativo i> y javacard i>

Tarjeta Nativa h5> software para las tarjetas nativas escritas en C. Apéndices (si es requerido por el fabricante) es por lo general estrechamente integrado con el sistema operativo y se carga de forma simultánea en el mapa OS. Instale cualquier aplicación desarrollada por otra empresa, a la tarjeta nativa no puede ser. La funcionalidad adicional solicitada por el operador, a menudo tienen que añadir código para el sistema operativo. Las dimensiones de la OS de la utilización de C y la simplicidad del sistema operativo lo suficientemente pequeño (orden de la tarjeta SIM 10-20Kbayt). Por lo tanto, tarjetas nativas utilizan actualmente en el segmento de bajo costo, donde el operador no quiere que nada en el mapa, pero el menú sencillo.

Javacard h5> En la era de la proliferación de Java Sun Microsystems ha escrito las especificaciones javacard. Javacard idea era hacer posible la instalación de aplicaciones (applets) a las tarjetas de diferentes fabricantes (y en diferentes chips). En 1996, la división de Smart Card Corporación Shlumberger (más tarde rebautizado como Axalto, actualmente Gemalto) introdujo el primer javacard. La idea es bastante simple. Además del mapa OS incluye una máquina virtual Java. La aplicación desarrollada se compila en bytecode y se carga en la tarjeta. Las aplicaciones en este caso cargado después de arrancar el sistema operativo (en el proceso de producción de la tarjeta), y si la tarjeta contiene el applet Remote Manager, subprograma javacard se pueden instalar después del lanzamiento de la tarjeta a través de la CMC.
Idioma para desarrollar bajo javacard - cortó en gran medida por Java. Recortado es mucho más fuerte que en J2ME. Desde las primitivas eran sólo
  boolean, byte, short  code>  pre> y int opcionalmente soportado (pero apenas se utilizan para el bien de la compatibilidad, ya que no está soportado por todos los fabricantes). Ningún tipo habitual de clases 
  Cadena  code>  pre> (todos 
  java.lang  code>  pre> migrada Sólo 
  del objeto  code>  pre>, 
  Throwable  code>  pre> y algunos 
  Excepciones  code>  pre>), no multithreading, sin collector'a basura. Contras javacard, en mi opinión - es la velocidad de los requisitos de memoria grandes y (como RAM y EEPROM / Flash). Java-tarjetas son más caros debido a la utilización de chips de más caros y estructura más compleja. 

Aplicaciones h5> El texto anterior se cita a menudo la aplicación, pero la persona no está familiarizado con las tarjetas inteligentes, más a menudo no está claro qué tipo de aplicaciones pueden estar en el mapa.

En primer lugar, la funcionalidad básica de la tarjeta se puede poner en un anexo separado. Por ejemplo, puede ser applet de SIM, escrito en Java, que implementa toda la funcionalidad de SIM. Puede ser R-UIM aplicación (tarjeta R-UIM usado en las redes CDMA). Esta aplicación puede ser Visa o Mastercard, la conversión de la tarjeta inteligente en una tarjeta bancaria. De hecho, cuando se utiliza Java, puede dejar la gestión de memoria del sistema operativo, de entrada-salida y la máquina de Java. En este caso, si el fabricante tiene que hacer la tarjeta SIM - subprograma SIM está cargada, si es necesario hacer Visa - Visa aplicación descargable.

En segundo lugar, hay una clase de aplicaciones en las tarjetas - micronavegadores. Este intérprete de código de bytes para la construcción del menú SIM. Esto no es de código de bytes de Java y de código de bytes de los navegadores instalados comprensibles. El menú en este caso lo más a menudo desarrollado en lenguaje de marcado-xml como se convierte en el código de bytes y se carga en el navegador. Actualmente los navegadores más utilizados S @ T desde SIMalliance y WIB de SmartTrust < / a>. Ambas organizaciones no están desarrollando navegadores, escriben las especificaciones y certifican los navegadores, la escritura en estas especificaciones.

En tercer lugar, puede ser menú SIM, desarrollado en java (sin el uso de los navegadores), o sólo algunos applet de fondo. Por ejemplo, puede ser un applet que controla en qué teléfono que utiliza. Si inserta la tarjeta en el nuevo teléfono, la tarjeta SIM envía el IMEI del nuevo operador de telefonía, que a su vez envía a configurar WAP / GPRS para su modelo.

File System h4> tarjetas SIM en un sistema de archivos, así como en equipos de escritorio. Los archivos son de 2 tipos - DF (archivo Dedicado - analógicas carpeta) y EF (archivo Primaria - analógicas del archivo de costumbre). Archivos raíz DF llamado MF (maestra de archivos).

En el sistema de archivos de la tarjeta SIM almacena claves secretas, libreta de direcciones, reciente SMS, nombre del operador, de la red, la red de roaming preferida, prohibida para su uso, y así sucesivamente. D. Por supuesto, hay niveles de acceso a los archivos. Claves a menudo tienen acceso NUNCA como lectura, lo que elimina la posibilidad de leerlos desde el exterior.

¿Qué es todo esto necesario? H4> SIM-menú y las otras aplicaciones "no-sistema" se acaba de Servicios de Valor Agregado. El propósito principal de la tarjeta - hacer la identificación y autenticación del suscriptor en la red
.
Para ello, en el mapa hay IMSI (identidad internacional del abonado móvil) -. Identificador único de la tarjeta SIM y una Ki de 128 bits clave
A continuación se muestra el procedimiento de autenticación en la red GSM y generar una clave de sesión Kc.

La autenticación se lleva a cabo utilizando un algoritmo A3, generación Kc -. A8
Centro de Autenticación (AuC) una solicitud de autenticación a la tarjeta genera secuencia pseudo-aleatoria de 128 bits RAND y la envía a la tarjeta SIM. Además, conociendo la tarjeta IMSI, el AUC utiliza la clave Ki, con destino a esta IMSI, datos y RAND como entradas a los algoritmos A3 y A8. Mapa realiza simultáneamente los mismos cálculos. El resultado del cálculo del algoritmo A3 Firmado Respuesta (IE-EE) se envía a la tarjeta de AUC, que compara los SRES recibidos con el valor calculado en el AUC. Cuando se considera la coincidencia de los resultados del procedimiento de autenticación completado con éxito. Clave Kc, obtenido utilizando el algoritmo A8, que se utiliza posteriormente para cifrar el tráfico entre el teléfono y la red.

Programas de tarjetas de "clonar" utilizan la vulnerabilidad en la versión anterior del algoritmo A8 (COMP128-1). En este punto de las redes GSM son ampliamente utilizados y COMP128-2 COMP128-3. Una vulnerabilidad fue descubierta en 1999, pero algunos operadores GSM no han cambiado a la segunda y tercera de algoritmos (vulnerabilidades que actualmente no se encuentran).

Epílogo h4> En este artículo me han tratado muy sucintamente decir qué es una tarjeta SIM. Espero que lo tengo. Prácticamente la totalidad de la descripción anterior, excepto el procedimiento de autenticación, y para otnostitsja USIM-tarjetas utilizados en las redes 3G (UMTS), y la tarjeta R-UIM (red CDMA). Si tiene algún comentario o pregunta - por favor escribir.

Enlaces relacionados:




Fuente: