Сегодня разберем прошивку Strix Air. Нам передали бинарный файл с отключенной точкой доступа. Сам файл не содержит каких-либо строк, позволяющих идентифицировать прошивку, но логотип и надпись в извлеченном веб интерфейсе указывают на Strix Air - оборонный стартап из 404. 1. Радиопрофили и диапазоны частот Радиопрофили соответствуют стандарту ELRS, при этом исключен профиль BW 500 SF5 200 пакетов/с, и добавлен профиль DUAL 500/812 SF7/SF8 50 пакетов/с. Диапазон частот выбирается в веб интерфейсе (для DUAL режима - выбираются два диапазона из одного и того же списка), приводим их ниже: № Диапазон Ширина Каналов 0 2180–2230 50 50 1 2150–2250 100 80 2 2200–2280 80 80 3 2300–2380 80 80 4 2500–2700 200 80 5 2600–2700 100 80 6 2700–2750 50 80 2. Алгоритм генерации ППРЧ Алгоритм генерации ППРЧ является производным от стандартного. Напомним, что для 50 каналов стандартный алгоритм сформирует таблицу из 200 элементов, а для 80 - из 240. В Strix Air эти стандартные таблицы дополняются до 256 элементов, то есть длина ППРЧ - всегда 256. 3. Пакет синхронизации (SYNC) Пакет синхронизации присутствует и обрабатывается на стороне приемника. Формат его изменен: поле номер позиции в таблице ППРЧ расширено с 8 бит до 16 бит - видимо на перспективу, так как 8 бит хватило бы для описания позиций внутри ППРЧ длиной 256. Для расширения этого поля пожертвовали байтом UID[3]. Для контроля целостности используется CRC-14 - такая же, как и в стандарте, с начальным значением, зависящим от UID. Номер канала, в котором передаются SYNC пакеты - также стандартный. Стандартность канала, а также наличие в SYNC пакете указателя на позицию ППРЧ позволяет реализовать атаку с рассинхронизацией приемника FPV и пульта/НСУ, но это немного усложняется наличием шифрования - рассмотрим ниже. 4. RC-пакеты RC-пакета также шифруются. При этом формат их соответствует стандарту. Немного отличается вычисление и проверка CRC-14 - дополнительно присутствует XOR с байтами текущего указателя в таблице ППРЧ. Это такая своеобразная защита от спуфинга, при этом в SYNC пакетах ее нет. 5. Шифрование Пожалуй, это самое интересное во всей прошивке. Именно оно, по всей видимости, призвано предотвратить атаки в виде подмены SYNC пакета и рассинхронизации RX/TX. Для шифрования используется алгоритм RAIDEN. В самом RAIDEN 128-битный ключ, но алгоритм его формирования в прошивке таков, что полное пространство формируемых ключей сильно меньше - 2^48. Полный перебор этого ключевого пространства "в лоб" займет несколько суток. Но мы утверждаем, что данных, полученных из радиоэфира за 30-60 секунд, будет достаточно для восстановления ключа и нужных байтов UID за секунды - это открывает нам дорогу как к поканальному подавлению, так и к рассинхронизации RX/TX путем формирования специального пакета. В данном случае мы даже не реализовывали прототип для проверки нашего утверждения, так как необходимые операции уже проделывали. Так чем же интересно шифрование в этой прошивке? На наш взгляд, именно выбором алгоритма. Вряд ли вы ранее слышали о RAIDEN: алгоритм был создан в 2006 году ученым Хулио Эрнандес-Кастро. В 2009 году была опубликована работа по его криптоанализу, по результатам которой стойкость признана неудовлетворительной. Алгоритм не рекомендован для коммерческого использования. Формально отметим, что стойкости алгоритма скорее достаточно для применения в FPV. Так почему же разработчики Strix Air выбрали этот алгоритм при наличии ряда других, которые и признаны стойкими и вполне легковесны для реализации на целевых платформах? Мы теряемся в догадках, а автор алгоритма продолжает преподавать в Университете Кента (Великобритания). Вывод: Strix Air - интересно, но слабенько; для него мог бы быть умный РЭБ.
- 1
- 1