AVRdude шифрует / дешифрует HEX файл на лету в VB - PullRequest
2 голосов
/ 07 октября 2010

Привет всем, что я хочу расшифровать мой кодовый файл HEX для чипа ATTiny и запрограммировать его с помощью интерфейса командной строки AVRDude. Проблема в том, что я не хочу, чтобы пользователь мог видеть, что такое HEX-файл в любой момент времени.

Может ли криптография VB.net зашифровать HEX-файл перед тем, как я поместил его на сервер, а затем расшифровать после того, как программа загрузит его с сервера и запустит через программу, не увидев расшифрованный HEX-файл?

Очевидно, что HEX-файл не может оставаться зашифрованным при программировании на чип ATTiny, поэтому как я могу это сделать, чтобы я мог создать исходный HEX-файл для программирования в программе, не беспокоясь о том, что он записывает временный файл? на жесткий диск, а затем удалить его? (Потому что они могут закрыть программу после того, как она сделает этот временный файл, и они смогут перемещаться, открывать ее и видеть код)

Любая помощь будет отличной! : О)

David

Ответы [ 2 ]

1 голос
/ 28 января 2011

Не может быть сделано с указанными ограничениями.ATtiny не может запустить полезный загрузчик (без самопрограммирующейся флэш-памяти). Ваш шестнадцатеричный файл необходимо будет расшифровать на хосте.Хранение расшифрованных данных в памяти может немного замедлить злоумышленников.

1 голос
/ 07 октября 2010

Как вы уже указали, если вы расшифровываете файл на хосте, он находится в незашифрованном виде, и вы ничего не можете с этим поделать.

В отрасли время от времени возникают одни и те же проблемы, поэтому они используют свои методы криптографии: иногда необходимо предотвратить, чтобы кто-то еще мог получить скомпилированный и запускаемый файл, так как «они» декомпилируют его или смотрят на него. это в сборке, иногда это нужно только для того, чтобы кто-нибудь еще не мог запустить свои собственные домашние файлы на устройстве.

Как уже говорилось, расшифровка файла на хосте (хосте пользователи / клиенты) не подлежит обсуждению. Затем нажмите его через мгновение. Вы можете, например, сделать так, чтобы загрузчик расшифровал файл прошивки, который он читает из последовательной линии.

В этом случае вы поставляете аппаратное обеспечение (чип, загрузчик и начальную версию прошивки), а обновления устанавливаются через последовательную линию (вместо JTAG / ASP / ISP). Загрузчик будет содержать секретный ключ, который расшифровывает файл прошивки. Этот секретный ключ также можно использовать для проверки того, что файл прошивки исходит от вас, и никто другой не скомпилировал что-либо.

Если вам также потребуется раздать загрузчик (hex-файл), вы столкнетесь с проблемой, что кто-то может извлечь или изменить секретный ключ. В этом случае асимметричная криптография спасет вас. Вы сохраняете свой закрытый ключ для себя, и загрузчик получает часть открытого ключа. Даже если кто-то сможет извлечь открытый ключ, он не сможет создать файл, который будет распознан как ваш. Увы, ATTiny слишком слаб для асимметричной криптографии, и даже симметричная криптография уже раздувает код загрузчика.

...