Защита МК от считывания прошивки.
- Войдите на сайт для отправки комментариев
Пнд, 18/03/2013 - 01:50
У меня тут заказчик выдвинул условие, Программа должна быть защищена от "пиратского" копирования.
Ну или хотябы сделать так чтобы считывание было не рентабельным.
Как это сделать ? Подойдут как аппаратные так и программные решения.
Читал про лок фузы, но говорят что они легко снимаются.
нет жешь,есть вроде фьюз,один раз поставил и навсегда.в смысле один раз заблокировал и уже никак.
еще может есть вариант,использовать шифрование,слышал только в теории тут на форуме мельком в чьем то сообщени,представляю себе так :
типа прошиваешь контроллер испольнительным файлом(.hex) который зашифрован сам по себе,контроллер его понимает(при помощи бутлоадера?) и все прочее,а вот если даже кто то считает .hex то расшифровать не сможет,как то так.
кстати вот нашел,мне аж самому стало истересно))
У меня тут заказчик выдвинул условие, Программа должна быть защищена от "пиратского" копирования.
Ну или хотябы сделать так чтобы считывание было не рентабельным.
Как это сделать ? Подойдут как аппаратные так и программные решения.
Читал про лок фузы, но говорят что они легко снимаются.
В пень такого заказчика - устройство так или иначе сломают или сделают аналог, но, если ты правильно сделал свою работу и защитил устройство по максимуму, то ты и будешь крайним при разборе полётов.
для усложнения работы взломщика нужно стереть надфилем все надписи на чипе.
для усложнения работы взломщика нужно стереть надфилем все надписи на чипе.
Думаю сильно это не усложнит задачу, да и при таком взломе когда микруху вскрывают...
>>Бред говорят. Думаете в Атмеле дураки работают?<<
Вот здесь коменты почиайте http://habrahabr.ru/qa/36415/. Что скажите ?
Есть такая теория, что если при стирании снизить напряжение, а когда дело доходит до лок-битов напряжение делают нормальным и затираются только лок-биты. Сам не проверял, конкретики никакой не находил, и по ссылке выше тоже ничего конкретного.
Если уж так надо, то сожгите ноги.
>>Если уж так надо, то сожгите ноги.<<
Как их правильно сжечь ? Чтобы не повредить остальные функции.
У меня был опыт перегрузки выхода по току.Он отгорел полностью , но МК стал жрать около 500мА, жутко греться и прошиваться с десятого раза.
Теоретически так: "Взять конденсатор 10 мкФ, зарядить до 60В, а потом подключить к ноге так, чтобы на ней получился импульс отрицательной полярности (между общим проводом и портом). Ток пойдет через защитный диод, который внутри МК и через ножку. А дальше как в басне про Насреддина - сдохнет или ишак или эмир."
Сам не проверял, но может и получится, но я бы на вашем месте не занимался этой тряхомудией, в любом случае взломать лок-биты встанет дороже чем написать прошивку с нуля.
Диклеймер: ниже "поток мысли на тему". Конструктивные идеи - отсутсвуют
Нынче в моде облака. Логику в Microsoft Azure (google apps engine и т.п.), контроллеру winzen (wifi шилд и т.п.). Вообщем "все умное" где-то на вашем сервере, в контроллере - полная тупизна.
Выйдет дорого, коряво и неудобно - зато защищенно. Вооброщем как любые попытки технологически защитить интелектуальную собственность. Честно-му пользоваотелю - одни неудобства.
Все что "у пользователя в руках", по определению ломается. Разница только в "цене взлома".
Вон, apple и компания, как только не выкручиваются... а сколько времени проходит перед тем как выходит свежий JailBrake? Или активацию винды долго отламывают? Причем у apple - полный контроль над железом. И железо помощьней - серьезную криптографию можно всадить, не то что "в ардуине".
Вообщем если там управление балистическими ракетами и действительно "нужно железобетонно", то навреное не для ардуины это задача.
А еще в погоне за технологическими решениями - не стоит забывать про над-систему. Мир не ограничивается только микроконтроллером.
Если ценность прошивки - действительно велика, то можно и просто ваш комп сломать и утянуть прямо исходники (при целевой атаке - очень сложно защитится не будучи экспертом).
Или наркоманов нанять, которые просто "вынесут квартиру". Или тупо вломятся и скопируют. Даже если поймают, то будет условное. Так как не кража, а "проникновение". Похулиганили малехо.
А если там вообще "суръезные деньги" стоят, то и можно и автора прошивки "дизасемблировать". Либо сам даст, либо заново напишет по памяти. Вряд ли заказчик вам предоставит еще и физическую охрану. Времена когда конструкторы работали в закрытых городах - давно прошли.
А еще, как правильно заметили выше, очень часто (но не 100% правило), параноя заказчика по поводу "украдут", является сигналом не совсем адекватной оценки действительности с его стороны. И потом возможны сюрпризы в очень разных областях взаимодействия.
>А еще, как правильно заметили выше, очень часто (но не 100% правило), параноя заказчика по поводу "украдут", является сигналом не совсем адекватной оценки действительности с его стороны. И потом возможны сюрпризы в очень разных областях взаимодействия.<
Самое ОНО! Эта паранойя найдет себе выход.
leshak, речь о великих деньгах не идет. Стоимость мой работы 20-30т.р. , продажная стоимость готового устройства 5-7т.р.
Просто заказчик не хочет чтобы китайцы сориентировались раньше чем он пару - тройку раз это дело окупит.
Стоимость мой работы 20-30т.р. , продажная стоимость готового устройства 5-7т.р.
Пусть прибыль с устройства минимальная - 500 р. (интересно, какой русский позарится на рентабельность 10%?)
Чтобы расходы на вашу работу 2-3 раза окупить, потребуется партия в 100-200 шт. Да на продаже такой партии даже сами заказчики не успеют оценить, стоила ли овчинка выделки, не то что кетайсы. А ведь тем для начала небесплатной процедуры взлома залоченного микроконтроллера потребуется нечто большее, чем просто факт появления где-то в России непонятного устройства от неизвестного производителя.
Однозначно - паранойя.
Или мания величия.
В общем - очень напоминает классический анекдот о неуловимом Джо. Хотя ... заказчику ведь об этом не скажешь.
leshak, речь о великих деньгах не идет. Стоимость мой работы 20-30т.р. , продажная стоимость готового устройства 5-7т.р.
Просто заказчик не хочет чтобы китайцы сориентировались раньше чем он пару - тройку раз это дело окупит.
Ну тогда это точно похоже на... ну наверное не на "параною", а скорее "неопытность заказчика". Сильно напоминает как вчерашний школьник, сегодняшний стартапер приходит к инвестору и в 98% случаев начинает с фразы "а вы мою идею не украдете? она у меня на МУЛЬЕНЫ".
Серьсезная защита стоит намного больше 20-30т.р. Да и 20-30 т.р., если честно не та сумма которую стоит защищать с автоматчиками. Если же "она критична для инвестора", то.... значит он выбрал поект не своего маштаба. Не готов он рисковать такими суммами (а ведь fail может быть еще по тысячи причин, и "китайцы скопируют" - где-то в конце списка вероятностей).
Если боитесь китайцев - ну так в чем проблема не давать им прошивку? Прошивайте сами. На них - только изготовление (ну может дать, какую-нибудь тестовую, которая проверяет что диоды мигают).
Да банально. Вот у нас "пиратсво" - вообще-то не такое редкое явление. Рипы фильмов, игр для приставок - видел на торрентах. Вырванные из комерческих устройств прошивки (даже дорогих) - не попадались. Не бродят по сети. Никто этим не занимается.
Если превращают "устройство за $50 в устройство за $500 с помщью перепрошивки", то берут либо прошивку от дорогого, которую сам производитель выложил в сеть, либо пишут энтузиасты свою (и это гораздо чаще, а зачастую и лучше).
Что-бы "убедить заказчика" - можете предложить ему самому попробовать скопировать какой-то деваяй с рынка. Когда он хотя-бы на бумаге прикинить во что это ему обойдется - может наступить понимание. Там ведь тоже логика "должно окупится" - работает ;)
Ну предположим "взлом локов" - 5000, организовать распространение 1000 на штуке. Предположим вероятность удачного выпихивания оргинала с рынка 20%, значит фактическая стоимость аферы, с учетом риска 30000 что уже равно "просто нанять другого программера".
При этом:
1. Имеем прошивку которую не возможно модифицировать/поддерживать (где гарантия что она без багов или ловушек? и что делать если пойдут возвраты?)
2. Продавать нужно дешевле и быстрее чем оригинал (норма прибыли еще меньше)
3. В любом момент оргиниал может обновить прошивку, добавить какую-то "киллер фичу" которая моментально обесценить наш клон
4. Угроза судебного преследования (или тупо "разборки").
Посмотрите на все эти "китайские клоны" наводнившие рынок. Да электроника дешевле грязи. Но... что у китайцев самое фиговое? Да ведь именно прошивки. Которые они сами пытаются писать. Пресс формы, механику и проч. - замечательно копируют, а софт.... пока еще не отточили этот навык до блеска.
Вообщем итог тут такой:
1. Локать
2. Изготавливать и прошивать - в разных местах.
И объяснить заказчику что 100% гаранитии - не бывает. Все остальные варианты - намного дороже (на порядки, даже не разы), при этом четкой взаимосвязи дороже->сложней-ломать - все равно не будет.
P.S. Я когда познакомился с компами (буквально перый месяц знакомста) - ломал одну програму (честно купленную, просто бекапы хотелось, во времени дискет - это было очень актуально). Фирма продавец - очень гордилась своей защитой. У нее отдельный отдел из 15-ти человек пару лет ее клепал - не взалмывается (и все это знали, везде на презентациях упирали на это).
Я будучи школьником, без знаний (а значит и без "пугательных иллюзий"), сломал ее "наугад". Просто методом тыка. Заклеив дискету от записи (это они предусмотрели), вслух отсчитывал секунды, в нужный момент подменял чистой дискетой (туда записылвался счетчик установок), считал "раз-два-три-четыре" (и слушал сколько раз дисковод вжикнул)... и вставлял обратно "ключевую", до того как оно успевало заметить подмену. Уже потом, освоив ассемблер, я все это автоматизировал и просто перехватывал запись без танцев с дискетами. Но это было намного позже.
И никакими специалистами, вы никогда не расчитаете вероятность такого школьника который просто выдирает дискету в нужный момент.... ;) Им просто в голову не прийдет до чего может додуматся человек не обладающий спец. знаниями. Не ведающий про си, ассемблер и лок. биты :)
to leshak +1
"Дружище! покажите как их грамотно поставить!!! Как угодно лок биты выставлю с фьюзами (безстрашно их окончательно залокать) Невыходит ни... голову сломал! Удаётся за локать только само их изменение, а память считывается и это "считанное",экспериментом, заливаю в новый камень, а он недопутимо начинает работать((!" - это что-то новое. А какой микроконтроллер используете?