16+
Пятница
17 августа
Вход |Карта сайта | |Upload |codebook | PARTS

 О смысле всего сущего 0xFF

 Средства и методы разработки

 Мобильная и беспроводная связь

 Блошиный рынок Объявления

caxapa

Микроконтроллеры ARM 

AVR PIC MSP PLD,FPGA,DSP 

Кибернетика Технологии 

Схемы, платы, компоненты 

Схемы, платы, компоненты

 
   Новая тема Правила Регистрация Поиск »» Архив
Вернуться в конференциюТопик полностью
fk0  (15.05.2018 02:04) , в ответ на Подскажите существует ли в природе дрянь которой можно залить ПП без потери ее работоспособности, для затруднения делания Copy Past конкурентам. автор: Хочу залиьт плату.
Для начала надо понять какие цели ставятся: 
1) защитить от копирования не-профессионалами; 2) защитить от создания функционального аналога профессионалами; 3) защитить от создания копии (имитации оригинального изделия, внешне трудноотличимой) профессионалами; 4) скрыть принципы работы прибора. Заливание чем-то платы вообще наверное не поможет, спиливание маркировки -- только от пункта 1 разве что и иногда 3. Лучше вместо заливания "какой-то дрянью" (которая окажется гигроскопичной, содержит кислоты, может стать электропроводной, в любом случае влияет на диэлектрическую проницаемость и ёмкость, препятствует отводу тепла...) лучше покрыть плату каким-либо составом защищающим от влаги, но не сильно препятствующим ремонту. Вопрос есть ли в приборе что-то, что способно хранить логику работы прибора и при этом недоступно для чтения? Например тот же микроконтроллер. Если нет, то наверное и не стоит пытаться. Те же логические ИМС вполне угадываются, как и многое другое. Может скопировать и не удастся, но принцип работы вскроется и можно сделать приблизительный или даже визуально малоотличимый аналог. Что может защищать микроконтроллер. Во-первых само программное обеспечение -- работа по его созданию достаточно трудоёмка попросту, и чем больше по объёму ПО, тем меньше смысла что-то копировать. Попросту разработка с нуля становится сопоставима в финансовом плане. Во-вторых ПО может реализовывать какие-либо неочевидные алгоритмы обработки сигналов, например, без знания которых невозможно понять принцип работы прибора. Может быть в связи с этим какие-то очевидные вещи, тривиально выполняемые схемотехнически, стоит переложить на МК, чтоб они стали не видны. В третьих, если речь, например, о том, что копированием прибора занимаются люди занимающиеся его же и производством, в рабочее время, то очевидно стоило бы разнести программирование микроконтроллера и собственно производство. Более того, наличие в электронной схеме какого-либо компонента с уникальным идентификатором (есть, например, микросхемы "ПЗУ" содержащие уникальный MAC-адрес и больше ничего -- для сетевых карт, есть МК со встроенным уникальным номером) -- большой плюс. Можно предусмотреть, что каждая прошивка будет уникальной и расчитанной на этот уникальный номер. Таким образом можно не допустить производство и программирование "левых" копий приборов на том же производстве. Конечно прошивка может быть дизассемблирована и проверка номера отключена. Тут могут быть разные методы борьбы -- и отложенная валидация целостности, и бутлоадер, который принимает прошивку и дешифрует при уже включенных битах защиты, на электрониксе был топик: electronix.ru/forum/lofiversion/index.php/t111466.html Но в общем случае без поддержки криптографии в МК (а сейчас таких МК просто нет, а не про AES, а про валидацию прошивки) украсть прошивку можно, если есть доступ к изначальному бутлоадеру, к его коду или хексу. Наконец программа МК может защищать от "подделки" электронной схемы храня в программной памяти, или в EEPROM, некоторые параметры цепей, которые может измерить микроконтроллер. Сопротивление или ёмкость, или напряжение. Например, прошивки аонов "Русь" так защищались от копирования (были привязаны к параметрам телефонной трубки, которые были разные). Конечно профессионалы могут всё промерить и разобраться, что вот тут конденсатор не простой, а NP0 (а у простого будет ёмкость гулять -- подделка), но уже лучше чем ничего. Актуально когда прошивку не защитить от копирования или считывания. Для тех же целей можно использовать "недопрограммированные" ПЗУ с плавающими битами. Тоже в АОНах использовалось. Не знаю, выпускаются ли сейчас такие микросхемы памяти, которые можно недопрограммировать или недостереть и считывание будет через раз. Да и ненадёжно, нет гарантии, что будет работать через год. А аналоговые элементы со стабильными характеристиками (тот же конденсатор) можно использовать в такой роли. Но люди на производстве эти ньюансы могут как раз понимать, им же схемы и спецификации даны. Сама прошивка может быть защищена от дизассемблирования, ну здесь целая история. По крайней мере я вижу два пути: либо ручное программирование на ассемблере (подходит для малых МК), в основном для CISC-процессоров подходит, что можно сбить автоматический дизассемблер "пересекающимися" инструкциями, при работе из ОЗУ -- самомодифицирующимся кодом, использованием динамически вычисляемых указателей функций. Привязкой к времени исполнения (чтоб по шагам не раскодировали), взаимодействием с периферийными модулями (например DMA) привязанными тоже к времени. Можно просто перемешать набор осмысленных команд с неосмысленным кодом, но это запутывает скорей человека, а IDA размотать структуру кода сможет. Для больших МК порядочно усложнить работу может использование какого-либо интерпретатора ЯВУ, байткода, наконец использование симулятора другого процессора (правда для последнего может найтись поддержка в IDA). А дизассемблировать байткод какой-то там версии lua, например -- готовых средств нет, а даже если и дизассемблируешь, то до понимания программы там очень далеко.
[ZX]
Главная | Карта сайта | О проекте | Проекты | Файлообменник | Регистрация | Вебмастер | RSS
Лето 7526 от сотворения мира. При использовании материалов сайта ссылка на caxapу обязательна.
MMI © MMXVIII