Easyelectronics.ru

Электроника для всех
Текущее время: 20 ноя 2019, 07:50

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/10pcs (Любой цвет!)
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 130 ]  На страницу Пред.  1, 2, 3, 4, 5, 6  След.
Автор Сообщение
 Заголовок сообщения: Re: Как защитить программу на уровне чипа..?
СообщениеДобавлено: 30 май 2018, 23:11 
Старожил

Зарегистрирован: 27 мар 2015, 01:22
Сообщения: 1471
alexparser писал(а):
В целом, можно подвести промежуточный итог.
Не возможно получить надежную защиту прошивки от копирования опираясь исключительно на аппаратную защищенность процессора.

STM32, RDP level 1, программа никогда не пишет свой код в RAM [нет никаких своих boot loaders и т.п.] - всё, абсолютная защита

_________________
less is more


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как защитить программу на уровне чипа..?
СообщениеДобавлено: 30 май 2018, 23:30 
Заглядывает иногда

Зарегистрирован: 16 окт 2013, 20:15
Сообщения: 169
Откуда: Екатеринбург
vt340 писал(а):
alexparser писал(а):
В целом, можно подвести промежуточный итог.
Не возможно получить надежную защиту прошивки от копирования опираясь исключительно на аппаратную защищенность процессора.

STM32, RDP level 2,программа никогда не пишет свой код в RAM (нет никаких своих boot loaders и т.п.) - всё, абсолютная защита

RDP_Level_2 и баста - всё остальное - "от лукавого"


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как защитить программу на уровне чипа..?
СообщениеДобавлено: 31 май 2018, 00:33 
Старожил
Аватара пользователя

Зарегистрирован: 28 дек 2011, 11:24
Сообщения: 4103
Откуда: г. Липецк
Непонятно, кому нужен этот садомазохизм с супер защитой. Не надо блаженствовать на будущих лаврах, приготовьтесь обновлять прошивку раз в квартал, и никакие защиты уже не актуальны (разве кроме загрузчика).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как защитить программу на уровне чипа..?
СообщениеДобавлено: 31 май 2018, 04:56 
Старожил
Аватара пользователя

Зарегистрирован: 18 май 2013, 20:43
Сообщения: 4398
Откуда: Кемеровская область, Киселевск
Правильно говорит, лучше потратить время на создание что-то более стоящего и полезного.

_________________
RADIOWOLF.RU


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как защитить программу на уровне чипа..?
СообщениеДобавлено: 31 май 2018, 05:32 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 26 мар 2012, 01:27
Сообщения: 161
Oxford писал(а):
Правильно говорит, лучше потратить время на создание что-то более стоящего и полезного.

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

_________________
Все новое - хорошо забытое старое!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как защитить программу на уровне чипа..?
СообщениеДобавлено: 31 май 2018, 05:48 
Старожил
Аватара пользователя

Зарегистрирован: 18 май 2013, 20:43
Сообщения: 4398
Откуда: Кемеровская область, Киселевск
alexparser писал(а):
alexsam писал(а):
STM32

Устраивает все кроме безопасности - https://www.aisec.fraunhofer.de/en/FirmwareProtection.html


Для начало внимательно посмотри что в видео делают. Видео полное гавно. Можешь спать спокойно. STM32 еще никто не сломал пока. Его можно только стереть и сбросить.

_________________
RADIOWOLF.RU


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как защитить программу на уровне чипа..?
СообщениеДобавлено: 31 май 2018, 08:51 
Старожил
Аватара пользователя

Зарегистрирован: 17 апр 2010, 08:38
Сообщения: 4916
Откуда: Усинск, республика Коми
alexparser писал(а):
Oxford писал(а):
Правильно говорит, лучше потратить время на создание что-то более стоящего и полезного.

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

Какова сумма которая затрачена на разработку и которую заказчик готов потратить на защиту? От них нужно плясать. Просто дайте заказчику понять, что все любую защиту можно взломать. Вопрос только в затратах. Самая надежная защита - это держать все в голове. Как только вы напишите мысль даже на бумаге, то нужно быть готовым к тому, что ее кто-то украдет и воспользуется. Если вы хотите защититься от вирусов - не включайте компьютер вообще и не подключайте его к сети. Только в этом случае будет 100% гарантия защиты от вирусов.
Если эти самые уникальные данные находятся на электронном носителе, то вероятность кражи возрастает. Если данные критичные и есть риск их потери (диск сломается, флешка перестанет читаться и т.п.), то значит нужно делать резервную копию, а это еще больше увеличивает возможность потери данных в результате кражи.
Объясните заказчику, что 100% защиты не существует. Даже банки тратят не малые средства на защиту информации (у заказчика навряд ли найдется подобная сумма для защиты своей разработки), однако ее все равно воруют и она есть на черном рынке. И не только банки, а даже данные из баз данных МВД, налоговой и даже ФСБ (казалось бы как так, но это факт) можно купить и воспользоваться в своих интересах.
Надеюсь, мысль понятна.

_________________
хаос это непознанный порядок


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как защитить программу на уровне чипа..?
СообщениеДобавлено: 31 май 2018, 09:04 
Старожил
Аватара пользователя

Зарегистрирован: 18 май 2013, 20:43
Сообщения: 4398
Откуда: Кемеровская область, Киселевск
А смысл ему обьяснять заказчику, если он хочет выебнуться перед заказчиком и бабки заработать? Я запилил охуенную защиту!!! Он уже дал понять что ему пох. Человек даже не знает что вообще нужно защищать и как. Анализ первого поста об этом говорит.

_________________
RADIOWOLF.RU


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как защитить программу на уровне чипа..?
СообщениеДобавлено: 31 май 2018, 09:32 
Старожил
Аватара пользователя

Зарегистрирован: 22 июл 2017, 11:48
Сообщения: 3751
Кстати, эти базы данных налоговых сливают сами работники налоговых и прочих ведомств. А этот долбаный закон об обработке персональных данных - вообще херня, ибо либо ты подписался "согласен на обработку персональных данных" и получаешь услугу, либо не подписал - и ничего не получаешь. Твоя подпись - означает только то, что "ежели чо, ты же согласился сам".

Вообще, есть некая паранойя насчет взлома и хищения каких-то типа там уникальных исследований... Сильно боитесь - зашифруйте критичные данные на основе серийного номера МК или какой-нить внешней микросхемки. А уж ежели ну ваще боитесь (заказчик бздит) - тогда скажите заказчику, чтобы он эту свистоперделку экспериментальную никому не давал. Пусть еёйную носит в чемоданчике, пристегнутом наручниками к его руке.
Ежели исполнитель желает просто выебнуться перед заказчиком - тут еще проще. Пусть наврет про какие-нить супер-пупер криптозащиты с 256-битным ключом и прыгающим кодом.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как защитить программу на уровне чипа..?
СообщениеДобавлено: 31 май 2018, 09:45 
Заглядывает иногда

Зарегистрирован: 20 апр 2017, 20:33
Сообщения: 160
alexparser писал(а):
в этом небольшом куске кода содержится несколько лет экспериментальной работы + немалые финансовые затраты

Странно, что при этом ограничение на mcu 10$ всего


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как защитить программу на уровне чипа..?
СообщениеДобавлено: 31 май 2018, 09:53 
Заглядывает иногда

Зарегистрирован: 20 апр 2017, 20:33
Сообщения: 160
BusMaster писал(а):
Ежели исполнитель желает просто выебнуться перед заказчиком - тут еще проще. Пусть наврет про какие-нить супер-пупер криптозащиты с 256-битным ключом и прыгающим кодом.

"Нет-нет, вы не поняли, нам как раз нужно чтобы код никуда не прыгал!"


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как защитить программу на уровне чипа..?
СообщениеДобавлено: 31 май 2018, 10:06 
Старожил
Аватара пользователя

Зарегистрирован: 26 окт 2013, 07:58
Сообщения: 2431
Бутлоадер с шифрованием.
Запретить запуск кода из RAM.
Запретить чтение из FLASH.
Сделать так, чтобы даже считанная прошивка на другом камне не работала - привязать код к UID камня.
UID хранить тоже зашифрованным.

Я так пробовал - прошивка на SD карту записывает шифрованный UID зашифрованный ключом А.
Далее этот файл обрабатывается софтиной на ПК и перешифровывает его с ключом Б.
Уже этот файл пишется на флешку и служит "лицензионным ключом".
При старте прошивки сравнивается UID, зашифрованный в файле и UID камня.
Если не совпадают - не стартуем, а то и флеш стираем.
Сами понимаете - на другом камне прошивка не заработает с "чужим" ключом.

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


Может и по дилетантски рассуждаю, но, ИМХО - этих средств достаточно, чтобы усложнить жизнь взломщику.
Чтобы было проще купить лицензию, чем тратить время на взлом.


Последний раз редактировалось Pingvin 31 май 2018, 11:11, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как защитить программу на уровне чипа..?
СообщениеДобавлено: 31 май 2018, 10:57 
Заглядывает иногда

Зарегистрирован: 20 апр 2017, 20:33
Сообщения: 160
Pingvin писал(а):
Может и по дилетантски рассуждаю, но, ИМХО - этих средств достаточно, чтобы усложнить жизнь взломщику.
Чтобы было проще купить лицензию, чем тратить время на взлом.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как защитить программу на уровне чипа..?
СообщениеДобавлено: 31 май 2018, 13:11 
Старожил

Зарегистрирован: 27 мар 2015, 01:22
Сообщения: 1471
Mihail_kr писал(а):
Ну да, представил как взломщик вырывает волосы на жопе пытаясь понять как оно работает

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

_________________
less is more


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как защитить программу на уровне чипа..?
СообщениеДобавлено: 31 май 2018, 13:30 
Заглядывает иногда

Зарегистрирован: 20 апр 2017, 20:33
Сообщения: 160
vt340 писал(а):
Чем больше финтов, тем больше шанс ошибки программиста
Потом программист будет рвать волосы на жопе, но будет поздно

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как защитить программу на уровне чипа..?
СообщениеДобавлено: 31 май 2018, 13:32 
Старожил
Аватара пользователя

Зарегистрирован: 17 апр 2010, 08:38
Сообщения: 4916
Откуда: Усинск, республика Коми
Одно из правил программиста гласит, что если найден баг то нужно описать его и назвать дополнительной опцией.

_________________
хаос это непознанный порядок


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как защитить программу на уровне чипа..?
СообщениеДобавлено: 31 май 2018, 13:42 
Старожил

Зарегистрирован: 08 авг 2013, 09:43
Сообщения: 2367
К слову, да, чем сложнее, тем больше места для ошибки. Игровые приставки - PS3, PS4 и Xbox360 тоже в итоге сломали. А там и аппаратная защита, и несколько уровней зашифрованный и защищенных бутлоадеров, и система куда сложнее, и многомиллиардная индустрия. Всё-равно нашли способ энтузиасты.
Как на PS не знаю подробности, как-то ключик шифрования там вроде смогли извлечь. А на Xbox360 там целая череда взломов была, которая прикрывалась апдейтами прошивки (типа если не сломал до обновления, то после обновы дырка будет закрыта). Один из способов был - Reset Glitch Hack. Занятно, замедляли проц регулировкой PLL, в момент проверки посылался короткий импульс на сброс, который выполнение кода не останавливал, зато обнулял регистр проверки, что позволяло дальше запускать кастомный код следующего загрузчика, который "хавался" как проверенный из-за этого.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как защитить программу на уровне чипа..?
СообщениеДобавлено: 31 май 2018, 13:51 
Старожил

Зарегистрирован: 08 авг 2013, 09:43
Сообщения: 2367
Кстати всякие 51ые клоны раньше производили в варианте с OTP ROM. Вот если есть какой-нибудь CHIP ID уникальный и прошивка в OTP память заливается - можно для каждого МК генерить прошивку, зашифрованную с использованием CHIP ID. Даже если прошивку считают, надо будет получить еще CHIP ID, чтобы её применить где-то еще. А без возможности затереть МК и залить свою прошивку это станет куда сложнее.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как защитить программу на уровне чипа..?
СообщениеДобавлено: 31 май 2018, 13:55 
Заглядывает иногда

Зарегистрирован: 20 апр 2017, 20:33
Сообщения: 160
NStorm писал(а):
Игровые приставки - PS3, PS4 и Xbox360 тоже в итоге сломали

Там защита строилась чисто локально или через запрос к внешнему серверу?
Сейчас например игры для PC выходят через Steam - там закольцовка всего на сервер. Так что если ломать, то ломать нужно сервер.
Вообще эпоха теплых ламповых кряков уже как-то то ли закончилась, то ли заканчивается.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как защитить программу на уровне чипа..?
СообщениеДобавлено: 31 май 2018, 14:05 
Старожил
Аватара пользователя

Зарегистрирован: 17 апр 2010, 08:38
Сообщения: 4916
Откуда: Усинск, республика Коми
Mihail_kr писал(а):
NStorm писал(а):
Игровые приставки - PS3, PS4 и Xbox360 тоже в итоге сломали

Там защита строилась чисто локально или через запрос к внешнему серверу?
Сейчас например игры для PC выходят через Steam - там закольцовка всего на сервер. Так что если ломать, то ломать нужно сервер.
Вообще эпоха теплых ламповых кряков уже как-то то ли закончилась, то ли заканчивается.

Защита по ответу от сервера вообще самая легколомаемая. Нужно просто посмотреть какой ответ ждет программа и подсунуть ей этот ответ со своего сервера. Адрес сервера на свой можно изменить, например, в файле hosts. И не нужно будет ломать сервер.

_________________
хаос это непознанный порядок


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как защитить программу на уровне чипа..?
СообщениеДобавлено: 31 май 2018, 14:07 
Старожил

Зарегистрирован: 08 авг 2013, 09:43
Сообщения: 2367
Смысл взлома там был вообще в том, чтобы запускать свой код - свои приложения и т.д., т.н. homebrew. Так что можно сказать только локальный.
Что касается Steam и лицензии - ломают элементарно. Патченная DLL проверки, которая выдает что "сервер дал добро" и всё. В любом случае пока игра работает и запускается на вашем компе - её можно будет взломать. Были сервисы кстати, где игруха запускалась удаленно, а к вам стримилось только видео. Вот такое скорее всего не взломаешь уже.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как защитить программу на уровне чипа..?
СообщениеДобавлено: 31 май 2018, 14:10 
Старожил

Зарегистрирован: 08 авг 2013, 09:43
Сообщения: 2367
BigLeha писал(а):
Защита по ответу от сервера вообще самая легколомаемая. Нужно просто посмотреть какой ответ ждет программа и подсунуть ей этот ответ со своего сервера. Адрес сервера на свой можно изменить, например, в файле hosts. И не нужно будет ломать сервер.

Обмен с сервером шифруется приватным ключем, который есть только сервере и всё, таким образом уже не поломаешь. Можно найти проверку ответа от сервера в проге и как обычно поменять. Тут только всякие обфускации и шифрование локального кода усложняют поиск места проверка, но не отменяют его.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как защитить программу на уровне чипа..?
СообщениеДобавлено: 31 май 2018, 14:10 
Заглядывает иногда

Зарегистрирован: 16 окт 2013, 20:15
Сообщения: 169
Откуда: Екатеринбург
NStorm писал(а):
Вот если есть какой-нибудь CHIP ID уникальный и прошивка в OTP память заливается - можно для каждого МК генерить прошивку, зашифрованную с использованием CHIP ID

Очевидно, перед тем, как выполнять зашифрованный код, его необходимо расшифровать с использованием уникального chipID. Проблема в том, что после дешифровки код будет лежать в ОЗУ, а не во флешке. А организовать несанкционированный доступ к ОЗУ на F051 (подозреваю и на прочих F0), согласно уже упоминавшейся статье немецких ребят из института Фраунгофера - как два пальца об асфальт. Таким образом.. будет получен сразу же расшифрованный исполняемый код, и, как следствие, chipID становится неактуальным.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как защитить программу на уровне чипа..?
СообщениеДобавлено: 31 май 2018, 14:14 
Старожил

Зарегистрирован: 08 авг 2013, 09:43
Сообщения: 2367
Ну так у F051 и с OTP ROM не бывает. На F051 вроде тема не зациклилась ведь?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как защитить программу на уровне чипа..?
СообщениеДобавлено: 31 май 2018, 14:38 
Старожил

Зарегистрирован: 27 мар 2015, 01:22
Сообщения: 1471
Порфирий писал(а):
А организовать несанкционированный доступ к ОЗУ на F051 (подозреваю и на прочих F0), согласно уже упоминавшейся статье немецких ребят из института Фраунгофера - как два пальца об асфальт

Порфирий, да всё в порядке и с F0, и они сами там дальше честно пишут, что все эти экзерсисы фигня
Перед тем как загружать чувствительные данные в ram, программа должна проверить есть ли level 2, если нет, то поставить, если не может, то не загружать
В level 1 дебаггер хоть и работает, но не дебажит, т.к. флеш отключается от процессора полностью и навсегда [до ресета], и всё что можно делать - это только посмертный дамп ram и регистров
Т.е. "методом cbs" можно только с грустью понаблюдать, как программа снова поставит level 2 [и естессно только до тех пор пока она его не поставит], помешать этому невозможно

_________________
less is more


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 130 ]  На страницу Пред.  1, 2, 3, 4, 5, 6  След.

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB