Продолжение.
Настоящий материал был заказан посредником летом прошлого года, который
впоследствии сдал его конечному заказчику, и отказался оплачивать выполненную
мной часть работы. Поэтому, эта часть публикуется под тэгом «Из
неоплаченного» (всего будет несколько публикаций). Начальный обзор — здесь.
* * *
2G GSM – первый стандарт цифровой мобильной связи, который наряду с голосовой связи в цифровом виде содержал возможность передачи цифровых данных со скоростью 14.4 кбит/с и шифрованием.
Хотя в настоящее время данное поколение постепенно заменяется на UMTS (3G) и LTE (4G), и далее IMT 2020 (5G), до сих пор сети стандарта GSM имеют наибольшую площадь покрытия в мире и пропускают наибольшую долю телефонного трафика. Уязвимости 2G GSM воздействуют практически на всех пользователей мобильных сетей, поскольку подавляющее большинство мобильных устройств продолжает поддерживать данный стандарт.
Исследования показывают, что мобильные устройства могут эффективно использоваться для отслеживания перемещений абонентов [1]. Хотя для легитимных спецслужб (законный перехват) это полезно, однако, такое положение представляет серьёзную проблему для конфиденциальности персональных данных, поскольку, вследствие присущих 2G уязвимостей, злоумышленники также могут получать доступ к персональным данным и совершать мошеннические действия от имени легальных абонентов.
Структура сети GSM
В отличие от сетей коммутации пакетов (IP-сеть), которая используется в последующих поколениях, в сети 2G не используется модель OSI (Open Systems Interconnection). Вместо этого используется собственная модель, состоящая их трех уровней: физического (Physical layer), уровня данных (Data Link layer) и сетевого (Network layer).
Физический уровень обеспечивает передачу сигнала через радиоканал GSM (radio link). На этом уровне осуществляется передача данных на определённой частоте несущей (carrier frequency), гауссовская частотная модуляция с минимальным сдвигом GMSK (Gaussian Minimum Shift Keying), а также производится передача данных в определённых временных интервалах для разделения каналов по времени TDMA (time-division multiple-access).
Уровень данных аналогичен протоколу TCP (Transfer Control Protocol) для IP-сети, где поддерживается контроль успешности передача пакетов данных. Именно на этом уровне осуществляется защита данных.
Сетевой уровень отвечает за управление соединениями и всеми действиями, с этим связанными.
Интерфейс между сетевым уровнем и устройством пользователя MS (Mobile Station) предоставляется базовой станцией BS (Base Station). Базовые станции управляются контроллером базовых станций BSC (Base Station Controller), который распределяет ресурсы радиосети и управляет хэндовером пользователей при переходе из зоны одной BS к другой.
Устройства пользователей идентифицируются 15-значным международным идентификатором мобильной станции IMSI (International Mobile Station Equipment Identity). Абонент идентифицируется на основе информации в SIM-карте (Subscriber Identity Module card). На этой карте также может храниться информация о сетевом операторе, которая требуется для подключения к базовой станции.

Рис. 1. Архитектура сети GSM.
Алгоритмы шифрования
В GSM используется три алгоритма шифрования данных в радиоканале между MS и BS: A5/1, A5/2 и A5/3, также известный под названием Kasumi[2].
A5/1 был разработан в 1987, A5/2 – в 1989 году, и он был умышленно оставлен со слабым шифрованием, для использования в некоторых европейских странах.
Первое время после разработки и утверждения этих алгоритмов, они держались в секрете. Однако, в 1999 году A5/1 был раскодирован методом «Reverse ingeneering». В настоящее время A5/1 применяется более чем в 100 млн. пользовательских устройств в Европе[3].
Архитектура безопасности GSM
Цели и особенности системы безопасности GSM следующие:
- Аутентификация мобильных пользователей в сети
- Обеспечение конфиденциальности пользовательских данных и сигнальной информации
- Обеспечение анонимности абонента
- Использование SIM (Subscriber Identity Module) как модуля безопасности.
Мобильная станция (MS) состоит из оборудования мобильного терминала (ME) и модуля идентичности абонента SIM. SIM представляет собой криптографическую смарт-карту со специфическими приложениями GSM, загруженными на неё. Операционная система и оборудование этой карты имеет несколько атрибутов безопасности. SIM включает всю необходимую для доступа к аккаунту абонента информацию. На каждой SIM-карте хранятся номер IMSI и ключ Ki. IMSI это International Mobile Subscriber Identity – международный идентификационный номер мобильного абонента, который содержит до 15 цифр, уникально назначаемый каждому мобильному устройству в мире. Индивидуальный ключ аутентификации абонента Ki (Individual subscriber authentication Key) – это 128-битное число, которое является корневым криптографическим ключом для генерации ключей сессий, а также для аутентификации мобильных пользователей в сети. Ki хорошо защищён и хранится в модуле SIM, а также в центре аутентификации AuC мобильного центра коммутации (MSC) в домашней сети абонента GSM. Доступ к модулю SIM защищён при помощи PIN-кода, который нужно вводить каждый раз при обращении к SIM, если пользователь сам это не отменит. Если PIN вводится неверно три раза, то SIM блокируется и требует ввода кода разблокировки PUK (PIN UnlocK). Если PUK также вводится неверно определённое число раз (обычно до 10), то SIM окончательно отказывает в доступе, т.е. становится бесполезным.
Если IMSI и Ki номера становятся известными злоумышленнику, он может выступать от имени легального абонента. В каждом модуле SIM выполняются алгоритмы шифрования A3 и A8. Таким образом, каждый оператор может определять и изменять эти алгоритмы независимо от других операторов и производителей оборудования. Следовательно, аутентификация будет работать и в том случае, когда абонент находится в сети другого оператора (роуминг), поскольку эта сеть будет запрашивать домашний регистр абонента HLR, и сети роуминга не нужно знать, какой алгоритм A3/A8 в SIM установлен в домашней сети. А3 в основном используется для аутентификации пользователя в сети, а А8 – для генерации ключа шифрования Кс.
Базовая станция (контроллер) посылает абоненту случайное число, по которому SIM вычисляет ключ Кс для данной сессии и ожидаемый отклик SRES. Если SRES совпадает с ожидаемым, то считается, что аутентификации в сети прошла успешно и телефон может начать шифрование с использованием сгенерированного ключа Кс.
Контроллер может выбрать до семи различных алгоритмов шифрования (или режим без шифрования), но при этом выбранный алгоритм должен поддерживаться в телефоне. Использование алгоритмов контролируется Меморандумом о взаимопонимании GSM (GSM Memorandum of Understanding (MoU)).
Алгоритм A5/3 – это алгоритм блочного шифрования, который также называется Kasumi. Он разработан 3GPP в 2002 году и может использоваться как в сетях 2G, так и 3G.
Процесс аутентификации GSM, генерация ключа сессии и процесс шифрования показан на рисунке ниже.

Рис. 2. Процесс аутентификации GSM, генерация ключа сессии и процесс шифрования в GSM.
Уязвимости GSM
На настоящий момент в системе GSM выявлены следующие уязвимости.
- Создание ложной базовой станции (Base Station Spoofing, Rogue Base Station). Эта уязвимость является базовой для создания многих сценариев атак и других уязвимостей, как показано ниже по списку. Base Station Spoofing означает возможность создавать реплицированную копию базовой станции GSM. Данный тип атаки использует недостатки процедуры аутентификации в стандарте GSM, которые позволяют ложной базовой станции «вклиниваться» (“man in the middle”) в поток любого трафика между настоящей базовой станцией GSM и устройством пользователя. Хотя шифрование A5 может предотвратить такой перехват, он не полностью исключает возможность успеха атаки. Дело в том, что шифрование в радиоканале можно просто отключить, причем такое решение может принимать сама базовая станция, а не оператор сети. Поэтому злоумышленник может сымитировать отключение алгоритма шифрования принудительно, вводя в действие алгоритм A5/0, который вообще не предусматривает шифрования трафика.
Другой вариант атаки – использование т.н. «радужных таблиц» (rainbow tables), которые представляют собой таблицы поиска (lookup table) для обращения криптографических хеш-функций с механизмом разумного компромисса между временем поиска по таблице и занимаемой памятью (time-memory tradeoff). Такие таблицы могут использоваться для взламывания паролей. Радужные таблицы для алгоритма A5 такие широко известны: как легитимным пользователям, так и злоумышленникам[4].
Base Station Spoofing представляет собой масштабную уязвимость, затрагивающую три основных аспекта безопасности: конфиденциальность, так и целостность и доступность данных CIA (confidentially, integrity and availability).
- Использование SMS (SMS Exploitation). Эта атака также использует механизм Base Station Spoofing, т.е. используется «подменная» базовая станция, через которую на аппарат пользователя можно послать SMS, либо служебные сообщения в виде кода USSD (Unstructured Supplementary Service Data), которые изменяют установки телефона. Такие операции могут быть использованы для отключения некоторых функций безопасности, изменения конфигурации аппарата и модификации направления трафика. При этом также появляется возможность перехватывать данные с телефона, изменять их направление и модифицировать их.
- Использование чипа управления радиоинтерфейсом (Baseband Chip). Используя базовую станцию как исходную точку атаки, можно проводить и другие типы атак. Используя подменную базовую станцию как исходную точку атаки, появляется возможность устанавливать зловредное ПО на радиочип в устройстве пользователя.
- Перехват IMSI (IMSI Catching). Перехват IMSI позволяет пользователю получать все данные SIM-карты в устройстве пользователя. Эта уязвимость может легитимно использоваться спецслужбами для законного перехвата (Legal Inteception, СОРМ — система оперативно-розыскных мероприятий). Поскольку в системе GSM предусмотрено подключение устройства пользователя к базовой станции с наивысшим уровнем сигнала, перехватчик IMSI производит сигнал большей мощности, чем сигнал реальной базовой станции, поскольку перехватчик как правило располагается ближе к абоненту.
- Подавление шифрования (Encryption Suppression). Когда терминал абонента проходит процесс аутентификации на базовой станции, он посылает сообщения о возможностях терминала («terminal capability messages»), в которых указывается, какие протоколы шифрования поддерживает базовая станция. Если злоумышленник модифицирует сообщения таким образом, что, якобы, базовая станция не поддерживает протоколы шифрования, то она затем переключает все каналы связи на отсутствие шифрования. Это означает отсутствие конфиденциальности связи в сети. К тому же, пользователь не может быть уверен в том, что его данные не модифицируются, т.е., не нарушается их целостность, в процессе передачи, таким образом, кроме «конфиденциальности» (Confidential) в модели CIA затрагивается также «целостность» (Integrity). Хотя в стандарте GSM установлено, что мобильное устройство должно извещать абонента о том, что шифрование между мобильной станцией и базовой станцией было отключено, однако, операторы часто отключают выдачу таких предупреждений на аппарате абонента, во избежание лишнего беспокойства и вопросов абонентов.
- Обход IMSI (IMSI Bypassing). Если сигналы с мобильного устройства абонента будут перехвачены во время процедуры установки вызова, когда базовая станция аутентифицирует абонента, то злоумышленник может получить контроль над радиоканалом между мобильной станцией и базовой станцией и перенаправить вызов другому абоненту. Данный тип атаки предполагает, что шифрование канала отсутствует. Однако, даже если шифрование будет включено, то можно использовать «радужные таблицы» для расшифровки кода шифрования канала. Анализ по «Треугольнику CIA» показывает, что при этом нарушается конфиденциальность (Confidentiality) данных, а также их целостность (Integrity), поскольку персонаж, посылающий данные, может быть не оригинальным мобильным абонентом. Следовательно, данные в канале на короткое время установки вызова оказываются доступными, и в это время, пока производится атака, мобильный абонент может не получать некоторые данные.
- Перехват вызова (Call Hijacking).Когда абонент устанавливает или аутентифицирует вызов к другому мобильному абоненту, этот вызов или контроль над соединением может быть перехвачен, и при этом к вызывающему абоненту может быть подключен другой абонент, вместо вызываемого. Это может происходить вследствие особенностей тарификации GSM, когда за вызов платит вызываемый абонент. Для использования такого вектора атаки, злоумышленник присваивает возможность перехвата и перенаправления трафика между мобильным абонентом и базовой станцией.
- Использование проблем встроенного программного обеспечения (Exploiting Firmware Issues). Часто источником уязвимости могут быть проблемы встроенного в мобильные телефоны ПО (firmware). Хотя эта уязвимость может и не быть непосредственной проблемой системы GSM, она относится к реализации архитектуры ПО GSM в радиочасти аппаратов того или иного производителя. Например, широко распространённое firmware компаний «Qualcomm» или «Infineon» уязвимо для атак, предусматривающих выполнение удалённого кода на самом телефоне.
- Односторонняя аутентификация и уязвимость к атакам man-in-the-middle (Unilateral authentication and vulnerability to the man-in-the-middle attack)[5]. Если сеть GSM аутентифицирует мобильную станцию абонента, а мобильная станция по каким-то причинам не аутентифицирует сеть, такая ситуация даёт возможность злоумышленнику использовать «ложную базовую станцию» с тем же кодом сети, как и легитимная сеть абонента. Злоумышленник может затем выполнять различные сценарии для модификации данных или создания ложных данных. На этапе проектирования протоколов GSM, такой тип атаки рассматривался как маловероятный, вследствие высоких затрат на его реализацию. Однако, в начале 2000-х годов стоимость средств пригодных для такого типа атак значительно снизилась, и атака стала практически выгодной для злоумышленников.
- Использование уязвимостей реализации алгоритмов шифрования A3/A8 в SIM. Хотя стандартная архитектура GSM позволяет операторам использовать любой алгоритм для шифрования A3/A8, многие операторы используют COMP128 (или COMP128-1), которые были секретно разработаны Ассоциацией GSM. Однако, структура COMP128 затем была раскрыта методом «reverse engineering», а также вследствие утечек техдокументации, и это позволило злоумышленникам использовать уязвимости алгоритма COMP128. Например, COMP128 непосредственно экспонирует индивидуальный ключ абонента Ki, это даёт возможность злоумышленнику принудительно сбрасывать в ноль последние 10 битов ключа Kc (для шифрования в радиоканале), что делает криптографический алгоритм в 1024 раза слабее. Некоторые мобильные операторы используют вместо A3/A8 алгоритм COMP128-2, который также был секретно разработан и в котором возможность сокращения длины ключа устранена. Есть также усовершенствованная версия COMP128-3.
- Клонирование SIM-карт (SIM card cloning). В 1998 году Ассоциация производителей смарт-карт SDA (Smartcard Developer Association) и исследовательская группа ISAAC обнаружили важную уязвимость в алгоритме COMP128, позволяющую извлекать ключ Ki в течение нескольких часов путём многократного обращения к модулю SIM. В конце концов, путем применения различных схем, исследователям из IBM удалось снизить время извлечения Ki всего до одной минуты[6]. Затем злоумышленник получает возможность создания «клона» SIM-карты и использовать её в преступных целях.
- Взлом радиоканала (Over-the-air cracking). Уязвимость COMP128 можно использовать для извлечения Ki даже без физического доступа к SIM-карте, как было указано ранее, путем многократного обращения к ней и анализа ответной информации. Такой подход может занимать несколько часов. При этом злоумышленник может также извлекать идентификатор IMSI. После получения Ki и IMSI, злоумышленник может клонировать SIM-карту и пользоваться услугами оператора от лица абонента-жертвы. Однако, здесь есть сложность в том, что система GSM устроена так, что в сети может находиться только одна SIM-карта с определённым IMSI. При этом, если злоумышленник и жертва в одно время подключаются к сети из разных местоположений, то сеть распознает дублирование SIM-карты и деактивирует данный аккаунт.
- Уязвимости криптографических алгоритмов. Алгоритмы A5/1 и A5/2 вначале разрабатывались в секрете. Результат шифрования A5/1 – это логическая операция XOR (исключающее ИЛИ) над содержимым трёх регистров линейного сдвига LFSR (Linear-Feedback Shift Register). Некоторые атаки на A5/1 используют криптоанализ в реальном времени при помощи обычного компьютера. При этом возможно после двух минут перехвата зашифрованного трафика разговора между абонентами извлечь цифровой ключ (примерно за 1 или 2 секунды). A5/2, в свою очередь – это умышленно ослабленный вариант A5/1. При этом не нужно двух минут перехвата зашифрованного трафика, и цифровой ключ извлекается менее, чем за 1 секунду при помощи криптоанализа на компьютере.
- Ограниченный участок защиты шифрования. Шифрование трафика выполняется только на участке радиоканала между MS и BTS. На других участках сети трафик не шифруется и данные свободно передаются по участкам сети GSM, представляющим собой её фиксированную (проводную) часть. При этом, если коммуникация между базовой станцией BTS и контроллером BSC (где уже нет шифрования) выполняется так же через беспроводное подключение, то это представляет собой потенциальную уязвимость для перехвата нешифрованных данных. В некоторых странах шифрование данных по радио-интерфейсу вообще не задействуется. Однако, в опорной сети GSM также есть проблемы безопасности, обусловленные использованием системы сигнализации ОКС7 (SS7). Сообщения сигнализации в ОКС7 могут модифицироваться и даже фабриковаться, и затем бесконтрольно передаваться в глобальную сеть сигнализации[7]. Процедуры аутентификации в ОКС7 очень ограничены. Подключение к Интернет также может нести с собой потенциальные уязвимости. Кроме того, сообщения ОКС7 могут передаваться по IP-протоколу, и это умножает вероятность возникновения уязвимостей при удалённом управлении опорной сетью GSM через Интернет. Если HLR и AuC физически разделены, это может представлять собой новую точку уязвимости, поскольку триплет аутентификации может быть получен от AuC при маскировке или подмене другого сетевого элемента, например HLR. Неавторизованный доступ к HLR, AuC и MSC также может порождать много проблем.
- Утечка анонимности абонента. Если абонент появляется в данной сети впервые, или при потере соответствия между TMSI и IMSI абонента, сеть явно запрашивает IMSI абонента. Эта возможность может быть использована в злонамеренных целях, при посылке команды IDENTITY REQUEST от ложной BTS на MS пользователя, чтобы выяснить его IMSI, что является конфиденциальной информацией.
- Уязвимость для DoS-атак. Всего один пользователь может вывести из строя всю сеть GSM с помощью атаки типа «отказ в обслуживании» DoS (Denial of Service). Злоумышленник при этом посылает запрос на выделение канала CHANNEL REQUEST на контроллер базовых станций BSC несколько раз, однако, при этом не завершает протокол и требует ещё один канал сигнализации, потом ещё и ещё. Поскольку число каналов сигнализации в GSM ограничено, то возникает «отказ в обслуживании». Такая атака не требует больших ресурсов и для злоумышленника она не ведёт к финансовым расходам. Поэтому такие атаки могут быть использованы в т.ч в террористических целях.
- Отсутствие защиты целостности данных. Хотя архитектура безопасности GSM предусматривает механизм аутентификации, и защиты конфиденциальности, однако, механизм защиты целостности данных (треугольник CIA) в архитектуре отсутствует[8]. Следовательно, получатель сообщения в GSM не может проверить его подлинность и точность информации в нём.
- Уязвимость к атакам повторного воспроизведения (Replay attack). Это атака на систему аутентификации путём записи и последующего воспроизведения ранее посланных корректных сообщений или их частей. Любая неизменная информация, такая как пароль или биометрические данные могут быть записаны и использованы позднее для имитации аутентичности.
- Возросшая избыточность вследствие предпочтительного кодирования. Когда механизм упреждающей коррекции ошибок (Forward Error Correction) выполняется перед шифрованием трафика, то возникает избыточность, которая повышает уязвимости криптографических алгоритмов.
- Уязвимость при нахождении MS GSM в сети 3G UMTS[9]. Когда мобильное устройство GSM находится в сети UMTS, как показано на рисунке ниже, оно запрашивает безопасное подключение к базовой станции UMTS BTS. Мобильный центр коммутации UMTS MSC запрашивает вектор аутентификации (RAND, XRES, Kc) абонента GSM из его домашней сети (HLR). После получения этого вектора, UMTS MSC направляет его в UMTS BTS. Базовая станция затем выполняет протокол аутентификации GSM мобильного абонента показанный на рисунке (см «Рис. 1- 1. Архитектура безопасности 2G GSM» документа «Уязвимости»). После успешного завершения этой аутентификации, MS и UMTS BTS могут обмениваться сообщениями с использованием алгоритмов шифрования UMTS с ключом UMTS CK и ключом целостности IK.
Процесс аутентификации проходит следующим образом (см. рис. 3):
(1) GSM MS запрашивает безопасное подключение к UMTS BTS
(2) UMTS MSC запрашивает из домашней сета абонента GSM вектор аутентификации (RAND, XRES, Kc).
(3) UMTS MSC получает вектор аутентификации GSM и передаёт его на UMTS BTS
(4) UMTS BTS выполняет протокол аутентификации GSM с MS GSM
(5) По завершению этапа (4), GSM MS и UMTS BTS
Могут безопасно обмениваться сообщениями с использованием алгоритмов шифрования UMTS с ключом UMTS CK и ключом целостности IK, которые генерируются с использованием с по индивидуальному ключу абонента GSM Kc.

Рис. 3. Аутентификация MS GSM в сети 3G UMTS.
Ключ Kc при этом получается из центра аутентификации AuC домашней сети абонента GSM, по нему вычисляются CK и IK. При такой конфигурации возникает проблема, что Kc может быть уже обнаружен злоумышленником, когда MS работает с полным контекстом GSM, поэтому CK и IK также могут быть легко им обнаружены. Таким образом, вся сессия UMTS абонента GSM становится доступной злоумышленнику.
[1] Y-A. D. Montjoye, C. A. Hidalgo1, M. Verleysen and V. D. Blondel, “Unique in the Crowd: The privacy bounds of human mobility,” in Sci. Rep. 3, Article number-1376, Mar. 2013.
[2] K. K. Shetty, “A Novel Algorithm for Uplink Interference Suppression using Smart Antennas in Mobile Communications,” Master dissertation, Department of Electrical and Computer Engineering, The Florida State University, 2004.
[3] A. Biryukov, A. Shamir and D. Wagner, “Real Time Cryptanalysis of A5/1 on a PC,” Lecture Notes in Computer Science Volume 2001. pp.
[4] http://project-rainbowcrack.com/table.htm
[5] Mohsen Toorani, Ali A. Beheshti. Solutions to the GSM Security Weaknesses. Proceedings of the 2nd International Conference on Next Generation Mobile Applications, Services, and Technologies (NGMAST’08), pp.576-581, University of Glamorgan, Cardiff, UK, Sep. 2008 [DOI 10.1109/NGMAST.2008.88].
[6] J.R. Rao, P. Rohatgi, H. Scherzer, and S. Tinguely, “Partitioning Attacks: Or How to Rapidly Clone Some GSM Cards,” IEEE Symposium on Security and Privacy (S&P’02), pp.31-41, 2002.
[7] G. Lorenz, T. Moore, G. Manes, J. Hale, and S. Shenoi, “Securing SS7 Telecommunications Networks,” IEEE Workshop on Information Assurance and Security, pp.273-278, June 2001.
[8] P. Chandra, “Bulletproof Wireless Security, GSM, UMTS, 802.11 and Ad hoc Security,” Elsevier, 2005.
[9] Eric Southern et al. Wireless Security: Securing Mobile UMTS Communications from interoperation of GSM (https://www.eng.uwo.ca/electrical/faculty/shami_a/docs/Publications/Wireless%20Security%20Securing%20Mobile%20UMTS.pdf).
Уведомление: Уязвимости 3G UMTS | Telecom & IT
Уведомление: Уязвимости мобильных сетей (Обзор) | Telecom & IT