Как стать автором
Обновить
233.91
ITSumma
Эксперты в производительности

Маршрутизатор Starlink будет перезагружаться каждые 20 дней. Реверс-инжиниринг прошивки

Время на прочтение3 мин
Количество просмотров11K

Маршрутизатор Starlink

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

Маршрутизатор не спроектирован для лёгкого разбора и самостоятельного ремонта. Крышка не прикручена винтами, а скреплена внутренним креплением, так что при снятии придётся слегка помять алюминиевый корпус.

Весь металлический корпус про сути работает как большой радиатор, это одна цельная деталь.


Здесь и далее фото Олега Куткова

Внутри довольно простая материнская плата.



Маршрутизатор работает на популярной однокристалльной системе Qualcomm IPQ4018: это 4-ядерный ARM Cortex A7 (тактовая частота 717 МГц), 802.11ac WiFi, по два канала 5 и 2,4 ГГц, SIMD DSP, Crypto Engine, QualcommTrusted Execution Environment (TEE) и т.д.

Компоненты на нижней стороне материнской платы подписаны на фотографии, в том числе микросхема TPS2378 и флэш-память NAND W25N01GV с операционной системой маршрутизатора.



На лицевой стороне платы самый интересный компонент — микросхема STSAFE-A110 для криптографических операций Linux с аппаратной поддержкой OpenSSL. На этом чипе хранится конфигурация платы и сертификаты. А также микросхема NOR флэш-памяти GD25Q128B с загрузчиком Qualcomm и некоторой дополнительной информацией.



Олег Кутков извлёк с платы чипы NOR и NAND, произвёл анализ прошивки, в том числе проприетарных файлов, которые отсутствуют в официальном репозитории SpaceX. Прошивка основана на OpenWRT.

С чипа NAND удалось снять образ Linux, образ rootfs файловой системы SquashFS с операционной системой OpenWRT и софтом SpaceX, а также образ ubifs с конфигурационными файлами.



Там лежит защищённый файл /etc/config/WifiConfig, это бинарник, который используется проприетарными программами SpaceX.

В целом, базовая прошивка не особенно отличается от ванильной OpenWRT, кроме нескольких специфических параметров SpaceX в скриптах. Например, такая настройка с любопытными комментариями:

# SpaceX: As a failsafe, we limit the uptime of our devices to 20 days. After 20 days
# this script will stop petting the watchdog, which will lead to it rebooting after
# about 2 minutes. To do this, we first take manual control of the watchdog from
# procd, using the ubus commands.
pet_watchdog() {
    # Wait one minute to let ubus system fully boot
    sleep 60

    echo "Start Petting Watchdog"
    ubus call system watchdog '{"magicclose": true}'
    ubus call system watchdog '{"stop": true}'

    # Pet every 10 seconds for 20 days (1,728,000 seconds)
    for var in `seq 1 172800`; do echo 1 ; sleep 10; done > /dev/watchdog
}

Здесь объясняется, что аптайм маршрутизатора Starlink ограничен 20 днями, после чего он будет автоматически перезагружаться, что гарантирует ему даунтайм на 1 минуту. Говорят, что это нормальная практика в мире встраиваемых систем. Многие из них уходят в принудительную перезагрузку по таймеру, зачастую это происходит незаметно для пользователя.

Среди файлов особое любопытство вызывает бинарник /usr/sbin/wifi_control: это гигантское приложение на Go, которое контролирует все аспекты работы маршрутизатора. Судя по всему, некоторые параметры типа серверных IP-адресов и URL зашиты прямо в код.

Автор запустил прошивку на сторонней плате AP.dk04. Кроме того, он подключил криптографический чип STSAFE-A110 к Raspberry Pi через специальный адаптер.



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



В данный момент автор продолжает анализ вышеупомянутого проприетарного файла /usr/sbin/wifi_control, который делает много интересного: поднимает серверы gRPC (основной протокол связи в Starlink), отправляет телеметрию в SpaceX и многое другое.

Сейчас Олег Кутков производит реверс-инжиниринг внутреннего протокола, чтобы можно было нормально общаться с серверами Starlink. Например, запрашивать обновления прошивки с предъявлением сертификата и т. д.

Ждём продолжения.
Теги:
Хабы:
Всего голосов 45: ↑45 и ↓0+45
Комментарии11

Другие новости

Информация

Сайт
www.itsumma.ru
Дата регистрации
Дата основания
Численность
101–200 человек
Местоположение
Россия
Представитель
ITSumma