|
|
  |
stm32F10x- защита от чтения , использование flash как eeprom и собственный бутлоадер, нюансы реализации. |
|
|
|
Apr 17 2013, 09:29
|
Знающий
   
Группа: Свой
Сообщений: 771
Регистрация: 16-07-07
Из: Волгодонск
Пользователь №: 29 153

|
Цитата(Aner @ Apr 17 2013, 13:14)  Это в том случае, если коде-протект не установлен. Если установлен подключиться по JTAG не получиться. Получится то наверное получится, но прочитать прогу - нет. А перед записью сотрется флеш. Как я понимаю, никаких бэкдоров там нет. Вы пишите свой загрузчик и ставите фьюз защиты. После этого только программа из датафлеша сможет писать датафлеш (т.е. ваш загрузчик и та ваша прошивка, которую загрузчик зальет во флеш). Если вы подключите ножки boot таким образом, что запустится программа из SRAM, то писать и читать датафлеш она не сможет (только стерев его предварительно) Соответственно, нужна подпись вашей прошивки - чтобы загрузчик не залил что-то левое, которое к примеру передаст код загрузчика наружу
|
|
|
|
|
Apr 17 2013, 10:33
|
Знающий
   
Группа: Свой
Сообщений: 771
Регистрация: 16-07-07
Из: Волгодонск
Пользователь №: 29 153

|
Цитата(Aner @ Apr 17 2013, 14:16)  Немного не так. Вы пишите свой загрузчик и ставите фьюз защиты, затем вы загружаете рабочую прогу в SRAM, проверяете на соответсвие затем во флеш. Я пишу сразу во флеш, но это мелочи. Проверяю до загрузки первый блок - просто чтобы сразу отклонить что-то левое. Потом после окончания загрузки - все. Если проверка удачна - ставлю соответствующий статус в выделенной странице флеши - при включении загрузчик его проверяет и передает управление программе. Цитата Бэк-дор открыт теперь, несмотря на вашу подпись, поскольку доступ к SRAM есть. А оттуда можно вытащить все и ваш писаный загрузчик тоже, несмотря на то, что стоит защита. Нельзя. Читаем даташит на stm32f100x Цитата Once the protection byte has been programmed: ● Main Flash memory read access is not allowed except for the user code (when booting from main Flash memory itself with the debug mode not active). ● Pages 0-3 (for low- and medium-density value line devices), or pages 0-1 (for high- density value line devices) are automatically write-protected. The rest of the memory can be programmed by the code executed from the main Flash memory (for IAP, constant storage, etc.), but it is protected against write/erase (but not against mass erase) in debug mode or when booting from the embedded SRAM. ● All features linked to loading code into and executing code from the embedded SRAM are still active (JTAG/SWD and boot from embedded SRAM) and this can be used to disable the read protection. When the read protection option byte is altered to a memory-unprotect value, a mass erase is performed. ● When booting from embedded SRAM, Flash memory access through the code and through data read using DMA1 and DMA2 are not allowed. ● Flash memory access through data read using JTAG, SWV (serial wire viewer), SWD (serial wire debug), ETM and boundary scan are not allowed.
|
|
|
|
|
Apr 17 2013, 10:55
|

неотягощённый злом
     
Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643

|
Цитата(Aner @ Apr 17 2013, 13:14)  Это в том случае, если коде-протект не установлен. Если установлен подключиться по JTAG не получиться. Подключится можно, но считать прошивку нельзя пока не стёрты биты защиты. Более того можно стереть чип, а записать новое всё-равно не получится т.к. биты защиты не стираются командой chip-erase как в AVR. Нужно специально снимать биты защиты. Я не далее как позавчера на этот прикол наткнулся.
--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
|
|
|
|
|
Apr 17 2013, 11:47
|

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

|
Даташит тут не причём. Проблема, бек дора образуется при написании вашего собственного загрузчика, в отличие от апаратного. А вот теперь вопрос к тем, кто пишет свой загрузчик. Вы подписываете одним из алгоритмов цифровой подписи? Или нет? И сколько ресурсов вы отдаете под это? QUOTE (demiurg_spb @ Apr 17 2013, 13:55)  Подключится можно, но считать прошивку нельзя пока не стёрты биты защиты. Более того можно стереть чип, а записать новое всё-равно не получится т.к. биты защиты не стираются командой chip-erase как в AVR. Нужно специально снимать биты защиты. Я не далее как позавчера на этот прикол наткнулся. Похоже, только начинаете с ними работать.
|
|
|
|
|
  |
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|