Dmitry Astapov (_adept_) wrote,
Dmitry Astapov
_adept_

Category:

GSM: что такое SIM-карта и с чем ее едят?

Заказной пост для feuerbach: "а как во всем этом празднике жизни участвует PIN-код SIM-карты? Почему имея SIM-карту (но не зная PIN-кода), нельзя выполнять все эти A3/A8 алгоритмы? И как шифруется информация на SIM-карте (адресная книга, например)?"

Если у вас есть мобильный телефон, то у вас с большой вероятностью есть какой-то gadget, в который вставляется карта памяти - цифровой фотоаппарат, mp3-плейер, или usb-накопитель для компьютера. Возможно, именно обилие разнообразных устройств, "начиняемых" картами памяти, привело к тому, что SIM-карта воспринимается многими как еще одна разновидность энергонезависимого накопителя - вроде SD, MMC или CompactFlash.

Что же такое SIM-карта?

На самом деле SIM-карта является "смарт-карторй" и содержит в себе микропроцессор и память (как ROM, так и EEPROM). Процессор этот, правда, не имеет собственного питания - его (равно как и генератор тактовой частоты) предоставляет телефон.

Каждая SIM-карта содержит определенный набор (под)программ, заложеных в нее производителем и определяющих ее поведение. Стандарт GSM описывает необходимый минимум операций, который должна поддерживать любая SIM-карта.

В частности, в стандартное поведение SIM-карты входит авторизация доступа к различным областям ее памяти. Для этого карта хранит у себя два "логина", называемые PIN1 и PIN2 (другое, редкое название - CHV1 и CHV2, от card holder verification), и запрашивает их (при помощи телефона) при попытке считать и/или изменить определенные области памяти или вызвать определенные подпрограммы.

Если не вдаваться в подробности, то можно сказать, что без авторизации по PIN1 толку от SIM-карты практически нет - из нее почти ничего нельзя считать, и нельзя обратиться к большинству ее функций (включая выполнение алгоритмов A3/A8). Однако, в таком состоянии SIM-карты в дикой природе практически не встречаются. Для доступа к ним так или иначе используется телефон -- либо пользователь стучит по клавишам, либо с помощью data cable работает с SIM-картой с персонального компьютера -- а телефон первым делом после включения дает питание SIM-карте, и та сразу же требует PIN1.

Что и как хранится на SIM-карте?

Память SIM-карты организована в виде древовидной структуры:
MF (master file)
`--> GSM DF (directory file)
        `--> EF1 (elementary file)
        `--> EF2
        .....
`--> TELCO DF
        `--> EF1
        `--> EF2


Слово file тут употребляется в непривычном значении и может сбивать с толку. Для простоты, считайте, что MF и DF - это директории, а EF - это файлы, каждый из который может содержать одну или несколько "записей", где запись - это пара (имя, значение).

Примеры EF, хранящися на SIM-карте: телефонная книга; принятые SMS-ы; перечень сетей, в которых SIM-карте запрещено регистрироваться; параметры broadcast channels соседних базовых станций.

Режим доступа к EF (read-only, read-write) определяется программой SIM-карты. Поскольку стандартный интерфейс работы с SIM-картой не предусматривает передачу/прием шифрованных данных, а другого способа доступиться к содержимому SIM-карты не существует, то для нас не существенно, как именно хранятся данные на SIM-карте - шифрованными, в виде 6-битных байтов, в переводе на китайский и т.п. :)

Подробный перечень стандартных EF и режимов доступа к ним можно найти в "GSM Handbook" на странице 330, в таблице 8.2 (ссылку на PDF с этой книжкой я давал раньше). В принципе, SIM-картам там посвящен целый раздел (Section 8).

Вопросы?
Tags: gsm
Subscribe
  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 16 comments