Module 4.4

Безопасность сотовых сетей

В предыдущей части мы обсуждали криптографию. В этой части мы дадим базовое введение в безопасность сотовых сетей.

Введение в сотовые сети

Сотовые сети предназначены для предоставления пользователям связи везде и всегда, независимо от того, движется пользователь или нет. Первой сотовой технологией с глобальным охватом была GSM, которая распространилась с феноменальной скоростью в последнее десятилетие прошлого века.

Система GSM изначально проектировалась для голосовых вызовов, но позже была добавлена поддержка передачи данных в виде GPRS (General Packet Radio Service).

В сотовой сети мобильное устройство, например мобильный телефон или планшет, подключается к базовой станции через радиоинтерфейс. Базовая станция подключается к ядру сети, которое управляет всей системой. Функции ядра сети включают, например:

  • Отслеживание местоположения мобильных устройств (управление мобильностью)
  • Предоставление интернет-соединения мобильным устройствам (управление сессиями)
  • Установление вызовов между разными мобильными устройствами (управление вызовами)
  • Аутентификацию мобильных устройств (безопасность)

Следующее поколение сотовой технологии было представлено в первое десятилетие нового тысячелетия. Эта технология называется 3G (3rd generation), и поддержка как голосовых вызовов, так и передачи данных была включена с самого начала.

Вскоре выяснилось, что объем трафика данных в сотовых сетях растет намного быстрее объема голосового трафика. Поэтому 4-е поколение сотовой технологии было спроектировано исключительно для соединений передачи данных. Сервис голосовых вызовов стал рассматриваться просто как один из многих сервисов, которые можно предоставлять в сети передачи данных. Альтернативное название технологии 4G — LTE. Сеть LTE полностью оптимизирована для передачи IP-пакетов.

Шифрование

Поскольку соединения предоставляются по радио, их в принципе очень легко подслушивать. Это можно делать даже так, что обнаружить подслушивание очень сложно. Для защиты конфиденциальности голосовых вызовов поддержка шифрования была применена на радиоинтерфейсе уже в системе GSM, и та же практика перешла в последующие поколения.

Во время проектирования системы GSM общий взгляд был таким: она должна предоставлять дополнительный способ телефонных вызовов, когда пользователи находятся в движении, например в машине. Ожидалось, что подавляющее большинство звонков все еще будет идти по стационарным телефонным кабелям. Поэтому требования к конфиденциальности и безопасности в целом определялись относительно стационарных сетей: GSM должна быть как минимум так же безопасна, как стационарные сети.

Следуя этой логике дальше, разработчики безопасности GSM сделали вывод, что главное отличие мобильной сети от стационарной сети создает именно радиоинтерфейс. Атакующий всегда мог прослушивать стационарные кабели, но это требовало физического доступа к кабелям. С другой стороны, радиотрафик можно было слушать почти из любой физической точки.

Поскольку ожидалось, что после базовой станции коммуникационный трафик будет идти по стационарным кабелям, казалось достаточным защищать голосовой трафик шифрованием между мобильным устройством и базовой станцией. К счастью, голосовой трафик был спроектирован для передачи через радиоинтерфейс в цифровой форме: речь кодируется в поток бит. Это было новым свойством технологии GSM по сравнению с ее региональными предшественниками в мобильной телефонии. Теперь по крайней мере в принципе можно было превратить закодированный битовый поток в зашифрованный битовый поток, который затем отправлялся через радиоинтерфейс. Обратите внимание на различие между кодированием и шифрованием.

При проектировании безопасности 3G стали очевидны некоторые ограничения шифрования GSM. Иногда базовые станции также связывались с остальной сетью по радио. Это означало, что для этого канала связи тоже лучше использовать шифрование.

В 3G шифрование происходит между мобильным устройством и контроллером радиосети. Это элемент сети 3G, к которому подключается базовая станция. Содержимое коммуникации шифруется в мобильном устройстве, затем проходит через базовую станцию в зашифрованном виде и расшифровывается в контроллере радиосети. Такое устройство влияет на выбор коммуникационного уровня, который обеспечивает шифрование и расшифрование.

Два самых нижних уровня коммуникации, физический уровень и канальный уровень, завершаются в базовой станции. Это означает, что управляющая информация, передаваемая между мобильной станцией и базовой станцией на этих низких уровнях, не может оставаться конфиденциальной в 3G. К счастью, вся эта информация касается радиоусловий, а не отдельных пользователей.

Еще одно ограничение шифрования GSM, очевидное уже во время проектирования 3G, состояло в том, что фактические алгоритмы шифрования были слишком слабыми. Во-первых, секретный ключ имел всего 64 бита. Во-вторых, спецификации алгоритмов держались в секрете, что не повышало доверия к их уровню безопасности.

Алгоритмы шифрования 3G с самого начала были публичными. Общий ключ, используемый для шифрования, имеет длину 128 бит. Такая длина ключа считается достаточной, по крайней мере до тех пор, пока настоящий квантовый компьютер не станет реальным инструментом для атакующих. В 3G используются алгоритмы KASUMI и SNOW3G.

Когда пришло время разрабатывать 4G, у шифрования 3G не было замечено существенных ограничений. Однако использовать шифрование 3G как модель для шифрования 4G было не так просто. Причина в том, что в сети 4G базовая станция берет на себя многие задачи, которые в 3G выполнял контроллер радиосети. В итоге было решено, что шифрование будет завершаться в базовой станции. Это решение дополнили отдельным шифрованием между базовой станцией и остальной сетью. Такая схема означает, что, в отличие от 3G, пользовательские данные доступны внутри базовой станции в открытом виде.

Алгоритмы шифрования 4G и текущего 5G основаны на SNOW3G, AES и ZUC. Все функции шифрования во всех поколениях технологии мобильной связи являются потоковыми шифрами. AES и KASUMI на самом деле являются блочными шифрами, но используются в потоковом режиме шифра. Потоковый шифр подходит для сценариев высокоскоростной связи, поскольку большую часть шифрования/расшифрования можно выполнить еще до того, как открытый текст или шифртекст станет доступен.

Аутентификация

Клиенты мобильных операторов обычно платят за доступ к сотовой сети. Поэтому при подключении к сети важно проверять идентичность пользователей. Конечно, оператор сети должен знать, где находятся пользователи, чтобы доставлять входящие вызовы и сообщения в правильное место. Кроме того, вызовы и сообщения должны доставляться правильному пользователю.

Это основные причины, по которым аутентификация является краеугольным камнем безопасности сотовых сетей.

Аутентификация человека обычно основана на одном из следующих факторов:

  • То, что пользователь знает, например пароль;
  • То, что пользователь имеет, например физический токен;
  • То, чем пользователь является, например отпечаток пальца

Сотовая аутентификация основана на среднем варианте. Пользователь получает от оператора смарт-карту, и карта вставляется в мобильное устройство. Основное назначение карты — служить токеном аутентификации. В GSM карта называлась SIM (Subscriber identity module), а в более поздних поколениях используется более продвинутая карта UICC (Universal Integrated Circuit Card).

Смарт-карта содержит постоянный мастер-ключ, специфичный для конкретной карты и пользователя. Другая копия ключа хранится в Home Subscriber Server (HSS) мобильного оператора. На основе мастер-ключа оператор может подготовить challenge-запрос для пользователя. Генерируется случайная битовая строка и отправляется пользователю, точнее его мобильному устройству. Чтобы пройти аутентификацию, мобильное устройство должно отправить сети правильный ответ (response). Ответ генерируется односторонней функцией с использованием случайной challenge-строки и мастер-ключа в качестве входов. И challenge-строка, и строка ответа отправляются через радиоинтерфейс. Поэтому потенциальный прослушивающий может собрать правильные пары challenge-response. Если оператор позже повторно использует challenge-строку, прослушивающий сможет выдать себя за пользователя и успешно пройти аутентификацию. Однако случайный challenge настолько длинный (=128 бит), что вероятность этого крайне мала, если оператор действительно создает свежую случайную битовую строку для каждого challenge.

Часто аутентификация сопровождается процессом генерации временного сеансового ключа. Так ключи шифрования генерируются и в сотовых системах. На основе той же случайной challenge-строки и мобильное устройство, и сеть генерируют другую битовую строку, используя тот же метод, что описан выше для строки ответа. Разница в том, что эта другая битовая строка не отправляется в сеть, а каждая сторона сохраняет ее для дальнейшего использования при шифровании коммуникаций.

Взаимная аутентификация

Описанное выше показывает, как аутентификация устроена в GSM-сетях. В первые годы работы GSM было замечено, что у аутентификации есть большой недостаток: мобильное устройство не имеет способа аутентифицировать сеть. Можно построить поддельную базовую станцию, которая передает с достаточно большой мощностью, чтобы заставить мобильные устройства попытаться подключиться к ней. Конечно, поддельная базовая станция не знает мастер-ключа пользователя, потому что не может подключиться к HSS настоящего оператора. Но это не мешает поддельной базовой станции придумать случайную битовую строку и отправить ее как challenge мобильному устройству. Мобильное устройство вычисляет правильный ответ и отправляет его поддельной сети, которая просто принимает аутентификацию, никак не проверяя ответ. Разработчики безопасности GSM знали о таком сценарии атаки, но в итоге решили, что атака потребует настолько сложного оборудования, что на практике не станет существенной проблемой.

К моменту разработки 3G стало понятно, что поддельные базовые станции действительно используются против реальных пользователей. Поэтому был включен механизм, с помощью которого мобильное устройство может проверить, что подключено к легитимной сети. Один возможный механизм — просто поменять роли: мобильное устройство отправляет случайную строку как challenge, а сеть вычисляет правильный ответ с общим мастер-ключом. Однако в ситуациях роуминга это было бы непрактично. Если пользователь уехал на другую сторону мира, challenge-строку пришлось бы отправлять в домашнюю страну пользователя. Другим решением было бы отправить мастер-ключ оператору, обслуживающему путешествующего пользователя. Последнее решение проблематично с точки зрения безопасности. Действительно, хранение мастер-ключа всегда в двух исходных местах, смарт-карте на стороне пользователя и HSS на стороне сети, является краеугольным камнем безопасности сотовых сетей.

Как обойти эту трудность? Решение было следующим. Вместо ожидания challenge от мобильного устройства HSS вычисляет строку ответа на свой собственный challenge. Затем этот ответ отправляется мобильному устройству вместе со случайной challenge-строкой как доказательство того, что отправитель имел доступ к общему мастер-ключу.

Но подождите... если сеть добавляет правильный ответ к challenge, не обнуляет ли это аутентификацию мобильного устройства? Решение этой проблемы — использовать другую одностороннюю функцию для вычисления ответа, который прикрепляется к случайному challenge, вместо односторонней функции, используемой для вычисления ответа от мобильного устройства на тот же challenge.

Но остается еще одна проблема. Атакующий может записать случайный challenge и соответствующий ответ, а затем использовать их позже в атаке с поддельной базовой станцией. Такая атака называется атакой повторного воспроизведения (replay attack). Решение — включить номер последовательности в вычисление ответа, который прикрепляется к challenge. Тогда мобильное устройство может проверить, что случайный challenge не является повторно воспроизведенным.

Мы обсудили, как взаимная аутентификация работает в 3G. Стоит отметить, что мобильное устройство явно не проверяет идентичность сети, к которой подключено. Вместо этого мобильное устройство просто получает подтверждение, что подключено к легитимной сети.

В сети 4G фактическая идентичность посещаемой сети была добавлена как еще один вход в вычисления. Тогда в ситуации роуминга мобильное устройство знает, что подключено к той же сети, которой HSS передал случайный challenge и связанные параметры.

В сетях 5G аутентификация также основана на общем ключе. Однако есть дополнительные функции безопасности: в 3G и 4G идентификатор телефона, то есть идентификатор, который HSS использует для нахождения правильного общего ключа и генерации challenge, отправляется открытым текстом. В 5G он шифруется открытым ключом HSS.

Согласование ключей

Во всех поколениях генерация ключей происходит как побочный результат аутентификации. Разные односторонние функции используются для вывода ключей для разных целей, используя общий мастер-ключ и случайно сгенерированную challenge-строку как входы.

В сетях GSM ключ шифрования — единственный нужный ключ. В сетях 3G потребовался еще один ключ для защиты целостности управляющей коммуникации. В сетях 4G существует целая иерархия криптографических ключей для разных целей. Сети 5G имеют более сложную иерархию ключей, чем 4G; см., например, Figure 5.

Защита целостности

Во всех поколениях сотовой технологии шифрование обеспечивается потоковым шифром. У такого шифра есть следующее свойство: если один бит шифртекста перевернут из нуля в единицу или наоборот, то при расшифровании соответствующий бит открытого текста тоже перевернется. Одно следствие этого свойства: атакующий, который может правильно угадать содержимое открытого текста, сможет изменить шифртекст так, что расшифрование измененного шифртекста даст любой открытый текст по выбору атакующего. Пример такой атаки — Alter.

В сетях 3G был введен отдельный механизм криптографической защиты от такой атаки. Особенно это касается управляющей коммуникации, содержимое которой в некоторых ситуациях может быть легко угадываемым. Поэтому код аутентификации сообщения был добавлен к сообщениям плоскости управления (control plane). Эти сообщения содержат данные, которыми мобильное устройство и сеть должны обмениваться для корректного функционирования сети. Код аутентификации сообщения вычисляется на основе самого сообщения, ключа целостности и изменяющегося со временем счетчика. Общий ключ целостности выводится во время процедуры аутентификации и согласования ключей. Изменяющийся со временем счетчик нужен для защиты от атаки повторного воспроизведения, где ранее записанное подлинное управляющее сообщение отправляется в момент, выбранный атакующим.

Одно из хороших свойств потокового шифра состоит в том, что он совсем не увеличивает размер сообщения. В отличие от этого, код аутентификации сообщения делает сообщение длиннее. Это была одна из основных причин, почему код аутентификации сообщения не добавляется к сообщениям плоскости пользователя (user plane). Это верно и для сетей 3G и 4G. В текущей версии 5G защита плоскости пользователя с кодом аутентификации сообщения является необязательной.

Приватность идентичности

Вернемся к сценарию атаки с поддельной базовой станцией. Сеть должна решить, какой алгоритм шифрования будет применяться в коммуникации между мобильным устройством и самой сетью. В принципе также можно выбрать вариант без шифрования вообще. Эта возможность позволяет поддельной базовой станции GSM установить соединение с мобильным устройством жертвы, даже если она не может вывести ключ шифрования.

Начиная с 3G, такие атаки предотвращаются в сотовых сетях за счет взаимной аутентификации. Но это не означает, что поддельные базовые станции бесполезны против сетей 3G или 4G. Они все еще могут использоваться как IMSI catchers. Это устройства, предназначенные только для сбора идентификаторов устройств жертв, а не данных, которые они отправляют.

Цель атаки — запросить у пользователя его постоянный идентификатор IMSI (International Mobile Subscriber Identity). После идентификации пользователя IMSI catcher может, например, просто отклонить пользователя, даже не начиная процедуру аутентификации. После этого мобильное устройство попытается подключиться к другой базовой станции, которая в таком случае обычно принадлежит легитимной сети. У человека-пользователя тогда будет очень мало шансов заметить, что произошло что-то необычное.

В технологии 5G предпринимаются серьезные усилия для предотвращения IMSI catchers: IMSI шифруется открытым ключом сети всякий раз, когда отправляется по радиоинтерфейсу. Конечно, мобильное устройство должно получить открытый ключ каким-то способом, отличным от передачи с базовой станции.

В следующей части курса мы обсудим безопасность IoT.

Вы дошли до конца этого раздела!

Не забудьте проверить свои баллы в индикаторе в правом нижнем углу материала!