Вопрос для многих болезненный и важный
Как защитить устройство от копирования и дизассемблирования прошивки контроллера
Из традиционных методов установка необходимых fuse битов и затирание названия камня гвоздиком или заливка краской
радикальные - откусить выводы программирования (оказывается и такое было в лихие 90-е)
Какие есть средства противодействия этому (ну понятно что краску содрать , но этого мало), существуют ли программаторы снимающие эти биты с сохранением прошивки или другие средства выуживания?
самый эффективный метод копирования - понять как работает устройство( что оно делает) и написать свою программу. Самое дешёвое решение, проверено.
А если нужно защитить, то fuse битов вполне достаточно.
Читал что можно снять биты защиты непосредственно воздействуя в нужных местах лазером на кристалл. А корпус чем-то аккуратно растворяли. Но щас вроде все современные микроконтроллеры устроены так, что фьюзы эти запрятаны глубоко в кристалл и до них не добраться.
Насколько это достоверная информация судить не берусь
китайцы берут за считывание прошивки до 500 баксов. Это не слухи - на микрочип су есть человек, который этим воспользовался. Поцарапана гвоздиком или нет - значения не имеет.
s64 писал(а):самый эффективный метод копирования - понять как работает устройство( что оно делает) и написать свою программу. Самое дешёвое решение, проверено.
А если нужно защитить, то fuse битов вполне достаточно.
Ерунду Вы написали. Не сталкивались - не давайте бестолковых советов.
2 Yuri_93: те способы, которые Вы привели, лишь незначительно удорожают процесс. (Откусите выводы - к ним все равно можно поцепиться, сотрете красу - при вскрытии корпуса чипа на подложке все равно можно прочитать маркировку). Как решать проблему, зависит от суммы, которую Вы страхуете (т.е. от потерь, которые будут в случае взлома). Иные чипы вычитываются и за 100$. Что за устройство-то хоть? Способы есть, но они только удорожают взлом, но не делают его невозможным. (К тому же определитесь: Вам нужно защищаться от копирования или только от дизассемблирования?)
Если устройство массовое, фирма легальная и время разработки сравнительно большое, то можно посмотреть в сторону смарт-карт, криптопроцессовов или ASIC.
ставить фюзы, не использовать дремучие 8 бит контроллеры, выполненные по процессу квадратный миллиметр на вентиль -))
микрошлифовка и выжигание фюзов лазерами для 8 битных и современных 32 битных отличается по цене на порядки.
Satyr писал(а):ставить фюзы, не использовать дремучие 8 бит контроллеры, выполненные по процессу квадратный миллиметр на вентиль -))
микрошлифовка и выжигание фюзов лазерами для 8 битных и современных 32 битных отличается по цене на порядки.
Для современных 8- и 32-битников - почти одинаково (если специализированные не рассматривать). Цена может быть увеличена только за счет того, что конкретному вычитывателю не приходилось раньше иметь дело с конкретным чипом, потому к цене экстракции для первопроходца добавится цена исследования.
s64 писал(а):самый эффективный метод копирования - понять как работает устройство( что оно делает) и написать свою программу. Самое дешёвое решение, проверено.
А если нужно защитить, то fuse битов вполне достаточно.
Ерунду Вы написали. Не сталкивались - не давайте бестолковых советов.
2 Yuri_93: те способы, которые Вы привели, лишь незначительно удорожают процесс. (Откусите выводы - к ним все равно можно поцепиться, сотрете красу - при вскрытии корпуса чипа на подложке все равно можно прочитать маркировку). Как решать проблему, зависит от суммы, которую Вы страхуете (т.е. от потерь, которые будут в случае взлома). Иные чипы вычитываются и за 100$. Что за устройство-то хоть? Способы есть, но они только удорожают взлом, но не делают его невозможным. (К тому же определитесь: Вам нужно защищаться от копирования или только от дизассемблирования?)
Если устройство массовое, фирма легальная и время разработки сравнительно большое, то можно посмотреть в сторону смарт-карт, криптопроцессовов или ASIC.
Собственно копирование и дизасемблирование здесь имеют тот же смысл потому что при копировании мы итак получаем рабочий дамп который становится пригодным hex файлом
Интересно как выглядит оборудование для снятия битов лазером (видимо некий микроскоп с подвижным предметным столом и системой позиционирования лазера и стола) и какие камни более устойчивы с точки зрения топологии кристалла?
А еще насколько реально выманить прошивку программным путем?
Yuri_93 писал(а): Собственно копирование и дизасемблирование здесь имеют тот же смысл потому что при копировании мы итак получаем рабочий дамп который становится пригодным hex файлом
Это Вы в терминологии путаетесь. Целью дизассемблирования является восстановление логики работы по переведенной из машинного кода в ассемблер программы. При тупом копировании этого делать не нужно.
Просто для реализации защиты можно прибегнуть к приемам, которые не дадут прошивке работать нормально, если она не в родном камне (или устройстве). Тут есть разные способы: от безопасных в виде спец. топологии платы или перемычек в виде волосков, до сомнительных в виде пережигания ножек, намеренной выработки ресурса flash-ячеек и пр. Если такая защита стоит, то без дизассемблирования устройство не скопировать.
Интересно как выглядит оборудование для снятия битов лазером (видимо некий микроскоп с подвижным предметным столом и системой позиционирования лазера и стола) и какие камни более устойчивы с точки зрения топологии кристалла?
А еще насколько реально выманить прошивку программным путем?
Таким атакам подвержены не все типы МК (исследования в этой области дорогие, поэтому далеко не все чипы исследуются). Но такое возможно. Самый яркий пример - PIC16C84
Yuri_93 писал(а): Собственно копирование и дизасемблирование здесь имеют тот же смысл потому что при копировании мы итак получаем рабочий дамп который становится пригодным hex файлом
Это Вы в терминологии путаетесь. Целью дизассемблирования является восстановление логики работы по переведенной из машинного кода в ассемблер программы. При тупом копировании этого делать не нужно.
Просто для реализации защиты можно прибегнуть к приемам, которые не дадут прошивке работать нормально, если она не в родном камне (или устройстве). Тут есть разные способы: от безопасных в виде спец. топологии платы или перемычек в виде волосков, до сомнительных в виде пережигания ножек, намеренной выработки ресурса flash-ячеек и пр. Если такая защита стоит, то без дизассемблирования устройство не скопировать.
Интересно как выглядит оборудование для снятия битов лазером (видимо некий микроскоп с подвижным предметным столом и системой позиционирования лазера и стола) и какие камни более устойчивы с точки зрения топологии кристалла?
А еще насколько реально выманить прошивку программным путем?
Таким атакам подвержены не все типы МК (исследования в этой области дорогие, поэтому далеко не все чипы исследуются). Но такое возможно. Самый яркий пример - PIC16C84
Понятно что можно сделать привязку к оборудованию, но я имел ввиду hasp и обфускацию (хотя собственно в нескольких килобайтах запутать трудно). Тут дело именно в динамике шифрования - не зная ее алгоритма не сможем расшифровать дамп и поучить листинг с кодом
Спасибо за ссылку с документом, изучаю
Хотелось бы конкретики: какие еще контроллеры помимо PIC16C84 подвержены программной атаке , как она организуется и вообще работает?
Yuri_93 писал(а): Понятно что можно сделать привязку к оборудованию, но я имел ввиду hasp и обфускацию (хотя собственно в нескольких килобайтах запутать трудно)
При чем тут хасп? Вы хоть обозначьте область применения Вашего устройства, а то хасп мало относится к защите МК. Или Вы свой хасп делаете?
Для малокилобайтного бинарника обфускация обойдется легко. Зато скорость работы девайса может сильно понизить.
Тут дело именно в динамике шифрования - не зная ее алгоритма не сможем расшифровать дамп и поучить листинг с кодом
Сами понимаете: когда хекс на руках, - алгоритм тоже.
Спасибо за ссылку с документом, изучаю. Хотелось бы конкретики: какие еще контроллеры помимо PIC16C84 подвержены программной атаке , как она организуется и вообще работает?
Разные. Организуется за счет измерения напряжений и токов, повышения тактовой частоты, регулировки Vdd и многого другого. Сам этими исследованиями не занимался, поэтому конкретики от первого лица не приведу. Пошукайте по сайту Скоробогатова, там много интересного по теме.