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

Сорри, упустил из виду, что тут такие дебаты.

По MCU: использую stm32f103R(V)BT6, STM32F205RB(V)T6, STM32F429(буквы не помню). Стандартно под загрузчик отдаю первые 1-3- страницы по 1кБайту или 1 по 16кБайт. Загрузчик залочен. Обновление прошивки производится по CAN. Мысль бродит, как так сделать, чтобы заказчик сам прошивал свои МК с помощью встроенного бутлодера, но чтобы самая первая передаваемая ему прошивка была зашифрована и не могла ни дешифроваться, ни зашита в МК с помощью программатора и т.д.(чтобы кристаллы не возить туда-обратно, заказчик сам купил кристаллы и сам прошил) Но видимо, без первого программирования залоченого бутлодера с помощью программатора никак.

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


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

Можно через ж..у сделать конечно, например используя серийник чипа, как ключ. Но тогда нужно заказчика просить считать эти номера с камней и прислать вам.

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


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

Можно через ж..у сделать конечно, например используя серийник чипа, как ключ. Но тогда нужно заказчика просить считать эти номера с камней и прислать вам.

Прислали мне серийник камня. И...?

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


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

(чтобы кристаллы не возить туда-обратно, закачки сам купил кристаллы и сам прошил) Но видимо, без первого программирования залоченого бутлодера с помощью программатора никак.

Можно дать заказчику открытый бутлоадер и набор открытых ключей, по одному на каждое устройство. Заказчик шьет бутлоадер и прошивает по одному ключу в каждое устройство. После этого получает зашифрованную прошивку для каждого экземпляра. Это не мешает наделать клонов, но клоны не должны сосуществовать в одной сети CAN. Как вариант- каждый бутлоадер генерит новый ключ при первом запуске, случайным образом, заказчик считывает эти ключи и высылает производителю. Производитель с помощью этих ключей шифрует прошивки. В этом случае производитель точно знает число устройств у заказчика.

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


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

to khach, знать количество устройств очень полезно, но есть некоторые замечания:

1. Как только в руки заказчика попадает открытый загрузчик, то ничто ему не мешает дизассемблировать его.

2. Если шифруем прошивку открытым ключом, то пп1 и получаем доступную прошивку.

3. Сгенерировать новый ключ не так просто. Старшие семейства MCU имеют аппаратный RNG, младшие - нет, прийдется изголяться.

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


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

Как вариант на том же STM сделать свой программатор и шить по SWD

В программатор поставить BGA корпус, SWD проложить на внутреннем слое

Прошивку расшифровывать залоченным ключем в этом программаторе.

Т.е. приложили в посадочное место камень прошились, потом припаяли.

Или если нет опасений что просканят SWD шить уже припаянным, или если могут

просканить шить бутлодер и зашифрованную часть, ключ передавать в мусорной

куче байтов чтобы не нашли сканером.

Изменено пользователем Fedor

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


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

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

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

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

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

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

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

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

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

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