В данной статье я хотел бы рассказать о проекте Osmocom, его текущих инструментах и возможностях.

О проекте

Проект Osmocom расшифровывается как Open Source Mobile Communications и был основан немецким исследователем Гаральдом Вельте (Harald Welte).

В 2008 году была впервые публично продемонстрирована работа FOSS (Free and Open Source) контроллера базовых станций GSM в связке с проприетарной базовой станцией Siemens BS-11, что позволило запустить свою собственную 2G сеть на полностью открытой реализации стека протоколов GSM.

В 2010 году проект Osmocom представил FOSS реализацию стека протоколов GSM со стороны мобильных устройств где в качестве железа использовались сотовые телефоны Motorola на чипсете TI Calypso.

С 2014 по 2015 годы была добавлена поддержка сервисов передачи данных GPRS и EDGE.

Помимо проекта Osmocom, существует проект Sysmocom, предлагающий коммерческую помощь заинтересованным клиентам, которые хотели бы внедрить GSM сеть на основе Osmocom. Помимо этого, Sysmocom предлагает приобрести «железо», совместимое с Osmocom, в числе которого базовые станции, сим-карты, трансиверы и прочее оборудование для радио-взаимодействия.

На текущий момент также существует имплементация high-level протоколов для сетей 3G и можно приобрести NITB (Network In The Box) комплект для запуска собственной 3G сети на основе nano3G femtocell и sysmoNITB 3.5G от sysmocom. Однако далеко не все 3G протоколы были реализованы в связи с высокой сложностью и запутанностью спецификаций.

Зачем это нужно

1. Проводить аудит безопасности GSM сетей на коммерческих сетях операторов может быть как неудобно, так и незаконно.

2. Клиентское оборудование не позволяет получать доступ к низкоуровневой информации о текущем сеансе связи.

3. Исследование 2G (GSM) сетей доступно каждому из-за невысокой цены на оборудование и дает базовое представление о работе сотовых сетей.

Что может Osmocom

Проект делится на отдельные ветви, реализующие различные компоненты GSM сети. Основные разработки перечислены ниже.

OpenBSC

Проект, с которого начинался Osmocom. На текущий момент делится на OsmoBSC и OsmoNTIB.
OsmoBSC работает как классический контроллер базовых станций (BSC), и реализует интерфейсы A-bis в сторону BTS (Базовая станция) и интерфейс A в сторону MSC (Mobile Switching Center, по сути АТС в мире GSM).

OsmoNTIB помимо функций OsmoBSC реализует все прочие компоненты сети GSM, необходимые для ее базового функционирования. К ним относятся MSC, HLR, AUC и SMS-центр.

OsmoBSC умеет работать как с проприетарными базовыми станциями, так и с различным SDR оборудованием в связке с проектами OsmoBTS и OsmoTRX и базовыми станциями sysmocom.

OsmoBTS

Данный проект реализует протоколы взаимодействия базовой станции (BTS) с клиентами и BSC через интерфейсы Um (радиоинтерфейс) и A-bis/IP.

Для работы OpenBTS необходимо совместимое оборудование. Проект имеет модульную структуру, так что имеется возможность расширения текущего набора backend-ов. В частности, для работы с SDR оборудованием используется модуль osmo-bts-trx.

OsmoTRX

Имплементация GSM радио-модема, который реализует L1/PHY уровень базовой станции для различного SDR оборудования. Является веткой трансивера из проекта OpenBTS и позволяет использовать различное SDR оборудование с проектом OsmoBTS и модулем osmo-bts-trx.

osmo-sip-conector

При помощи этого проекта можно подключить GSM сеть, основанную на Osmocom, к VoIP сети.
Раньше для этих целей использовался софт LCR (Linux Call Router)

osmo-pcu, OsmoSGSN, OpenGGSN

Данные проекты позволяют добавить сервисы передачи данных (GPRS) в вашу GSM сеть.
Доступно не для всех типов оборудования.

OsmocomBB

Если OsmoBSC имплементирует стек протоколов GSM со стороны сети, то OsmocomBB делает то же самое со стороны клиентского оборудования, т.е. телефона

При помощи телефона на чипсете TI Calypso и ноутбука вы можете работать с GSM сетью, используя только FOSS софт.

Для взаимодействия с телефоном необходимо приобрести USB-TTL конвертер

И спаять такого рода провод из 2.5 мм джека и джемперов

SIMtrace

Используется для аудита безопасности SIM-карт. Используется вместе с SIMtrace Hardware Kit, который можно приобрести на сайте sysmocom.

Ограниченный функционал по тестированию SIM-карт также доступен через OsmocomBB и телефон на чипсете TI Calypso в качестве SIM-ридера.

Библиотеки Osmocom

Весь софт, представленный выше, использует для работы библиотеки libosmocore, libosmo-abis, libosmo-netif и другие. Они реализуют базовые функции GSM сети и вы, также, можете использовать их в своих разработках.

Инсталляция и настройка

Весь софт можно свободно скачать с официального сайта osmocom

https://osmocom.org/

Для сборки лучше всего подходит 32-битная ОС Ubuntu 14.04.
Если вы собираетесь компилировать git-ветки проекта OsmocomBB и прочих, которые давно не обновлялись, рекомендуется использовать старый toolchain и скрипт

Также, на официальном сайте можно найти инструкции по базовой настройке компонентов OsmoNTIB и сборке проектов группы Osmocom.

Возникающие вопросы нужно задавать через mail-листы

Информацию по спецификация GSM сети можно найти на сайте ETSI

Смежные проекты:

http://openbts.org/
https://fairwaves.co/
https://www.freecalypso.org/