Анализ аутентификации абонентов. Защита PIN кодом и установление подлинности в сети GSM. Рассмотрение алгоритмов шифрования. Исследование принципов атак на сетевой трафик. Применение методов криптозащиты данных. Переход на стандарты CDMA и UMTS.
RAND является случайным числом, SRES вычисляется в AUC алгоритмом A3 на основе секретного ключа Ki и RAND, а Kc является ключом шифрования радиоинтерфейса и вычисляется алгоритмом A8 на основе Ki и RAND. В современном оборудовании связи, ключи Ki прогружаются в AUC в зашифрованном виде и это исключает доступ к ключам даже со стороны технического персонала оператора. Если оператор хочет "привязать" конкретный телефон к своей сети, то он может немного модифицировать алгоритм аутентификации, и тогда такой телефон нельзя будет использовать в других сетях. Говоря об алгоритмах аутентификации A3 и алгоритме формирования ключа A8, следует отметить что на практике большинство сотовых операторов используют для этих целей один алгоритм, называемый COMP128(он имеет множество модификаций COMP128-1, COMP128-2, COMP128-3). 114 бит используется для шифрования данных исходящего из сети к мобильному телефону, остальные 114 бит для шифрования данных идущих от телефона к сети.Так как построение системы прослушивания GSM-трафика стоит не так много (тысячи долларов для незащищенной передачи, и сотни тысяч для защищенной A5/1, A5/2), вероятность взлома GSM-соединения достаточно велика и в условиях гигантского числа потребителей приобретает реальную угрозу. За время прошедшее с момента создания GSM, условия в информационных технологиях, в мировой политике и в социуме успели сильно измениться. Изменились возможности компьютеров и требования к безопасности. Впрочем, на смену ему уже пришли новые стандарты третьего поколения - CDMA, UMTS - которые обеспечат более высокие характеристики с точки зрения безопасности. "Security in the GSM network". IPSEC.pl. ipsec.
Сотовые системы связи первого поколения, такие как NMT, TACS и AMPS, имели небольшие возможности в плане безопасности, и это привело к существенным уровням мошеннической деятельности, которая вредит и абонентам, и сетевым операторам. Множество инцидентов большого значения выдвинуло на первый план чувствительность аналоговых телефонов к подслушиванию линий радиосвязи. Система GSM имеет множество особенностей в плане безопасности, которые разработаны, чтобы предоставить абоненту и сетевому оператору больший уровень защиты от мошеннической деятельности. Механизмы аутентификации гарантируют, что только добросовестным абонентам, обладающим добросовестным оборудованием, то есть не украденным или нестандартным, будет предоставлен доступ к сети. Как только связь была установлена, информация в линии связи передается в зашифрованной форме, во избежание подслушивания. Конфиденциальность каждого абонента защищена, гарантирована тем, что его личность и местоположение защищены. Это достигнуто путем назначения для каждого пользователя временного идентификатора подвижного абонента (Temporary Mobile Subscriber Identity - TMSI), который изменяется от звонка к звонку. Таким образом нет необходимости передавать международный идентификатор мобильного абонента (International Mobile Subscriber Identity - IMSI) по радиоинтерфейсу, что затрудняет задачу идентификации и определения местонахождения пользователя для подслушивающего.[5]
Защита PIN кодом
Первый и самый простой уровень защиты против мошеннического использования мобильного телефона - личный идентификационный номер (PIN-код), предназначенный для защиты против мошеннического использования украденных SIM-карт. В SIM-карте PIN-код имеет вид от четырех- до восьмизначного числа. Пользователь может иметь возможность отключения этого уровня защиты. SIM-карта также может хранить второй четырех-, восьмиразрядный десятичный код, известный как PIN2, чтобы защитить определенные возможности, которые являются доступными для абонента. Как только PIN-код, и если требуется - PIN2, введены правильно, объект технической эксплуатации (maintenance entity) будет иметь доступ к данным, хранимым в SIM карте. Технические требования также определяют процедуры, которые должны выполняться, когда PIN-код введен неправильно. После трех последовательных неправильных попыток набора PIN кода SIM-карта блокируется и дальнейшие попытки ввести PIN-код игнорируются, даже если SIM карта извлечена из объекта технической эксплуатации (maintenance entity). SIM-карта может быть разблокирована путем введения восьмиразрядного десятичного кода, известного как PUK (Personal Unlock Key), который также хранится в SIM-карте. После 10 неправильных попыток введения PUK кода SIM карта блокируется окончательно.[6]
Установление подлинности
Процедура установления подлинности или аутентификации (authentication) выполняется под управлением и по инициативе VLR. Для ее проведения используется сценарий запрос-ответ, в котором VLR отправляет в MS специальное случайное число RAND, которое является одним из входных параметров алгоритма A3, используемого в SIM-карте для вычисления значение отклика SRES. Другим входным параметром алгоритма A3 является секретный ключ Ki, содержащийся в SIM-карте. Ключ Ki не доступен для считывания из SIM и это является одним из основных аспектов безопасности GSM.
VLR, в котором регистрируется абонент, отправляет запрос в AUC домашней сети абонента, в ответ на который AUC присылает набор триплетов, каждый из которых содержит RAND, SRES и ключ шифрования Kc. RAND является случайным числом, SRES вычисляется в AUC алгоритмом A3 на основе секретного ключа Ki и RAND, а Kc является ключом шифрования радиоинтерфейса и вычисляется алгоритмом A8 на основе Ki и RAND. Эти триплеты в дальнейшем будут использованы VLR для установления подлинности и шифрования. Таким образом, все вычисления с использованием ключа Ki происходят внутри AUC, на стороне сети и внутри SIM, на стороне абонента, что исключает утечку Ki и перехват злоумышленником. В современном оборудовании связи, ключи Ki прогружаются в AUC в зашифрованном виде и это исключает доступ к ключам даже со стороны технического персонала оператора. Процедура установления подлинности может выполняться при исходящих, входящих вызовах, при регистрации в сети, пакетной передаче данных, отправке или получении SMS, а также при обновлении местоположения (location update). Каждый оператор связи самостоятельно определяет, в каких случая VLR будет выполнять аутентификацию.
Каждый сотовый телефон стандарта GSM оборудован специальной SIM3-картой, на которой содержится информация, которая уникальным образом идентифицирует сотовый телефон в сети. Кроме этого, она может содержать сервисные функции, уникальные для сотового оператора.
Способ аутентификации пользователя (возможность однозначно определить, кто подключился к сети) основан на методе "запрос-ответ". Сеть GSM посылает запрос на сотовый телефон, в котором содержится некоторое случайное число. Телефон шифрует его с помощью аутентификационного алгоритма A3, используя ключ шифрования Ki. Ключ записан на SIM-карте.
Алгоритм шифрования A3 одинаков для всех сотовых телефонов, за небольшим исключением. Если оператор хочет "привязать" конкретный телефон к своей сети, то он может немного модифицировать алгоритм аутентификации, и тогда такой телефон нельзя будет использовать в других сетях.
После того как телефон зашифровал запрос, он отсылает результат обратно оператору. Получив ответ, оператор может проверить его правильность: проведя точно такое же шифрование случайного числа, посланного на трубку. Если то, что у него получится, совпадет с ответом с трубки, значит, аутентификация прошла успешно.
То, что и запрос, и ответ передаются по радиоканалу и могут быть перехвачены - не страшно, так как следующий запрос от сети будет содержать уже другое случайное число.
Процедура установления подлинности начинается после того, как между MS и MSC организован прозрачный канал для обмена служебной информацией. VLR выбирает первый триплет и отправляет в мобильную станцию его RAND вместе с номером триплета, который в дальнейшем будет обозначаться как CKSN - Ciphering Key Sequence Number, он же - номер ключа шифрования Kc. На стороне MS, по алгоритму A3 вычисляется SRES, который возвращается в VLR, где сравнивается со значением SRES из состава триплета, полученного из AUC. Идентичность двух SRES является признаком подлинности абонента. Триплет в VLR помечается как использованный и в следующий раз будет использован другой триплет. После того, как все триплеты будут израсходованы, VLR запрашивает у AUC новую порцию триплетов. Секретный алгоритм A3 предоставляет возможность относительно простой генерации SRES из RAND и Ki, но затрудняет определение Ki из SRES и RAND, или пар SRES и RAND, чем обеспечивается высокая стойкость к компрометации.
Шифрование
Техническая безопасность GSM обеспечивается, в первую очередь, набором алгоритмов, используемых для организации соединения сотового телефона с сетью оператора GSM.
Основу безопасности GSM составляют три закрытых алгоритма...
-A3 - алгоритм, используемый для аутентификации.
-A8 - алгоритм, с помощью которого генерируется ключ шифрования для одного сеанса связи.
-A5 - алгоритм шифрования сигнала при сеансе связи.
Все три алгоритма - секретны, т.е. официально не раскрыты. Это, кстати, еще один способ защиты, но уже организационный.
Прежде чем приступить к описанию алгоритма шифрования используемого в GSM сетях рассмотрим каким образом происходит аутентификация пользователя и формирования ключа шифрования.
На данном рисунке схематично представлены следующие шаги: 1. Телефон оператора подключается к сети.
2. Для подтверждения своей подлинности телефон посылает специальный идентификационный код, называемый TMSI (Temporary Mobile Subscriber Identity).
3. Центр Аутентификации(ЦА) генерирует 128-битное случайное число RAND и посылает его на Мобильную Станцию(МС).
4. МС зашифровывает полученное число RAND, используя свой секретный ключ Ki и алгоритм аутентификации A3.
5. MC берет первые 32 бита из последовательности, полученной на предыдущем шаге(назовем их SRES(signed response)) и отправляет их обратно на ЦА.
6. ЦА проделывает ту же операцию и получает 32 битную последовательность XRES(expected response).
7. После чего ЦА сравнивает SRES и XRES. В случае, если оба значения равны, телефон считается аутентифицированным.
8. МС и ЦА вычисляют сессионный ключ шифрования, используя секретный ключ Ki и алгоритм формирования ключа A8 Kc=A8ki(RAND) [1]
Говоря об алгоритмах аутентификации A3 и алгоритме формирования ключа A8, следует отметить что на практике большинство сотовых операторов используют для этих целей один алгоритм, называемый COMP128(он имеет множество модификаций COMP128-1, COMP128-2, COMP128-3). COMP128 представляет собой обыкновенную хэш-функцию, на входе которая принимает 128-битную последовательность и на выходе возвращает 96-битную. Так вот, вместо применения разных алгоритмов для аутентификации и формирования сессионного ключа применяется следующая схема: SRES=Первые 32 бита от COMP128(Ki||RAND)
Kc=Последние 64 бита COMP128(Ki||RAND).
Как всегда в криптографии, попытка сэкономить время разработчикам обернулась полным провалом. Безопасность GSM сетей изначально основывалась на принципе «безопасность за счет неизвестности». И когда в 1998 году алгоритм был вскрыт группой исследователей состоящих из Марка Брикено, Иана Голдберга и Девида Вагнера обнаружилась одна занятная особенность: последние 10 бит секретного ключа Ki всегда равнялись нулю. Используя это любопытное свойство, а так же уязвимость COMP128 к «атаке дней рождений» Марк Брикено, Иан Голдберг и Девид Вагнер смогли извлечь секретный ключ Ki ИЗSIM-карты.
Результатом этого исследования стал повсеместный отказ от алгоритма COMP128 и его замена на более надежные модификации COMP128-2 и COMP128-3, технические детали которых держатся в тайне.[4]
Алгоритм шифрования A5/1
В качестве алгоритма шифрования в GSM используются алгоритмы из семейства A5. На сегодняшний день их всего 3: · A5/1 - поточный шифр, наиболее распространенный на сегодня.
· А5/2-вариант предыдущего алгоритма «для бедных». Очень похож на своего «старшего брата», но изначально задумывался, как сильно ослабленная версия A5/1. В настоящее время не используется
· А5/3-блочный шифр. Разработан в 2002 году с целью заменить устаревший A5/1.
Однако в настоящее время используется только в 3GPP сетях. У алгоритма найден ряд уязвимостей, но о практических атаках речи пока не идет.
Рассмотрим подробнее алгоритм A5/1.
Итак, как уже было сказано выше A5/1 это поточный шифр.
Внутреннее состояние шифра A5/1 состоит из трех линейных регистров сдвига с обратной связью R1, R2, R3, длиной 19, 22 и 23 бита соответственно(всего 64 бита).
Сдвиг в регистрах R1, R2, R3 происходит только при выполнении определенного условия. Каждый регистр содержит " бит управления тактированием". В R1 это 8-й бит, а в R2 и R3 - 10-й. На каждом шаге сдвигаются только те регистры у которых значение бита синхронизации равно большинству значений синхронизирующих битов всех трех регистров.
Перед работой алгоритма выполняется инициализация регистров. Происходит это следующим образом: 1. R1=R2=R3=0
2. For i=0 to 63 do
R1[0]=R1[0]?Kc[i]
R2[0]=R2[0]?Kc[i]
R2[0]=R2[0]?Kc[i]
3. Сдвинуть все регистры на одну позицию, игнорируя биты синхронизации.
4. For i=0 to 22 do
R1[0]=R1[0]?FRAMECOUNT[[i]
R2[0]=R2[0]?FRAMECOUNT[[i]
R2[0]=R2[0]?FRAMECOUNT[[i]
5. Сдвинуть все регистры на одну позицию, игнорируя биты синхронизации.
6. For i=0 to 99 do
7. Сдвинуть регистры на одну позицию, с учетом битов синхронизации.
Где FRAMECOUNT 32-х битная запись номера текущего фрейма.
После инициализации производится вычисление 228 бит выходной последовательности. 114 бит используется для шифрования данных исходящего из сети к мобильному телефону, остальные 114 бит для шифрования данных идущих от телефона к сети. Само шифрование представляет собой обыкновенный XOR между данными и произведенным алгоритмом A5/1 ключевым потоком.
После передачи данных номер фрейма увеличивается на единицу и заново производится инициализация регистров.
Класс A5Enc на C#
Проверить правильность кода можно, запустив программу с ключом {0x12, 0x23, 0x45, 0x67, 0x89, 0XAB, 0XCD, 0XEF} и номером фрейма 0x134. Две сгенерированные последовательности по 114 бит каждая, должны быть равны соответственно { 0x53, 0x4E, 0XAA, 0x58, 0x2F, 0XE8, 0x15, 0x1A, 0XB6, 0XE1, 0x85, 0x5A, 0x72, 0x8C, 0x00 } и { 0x24, 0XFD, 0x35, 0XA3, 0x5D, 0x5F, 0XB6, 0x52, 0x6D, 0x32, 0XF9, 0x06, 0XDF, 0x1A, 0XC0 }.
Именно такие тестовые данные использовали Марк Брикено, Иан Голдберг и Девид Вагнер в своей самой первой реализации алгоритма, написанной на С.
Функция шифрования/расшифровки, использующая данный класс, будет выглядеть следующим образом: private byte[] A5Encyptor(byte[] msg,byte[] key)
На сегодняшний день известно большое количество успешных атак на GSM шифрование и все они относятся к атакам типа known-plaintext, т.е. для восстановления ключа атакующему помимо зашифрованных фреймов необходимо знать так же незашифрованные данные, которые соответствуют этим фреймам. На первый взгляд такое требование может показаться фантастическим, однако изза специфики стандарта GSM, в котором помимо голосового трафика передаются различные системные сообщения, такого рода атаки из разряда теоретических переходят в разряд практических. Системные сообщения GSM содержат повторяющиеся данные и могут использоваться злоумышленником. В частности метод, предложенный Карстеном Нолом в 2010 году основан как раз таки на поиске такого рода данных в шифротексте и простом переборе различных вариантов ключей, хранящихся в радужных таблицах, до тех пор пока не будет найден ключ, порождающий нужный шифротекст для известного заранее системного сообщения.
Ответ, полученный после работы алгоритма A3, используется для вычисления ключа шифрования Kc. Этот ключ нужен для защиты данных во время соединения по сотовому телефону (это может быть голос, данные, передающиеся через WAP4, факсовые данные).
Зашифрованный ответ передается специальному алгоритму A8, который производит некоторое преобразование и вычисляет ключ Kc. Точно такое же действие производится и на стороне сотового оператора. Таким образом, ключ шифрования Kc идентичен на стороне оператора и телефона.
Далее, прежде чем отправить данные по радиоканалу, сотовый телефон и оператор шифруют их с помощью поточного шифра A5 и ключа Kc.
Отдельно нужно сказать об основе шифрования в GSM - алгоритме A5. Он имеет две реализации - A5/1 и A5/2. Первая версия разрешена для применения в странах членах CEPT5, вторая - во всех остальных (в том числе и для России). Соответственно, вторая версия и более слабая с криптографической точки зрения. Сделано это из чисто политических соображений6.
Современные сотовые телефоны поддерживают три варианта взаимодействия с сотовым оператором - с помощью A5/1, A5/2, а также без использования шифрования при передаче данных. Хотя для России и разрешено использование шифрования по алгоритму A5/2, в большинстве случаев шифрование не используется7. Во многих трубках, сертифицированных для России, даже нет опции в меню, с помощью которой можно включить защиту данных. Сделано это, во-первых, изза экспортных ограничений (т.к. Россия не входит в состав CEPT), а во-вторых, изза ограничений, накладываемых СОРМ - Средства по обеспечению Оперативно-Розыскных Мероприятий - свод постановлений правительства, ФАПСИ (Федеральное Агентство Правительственной Связи и Информации) и Министерства Связи. защита gsm сеть атака
Кстати, вопрос использования A5/2 весьма неоднозначный. Включение A5/2 напрямую не противоречит СОРМ, так как все равно весь трафик, начиная от базовой станции и далее по сетям связи оператора, идет в нешифрованном виде, так что спецслужбы имеют возможность получить к нему доступ. Однако, по неофициальным данным, российским операторам было не рекомендовано использовать эту опцию шифрования.
Как только подлинность абонента была проверена, таким образом защищая и абонента и сетевого оператора от влияния мошеннического доступа, пользователь должен быть защищен от подслушивания. Это достигается путем шифрования данных, передаваемых по радиоинтерфейсу, с использованием второго ключа Kc и изначально секретного алгоритма A5. Kc генерируется в ходе проверки подлинности, используя Ki, RAND и секретный алгоритм A8, который также хранится в SIM-карте. Подобно алгоритму A3, A8 не уникален, и он может также быть выбран оператором. Ключи Kc для каждого пользователя вычисляются в AUC домашней сети и передаются в VLR в составе набора триплетов, где каждому триплету и, соответственно - ключу Kc, присваивается номер ключа - CKSN. В некоторых реализациях алгоритмы A3 и A8 объединены в единственный алгоритм A38, который использует RAND и Ki, чтобы сгенерировать Kc и SRES. В отличие от A3 и A8, которые, возможно, различны для каждого индивидуального оператора, A5 выбирается из списка из 7 возможных вариантов.
Перед шифрованием происходит фаза переговоров в ходе которой определяется, какая версия A5 будет использована. Если сеть и мобильная станция не имеют общих версий A5, связь должна продолжиться в открытом режиме или соединение должно быть разорвано. Алгоритм A5 использует 64-битный ключ Kc и 22-битный номер фрейма TDMA для вычисления двух 114-битных слов шифрования - BLOCK1 и BLOCK2, использующихся при передаче и приеме соответственно. Слова шифрования - EXORED со 114 битами данных в каждой посылке. Поскольку зашифрованные данные вычислены, используя номер фрейма TDMA, то слова изменяются от посылки к посылке и не повторяются на протяжении гиперфрейма (приблизительно 3,5 часа).
Перед тем, как начать шифрование, мобильная станция (MS) отправляет в VLR номер ключа шифрования CKSN, который хранится в ее памяти с момента последней процедуры аутентификации. CKSN не содержит секретных данных, а служит лишь для того, чтобы MS могла сообщить сети, какой ключ Kc она «помнит». После этого VLR отправляет в MS команду на включение шифрования и передает в базовую станцию (BTS) ключ Kc из того триплета, который соответствует номеру CKSN, полученному от MS. Таким образом между MS и VLR достигается договоренность о выборе ключа шифрования без передачи самого ключа по радиоинтерфейсу.
Некоторые передачи на линии радиосвязи не могут быть защищены шифрованием. Например, после начального назначения, мобильная станция должна передать свой идентификатор сети прежде, чем шифрование может быть активизировано. Это очевидно позволило бы подслушивающему определять местоположение абонента, перехватывая это сообщение. Эта проблема решена в GSM введением временного идентификатора подвижного абонента (TMSI), который является «псевдонимом», назначенным на каждой мобильной станции со стороны VLR. TMSI передается мобильной станции в течение предыдущей зашифрованной сессии связи, и он используется мобильной станцией и сетью при любом последующем пейджинге и процедурах доступа. TMSI действителен только в пределах области, которую обслуживает определенный VLR.
Атаки на GSM
Слабые места и защита
Все атаки на мобильную связь можно разделить на два больших класса: 1. Атаки, имеющие своей целью получить доступ к передаваемым данным, попросту подслушать телефонный разговор или перехватить сообщение.
2. Атаки, направленные на получение бесплатного доступа к сети связи.
Для реализации первых из них требуется серьезное оборудование и технологии взлома, для вторых возможны разные варианты, от простейших, рассчитанных на забывчивость, до весьма сложных в техническом плане.
Атака на алгоритм A5/1
Рассматриваемая атака была впервые описана в 2002 году двумя исследователями: Патриком Экдалом и Томасом Йохансоном.[2]
Из определения процедуры инициализации можно заключить, что начальное состояние регистров является линейной функцией от сессионного ключа K и номера фрейма Fn.
Зная так же, что выходной бит генератора является XOR-ом выходных бит всех трех регистров можно записать следующее равенство: (1), где si-последовательность генерируемая регистрами после загрузки в них только битов ключа K. fi-последовательность, после загрузки только битов номера фрейма, а x-выходной бит регистра.
Так же из определения инициализации известно, что первые 100 циклов алгоритм работает «в холостую», т.е. не производит никаких выходных битов, и первый бит выходной последовательности на самом деле является 101-м сгенерированным битом. Таким образом, если учесть, что на каждом шаге вероятность сдвига для каждого регистра равняется 3/4, можно сделать предположение, что после 101 шага, каждый регистр сдвигался ровно 76 раз. Следовательно, формула (1) преобразуется в: (2)
Обозначив правую часть как перепишем формулу: (3)
Т.к. выражение в правой части (3) нам известно, мы получаем 1 бит информации о ключевой последовательности S, а именно о состоянии 76-й позиции каждого регистра после инициализации. Действуя подобным образом, мы можем предположить, что на 102 позиции R1 остался также на позиции 76, а регистры R2 и R3 сдвинулись на позицию 77, таким образом мы получаем информацию о 77-й позиции регистра, и т.д. Всего нам необходимо вскрыть 64 бита, для успешного восстановления начального состояния.
Разумеется ситуация (76,76,76) возникает именно на 101 шаге с крайне низкой вероятностью, и если бы мы решили действовать подобным образом, то нам понадобилось бы перебрать огромное количество фреймов, пока наконец не попадется именно тот, в котором после 101 сдвига каждый регистр прокрутился на 76 позиций. Для того, чтобы уменьшить необходимое количество фреймов Экдал и Йоханнсон предложили следующий метод.
Нет нужды угадывать конкретную позицию в которой регистры проворачиваются (cl1,cl2,cl3) раз. Достаточно просто знать, что с большой долей вероятности каждый регистр провернется от 76 до 102 на отрезке I=[100,140] выходных бит каждого фрейма.
Таким образом, для каждого фрейма мы можем вычислить вероятность: как (4), где и обозначает вероятность того, что t-й бит был порожден позициями регистров (cl1, cl2, cl3).
Вычислив (4) для каждого доступного фрейма усредним полученные вероятности при помощи логарифма: (5).
Если (5)> 0, значит s1(cl1)?s2(cl2)?s3(cl3)=0, в противном случае s1(cl1)?s2(cl2)?s3(cl3)=1.
Можно описать атаку полностью в виде алгоритма: 1. Выбор интервала C. Например С=[79,86]
2. Пусть переменные cl1,cl2,cl3 пробегают все значения из интервала C, для каждого фрейма вычисляем (4)
3. Для всех полученный значений вычислить (5)
4. На основании значения ? выбирать значение s1(cl1)?s2(cl2)?s3(cl3)
Результатом выполнения данного алгоритма будут 512 уравнений вида s1(79)?s2(79)?s3(79)=0, состоящие из 8 неизвестных. Решив эту систему уравнений простым перебором, получают по 8 бит начального значения каждого регистра.
Повторив алгоритм еще два раза для интервалов [87, 94] и [95, 102] получится по 24 бита начального состояния каждого из регистров. Этого более чем достаточно. Прокрутив каждый из регистров 101 раз назад получится как раз то состояние регистров, которое было после второго шага инициализации, т.е. после загрузки в регистры ключевых битов. Теперь можно сгенерировать всю ключевую последовательность целиком.
C# класс A5attack
Используя функцию FINDKEYBIT следующим образом: private bool[] attack()
Если полученный фрейм совпадает с первым фреймом известного ключевого потока, значит атака была реализована успешно и мы вскрыли сеансовый ключ алгоритма A5/1.
Атаки на сетевой трафик
Как уже говорилось, целью атак на сетевой трафик является получение неавторизованного доступа к содержанию передающихся данных от сотового телефона к базовой станции оператора.
В зависимости от используемого алгоритма шифрования трафика, средства, необходимые для его перехвата, могут быть разными.
В случае нешифрованного трафика, как это имеет место у большинства российских операторов, перехват достаточно прост. Все, что для него требуется, это радиосканер плюс устройство, которое производит обратное ЦАП, собирая цифровые пакеты в аналоговый сигнал.
Когда сеть использует шифрование A5/2 или, тем более, A5/1, для взлома необходима еще одна вещь. До 6 декабря 1999 года считалось, что осуществить такой взлом невозможно: исходные тексты алгоритмов шифрования были закрыты, и сами они считались достаточно стойкими. Однако, двумя израильскими программистами - Алексом Бирюковым и Ади Шамиром - алгоритм A5/1 был взломан, т.е. доказана его теоретическая нестойкость. Сделано это было с помощью радиосканера и обычного персонального компьютера.
Тем не менее, взлом алгоритма не произвел существенного уменьшения использования сетей GSM, так как его практическая безопасность все же остается на достаточно высоком уровне.
Защититься от такого рода атак практически невозможно, так как алгоритм шифрования изменить невозможно (иначе трубка просто не будет работать в сети), пока GSM MOU не примет новых стандартов по безопасности. А сделано это, скорее всего, не будет, так как GSM является сетью связи второго поколения 2G, которые уступили свое место сетям 3G и 4G, имеющим более совершенные стандарты безопасности.[2]
Атака "по закону"
К сожалению, описанная выше атака на трафик - не единственный вариант событий, при котором телефонные переговоры могут стать достоянием третьих лиц. Силовые органы имеют вполне законное право (а на основании постановления прокурора или суда - полностью законное) прослушивать ваши телефонные переговоры, в том числе и по сотовому телефону. Для этого им совсем не обязательно иметь специальное шпионское оборудование для радиоперехвата. К их услугам стандартные возможности оборудования оператора сотовой связи, который обязан предоставить его им для возможности слежения.
Однако есть два типа устройств, предназначенных для полного шифрования трафика: аналоговые скремблеры и цифровые шифраторы. Первые обычно выполняются в виде специальной приставки к телефону, вторые - в виде дополнительной платы внутри телефона.
Практических вариантов подобных устройств не так много.
В качестве примера скремблера можно привести аппарат швейцарской фирмы Crypto AG - HC-2413. Насколько можно судить по фотографии, он выполнен на основе телефона Sagem MC-850, в нижнюю часть которого добавлено скремблирующее устройство.
HC-2413 обеспечивает полнодуплексное защищенное соединение не только с подобными устройствами, но и со стационарными телефонными терминалами HC-2203 той же фирмы. Для шифрования аппарат использует 128-битный ключ и собственный алгоритм разработки Crypto AG.
Использование подобного устройства позволяет защитить переговоры от прослушивания на любом участке передачи (разумеется, кроме непосредственного прослушивания сверхчувствительными микрофонами, находящимися в непосредственной близости от абонента).
Другим устройством, обеспечивающим полную защиту трафика, является аппарат TOPSEC GSM, созданный на основе телефона Siemens S35 немецкой фирмой Rohde & Swartz.
Аппарат представляет собой обычный телефон Siemens S35, модернизированный специальным крипто-чипом. Шифрование включается специальной опцией в меню телефона. В защищенном режиме телефон может работать как со вторым телефоном TOPSEC, так и с ISDN-телефоном ELCRODAT 6-2 той же фирмы.
Защита обеспечивается шифрованием трафика со 128-битным ключом, а сеансовый ключ вычисляется с помощью 1024-битного ключа, что обеспечивает дополнительную защиту. Отличительной особенностью данного телефона является то, что зашифрованные пакеты создаются в нем таким образом, что они прозрачно воспринимаются и передаются по сетям GSM, как и обычные GSM-пакеты.
Атака на основе открытых текстов
Передача системной информации в открытом и зашифрованном виде.
При передаче зашифрованного трафика по GSM в нем присутствует системная информация, заранее известная криптоаналитику. С помощью этой информации может быть применена атака на основе открытых текстов. В декабре 2010 года навсемирном конгрессе хакеров Сильван Монтейн и Карстен Нол продемонстрировали взлом ключа Kc и последующую расшифровку голосового трафика. [3] Для ускорения атаки путем перебора ключа по известному открытому тексту они использовали метод предвычислений с созданием радужных таблиц.
GSM -цифровой формат связи. Это означает, что аналоговые голосовые данные путем специального кодирования (Цифроаналогового Преобразования - ЦАП или DSP - Digital Signal Processing) преобразуются в цифровой формат и в нем же и передаются. Именно цифровой формат передачи обеспечивает тот потенциальный уровень безопасности, которым обладают сети GSM.
По качеству безопасность GSM находится примерно посередине: с одной стороны, он имеет достаточно неплохие характеристики практической безопасности, однако, с другой стороны, его теоретическая безопасность не так хороша, что было неоднократно доказано специалистами по защите информации.
Общая безопасность сотовой связи GSM включает в себя как технические и организационные моменты, так и правовые. Для обеспечения как можно более полной защиты все эти три составляющие должны находиться в тесном взаимодействии.
Вывод
Так как построение системы прослушивания GSM-трафика стоит не так много (тысячи долларов для незащищенной передачи, и сотни тысяч для защищенной A5/1, A5/2), вероятность взлома GSM-соединения достаточно велика и в условиях гигантского числа потребителей приобретает реальную угрозу. За время прошедшее с момента создания GSM, условия в информационных технологиях, в мировой политике и в социуме успели сильно измениться. Изменились возможности компьютеров и требования к безопасности. Возможности теоретической безопасности, заложенные в GSM, в скором времени будут совсем неудовлетворительными. Впрочем, на смену ему уже пришли новые стандарты третьего поколения - CDMA, UMTS - которые обеспечат более высокие характеристики с точки зрения безопасности.
Литература и ссылки
1. Marcin Olawski. «Security in the GSM network». Olawski, Marcin (May 2011). "Security in the GSM network". IPSEC.pl. ipsec.pl/files/ipsec/security_in_the_gs
2. Patrik Ekdahl and Thomas Johansson. «Another Attack on A5/1», IEEE Transactions of Information Theory, Volume 49, Issue 1, pp. 284-289, 2003.