Обнаружение помех и спуфинга GNSS

Помехи ГНСС можно разделить на следующие две категории:

  • Глушение
  • Спуфинг

Атаки с использованием глушения включают в себя передачу мощных радиосигналов в том же диапазоне частот, что и ГНСС, что может заглушить относительно более слабые сигналы, передаваемые спутниками ГНСС. Это может помешать приёмникам ГНСС, включая телефоны, определить своё местоположение.

Спуфинг — это более сложная атака, при которой передаются поддельные сигналы, выдаваемые за настоящие сигналы ГНСС. Эти поддельные сигналы могут обмануть ГНСС-приёмник, заставив его вычислить местоположение или время, сильно отличающиеся от реальных, что может сбить с толку картографические и навигационные приложения и выдать пользователям неверную информацию.

О спуфинге или глушении сигналов ГНСС

Уровень сигнала или отношение несущей к шуму (C/N0) сигнала, а также автоматическая регулировка усиления (АРУ) радиоприемника GNSS в телефоне могут быть хорошими индикаторами помех.

АРУ имеет тенденцию к снижению при обнаружении спуфинга или глушения. При приёме сильных радиоволн радиостанция уменьшает усиление усилителя (АРУ), чтобы отрегулировать мощность принимаемого сигнала.

Сравнение уровней сигнала, указывающее на помехи
Рисунок 1. АРУ падает во время помех (красная область) и возвращается к нормальному уровню после их устранения (зелёная область). (Источник изображения: https://doi.org/10.33012/navi.537)

Однако поведение C/N0 меняется при глушении и спуфинге. При глушении уровень шума, наблюдаемый радиостанцией, значительно выше обычного, поэтому знаменатель отношения несущей к шуму увеличивается, а значение C/N0 падает. При спуфинге происходит обратное: поскольку передаётся ложный сигнал, достаточно громкий, чтобы заглушить реальный сигнал со спутника, общая мощность сигнала становится высокой, и, следовательно, C/N0 увеличивается.

Проверьте наличие спуфинга или глушения сигналов GNSS

Вы можете использовать вкладку «Spoof/Jam» в приложении GnssLogger , чтобы исследовать влияние окружающей среды на C/N0 и AGC в режиме реального времени.

Графики АРУ и C/N0 в реальном времени

На вкладке «Подмена/Глушение» отображается график AGC и C/N0 в реальном времени для каждого созвездия и диапазона GNSS (например, «GPS L1» или «G:L1:», «Galileo E5a» или «E:E5A:»).

График AGC и C/N0 для каждого созвездия и диапазона GNSS.
Рисунок 2. АРУ и отношение C/N0 снижаются, когда телефон находится рядом с Wi-Fi-роутером (красный овал). Средние значения трёх верхних сигналов для каждого созвездия и диапазона показаны пунктирными линиями. АРУ для каждого созвездия и диапазона, представляющее собой единое значение, показано сплошной линией. Обведённый красным кружком участок на графике показывает, как АРУ и отношение C/N0 снижаются, когда телефон находится рядом с Wi-Fi-роутером, что приводит к появлению помех.

Проверка в режиме реального времени на наличие спуфинга и глушения

Под графиком AGC и C/N0 в реальном времени приложение отображает ряд автоматизированных проверок данных, которые выявляют условия, связанные с помехами GNSS.

Интерфейс пользователя отображает признаки состояний, потенциально вызванных спуфингом и глушением.
Рисунок 3. Автоматизированные проверки могут выявить условия, потенциально вызванные спуфингом и глушением.

В разделе «Проверка глушения» приложение проверяет, изменилось ли среднее значение C/N0 и AGC за последние 10 эпох по сравнению с предыдущими 50 эпохами. Одновременное снижение C/N0 и AGC может быть признаком глушения сигналов ГНСС. При обнаружении такой ситуации на карте отображается сообщение FAIL (Сбой) с дополнительной информацией:

Условия, потенциально вызванные помехами ГНСС.
Рисунок 4. Сбой, указывающий на то, что обнаружены условия, потенциально вызванные помехами ГНСС.

Первая карта в разделе проверок подмены также проверяет C/N0 и AGC, но ищет одновременное увеличение C/N0 и падение AGC.

Вторая проверка, связанная со спуфингом, ищет разницу более чем в одну секунду между временем GNSS, вычисленным на устройстве, и временем, полученным через интернет с сервера протокола сетевого времени (NTP) (сетевое время - время GNSS). Большая разница может указывать на недействительность вычисленного времени GNSS.

Советы, рекомендации и предостережения

Вот несколько моментов, которые следует учитывать при использовании функции Spoof/Jam в GnssLogger:

  • Это экспериментальная функция — по мере того, как мы узнаем больше о характеристиках AGC на различных устройствах Android, точные алгоритмы, используемые для подмены и глушения, могут обновляться.
  • Эта функция не отслеживает все случаи спуфинга и глушения — проверки графиков и данных в реальном времени упрощают обнаружение свойств данных в реальном времени, но недостаточно надежны для обнаружения каждого примера спуфинга или глушения.
  • Эта функция предназначена для обнаружения изменений в C/N0 и AGC — если вы открываете приложение в условиях спуфинга или глушения, а C/N0 и AGC остаются постоянными, спуфинг и глушение не обнаруживаются.
  • Серверы NTP не обязательно безопасны — сетевое время также может быть подделано.

Оставьте отзыв о функции Spoof/Jam, используя нашу публичную систему отслеживания ошибок .