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

 
 
19 страниц V  « < 8 9 10 11 12 > »   
Closed TopicStart new topic
> Защита секция кода во FLASH в ATmega, Как защититься от несанкционированного выполнения кода
galjoen
сообщение Feb 16 2008, 13:23
Сообщение #136


Знающий
****

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



Цитата(Дон Амброзио @ Feb 16 2008, 15:44) *
А если проверять перед записью не один регистр, а два, то вероятность случайной записи можно уменьшить в 65536 раз

Не успеем - там 4 такта всего. А две проверки по 1 такту и два brne тоже по 1 такту =4 такта.
Можно только добавить ещё один sbrc перед самим spm, и этим уменьшить вероятность ещё в 2 раза.
Цитата(Дон Амброзио @ Feb 16 2008, 15:44) *
Вот и посчитаёте: какова вероятность, что в обоих регистрах R17 и R18 будет записано одно и тоже число

Вообще-то вероятность абсолютно такая-же, как и у того, что в один регистр будет записано какое-то определённое число.
Цитата(Дон Амброзио @ Feb 16 2008, 15:44) *
Потому что заказчику не объянишь, что это мол я не сделал ни каких программных защит-ловушек из -за того, что это: "слижком сложно", что "СИ-компилятор не поддерживает такие конструкции"

Но зато "счастливого" владельца глючящего девайса можете утешить тем, что программа написана на языке высокого уровня СИ (во крута biggrin.gif ) и что она переносима и не привязана к конкретным архитектурным особенностям данного процессора lol.gif

+1
А я вообще считаю, что для АВР смысла нет на C писать. В программах управления чем-либо (ИМХО АВР только в таких применениях с АРМ конкурентоспособен) переносимости это не добавит т.к. всё к регистрам ввода-вывода привязано. Как встроенные функции C (сделанные такими для переносимости) например с USART работают - знаете. Неужели кого-то они устраивают! Всё равно нормальные люди сами пишут. Ну и где после этого переносимость?
Go to the top of the page
 
+Quote Post
bill_vs
сообщение Feb 16 2008, 15:56
Сообщение #137


Участник
*

Группа: Участник
Сообщений: 50
Регистрация: 16-04-05
Из: СПб
Пользователь №: 4 208



Цитата(Дон Амброзио @ Feb 12 2008, 19:18) *
Бывает, бывает. Молодой человек. Я написал тестовую прогу для ATmega8 которая представляет собой следующее:
.cseg
.org 0
;-----------------
.set Number = 0
;-----------------
Begin_Loop :
.set Number = Number +1
ldi R16 , Number
nop
.............
nop
cpi R16 , Number
breq PC+0x02
rjmp Crash
;-----------------------
rjmp Begin_Loop
;-----------------------
Crash :
; Зажечь светодиод
...
; Остановиться
;------------------------
...


Подскажите, пожалуйста, как Вы определили, что сбился PC, а не R16?
Go to the top of the page
 
+Quote Post
bzx
сообщение Feb 16 2008, 16:48
Сообщение #138


Местный
***

Группа: Свой
Сообщений: 482
Регистрация: 5-07-05
Из: Санкт-Петербург
Пользователь №: 6 528



Цитата(bill_vs @ Feb 16 2008, 18:56) *
Подскажите, пожалуйста, как Вы определили, что сбился PC, а не R16?

PC - это священная корова!!!


--------------------
Для связи email: info собака qbit.su
Go to the top of the page
 
+Quote Post
galjoen
сообщение Feb 16 2008, 17:19
Сообщение #139


Знающий
****

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



Цитата(bill_vs @ Feb 16 2008, 18:56) *
Подскажите, пожалуйста, как Вы определили, что сбился PC, а не R16?

Ну ещё мог сбиться бит Z из регистра SREG. Для проверки чисто сбоя PC всего 1 команда нужна rjmp сам на себя. Собака есно при этом запрещена д.б.
Но это ничего не меняет. Если предположить, что это R16 сбивался, то сбой регистра R30=ZL или R31=ZH перед ijmp или icall к тем-же результатам приведёт, что и сбой PC. Как и сбой в ОЗУ перед командой ret. Или сбой указателя стека.
Я считаю, что тема эта гораздо шире стала, чем просто сбои PC. Тут защита от сбоев вообще рассматривается. Неправильно написал. Д.б. так - минимизация последствий аппаратных сбоев. Или минимизация вероятности того, что аппаратный сбой тяжелый урон нанесёт.
Да, ещё добавить забыл, что АВР всего-лишь как пример рассматриваю. Так сказать - виртуальный микроконтроллер.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Feb 16 2008, 17:47
Сообщение #140


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



0. Перестаете думать, как работать со сбоящим дерьмом, так, чтобы скрыть от пользователей, что они имеют дело с дерьмом.
Ознакамливаетесь c приложением. По результатам ознакомления возможны два варианта
1. Привлекаете фирму Atmel за выпуск сбоящего дерьма не соответсвующего заявленным характеристикам.
2. Собираетесь с умом и думаете о том, как вам удалось создать сбоящее дерьмо.
Прикрепленные файлы
Прикрепленный файл  Reliability_Qualification_Report.rar ( 267.27 килобайт ) Кол-во скачиваний: 183
 


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Baser
сообщение Feb 16 2008, 18:08
Сообщение #141


Просто Che
*****

Группа: Свой
Сообщений: 1 567
Регистрация: 22-05-07
Из: ExUSSR
Пользователь №: 27 881



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

Почитал я это все субботним вечером и даже смешно стало:
Да какое потребителю дело, какое количество сбоев происходит в купленной им системе и какое количество сбоев система фиксирует. Потребителю важна только конечная работоспособность системы и отсутствие последствий внутренних сбоев.

А обеспечить отсутствие последствий сбоев чисто программными методами невозможно. Гораздо дешевле и надежней аппаратные средства (внешние и внутренние блокировки).

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

з.ы. хотя воды тут было вылито море, пару интересных идей пригодных для применения я все же услышал, правда больше от оппонентов smile.gif
Все же остальное, это, как я уже писал, или искусство ради искусства, или что-то, напоминающее маниакальную фобию.
Go to the top of the page
 
+Quote Post
arttab
сообщение Feb 16 2008, 18:36
Сообщение #142


Профессионал
*****

Группа: Свой
Сообщений: 1 432
Регистрация: 7-12-04
Из: Новосибирск
Пользователь №: 1 371



Baser, вот именно что,
Цитата
Потребителю важна только конечная работоспособность системы и отсутствие последствий внутренних сбоев.

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

Цитата
Гораздо дешевле и надежней аппаратные средства (внешние и внутренние блокировки).

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

А какие проблемы бывают на объектах здесь могут многие рассказать. Так что тема актуальна.


--------------------
OrCAD, Altium,IAR, AVR....
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Feb 16 2008, 19:24
Сообщение #143


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(zltigo @ Feb 16 2008, 21:47) *
0. Перестаете думать, как работать со сбоящим дерьмом...

Интересно в этой связи вспомнить историю с контролем памяти в компьютерах.
Память имела контрольный бит, который при неправильном чтении взводил триггер ошибки.
Я собственноручно проектировал такую систему. Один триггер для ПЗУ, второй триггер для ОЗУ.
Вероятность обнаружения сбоя повышалась многократно, вот она, мечта!
Но стоило немного продвинуться технологии, как оказалось, что это все не нужно.
Нет, конечно можно из конфетки сделать сбоящее дерьмо неграмотным проектированием и(или) желанием сэкономить, и барахтаться в этом дерьме, и есть, есть люди, готовые завести народ в этот тупик :-)


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
defunct
сообщение Feb 16 2008, 23:07
Сообщение #144


кекс
******

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



Цитата(zltigo @ Feb 16 2008, 19:47) *
2. Собираетесь с умом и думаете о том, как вам удалось создать сбоящее дерьмо.

+1000
Очень помогает.
Go to the top of the page
 
+Quote Post
Непомнящий Евген...
сообщение Feb 17 2008, 07:36
Сообщение #145


Знающий
****

Группа: Свой
Сообщений: 771
Регистрация: 16-07-07
Из: Волгодонск
Пользователь №: 29 153



Цитата(Дон Амброзио @ Feb 16 2008, 15:44) *
Но зато "счастливого" владельца глючящего девайса можете утешить тем, что программа написана на языке высокого уровня СИ (во крута biggrin.gif ) и что она переносима и не привязана к конкретным архитектурным особенностям данного процессора lol.gif


Понимаете в чем проблема - чтобы кого-то утешить, надо еще этого кого-то иметь. Если я буду писать прошивку год и а потом каждой пожелание клиента вносить в нее месяц - то утешать просто некого будет. Мои девайсы не будут продаваться...

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

Я отчетливо понимаю, что есть области, где необходим такой подход, как описываете вы. Но их сравнительно немного...


Цитата(galjoen @ Feb 16 2008, 16:23) *
А я вообще считаю, что для АВР смысла нет на C писать. В программах управления чем-либо (ИМХО АВР только в таких применениях с АРМ конкурентоспособен) переносимости это не добавит т.к. всё к регистрам ввода-вывода привязано. Как встроенные функции C (сделанные такими для переносимости) например с USART работают - знаете. Неужели кого-то они устраивают! Всё равно нормальные люди сами пишут. Ну и где после этого переносимость?


А я считаю по другому. Привязку к регистрам вполне можно "опустить" в несколько четко определенных мест и менять только их при переходе к другому процу.
Мой хлеб как раз и состоит в написании программ управления чем-либо по очень разным протоколам, которые в свою очередь управляются по другим протоколам с компьютерных систем или непосредственно с пульта пользователем. И мне представляется что такие задачи очень хорошо "отвязываются" от конкретного железа и разбиваются на отдельные слабозависимые блоки. И С /С++ здесь прекрасно работают....



offtopic
Кстати, что это за фольклорный персонаж "Дохтур туамосец" - тут его пару раз упоминали. Гугл выдал только пару ссылок на телесисы...
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Feb 17 2008, 08:58
Сообщение #146


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Пока народ разогрет всем этим бредом... прошу отнестись серьезно к тому, что я хочу сказать.
Хочу детально проработать вопрос по spm и целостности флеша, для чего сваять простенькую модель:
Код
void main(void)
{
  avr_init();
while(1)
{
  _IJMP(random(0xffff));// *)
}
return(0);
}


*) 0xFFFF вариант для меги 64. Для более мелких - надо учесть размер шины адреса

Методика:
1. забили весь флеш, чтобы 0xFF было минимум.
2. Запомнили CRC
3. ставим эту байду на несколько часов
4. Отвечаем 2 defunct smile.gif

ВОПРОС О СОСТОЯТЕЛЬНОСТИ МОДЕЛИ:
покакит ли это все с псевдослучайными числами с нормальным распределением?
Очень жду комментариев.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Feb 17 2008, 09:37
Сообщение #147


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Непомнящий Евгений @ Feb 17 2008, 10:36) *
Вы забываете, что есть очень разные области применения устройств. Есть устройства, которое может сглюкивать раз в день.....

Устойства "сглюкивающие" раз в день не имею права на существование в принципе. Должна-же быть какая-то нижняя планка качества. Ни одно из микроконтроллерных устройств работающих в нормальной для контроллера среде не должно глючить, чаще, чем наработка на отказ отнормированная производителем. Если указанные условия не приемлимы, или не приемлимо вообще само слово отказ, то эта проблема решается совершенно другими способами. Высасывание из пальца одной из множества гипотетически возможных причин сбоя и мужественная борьба с ней софтовыми методами с принесением в жертву качества, надежности и сопровождаемости кода совершенное умопомрачение.
Тут поминалась Ядерная Энергетика? Так получилось, что я с ней сталкивался. Ядерный реактор это именно тот случай, когда последствий от отказов быть не должно. Подчеркиваю - последствий а не отказов, кои нормируются. Сделать это тяжело и безумно дорого. Что касается софта, то написанного в рекламируемом здесь стиле софта там не будет близко и на пушечный выстел. Причина проста - софт должен быть верифицирован, как минимум по формальным признакам - написан с использованием инструментальных средств минимизирующих вероятность ошибки человека, в конструкциях языка не должны быть использованы выражения могущие вызывать потенциальные неоднозначности, данные должныбыть четко структурированы, инструментальные средства должны быть в свою очередь проверены временем и достаточно консервативны, разработчики софта должны, извините, соответствовать определенному образовательному цензу...

При всем этом совершено очевидным является тот факт, что устройство может не выполнить свою функцию в нужный момент времени. Посему резервирование прежде всего. неезервированных вещей на энергоблоке всего несколько, практически корпус реактора и кусок трубы с клапанами smile.gif до насосов и прочего уже резервированного оборудования. Это нерезервированное оборудование и является основным ноухау, стоит сумашедших денег, защищается от внешних воздействий а внешняя среда защищается от него...
Со всем остальным проще - собирается почти по месту smile.gif насосы можно взять на Украине, двигатели к ним во Франции, систему управления в Германии.... На уникальное оборудование никто старается не закладываться. Только вот резервировние там не шуточное. Например (намеренно подальше от электроники, дабы избежать скатывания в часности), для работы реактора в штатных режимах достаточно одного Главного Циркуляционного Насоса. Во всех нештатных - двух. Там их четыре. Три работают всегда, один стоит в холодном резерве, на регламентном обслуживании.... Двигатели насосов надо питать - начинаем резервировать электропитание - к энергоблоку подходят две линии электропередач от других электростанций (это не считая соседних своих энергоблоков), при каждом энергоблоке три собственных аварийных дизельгенератора (размером с дом), но для останова реактора хватит одного. Если все это хозяйство вдруг отказало, то снаружи энергоблока есть штепсель для подключения предвижного дизельгенератора, которого хватит на питание РЩУ и заглушение реактора. Если вдруг соляку из всех подвижных слили smile.gif smile.gif, то на ГЦНах стоят многодесятитоные маховики - совсем уже реактор не расплавится даже при сверхаварийном останове. А если расплавится, то он стоит в Гермозоне, которая в свою очередь расплавившись стечет на 27 метров вниз в выложенный керамикой бассейн и будет там доооолго кипеть.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Feb 17 2008, 10:11
Сообщение #148


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Да и в простой промышленности, при управлении станком, к примеру, - надо быть очень убедительным, чтобы навязать свой уникальный контроллер. Пожалуйста применяй готовый - сименс/ митсубиши...

И это правильно, - поставьте себя на место директора. Людей и поставщиков тоже надо резервировать. На одного сложно полагаться.

С другой стороны, совершенно не понимаю разговоров об одном глюке в день, к примеру. Мы несколько изделий в телефонии делали. Как понимаете там круглосуточное использование. Одно из самых первых при отсутствии опыта делали на х51. И WDT не ставили. Там по-моему просто не было его, а внешний ставить - тогда недоставаемо было. Как-то раз, недавно, столкнулся с одним своим изделием. smile.gif Ужасающее состояние, - весь покрыт пылью - валяется среди хлама (во включенном состоянии). Люди забыли что он у них есть. Он просто выполняет свои ф-ции и всё. Люди не задумываются как и кто это делает. Они просто привыкли что это работает. Ну я поинтересовался (вы же понимаете меня это очень интересовало), - спрашиваю а висы у вас били? Смотрят на меня - не понимают о чём я говорю. Ну я спрашиваю - приходилось из розетки вытыкать? Не могут вспомнить!!!

А надо сказать, что сейчас я бы в 10 раз лучше написал. Изменились и подходы и аппаратная часть.

На мой взгляд - не надо выдумывать монстров и с ними бороться. Надо просто хорошо и качественно исполнять свою работу.
Go to the top of the page
 
+Quote Post
Rst7
сообщение Feb 17 2008, 11:07
Сообщение #149


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

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



Цитата
Ядерный реактор это именно тот случай, когда последствий от отказов быть не должно.


И, тем не менее, если человеку очень захочется свалить такую систему - он ее свалит. Пример - ЧАЭС.

А вообще, если кого интересует, есть у меня исходные технические требования (украинские, правда) к оборудованию пожарной безопасности на АЭС. Могу дать почитать, документ не секретный, может оттуда почерпнете, чего надо делать, и чего не надо...


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


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Rst7 @ Feb 17 2008, 14:07) *
И, тем не менее, если человеку очень захочется свалить такую систему - он ее свалит. Пример - ЧАЭС.

Прошло много лет со времени проектирвания системы управления ЧАЭС, да и сам реактор отличается прочти буквально как движок паравоза отличается от двигателя внутроеннего сгорания. Появилась возможность использовать более сложную дуракоустойчивую технику, свалить из штатных режимов работы оператор замучается. От действий оператора в непредсказанных аварийных режимах, естественно завист многое.
Цитата
А вообще, если кого интересует, есть у меня исходные технические требования (украинские, правда) к оборудованию пожарной безопасности на АЭС. Могу дать почитать, документ не секретный, может оттуда почерпнете, чего надо делать, и чего не надо...

Интересует. Правда я и свои (Российские) имею, поскольку оборудование иcпользуется на трех AЭС, в том числе на Южноукраинской smile.gif и на одну проектируется. Но не систем пожаротушения. Интересует.
Ну а к системам пожаротушения, правда не на энергоблоке а вообще даже за пределами Ядерного Острова я претензии имею - ложно сработала smile.gif задув газом и порошком полэтажа здания, где стояло мое оборудование. Но там что-то достаточно общепромышленное стояло. На энергоблоках совсем другие, по крайней мере управление не пласмассовая коробочка со светодиодиками на стене, а стойка высотой под метра два с немерянной красы Windows GUI.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post

19 страниц V  « < 8 9 10 11 12 > » 
Closed TopicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 10:37
Рейтинг@Mail.ru


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