- Каков наилучший способ защиты кода, записанного на любом устройстве на базе AVR, от реинжиниринга?
- Какой простой способ предоставить обновления для конечных пользователей для самостоятельной прошивки без раскрытия кода? (Это с загрузчиком, который расшифровывает зашифрованное изображение?)
Не ругайте меня за продвижение DRM, я за открытые платформы - мне просто интересно, как это будет работать.
Ответы:
Первый:
На микросхеме установлены предохранители, которые могут быть установлены для предотвращения считывания кода с микросхемы внешними инструментами. Ищите предохранители в вашей спецификации и / или документации для программиста.
Он не идеален, но защищает вас от простых атак.
Во-вторых:
Вы не можете загрузить прошивку безопасно. AVR не может самостоятельно программировать охраняемые районы:
http://www.atmel.com/dyn/resources/prod_documents/doc1644.pdf
Лучшее, что вы можете сделать, - это использовать зашифрованный язык токенов (например, базовый или выше) и иметь защищенный интерпретатор на чипе с помощью загрузчика, который может программировать зашифрованные токены в открытую область. При работе чип расшифровывает и выполняет инструкции на лету.
источник
Если это так важно, и вы особенно беспокоитесь о том, что конкуренты украдут ваш код, снимите защиту IP с ваших сегментов кода. Вы должны изучить это, если вы все равно попытаетесь заработать на проекте.
Некоторые элементы кода могут быть запатентованы (для конкретных методов обработки и новых алгоритмов) или зарегистрированы как промышленные образцы (внешний вид, расположение и применение вашего кода на устройстве). Вы можете проконсультироваться по этому вопросу с юристом по вопросам ИС.
источник
Если вы написали свой собственный загрузчик, который принимал зашифрованные данные через последовательный порт, расшифровывал их и сохранял их в области хранения кода, вы можете иметь безопасное обновление прошивки кода. Каждое устройство может даже иметь свой собственный уникальный ключ дешифрования в вашем пользовательском загрузчике.
источник