imsi что это такое в телефоне как узнать
SIM: IMSI и ICCID
Вопрос
“Что такое IMSI, и чем он отличается от серийного номера SIM-ки?”
Ответ
Многие знают, что на SIM-карте хранится некий идентификатор абонента, называемый IMSI. И что у каждого абонента IMSI свой, уникальный. В то же время, если вытащить SIM-карту из телефона, то на ней можно увидеть другой номер, лишь частично совпадающий с IMSI. Что это за номера, чем они отличаются, и почему в них есть общие подстроки цифр?
Начнём с кусочка пластика со встроенным микропроцессором под названием “SIM-карта”. Она является частным представителем более обширного класса микропроцессорных устройств, называемых “смарт-карты”. В соответствии с международным стандартом ISO/IEC 7812 каждой такой карте присваивается уникальный номер, называемый Integrated Circuit Card ID (ICCID):
Остаток ICCID составляет индивидуальный номер карты (уникальный в рамках данного IIN), за которым следует одна цифра, используемая для контроля правильности IIN по простому алгоритму. Индивидуальный номер карты может назначаться выпускающей организацией по собственному усмотрению.
Теперь перейдем к IMSI.
Обычно SIM-карта содержит данные об одной MS. Но в принципе (например, в случае программируемых SIM-карт) никто не мешает размещать на одной SIM-карте сразу несколько наборов данных, идентифицируемых несколькими разными IMSI.
К чему это приводит на практике?
Теперь представим себе весь процесс выпуска новых карт и привлечения новых абонентов. Оператор решил выпустить новые карты. Он отправляет заказ производителям SIM-карт. Производители присылают контейнеры с физическими SIM-картами (куда уже прописаны IMSI) и стопицот раз зашифрованные секретные данные о них (пресловутые Ki-коды и тому-подобное). Секретные данные загружаются в секретные информационные системы оператора, а SIM-карты направляются в магазины, дилерам и т.п.
Понятное дело, что в тот момент, когда свежеподключившийся абонент вставит SIM-карту в телефон, она уже должна быть правильным образом “прописана” в HLR-е (иначе абонент не сможет зарегистрироваться в сети). Получается, что данные о всех новых SIM-картах надо сразу размещать в HLR-ах. А если SIM-карты не продадутся в течении длительного времени? Тогда данные о них будут занимать ценное место в базе HLR. Можно выбрасывать карты в продажу порциями, или вообще при фактической продаже SIM-карты абоненту нажимать кнопочку в каком-то интерфейсе, и on demand загружать в HLR данные о картах поштучно.
IMSI сотовых операторов и SIM-карт — что это и зачем нужно?
Зачем нужен идентификатор IMSI и как его узнать через приложение Find IMEI & MSI?
SIM-карта используется для предоставления услуг связи сотовым оператором и необходима, чтобы идентифицировать пользователя. В памяти симки хранятся различные коды и функции, которые отвечают за корректную работу мобильной связи. Разбираемся, что такое IMSI, зачем нужен этот идентификатор и как его узнать.
Что такое IMSI?
На SIM-карте хранится идентификатор абонента IMSI (International Mobile Subscriber Identity) — число, которое состоит из 15 цифр. Его можно разделить на несколько составляющих. Первые пять чисел — это Mobile Country Code, уникальный код, который присваивается номеру при регистрации в сети. Mobile Network Code — код, который присваивается в рамках страны. Следующие 10 цифр IMSI — идентификатор внутри сети. Сам международный номер абонента пересылается в сеть при аутентификации. Код присваивается сотовым оператором.
В International Mobile Subscriber Identity (IMSI) хранится информация о родной стране пользователя. Под «родной» страной подразумевается территория регистрации и работы сотового оператора. Все данные хранятся в зашифрованном формате. Благодаря IMSI выполняется привязка сотового оператора к пластиковой карте, которая используется для получения услуг сотовой связи.
Чтобы узнать IMSI абонента, нужно приложение Find IMEI & MSI. Утилита доступна бесплатно в Google Play. Для корректной работы программы не нужно получать Root-права. После запуска утилиты нажмите кнопку «Get». После этого в разделе «IMSI» отобразится 15-значный код. Функционал приложения дает возможность скопировать комбинацию цифр в буфер обмена — для этого нажмите на кнопку в интерфейсе, которая находится справа от кода.
GSM-ловушки: ещё один привет от Большого Брата
Предлагаю сегодня поговорить о скрытой и неизведанной области — GSM-связи. Почему же неизведанной, спросите вы? Ведь все носят в кармане сотовый телефон, чуть ли не дошкольники ходят с ними, а базовые станции висят на каждом столбе? Увы, обыватель считает, что всё просто и прозрачно: совершает звонки, посылает СМС. И редко задумывается над процессами, которые обеспечивают все эти действия. В этом статье я попробую показать, что GSM-связь — с одной стороны весьма непрозрачная тема, а с другой — прорва уязвимостей. Если конкретнее – то поговорим о так называемых IMSI-ловушках (или IMSI-catchers).
Введение
Начнём издалека, а именно с того, что GSM-связь очень плохо поддаётся изучению. Нельзя просто так взять © и поэкспериментировать с мобильной связью. Хотите соорудить девайс и подключиться к сети, анализировать протокол? Облом — коммуникационные процессоры не имеют нужного API и тем более открытого кода. По сути — это чёрные ящики за семью замками. Максимум, что они “выставляют” наружу — примитивный интерфейс на основе AT-команд. Хотя, если быть точным, то иногда немного больше – но об этом позже.
Поднять свой сервер свою базовую станцию? Это долго, дорого и за вами могут приехать. Существуют замечательные проекты, такие как OpenBTS и SDR (software defined radio), но не обольщайтесь. Во-первых, полноценная сотовая сеть состоит из множества компонентов, а во-вторых — необходимое железо неприлично дорогое. Вот такая несправедливость.
IMSI-ловушки. Что это?
Но вернёмся к теме статьи. IMSI-ловушки — это мобильные ложные базовые станции, которые спецслужбы включают при различных обстоятельствах в разных местах. Мобильные телефоны “цепляются” к этим станциям, которые фактически выступают в роле Man-in-the-middle. В результате мы имеем перехват разговоров, СМС и интернет-трафика. Факты использования таких устройств засекречены. В Германии, например, в 2002 году был принят закон, разрешающий спецслужбам применять такие устройства, однако не обошлось без бурных общественных дебатов. А где-то и до дебатов не доходит. Однако косвенные доказательства есть. Как правило, ловушки включаются в местах народных волнений, либо вокруг объектов, представляющих высокую государственную важность. Часто IMSI-идентификаторы особо интересных личностей заносятся в список фильтрации, и далее работают только с телефонами конкретных людей.
А теперь познакомимся с IMSI-ловушками поподробнее. Для начала классифицируем их поведение. Оно может поддерживать 2 режима — активный и пассивный. В активном ловушка выступает в роли базовой станции. В пассивном — мониторит канал и другие базовые станции. Наиболее интересен, конечно же, активный режим. Опишем его функции.
Прикидываемся базовой станцией
IMSI-ловушка “StingRay” известной фирмы Harris
Нарушение связи
Возможно оставить абонента без связи: сначала “захватить” на себя, а потом оборвать, и так до бесконечности. А можно выдавать мусор или заведомо некорректные пакеты.
Перехват разговоров
Как это происходит
Опишем алгоритм, как ловушка вклинивается в эту систему.
Сразу отметим, что если оператор изначально везде применяет А5/2, то задача становится тривиальной — этот шифр вскрывается в реальном времени. Но операторы не совсем идиоты, поэтому они используют А5/1. Базовая станция анонсирует этот протокол и телефон на него “соглашается”, все довольны.
Все шифры А5 работают на ключе, который хранится как у оператора, так и на SIM-карте. Он уникален для каждого абонента и за его сохранность отвечает крипточип SIM-карты. Из этого следует, что ловушка по отношению к оригинальной базовой станции “прикидывается” абонентским устройством на алгоритме А5/1, а для реального телефона “прикидывается” базовой станцией на алгоритме А5/2, который вскрывается на лету. Таким образом, ловушка извлекает секретный ключ абонента и реконструирует сессию с базовой станцией. Дело сделано. Как узнать, что ваш телефон переключился на слабый шифр? Обычно никак: индустрия сотовой связи заботится о людях — меньше знаешь, крепче спишь. Однако в природе все же встречаются отдельные модели телефонов, которые как-то сигнализируют, и это не смартфоны. Где-то появляется иконка, а где-то незаметная строка утекает в лог, однако это обычно связано с переходом на А5/0. В любом случае, все это скорее исключения из правил.
Противодействие
Естественно, борцы против Большого Брата не оставляют это дело без внимания.
Так появился проект SnoopSnitch — это программа для Android, помогающая в обнаружении IMSI-ловушек в повседневной жизни. Принцип её работы заключается в регулярном сборе статистики об окружающих базовых станциях: их характеристиках и местоположении. В случае обнаружения отклонения от привычной картины программа выдаёт предупреждение. Тут же можно загрузить свои данные на сервер — там формируется глобальная база знаний обо всех базовых станциях мира.
К сожалению, программа недоступна для большинства телефонов. Это связано с особенностью её работы. Как уже было отмечено, в GSM-отрасли любые технические детали старательно вымарываются, но кое-что просачивается. Baseband-процессоры Qualcomm имеют специальный диагностический интерфейс (программный), через который возможно информирование о разных событиях из жизни сотовой связи. В лучших традициях жанра, этот интерфейс недоступен обычным Android-приложениям, однако он все же доступен при наличии root. Если у вас телефон на чипсете Qualcomm, то, возможно, вам повезло. Познакомимся с интерфейсом поподробнее.
Для начала выкачаем ядро для Qualcomm. Оно называется msm — по одноимённой серии Qualcomm SoC.
Выберем какую-нибудь ветку:
Вот где живет заветный драйвер:
Читаем настроечный файл ядра Kconfig:
Как видим, драйвер позволяет общаться с модемом в двунаправленном режиме: слать некие команды и получать некую инфу. В мире user space драйвер себя обнаруживает как устройство /dev/diag_char. Беглое изучение исходного кода показывает, что драйвер предоставляет только транспорт произвольных данных, и не содержит никаких зацепок на само содержание данных. Всё что он делает, это определяет некий примитивный формат пакета: старт-байт, данные, стоп-байт, CRC. Как всё предсказуемо!
Анализ данных от диагностического интерфейса
Ребята из SnoopSnitch умудрились отреверсить сами полезные данные и на основе их строится анализ. Вот какие параметры они принимают к сведению.
MCC/MNC
Mobile Country Code — код страны. Для России это 250. К нему добавляются 2 цифры, идентифицирующие оператора, и получается полноценный код MNC (Mobile Network Code). Список всех MNC можно посмотреть здесь: mcclist.com/mobile-network-codes-country-codes.asp
Location Area Code — некий код географической зоны, которая обслуживается одним контроллером базовых станцией (BSC). Когда происходит входящий вызов, то оповещение одновременно получают все базовые станции данной зоны.
Cell ID
Идентификатор соты, т.е. базовой станции.
Longitude, Latitude
Долгота и широта базовой станции.
ARFCN
Absolute radio-frequency channel number — идентификатор, однозначно определяющий пару частот, используемых для приёма и передачи. Например, за диапазоном GSM 1800 закреплены номера 512 — 885. При этом частота передачи вычисляется по формуле 1710.2 + 0.2·(n−512), а частота приёма = частота передачи + 95.
Собственно, события, связанные с сетью:
Location Update
Когда телефон переходит из одной Location Area на другую, он посылает станциям это сообщение. Также он его посылает и периодически.
Сообщения PAGING
PAGING — это процесс нахождения конкретного абонента для передачи ему SMS-сообщения или звонка. Если приходит SMS, то программа регистрирует адрес центра SMS (SMSC) и тип сообщения: обычное, Silent или Binary.
А теперь опишем непосредственно критерии, на основе которых программа находит ловушки.
1. Сменился LAC или Cell ID, при том что частота осталась неизменной. Действительно, часто ловушка занимает существующую частоту, при этом предоставляя более сильный сигнал, чем оригинальная станция. Но эта метрика весьма ненадёжна. Во-первых, телефон может находиться в зоне действия двух станции из разных LAC, и просто перескочить с одной на другую, оставаясь на одинаковом канале. Во-вторых, сам оператор может дать команду какой-то станции на переход к другому LAC.
2. LAC текущей станции отличается от LAC окружающих станций. Задача ловушки — добиться Location Update от телефона, так как только в этом случае она может “стянуть” с него нужную информацию. Поэтому она анонсирует другой LAC, предоставляя более сильный сигнал. Но есть подводный камень — легальные фемто-соты могут также иметь другой LAC: зависит от настроек соты, оператора и погоды на Марсе.
3. При неизменной паре Cell ID — LAC изменился номер канала. Ловушка часто маскируется под неиспользованную частоту уже существующей базовой станции.
4. LAC содержит единственную станцию. Как уже сказано в п. 2, обычно стремятся инициировать Location Update. Проще всего этого добиться, подняв псевдо-вышку с отличным от всех LAC и самым сильным сигналом. Подводный камень: в местах с плохим покрытием (обычно за городом) часто бывает, что телефон “видит” только одну станцию, и здесь уже бессмысленно гадать.
5. Станция не сообщает информации о своих соседских станциях, хотя это должно происходить в условиях плотного покрытия. Ловушка не анонсирует другие станции, чтобы у телефона “не было соблазна” на них переключиться. А иногда хитрят: анонсируют несуществующие частоты либо существующих, либо несуществующих соседних станций.
6. Анонсирование заведомо завышенного CRO (Channel Reselection Offset). Это один из параметров, который влияет на алгоритм выбора телефоном наилучшей базовой станции.
7. Отключение шифрования, при том что оно ранее было на той же паре LAC/Cell. Ловушка может переключить телефон с А5/3 на А5/0, тем самым выключив шифрование вообще, либо на слабый алгоритм А5/2.
8. Сообщение CIPHER MODE COMPLETE не содержит IMEISV. Тут надо подробнее пояснить весь процесс аутентификации и шифрования в GSM. Подключение к GSM-сети состоит из трех этапов: аутентификация, выработка ключа шифрования и выбор режима шифрования.
1. Аутентификация
На SIM-карте абонента хранится 128-битный ключ — Subscriber Authentication Key. Точно такой же хранится у оператора. Так как SIM-карта формально принадлежит оператору, а сам ключ хранится защищённым образом, то это считается надёжным.
Кстати, подтверждение подлинности самой станции не предусмотрено. Случайно ли.
2. Выработка ключа шифрования
Здесь процедура идентичная, за исключением того, что случайное число и ключ подаются на вход алгоритма А8, а результатом является 64-битный ключ симметричного шифрования А5.
Выбор режим шифрования
Станция посылает телефону команду CIPHER MODE SELECT, сообщая требуемый режим шифрования: А5/0, А5/1, А5/2 или А5/3. Однако в этом сообщении есть ещё флаг REQUEST_IMEISV, означающий, что телефон должен сообщить в ответном сообщении CIPHER MODE COMPLETE свой уникальный идентификатор, причём это сообщение уже зашифровано на ранее согласованном ключе. По умолчанию флаг всегда ставится. Однако ловушка может не передавать этот флаг, в результате сообщение CIPHER MODE COMPLETE будет содержать предсказуемую статическую информацию. После этого производится стандартная атака по известному открытому тексту (known plain text attack), и ключ вскрывается. Итак, критерий №8 отлавливает отсутствие данного флага. Ещё есть дополнительный признак — долгое ожидание подтверждения получения станцией CIPHER MODE COMPLETE. Действительно, вскрытие ключа требует времени.
9. После Location Update идёт стандартный запрос абоненту на идентификационную информацию (IMEI, IMSI), а дальше станция отвергает телефон, заставляя делать новый Location Update. Всё это — признак ловушки, работающей в режиме сбора информации.
10. Если станция анонсирует другой режим шифрования, отличный от обычного для данной местности или оператора, то это либо ловушка, либо оператор недоглядел, либо аппаратный сбой, либо так задумано. Но в расчёт принимается.
11. Слишком маленький интервал регулярного Location Update. Телефон обязан периодически посылать Location Update — даже если он не мигрирует с одной соты на другую. А значение периода приходит со станции. Стандартное значение — 1-4 часа. Но ловушка может распространять заведомо маленькие тайм-ауты, чтобы более оперативно “цеплять” телефоны.
12. Произошёл Paging, за которым не последовало ни SMS, ни разговора. Это типичная проверка, находится ли “жертва” в зоне покрытия в конкретный момент времени.
13. Установлен канал данных (Traffic Channel, или TCH), но не последовало ни SMS, ни разговора. Либо он последовал, но спустя необычно долгое время. Согласно протоколу, после установления этого канала телефон непрерывно шлёт пустые подтверждения, пока канал не закроется. Эти подтверждения могут использоваться ловушкой для более точного позиционирования телефона.
14. Подозрительный список соседних станций (Neighboring Cells). Каждая станция передает подключённому к ней телефону список окружающих станций. Но если это ловушка, то она будет отсутствовать в этих списках – в отличие от других, легитимных, станций.
15. Разбиение на большое количество групп (Paging Group). Каждая станция объединяет все подключенные телефоны в группы. Это нужно для оптимизации ресурсов. Когда происходит входящий звонок, все телефоны данной группы получают оповещение на соответствующем логическом канале. Когда ложная станция хочет вернуть абонента в родную сотовую сеть, она посылает некорректные данные на канале той группы, в которую входит абонент. В результате все члены группы начнут процедуру Cell Reselection. Чтобы затронуть как можно меньше абонентов, ложная станция делает их маленькими, а количество групп будет большим, что и является признаком работы ловушки.
Как мы видим, существует множество критериев, каждый из которых по отдельности не является 100%-ной гарантией обнаружения ловушек. Вместо этого предлагается вероятностная оценка.
Заключение
Imsi что это такое в телефоне как узнать
Захотелось потихоньку возвращаться к техническим постом. Начнём с разминки 🙂
Многие знают, что на SIM-карте хранится некий идентификатор абонента, называемый IMSI. И что у каждого абонента IMSI свой, уникальный. В то же время, если вытащить SIM-карту из телефона, то на ней можно увидеть другой номер, лишь частично совпадающий с IMSI. Что это за номера, чем они отличаются, и почему в них есть общие подстроки цифр?
Начнём с кусочка пластика со встроенным микропроцессором под названием «SIM-карта». Она является частным представителем более обширного класса микропроцессорных устройств, называемых «смарт-карты». В соответствии с международным стандартом ISO/IEC 7812 каждой такой карте присваивается уникальный номер, называемый Integrated Circuit Card ID (ICCID):
Остаток ICCID составляет индивидуальный номер карты (уникальный в рамках данного IIN), за которым следует одна цифра, используемая для контроля правильности IIN по простому алгоритму. Индивидуальный номер карты может назначаться выпускающей организацией по собственному усмотрению.
Теперь перейдем к IMSI.
Обычно SIM-карта содержит данные об одной MS. Но в принципе (например, в случае программируемых SIM-карт) никто не мешает размещать на одной SIM-карте сразу несколько наборов данных, идентифицируемых несколькими разными IMSI.
К чему это приводит на практике?
Теперь представим себе весь процесс выпуска новых карт и привлечения новых абонентов. Оператор решил выпустить новые карты. Он отправляет заказ производителям SIM-карт. Производители присылают контейнеры с физическими SIM-картами (куда уже прописаны IMSI) и стопицот раз зашифрованные секретные данные о них (пресловутые Ki-коды и тому-подобное). Секретные данные загружаются в секретные информационные системы оператора, а SIM-карты направляются в магазины, дилерам и т.п.
Понятное дело, что в тот момент, когда свежеподключившийся абонент вставит SIM-карту в телефон, она уже должна быть правильным образом «прописана» в HLR-е (иначе абонент не сможет зарегистрироваться в сети). Получается, что данные о всех новых SIM-картах надо сразу размещать в HLR-ах. А если SIM-карты не продадутся в течении длительного времени? Тогда данные о них будут занимать ценное место в базе HLR. Можно выбрасывать карты в продажу порциями, или вообще при фактической продаже SIM-карты абоненту нажимать кнопочку в каком-то интерфейсе, и on demand загружать в HLR данные о картах поштучно.
Ковыряемся в SIM-карте: процессор, память, файловая система + I/O
Трудно найти человека, не знающего, что такое SIM-карта или Subscriber Identity Module — модуль идентификации абонента. Этот кусочек пластика с золотистыми контактами на одной из поверхностей является ключом к услугам, предоставляемым оператором мобильной связи. А ещё внутри SIM-карты находится специализированный компьютер с достаточно сложной функциональностью.
SIM-карта — это та же процессорная кредитка, но в профиль
SIM-карта на самом деле одна из разновидностей более общей сущности – процессорной «умной карты» (Smart Card).
Процессор в теле SIM-карты
В сетях CDMA для идентификации абонентов используется R-UIM – Removable User Identity Module. Слово Removable (сменяемый) подчеркивает его новый статус, поскольку раньше, в сетях IS-95 (стандарт связи, на базе которого работали сети CDMA в США, России и других странах, например, СОНЕТ в Москве) элементы, идентифицирующие абонента, размещались среди электронных компонентов телефона. Очевидно, что использование R-UIM существенно упрощает и замену телефона при его неисправности или покупке нового, и позволяет воспользоваться телефоном другого стандарта в роуминге.
Но далее речь пойдет о модулях идентификации абонентов, используемых в сетях GSM-UMTS, которые по традиции будем называть SIM или картами.
Померяемся картами?
В настоящее время стандартизированы три формата модулей идентификации абонентов GSM-UMTS.
Три формата модулей идентификации абонента GSM-UMTS
ID-1 UICC – самый первый вариант – имеет размер обычной банковской карты. Многие помнят его по моделям 90-х годов – Motorola 8900, StarTAC и других. В настоящее время в новых моделях мобильных терминалов практически не используется из-за больших габаритов.
Plug-in UICC – наиболее распространенный сейчас формат. Обычно такие модули выламываются из карт размера ID-1 по просечкам, сделанным во время изготовления.
Mini-UICC – формат карт, который начала использовать компания Apple в iPhone 4, iPad, iPad 2. Сейчас и другие производители мобильных телефонов и других устройств намерены выпускать модели, в которые нужно будет вставлять модули именно такого формата. Иногда этот формат называют 3FF, или в просторечии «микро-SIM». И эти карты обычно выламываются из карты формата ID-1. Причины появления такого разнообразия очевидны – экономия места внутри корпуса телефона.
Универсальную просечку, позволяющую по выбору пользователя выломать из пластика карты ID-1 модуль размером как Plug-in, так и Mini-UICC, стараются не делать по соображениям надежности – при попытке выломать карту под формат Plug-in очень легко повредить остающиеся тонкие перемычки, после чего карта Plug-in будет ненадежно держаться в телефоне.
Карта ID-1 с «универсальной» просечкой для Plug-in и Mini-UICC
А смещение SIM-карты в держателе грозит проблемами с работой телефона. Минимальная неприятность – телефон просто не ощущает присутствия SIM и не регистрируется в сети. В худшем варианте может получиться, как при перепутывании проводов – попадание напряжения не по адресу и замыкание с непредсказуемыми последствиями.
Производители мобильных терминалов кто активно, кто менее решительно, обычно возражают и против использования адаптеров, которые рекламируются для использования в них карт формата Mini-UICC в телефонах, рассчитанных на карты формата Plug-in. Адаптер имеет чуть большую толщину, чем модуль Plug-in, а кроме того, щели на стыке карты и адаптера могут при установке SIM ломать контакты в телефоне, лишая пользователя шансов на гарантийный ремонт.
В некоторые устройства, работающие в мобильной сети (навигаторы, устройства для контроля местоположения транспортных средств и т.п.) модули идентификации абонентов могут просто впаиваться в виде микросхем, но обычным абонентам с такими модулями обычно сталкиваться не приходится.
Cколько должно быть контактов?
В обиходе встречаются модули с разным рисунком контактной площадки и разным числом контактов. Некоторые производители используют «фирменный» рисунок контактной площадки, в качестве своей визитной карточки.
Стандартами предусмотрены 8 позиций для площадок, через которые модули соединяются с мобильными терминалами, но не всегда используются все из них. Часто встречаются карты с 6-ю контактами, а остальная металлизированная часть обычно подключена к «земле».
Карты с 6-ю и 8-ю контактами
Используемые контакты:
С1 — Vcc — питание;
С2 — Reset – контакт управления картой;
С3 — CLK — Clock – тактовая частота;
C5 — общий («земля»);
С6 — Vpp – напряжение программирования, которое используется при записи служебной информации
C7 — I/O – линия последовательного интерфейса ввода/вывода.
Стандартами предусмотрено использование и контактов C4 и С8 в режиме обмена информацией с мобильным терминалом в режиме USB, обеспечивающем более высокую скорость передачи информации, чем через обычный I/O интерфейс SIM.
На практике сейчас режим USB-интерфейса фактически не используется, поскольку оборудование с этим интерфейсом практически не производится и не заказывается потребителями, поэтому эти контакты, даже если они есть на карте, соединены с «землей». В дальнейшем будет обсуждаться работа через линию I/O интерфейса.
Куда они воткнули компьютер?
Объем памяти, которую можно использовать для хранения информации в SIM, бывает разный и постепенно растет по мере развития технологий. Несколько лет назад была вспышка эйфории от появления технологии, позволяющей разместить в SIM гигабайты информации. Именно тогда после жаркой дискуссии в отрасли и двух туров голосования в GSM Association, был выбран стандарт USB для работы с большими объемами информации. Но потом эйфория стихла, и сейчас на рынке не так уж много и мобильных терминалов, способных работать с такими SIM, да и сами SIM с гигабайтным объемом памяти не пользуются особым спросом у операторов.
Можно ли хранить HD-фильмы на SIM-картах?
Кто кем рулит?
Кроме того, что телефон или другой мобильный терминал предоставляет SIM-карте питание и сигнал тактовой частоты, он полностью отвечает и за обмен информацией между устройствами – телефон всегда выступает в роли ведущего, а карта всегда является ведомым.
Телефон посылает в SIM команды/запросы, а SIM только отвечает на них, сопровождая ответы информацией о статусе ответа.
В информации о статусе карта может подтвердить, что команда выполнена успешно, попросить дополнительное время на подготовку ответа, сообщить об ошибках различного типа или сообщить, что у нее есть специальная информация для телефона, которую тот может получить, послав в следующей команде специальный запрос на выборку.
Этот механизм передачи информации из карты в телефон обычно называют SIM (или Card) Application Toolkit, STK. Он используется для реализации различных услуг, в основе которых лежат программы-приложения (обычно написанные на JavaCE – Java Card Edition), исполняемые внутри SIM. В меню телефонов, с установленными SIM-картами основных операторов, можно найти пункты и целые деревья меню, сформированные на основе информации, предоставленной приложениями, работающими в SIM-картах.
На этой же технологии основана работа услуг реального времени, например, постоянно предоставляющих информацию об актуальном балансе.
Возможна организация роуминга для небольших компаний с использованием переключения двух IMSI в одной карте – одного, соответствующего своей сети, а другого – предоставленного «взаймы» другим оператором — «старшим братом». Например, сети «Билайн», работающие в странах СНГ, используют механизм Dual IMSI для предоставления услуг роуминга своим абонентам. В их SIM-картах прописаны один IMSI своей сети, а другой IMSI, соответствующий российской сети «Билайн». В российской сети «Билайн» эти IMSI зарезервированы в HLR для предоставления услуг роуминга «дочерним» компаниям и организованы каналы связи с ними. Абонент «Билайн» из «дочерней» компании, находясь, например, в европейской стране, с помощью STK-меню переключает режим работы SIM в роуминговый. В результате телефон с такой SIM-картой представляется для роуминговой сети, как принадлежащий абоненту российской сети «Билайн». Дальше все происходит, как обычно, только российская сеть «Билайн» организует передачу информации по поручению «дочерней» сети.
Внутри SIM можно организовать даже WEB-сервер! Так что, если кого-то смущает «рабское положение» SIM, он вполне может считать ее сервером.
Как оно включается и почему медленно грузит книгу?
После включения и запуска операционной системы телефон подает на SIM напряжение питания Vcc. Стандартами предусмотрены три номинала напряжений питания SIM – 5В, 3В и 1,8В.
Раньше выпускались карты, способные работать только при напряжении 5В. После появления телефонов, которые подавали на карту напряжение не более 3В, эти старые SIM постепенно были заменены новыми, способными работать от напряжения 3В, которые выдерживают и работу в телефонах, предоставляющих 5В.
Поскольку телефонов, которые предоставляют SIM-картам напряжение только 1,8В, пока не встречалось, современные SIM-карты проблем совместимости из-за напряжений питания не создают.
После того, как на телефон подано напряжение питания, подается сигнал тактовой частоты, и после установления стабильного режима поднимается напряжение на контакте Reset. Это служит для SIM-карты сигналом начала работы с нею, на что она отвечает последовательностью байтов, которая называется ATR (Answer To Reset).
Байты ATR содержат базовую информацию о возможностях карты и поддерживаемых протоколах обмена информацией. В частности, он могут подсказать телефону возможные варианты ускорения обмена информацией через интерфейс путем увеличения тактовой частоты и скорости передачи информации.
Прочитав информацию из ATR, телефон может запустить процедуру PPS (Protocol and Parameter Selection) согласования режима обмена информацией телефона с картой. Если телефон не способен найти вариант, приемлемый и для него и для SIM, то общение с картой продолжится в режиме по умолчанию (со скоростью 9600 бит/сек).
В таких случаях абоненты часто жалуются на слишком большую продолжительность считывания телефонной книжки из SIM-карты в телефон, почему-то укоряя при этом оператора, выпустившего SIM-карту.
«Привет, ты кто?»
В процессе включения SIM-карта и мобильный терминал (телефон) обмениваются «визитными карточками». Телефон считывает из SIM файл, содержащий SST – SIM Service Table — определенным образом закодированную информацию о тех функциях STK, которые SIM умеет выполнять. В свою очередь телефон отправляет в SIM-карту TERMINAL PROFILE — определенным образом закодированную информацию о том, какие функции общения с SIM он сможет поддерживать. В результате обе стороны получают информацию о способностях партнера и могут правильно взаимодействовать при реализации услуг на базе STK.
Файловая система и безопасность
SIM имеет многоуровневую иерархическую файловую структуру с разграничением доступа.
Доступ к файлам регулируется необходимостью предварительного предъявления пользователем кодов доступа разных типов.
Часть этих кодов доступа хорошо известна – это Personal Identification Numbers — PIN (он же PIN1) и PIN2. Другие коды используются для административного доступа к служебным файлам.
Что дает такое разграничение? Активированный запрос PIN позволяет обезопасить деньги на лицевом счете, связанном с SIM-картой, от несанкционированного использования посторонними лицами.
Другим важным приемом обеспечения безопасности является, например, невозможность считывания информации из некоторых файлов, например, считывание ключа Ki, который используется в различных криптографических алгоритмах при аутентификации абонента и формировании ключей шифрования трафика.
Почему полезно читать инструкции
Несколько лет назад на круглом столе по перспективам смартфонов, организованном одним из производителей, один из участников пожаловался мне, что у «Билайн» не хватает услуги очень полезной для родителей. Он хотел, чтобы родители могли бы ограничить для своих чад возможность позвонить только на определенный набор телефонных номеров – домой, родителям, бабушкам с дедушками, а на остальные номера телефон ребенка звонить не должен.
Каково же было его удивление, когда я показал ему работу функции FDN – Fixed Dialing Numbers, которая реализуется совместными действиями телефона и SIM-карты. Разрешенные номера с помощью телефона просто записываются в определенный файл SIM-карты, и доступ на изменение этого списка блокируется с помощью PIN2. После этого телефон с такой SIM будет отказываться звонить по номерам, не указанным в списке FDN.
Правда, нужно отметить, что не все телефоны поддерживают работу этой услуги.
Мойте руки перед едой
Кожа пальцев покрыта органическими жирными кислотами, которые при контакте вызывают коррозию металлических деталей. Мелкие детали — это как раз про контакты SIM-карты.
На фотке лазерная указка, поверхность которой после довольно редкого использования лишилась нескольких слоев металлического покрытия – хромирования и меднения как раз из-за этих жирных кислот! Как известно, «радиотехника – это наука о контактах», а у SIM их много!
Лазерная указка, пострадавшая от жирных кислот на пальцах
Подобная участь не должна постичь контакты SIM-карты, а для этого нужно всеми способами оберегать контакты SIM от загрязнения, и стараться не трогать их пальцами!
Если уж проблема с контактами между телефоном и SIM возникла, то помочь может аккуратная очистка контактов мягким ластиком. Только не нужно после операции очистки убирать крошки с контактов пальцами, иначе все проблемы начнутся сначала! Лучше просто сдуть их или аккуратно смыть спиртом.
Менять или не менять?
Однажды в офис «Билайн» пришел абонент, которого из сервиса по ремонту телефонов отправили менять SIM-карту, потому, что его вполне новый телефон самопроизвольно выключался во время звонка, проверки баланса, отправке SMS.
Пришлось объяснить ему, что выключение телефона не имеет никакой связи с исправностью SIM. С помощью ластика, я аккуратно почистил контакты на батарее и в телефоне, после чего телефон стал нормально работать. Попутно прочел абоненту маленькую лекцию о гигиене.
Конечно, не во всех случаях ситуация столь очевидна, и определить, кто виноват – телефон или SIM в том, что услуги не работают, не просто – ведь их общение происходит практически интимно. Особенно важно разобраться в причинах конфликтов при разработке новых услуг, использующих STK или при обнаружении проблем несовместимости SIM с какими-то моделями телефонов или других мобильных терминалов.
В таких случаях неоценимую услугу оказывает анализатор протоколов обмена информацией на интерфейсе SIM-терминал:
Анализатор протоколов обмена информацией между SIM и мобильным терминалом.
Вместо SIM-карты в терминал вставляется специальный пробник, а SIM подключается через гибкий шлейф. Во время работы вся информация о событиях, происходящих на интерфейсе, записывается в память подключенного к анализатору компьютера.
Сравнение собранной информации с требованиями стандартов, позволяет однозначно и убедительно установить виновную в конфликте сторону.
Конечно, в материале затронуты лишь некоторые особенности SIM-карт и их работы в телефонах, но если есть интерес к этой теме, просто задавайте вопросы, я обстоятельно отвечу.