Что содержит SIM-карта

SIM-карта - это нечто большее, чем просто карта с памятью, поскольку ее микропроцессор под управлением операционной системы способен автономно осуществлять обработку информации определенной сложности (в частности, криптографическую).

SIM-карту можно сравнить с дискетой: ббльшая часть содержащейся на ней информации организована в виде древовидной структуры директорий и поддиректорий, принцип построения которой схематически представлен на рис. 5.1.

Команда SELECT (операционный код A4h) позволяет свободно перемещаться по рассматриваемой структуре файлов аналогично команде CD (Change Directory) в MS DOS.

Корневую директорию, называемую MF (Master File) и имеющую идентификатор 3F00h, можно выбрать с помощью команды ISQ

АО А4 00 00 02 3F 00

Следует отметить, что каждый сброс карты (reset) автоматически приводит в эту директорию, поэтому нет необходимости специально се выбирать.

Корневая директория может содержать несколько так называемых элементарных файлов EF (Elementary Files), идентификатор которых обязательно начинается с 2Fh. Но главное, она включает в себя поддиректории, называемые выделенными файлами DF (Dedicated Files), идентификатор которых для конкретного случая поддиректории «первого уровня» начинается с 7Fh. В этой поддиректории также размещаются элементарные файлы EF, но их идентификатор начинается с 6Fh.

Стандарт GSM 11.11 дает определение поддиректорий и файлов, наличие которых обязательно (mandatory) и факультативно (optional).

Производители и дистрибьюторы карт свободно могут добавлять собственные директории и файлы к различным уровням этой базовой структуры. Они даже имеют возможность при необходимости размещать на многофункциональной карте дополнительные информационные программы (например, апплеты Java).

Ниже представлен постоянно пополняемый список файлов, обычно содержащихся на недавно выпущенных SIM-картах. Здесь можно встретить исключительно интересные для исследования файлы, о существовании которых большинство пользователей даже и не догадывается.

3f00 : Корневая директория
3F00:2F05 (ELP, Extended Language Preference)
3F00:2FE2 (ICCID)
3f00:7f10 Директория «Telecom»
7F10:5F5Q (Поддиректория «Graphics»)
7F10:6F3A (ADM, Abbreviated Dialling Numbers)
7F10:6F3B (FDN, Fixed Dialling Numbers)
7F10:6F3C (SMS, Short Messages)
7F10:6F3D (CCP, Capability Configuration Paran
7F10:6F40 (MSISDN, Own Numbers)
7F1p:6F42 (SMSP, Short Messages Service Parameters)
7F10:6F43 (SMSS, SMS Status)
7F10:6F44 (LND, Last Number Dialed)
7F10:6F49 (SDN, Service Dialling Numbers)
7F10:6F4A (Ext 1)
7F10:6F4B (Ext 2)
7F10:6F4C (Ext 3)
7F10:6F4D (BDN, Barred Dialling Numbers)
7F10:6F4E (Ext 4)
7F10:6F47 (SMSR, Short Message Status Reports)
3f00:7f20 Директория «GSH»
7F20:5F30 (Поддиректория «Iridium»)
7F20:5F31 (Поддиректория «Globalstar»)
7F20:5F32 (Поддиректория «IC0»)
7F20:5F33 (Поддиректория «ACeS»)
7F20:5F40 (Поддиректория «PCS1900»)
7F20:5F60 (Поддиректория «CTS»)
7F20:5F70 (Поддиректория «SoLCA»)
7F20:6F05 (LP, Language Preference)
7F20:6F07 (IMSI, International Mobile Subscriber Indentity)
7F20:6F11 (VWMI, Voice Mail Waiting Indicator)
7F20:6F12 (SST, Service String Table)
7F20:6F13 (CFF, Call Forwarding Flags)
7F20:6F14 (ONS, Operator Name String)
7F20:6F15 (CSP, Customer Surface Profile)
7F20:6F16 (CPHS Information)
7F20:6F17 (MBX, VoiceMail Numbers)
7F20:6F20 (Kc, Ciphering Key)
7F20:6F2C (DCK, Depersonalization Control Key)
7F20:6F30 (PLMN, Preferred PLMNs)
7F20:6F31 (HPLMN search period)
7F20:6F32 (CNL, Cooperative Networks List)
7F20:6F37 (ACMM, ACM Maximum value)
7F20:6F38 (SST, SIM Service Table)
7F20:6F39 (ACM, Accumulated Call Meter)
7F20:6F3E (GID1, Group Identifier level 1)
7F20:6F3F (GID2, Group Identifier level 2)
7F20:6F41 (PUCT, Price per Unit and Currency Table)
7F20:6F45 (CBMI, Cell Broadcast Message Identifier selection)
7F20:6F46 (SPN, Service Provider Name)
7F20:6F50 (Call broadcast message identifier range selection)
7F20:6F51 (NIA, Networks Indication of Alerting)
7F20:6F52 (KcGPRS, GPRS Ciphering Key)
7F20:6F53 (LociGPRS, GPRS Location Information)
7F20:6F54 (SUME, SetUpMenu Elements)
7F20:6F74 (BCCH, Broadcast Control Channels)
7F20:6F78 (ACC, Access Control Class)
7F20.6F7B (FPLMN, Forbidden PLMNs)
7F20:6F7E (LOCI, Location Information)
7F20:6FAD (AD, Administrative Data)
7F20:6FAE (Phase)
7F20:6FB1 (Voice Group Call Service)
7F20:6FB2 (Voice'Group Call Service Status)
7F20:6FB3 (Voice Broadcast Service)
7F20:6FB4 (Voice Broadcast Service Status)
7F20:6FB5 (eMLPP, enhanced Multi Level Preemption and Priority)
7F20:6FB6 (Automatic Answer for eMLPP Service)
7F20:6FB7 (Emergency.Call Codes)
3F00:7F21 Директория DCS

(тот же самый перечень, что и 3F00:7F20, для сети DCS 1800)

Описание каждого из этих файлов неизменно дается на англий-i ком языке, аббревиатуры, получаемые из названий файлов, являются общепринятыми в системе GSM.

Каждый элементарный файл (EF) может принадлежать одному из трех следующих семейств: прозрачные, линейные и циклические. Он состоит из заголовка (header) и тела (body).

Заголовок детально описывает структуру файла и условия доступа к нему. Его можно прочитать после выбора файла с помощью команды Get Response (C0h).

Тело содержит собственно данные, которые могут быть прочитаны с помощью команд Read Binary (BOh) и Read Record (B2h) и записаны с помощью Update Binary (D6h) и Update Record (CDn).

Прозрачный файл состоит из определенного числа байтов, доступных по отдельности или блоками, для чего необходимо уточнить их относительный адрес (offset) и длину (length). Первый байт файла, естественно, располагается по относительному адресу ООООh.

Линейный файл состоит из последовательности записей (records) фиксированной длины и в соответствии с этим должен рассматриваться как последовательный. Максимальный объем такого файла составляет 255 записей на 255 байт, не считая расширения.

Проводить запись можно в абсолютном режиме (с уточнением порядкового номера записи), в текущем режиме, в режиме «предыдущий - последующий» или в режиме «первый - последний».

Циклический файл содержит определенное число записей фиксированной длины. При этом каждая новая запись всегда занимает первую позицию, в то время как последняя оказывается «затертой» предпоследней. Отметим, что в такой циклической структуре запись, предшеству-.ющая первой, фактически является последней, а запись, следующая за последней - первой.

Подобный тип файла по определению никогда не может оказаться в состоянии перенасыщения, однако существует возможность потери старых данных по мере записи новых.

Прозрачными файлами можно без труда оперировать посредством любого устройства для считывания чип-карт, позволяющего вести прямой диалог через команды ISO (например, используя устройство, изготовленное по схемам, рассмотренным в главе 4).

С линейными и циклическими файлами удобнее работать при помощи специальных программ и промышленных устройств для счи-I тывания чип-карт. Такие файлы могут содержать большие объемы информации (например, список из 150 номеров телефонов с соответствующими именами и фамилиями), которыми проще манипулировать в среде базы данных.

Между тем файлы, вызывающие наибольший интерес, практически все принадлежат к типу прозрачных.