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

 
 
> Защита секция кода во FLASH в ATmega, Как защититься от несанкционированного выполнения кода
Дон Амброзио
сообщение Feb 11 2008, 17:42
Сообщение #1


Местный
***

Группа: Участник*
Сообщений: 323
Регистрация: 11-02-08
Пользователь №: 34 947



А кто как защищает код в MCU от несанкционированного выполнения в результате случайного перехода из одной точки программы в другую от воздействия помехонесущего электромагнитного поля (искажения записанного в счётчике команд значения). А?

Приведу пример
--------------------
lab_1_input: ldi R16 , $00
mov R16 , $98
...
lab_1_output: mov R17 , R5
-----------------------
lab_2_1_input: mov R18, R17


Т.е. допустим программа предусматривает переход к выполнению кодового фрагмента, начинающегося с метки lab_2_1_input только после отработки до конца фрагмента [lab_1_input;lab_1_output]

А представим , что от помехи произошёл случайный переход из произвольной точки 1-го фрагмента кода в произвольную точку 2-го фрагмента кода....

Как вы ПРОГРАММНО отлавливаете такие ситуации?

Т.е. как Вы реализовываете в своих программах для микроконтроллеров ATmega механизм защиты FLASH-памяти от несанкционированного выполнения кода. Ну т.е. как контролировать, что в данный фрагмент кода вошли не где попало, а через строго определённые на этапе проектирования программы, точки

Цитата(Дон Амброзио @ Feb 11 2008, 20:36) *
А кто как защищает код в MCU от несанкционированного выполнения в результате случайного перехода из одной точки программы в другую от воздействия помехонесущего электромагнитного поля (искажения записанного в счётчике команд значения).

Кстати, причины такого случайного джампа могут быть не только в разрушении PC.
Может также случайным образом измениться содержимое ячейки FLASH или содержимое хранимой в ОЗУ таблицы переходов... В любом случае МОЖЕТ произойти переход в точку некоторого логического сегмента кода, которая не предусмотрена данным логическим сегментом FLASH


--------------------
После устранения бага в программе она стала работать....хуже
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Rst7
сообщение Feb 13 2008, 12:50
Сообщение #2


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
А у вас как с ЭМС? С наносекундными импульсами? Если скажете, что от них не сбивается (класс A) - не поверю!!!


У меня стандарт на оборудование (EN54) требует не сбиваться, максимум - кратковременное нарушение индикации (ну типа, когда статразряд влетает в светодиод, он подмигивает wink.gif ). И работает.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
galjoen
сообщение Feb 13 2008, 14:34
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



Цитата(Rst7 @ Feb 13 2008, 15:50) *
У меня стандарт на оборудование (EN54) требует не сбиваться, максимум - кратковременное нарушение индикации (ну типа, когда статразряд влетает в светодиод, он подмигивает wink.gif ). И работает.

Рискну предположить, что у вас всё работает из-за того, что всё это достаточно большое, и в железном корпусе. Я это условие как-то в том посте упустил.
У меня-то пластмассовый корпус 120*60*32 мм. И когда они этот гвоздик, в котором 8 кВ за единицы наносекунд нарастает, к корпусу подносят (к разным местам), то до процессора и других микросхем - от него менее 15 мм расстояние. Это почище той зажигалки, которой Дон Амброзио свои процессоры тестирует. Пробовали экраны металлические делать - эффект 0-й, а удорожание не 0-е. И всё равно это не поможет т.к. кабеля-то наружу торчат. От них тоже сбивается.

Но всё само восстанавливается (класс B )

Цитата(defunct @ Feb 13 2008, 17:09) *
Представим, что у нас в МК прошит бутлоадер. В нем есть потенциально фатальная для девайса команда стирания страницы флеш, тогда единственным направлением для защиты от "случайных прыжков" - будет правильное проектирование ПП и снижение уровня помех.

У меня тоже бутлоадер есть в области загрузчика. Перед тем как программировать я CRC переменных проверяю. Согласен, что защита не 100%. Может ведь и после проверки прыгнуть. Но 99.9%. А если быть точным - то отношение кол-ва команд с которых бутлоадер несанкционированно запустится к 65536 (столько слов у AVR с 128 в конце).
Go to the top of the page
 
+Quote Post
defunct
сообщение Feb 13 2008, 15:12
Сообщение #4


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(galjoen @ Feb 13 2008, 16:34) *
Может ведь и после проверки прыгнуть. Но 99.9%. А если быть точным - то отношение кол-ва команд с которых бутлоадер несанкционированно запустится к 65536 (столько слов у AVR с 128 в конце).

угу, прыжек же "случайный" можно папасть в любую точку, по законам Мерфи попадем ровно на erase sequence после всех проверок. Защититься тут никак нельзя, а вот предотвратить "командировку для устранения последствий" - можно. Например, можно хранить копию основной прошивки во внешней eeprom'ке, при старте бутлоадером проверить CRC прошивки, если не совпадает - то попытаться загрузить прошивку из внешней eeprom.

Я собсно хочу отметить, что задача автора ветки - нерешаемая. Ее можно только обойти, но не решить.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Дон Амброзио   Защита секция кода во FLASH в ATmega   Feb 11 2008, 17:42
- - Liseev   А как вы будете защищать "механизм защиты от ...   Feb 11 2008, 18:05
|- - Дон Амброзио   Цитата(Liseev @ Feb 11 2008, 21:05) Испол...   Feb 11 2008, 18:40
|- - Liseev   Цитата(Дон Амброзио @ Feb 11 2008, 21:40)...   Feb 11 2008, 19:32
|- - SasaVitebsk   Цитата(Дон Амброзио @ Feb 11 2008, 22:40)...   Feb 11 2008, 21:34
|- - Дон Амброзио   Цитата(SasaVitebsk @ Feb 12 2008, 00:34) ...   Feb 11 2008, 21:52
||- - SasaVitebsk   Цитата(Дон Амброзио @ Feb 12 2008, 01:52)...   Feb 11 2008, 22:45
||- - Дон Амброзио   Цитата(SasaVitebsk @ Feb 12 2008, 01:45) ...   Feb 11 2008, 23:08
||- - SasaVitebsk   Цитата(Дон Амброзио @ Feb 12 2008, 03:02)...   Feb 11 2008, 23:11
|||- - Дон Амброзио   Цитата(SasaVitebsk @ Feb 12 2008, 02:11) ...   Feb 11 2008, 23:31
|||- - SasaVitebsk   Цитата(Дон Амброзио @ Feb 12 2008, 03:31)...   Feb 12 2008, 08:41
||||- - Дон Амброзио   Цитата(SasaVitebsk @ Feb 12 2008, 11:41) ...   Feb 12 2008, 12:01
|||- - defunct   Цитата(Дон Амброзио @ Feb 12 2008, 01:31)...   Feb 13 2008, 12:47
|||- - Дон Амброзио   Цитата(defunct @ Feb 13 2008, 15:47) это ...   Feb 13 2008, 16:08
|||- - defunct   ЦитатаА кто как организует код программы, чтобы пр...   Feb 13 2008, 23:51
|||- - Дон Амброзио   Цитата(defunct @ Feb 14 2008, 02:51) Дете...   Feb 14 2008, 00:30
|||- - defunct   Цитата(Дон Амброзио @ Feb 14 2008, 02:13)...   Feb 14 2008, 00:33
||||- - Дон Амброзио   Цитата(defunct @ Feb 14 2008, 03:33) Пото...   Feb 14 2008, 00:49
|||||- - defunct   Цитата(Дон Амброзио @ Feb 14 2008, 02:49)...   Feb 14 2008, 00:55
|||||- - Дон Амброзио   Цитата(defunct @ Feb 14 2008, 03:55) Вооб...   Feb 14 2008, 01:26
|||||- - defunct   Цитата(Дон Амброзио @ Feb 14 2008, 03:21)...   Feb 14 2008, 01:34
||||||- - Дон Амброзио   Цитата(defunct @ Feb 14 2008, 04:34) Поче...   Feb 14 2008, 01:40
||||||- - defunct   Цитата(Дон Амброзио @ Feb 14 2008, 03:40)...   Feb 14 2008, 01:43
|||||- - singlskv   Цитата(Дон Амброзио @ Feb 14 2008, 04:26)...   Feb 14 2008, 09:38
||||- - Дон Амброзио   Цитата(defunct @ Feb 14 2008, 03:33) А во...   Feb 14 2008, 01:05
|||||- - defunct   Цитата(Дон Амброзио @ Feb 14 2008, 02:56)...   Feb 14 2008, 01:06
||||- - galjoen   Цитата(defunct @ Feb 14 2008, 03:33) Ну и...   Feb 14 2008, 07:11
||||- - defunct   Цитата(galjoen @ Feb 14 2008, 09:11) Сове...   Feb 14 2008, 15:18
||||- - Дон Амброзио   Цитата(galjoen @ Feb 14 2008, 10:11) У AR...   Feb 14 2008, 15:35
||||- - singlskv   Цитата(Дон Амброзио @ Feb 14 2008, 18:35)...   Feb 14 2008, 18:10
||||- - Дон Амброзио   Цитата(singlskv @ Feb 14 2008, 21:10) Ой....   Feb 14 2008, 18:45
||||- - singlskv   Цитата(Дон Амброзио @ Feb 14 2008, 21:35)...   Feb 14 2008, 18:51
|||- - Дон Амброзио   Цитата(Дон Амброзио @ Feb 14 2008, 03:30)...   Feb 14 2008, 00:35
|||- - defunct   Цитата(Дон Амброзио @ Feb 14 2008, 02:30)...   Feb 14 2008, 00:45
||- - galjoen   Цитата(Дон Амброзио @ Feb 12 2008, 02:08)...   Feb 12 2008, 00:33
|- - galjoen   Цитата(Дон Амброзио @ Feb 11 2008, 20:42)...   Feb 11 2008, 22:05
- - Непомнящий Евгений   Ну как вариант - расставить assert-ы по всей проге...   Feb 11 2008, 19:26
|- - Дон Амброзио   Цитата(Непомнящий Евгений @ Feb 11 2008, 22...   Feb 11 2008, 20:15
- - arttab   Средства должны оправдывать цели. уровень защиты о...   Feb 12 2008, 01:45
|- - Дон Амброзио   Цитата(arttab @ Feb 12 2008, 04:45) Средс...   Feb 12 2008, 05:05
|- - VladimirYU   Цитата(Дон Амброзио @ Feb 12 2008, 08:05)...   Feb 12 2008, 06:23
||- - Дон Амброзио   Цитата(VladimirYU @ Feb 12 2008, 09:23) К...   Feb 12 2008, 06:35
|- - adc   Цитата(Дон Амброзио @ Feb 12 2008, 08:05)...   Feb 12 2008, 12:49
||- - Дон Амброзио   Цитата(adc @ Feb 12 2008, 15:49) Вот вот....   Feb 12 2008, 13:03
||- - SasaVitebsk   Цитата(Дон Амброзио @ Feb 12 2008, 17:03)...   Feb 12 2008, 13:36
|- - tyro   Цитата(Дон Амброзио @ Feb 12 2008, 08:05)...   Feb 13 2008, 07:56
|- - Дон Амброзио   Цитата(tyro @ Feb 13 2008, 10:56) Обсужда...   Feb 13 2008, 09:39
|- - zltigo   Цитата(Дон Амброзио @ Feb 13 2008, 12:36)...   Feb 13 2008, 09:42
|- - Dog Pawlowa   Цитата(zltigo @ Feb 13 2008, 13:42) За те...   Feb 13 2008, 09:49
|- - zltigo   Цитата(Dog Pawlowa @ Feb 13 2008, 12:49) ...   Feb 13 2008, 10:02
|- - Дон Амброзио   Цитата(zltigo @ Feb 13 2008, 13:02) Для н...   Feb 13 2008, 10:51
- - Непомнящий Евгений   ИМХО, стратегия поведения после обнаружения ошибки...   Feb 12 2008, 06:39
|- - VladimirYU   Цитата(Непомнящий Евгений @ Feb 12 2008, 09...   Feb 12 2008, 06:43
- - Kris2007   А че такое бывает чтобы из-за электромагнитных пом...   Feb 12 2008, 13:21
|- - Дон Амброзио   Цитата(Kris2007 @ Feb 12 2008, 16:21) А ч...   Feb 12 2008, 16:18
|- - SasaVitebsk   Цитата(Дон Амброзио @ Feb 12 2008, 20:18)...   Feb 12 2008, 17:00
||- - Дон Амброзио   Цитата(SasaVitebsk @ Feb 12 2008, 20:00) ...   Feb 12 2008, 17:14
||- - SasaVitebsk   Цитата(Дон Амброзио @ Feb 12 2008, 21:14)...   Feb 12 2008, 19:16
||- - Дон Амброзио   Цитата(SasaVitebsk @ Feb 12 2008, 22:16) ...   Feb 12 2008, 19:56
||- - SasaVitebsk   Цитата(Дон Амброзио @ Feb 12 2008, 23:56)...   Feb 12 2008, 21:34
||- - Дон Амброзио   Цитата(SasaVitebsk @ Feb 13 2008, 00:34) ...   Feb 12 2008, 21:44
|- - adc   Цитата(Дон Амброзио @ Feb 12 2008, 19:18)...   Feb 13 2008, 06:12
|- - Дон Амброзио   Цитата(adc @ Feb 13 2008, 09:12) Всегда п...   Feb 13 2008, 09:26
||- - adc   Цитата(Дон Амброзио @ Feb 13 2008, 12:26)...   Feb 13 2008, 09:39
||- - Дон Амброзио   Цитата(adc @ Feb 13 2008, 12:39) Как можн...   Feb 13 2008, 09:57
||- - galjoen   Цитата(Дон Амброзио @ Feb 13 2008, 12:57)...   Feb 13 2008, 10:19
||- - galjoen   Цитата(galjoen @ Feb 13 2008, 13:19) Я т...   Feb 13 2008, 10:53
||- - adc   Цитата(galjoen @ Feb 13 2008, 13:19) Цита...   Feb 13 2008, 11:25
||- - galjoen   Цитата(adc @ Feb 13 2008, 14:25) Но ведь ...   Feb 13 2008, 12:24
|- - galjoen   Цитата(adc @ Feb 13 2008, 09:12) Всегда п...   Feb 13 2008, 09:41
- - Rst7   ЦитатаНе я выбираю MCU: что мне дали, то я и юзаю ...   Feb 12 2008, 18:23
|- - Дон Амброзио   Цитата(Rst7 @ Feb 12 2008, 21:23) Если не...   Feb 12 2008, 18:50
- - arttab   хорошо что не подрались... может для начала оп...   Feb 13 2008, 02:02
- - Schtirlitz   Надо отделить мух от котлет. Ибо проблема надежнос...   Feb 13 2008, 09:31
|- - Дон Амброзио   Цитата(Schtirlitz @ Feb 13 2008, 12:31) И...   Feb 13 2008, 09:41
|- - Дон Амброзио   Цитата(Schtirlitz @ Feb 13 2008, 12:31) Н...   Feb 13 2008, 09:44
|- - Schtirlitz   Цитата(Дон Амброзио @ Feb 13 2008, 12:44)...   Feb 13 2008, 10:01
|- - Дон Амброзио   Цитата(Schtirlitz @ Feb 13 2008, 13:01) А...   Feb 13 2008, 11:14
- - mig2002   Возвращаясь к первоначальному вопросу могу посовет...   Feb 13 2008, 11:01
- - mig2002   В принципе, однозначного решения данного вопроса б...   Feb 13 2008, 11:43
|- - Дон Амброзио   Цитата(mig2002 @ Feb 13 2008, 14:43) В пр...   Feb 13 2008, 12:09
|- - mig2002   Цитата(Дон Амброзио @ Feb 13 2008, 14:09)...   Feb 13 2008, 13:20
- - Дон Амброзио   Вообще сейчас скажу крамольную мысль (только чур н...   Feb 13 2008, 12:16
|- - Дон Амброзио   Цитата(defunct @ Feb 13 2008, 18:12) угу,...   Feb 13 2008, 15:51
|- - defunct   Цитата(Дон Амброзио @ Feb 13 2008, 17:51)...   Feb 13 2008, 17:16
|- - Дон Амброзио   Цитата(defunct @ Feb 13 2008, 20:16) Я же...   Feb 13 2008, 18:35
|- - galjoen   Цитата(Дон Амброзио @ Feb 13 2008, 21:35)...   Feb 13 2008, 19:17
- - IgorKossak   Считаю своим долгом всем напомнить, что неплохо бы...   Feb 13 2008, 13:26
- - adnega   Недавно дорабатывал текстовое информационное табло...   Feb 13 2008, 13:50
- - defunct   ЦитатаПосле аппаратных доделок табло перестало лов...   Feb 13 2008, 14:09
- - Rst7   ЦитатаУ меня-то пластмассовый корпус 120*60*32 мм....   Feb 13 2008, 14:41
|- - galjoen   Цитата(Rst7 @ Feb 13 2008, 17:41) И в под...   Feb 13 2008, 15:53
|- - Rst7   Цитата(galjoen @ Feb 13 2008, 17:53) Объя...   Feb 14 2008, 06:25
- - Дон Амброзио   Не секрет, что стоимость простых MCU упала до стои...   Feb 14 2008, 15:56
|- - zltigo   Цитата(Дон Амброзио @ Feb 14 2008, 18:56)...   Feb 14 2008, 16:05
- - Rst7   ЦитатаСтранно.. Я читал совершенно другие "ме...   Feb 14 2008, 17:35
3 страниц V   1 2 3 >


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

 


RSS Текстовая версия Сейчас: 29th June 2025 - 04:57
Рейтинг@Mail.ru


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