Один из интересных аспектов GPS-спуфинга состоит в том, что для определения результата действия подменного сигнала нужно учитывать возможную коррекцию, выполняемую тем аппаратом, система управления которого попала под спуфинг. Простейший пример: предположим, некоторый летающий дрон, согласно команде, должен висеть на одном месте; точка фиксируется по сигналу GNSS (GPS), но такое зависание подразумевает непрерывную подстройку и аэродинамическую коррекцию – необходимо, как минимум, компенсировать снос ветром; тогда, если спуфинг-сигнал уводит координаты, получаемые приёмником GPS, то система управления начнёт компенсировать возникающее ложное отклонение – аппарат придёт в движение, несмотря на то, что система будет полагать, что таким образом сохраняет координаты и “висит” на месте.

Движение будет соответствовать спуфинг-сигналу, но, так сказать,с точностью до знаков: если ложный сигнал уводит координаты на восток, то аппарат полетит на запад. Понятно, что “фиксированная помеха” с простой, не изменяющейся, подменой координат, тоже приведёт к похожим результатам. Однако с помощью динамической помехи – можно плавно управлять аппаратом. Конечно, постановка подобной уводящей помехи – сложная задача, и отчасти тут всё равно могла бы помочь инерциальная система (в случае “фиксированной помехи” – инерциальная система оказывается куда более эффективной в роли элемента противодействия). Тем не менее, если верить сообщениям в СМИ, схожая ситуация недавно сложилась с тракторами, управляемыми по сигналам GPS, уже только под воздействием обычных помех, а не динамического спуфинга.

О принципах, на которых работает GPS-спуфинг (или GNSS-спуфинг) – я довольно подробно писал почти восемь лет назад.



Комментировать »

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

“Так вот, если у вас есть устройства “на местах”, которые приносят дополнительную информацию, а не только “координатные данные” GPS, то можно на центральном сервере выстраивать динамику изменения реального навигационного поля по сравнению с моделью, учитывающей только положение и состояние спутников. Это позволяет не просто получить корректирующую величину для всех участников системы, но также увидеть возникающие на местах пространственные дефекты и искажения с развёрткой по времени (то есть, не просто спуфинг), что весьма ценно.”

Вот, судя по описанию, сходным, – но не совсем похожим на описанный выше, – образом, и работает сервис от Flightradar24, показывающий помехи GNSS.

Много интересной информации в реальном времени может, – в теории, – вычислять, например, “Яндекс” со своими приложениям на смартфонах. Впрочем, для обработки данных потребуется задействовать довольно сложный вычислительный механизм, вряд ли удастся обойтись “обучением нейронки”.



Комментировать »

Логичное развитие навигационных приложений в смартфонах – использование, в дополнение к ненадёжной спутниковой навигации, сети наземных маячков: Google уже встраивает поддержку в своё приложение. Понятно, что концепция совсем не новая (наоборот – это возврат к системам, действовавшим до появления GPS), но тут речь про массовый заход со стороны потребительских устройств с GPS, а это уже новое направление. Пока что речь про маячки в туннелях, но, понятно, подход легко переносится и на другие ситуации.



Комментарии (1) »

Из очевидных, – казалось бы, – особенностей обработки радиосигналов: определять координаты (точечного) источника радиосигнала можно и при помощи одного приёмника, если этот приёмник движется, знает свою траекторию, а также знает параметры сигнала источника в точной привязке ко времени. Тогда можно вычислить рассогласование (по фазе) между сигналами в разных точках траектории приёмника, это рассогласование позволит построить “фазовый фронт”, а по его “кривизне” уже можно рассчитать координаты источника. Грубо говоря, если передатчик-пищалка излучает “чистую синусоиду”, то, определив фазу в одной точке, можно переместить приёмник и посчитать рассогласование фаз между этими точками (но, конечно, нужно учитывать, что не произошло перехода через целый период). На этом же геометрическом принципе основано синтезирование антенных апертур.

Вовсе не обязательно зацепляться именно за “чистые гармоники”, как в простом примере выше, годится произвольный сигнал, характеристики которого известны заранее в развёртке по времени. То есть, фиксируется опорный кадр времени “внутри сигнала” в начальной пространственной точке приёмника, потом новые кадры, записанные в других точках, сдвигаются по времени к опорному кадру – сдвиги как раз и дают нужные данные: разницу в расстоянии до источника. Ну или, если хотите, можно считать, что в начальной точке синхронизируется временная шкала, а потом измеряется расхождение в других точках (это основа радионавигации). Да, схема полностью полагается на предсказуемость свойств сигнала, потому что в двух разных точках этот сигнал измеряется в разное время. И если сигнал передатчика совсем уж непредсказуем, то возникнут проблемы, поскольку непонятно, что с чем сравнивать, и таки придётся использовать несколько приёмников с синхронизацией внешнего времени. Однако очень многие современные сигналы, – в том числе, носители “цифровых каналов связи”, – имеют “внутри” подходящие метки – синхроимпульсы различного типа.



Комментировать »

В продолжение записки про OBD-шину и приложение-навигатор “Яндекса”, которое страдает от помех GPS (или помех другой системе спутниковой навигации). Я несколько лет назад описывал, как, в принципе, работает GPS-спуфинг. Что касается данных OBD в этом контексте (оставим безопасность систем автомобиля для другой записки): OBD позволяет, например, получить в реальном времени данные о (расчётной) скорости движения автомобиля – это уже довольно много. То есть, если навигационный приёмник попал “под помеху”, то, предположим, оказывается, что по данным OBD автомобиль движется, а согласно сигналу спутниковой навигации – стоит на месте. Соответственно, данные о скорости из OBD позволяют центральному серверу не только обнаружить спуфинг, но и получить некоторые характеристики сигнала помехи, сравнивая данные, поступающие от многих приложений, которые имеют доступ к локальным данным OBD. Спуфинг, конечно, можно обнаружить и без OBD, я не так давно писал:

Так вот, если у вас есть устройства “на местах”, которые приносят дополнительную информацию, а не только “координатные данные” GPS, то можно на центральном сервере выстраивать динамику изменения реального навигационного поля по сравнению с моделью, учитывающей только положение и состояние спутников. Это позволяет не просто получить корректирующую величину для всех участников системы, но также увидеть возникающие на местах пространственные дефекты и искажения с развёрткой по времени (то есть, не просто спуфинг), что весьма ценно.

Однако каждый дополнительный источник информации тут сильно помогает. Ну, возможно, сравнительный анализ данных от навигаторов – реализовать слишком сложно, так как это требует большой разработки. А вот показатель скорости, поступающий от автомобиля через OBD, предоставляет существенно более простой способ обнаружения, хотя бы, сбоев навигации. Выстроить эффективную коррекцию по данным OBD вряд ли получится, поскольку слишком разнится качество данных, но предоставить минимальные поправки и визуальный флаг наличия помехи в интерфейсе – нетрудно. В качестве бонуса – полные данные о конкретном автомобиле (удобно наполнять базу – можно техническую проверку проводить, формировать отчёты) и даже возможность, потенциальная, прямо влиять на работу его агрегатов.



Комментировать »

Пишут, что “Яндекс” рассылает концепцию некоторого устройства, которое подключается к информационной/управляющей системе автомобиля (OBD) и использует данные для “коррекции GPS” (на случай сбоев) в навигационном приложении, работающем на смартфоне. Это, конечно, вовсе не будет “инерциальной навигационной системой”, но помочь может. Вот только сама идея предоставить прямой и максимально полный дистанционный доступ к электронной системе автомобиля некоторому внешнему сервису – имеет много побочных эффектов. Так что, возможно, это какое-то ошибочное сообщение, приписываемое “Яндексу”. Посмотрим.



Комментировать »

Сообщают, что “Яндекс” в своих навигационных приложениях начал как-то учитывать влияние спуфинга GPS, используя дополнительные данные (WiFi и пр.). Кстати, я в 2018 году писал, что “центральный сервер мог бы определять наличие GPS-спуфинга на основе анализа данных, поступающих от множества устройств”. Вообще, не ясно, занимается ли чем-то таким сервис “Яндекса”, но если у вас есть множество устройств и центральная точка сбора данных, то можно разные интересные вещи измерять.

Так, навигационное поле, формируемое гражданским сигналом GPS, можно достаточно точно рассчитывать для произвольной точки поверхности Земли, в том числе, с опережением или отставанием по времени. Для этого не нужно устанавливать приёмник в той точке, для которой выполняется моделирование. Да, тут необходимо подчеркнуть, что это всё за вычетом искажений, вносимых постройками и пр. – но, собственно, в этом и состоит интересная часть. К сожалению, от обычного смартфона не удастся получить детальной информации о сигнале GPS, как его видит приёмник, но, тем не менее, часть данных, коррелирующих с сигналом, всё же приходит. Смартфон может дополнительно собирать сведения о сигналах WiFi, о GSM, о передатчиках Bluetooh (и не только). Так вот, если у вас есть устройства “на местах”, которые приносят дополнительную информацию, а не только “координатные данные” GPS, то можно на центральном сервере выстраивать динамику изменения реального навигационного поля по сравнению с моделью, учитывающей только положение и состояние спутников. Это позволяет не просто получить корректирующую величину для всех участников системы, но также увидеть возникающие на местах пространственные дефекты и искажения с развёрткой по времени (то есть, не просто спуфинг), что весьма ценно.



Комментировать »

Пишут, что в Штатах в проект бюджета минобороны на 2021 год включили статью, посвящённую созданию навигационных систем, которые не зависят от GPS. Соответствующие системы должны быть предложены в 2023 году, то есть, совсем скоро. Озвученная причина – рост эффективности помехопостановщиков GPS: действующие в разных “горячих точках” силы и формирования регулярно сталкиваются с практической бесполезностью навигационных приборов, полагающихся на GPS, в том числе, на военный сигнал. Несколько лет назад я довольно подробно описывал то, как устроен спуфинг GPS. Не приходится сомневаться, что принципы спуфинга остались те же, а вот аппаратурная составляющая за это время наверняка сильно развилась.

Вообще, благодаря достижениям современной твердотельной электроники, сделать точный, надёжный, компактный и относительно дешёвый навигатор, основанный на приёме сигнала GPS – гораздо проще, чем, например, независящую от внешних сигналов инерциальную систему. Поэтому все держатся за GPS (ну и, опять же, финансирование создания и выведения на орбиту спутников, но это из другой области история). Основной проблемой для инерциальных систем является быстро накапливающаяся погрешность, причём, чем дешевле, меньше и проще система, тем быстрее падает точность. Скорее всего, возможны довольно устойчивые варианты на базе “микромашин”, но их только разрабатывают. Поэтому интересны комбинированные решения, где неточная инерциальная система регулярно и часто (например, раз в минуту) корректируется по внешнему сигналу, который, к тому же, сложно испортить помехой.

Одним из весьма эффективных вариантов оказывается использование в качестве источника такого сигнала большого количества космических аппаратов с общими синхронными часами, находящихся на низкой орбите, с которыми возможен обмен широкополосными сигналами. То есть, это уже не GPS. Это – в точности схема “спутникового Интернета”, предложенная, например, SpaceX (Starlink).

Как может помочь такая схема? Во-первых, есть возможность использования широкого спектра частот для связи со спутниками (в обе стороны, заметьте) – это означает, что можно применять замаскированные шумоподные сигналы: коррелятор, которому известен действующий секретный ключ, сможет успешно выделять и накапливать полезный сигнал спутника, распределённый псевдослучайным образом по полосе в несколько сотен мегагерц. Во-вторых, наличие на спутниках антенн с активным синтезом апертуры позволяет формировать достаточно узкие лучи – эти лучи могут быть направлены конкретному наземному пользователю, доставляя персональный сигнал (понятно, что точность формирования пятна приёма – сечения луча – всё равно, даже в идеальных условиях, составит сотни метров, но этого более чем достаточно). В-третьих, наличие широкого и доступного всем наземным терминалам (а не только станциям управления) канала в сторону спутников поможет активной коррекции сигнала в ответ на изменение обстановки в эфире, наблюдаемой конкретным приёмником.

Разберём все эти аспекты подробнее. Первый аспект – широкополосный сигнал. Современный сигнал GPS – узкополосный, более того, он использует кодовое разделение для каналов разных спутников. Широкая полоса делает возможным накопление коррелятором сигнала не только по времени, но и по частоте, а это существенно увеличивает возможности по повышению чувствительности. Такой “двумерный” подход вообще несравнимо богаче в плане кодирования, чем “одномерное” накопление по времени. При этом потенциальный помехопостановщик оказывается в сложной ситуации, так как ему нужно одновременно закрывать большую полосу, что требует много энергии даже в том случае, если помеха работает избирательно. Вообще, точно такая же техника опережающей отстройки от активных помех давно известна в радиолокации – излучатель локатора передаёт зондирующий сигнал на нескольких несущих частотах, при этом использует отражённый сигнал, который соответствует только одной из этих частот (ну или некоторой сложной комбинации нескольких).

Аспект второй – формирование узкого луча для канала в сторону наземной станции. Главное преимущество состоит в том, что помехопостановщику становится трудно принять тот же сигнал, который получает приёмник наземной станции. Конечно, всегда есть отражения, “боковые лепестки”, вторичное излучение и прочие эффекты, но их анализ в целях выявления полезного кода – несравнимо сложнее, чем приём общего сигнала. Вспомним, что сигнал ещё и кодируется индивидуально, с псевдослучайной заменой частот. Дополнительное преимущество – наземный приёмник получает больше возможностей по отстройке от простых широкополосных помех на основании направления на источник помехи. Отдельно нужно рассматривать возможность согласованного формирования лучей несколькими спутниками – тут и точность формирования “пятна” можно повысить, и защиту сигнала улучшить.

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

Именно эти три аспекта, если их сложить вместе, позволяют создать хорошо защищённую от помех точную навигационную систему. Скорее всего, как отмечено выше, система будет комбинированной: спутниковый сигнал служит для коррекции автономных инерциальных систем. При этом спутниковые терминалы, требующие достаточно больших по размерам и тяжёлых антенн (ФАР), могут находиться на опорных станциях, например, на автомобилях или самоходных роботах, а носимый вариант навигатора, также имеющий встроенную инерциальную систему, будет взаимодействовать по радио с опорной станцией.

Что касается расположения спутников на низкой орбите: это снижает задержки, как и в случае организации интернет-доступа, а большое количество спутников (также диктуемое низкой орбитой) добавляет ещё один слой перемешивания: приёмник может выбирать сложные конфигурации спутников, используемых им в данный момент.

Естественно, Starlink – только один из примеров реализации подходящей технологии.

(Кстати, в 2012 году я писал о гипотетическом навигаторе, работающем без GPS.)



Комментарии (1) »

Что может сделать небольшой “гражданский дрон” (беспилотник) в случае, если из-за помех нет связи с пультом управления и также потерян сигнал спутниковой навигации? Понятно, что самое простое – это попытаться относительно медленно спуститься вниз и приземлиться. Такой вариант обычно и запрограммирован. Но оператору хотелось бы, чтобы дрон вернулся к нему в любом случае, если не точно в точку старта, то хотя бы оказался неподалёку от неё.

Понятно, что если навигационная полностью система полагается на сигналы спутников (пусть это GPS, не так важно), то в условиях, когда эти сигналы недоступны из-за помех, беспилотник уже не может не то что вернуться в точку старта, но и нормально продолжать полёт. Конечно, проблему решает автономная инерциальная система навигации. Это самый надёжный вариант.

Качественная и надёжная инерциальная система заметно повысит стоимость беспилотника: комплектующие для точной и лёгкой системы могут оказаться дороже, чем сам аппарат-носитель – речь ведь идёт об относительно недорогом устройстве. Но, с другой стороны, можно взять дешёвые массовые сенсоры, используемые в смартфонах.

Да, точность в таком случае окажется низкой, будет накапливаться ошибка. Накопление ошибок – это основная проблема инерциальной навигации (для всех аппаратов, а не только для “гражданских беспилотников”). Даже небольшое, но непредсказуемое, “мгновенное отклонение” показателей датчиков, за несколько десятков минут полёта с интенсивным маневрированием вполне может привести к уводу измеряемых координат на сотни метров от реального положения аппарата. Но нам-то нужно решить довольно узкую задачу: автономное возвращение к оператору в критическом случае. Так что условия использования инерциальной навигации – тепличные: во-первых, пока работает спутниковая навигация, инерциальную систему можно эффективно корректировать, а история коррекции поможет фильтровать ошибки и после того, как аппарат перейдёт на полностью автономный полёт; во-вторых, возвращение к оператору должно происходить кратчайшим путём и без излишнего маневрирования, поэтому, в большинстве сценариев, автономный полёт займёт всего несколько минут, а аппарат будет стараться сохранять оптимальные для обеспечения точности “аварийной навигации” параметры ускорения. В общем, даже простая и не очень точная инерциальная система – справится.

Тут есть ещё один, весьма важный, момент: дрон мог находиться за каким-то препятствием, например, за углом здания – поэтому вернуться по прямой не выйдет, а для того, чтобы проложить безопасную траекторию, нужно знать, где возможен безопасный полёт. Это означает, что на борту требуется карта, на которой обозначены коридоры безопасного возвращения. Это, впрочем, не слишком сложная проблема: просто, перед началом полёта, придётся разметить эти самые коридоры, ну или надеяться на то, что дрону повезёт.

Современный дрон содержит камеру, часто – не одну. Это хорошее подспорье для создания автономной навигации. Так, параметры движения можно определять по перемещению в поле зрения объектива “текстур” поверхности, над которой происходит полёт. Этот приём некоторые разработчики любительских дронов уже используют. Другой вариант – применение простого машинного зрения: у оператора может быть с собой некая визуальная метка (табличка с QR-кодом, например), в случае потери связи, оператор показывает эту метку в сторону дрона – если последний находится в прямой видимости, то он сможет обнаружить метку с помощью камеры и лететь в её сторону (дальность легко вычислить, зная оптические параметры объектива). Понятно, что метка должна быть не слишком маленькой, а объектив и камера – позволять её обнаружить.

Неплохим развитием этой идеи является какой-либо активный оптический канал, например, лазерный фонарик, который светит в сторону дрона некоторым модулированным сигналом. Во-первых, подобному сигналу на практике сложно поставить помеху (из-за того, что приёмник может быть выполнен узконаправленным, а помехопостановщик не сможет принимать подавляемый сигнал, если только не находится между дроном и источником, либо не видит каких-то отражений); во-вторых, сам сигнал может передавать дрону значение дальности до источника, а азимуты – определит приёмник.

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



Комментарии (1) »

В заметке, объясняющей, как работает GPS-спуфинг (подделка сигнала GPS, либо другой спутниковой навигационной системы), упомянута группа приёмников, попавших под одну и ту же помеху. Например, несколько приёмников под воздействием простого спуфинга (из одного источника) переместятся в одну виртуальную точку, но, так как расстояние от конкретного приёмника до источника помехи может различаться, получат рассогласование GPS-времени. Это рассогласование можно обнаружить.

Посмотрим на онлайн-навигаторы, работающие на базе смартфонов. Эти приложения отправляют данные о местоположении и параметрах движения конкретного смартфона на центральный сервер (стандартная практика, позволяющая, например, собирать информацию о транспортном трафике). Соответственно, центральный сервер мог бы определять наличие GPS-спуфинга на основе анализа данных, поступающих от множества устройств. Скажем, несколько сотен устройств, согласно данным GPS, внезапно и синхронно “конденсировались” в одну точку – это уже надёжный признак, что все они оказались в зоне спуфинга. Смартфон видит дополнительные данные, которые можно использовать для геопривязки: идентификаторы базовых станций GSM, параметры точек доступа WiFi. Перепрыгнувшие в одну точку устройства, которые в реальности находятся достаточно далеко друг от друга (сотни метров), будут видеть различную конфигурацию этих вспомогательных параметров. Получаем ещё один признак наличия спуфинга. Возможны и различные другие алгоритмы, учитывающие скорость движения смартфона, данные от акселерометра и так далее.

Смысл обнаружения спуфинга состоит в том, что приложение-навигатор сможет вывести предупреждение и перестать показывать пользователю заведомо неверные навигационные данные.



Комментировать »

Для того, чтобы ракета поразила цель, требуется информация о том, где данная цель находится. Рассуждение, конечно, очевидное. При этом возможны ситуации, когда сторона, обладающая ракетой нужной мощности и дальности, не обладает подходящими средствами разведки и наведения: например, цель – в море, а нет спутниковых средств или даже просто РЛС, находящихся на кораблях.

Предположим, что присутствует третья сторона, которая имеет и спутниковые средства, и различные РЛС, но эта сторона не должна запускать собственных ракет. Однако эта третья сторона может различными способами помочь с наведением чужой ракеты (негласно). Осуществлять командное наведение, подняв прямой радиоканал к ракете – не самый лучший вариант. Во-первых, он требует полного доверия со стороны запускающих ракету – ведь навести её теперь можно не только на предназначенную цель (понятно, что остаются варианты с самоликвидацией и прочими схемами “управления доверием”, но это излишнее усложнение). Во-вторых, даже если радиоканал зашифрован, факт прямой передачи управления ракетой может быть обнаружен и задокументирован, а это совсем не то, что хотелось бы афишировать нашей “третьей стороне”, формально “сохраняющей нейтралитет”.

Есть другое решение: третья сторона может непрерывно выдавать в эфир навигационный радиосигнал, который привязан к текущим координатам цели. Скажем, это может быть даже набор сигналов, которые кодируют координаты цели относительно некоторой заранее оговоренной точки с известным положением в виде разности опорных сигналов, с той или иной модуляцией. То есть, фактически, получается развитие классической системы радионавигации (Loran-C, “Чайка/Тропик” и др.), которая может работать на относительно небольшой частоте, при этом возможны загоризонтные варианты. На борту ракеты находится приёмник, который корректирует работу инерциальной навигационной системы, принимая опорный навигационный сигнал. Понятно, что сигнал будет доступен для приёма всем, но так как речь идёт о подвижной цели, то вычисление координат можно засекретить, заранее передав необходимые коды коррекции стороне, которая проводит пуск ракеты. Впрочем, тут тоже есть подводные камни: передача кодов коррекции, если она будет задокументирована и сопоставлена с записанным из эфира навигационным сигналом, приводит к прямому раскрытию роли “нейтральной” стороны.



Комментарии (2) »