Привычная нам SIM-карта, которую так легко переставить из одного телефона в другой, появилась совсем не одновременно с рождением мобильного телефона как такового. Первые мобильные телефоны работали в «привязанных» стандартах связи: параметры подписки записывались непосредственно в память мобильного терминала. Причем в самых старых аналоговых стандартах вроде NMT-450 — даже без защиты: при желании можно было скопировать запись в другой телефонный аппарат и создать его клон, разговаривать за счет владельца или принимать адресованные ему звонки.
Чуть позднее появилось решение для защиты — так называемый SIS-код: 18-значное число, уникальное для каждого аппарата и зашитое в специальный процессор. SIS-коды централизованно распространялись между производителями, так что двух аппаратов с одинаковым кодом быть не могло. В этом же процессоре хранился и семизначный RID-код, который передавался при регистрации в сети на базовую станцию.
SIM-карта сокровищ: как потерять все, потеряв один лишь телефон — http://t.co/ElKB4U1unJ
— Kaspersky (@Kaspersky_ru) November 17, 2014
Оттуда взамен приходило случайно сгенерированное число, и SIS-процессор на основе этого числа и своего уникального SIS ответа должен был сгенерировать ключ, по правильности которого и происходила авторизация.
Небольшая длина как ключей, так и генерируемых чисел была вполне достаточной в те времена (речь о 1994 годе), хотя позднее система и была взломана. Однако еще за три года до этого появился цифровой стандарт GSM, в котором аналогичная, но более стойкая система авторизации была реализована изначально, а сам стандарт стал «отвязанным».
Сотовые сети 5G: как они будут работать, зачем нужны и когда будут доступны — http://t.co/27iaXMktJE pic.twitter.com/wnkjiuaos9
— Kaspersky (@Kaspersky_ru) May 22, 2015
То есть функции авторизации возложили не на сам аппарат, а на внешний процессор, встроенный в смарт-карту, которую назвали SIM (Subscriber Identity Module, «модуль идентификации абонента»). Данные о подписке абонента перестали быть зависимыми от самого аппарата — стало возможным использовать любые устройства, меняя их сколь угодно часто.
SIM-карта является, по сути, смарт-картой стандарта ISO 7816 и не особенно отличается от других контактных чиповых карт — например, банковских или таксофонных. Первые «симки» имели точно такой же размер, о котором и сегодня напоминают стартовые пакеты операторов связи: просто миниатюризация телефонов очень быстро привела к тому, что полноразмерные карты (1FF) перестали помещаться внутрь аппаратов, поэтому придумали легко выламывающийся модуль (mini-SIM или 2FF), в котором содержатся чип и контактные площадки, но гораздо меньше лишнего пластика.
Несмотря на дальнейшую миниатюризацию (micro-SIM — 3FF, а затем и nano-SIM — 4FF), форма и расположение контактных площадок, а также принципы работы встроенных чипов остаются неизменными вот уже почти 25 лет, а большие пластиковые «болванки» до сих пор выпускаются для того, чтобы услугами мог воспользоваться даже абонент с очень старым телефоном, — таков стандарт.
Что характерно, многие старые аппараты при этом не смогут прочитать современную «симку», даже если она будет полноразмерной. Дело в том, что ранее повсеместно для питания процессора SIM-карты использовалось напряжение 5 В, а теперь в ходу 3 В. И ради экономии многие производители выпускают SIM-карты с поддержкой только одного напряжения, а не двух — в старом пятивольтовом сотовом телефоне у SIM-карты просто сработает защита по питанию и процессор работать не станет.
Современный смартфон — это полноценный компьютер. Очень опасный компьютер. Расскажем, почему https://t.co/2uibZkeLc6 pic.twitter.com/ILw4G8eQHl
— Kaspersky (@Kaspersky_ru) November 15, 2015
В постоянную память SIM-карты уже на этапе производства записываются IMSI (International Mobile Subscriber Identity, «международный идентификатор мобильного абонента») под конкретного оператора, заказывающего модуль, а также 128-битный ключ Ki (Key Identification, «индивидуальный ключ аутентификации пользователя»). Если говорить грубо, это логин и пароль абонента, намертво зашитые в «железе» SIM-карты.
Соответствие IMSI учетной записи определенного абонента с его телефонным номером хранится в базе данных оператора, именуемой HLR (Home Location Register, «база информации об абоненте»). Эти данные копируются во временную базу данных VLR (Visitor Location Register, «база посещающих абонентов») в каждом конкретном сегменте сети, в котором в определенный момент времени находится абонент.
2 млрд скомпрометированных SIM-карт #Gemalto — кошмар или ерунда? http://t.co/9gRdY9Sb0Z pic.twitter.com/IdnjjrwRwn
— Kaspersky (@Kaspersky_ru) March 10, 2015
Авторизация происходит очень просто: при регистрации VLR отправляет на телефон абонента случайное 128-битное число (RAND), из которого на основе ключа Ki процессор SIM-карты вычисляет по алгоритму A3 32-битный ответ SRES, который отправляется обратно в VLR. Если ответ совпадает с ожидаемым, то происходит регистрация в сети.
По другому алгоритму, A8, также на основе RAND и Ki, вычисляется еще один временный ключ — Kc. А уже на основе этого ключа по третьему алгоритму, A5, происходит шифрование данных, передаваемых в эфир.
По умолчанию шифрование включено всегда, однако в ряде случаев (например, по требованию ФСБ во время выполнения спецопераций) оно может отключаться — тогда разговоры происходят без шифрования и легко перехватываются из эфира. На старых телефонах в этот момент на дисплее отображается открытый замочек, на современных смартфонах, кроме BlackBerry, по этому поводу полная тишина.
Легко ли взломать сотовую сеть? Хочется верить, что сложно, но на самом деле… https://t.co/9sS01xS55j pic.twitter.com/aXIznfpXNL
— Kaspersky (@Kaspersky_ru) November 23, 2015
Кстати, существует атака для прослушивания телефонных разговоров из эфира — с использованием устройства под названием IMSI Catcher. Оно эмулирует базовую станцию, на которой регистрируются телефоны, и ретранслирует все сигналы на настоящую БС.
В этом случае весь процесс авторизации происходит в штатном режиме (взлом ключей не требуется), но «поддельная» базовая станция дает аппарату команду работать без шифрования, соответственно, звонок без шифрования проходит через нее и прослушивается без ведома оператора.
Интересно, что такая уязвимость — это вовсе не «баг» стандарта, а самая что ни на есть «фича», заложенная на этапе разработки по требованию спецслужб, чтобы те могли реализовывать атаки типа Man-In-The-Middle в ходе оперативно-разыскных мероприятий.