Какой вариант защиты прошивки STM32 от копирования верен?
Добрый день.
Буду заказывать разработку устройства на базе STM32F411. Нужно усложнить копирование устройства.
Устройств будет несколько штук (не массовое производство).
Идей защиты три, прошу подсказать рабочую:
1) У каждого экземпляра процессора STM32F411 есть уникальный 96-битный номер. Прошивка может считывать его при начале работы и отказываться работать, если номер новый. Позволит ли это защитить устройство от копирования?
2) Добавить в устройство считыватель NFC, и заливать прошивку, работающую при распознавании определенного номера NFC-метки. Но этот путь сложен, громоздок, и дорог.
3) Может есть какой-то SMD-компонент с индивидуальным неповторяющимся номером, который можно напаять на плату для опроса при старте?
freeExec, скопировать прошивку и залить в такой же контроллер просто. Но копия, считав при запуске номер процессора и убедившись, что он не тот что надо, не должна работать по своей основной рабочей программе. Пусть проморгает светодиодом номер ошибки и остановится.
iva2000, обычно вся сложность в физической обвязки железом, а не просто залить в тот же чип. А имея прошивку поменять там флаг правильный номер или нет не сильно сложное дело.
в стм32 сколь помню не возможно снять прошивку с камня.
для доступа к прошивке необходим представить 256 байтный ключ из указателей прерываний.
т.е. слить прошивку из камня или войти в режим дебагинга не возможно.
т.е. клонирования готовой железяки не возможно.
мож такого хватит
DS2401. "Unique, factory-lasered and tested 64-bit registration number (8-bit family code + 48-bit serial number + 8-bit CRC tester);guaranteed no two parts alike". HP, вроде, ставят такие чипы на зарядники для ноутбуков, чтобы от чего попало их не запитывали.
У STM32 есть режим кирпича, при котором теряется возможность залить новую прошивку или прочитать старую, т.е. полностью отключает этот интерфейс. Это можно сделать изнутри прошивки.