image
OsmocomBB — это проект, целью которого является свободная (Open Source) имплементация стека протоколов GSM. OsmocomBB предоставляет исходный код прошивок для совместимых телефонов, а также программное обеспечение для их взаимодействия с компьютером. В этом цикле статей я постараюсь описать наиболее интересные возможности, тонкости и ошибки, которые могут возникнуть при работе с данным ПО. Заинтересованных приглашаю под кат!

Навигация



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

  • Образование
    GSM является открытым стандартом, разрабатываемым сообществом ETSI, однако лишь немногие, кроме разработчиков оборудования сотовой связи, детально понимают принципы взаимодействия телефона и сотовой сети. Разработка и внедрение програмного обеспечения, работающего на стороне сотового телефона, требует знания материала, который довольно трудно найти в книгах или описании стандарта. Одной из таких тем является реализация синхронизации телефона и базовой станции методом TDMA (Time Division Multiple Access). Еще одной «проблемной» темой является оптимизация потребления энергии в целях экономии заряда батареи.
  • Исследования
    Любые исследования в области сотовой связи, особенно исследования безопасности, требуют как теоретических знаний, так и свободной, достаточно документированной реализации базового стека протоколов. Вполне возможно, что производители оборудования сотовой связи никак не заинтересованы в каких-либо исследованиях, которые в добавок могут негативно повлиять на их позицию на рынке. Поэтому, они делают все возможное, чтобы скрыть подробности работы их оборудования от любопытных исследователей. Опираясь на знания протоколов GSM и свободно доступное ПО, все больше и больше людей могут проводить исследования, которые не требуют тесных связей с индустрией сотовой связи.
  • Безопасность и конфиденциальность
    Большинство людей имеют представление о возможных угрозах при подключении к сети Интернет и используют антивирусные программы, брандмауэры и файерволы для защиты своих компьютеров. Но что насчет мобильных телефонов? Почти постоянно, Ваш телефон, DSP модуль которого управляется каким-нибудь ПО с закрытым исходным кодом, подключен к общедоступной беспроводной GSM сети, создаваемой ближайшей базовой станцией. Любое достаточно сложное ПО может содержать ошибки, либо специально оставленные бэкдоры, которыми может воспользоваться кто-угодно. В отличие и закрытого ПО, свободное предоставляет более высокий уровень безопасности, так как исходный код доступен для чтения любому заинтересованному в этом человеку.

На помощь приходит проект OsmocomBB.

Сообщество Osmocom


Сообщество Osmocom занимается разработкой сразу нескольких Open Source проектов, таких как:
  • OpenBSC — реализация стека протоколов и элементов стандартов GSM/3GPP, с помощью которой можно организовать свою сотовую сеть;
  • OsmocomDECT — свободная реализация стека протоколов стандарта DECT, на базе которого работает большинство стационарных беспроводных телефонов;
  • SIMTrace — оборудование и программное обеспечение для пассивного мониторинга трафика между SIM-картой и телефоном;
  • OsmoSDR — дешевый SDR-приемник, способный принимать сигналы GSM, TETRA, GMR-1 и аналогичные.

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

Проект OsmocomBB


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

Итак, по порядку, что понадобится для запуска OsmocomBB?

  • Совместимый телефон на базе чипсета Calypso или MediaTek
    Список поддерживаемых моделей можно найти тут. Основной упор делается на Motorola C123/C121/C118 (E88) и Motorola C155 (E99), поэтому рекомендуется приобретать именно их. Также поддерживаются Open Source телефоны Neo 1973 (GTA01) и Neo Freerunner (GTA02). Подробнее о том, где приобрести совместимый телефон и как убедиться, что это именно то, что нужно, я расскажу во второй части.
  • Замена фильтров и антена (опционально)
    Если Вы планируете использовать телефон в качестве пассивного сниффера GSM трафика или хотите запустить небольшую базовую станцию на его основе, Вам придется заказать дополнительные детали и проявить мастерство аккуратной пайки. Дело в том, что входящий трафик (downlink), не предназначенный для данного телефона, отбрасывается специальными фильтрами. Для того, чтобы это обойти, требуется небольшое хирургическое вмешательство, которое описано тут: Filter Replacement. Однако, данные действия требуют ответственности и понимания происходящего со стороны читателя, так как вещание на частотах GSM требует лицензии, а нарушение конфиденциальности трафика абонентов преследуется законодательством Российский Федерации. :( Подробнее об этом так же постараюсь рассказать в следующих частях данного цикла.
  • Кабель и преобразователь USB-TTL
    Связь телефона с компьютером осуществляется посредством последовательного порта и USB-TTL преобразователя. В совместимых телефонах Motorola для этих целей используется порт гарнитуры стандарта 2.5 mm jack. Тут у Вас два варианта: либо заказать уже готовый кабель на сайте sysmocom.de (10-15 евро) или где-ниубдь еще, либо сделать самому, потратившись только на джек, провода и преобразователь (около 200 рублей с aliexpress). Подробнее о том, как спаять кабель, о тонкостях выбора конвертора и граблях, на которые можно наступить, расскажу во второй части.
  • Компьютер под управлением Unix-like ОС
    Предполагается, что читатель хотя бы на базовом уровне знаком с Unix-подобными операционными системами. Процесс сборки исходников будет описан на примере дистрибутива Ubuntu Linux 14.04 LTS. Также желательно наличие стабильного канала доступа к сети Интернет.
  • Терпение, скилл, умение искать информацию в Интернете
    Есть большая вероятность того, что во время сборки исходников или при соединении телефона у вас возникнут ошибки. Это нормальное явление. Следует внимательно вчитываться в сообщения об ошибках, и чаще пользоваться поиском: возможно, у кого-нибудь уже возникали такие проблемы. Также очень пригодится знание английского языка на базовом уровне. В каждой из следующих частей я опишу возможные ошибки и способы их устранения.


Что можно сделать с помощью OsmocomBB?


  • Сниффинг GSM трафика
    Пакеты, передаваемые в эфире GSM сетей, можно захватывать, анализировать (например, с помощью Wireshark), и даже расшифровывать. Телефон будет передавать весь захватываемый трафик на ваш компьютер. Перед Вами один из самых дешевых снифферов GSM, позволяющий выполнять исследования и тестирование безопасности.
  • Запуск небольшой базовой станции
    Если Вы когда либо слышали об SDR-девайсах, типа USRP, то Вы наверняка слышали и об их цене. OsmocomBB совместимый телефон с перепаянными фильтрами является дешевой альтернативой, позволяющей запустить свою сотовую сеть в пределах комнаты.
  • RSSI (Индикация уровня принимаемого сигнала)
    Есть возможность мониторить уровень сигнала на разных каналах сотовой сети. Для этого используется специальная одноименная прошивка.
  • Стресс-тестинг беспроводного оборудования (EMI)
    Звучит внушительно. Специальная прошивка EMI позволяет генерировать программно определяемые помехи в целях тестирования стабильности различного беспроводного оборудования, вроде усилителей и раций. подробнее об этом написано тут.
  • SIM Reader
    Используя специальные библиотеки, Вы можете взаимодействовать с SIM-картой через все тот-же телефон. Как известно, SIM-карта — это довольно сложное устройство, которое может содержать изъяны в плане безопасности. Существует даже проект по тестированию безопасности сим-карт SIMtester.
  • Запуск небольшой операционной системы NuttX
    Сообществу Osmocom удалось портировать RTOS систему Nuttx для запуска на совместимых с OsmocomBB телефонах. В одной из следующих статей я расскажу об этом подробнее.
  • Звонки и SMS-ки
    Не смотря на перечисленный выше список возможностей, телефон остается телефоном, и под управлением программы mobile из пакета OsmocomBB может совершать/принимать голосовые вызовы, принимать и отправлять SMS-сообщения и выполнять DTMF команды.


Что посмотреть, почитать?


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

Заварив кастрюльку чая и кружечку пельменей, можно посмотреть интересные выступления разработчиков проекта:



Заключение


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

  • 0x01 Введение
  • 0x02 Hardware
  • 0x03 Сборка програмного обеспечения
  • 0x04 RSSI, звонки и SMS
  • 0x05 Замена фильтров, запуск OpenBTS на телефоне
  • 0x06 Сниффинг и расшифровка GSM-трафика
  • 0x07 Запуск RTOS NutteX

P.S. Очень интересны мнения читателей, пожелания и замечания.

Комментарии (10)


  1. g0dlike
    11.05.2015 10:54

    Какая из платформ лучше — Motorola E88 или E99?
    «Лучше» — имеется ввиду, наличие антенного разъема, легче для пайки и т.д.


    1. axilirator Автор
      11.05.2015 13:09

      Обе платформы имеют разъем для подключения антенны, замена фильтров и там и там — примерно одинаковый по сложности процесс. Единственное отличие между ними в этом плане заключается в том, что проект в первую очередь ориентирован на E88, а потом уже на E99 и другие… Есть вариант приобрести уже готовый осмофон с перепаянными фильтрами, правда цены там заоблачные.


      1. g0dlike
        11.05.2015 13:39

        Спасибо!
        На раскладке цена фабричного телефона — 2$
        На ebay перепаянного — от 100$


        1. axilirator Автор
          11.05.2015 13:53
          +1

          Главное, не перепутать. Забегая вперед, скажу, что бывают два типа: для Европы и для Америки. То есть, два телефона EU и US могут точно так же выглядеть снаружи, но с небольшими изменениями на плате. OsmocomBB официально поддерживает только Европейский стандарт — EU, а вот с US могут быть проблемы.


  1. vsarakoff
    11.05.2015 22:01

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


    1. axilirator Автор
      11.05.2015 23:36
      +1

      На вопрос «Зачем?» разработчики проекта первым делом отвечают «Because we can». Часто ли Вы встречаете Opensource реализации клиентской части стека протоколов GSM? Результатами их хардкорной работы можно свободно пользоваться в своих проектах. Не смотря на быстро набирающие популярность стандарты новых поколений, GSM до сих пор используется. Например, для уменьшения потребляемой энергии современные смартфоны переключаются на GSM в режиме ожидания. Многие терминалы, банкоматы, и системы охранной сигнализации сегодня работают на GSM.


      1. vsarakoff
        12.05.2015 00:04

        Спасибо за ответ! Хотелось бы заметить, что в Европе намечается постепенное высвобождение частот диапазона GSM и использования их для LTE, что в свою очередь ставит под вопрос целесообразность подобной разработки. Хотя, могу и ошибаться с выводом.


        1. axilirator Автор
          13.05.2015 06:54

          OsmocomBB существует уже как минимум 5 лет. Когда его только начинали разрабатывать, никто не знал, что в Европе захотят перераспределить диапазоны частот. В России к тому времени, на сколько я знаю, только планировали разворачивать LTE. И самое главное: никто никому не запрещает присоединиться к команде разработчиков (которая, к сожалению, почти не уделяет данному проекту времени), портировать проект на другие платформы и добавить поддержку сетей 3 и 4 поколения.


          1. vsarakoff
            13.05.2015 14:56

            Сложно согласиться с утверждением, что никто не знал, ибо такое планируется задолго до внедрения, и планы по замене циркулировали в операторах уже 4+ года назад. В Польше, например, уже пару лет назад начали ставить LTE в диапазоне 900MHz. В России LTE сети запустили с отставанием от Европы и Северной Америки, поэтому не совсем удачно сравнивать.

            Насчёт LTE — есть проект www.openepc.com, который над этим уже вовсю работает. И судя по покупке домена в 2012 году, проекту уже 3 года.


            1. axilirator Автор
              13.05.2015 17:10

              Спасибо, интересный проект. Насчет актуальности OsmocomBB и GSM: GSM можно сравнить с HDD, которые не смотря на то, что проигрывают по скорости SSD и в плане архитектуры представляют из себя довольно сложную систему с подвижными механическими элементами, все еще выпускаются, продаются и будут существовать еще какое-то время. Можно также вспомнить браузер Opera Mini, который доминировал на платформе J2ME и даже поставлялся в некоторых телефонах как предустановленный браузер по умолчанию. С появлением Android, Windows Phone и iOS браузер был портирован на них и имеет свою аудиторию даже сегодня. С таким же успехом, используя и модифицируя имеющуюся кодовую базу, OsmocomBB может быть портирован на новые устройства, поддерживающие сети новых поколений. Основная проблема заключается в закрытости спецификаций и драйверов DSP, использующихся в современных смартфонах.