W80X Программная защита чипов серии

выпустить 2022-10-18 11: 09: 20

W80X Существует три способа защиты от программного обеспечения чипов серии: Антикопирование, Шифрование прошивки, Подпись прошивки. Использование подписей прошивки и шифрования прошивки на основе некопирования может еще больше повысить уровень защиты. Принцип некопирования использует чип Flash Unique ID Единообразие для сравнения суждений, Программа может работать только в случае согласия. В стадии производства агломерации, Мы назовем это устройством, которое тестируется в агломерации DUT, Во время агломерации прошивки, Инструменты для прекурения прочтут DUT в Flash Unique ID, Напиши после шифрования Flash в A адрес, После успешного препарирования, Время запуска программы, Сначала прочти чип Flash Unique ID, Читай дальше A Зашифровано по адресу ID, Расшифровка, Рассекреченный контраст между двумя ID Единогласно, Если они совпадают, Продолжайте работать, Если нет, В то время как программа работает в копии, Прекратить.
1, установк openssl инструмент
нужн 1. 0 И выше, Папка с собой win 64 мест 1. 1 Версия файла монтажа, Его можно скачать откуда угодно. Процесс установки следует следующим этапом, пока не будет завершен.
2, декомпресс FirmUpdate_2. 2. 0. 8. zip
3, Возьми из официальной сети SDK
4, Шифрование прошивки и подпись прошивки
4. 1 использова CDK Инструменты компиляции

  • в tools/W80x/utilities/aft_build_project. sh В деле:
    настройк code_encrypt = 1 Это означает шифрование электропрошивки;
    настройк signature = 1 Логотип делает подпись прошивки;
    будет 5 был openssl. exe Добавьте соответствующий маршрут установки;
    Установи прошивку с секретными параметрами ключа, Длина параметра 16 байт, Например, то, что используется на рисунке ниже 0~F эт 16 Шестизначный номер, В то врем как. sh Параметры в файле написаны соответствующими ASCII ярд;
  • в tools/W80x/ca/key. txt В деле:
    Изменено в соответствующее кодирование прошивки key сто, длина 16 Байт данных;
    image. png
  • в tools/W80x/ca/cakey. pem и capub. pem В деле:
    cakey. pem эт RSA Подписанный частный ключ, для openssl Подписанная прошивка, capub. pem Это открытый ключ, Для разблокировки, Замени содержимое двух файлов на свой собственный государственный и частный ключ.

4. 2 использова make Инструменты компиляции

  • в tools/w800/. config В деле:
    настройк CONFIG_W800_IMAGE_SIGNATURE = 1, Подпиши прошивку;
    настройк CONFIG_W800_CODE_ENCRYPT = 1, Зашифровать прошивку;
    в tools/w800/rules. mk В деле:
    Положение на диаграмме, Модифицировать то, что используется для шифрования прошивки key, длина 16 Байт данных преобразуется в соответствующий ASCII Строки;
    image. png
  • в tools/w800/ca/key. txt В деле:
    Изменено в соответствующее кодирование прошивки key сто, длина 16 Байт данных;
  • в tools/800/ca/cakey. pem и capub. pem В деле:
    cakey. pem эт RSA Подписанный частный ключ, для openssl Подписанная прошивка, capub. pem Это открытый ключ, Для разблокировки, Замени содержимое двух файлов на свой собственный государственный и частный ключ.

5, Решение о некопировании
SDK demo из Avoid_Copy_Firm Интерфейс для эталонной реализации, Основные процессы для считывания текущего чипа Flash Unique ID, чтен ID Зашифрованные данные, Совпадают ли результаты расшифровки, Программа прерывается в случае несоответствия. Можно установить интерфейс mian Исходное положение функции или ключевой путь.
В примере есть три локальных пользователя, которые могут сами себя определить, Соответствует модификациям в примере с прекурсором инструментов, т. е: Способ расшифровки, Местоположение зашифрованных данных, Секретн ключ.

  • Способ расшифровки: Чип предоставляет возможности для аппаратного и расшифровки, Это возможно rc4, aes, des, 3des расшифровывание, Если есть другой способ шифрования, В то же время, необходимо самостоятельно реализовать соответствующие функции дешифрования;
  • Местоположение зашифрованных данных: Нужны инструменты для предислокации AvoidCopyTestCase Например Location Параметры совпадают;
  • Секретн ключ: Нужны инструменты для предислокации AvoidCopyTestCase Например Key Параметры совпадают, demo Прямая прямая линия обозначает секретный ключ в массиве, Или это может быть хранилищем flash Где-то есть место для чтения;

6, Агломерация прошивки

  • Скопировать компиляцию в папку с инструментами агломерации;
  • Своим capub. pem Существующий файл в папке для замены инструментов;
  • в ToolConfig. ini В деле:
    модификац TestCaseConfig=AvoidCopyTestCases. xml, Здесь на случай, если копии сгорят для примера, Если понадобится ещё какая-то тестовая функция, Можете проверить WM_W800 Специальное руководство по работе с набором инструментов для агломерации_V2. 1. doc Используй комбинацию;
    Добавьте слоган "конец устройства COMS Layout;
    Выключение консервации, Если инструменты были открыты, Нужно закрыть инструменты и открыть их заново, Настройка работает;
  • в AvoidCopyTestCases. xml В деле:
    Последний и третий случай использования AvoidCopyTestCase Функция чтения DUT в Flash Unique ID, Параметры Key Значение выполняется как ключ AES128 ECB зашифрова, Запишите результаты шифрования в параметры Location Указанное место. Необходимость и шаги 5 Три из них соответствуют друг другу:
    Способ шифрования: Инструменты были зашифрованы таким образом AES128 ECB, Для внедрения других методов шифрования требуется требование, чтобы инструменты были модифицированы;
    С секретным ключом, Нужно соответствовать методу шифрования, Если взять по умолчанию AES128 ECB зашифрова, Тогда длина ключа равна 16 байт, Переведи в соответствующее ASCII Строки, Например, ключ в примере 0~F эт 16 16 - значное число преобразуется в соответствующее ASCII Строки;
    Сохранить позицию, Зашифрованные данные сохраняют местоположение.
  • Модифицировать последний FirmUpdateTestCase Используй имя прошивки в примере, Совпадает с именем прошивки, Выключение консервации;
    откр FirmUpdate. exe, Поставьте галочку на конце устройства, сниз boot (PA0) , нажа reset, Начинай сжигать прошивку, Когда преобразование завершено, оно указывает на успех или провал;
    boot, нажа reset Установка перезагрузки, Можно проверить, работает ли защита от копирования.

7, Внимание
Если его использовали на стадии разработки FirmUpdate. exe Перегоревшая прошивка от копирования, Далее необходимо пережечь прошивку без защиты от копирования, А для этого нужны модификации AvoidCopyTestCases. xml Предпоследний случай использования WriteSignEnableTestCase Параметр в Enable на 0, одновремен WriteDebugLevelTestCase Уровень отладки был изменён 0, После прошивки можно. Он будет доступен после Upgrade Tools Инструменты в норме.

1 Комментарий

опубликова
вопросы