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

 
 
> Защита секция кода во 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
Ответов
Schtirlitz
сообщение Feb 13 2008, 09:31
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 27
Регистрация: 7-02-06
Из: Москва
Пользователь №: 14 070



Надо отделить мух от котлет. Ибо проблема надежности устройства не ограничивается только ПО микроконтроллера. Если у вас программные сбои происходят от разряда пьезозажигалки, то программа тут совершенно не причем- все проблемы решаются правильной трассировкой. Для этого и существуют испытания на ЭМС и разные группы жесткости устройств.

ИМХО для программиста достаточно встроенного WDT (правда некоторые спецы по надежности советуют использовать внешний) и грамотно написанной программы.

Вероятность отказа устройства 10 в минус 9 степени - это попахивает авиацией, резервированием и прочими усложнениями:-))
Для "гражданских" устройств 10 в минус 5 степени уже хорошо.

Сообщение отредактировал Schtirlitz - Feb 13 2008, 09:32
Go to the top of the page
 
+Quote Post
Дон Амброзио
сообщение Feb 13 2008, 09:44
Сообщение #3


Местный
***

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



Цитата(Schtirlitz @ Feb 13 2008, 12:31) *
Надо отделить мух от котлет. Ибо проблема надежности устройства не ограничивается только ПО микроконтроллера. Если у вас программные сбои происходят от разряда пьезозажигалки, то программа тут совершенно не причем- все проблемы решаются правильной трассировкой. Для этого и существуют испытания на ЭМС и разные группы жесткости устройств.

Я в курсе. Но повторю:
Как говорится: лучше перебдеть, чем недобдеть.

Ибо нафига мне "суперпупернадёжная" система, у которой происходит один сбой в год, но он НЕ ОБНАРУЖИВАЕТСЯ СИСТЕМОЙ. Я лучше возьму систему, у которой сбои происходят каждый день, ну у которой эти сбои НЕ ПРОХОДЯТ НЕЗАМЕЧЕННЫМИ СИСТЕМОЙ
Т.е. я предлагаю даже УХУДШАТЬ надёжность работы девайса если это позволит увеличить вероятность обнаружения всех сбоев


--------------------
После устранения бага в программе она стала работать....хуже
Go to the top of the page
 
+Quote Post
Schtirlitz
сообщение Feb 13 2008, 10:01
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 27
Регистрация: 7-02-06
Из: Москва
Пользователь №: 14 070



Цитата(Дон Амброзио @ Feb 13 2008, 12:44) *
Ибо нафига мне "суперпупернадёжная" система, у которой происходит один сбой в год, но он НЕ ОБНАРУЖИВАЕТСЯ СИСТЕМОЙ. Я лучше возьму систему, у которой сбои происходят каждый день, ну у которой эти сбои НЕ ПРОХОДЯТ НЕЗАМЕЧЕННЫМИ СИСТЕМОЙ
Т.е. я предлагаю даже УХУДШАТЬ надёжность работы девайса если это позволит увеличить вероятность обнаружения всех сбоев[/i]

А как быть с вероятностью сбоя программы обнаружения сбоев?
Не нужно изобретать велосипед: если нужна вероятность отказа устройства 10 в минус 9-й степени - применяйте резервирование, мажоритарные схемы итд.
Go to the top of the page
 
+Quote Post
Дон Амброзио
сообщение Feb 13 2008, 11:14
Сообщение #5


Местный
***

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



Цитата(Schtirlitz @ Feb 13 2008, 13:01) *
А как быть с вероятностью сбоя программы обнаружения сбоев?

А для этого я использую такую организацию кода, когда все участки друг друга тестируют. Т.е. когда вся программа предстваляет собой как бы детектор сбоев и вся её организация направлена на то, чтобы как можно раньше определить наличие и причину сбоя. Хотя конечно разумеется никакие программные навороты не дадут 100% обнаружения сбоев.

Цитата(Schtirlitz @ Feb 13 2008, 13:01) *
Не нужно изобретать велосипед: если нужна вероятность отказа устройства 10 в минус 9-й степени - применяйте резервирование, мажоритарные схемы итд.

Я в курсе.

Но даже если Вы грамотным проектированием железа сделаете вероятность сбоя 10 в минус 15-й, то всё равно используя программые методы можно ещё увеличить такой параметр надёжности как вероятность обнаружения имевших места сбоев

Цитата(galjoen @ Feb 13 2008, 13:19) *
Как можно программными методами отследить случайный переход на случайную точку программы?


И как же ? По вашему мнению?


Я вот например имею некоторые мысли (даже не мысли, а реально работающие программы, в которых это отслеживается (с некоторой долей вероятности успеха разумеется)), но хотел бы услышать сперва Ваши

Цитата(mig2002 @ Feb 13 2008, 14:01) *
Возвращаясь к первоначальному вопросу могу посоветовать применить при написании программы теорию графов.
Нужно нумеровать состояния программы. При переходе в новое состояние, анализировать предыдущее и т.д.
На практике ввести переменную STATE, задавать ей значение только перед переходом в новое состояние.

Спасибо... Что-то подобное и делаю, только использую не STATE а регистр кода доступа к логическому сегменту


--------------------
После устранения бага в программе она стала работать....хуже
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, 12:31) И...   Feb 13 2008, 09:41
- - 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
- - Rst7   ЦитатаА у вас как с ЭМС? С наносекундными импульса...   Feb 13 2008, 12:50
|- - galjoen   Цитата(Rst7 @ Feb 13 2008, 15:50) У меня ...   Feb 13 2008, 14:34
|- - defunct   Цитата(galjoen @ Feb 13 2008, 16:34) Може...   Feb 13 2008, 15:12
|- - Дон Амброзио   Цитата(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 Текстовая версия Сейчас: 2nd August 2025 - 00:46
Рейтинг@Mail.ru


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