📜 ⬆️ ⬇️

A brief introduction to SIM cards

When answering the question “who do you work?” I answered “developer of software for SIM-cards”, even technically savvy people were often surprised. Many people think that a SIM card is “something like a flash drive”.

In this article I will try to briefly describe what a SIM card (and smart cards in general) are, why it is needed and what is inside it.

In fact, a SIM card is a special case of a contact smart card with a microprocessor. In fact, it is a fairly secure microcomputer with CPU, ROM (optional), RAM and NVRAM (which acts as an analogue of a hard disk in a PC), with hardware random number generators and hardware implementation of crypto algorithms.
')
In some approximation, the architecture of a microprocessor smart card can be represented as follows:
Smart card architecture

Little about production


In order to understand the subsequent material, it seems to me correct to briefly explain the main processes in the production of maps.

1. Chip production

Artist: Manufacturer of chips (silicon vendor).

The final product: a plate with chips (wafer).

The chips are manufactured by several companies, the most common are Samsung, ST Microelectronics, Infinion, SST etc.

image

The reverse side of the module. White rectangle in the center - SIM card chip:

image

2. Building Modules

Artist: manufacturer of smart cards (card vendor) or a third-party factory for the assembly of modules.

The final product: tape with modules (chip + contact pad).

At this stage, the plate is cut into chips (often the plates are cut by the chip manufacturer), the chips are attached to the pads, then the contacts are soldered and the chip is filled with glue (see previous photo of the back side of the module). This whole construct is called a “module”:

image

3. Card production

Artist: card vendor.

The final product: a SIM card.

The modules are removed from the tapes, mounted on the plastic base of the card, then the file system and applications are loaded, then the card is personalized — loading data that is unique for each card (different IDs, keys, etc.) and applied to the card itself (for example, ICCID and PIN codes in case with SIM cards).

image

Card types


By the type of memory used recently, SIM cards are divided into 2 groups: cards that use ROM and EEPROM, and cards that use Flash memory.

In the first type of cards, the operating system (OS) and constantly used and low-changing applications are placed in ROM by the chip manufacturer (the first production phase). The production cycle in this case is very long and the interval between the release of the OS and the shipment of the first chips takes 2-3 months. EEPROM is used by the card manufacturer to load the file system (FS) and applications.

In the case of the Flash card, the OS, FS, and applications are stored in Flash memory. Using Flash allows you to load the OS in the process of assembling modules or in the production of the card (steps 2 and 3). At the moment, flash memory cards have practically supplanted ROMs from the SIM card market. Flash chips are cheaper and make it quite easy to make changes to the OS. It is also easier for the card manufacturer to plan the order of chips, since you do not need to order chips with specific OS versions, but simply order chips with different memory sizes, and the OS you need is loaded for a specific customer - operator. Since the forecast for the purchase of chips is usually done only once a year, this greatly simplifies planning.

Java on maps


Yes, I was not mistaken. According to the program "stuffing" smart cards are divided into 2 large groups - native and javacard .

Native cards

Software for native-cards is written in C. Applications (if they are required by the manufacturer) are usually tightly integrated with the OS and loaded simultaneously with the OS on the card. You cannot install any applications developed by another company on a native card. Additional functionality requested by the operator often has to be added to the OS code. The dimensions of the OS itself due to the use of C and the simplicity of the OS are quite small (for SIM cards about 10-20Kbytes). Therefore, native cards are currently used in the low-cost segment, where the operator wants nothing on the card, except for a simple menu.

Javacard

Java Sun Microsystems javacard. javacard , () ( ). 1996 - Shlumberger ( Axalto, Gemalto) javacard. . Java. . ( ), , Remote Applet Manager, javacard CMC.

javacard — Java. , J2ME. boolean, byte, short int ( , ). String ( java.lang Object, Throwable Exceptions), , garbage collector'. javacard, , — ( RAM, EEPROM/Flash). Java- .


, , -, , .

-, . , SIM applet, java, SIM. R-UIM (R-UIM CDMA ). Visa Mastercard, - . , java, , - Java . , SIM- — SIM , Visa — Visa.

-, — microbrowsers. SIM-. java , , . xml- , . S@T Simalliance WIB Smarttrust. , , .

-, SIM , java ( ), - . , , , . , SIM IMEI , , , wap/gprs .


SIM- , . 2 — DF (Dedicated file — ) EF (Elementary file — ). DF MF (Master File).

image

SIM- , , , , , , , , . . , . NEVER , .

?


SIM- «» value added services. — .

IMSI (International Mobile Subscriber Identity) — SIM- 128- Ki.

GSM Kc.

image

A3, Kc — A8. Authentication Center (AuC) 128- RAND SIM-. , IMSI , AuC Ki, IMSI, RAND A3 A8. . A3 Signed Response (SRES) AuC, SRES AuC. . Kc, A8, .

«» A8 (COMP128-1). GSM COMP128-2 COMP128-3. 1999 , GSM 2- 3- ( ).


SIM-. . , , USIM-, 3G (UMTS), R-UIM (CDMA ). - — .

:

www.3gpp.org
www.3gpp2.org
Java Card Technology

Source: https://habr.com/ru/post/93210/


All Articles