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

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

  • глушение
  • Подмена

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

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

О подмене или помехах 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 в реальном времени

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

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

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

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

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

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

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

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

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

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

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

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

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