Барвинок — цветок, который сажают на могилах, вплетают в венки и не могут вывести с участка. Еще так называется прошивка для управления FPV, которую мы проанализировали - Barvinok 5.1.0 для диапазона 2.4 ГГц. Ниже приведены основные факты, а в следующем посте мы разберем возможные атаки с целью более эффективного подавления FPV на базе этой прошивки. 1. Настройки радио SF CR Пакетов/с Длина, байт 7 4/6 LI 200 8 8 4/6 LI 25 8 9 4/6 LI 50 8 10 4/8 LI 25 9 12 4/5 LI 20 9 12 4/8 LI 10 9 2. Частотные диапазоны № Имя Начало Конец Ширина 0 2.1_2.3 2120,0 2300,0 180,0 1 2.15_2.35 2150,4 2351,6 201,2 2 2.2_2.4 2200,4 2401,7 201,3 3 2.25_2.45 2250,4 2451,8 201,4 4 2.3_2.5 2300,4 2502,4 202,0 5 2.35_2.55 2350,4 2551,4 201,0 6 2.4_2.6 2400,4 2601,4 201,0 7 2.45_2.65 2450,4 2659,4 209,0 8 2.5_2.7 2500,4 2701,4 201,0 9 2.2_2.6_W 2200,4 2609,4 409,0 Прошивка определяет 10 частотных диапазонов шириной от 180 и до 409 МГц. В каждом диапазон всего 4090 каналов. Расстояние между центрами каналов от 44 и до 100 кГц, то есть соседние каналы пересекаются по частоте. 3. Алгоритм генерации ППРЧ Шестибайтный UID определяет начальное состояние и постоянное приращение генератора псевдослучайных чисел PCG-XSH-RR 64/32, выходы которого используются для формирования таблицы из 4090 каналов. После начального заполнения таблицы и закрепления позиций канала синхронизации выполняются 4026 последовательных обменов: каждый незакреплённый элемент меняется местами с псевдослучайно выбранным незакреплённым элементом; диапазон выбора не сужается, поэтому это не классический алгоритм перемешивания Фишера-Йетса (Fisher–Yates, именно этот алгоритм используется в стандартном ELRS). Номер канала сихронизации также определяется значением UID, и закрепляется в позициях 0, 64, 128, ..., 4032 - эти позиции не участвуют в обменах. 4. Пакет синхронизации (SYNC) Пакет синхронизации не зашифрован: после демодуляции радиосигнала значения его полей доступны открыто. Формат пакета отличается от стандартного ExpressLRS 3.5.0 и 4.0: используются пакеты длиной 8 или 9 байт (8 или 13 в стандарте), указатель позиции в таблице ППРЧ расширен с 8 до 12 бит, а вместо непосредственно передаваемых значений байтов UID в стандарте здесь присутствуют два первых байта SHA-256 от UID. Для контроля целостности используется CRC-14 - такая же, как и в стандарте для 8-байтовых пакетов, с начальным значением, зависящим от UID. В 9-байтном формате CRC также остается 14-битной, но охватывает дополнительный байт данных. Указатель позиции в таблице ППРЧ, который передается в пакете синхронизации, позволяет переопределить следующий канал (при условии прохождении остальных проверок: CRC-14, SHA-256 от UID). То есть в отличие от MILELRS, где обработка sync пакетов просто отключена на стороне приемника, тут можно нарушить синхронизацию между FPV и пультом/НСУ, используя специально составленный пакет. 5. RC пакеты RC пакеты также не шифруются и используют ту же CRC-14, начальные значения которой зависят от UID. Особенностью RC пакетов является то, что в расчет CRC дополнительно подмешивают младшие 6 бит протокольного счетчика (сам счетчик 8-битный и передается в SYNC пакете). Продолжение (возможные практические атаки на Barvinok) - https://t.me/tishina_lab/34 Telegram Тишина.Лаб Возможные атаки на Barvinok и их временная сложность. Описанные ниже атаки были реализованы в коде на основании тестовых данных, сформированных по результату реверс-инжиниринга прошивки. Для полноценной проверки необходимо наличие пары RX+TX. 1. Восстановление…
- 1