|
STM32Fxxxx, Встроенные бутлодер. Шифрование |
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 22)
|
Jul 10 2015, 04:55
|
Местный
  
Группа: Свой
Сообщений: 404
Регистрация: 3-12-04
Из: Новосибирск
Пользователь №: 1 304

|
Цитата(Сергей Борщ @ Jul 10 2015, 10:52)  С помощью встроенного - нельзя. 16 К - мелочи по сравнению с оставшимся объемом. Понял. Спасибо.
|
|
|
|
|
Jul 10 2015, 18:31
|
Участник

Группа: Участник
Сообщений: 73
Регистрация: 26-10-05
Пользователь №: 10 125

|
Цитата(KSN @ Jul 10 2015, 08:09)  Существует ли возможность с помощью встроенного бутлодера загружать шифрованную прошивку, так чтобы нельзя было ее дешифровать? В настоящее время использую собственный загрузчик, но с ростом семейства STM32F увеличивается мин. объем сектора. Объем кода загрузчика <3кБайт и отдавать ему 16кБайт - жалко. При помощи встроенного бутлодера грузите нешифрованный расшифровывальщик и шифрованную часть. При первом старте первую часть переписываете в sram и расшифровываетесь хоть на всю флешь.
|
|
|
|
|
Jul 10 2015, 20:38
|
Участник

Группа: Участник
Сообщений: 73
Регистрация: 26-10-05
Пользователь №: 10 125

|
Цитата(mantech @ Jul 11 2015, 01:30)  И кто помешает подключиться дебаггером и почитать, что вы там расшифровываете?  Уарт1 оставить для прошивки, pio для дебаггера "отпилить" ? По моему весь вопрос как спрятать -ключ-.. Если правильно додумал прошивка высылается заказчику девайса индивидуально, тогда схема... заказчик шлет уид процессора под него с ключем+уид генерится зашифрованная часть прошивки, уид не подошел - получили камень. Проблема если заказчик отльет свою схему с неотпиленными свд?
|
|
|
|
|
Jul 10 2015, 22:02
|

Гуру
     
Группа: Свой
Сообщений: 4 869
Регистрация: 28-02-08
Из: СПБ
Пользователь №: 35 463

|
QUOTE (mantech @ Jul 10 2015, 22:30)  И кто помешает подключиться дебаггером и почитать, что вы там расшифровываете?  Хе - хе, кто мешает, кто мешает, ... наивный чел, не протичавший, ни разу описание, не написавший свой крипто-загрузчик ... объясняю - подключиться дебагером равносильно стереть этот крипто-загрузчик; после записи он же лочиться!, во всяком случае для семейства STM32Fxxx without prodblem. QUOTE (Огурцов @ Jul 11 2015, 00:35)  загрузчик с ключами вы должны заливать сами, после чего можно спокойно отправлять заказчику зашифрованные обновления если вы отдаёте заказчику загрузчик, то отдавайте лучше сразу незашифрованные обновления камень не должен превращаться в камень при любом исходе загрузки - это собственность заказчика Огурцов, два момента! Первое это закриптованый загузчик внутри проца кем-то ЗАПРОГРАМИРОВАНЫЙ и залочен! (а ЕСЛИ нет, ... тогда ж..А!). Второе - загружаемая крипто-прога, ... про ключи забывем сразу, ... это что-то "металлическое" от вашей квартиры Огурцов. А собственность заказчика, это то что по договору! Пофукали, значит профукали и передали заказчику еще и исходники загрузчика.
|
|
|
|
|
Jul 10 2015, 22:04
|
Участник

Группа: Участник
Сообщений: 73
Регистрация: 26-10-05
Пользователь №: 10 125

|
Топикстартер ограничен в обьеме загрузчика, я так понимаю, как вариант затираемой части бутлодера с ключами вполне вариант?
|
|
|
|
|
Jul 10 2015, 22:26
|

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

|
Цитата(Aner @ Jul 11 2015, 01:02)  после записи он же лочиться! Это если делать "как правильно". Но в вопросе темы явно сказано: используя встроенный загрузчик. Поэтому если Цитата(Fedor @ Jul 10 2015, 21:31)  При помощи встроенного бутлодера грузите нешифрованный расшифровывальщик и шифрованную часть. то и отладчик не нужен, достаточно "нешифрованный расшифровывальщик и шифрованную часть" в смуляторе запустить.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Jul 10 2015, 22:56
|
Участник

Группа: Участник
Сообщений: 73
Регистрация: 26-10-05
Пользователь №: 10 125

|
Цитата(Сергей Борщ @ Jul 11 2015, 04:26)  Это если делать "как правильно". Но в вопросе темы явно сказано: используя встроенный загрузчик. Поэтому если то и отладчик не нужен, достаточно "нешифрованный расшифровывальщик и шифрованную часть" в смуляторе запустить. И дать ему у валидный uid присланный от заказчика к ТС, который + ключ чтобы все заработало.. Посмотрите на STemWin например, она валидует мк и пока CRCмодуль не запустишь она не заработает..
|
|
|
|
|
Jul 11 2015, 00:50
|
Гуру
     
Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588

|
Цитата(Aner @ Jul 10 2015, 22:02)  Огурцов, два момента! Первое это закриптованый загузчик внутри проца кем-то ЗАПРОГРАМИРОВАНЫЙ и залочен! я и говорю, этот кто-то - вы иначе - знаю двое - знает и свинья (с) мюллер, кажется Цитата(Aner @ Jul 10 2015, 22:02)  Второе - загружаемая крипто-прога, ... про ключи забывем сразу шифрование - это открытый алгоритм и закрытый ключ поэтому ключ обязан быть закрытым, а "крипто-прога" - не нужна Цитата(Aner @ Jul 10 2015, 22:02)  Пофукали, значит профукали и передали заказчику еще и исходники загрузчика. нет, вышедший из строя камень - целиком и полностью будет ваша проблема, даже если в договоре не прописано
|
|
|
|
|
Jul 11 2015, 08:02
|
Местный
  
Группа: Свой
Сообщений: 404
Регистрация: 3-12-04
Из: Новосибирск
Пользователь №: 1 304

|
Сорри, упустил из виду, что тут такие дебаты. По MCU: использую stm32f103R(V)BT6, STM32F205RB(V)T6, STM32F429(буквы не помню). Стандартно под загрузчик отдаю первые 1-3- страницы по 1кБайту или 1 по 16кБайт. Загрузчик залочен. Обновление прошивки производится по CAN. Мысль бродит, как так сделать, чтобы заказчик сам прошивал свои МК с помощью встроенного бутлодера, но чтобы самая первая передаваемая ему прошивка была зашифрована и не могла ни дешифроваться, ни зашита в МК с помощью программатора и т.д.(чтобы кристаллы не возить туда-обратно, заказчик сам купил кристаллы и сам прошил) Но видимо, без первого программирования залоченого бутлодера с помощью программатора никак.
|
|
|
|
|
Jul 11 2015, 08:26
|
Местный
  
Группа: Свой
Сообщений: 404
Регистрация: 3-12-04
Из: Новосибирск
Пользователь №: 1 304

|
Цитата(Aner @ Jul 11 2015, 14:24)  Можно через ж..у сделать конечно, например используя серийник чипа, как ключ. Но тогда нужно заказчика просить считать эти номера с камней и прислать вам. Прислали мне серийник камня. И...?
|
|
|
|
|
Jul 11 2015, 14:16
|
Участник

Группа: Участник
Сообщений: 73
Регистрация: 26-10-05
Пользователь №: 10 125

|
Как вариант на том же STM сделать свой программатор и шить по SWD В программатор поставить BGA корпус, SWD проложить на внутреннем слое Прошивку расшифровывать залоченным ключем в этом программаторе. Т.е. приложили в посадочное место камень прошились, потом припаяли. Или если нет опасений что просканят SWD шить уже припаянным, или если могут просканить шить бутлодер и зашифрованную часть, ключ передавать в мусорной куче байтов чтобы не нашли сканером.
Сообщение отредактировал Fedor - Jul 11 2015, 14:21
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|