Подделка сигнала GPS (GPS-спуфинг)
Спутниковая навигационная система представляет собой сложный комплекс, однако логика работы GPS, с точки зрения конкретного приёмника, весьма проста. Приёмник, измеряя разницу между временем поступления сигнала от спутника и временем генерации этого сигнала, определяет расстояние до спутника-источника. Так как координаты спутников в заданный момент времени известны с высокой точностью, приёмник может вычислить собственные координаты. Упрощённое математическое описание: каждый спутниковый сигнал даёт одно уравнение, определяющее геометрическое место точек, где может находиться приёмник; три спутника – позволяют построить систему из трёх уравнений, и, таким образом, найти точные координаты в пространстве (“пограничные” неоднозначности оставляем за скобками). Для вычислений требуется точное время, а большинство приёмников GPS не содержат достаточно точных встроенных часов, поэтому, для удаления неоднозначности по времени, требуется ещё одно уравнение, позволяющее получить точное время – это уравнение даёт четвертый спутник. Таким образом, для высокоточного определения координат приёмнику достаточно сигналов четырёх спутников. Естественно, на практике присутствуют помехи и различные аппаратурные искажения, но логика именно такая.
В GPS не предусмотрено аутентификации навигационной информации. За исключением военного сигнала, который сейчас не станем рассматривать, никакой защиты не предусмотрено. То есть, гражданский GPS-приёмник ориентируется только на полученные “из антенного входа” данные. Уже исходя из этого несложно догадаться, что если атакующая сторона имеет возможность управлять электромагнитной картиной на антенне приёмника, то она может “нарисовать” для этого приёмника любую виртуальную конфигурацию спутников и, в общем случае, приёмник не сможет отличить виртуальные координаты от подлинных. Такая активная помеха называется GPS-спуфингом, осуществимость продемонстрирована довольно давно. (На практике, из-за того, что “нарисованная” картина не бывает идеальной, некоторые возможности обнаружить спуфинг у приёмника есть.)
Так как сигналы гражданского GPS полностью открыты, то постановщик помехи может генерировать их с опережением по времени. То есть, можно предсказать, каким будет сигнал в заданной точке пространства в заданное время. Этот момент позволяет компенсировать затраты времени на генерацию динамического поддельного сигнала, да и вообще – практически полностью снимает ограничения для системы спуфинга: она может имитировать любые конфигурации спутников и приёмника (военный сигнал тут защищён существенно лучше: спуфинг оказывается ограничен воспроизведением ранее полученных сигналов, но с задержкой).
Система спуфинга будет иметь следующую базовую конфигурацию: генератор сигнала GPS передаёт имитацию сигнала нескольких спутников через антенну, на частоте GPS (в этой системе одна частота используется всеми спутниками, сигналы разделяются при помощи кодирования); при условии, что уровень имитирующего сигнала несколько превышает уровень сигнала реальных спутников, GPS-приёмник будет “захватывать” поддельный сигнал и вычислять положение на его основе. В данной схеме все приёмники, попавшие в зону действия спуфинга, вычислят одни и те же координаты (окажутся в одной и той же “виртуальной” точке пространства), при этом у приёмников, находящихся (реально) в разных местах, автоматически возникнет небольшое рассогласование по времени. Сигнал GPS – периодический, соответственно, даже “статический” спуфинг требует динамической передачи одних и тех же по фактическому содержанию навигационных сообщений. Помеху можно сделать уводящей – такая помеха имитирует перемещение приёмника по заданной спуфером траектории.
Сигнал GPS спроектирован таким образом, чтобы сделать возможным приём на слабом уровне, ниже шумов. Приёмники используют тот или иной коррелятор, позволяющий получить достаточное соотношение сигнал/шум. Это, с одной стороны, означает, что сигнал спуфинга может совсем незначительно превышать мощность подлинного сигнала – коррелятор всё равно “зацепится” именно за него (другими словами: обнаружить факт наличия спуфинга по возросшей мощности сигнала – не выйдет). С другой стороны, GPS-приёмник должен захватить сигнал (это известный всем пользователям GPS процесс), и в дальнейшем работать с захваченными параметрами, сопровождая их. Этот момент сопровождения имеет важное значение: активную уводящую помеху конкретному приёмнику можно поставить так, что срыва сопровождения не произойдёт. Однако в случае с более простым спуфингом, приёмник, оказавшись в зоне действия активной помехи, потеряет сопровождаемый код и будет вынужден захватывать спуфинг-сигнал заново – этот процесс будет заметен. Постановка скрытной уводящей помехи гораздо сложнее, чем наведение статичного спуфинга. А статичный спуфинг будет проявляться в потере сигнала, с последующим восстановлением в совсем другой (имитируемой) точке пространства. Большинство навигаторов устроены крайне просто, поэтому отметка на карте перепрыгнет в произвольное место, заданное системой спуфинга (хотя этот прыжок мог бы обнаружить даже самый примитивный алгоритм).
Для системы спуфинга гражданского сигнала не имеет значения, в какую именно точку пространства “перемещать” попавшие в зону действия помехи устройства: как было отмечено выше, из-за того, что гражданский сигнал никак не защищён, его можно предвычислять без ограничений на достаточно больших интервалах времени.
Технически, система спуфинга может быть построена на основе лабораторного генератора сигналов GPS – такие специализированные устройства есть, они позволяют генерировать картину для большого числа спутников, а предназначены для отладки GPS-приёмников. В простейшем случае, достаточно вывести сигнал генератора на внешнюю антенну. Возможно построение системы спуфинга на основе того или иного набора SDR (Software-defined radio – программно-определяемая радиосистема), для них есть соответствующее программное обеспечение. Примерные затраты (на систему с SDR) – не более 5 тыс. долларов США. Естественно, есть и готовые решения именно для спуфинга.
Нужно отметить, что отдельную проблему представляет создание поля спуфинга, прозрачно действующего на различные устройства, находящиеся, например, в условиях городской застройки: здесь будут мешать отражения сигнала помехи зданиями, а также возникающие радиотени, конфигурация которых для подлинного сигнала, поступающего со спутников, и сигнала помехи – сильно различается.
Не менее интересен и аспект постановки помехи группе приёмников GPS, с сохранением их пространственной конфигурации относительно друг друга. Предположим, что у нас есть три приёмника, которые находятся на расстоянии нескольких сотен метров друг от друга, и расстояния между ними известны. В случае обычного GPS-спуфинга, после того, как приёмники захватят ложный сигнал, они “переместятся” в одну точку. Этот факт может являться основой для построения системы обнаружения спуфинга. Постановка помехи с сохранением конфигурации группы – оказывается чрезвычайно сложной задачей, решаемой, скорее, теоретически, потому что потребуется вычисление индивидуальных поддельных сигналов для каждого приёмника, а также корректная доставка этих сигналов до антенн, что требует точной информации о местоположении последних.
Для обнаружения GPS-спуфинга предложены различные методы. Например, возможно выделение ложного сигнала на основании определения направления на его источник. Определить направление можно сравнивая фазы сигнала на нескольких антеннах. Можно использовать в качестве дополнительного источника информации доплеровский сдвиг частот, это актуально для движущихся объектов. Есть решения, основанные на использовании военного сигнала GPS в качестве опорного (без необходимости знания секретного ключа) – здесь проводится обнаружение расхождений между принятым гражданском сигналом и параметрами военного. (Военный канал, впрочем, может быть просто задавлен шумом.) Достаточно очевиден вариант с инерциальной навигационной системой: такая система автономна, поэтому может обнаружить противоречие в данных, поступающих от GPS-приёмника.
А вот каких-то простых методов противодействия спуфингу – нет. Его только можно относительно надёжно обнаружить, в простых случаях. Впрочем, типичный “навигатор в смартфоне” не умеет делать даже этого, а пользователи продолжают ошибочно считать GPS надёжной системой и слепо полагаться на её данные.
Адрес записки: https://dxdt.ru/2016/10/24/8151/
Похожие записки:
- Такси-роботы едут кругами
- DNS-over-TLS как инструмент трансляции доверия в DNSSEC
- Симметрии и дискретное логарифмирование
- Квантовые компьютеры, АНБ и битовые строки
- Автомобили, "подключенные" для сбора данных
- DNS-over-TLS на авторитативных серверах DNS
- Синхронное время и "тики"
- Распознавание TLS-клиентов в трафике
- Авария такси-робота в Калифорнии и новые риски
- Kyber768 и длина сообщений TLS
- High-end "преамп" и его ремонт