Защита LoRa от глушения

Методы борьбы с радиоподавлением для LoRa mesh-сетей.

Встроенная устойчивость LoRa

LoRa использует CSS (Chirp Spread Spectrum) — линейно-частотную модуляцию. Энергия сигнала распределяется по всей полосе, что даёт ~20 dB выигрыша (processing gain) против узкополосных помех. Однако CSS уязвим к целенаправленному широкополосному глушению на известной частоте.

Возможности SX1262

  • CAD (Channel Activity Detection) — обнаружение LoRa-преамбулы и пакетов в канале. В Meshtastic реализован базово (SX126xInterface::isChannelActive())
  • LBT (Listen Before Talk) — проверка канала перед передачей, встроена в чип
  • LR-FHSS — Long Range Frequency Hopping, поддерживается аппаратно. Делит пакет на фрагменты (~50 мс) по разным частотам. Meshtastic не использует
  • RX Boosted Gain — повышенная чувствительность приёмника, выключена по умолчанию в Meshtastic
  • Частотный диапазон — аппаратно 150-960 МГц, можно передавать за пределами ISM (нелегально)
  • Быстрая смена частотыsetFrequency() ~40-50 мкс, позволяет сканировать десятки частот за сотни миллисекунд

RSSI-сканирование (спектроанализ)

SX1262 позволяет строить спектрограмму диапазона без дополнительного оборудования:

  1. setStandby() — остановить радио
  2. setFrequency(freq) — установить частоту
  3. setRx(10) — включить приём на 10 мс
  4. delay(1) — стабилизация RSSI
  5. getRSSI(false) — мгновенный RSSI (команда GetRssiInst в даташите)

~2-3 мс на точку. Диапазон 850-880 МГц с шагом 500 кГц = 60 точек = ~150-200 мс на sweep. Важно не сканировать когда isActivelyReceiving() — радио принимает пакет. После sweep восстановить исходную частоту + startReceive().

Методы защиты

1. Усиление параметров LoRa

Максимизация помехоустойчивости без смены частоты:

  • SF12 + BW 62.5 кГц + CR 4/8 — максимальная чувствительность, ~50 bps
  • RX Boosted Gain — дополнительные ~2-3 dB
  • Preamble 32 символа — надёжный захват сигнала
  • TX Power 20 dBm (максимум для RU)
  • Суммарный выигрыш ~15 dB. Не спасает от мощного глушения
  • Реализация в Meshtastic: запись manual-значений в config.lora + radioIf->reconfigure()

2. Adaptive Frequency Selection

Мониторинг RSSI по диапазону, уход на чистую частоту при обнаружении глушения.

  • Синхронизация без связи: SHA256(PSK + timeSlot) → индекс частоты. Все ноды с одинаковым PSK и GPS-временем независимо вычисляют одну частоту
  • timeSlot = floor(GPS_время / 30 сек) — 30-секундные слоты
  • Fallback без GPS: поиск частоты с минимальным RSSI в диапазоне
  • Эффективен против узкополосного и частично широкополосного глушения

3. FHSS (Frequency Hopping Spread Spectrum)

Переключение частоты по псевдослучайной последовательности.

  • Программный FHSS через setFrequency() (~40-50 мкс на переключение)
  • Требует синхронизации часов (GPS)
  • Референсы: SparkFun LoRaSerial, HopSync
  • Высокая сложность реализации

4. Мульти-транспорт

Несколько каналов связи: LoRa + WiFi + BT + Ethernet. Reticulum/Sideband поддерживает из коробки. Для Meshtastic — MQTT как запасной канал.

5. Физический уровень

  • Направленные антенны — узкий луч сложнее заглушить
  • Mesh-ретрансляторы — обход зоны глушения
  • Кастомные частоты — выход за пределы стандартных каналов Meshtastic

Типы глушения и защита

Тип глушенияОписаниеЗащита
УзкополосноеДавят конкретную частотуCSS (встроенное), Adaptive Frequency
ШирокополосноеЗаливают весь ISM-диапазонУход за пределы ISM, мульти-транспорт
Sweep jammingДинамически меняющаяся частотаFHSS (более устойчив чем CSS)
ReactiveГлушат при обнаружении передачиBurst transmission, стеганография

Обнаружение и пеленгация LoRa-сигналов

Обратная сторона защиты — понимание того, как LoRa-сигналы обнаруживаются и идентифицируются противником или системами радиомониторинга.

Как обнаруживают LoRa

CSS-модуляция имеет характерную спектральную сигнатуру — линейный chirp легко детектируется SDR-приёмником или специализированным анализатором. Алгоритм обнаружения:

  1. Оценка скорости chirp (μ) — произведения отсчетов сигнала со сдвигом → БПФ → спектральный пик на частоте, соответствующей μ. Определяет комбинацию SF/BW
  2. Корреляция с ЛЧМ-преамбулой — согласованный фильтр выделяет начало пакета. Преамбула LoRa (6+ восходящих chirp-символов) — основная уязвимость для обнаружения
  3. Частотно-временная синхронизация — нисходящие chirp-символы в конце преамбулы дают точную привязку
  4. Декодирование заголовка и сообщения — извлечение DevAddr, NetID, DevEUI

Весь процесс работает при SNR от -7.5 дБ (SF7) до -20 дБ (SF12) и устойчив к значительным частотным расстройкам дешёвых генераторов (~10⁻⁵).

Оборудование для обнаружения

  • АРСЕНАЛ-И (АО «ИРКОС», Россия) — портативный анализатор, поддерживает LoRaWAN, GSM, LTE, 5G, Wi-Fi, DMR, ZigBee. Извлекает идентификационные данные устройств
  • RWC5020B/RWC5021P (ReedwoodComm) — анализаторы LoRaWAN
  • C-1200 (GW Instek) — многоканальный анализатор
  • SDR (RTL-SDR, HackRF, LimeSDR) — универсальные приёмники, с open-source декодерами (gr-lora, rpp0/gr-lora) позволяют обнаруживать и декодировать LoRa

Что снижает вероятность обнаружения

  • Малая мощность — сокращает радиус обнаружения пеленгатором, но не спасает от близкого наблюдателя
  • Короткие пакеты — меньше time-on-air = меньше окно для захвата
  • Нестандартные частоты — выход за пределы ISM 868 МГц затрудняет поиск (анализаторы настроены на стандартные каналы)
  • Направленные антенны — боковые лепестки слабее, обнаружение возможно только в основном луче
  • FHSS — частые смены частоты затрудняют корреляцию преамбулы

Шифрование не защищает от обнаружения

AES-256 шифрует payload, но преамбула и заголовок физического уровня передаются открыто. Даже без расшифровки содержимого можно определить: факт передачи, положение передатчика (пеленгация), параметры SF/BW, адрес устройства (DevAddr).

Источники

Практическая реализация

На практике методы 1 и 2 можно реализовать модификацией прошивки Meshtastic: спектросканер для обнаружения глушения, усиление линка (SF12, max TX power), уход на чистую частоту.