August 3

Данные вещательных каналов сотовой вышки (2G/GSM и LTE): что можно получить и как декодировать

Сотовая вышка (BTS в 2G, eNodeB в LTE) непрерывно передаёт в эфир «системную информацию» — набор параметров, которые нужны телефону (UE), чтобы обнаружить сеть, синхронизироваться и подготовиться к подключению. Это не «перехват трафика» — это открытые широковещательные (broadcast) данные, которые предназначены для приёма всеми устройствами в зоне покрытия. Их декодирование полностью пассивно, законно в большинстве юрисдикций и не затрагивает трафик абонентов.

Ниже — какие каналы есть, что они несут и что из этого можно понять о вышке и сети.


1. Что вообще вещает вышка

Любая вышка передаёт на нисходящей частоте (downlink) набор логических каналов. Для пассивного наблюдателя важны два класса:

  • Каналы синхронизации — позволяют обнаружить сигнал, получить тайминг и идентификатор соты.
  • Вещательные каналы (BCCH в 2G, BCH/DL-SCH в LTE) — несут системную информацию (System Information) с параметрами сети.

Телефон при включении делает ровно то же самое: ищет сигнал синхронизации, читает системную информацию и решает, можно ли подключиться. С помощью SDR (Software Defined Radio) и открытых инструментов этот процесс можно повторить без телефона.


2. GSM (2G)

Каналы и сообщения

Вещательные данные GSM передаются на BCCH (Broadcast Control Channel), который передаётся непрерывно и служит стабильным опорным «маяком» соты. Основное содержимое BCCH — это сообщения System Information (SI), описанные в ETSI TS 144 018 (3GPP TS 44.018).

Что можно извлечь из BCCH

  • MCC (Mobile Country Code) — страна оператора
  • MNC (Mobile Network Code) — сам оператор
  • LAC (Location Area Code) — код зоны местоположения
  • Cell ID (CI) — идентификатор соты → вместе с MCC+MNC+LAC+CI образует CGI (Cell Global Identity)
  • ARFCN — номер радиоканала → пересчитывается в частоту
  • BSIC (Base Station Identity Code) — цветовой код вышки
  • CCCH конфигурация — сколько каналов paging, AGCH и т.д.
  • Параметры RACH — как телефону запрашивать доступ
  • Параметры выбора соты — минимальный уровень приёма (C1/C2), приоритеты
  • Список соседей — частоты соседних сот (для handover/reselection)
  • Признак GPRS/EDGE — поддерживает ли сота пакетную передачу
  • Cell Barring — заблокирована ли сота для доступа
  • Информация о 3G-соседях — частоты UMTS

Синхронизация

До чтения BCCH нужно сначала найти сигнал. В GSM для этого служат:

  • FCCH (Frequency Correction Channel) — чистый синус на фиксированном смещении, позволяет подстроить частоту приёмника.
  • SCH (Synchronisation Channel) — несёт BSIC и номер кадра, позволяет выровнять тайминг.

3. LTE (4G)

Каналы и сообщения

В LTE системная информация разделена на MIB (Master Information Block) и набор SIB (System Information Blocks), описанные в 3GPP TS 36.331.

MIB

Передаётся на PBCH (Physical Broadcast Channel) с периодичностью 40 мс (с повторениями каждые 10 мс). Содержит самый минимум:

  • DL Bandwidth соты (в числе Resource Blocks: 1.4 / 3 / 5 / 10 / 15 / 20 МГц)
  • PHICH конфигурация
  • SFN (System Frame Number)

SIB1

Передаётся на DL-SCH с периодичностью 80 мс (с повторениями). Несёт:

  • PLMN identity list (MCC+MNC, может быть несколько)
  • Tracking Area Code (TAC)
  • Cell Identity — 28-битный E-UTRAN Cell Identifier (ECI). В макросетях часто раскладывается на eNodeB ID (старшие 20 бит) и локальный/секторный Cell ID (младшие 8 бит), но это не универсальное правило
  • Cell bar status (доступна ли сота)
  • Cell selection info (минимальный требуемый уровень приёма, Q-RxLevMin)
  • p-Max — максимальная разрешённая мощность UE
  • Frequency band indicator
  • TDD конфигурация (если TDD)
  • SI-window length и schedulingInfoList — расписание остальных SIB
  • System info value tag — версия информации

Остальные SIB

Передаются в сообщениях SystemInformation (SI) по расписанию из SIB1:

SIB2

Общая конфигурация радио: параметры RACH, PRACH, UL-частота, ширина UL-канала

SIB3

Параметры reselection внутри той же частоты

SIB4

Информация о соседях intra-frequency

SIB5

Информация о соседях inter-frequency (другие частоты LTE)

SIB6

Информация о соседях 3G (UTRA)

SIB7

Информация о соседях 2G (GERAN)

SIB8

Информация о соседях CDMA2000

SIB9

Home eNodeB identifier (femtocell)

SIB10

ETWS — первичное уведомление (Earthquake & Tsunami Warning)

SIB11

ETWS — вторичное уведомление

SIB12

CMAS — коммерческие предупреждения (Cell Broadcast)

SIB13

MBMS/MBSFN-конфигурация

SIB14

Extended Access Barring (EAB)

SIB15

MBMS Service Area Info

SIB16

Информация о времени (GPS/UTC)


4. Как это декодируется на практике (концептуальный пайплайн)

textSDR-приёмник (I/Q) → настройка на частоту → синхронизация → демодуляция → L2/L3 декодирование → Wireshark / ASN.1

Инструменты для GSM (2G)

  • gr-gsm (GNU Radio GSM decoder) — основной инструмент. Компоненты:
    • grgsm_scanner — сканирование эфира, поиск вышек, вывод ARFCN, BSIC, Cell ID
    • grgsm_capture — запись сигнала в .cfile
    • grgsm_decode — декодирование BCCH, SDCCH и др. → GSMTAP в Wireshark
    • grgsm_livemon — интерактивный мониторинг одного канала в реальном времени
  • Wireshark — анализ декодированных пакетов с фильтром gsmtap
  • DragonOS — готовый Linux-дистрибутив со всем предустановленным

(gr-gsm Wiki: Usage, RTL-SDR Tutorial)

Инструменты для LTE (4G)

  • srsRAN (бывший srsLTE) — открытый стек 4G/5G. Утилита cell_search находит соты и получает параметры из MIB; для декодирования SIB нужны специальные receive-only конфигурации/примеры srsRAN, LTE-Cell-Scanner или обёртки вроде lte-sib-parser. srsue в режиме только приёма может парсить SIB2–SIB6.
  • LTE-Cell-Scanner — OpenCL-ускоренный сканер от JiaoXianjun: от I/Q-сэмплов до SIB-сообщений в ASN.1. Поддерживает FDD и TDD, RTL-SDR/HackRF/BladeRF.
  • lte-sib-parser — обёртка над cell_search и srsue для рекурсивного сканирования по SIB5.
  • free5GRAN — для 5G NR (MIB + SIB1).

(LTE-Cell-Scanner на GitHub, srsRAN docs, lte-sib-parser)


Что это даёт на практике

  • Идентификация оператора и страны по MCC+MNC.
  • Картирование покрытия — зная Cell ID + частоту + уровень сигнала, можно составить карту расположения и охвата базовых станций (без доступа к базам операторов). Сторонние проекты вроде OpenCelliD и CellMapper агрегируют именно такие данные.
  • Понимание топологии сети — какие соты являются соседями, какие частоты используются в зоне, какие поколения (2G/3G/LTE) присутствуют.
  • Оценка нагрузки — косвенно, по количеству paging-сообщений (но это уже не чисто broadcast, аpaging-канал, требующий чуть более активного прослушивания CCCH).
  • Проверка конфигурации — для исследовательских и образовательных целей: какая ширина канала, какие параметры RACH, закрыта ли сота и т.д.
  • Косвенная оценка активности — по объёму paging-трафика можно грубо судить о нагрузке, но это не системная информация и не позволяет отслеживать конкретных абонентов.

6. Чего из broadcast-данных получить нельзя

Важно зафиксировать границы:

  • GPS-координаты вышки не передаются в эфир. Координаты можно определить только косвенно — по триангуляции сигнала или по внешним базам данных (OpenCelliD).
  • Содержимое звонков, SMS и интернет-трафика — не относится к broadcast и может быть зашифровано. В GSM может использоваться A5/0 (без шифрования), A5/1 или A5/3; в LTE — SNOW 3G или AES. Перехват и расшифровка трафика выходят за рамки данной заметки.
  • IMSI абонентов не передаётся в broadcast/System Information. В 2G/3G/LTE постоянный идентификатор может появляться в отдельных процедурах идентификации до установления защиты, но это не вещательные данные. В 5G для этого используется SUCI.
  • Точная нагрузка/количество абонентов — broadcast не несёт такой информации. Paging-канал может дать лишь грубую оценку совокупной активности сети и не является средством отслеживания конкретных абонентов.
  • Точное местоположение абонента — требует данных из ядра сети (core network) или активного слежения за конкретным устройством, что выходит далеко за рамки пассивного декодирования вещательных каналов.