AVRdude шифрует/расшифровывает HEX-файл на лету в VB

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

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

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

Любая помощь будет здорово! :о)

Дэйвид


person StealthRT    schedule 07.10.2010    source источник


Ответы (2)


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

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

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

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

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

person lImbus    schedule 07.10.2010

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

person Ian Howson    schedule 28.01.2011