Перейти к содержанию
    

Зашифровать application

Добрый день подскажите с алгоритмом, есть bootloader Ehternet на stm32, он прошивается программатором с зашитой от считывания, и дальше TFTP закидывается основное приложение(application). В случае если application перехватят, как защититься что бы его, не смогли загрузить через свой "поддельный bootloader", тупо программатором со смешением.

Пока думаю добавить в шапку application, уникальный идентификатор, что бы туда не пытались закидывать всякий мусор, но этот идентификатор можно блокнотом посмотреть, да и основное приложение как бы открытое получается.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Добавляйте в бутлодырь функцию дешифрования. Аналогично при подготовке общедоступного файла прошивки используйте функцию шифрования.

Выбор способа шифрования - отдельный вопрос. Для начала наложите на прошивку маску по XOR с ключом "Здесь Был Вася"

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Заливаете свой бутлоадер, потом включаете собственную защиту процессора от считывания-записи. И теперь записать-считать можно только через Ethernet и ваш бутлоадер.

Соответственно ваш бутлоадер должен уметь расшифровывать новые прошивки, которые вы зашифруете своей программой на компьютере.

Даже если они подменят пакеты Ethernet для вашего бутлоадера и попытаются туда что-нибудь залить, при расшифровке бутлоадером не сойдутся контрольные суммы и естественно он ничего не сможет записать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В свое время в качестве отправной точки использовал пример применения AVR231 - загрузчик с шифрованием AES.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Благодарю, примерно в это направление и смотрел, останавливало меня только что при таком варианте нельзя будет(или можно?) отлаживать программу в пошаговом режиме, подцепить отладочный файл из другого проекта. Со структурой проекта пока совсем беда, как все вместе проверить не совсем понятно.

 

PS: компилятор IAR.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В свое время в качестве отправной точки использовал пример применения AVR231 - загрузчик с шифрованием AES.

Тоже когда-то применял его для АВР практически "как был".

Недавно перетянул на STM32F0 с USB загрузкой. Мороки было много, но сам криптографический движок не трогал, да и протокол только слегка дополнил.

 

Благодарю, примерно в это направление и смотрел, останавливало меня только что при таком варианте нельзя будет(или можно?) отлаживать программу в пошаговом режиме, подцепить отладочный файл из другого проекта. Со структурой проекта пока совсем беда, как все вместе проверить не совсем понятно.

 

PS: компилятор IAR.

Ответил вам в вашем другом посте по этой теме:

bootloader, bootloader+application

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Благодарю, примерно в это направление и смотрел, останавливало меня только что при таком варианте нельзя будет(или можно?) отлаживать программу в пошаговом режиме, подцепить отладочный файл из другого проекта. Со структурой проекта пока совсем беда, как все вместе проверить не совсем понятно.

Это почему это нельзя? Бутлодырь заливает в память программ (защищенную от считывания) уже расшифрованный код. Отлаживайте на здоровье, просто по окончании не забудьте поставить биты защиты: на область бутлодыря - на чтение и запись; на остальную память программ - на чтение (оперирую терминологией AVR)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...