November 21, 2024

Как работают GPS чипы?

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

Про безопасность чипов будет сказано в самом конце.

Возможно, я плохо искала, но особо не нашла информации про реверс самих чипов или про реверс геоAPI. Если вы видели такие исследования, скиньте, пожалуйста, в комментарии.

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

Архитектура и структура GPS-чипа

Какова т̶в̶о̶я̶ ̶п̶р̶о̶ф̶е̶с̶с̶и̶я̶ твоя архитектура?

RF-приемник (Radio Frequency Receiver)

RF-приемник отвечает за улавливание радиосигналов, поступающих от спутников. GPS-спутники транслируют сигналы на фиксированных частотах, обычно L1 (1575.42 MHz) и L2 (1227.60 MHz), для них есть же усилители. В сам приемник входит:

  • антенна: в GPS-чипах чаще используется внешняя антенна, встроенная в корпус телефона
  • фильтры и усилители (думаю, их назначение и так понятно)
  • конвертер частоты

Наиболее распространенные фильтры:

  • SAW-фильтры (Surface Acoustic Wave): фильтруют высокочастотные сигналы (около 1.5 ГГц) и удаляют нежелательный частотный мусор.
  • Керамические фильтры: фильтруют сигналы от внешних источников, таких как Wi-Fi и сотовая связь, и уменьшают их влияние на GPS-приемник.
  • Полосовые фильтры (Bandpass Filters): пропускают сигналы только в пределах заданного частотного диапазона (например, частоту L1 в 1575.42 МГц для GPS) и блокируют частоты вне этого диапазона. Это помогает исключить интерференцию от других сигналов, лежащих близко к диапазону GPS.
  • Фильтры нижних частот (Low Pass Filters): отсекают высокочастотные шумы.

Естественно, часто эти фильтры комбинируют.

Наиболее распространенные усилители:

  • LNA (Low Noise Amplifier) — малошумящий усилитель: усиливает слабые сигналы от спутников с минимальным добавлением собственного шума. Обычно размещен близко к антенне, чтобы свести к минимуму потери и помехи на этапе усиления.
  • AGC (Automatic Gain Control) — усилитель с автоматической регулировкой усиления: регулирует усиление сигнала в зависимости от его уровня. Подобная адаптивность позволяет поддерживать постоянный уровень сигнала.
  • PGA (Programmable Gain Amplifier) — программируемый усилитель: позволяет вручную настраивать уровень усиления в зависимости от ситуации.

Сигнальный процессор (DSP — Digital Signal Processor)

После приема и первичной обработки сигнал передается в цифровой сигнальный процессор (DSP), который является ключевым компонентом GPS-чипа, это станет понятно по тем функциям, которые он выполняет

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

Навигационный процессор (Navigation Processor)

Навигационный процессор отвечает за вычисление местоположения на основе данных, полученных от DSP.

Как происходит расчет времени и расстояния? Об этом мы уже косвенно упоминали выше

Все просто — используются данные о временных метках, которые приходят от спутников, а процессор навигации вычисляет расстояние до каждого из них. Данные временных меток, исходящих от нескольких спутников, обрабатываются для определения позиции.

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

Память и микроконтроллер

В структуре GPS-чипа также предусмотрены встроенные модули памяти и микроконтроллер

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

Как выглядят таблицы эфемерид

Микроконтроллер управляет процессом приема данных, настройкой режима работы и взаимодействием с операционной системой телефона. Он контролирует активность различных компонентов, чтобы оптимизировать энергопотребление. Об этом как раз будет дальше

Интерфейс для связи с ОС

Для передачи данных в ОС GPS-чипы используют интерфейсы вроде I²C, SPI или UART, через которые они передают информацию о местоположении или статусе работы.

Эти интерфейсы и будут своеобразными мостами между ОС телефона и чипом.

Есть несколько хороших статей о подключении к UART (это можно сделать даже с помощью флиппера) в контексте аппаратного взлома: https://www.secureideas.com/blog/author/travis-phillips

Связь GPS-чипа со спутниками

Когда GPS-чип активируется, он начинает поиск видимых спутников, определяя их положения.

Сначала он осуществляет «холодный старт» — процесс, при котором устройство, не имея никаких предварительных данных о спутниках, ищет сигналы с нуля. После того как координаты первых спутников установлены, начинается отслеживание спутников для постоянного обновления данных.

Мы говорили выше, что спутник передает чипу временные метки и координаты, но это не все.

Во-первых, передается псевдослучайный код, который служит для идентификации спутника.

Во-вторых, передаются эфемериды, которые содержат информацию для вычисления отклонения орбит, коэффициентов возмущений и т.д.

В-третьих, это альманах — это параметры орбиты, с помощью которых можно вычислить примерное местоположение спутников.

Все эти данные обновляются обычно несколько раз в сутки.

Модели связи со спутниками

Уже упомянутый холодный старт — это когда ничего не известно

Есть теплый старт — позиция и эфемериды неизвестны, время и альманах известны

Ну и горячий старт — альманах, эфемериды известны, время и позиция известны с некоторой ошибкой.
Важно упомянуть еще об A-GPS, которые позволяет устройству быстро получать данные о положении спутников от сотовой сети с помощью более быстрых каналов связи типа wi-fi.

A-GPS

Энергопотребление и оптимизация

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

Драйверы для GPS-чипов

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

Например, ОС может включать и выключать GPS-чип по запросу, что помогает экономить батарею. Например, когда приложение закрыто или в режиме ожидания, ОС может отключить GPS-чип или перевести его в энергосберегающий режим, периодически обновляя координаты, чтобы поддерживать низкий уровень потребления энергии.

Локальные службы определения местоположения

Каждая ОС имеет встроенные службы для управления доступом к геолокации
На Android — это Google Location Services, обеспечивающая доступ к GPS, Wi-Fi и сотовой сети для определения местоположения и собирая данные от различных источников.
На iOS — это служба Core Location, работающая аналогичным образом, то есть, использует GPS, Wi-Fi и данные сотовой сети для определения координат. Core Location может включать поддержку A-GPS, ускоряя получение данных от спутников с помощью базовых станций.

Управление GPS-чипом

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

В таком режиме чип прекращает приём и обработку сигналов от спутников, что значительно снижает энергопотребление. Это реализовано через контроллер питания, который управляет состоянием GPS-чипа, снижая нагрузку на батарею.

На уровне операционной системы функция отключения геолокации реализована через настройку разрешений и контроль доступа для приложений.

Qualcomm Snapdragon X55

Один из наиболее распространенных чипов.

RF-приемник (RF Receiver)

Частотные диапазоны: Snapdragon X55 поддерживает основные навигационные частоты, включая L1 (1575.42 МГц), L2 (1227.60 МГц) и L5 (1176.45 МГц), что позволяет принимать сигналы от различных глобальных навигационных систем (GPS, ГЛОНАСС, Galileo, BeiDou).

Содержит полосовые фильтры и SAW фильтры(SAW-фильтры Qualcomm имеют избирательность примерно 50 дБ) + малошумящий усилитель с минимальным коэффициентом шума, который обычно составляет около 0.5 дБ

В Snapdragon X55 используется многодиапазонная керамическая антенна или PCB-антенна (антенна, встроенная в печатную плату), которая может работать на частотах L1, L2 и L5.

В GPS-антеннах также часто используется круговая поляризация, что позволяет улучшить прием сигнала от спутников независимо от ориентации устройства.

Коэффициент усиления может достигать 20–30 дБ.

DSP

Qualcomm использует 32-битный сигнальный процессор, специально разработанный для работы с высокочастотными сигналами и алгоритмами навигации, работающий на частотах 600 МГц и выше.

Может одновременно обрабатывать до 32 каналов для приема спутниковых сигналов для улучшения точности.

DSP может применять разные алгоритмы кросс-корреляции для определения времени задержки сигналов от каждого спутника.

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

Дополнительно Snapdragon X55 включает в себя алгоритмы для устранения эффектов многолучевости (отражение сигнала) для улучшения точности в условиях городской застройки. Это может быть метод статистического порогового отсечения, RAIM или алгоритмы на основе фазовой обработки.

Навигационный процессор

В Snapdragon X55 используется навигационный процессор, работающий на частоте до 800 МГц, он также способен принимать и обрабатывать сигналы на частотах L1, L2 и L5
Процессор уже содержит предзагруженные таблицы эфемерид и альманах, которые обновляются автоматически

Чип поддерживает все основные частоты 5G (Sub-6 и mmWave), LTE и A-GPS.

X55 поддерживает функцию управления питанием, которая динамически регулирует тактовые частоты и активность модулей в зависимости от интенсивности использования.
Есть несколько режимов:

  • Режим дежурного ожидания (Standby Mode): когда GPS не используется, чип переходит в режим дежурного ожидания, при котором GPS-чип остается подключен, но не активен.
  • Адаптивное обновление частоты (Adaptive Update Rate): в зависимости от режима активности GPS автоматически регулирует частоту обновления координат.
  • Точечное обновление (Spot Update): этот режим позволяет устройству обновлять координаты только при значительном изменении положения, например, при перемещении на несколько сотен метров.

Память и кэш

Qualcomm Snapdragon X55 содержит выделенную область памяти для хранения эфемерид и альманаха. Объем встроенной памяти для эфемерид может достигать нескольких сотен килобайт, позволяя хранить данные для десятков спутников.

Чип также оснащен кэш-памятью объемом до 1 МБ, что позволяет сохранять промежуточные данные и быстро передавать их между компонентами DSP и процессором навигации.

Для хранения данных от антенны и RF-приемника используются небольшие буферы.

Интерфейсы и API

Snapdragon X55 поддерживает несколько стандартных интерфейсов для обмена данными с ОС — I²C, SPI и UART.

Безопасность

  1. GPS-чипы в современных телефонах часто интегрированы в SoC, которая объединяет на одном кристалле процессор, модем и другие функциональные блоки. Это значит, что GPS-чип взаимодействует с другими компонентами напрямую через внутренние шины данных и интерфейсы, которые недоступны снаружи.
  2. GPS-чипы используют защищенные прошивки, в которых применяются разные алгоритмы шифрования для защиты от модификации и декомпиляции. Например, прошивки могут быть зашифрованы на уровне загрузки, а алгоритмы могут использовать криптографические ключи, встроенные непосредственно в микросхему. При каждом обновлении или загрузке прошивка проверяет целостность и подлинность кода. Это предотвращает запуск неавторизованного кода.
  3. Некоторые GPS-чипы используют методы защиты на аппаратном уровне, например, аппаратный корень доверия (Hardware Root of Trust), который хранит ключи, управляет безопасностью запуска, обеспечивает защищенные области памяти и контроллеры безопасности. Это значит, что доступ к микрокодам и элементам прошивки может быть ограничен на аппаратном уровне, защищая чип от модификации. Про корень доверия неплохо написано здесь: https://www.rambus.com/blogs/hardware-root-of-trust/
  4. Для взаимодействия с процессором GPS-чип использует низкоуровневые протоколы связи, такие как I²C, SPI или собственные шины данных, которые могут быть недоступны для прямого подключения и зашифрованы.
  5. На аппаратном уровне чипы часто защищены от физического вмешательства: любые попытки пробить кристалл, перепаять выводы или извлечь информацию с помощью методов химического или лазерного вскрытия могут привести к автоматическому повреждению данных. Это реализовано через слои защиты в виде пассивных и активных защитных решеток, встроенных в микросхему, которые могут быть настроены на разрушение кристалла при попытке физического вмешательства.

Программная защита GPS-чипов

  1. Прошивка чипа содержит код с цифровой подписью, который загружается только после проверки подлинности, предотвращая запуск измененного кода.
  2. Secure Boot проверяет криптографическую подпись прошивки и всех загружаемых модулей.
  3. Аппаратный Hypervisor и защищенная среда исполнения (Trusted Execution Environment, TEE), которые используются, например, в современных чипах Qualcomm . Это изолированная среда, где хранится чувствительная информация и выполняются критически важные процессы.