Защита МК от считывания прошивки.

nestandart
nestandart аватар
Offline
Зарегистрирован: 15.06.2011

У меня тут заказчик выдвинул условие, Программа должна быть защищена от "пиратского" копирования.

Ну или хотябы сделать так чтобы считывание было не рентабельным.

Как это сделать ? Подойдут как аппаратные так и программные решения.

Читал про лок фузы, но говорят что они легко снимаются.

mixail844
Offline
Зарегистрирован: 30.04.2012

нет жешь,есть вроде фьюз,один раз поставил и навсегда.в смысле один раз заблокировал и уже никак.

еще может есть вариант,использовать шифрование,слышал только в теории тут на форуме мельком в чьем то сообщени,представляю себе так :

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

кстати вот нашел,мне аж самому стало истересно))

 

Клапауций
Offline
Зарегистрирован: 10.02.2013

nestandart пишет:

У меня тут заказчик выдвинул условие, Программа должна быть защищена от "пиратского" копирования.

Ну или хотябы сделать так чтобы считывание было не рентабельным.

Как это сделать ? Подойдут как аппаратные так и программные решения.

Читал про лок фузы, но говорят что они легко снимаются.

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

toc
Offline
Зарегистрирован: 09.02.2013

для усложнения работы взломщика нужно стереть  надфилем все надписи на чипе.

maksim
Offline
Зарегистрирован: 12.02.2012

nestandart пишет:
Читал про лок фузы, но говорят что они легко снимаются.
Бред говорят. Думаете в Атмеле дураки работают? Установите lock-биты и не занимайтесь хе..ней. Обычными средствами сломать эту защиту невозможно.

maksim
Offline
Зарегистрирован: 12.02.2012

toc пишет:

для усложнения работы взломщика нужно стереть  надфилем все надписи на чипе.

Хоть рашпилем...
Думаю сильно это не усложнит задачу, да и при таком взломе когда микруху вскрывают...

nestandart
nestandart аватар
Offline
Зарегистрирован: 15.06.2011

>>Бред говорят. Думаете в Атмеле дураки работают?<<

Вот здесь коменты почиайте  http://habrahabr.ru/qa/36415/. Что скажите ?

maksim
Offline
Зарегистрирован: 12.02.2012

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

Если уж так надо, то сожгите ноги.

nestandart
nestandart аватар
Offline
Зарегистрирован: 15.06.2011

>>Если уж так надо, то сожгите ноги.<<

Как их правильно сжечь ? Чтобы не повредить остальные функции.

У меня был опыт перегрузки выхода по току.Он отгорел полностью , но МК стал жрать около 500мА, жутко греться и прошиваться с десятого раза.

maksim
Offline
Зарегистрирован: 12.02.2012

Теоретически так: "Взять конденсатор 10 мкФ, зарядить до 60В, а потом подключить к ноге так, чтобы на ней получился импульс отрицательной полярности (между общим проводом и портом). Ток пойдет через защитный диод, который внутри МК и через ножку. А дальше как в басне про Насреддина - сдохнет или ишак или эмир."
Сам не проверял, но может и получится, но я бы на вашем месте не занимался этой тряхомудией, в любом случае взломать лок-биты встанет дороже чем написать прошивку с нуля.

leshak
Offline
Зарегистрирован: 29.09.2011

Диклеймер: ниже "поток мысли на тему". Конструктивные идеи - отсутсвуют

Нынче в моде облака. Логику в Microsoft Azure (google apps engine и т.п.), контроллеру winzen (wifi шилд и т.п.). Вообщем "все умное" где-то на вашем сервере, в контроллере - полная тупизна.

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

Все что "у пользователя в руках", по определению ломается. Разница только в "цене взлома".

Вон, apple и компания, как только не выкручиваются... а сколько времени проходит перед тем как выходит свежий JailBrake? Или активацию винды долго отламывают? Причем у apple - полный контроль над железом. И железо помощьней - серьезную криптографию можно всадить, не то что "в ардуине".

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

А еще в погоне за технологическими решениями - не стоит забывать про над-систему. Мир не ограничивается только микроконтроллером.

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

Или наркоманов нанять, которые просто "вынесут квартиру". Или тупо вломятся и скопируют. Даже если поймают, то будет условное. Так как не кража, а "проникновение". Похулиганили малехо.

А если там вообще "суръезные деньги" стоят, то и можно и автора прошивки "дизасемблировать". Либо сам даст, либо заново напишет по памяти.  Вряд ли заказчик вам предоставит еще и физическую охрану. Времена когда конструкторы работали в закрытых городах - давно прошли.

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

paf
Offline
Зарегистрирован: 25.01.2013

>А еще, как правильно заметили выше, очень часто (но не 100% правило), параноя заказчика по поводу "украдут", является сигналом не совсем адекватной оценки действительности с его стороны. И потом возможны сюрпризы в очень разных областях взаимодействия.<

Самое ОНО! Эта паранойя найдет себе выход.  

nestandart
nestandart аватар
Offline
Зарегистрирован: 15.06.2011

leshak, речь о великих деньгах не идет. Стоимость мой работы 20-30т.р. , продажная стоимость готового устройства 5-7т.р.

Просто заказчик не хочет чтобы китайцы сориентировались раньше чем он пару - тройку раз это дело окупит.

 

step962
Offline
Зарегистрирован: 23.05.2011

nestandart пишет:

Стоимость мой работы 20-30т.р. , продажная стоимость готового устройства 5-7т.р.

Пусть прибыль с устройства минимальная - 500 р. (интересно, какой русский позарится на рентабельность 10%?)

Чтобы расходы на вашу работу 2-3 раза окупить, потребуется партия в 100-200 шт. Да на продаже такой партии даже сами заказчики не успеют оценить, стоила ли овчинка выделки, не то что кетайсы. А ведь тем для начала небесплатной процедуры взлома залоченного микроконтроллера потребуется нечто большее, чем просто факт появления где-то в России непонятного устройства от неизвестного производителя.

Однозначно - паранойя.

Или мания величия.

 

В общем - очень напоминает классический анекдот о неуловимом Джо. Хотя ... заказчику ведь об этом не скажешь.

 
leshak
Offline
Зарегистрирован: 29.09.2011

nestandart пишет:

leshak, речь о великих деньгах не идет. Стоимость мой работы 20-30т.р. , продажная стоимость готового устройства 5-7т.р.

Просто заказчик не хочет чтобы китайцы сориентировались раньше чем он пару - тройку раз это дело окупит.

 

Ну тогда это точно похоже на... ну наверное не на "параною", а скорее "неопытность заказчика". Сильно напоминает как вчерашний школьник, сегодняшний стартапер приходит к инвестору и в 98% случаев начинает с фразы "а вы мою идею не украдете? она у меня на МУЛЬЕНЫ".

Серьсезная защита стоит намного больше 20-30т.р. Да и 20-30 т.р., если честно не та сумма которую стоит защищать с автоматчиками. Если же "она критична для инвестора", то.... значит он выбрал поект не своего маштаба. Не готов он рисковать такими суммами (а ведь fail может быть еще по тысячи причин, и "китайцы скопируют" - где-то в конце списка вероятностей).

Если боитесь китайцев - ну так в чем проблема не давать им прошивку?  Прошивайте сами. На них - только изготовление (ну может дать, какую-нибудь тестовую, которая проверяет что диоды мигают).

Да банально. Вот у нас "пиратсво" - вообще-то не такое редкое явление. Рипы фильмов, игр для приставок - видел на торрентах. Вырванные из комерческих устройств прошивки (даже дорогих) - не попадались. Не бродят по сети. Никто этим не занимается.

Если превращают "устройство за $50 в устройство за $500 с помщью перепрошивки", то берут либо прошивку от дорогого, которую сам производитель выложил в сеть, либо пишут энтузиасты свою (и это гораздо чаще, а зачастую и лучше).

Что-бы "убедить заказчика" - можете предложить ему самому попробовать скопировать какой-то деваяй с рынка. Когда он хотя-бы на бумаге прикинить во что это ему обойдется - может наступить понимание. Там ведь тоже логика "должно окупится" - работает ;)  

Ну предположим "взлом локов" - 5000, организовать распространение 1000 на штуке. Предположим вероятность удачного выпихивания оргинала с рынка 20%, значит фактическая стоимость аферы, с учетом риска 30000 что уже равно "просто нанять другого программера".

При этом:

1. Имеем прошивку которую не возможно модифицировать/поддерживать (где гарантия что она без багов или ловушек? и что делать если пойдут возвраты?)
2. Продавать нужно дешевле и быстрее чем оригинал (норма прибыли еще меньше)
3. В любом момент оргиниал может обновить прошивку, добавить какую-то "киллер фичу" которая моментально обесценить наш клон
4. Угроза судебного преследования (или тупо "разборки").

Посмотрите на все эти "китайские клоны" наводнившие рынок. Да электроника дешевле грязи. Но... что у китайцев самое фиговое? Да ведь именно прошивки. Которые они сами пытаются писать. Пресс формы, механику и проч. - замечательно копируют, а софт.... пока еще не отточили этот навык до блеска.

 

leshak
Offline
Зарегистрирован: 29.09.2011

Вообщем итог тут такой:

1. Локать 
2. Изготавливать и прошивать - в разных местах.
 

И объяснить заказчику что 100% гаранитии - не бывает. Все остальные варианты - намного дороже (на порядки, даже не разы), при этом четкой взаимосвязи дороже->сложней-ломать - все равно не будет.

P.S. Я когда познакомился с компами (буквально перый месяц знакомста) - ломал одну програму (честно купленную, просто бекапы хотелось, во времени дискет - это было очень актуально).  Фирма продавец - очень гордилась своей защитой. У нее отдельный отдел из 15-ти человек пару лет ее клепал - не взалмывается (и все это знали, везде на презентациях упирали на это).

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

И никакими специалистами, вы никогда не расчитаете вероятность такого школьника который просто выдирает дискету в нужный момент.... ;)  Им просто в голову не прийдет до чего может додуматся человек не обладающий спец. знаниями. Не ведающий про си, ассемблер и лок. биты :)

inspiritus
Offline
Зарегистрирован: 17.12.2012

to leshak +1

BabaDusya
BabaDusya аватар
Offline
Зарегистрирован: 13.10.2012

maksim пишет:

nestandart пишет:
Читал про лок фузы, но говорят что они легко снимаются.
Бред говорят. Думаете в Атмеле дураки работают? Установите lock-биты и не занимайтесь хе..ней. Обычными средствами сломать эту защиту невозможно.

 Дружище! покажите как их грамотно поставить!!! Как угодно лок биты выставлю с фьюзами (безстрашно их окончательно залокать) Невыходит ни... голову сломал! Удаётся за локать только само их изменение, а память считывается и это "считанное",экспериментом, заливаю в новый камень, а он недопутимо начинает работать((! 

gena
Offline
Зарегистрирован: 04.11.2012

 "Дружище! покажите как их грамотно поставить!!! Как угодно лок биты выставлю с фьюзами (безстрашно их окончательно залокать) Невыходит ни... голову сломал! Удаётся за локать только само их изменение, а память считывается и это "считанное",экспериментом, заливаю в новый камень, а он недопутимо начинает работать((!"  - это что-то новое.   А какой микроконтроллер используете?