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

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

  • Затруднение
  • Подмена данных

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

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

О подмене или глушении сигналов GNSS

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

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

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

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

Проверьте наличие подмены или помех GNSS.

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

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

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

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

Проверка в реальном времени на подмену и глушение сигнала.

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

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

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

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

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

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

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

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

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

Оставьте свой отзыв о функции Spoof/Jam , используя наш общедоступный трекер проблем .