реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
pokk
сообщение Mar 19 2018, 02:49
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 91
Регистрация: 3-07-11
Пользователь №: 66 028



Добрый день подскажите с алгоритмом, есть bootloader Ehternet на stm32, он прошивается программатором с зашитой от считывания, и дальше TFTP закидывается основное приложение(application). В случае если application перехватят, как защититься что бы его, не смогли загрузить через свой "поддельный bootloader", тупо программатором со смешением.
Пока думаю добавить в шапку application, уникальный идентификатор, что бы туда не пытались закидывать всякий мусор, но этот идентификатор можно блокнотом посмотреть, да и основное приложение как бы открытое получается.
Go to the top of the page
 
+Quote Post
V_G
сообщение Mar 19 2018, 04:30
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 818
Регистрация: 15-10-09
Из: Владивосток
Пользователь №: 52 955



Добавляйте в бутлодырь функцию дешифрования. Аналогично при подготовке общедоступного файла прошивки используйте функцию шифрования.
Выбор способа шифрования - отдельный вопрос. Для начала наложите на прошивку маску по XOR с ключом "Здесь Был Вася"
Go to the top of the page
 
+Quote Post
HardEgor
сообщение Mar 19 2018, 07:30
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 223
Регистрация: 3-03-06
Из: Tomsk
Пользователь №: 14 925



Заливаете свой бутлоадер, потом включаете собственную защиту процессора от считывания-записи. И теперь записать-считать можно только через Ethernet и ваш бутлоадер.
Соответственно ваш бутлоадер должен уметь расшифровывать новые прошивки, которые вы зашифруете своей программой на компьютере.
Даже если они подменят пакеты Ethernet для вашего бутлоадера и попытаются туда что-нибудь залить, при расшифровке бутлоадером не сойдутся контрольные суммы и естественно он ничего не сможет записать.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Mar 19 2018, 07:39
Сообщение #4


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



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


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
pokk
сообщение Mar 19 2018, 07:54
Сообщение #5


Частый гость
**

Группа: Участник
Сообщений: 91
Регистрация: 3-07-11
Пользователь №: 66 028



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

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

Go to the top of the page
 
+Quote Post
Baser
сообщение Mar 19 2018, 09:35
Сообщение #6


Просто Che
*****

Группа: Свой
Сообщений: 1 567
Регистрация: 22-05-07
Из: ExUSSR
Пользователь №: 27 881



Цитата(Сергей Борщ @ Mar 19 2018, 09:39) *
В свое время в качестве отправной точки использовал пример применения AVR231 - загрузчик с шифрованием AES.

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

Цитата(pokk @ Mar 19 2018, 09:54) *
Благодарю, примерно в это направление и смотрел, останавливало меня только что при таком варианте нельзя будет(или можно?) отлаживать программу в пошаговом режиме, подцепить отладочный файл из другого проекта. Со структурой проекта пока совсем беда, как все вместе проверить не совсем понятно.

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

Ответил вам в вашем другом посте по этой теме:
bootloader, bootloader+application
Go to the top of the page
 
+Quote Post
V_G
сообщение Mar 19 2018, 10:03
Сообщение #7


Профессионал
*****

Группа: Свой
Сообщений: 1 818
Регистрация: 15-10-09
Из: Владивосток
Пользователь №: 52 955



Цитата(pokk @ Mar 19 2018, 17:54) *
Благодарю, примерно в это направление и смотрел, останавливало меня только что при таком варианте нельзя будет(или можно?) отлаживать программу в пошаговом режиме, подцепить отладочный файл из другого проекта. Со структурой проекта пока совсем беда, как все вместе проверить не совсем понятно.

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

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd June 2025 - 16:37
Рейтинг@Mail.ru


Страница сгенерированна за 0.01402 секунд с 7
ELECTRONIX ©2004-2016