Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: надежность защиты.
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Georgy
Сомнения чайника: at89c2051 программировался с защитой. Сушествует ли гипотетически вероятность прочесть неким образом прошивку мк?
Спасибо.
ksv198
Цитата(Georgy @ Aug 14 2006, 14:26) *
Сомнения: at89c2051 программировался с защитой. Сушествует ли гипотетически вероятность прочесть неким образом прошивку мк?
Спасибо.

Гипотетическая вероятность всегда существует. Практическая - если за большие деньги, тоже. Здесь на форуме мелькала как-то тема про защиту, поищите, там были ссылки на некую организацию, за 5к зелени берущуюся за взлом. Сам я личного опыта во взломе не имею, но ориетироваться можно - если ваша разработка вам дорога, стоит принять особые меры защиты (а они недешевы по определению).
vvs157
Цитата(Georgy @ Aug 14 2006, 14:26) *
Сомнения чайника: at89c2051 программировался с защитой. Сушествует ли гипотетически вероятность прочесть неким образом прошивку мк?
Спасибо.


Надо иметь ввиду, что необязательно прошивку надо считывать. Может потенциальному похитителю окажется проще упереть ее с вашего же компа. Все поределяется тем бюджетом, которым похитетель может распоряжаться для решения этой задачи. Есть закон "природы" - средства необходимые для отражения атаки как минимум сопоставимы со средствами затраченными на атаку
dmivs
А вот Интересный текстик.

Microcontroller: AT89C2051 (AT89C4051)
Features: Program Flash EPROM, EEPROMed Security Bits
Attack method: Power Glitch
Comments: Chip Erase mode erases Lock bits with Program memory
Georgy
Во как! Сасибо! Век живи, век учись...
Буду разбираться.
Спасибо, ребята!
tobias_ivan
Пару лет назад, когда переписывал программатор AVR под WIN2000, обнаружил неустойчивый (не всегда получалось) глюк, а именно удовалось прочитать залоченный чип. Это было связано с временными интервалами при вхождении в режим программирования и проследовательностью подачи SCK и Reset.
Но заморачиваться не не стал, мало времени было...
Georgy
Да, много прелестных возможностей описано у Скоробогатова в конце пдфки "Semi-invasive attacks A new approach to hardware security analysis".
МК мне прошил один грамотный товарисчь, исходник держит у себя, security forever гарантирует.
Но мк попадет в третьи лукавые руки, вот почему пришлось постить тему.
Особенное thanks для DMIVS!
Удовлетворен сполна.
Спасибо, успехов!
defunct
Цитата(tobias_ivan @ Aug 15 2006, 10:06) *
Пару лет назад, когда переписывал программатор AVR под WIN2000, обнаружил неустойчивый (не всегда получалось) глюк, а именно удовалось прочитать залоченный чип. Это было связано с временными интервалами при вхождении в режим программирования и проследовательностью подачи SCK и Reset.
Но заморачиваться не не стал, мало времени было...


Нет там никакой неустойчивости. Глюк возможно и имеется, только это глюк вашего программатора. Хотя может даже и не глюк, а "фича". Дело в том, что LOCKS также как и Fuses вступают в силу только после выхода чипа из режима программирования. Очевидно, программирование, запись LOCKS и чтение только что залоченного чипа, вы выполняли в одном и том же сеансе программирования. Поэтому чип вам удавалось прочитать. Могу поспорить, что повторить такой фокус после перезапуска чипа вам не удавалось.
SasaVitebsk
Цитата(defunct @ Aug 15 2006, 23:45) *
Цитата(tobias_ivan @ Aug 15 2006, 10:06) *

Пару лет назад, когда переписывал программатор AVR под WIN2000, обнаружил неустойчивый (не всегда получалось) глюк, а именно удовалось прочитать залоченный чип. Это было связано с временными интервалами при вхождении в режим программирования и проследовательностью подачи SCK и Reset.
Но заморачиваться не не стал, мало времени было...


Нет там никакой неустойчивости. Глюк возможно и имеется, только это глюк вашего программатора. Хотя может даже и не глюк, а "фича". Дело в том, что LOCKS также как и Fuses вступают в силу только после выхода чипа из режима программирования. Очевидно, программирование, запись LOCKS и чтение только что залоченного чипа, вы выполняли в одном и том же сеансе программирования. Поэтому чип вам удавалось прочитать. Могу поспорить, что повторить такой фокус после перезапуска чипа вам не удавалось.


Боюсь Вы проиграете. Не хочу Вас огорчать, но у меня тоже самодельный программатор. Пользовался много лет. И иногда происходят странные вещи. Цикл у меня такой: стирание, контроль стирания, запись, .... Так вот иногда после стирания на этапе контроля стирания чип выдаёт прогу. Ну я там повторный цикл даю, - всё Ok. Правильность чтения проги, в такой ситуации, никогда не проверял. Мне то это не надо, но вот такой вот факт.
Harbour
Могу добавить, что на самопальных программаторах/jtag тапах встречаются фичи или ошибки монтажа, которые слегка меняют стандартные режимы программирования кристаллов, в результате чего вылезает много чего интересного. Со стандартным железом для программирования, которое еще и обслуживается в тормознутых виндах различных неадекватностей не замечено. Мне например всегда интересно написать программатор под новый кристалл самому - это необходимая фаза знакомства с чипом wink.gif
Georgy
Hi! Начитавшись могу доложить, что после однократного стирания в памяти ЕЕПРОМ и других остаётся огромный уровень сигнала = 0,5В, котроый возможно и подхватывается самодельным программатором.
Чего уж тут спорить...
Успехов!
Georgy
Harbour !
А что это значит-
Цитата
написать программатор

не понимаю, что это - программа загрузки или железо?
Хреново быть в стороне от знания (это о себе).
Спасибо!
defunct
Цитата(SasaVitebsk @ Aug 16 2006, 02:22) *
..... у меня тоже самодельный программатор. Пользовался много лет. И иногда происходят странные вещи. Цикл у меня такой: стирание, контроль стирания, запись, .... Так вот иногда после стирания на этапе контроля стирания чип выдаёт прогу. Ну я там повторный цикл даю, - всё Ok. Правильность чтения проги, в такой ситуации, никогда не проверял. Мне то это не надо, но вот такой вот факт.


Ну огорчить Вам меня явно неудастся smile.gif Ваш пост только укрепляет мою догадку относительно того, что программирование, запись LOCKS и чтение только что залоченного чипа выполнялось автором предыдущего поста в одном и том же сеансе программирования.

Имеем:
2 самодельных программатора ошибаются на ровном месте.
Для меня вполне очевидно, что глючат программаторы.
Где глючат? - В циклах задержки.

Неудивительно, что один программатор глючит настолько, что даже цикл Reset'a не может обеспечить должным образом, чтобы вывести чип из режима программирования перед проверкой. У Вас же ситуация куда проще - просто не дожидаетесь завершения команды ChipErase.

Пользуюсь AVRISP и ни разу не наблюдал проблем с неверным стиранием либо с неработоспособностью LOCKS. Также когда изучал AVR - написал свой LPT программатор, в процессе чего познакомился с тонкостями ISP и возможными глюками, такие глюки как здесь приводятся - наблюдал и на своем самодельном программаторе когда уменьшал задержки до 10 ms между этапами программирования:

стирание
-10ms- <--цикл задержки после выдачи команды стирания
запись флеш
-10ms- <-- цикл задержки после записи последней стр. флеш.
запись fuses
-10ms-
запись locks <- LB mode3
-10ms-
restart (low reset)
-10-30ms-
чтение. <-- тут будет правильно прочитано содержимое чипа с высокой долей вероятности
dmivs
Цитата(Georgy @ Aug 16 2006, 12:24) *
Harbour !
А что это значит-
Цитата
написать программатор

не понимаю, что это - программа загрузки или железо?
Хреново быть в стороне от знания (это о себе).
Спасибо!

Fun=On
Железо тоже конечно можно написать... Маслом там или гуашью (см. мой аватар) biggrin.gif
Fun=Off
Речь как я понимаю шла о программе. Для современных микроконтроллеров-ПЛИС использование программатора совсем не обязательно. Достаточно умения менять и считывать 2-4 сигнала ТТЛ уровня. А значит, во многих случаях достаточно иметь PC с LPT портом, драйвер прямого доступа к LPT (для Windows NT/2000/XP или Linux) и самописную программку на любом языке.
SasaVitebsk
Цитата(defunct @ Aug 16 2006, 13:30) *
Цитата(SasaVitebsk @ Aug 16 2006, 02:22) *

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


Ну огорчить Вам меня явно неудастся smile.gif Ваш пост только укрепляет мою догадку относительно того, что программирование, запись LOCKS и чтение только что залоченного чипа выполнялось автором предыдущего поста в одном и том же сеансе программирования.

Имеем:
2 самодельных программатора ошибаются на ровном месте.
Для меня вполне очевидно, что глючат программаторы.
Где глючат? - В циклах задержки.

Неудивительно, что один программатор глючит настолько, что даже цикл Reset'a не может обеспечить должным образом, чтобы вывести чип из режима программирования перед проверкой. У Вас же ситуация куда проще - просто не дожидаетесь завершения команды ChipErase.

Пользуюсь AVRISP и ни разу не наблюдал проблем с неверным стиранием либо с неработоспособностью LOCKS. Также когда изучал AVR - написал свой LPT программатор, в процессе чего познакомился с тонкостями ISP и возможными глюками, такие глюки как здесь приводятся - наблюдал и на своем самодельном программаторе когда уменьшал задержки до 10 ms между этапами программирования:

стирание
-10ms- <--цикл задержки после выдачи команды стирания
запись флеш
-10ms- <-- цикл задержки после записи последней стр. флеш.
запись fuses
-10ms-
запись locks <- LB mode3
-10ms-
restart (low reset)
-10-30ms-
чтение. <-- тут будет правильно прочитано содержимое чипа с высокой долей вероятности


Не об этом речь. В свою защиту скажу, что программатор паралельный, пишет кучу микросхем и разрабатывался на этапе когда синклеры ещё шли. smile.gif
Пишет РЕ3, различные 48,51 в последствии были добавлены другие микрухи (AVR). Всегда программирует МК. Встречаются 1200 которые не пишутся AVREALом. Так он их берёт в последовательном и паралельном режимах. smile.gif

Но речь не об этом. Бог с ней - с ошибкой. На IBM задержки формировать точные на железе - очень большим профи надо быть. Один раз подбираются, а потом железо изменил .... пять раз .... smile.gif

Конечно в программаторе дело. Так ведь не об этом речь!

Ещё раз. По пунктам.... smile.gif
Идёт отладка устройства.
Микруха переписывается 100 раз... smile.gif Лочится всегда. Цикл такой.
Записали. Запустили записанное. Проверили. Хомут.
Выключили. Подумали. Изменили текст проги. Компильнули.
Программируем ....
И ... смотри по тексту выше после стирания она мне выдаёт. "Ошибка стирания..." ну и текст камня прочитанный. То есть места якобы, где не стёрлось. Естественно с адреса 0, ну и я вижу свою программу переход (адрес 0-1, потом пробел вектора идут). Всё прога не показывает а только первые ошибки. Начало сверял - всё правильно. Ну а полностью не проверял, - руки не дошли. Может и есть ошибки. Не знаю.
Такой вариант прграммирования с контролем стирания по наследству от всяких там 27ххх остался.
Ну у меня руки до экспериментов не дошли, а как у кого дойдут... Думаю результат будет.

Кстати о программаторе. smile.gif
Сейчас им не пользуюсь. Подарил одному начинающему. Он ведь в ISA шине был. Но это бы ещё пол беды.
Теперь бы я его не так делал. smile.gif Всем хорош, но чтобы новую микруху добавить - надо прогу дописать. smile.gif Везде ссылки поменять ... ну там изменить, добавить.... Потом перекомпилируй и пользуйся на здоровье. smile.gif

Так я новый проект делаю. Думаю предложить на всеобщее... Там всё скриптами... Через текстовые файлы. Захотел микруху добавить пожалуйста. Дописал её и пользуйся на здоровье. Если всем миром поддерживать, то каждый добавил микруху ну и скрипт выложил.
Хотя это конечно в мечтах... smile.gif
defunct
Цитата(SasaVitebsk @ Aug 16 2006, 22:43) *
Пишет РЕ3, различные 48,51 в последствии были добавлены другие микрухи (AVR).
...

А у Вас часом не завалялся алгоритмом программирования РЕ3?
Nanobyte
Алгоритм программирования РЕ3 следующий:
1. Разряды программируются поочерёдно.
2.Одиночный программирующий импульс, длительностью 50-100 мС, напряжение 10-12.5 вольт подаётся на выход программируемого разряда и на вывод питания, зашунтированный конденсатором ёмкостью 10-15 мкФ.
3. Длительность фронта импульса не должна превышать 1 мкС.
4.Если запись не прошла, увеличивают напряжение ступенями по 0.5в, до 14в, и снова делают попытку программирования.
5. После программирования микросхему необходимо выдержать сутки при температуре 100 градусов Ц.

Собирал программатор для РЕ3 и РТ4, использовал приведённый алгоритм. Напряжение программирования коммутировал с помощью реле, не стал возиться с электронными ключами. После программирования выдержку при повышенной температуре не производил, но РЕ3, запрограммированные в 1983 году до сих пор считываются верно.

Приведённый алгоритм был описан в журнале "Радио", 1982г, #1, стр 22.
SasaVitebsk
Цитата(Nanobyte @ Aug 17 2006, 14:40) *
Алгоритм программирования РЕ3 следующий:
1. Разряды программируются поочерёдно.
2.Одиночный программирующий импульс, длительностью 50-100 мС, напряжение 10-12.5 вольт подаётся на выход программируемого разряда и на вывод питания, зашунтированный конденсатором ёмкостью 10-15 мкФ.
3. Длительность фронта импульса не должна превышать 1 мкС.
4.Если запись не прошла, увеличивают напряжение ступенями по 0.5в, до 14в, и снова делают попытку программирования.
5. После программирования микросхему необходимо выдержать сутки при температуре 100 градусов Ц.

Собирал программатор для РЕ3 и РТ4, использовал приведённый алгоритм. Напряжение программирования коммутировал с помощью реле, не стал возиться с электронными ключами. После программирования выдержку при повышенной температуре не производил, но РЕ3, запрограммированные в 1983 году до сих пор считываются верно.

Приведённый алгоритм был описан в журнале "Радио", 1982г, #1, стр 22.


От себя добавлю что надо чтобы источник программирования ток большой держал. У меня до 1А. Я тоже температуру не применял и напряжением постоянным шил. По РЕ3 выход годных был очень большой, а вот по РТ4 значительно хуже.
Nanobyte
Требование выдержки МС при повышенной температуре выдвигалось для первых версий кристаллов РЕ3 и РТ4, т.к. у них перемычки были нихромовые, а сейчас применяют поликремниевые.
РТ4 из более-менее новых партий прошиваются почти 100%, а РТ5 и РЕ3 прошивались все, и до сих пор считываются верно. Вот раньше делали! smile.gif
WHALE
А что,их до сих пор выпускают? blink.gif
а насчет надежности-лет 20 назад рт4 после термопрогона выход был процентов 10,и в течении года у
потребителей еще проценто 15 сдыхало-надежность была фантастическая smile.gif
рт5 поменьше,но тоже никто не удивлялся-до сих пор не пониммаю,почему они реже мерли,вроде обьем больше и должно быть наоборот.
А ре3 были вполне ничего себе пзу,особых нареканий не было.
defunct
Nanobyte/SashaVitebsk

Спасибо!
Harbour
Цитата(Georgy @ Aug 16 2006, 12:24) *
Harbour !
А что это значит-
Цитата
написать программатор

не понимаю, что это - программа загрузки или железо?
Хреново быть в стороне от знания (это о себе).
Спасибо!


Ясен пень - программатор это не только железо с интерфейсом к портам программирования чипа, но и набор программ для управления как этим железом, так и самим чипом. При самостоятельной реализации, кроме других бонусов, автоматически получается библиотечка для in-ciurcit programming.
Nanobyte
2 WHALE
Выпускают и сейчас, но ЦЕНЫ cranky.gif
Насчёт надёжности: специально проверил 2 шт РТ5 и 2 шт РТ4 (записаны в 1983г). Читаются верно. И записывались РТ5 стопроцентно а РТ4 - 99%. Может, потому, что программатор ДУБОВЫЙ, всё на реле, адреса перебирал счётчиком от кнопок. Кстати, 573РФ4 2004 года выпуска не смог прошить ни один серийный программатор, а самодельный (1988г) смог smile.gif smile.gif
WHALE
Nanobyte А U программирования у них до сих пор 21V?
Nanobyte
Upgm на них не было написано, поэтому изменял его от 12.5В с шагом 1В. При 21.5В программирование начало выполняться, правда при Tpgm~200mS. Поднимать выше Upgm не стал, т.к. побоялся их спалить (а стоимость МС свыше 2 т.р. за штуку - cranky.gif ) Троекратно повторил процесс записи, контрольное чтение нормально выполнялось в диапазоне 4-6В.
WHALE
а стоимость МС свыше 2 т.р. за штуку -это очепятка,я надеюсь smile.gif
Да,а число циклов перепрограммирования тоже не выше 10? blink.gif
З.Ы. а не лучше взять 27с64,а еще лучше 28ХХ-или вы поддерживаете российских производителей?
DS
Нет, это не ошибка, это распиливание бюджетных средств. А чтобы это пропихивать людям запрещают проектировать оборудование на нормальных элементах. Прикрывают красивыми словами о независимости в случае чего. А на самом деле вся высокотоехнологичная отрасль ускоренными темпами вгоняется в гроб.
Nanobyte
Цитата(WHALE @ Aug 19 2006, 21:18) *
а стоимость МС свыше 2 т.р. за штуку -это очепятка,я надеюсь smile.gif

Нет, не очепятка. В некоторое оборудование можно ставить только отечественные элементы.
Georgy
Цитата(dmivs @ Aug 16 2006, 13:40) *
Цитата(Georgy @ Aug 16 2006, 12:24) *

Fun=On
Железо тоже конечно можно написать... Маслом там или гуашью (см. мой аватар) :biggrin:
Fun=Off


Вот аватара-то и навела на раздумье. Ладно, шучу. За ответ спасибо!
Успехов!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.