EdigE
← ЛЕНТА

SPI-трасса выдала прыжки частоты закрытого радиомодема

У радиочипа нет намерения скрывать от своего микроконтроллера рабочую частоту, девиацию, sync word или режим пакетного движка. Перед передачей и приёмом MCU обязан записать эти значения в регистры. Если добраться щупом до SPI-линий между двумя микросхемами, можно наблюдать момент, в который алгоритм уже превратился в конкретную настройку синтезатора.

Именно на этом построен TLF, Transceiver Lifter Framework, из работы Larry Hernandez и Sergey Bratus (arXiv:2608.13815). Это семейство декодеров SPI-трасс для конкретных RF-трансиверов. Оно отделяет обращения к регистрам от потока FIFO, хранит теневой образ register file и приписывает каждому пакету ту конфигурацию, которая действовала во время записи в FIFO. Результатом становится не просто лог захвата, где видны адреса и байты, а последовательность радиосостояний: частота, режим, параметры пакета и время переключений.

Самый выразительный пример — UAV C2-модем на Semtech SX1233. Авторы сняли около 110 секунд SPI-обмена логическим анализатором DSLogic с дискретизацией 20 MHz: 2.3 млн транзакций, включая более 300 тыс. записей частотного регистра RegFrf. Декодер автоматически выделил 682 пакета. В рабочей фазе он собрал общую таблицу из 55 каналов от 912.0 до 917.9 MHz с шагом 100 kHz. В каждом направлении использовалось по 44 канала. Захват также показал firmware-driven hopping и смену sync word от пакета к пакету: микроконтроллер сам задавал следующую частоту и служебное слово перед очередной операцией радио.

Это даёт исследователю картину, которую трудно получить одним SDR. Приёмник в эфире должен угадать полосу, тайминг, hopping-последовательность и формат кадра, притом часть передач может быть потеряна. SPI уже содержит команды для железа, включая настройки, которые в эфире напрямую не видны. У SX1233 синтезатор имеет разрешение 61 Hz, а пакетный движок включает CRC, AES-128 и FIFO на 66 байт. TLF читает доступную программную поверхность такого чипа, но содержимое FIFO ещё может остаться зашифрованным или закодированным логикой MCU.

Второй опыт выполнен с Meshtastic-узлом на SX1276, где один набор регистров обслуживает LoRa, FSK и OOK в разных overlay-режимах. Захват холодного старта из 117 SPI-транзакций TLF обработал за 4.0 s; извлечённая конфигурация совпала с данными management interface узла. В более позднем захвате было уже 1507 транзакций, однако не встретилось ни одной записи RegFrf. Причина важна: шина раскрывает только те значения, которые MCU действительно записал во время окна наблюдения. Полный стартовый захват даёт конфигурацию, позднее подключение может показать лишь её частично меняющиеся фрагменты.

Метод требует физического доступа к SPI-пинам или привилегированной эмуляции устройства. Он не восстанавливает исходный алгоритм hopping, custom FEC, whitening, прикладное шифрование и генератор меняющихся sync word. Например, 166 наблюдённых sync word ещё не позволяют отличить таблицу от счётчика, PRNG или фрагмента keystream. Но для лабораторного анализа, совместимого приёмника и проверки поведения неизвестного радиоустройства несколько цифровых линий на плате могут оказаться информативнее всей антенны.

Источники

[Hernandez, Bratus. TLF: Rapid Characterization of RF Transceiver Parameters in Embedded Systems via Bus-Level Interception, arXiv:2608.13815](arXiv:2608.13815)

[Полный текст accepted manuscript](arXiv:2608.13815)

[Semtech SX1233: параметры синтезатора, FIFO и packet engine](https://www.semtech.com/products/wireless-rf/frequency-shift-keying-fsk/sx1233)

[Semtech SX1276: диапазон 137–1020 MHz и режимы LoRa/FSK/OOK](https://www.semtech.com/products/wireless-rf/lora-connect/sx1276)