Dmitry Astapov (_adept_) wrote,
Dmitry Astapov
_adept_

Categories:

SIM: что такое IMSI, и чем он отличается от серийного номера SIM-ки

Захотелось потихоньку возвращаться к техническим постом. Начнём с разминки :)

Многие знают, что на SIM-карте хранится некий идентификатор абонента, называемый IMSI. И что у каждого абонента IMSI свой, уникальный. В то же время, если вытащить SIM-карту из телефона, то на ней можно увидеть другой номер, лишь частично совпадающий с IMSI. Что это за номера, чем они отличаются, и почему в них есть общие подстроки цифр?

Начнём с кусочка пластика со встроенным микропроцессором под названием "SIM-карта". Она является частным представителем более обширного класса микропроцессорных устройств, называемых "смарт-карты". В соответствии с международным стандартом ISO/IEC 7812 каждой такой карте присваивается уникальный номер, называемый Integrated Circuit Card ID (ICCID):

\200dpi \underbrace{\overbrace{89}^{Telecom}\overbrace{380}^{UA}\overbrace{01}^{UMC}\overbrace{98765432109}^{Individual\ ID}\overbrace{8}^{Parity}}_{19\ digits}


Как видно, этот номер, состоящий из 19 цифр (хотя встречаются и очень старые карты с 20-разрядными ICC ID), в свою очередь может быть разбит на отдельные компоненты.
Первые две цифры - код индустрии, который для телекома всегда равен 89. Дальше идет код страны длиной от одного до трех знаков, и код организации, выпустившей карту. Этот префикс длиной в 7 цифр называется Issuer Identification Number (IIN). В приведенном примере код страны - 380 (Украина), код выпустившей организации - 01 (ЗАО "УМС").

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

Теперь перейдем к IMSI.

Каждая карта содержит набор данных, имеющих отношение к определённому обслуживаемому "мобильному устройству" (mobile station, MS. Под этим словосочетанием, упрощённо говоря, понимают набор "человек+мобилка+SIM-ка"). У этого набора данных (и, следовательно, у мобильного устройства) есть свой уникальный ID. Он и называется IMSI - International Mobile Subscriber Identity.

Обычно SIM-карта содержит данные об одной MS. Но в принципе (например, в случае программируемых SIM-карт) никто не мешает размещать на одной SIM-карте сразу несколько наборов данных, идентифицируемых несколькими разными IMSI.

Что же такое IMSI?

\200dpi \underbrace{\overbrace{255}^{MCC} \overbrace{01}^{MNC} \overbrace{\underbrace{98}_{HLR} \underbrace{76543210}_{ID}}^{Station\ ID}}_{15\ digits}


Это 15-значное число, которое (surprise!) можно разделить на отдельные компоненты. Первый - это код страны в рамках инфраструктуры GSM, называемый Mobile Country Code (MCC). Второй - это код мобильной сети в рамках страны, Mobile Network Code (MNC). Дальше идут 10 знаков, которые, собственно, и являются идентификатором MS (абонента) в рамках сети. В приведеном примере MCC = 255 (Украина), MNC = 01 (ЗАО "УМС").

К чему это приводит на практике?

Во-первых, если у оператора дела идут хорошо, и он наподключал больше 1010-1 абонентов, ему надо получать новый MNC в стандартизирующих органах ;)

Во-вторых, чтобы все работало и телефоны звонили, оператору необходимо в рамках своей сети всегда иметь возможность определить, в каком HLR-е содержатся сведения об абонентах. Тут сама собой напрашивается очевидная оптимизация - трактовать несколько первых цифр идентификатора MS как указание на то, в каком HLR-е содержаться сведения об этом абоненте. При этом маршрутизация запросов к HLR-ам описывается простыми правилами вида: "все запросы о абонентах 2550198* направлять в HLR #98".

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

Понятное дело, что в тот момент, когда свежеподключившийся абонент вставит SIM-карту в телефон, она уже должна быть правильным образом "прописана" в HLR-е (иначе абонент не сможет зарегистрироваться в сети). Получается, что данные о всех новых SIM-картах надо сразу размещать в HLR-ах. А если SIM-карты не продадутся в течении длительного времени? Тогда данные о них будут занимать ценное место в базе HLR. Можно выбрасывать карты в продажу порциями, или вообще при фактической продаже SIM-карты абоненту нажимать кнопочку в каком-то интерфейсе, и on demand загружать в HLR данные о картах поштучно.

Для того, чтобы заниматься подобными оптимизациями, полезно знать, какому ICCID (который можно прочесть на коробке с SIM-кой) соответствует какое IMSI. Понятное дело, что для информационных систем это дело не хитрое - заводится табличка (ICCID, IMSI), и дело с концом. А вот для людей проще, чтобы ICCID и IMSI были похожими. Именно поэтому обычно при заказе SIM-карт оператор просит, чтобы у них совпадали, к примеру, последние 10 цифр IMSI и Individual ID в ICCID.
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.
  • 62 comments
Previous
← Ctrl ← Alt
Next
Ctrl → Alt →
Previous
← Ctrl ← Alt
Next
Ctrl → Alt →