id: Гость   вход   регистрация
текущее время 14:16 28/03/2024
создать
просмотр
редакции
ссылки

Это старая редакция страницы Библиотека / Статьи / Eavesdropping On G S M / The Open Source Practical Implementation за 20/01/2011 11:57.


4. Практическое выполнение решения с открытым исходным кодом


Прослушивание GSM возможно — в продаже есть оборудование, способное прослушивать разговоры, шифрованные A5/1 и A5/2, но оно продаётся строго ограниченно правоохранительным органам и военным по высоким ценам. Так что вопрос состоит не в том, можно ли прослушивать GSM, а скорее в том, насколько сложно это сделать при помощи общедоступного оборудования.


Недавно множество проектов с открытым исходным кодом поставило перед собой цель доказать небезопасность GSM или просто выполнить важнейшие элементы GSM на основе открытых решений. Так насколько далеко зашли практические реализации всех трёх шагов из предыдущего раздела, выполненные открытым сообществом? Для каждого из этих шагов возможно использовать проекты с открытыми исходниками. Соответственно:


  1. USRP совместно с GnuRadio и AirProbe для перехвата сигналов.
  2. Kraken, для дешифровки перехваченных сигналов.
  3. OpenBTS, OpenBSC или AirProbe для интерпретации сообщений.

Поскольку проект AirProbe в действительности представляет собой набор утилит, используемых как для перехвата, так и для интерпретации импульсов передачи данных GSM, то он приведён в двух пунктах. Теперь можно детальнее рассмотреть каждый из этих проектов.

4.1 Перехват с использованием USRP совместно с GnuRadio и AirProbe


Перехват сигналов GSM может быть осуществлён путём совместного использования USRP и GNU Radio. Универсальная програмируемая радиопериферия (USRP) — это открытая аппаратура, разработанная Мэттом Эттасом, которую можно заказать через его компанию Ettus Research [11]. Это передатчик, который может быть подсоединён к компьютеру и приспособленный к определённым частотам за счёт дополнения платами расширения. USRP содержит программируемый FPGA (ПЛИС), который может быть использован для выполнения некоторых видов обработки сигналов. В стандартной конфигурации USRP создаёт 16-битные I и Q сэмплы при приёме заданной частоты. Эти комплексные сэмплы с реальной частью (Q) описывают косинус сигнала, а мнимая часть (I) описывает синус сигнала плюс 90 градусов. Таким образом, один сэмпл занимает 32 бита и может быть послан на хост-компьютер через коммуникационный порт для дальнейшей обработки.


На данный момент существует два типа оборудования: USRP и USRP2. USRP (или USRP1) может принимать сигналы в диапазоне шириной 32 MHz и передавать в диапазоне шириной 64 MHz. Он передаёт сэмплы на хост-компьютер через соединение USB2.0, которое имее практически максимальную пропускную способность 32 Мбайта/сек. USRP2 может принимать на диапазоне шириной 50MHz и передавать на диапазоне шириной 200MHz. В сравнении с USRP1, USRP2 также содержит более быструю FPGA (ПЛИС) и гигабитный этернет-порт вместо USB-соединения.


USRP2 содержит внутренний генератор частоты 64 MHz (кристаллический clock-осциллятор), в то время как большинство GSM-телефонов имеют символьный clock-генератор со значительно большей степенью точности. Разумеется, 64 MHz сэмплы могут быть пересэмплированы (как перемноженные или составные от) 13 MHz, однако это внесёт дополнительные вычислительные затраты. При этом USRP-осцилляторы значительно менее аккуратны и могут показывать значительный дрейф по отношению к системным часам GSM, что приводит к плохим результатам приёма. Использование более точных внешних часов позволяет получить импульсы (составные) 13 MHz, которые решают эту проблему.


GNU Radio [12] — это свободная программная утилита под GPL-лицензией для создания программного радио. Она была начата Эриком Блоссом. Она работает для множества различных типов радиоаппаратуры, включая звуковые карты, но в большей степени используется в комбинации с USRP. В основном GNU Radio — это библиотека, содержащая множество стандартных функций обработки сигналов, таких как фильтры и (де)модуляторы.


GNU Radio по умолчанию не содержит специальных средств прослушивания GSM. Однако GNU Radio может быть использовано совместно с другими программными пакетами, такими как AirProbe для выполнения низкоуровневых функций прослушивания GSM, таких как приём и демодуляция. AirProbe [13] — это проект с открытым исходным кодом, пытающийся создать средства интерфейса для GSM (и в будущем возможно 3G) стандартов мобильной связи. Одна из частей проекта работает с приёмом GSM-сигналов (с использованием функций GNU-радио), в то время как другая часть может быть также использована для интерпретации GSM-сигналов, всвязи с чем мы вернёмся к AirProbe в разделе 4.3. В данный момент AirProbe способен прослушивать только обратный линк (сотовая вышка → мобильный телефон) разговора, поэтому всё ещё требуется некоторая дальнейшая разработка.


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


I. Позволить USRP следовать за прыгающей частотой.
II. Перехватить все возможные частоты и пытаться следовать за последовательностью позднее.


Первое решение требует множественных вычислений внутри FPGA USRP. Все параметры для перескакивающей частоты должны быть получены от определённых импульсов данных, затем должна быть вычислена следующая частота перескока для каждого последующего импулься данных. Есть три возможные конфигурации мобильных сетей в отношении передачи параметров последовательности перескока частоты. В одном из них все параметры передаются в открытом виде. В двух других конфигурациях эти параметры передаются после включения шифрования. В наших экспериментах мы всегда наблюдали только сотовые вышки, которые использовали так называемое "раннее присваивание", в котором параметры перескока передавались зашифрованными. Кроме того, сеть всегда могла послать команду на новый перескок частоты под шифрованием, независимо от использованной конфигурации. Это требует очень быстрого взлома шифрования с целью получать значения частот перескока в реальном времени. Пока что это невозможно. USRP FPGA может только сэмплировать отдельные частоты с определённой пропускной способностью и посылать их в компьютер. То есть возможность иметь FPGA (ПЛИС), для дешифровки и интерпретации импульсов данных с целью следования последовательностям перескока частоты потребует множества работ по созданию такого решения. Остаётся под вопросом даже то, что значительно более быстрый FPGA USRP2 сможет дешифровывать сообщения и таким образом вычислять последовательности перескока в реальном времени. Такая задача может потребовать дополнительных FPGA, что увеличит стоимость. Также задержки в настройке аппаратуры USRP (время между коммандой "tune" и моментом, когда USRP получает используемые сэмплы с нужной частоты) выглядят большими на данный момент и должны быть снижены. Однако, при такой постановке задачи всё должно работать для любой сотовой вышке и вне зависимости от объёмов трафика.


Второе решение потребует захвата большого объёма данных, а именно записи всех каналов и определения частоты перескока позднее. Проблема здесь в уменьшении объёма данных, посылаемых от USRP к компьютеру. Прыгающая частота может осуществлять максимальный скачок между 64 несущими частотами. Все эти несущие имеют ширину 200 кГц и могут быть равномерно распределены по всему GSM-спектру. Так что в худшем случае атакующему придётся перехватывать весь GSM-диапазон (для GSM900 это 25 MГц для прямого и обратного линка). Проблема состоит в производительности PC по отношению к обработке данных. Каждый сэмпл USRP представлен двумя 16-битными числами. Для USRP1 с USB2.0 соединением это означает, что максимальный поток данных, который может быть отправлен компьютеру около 8 MГц (8 MГц x 2 x 16 = 256 Мбит/с). В USRP2 соединение GBE может пропускать 100 Mбайт данных (25 МГц х 2 х 16 = 800 Мбит/с) и даже 200 Мбайт/c, для прямой и обратной связи, что слишком много для большинства PC.


Назад | Оглавление | Дальше