?

Log in

No account? Create an account
dump -0f - /dev/mind
Я знаю Haskell, OCaml, GSM, эндофункторы и много других страшных слов
GSM: что такое SIM-карта и с чем ее едят? 
12th-Nov-2006 10:33 pm
Заказной пост для 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).

Вопросы?
Comments 
12th-Nov-2006 08:40 pm (UTC)
Сим-карта может содержать какую-то хернюшку программную, которая появляется в меню моего телефона и может выполняться, если я с бодуна в нее ткну. Меню развлечений какое-то или еще какая рвота. :)

Так вот вопрос. В каких кодах разработана эта фигнюшка, что она спокойно готова выполняться как на смартфоне нокия под симбианом так и под тупой мабилой от мотороллы на совсем другом процессоре, например?
12th-Nov-2006 10:01 pm (UTC)
Я подозреваю что там какой то аналог RPC --- команда с параметами скармливается по шине, и получается результат
12th-Nov-2006 09:37 pm (UTC)
А когда телефон ничего не запрашивает при включении с новой сим картой, значит ли это что пин1 просто пуст? :)
13th-Nov-2006 09:06 am (UTC)
Это значит, что на SIM-ке установлен флажок "не спрашивать PIN1". Но для его установки нужно ввести PIN1 :)

А "пустого PIN1" не бывает - он всегда чему-то да и равен.
13th-Nov-2006 09:12 am (UTC)
Ну он уже введён прямо в момент изготовления сима :) Из всех американских симов я _ни разу_ не видел такого, чтобы спрашивал PIN1. Когда провайдер выдаёт его (прямо в карте из которой он выламывается) они просто активируют сканируя бар-код на карте. И всё, можно втыкать в телефон, и больше ничего не спрашивает :)
13th-Nov-2006 10:05 am (UTC)
Американская мобильная связь ... Хм. Мы точно говорим про GSM?

А то может это CDMA-шный RM - похож на SIM, но какие-то отличия все же есть.

Даже если речь идет о GSM, то я уверен, что можно отключить опцию "disable PIN request" и ... попасть в засаду :) (если PIN1 нигде не указан). А карточки скорее всего приходят с таким набором настроек прямо от производителя.
13th-Nov-2006 02:22 pm (UTC)
Абсолютно :) Вот уже сколько лет пользуюсь %) И знакомым, прилетающим сюда prepaid симки покупал (T-Mobile GSM и Cingular GSM) и точно так же просто выламывал из карты и втыкал в телефон и всё чирикало.
Более того, если у провайдера начать спрашивать про PIN1 Request то поддержка будет делать большие глаза и пытаться рассказать про сброс телефона при залочке своим пином :) Никаких запросов PIN1 нет в принципе и обычные юзера о нём не подозревают :)
12th-Nov-2006 09:57 pm (UTC)
А этот GSM handbook есть где нибудь в открытом доступе?

PS Еще хочется где нибудь почитать про MIDP 2.0 (вкретце по русски -- чтобы понимать терминологию, и сам стандарт тоже)
13th-Nov-2006 09:09 am (UTC)
Есть :) Смотри в мой пост "Литература по GSM и CDMA" - там ссылка.

Я посмотрел - гугл на слова "MIDP 2.0 site:ru" дает много всего релевантного (хотя я бы обзоры/введения читал по-английски - именно чтобы сразу читать в правильной терминологии).

Я просто от программирования телефонов несколько далек, и хорошой ссылки у меня нет.
12th-Nov-2006 10:36 pm (UTC)
За что отвечает доступ по pin2 и зачем его наличие так старательно скрывают некоторые операторы ? Ну и принципиальный смысл разделения на две зоны.
13th-Nov-2006 07:49 am (UTC)
А выкачай PDF-ку и почитай ;)

Отвечает за доступ к ряду редкоиспользуемых функций вроде "(de)activate fixed dialing" или "указание валюты и курса для рассчета примерной стоимости звонков".

Зачем операторы скрывают не афишируют его наличие? Подозреваю, чтобы бестолковые пользователи, забыв PIN1, не пытались вводить его вместо PIN1 (окончательно блокируя карту), или что-то в этом роде.

Принципиальный смысл поясню на примере: ты можешь взять свой телефон, активировать в нем fixed dialing и отдать своему ребятенку, и быть увереным, что ребятенок сможет позвонить только маме/папе/бабушке/..., но не в секс по телефону. При этом ребятенку понадобится только PIN1, а PIN2 ты ему не скажешь.
13th-Nov-2006 01:35 pm (UTC)
Ты рассказываешь вкусно. А в pdf-ке, небось, серо, скучно и неинтересно. Прочитаешь, все выяснишь и такое ощущение, что тебя обманули :)

А вопрос возник от того, что в свое время я так и не смог честным образом получить пин2 к своей симке, несмотря на все красноречие и уговоры. Возникла мысль, что там сожет прятаться что-то страшное.
13th-Nov-2006 01:56 pm (UTC)
А не смог скорее всего потому, что звонил в CC. А там сидит студентка - part-timer, у которой Инструкция. И которую за нарушение Инструкции дрючат. И у которой может и не быть интерфейса в базу, где этот PIN2 хранится. А поскольку дополнительних стимулов помогать тебе у нее нет, имеем то, что имеем.
13th-Nov-2006 10:44 pm (UTC)
Не, я приходил в пассаж. А потом я таки выцыганил там же pin2, сделав вид что не помню puk1... как-то так. Давно это было, правда, ты еще там не работал ;)
13th-Jul-2008 03:02 am (UTC)
Anonymous
Читал в сети (вероятнее всего на античате) о том что некое должностное лицо оператора имеет доступ к тел. книге на sim, корректно отображаются имена записаные латиницей. Насколько правда? Sim карта дает оператору возможность видеть тел. книгу? Не хранится ли эта ин-фа где-то в HLR?
27th-Oct-2008 12:01 am (UTC)
Не мог бы ты написать, в чём заключается "привязка телефона к оператору"?
Как могут работать такие штуки: http://cgi.ebay.com/New-Rebel-Sim-card-X-unlock-for-Apple-iPhone-3G-Nokia_W0QQitemZ260305967764QQcmdZViewItem?hash=item260305967764&_trksid=p3286.c0.m14&_trkparms=72%3A570|66%3A2|65%3A12|39%3A1|240%3A1318 когда ссылка протухнет - можно просто поискать "TURBO SIM CARD"
This page was loaded Oct 24th 2017, 2:32 am GMT.