реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Защита от клонирования и перепрошивки., Процессор не секюрный.
JeDay
сообщение Jun 15 2018, 08:37
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 276
Регистрация: 22-09-05
Из: Kiev
Пользователь №: 8 818



Добрый день.
Задался вопросом, как защитить свое устройство на базе линукса на не секюрном процессоре с внешней SPI флешкой. Единственное, что приходит в голову это поставить рядом МК и зашить туда закрытый ключ. Написать драйвер и вкомпилить статически в ядро в котором будет периодически считываться зашифрованный пакет с МК и открытым ключем валидировать. Если пакет неправильный - перегружаться либо начать глючить. МК будет делать тоже самое зеркально. Если долго нет контрольного запроса, то делать хардварный ресет процессора. Это менее надежно чем процессор со встроенной верификацией бинаря по цифровой подписи, но лучше чем ничего.
У кого какие мысли?
Go to the top of the page
 
+Quote Post
x736C
сообщение Jun 15 2018, 15:27
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1 273
Регистрация: 3-03-06
Пользователь №: 14 942



Столько копий сломано. Попробуйте поискать на форуме похожие темы.

Навскидку https://electronix.ru/forum/index.php?showtopic=143246


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

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

Ваш вспомогательный контроллер просто скопируют, считав с него прошивку, если не смогут взломать протокол обмена. То есть опять-таки, надо понимать, на кого нацелена ваша защита.
Go to the top of the page
 
+Quote Post
kolobok0
сообщение Jun 16 2018, 06:47
Сообщение #3


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417



Цитата(JeDay @ Jun 15 2018, 11:37) *
...Задался вопросом,...



Тут всё правильно сказали выше - надо использовать плюсы присущие данной железке и схемному решению. Т.е. если флэш достаточно большая - то обеспечить
её более-менее равномерным покрытием кода. Сам объём кода увеличить (включить оптимизацию по скорости к примеру). И защиту скрывать именно не явно.
Но вот доп. мк внешний я бы поставил (если стоимость позволяет). Но это первый эшелон - от пионэров. А вот более посерьёзнее - тот подход, что прозвучал выше.
Опыт показывает, что бОльшая защита получается при симбиозе аппаратно-программной защиты и разноуровневой(про софт речь) на низком и на высоком.
Если низкий - то от пионэров и лентяев, то высокоуровневая защита съедает бОльший ресурс человеко-часов при взломе.

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


с уважением
(круглый)
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Jun 16 2018, 07:12
Сообщение #4


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(x736C @ Jun 15 2018, 18:27) *
Исходя из всего прочитанного по теме пришел к выводу, что защита должна быть очень скрытая. Сам факт ее наличия должен быть неочевидным. И проявлять себя должна псевдослучайным образом на длинном промежутке времени. Единичные отказы на длительных промежутках времени и вылавливать дольше и сложнее.

Фиеричная идея!
Смысл в том чтобы сделать умышленные сбои неотличимыми от неумышленных багов.
А как такую программу отлаживать, спрашивается?

Как вариант защиты - версионирование.
Нужно создать технологию автоматической генерации новых версий с постоянной периодичностью.
Вот это настоящий кошмар для хакеров.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Jun 16 2018, 08:15
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(AlexandrY @ Jun 16 2018, 10:12) *
Как вариант защиты - версионирование.
Нужно создать технологию автоматической генерации новых версий с постоянной периодичностью.
Вот это настоящий кошмар для хакеров.

Ага! Если ещё и в каждую версию закладывать баги, начинающие срабатывать после определённой даты или количества включений! Обновляем - получаем новую порцию багов, но пока спящих. И так подсаживаем юзеров на иглу постоянных апдейтов и сами никогда не останемся без работы и хакерам кровь попортим!
И есть широкоизвестные и успешные конторы, работающие по такому принципу biggrin.gif
Go to the top of the page
 
+Quote Post
x736C
сообщение Jun 16 2018, 11:01
Сообщение #6


Профессионал
*****

Группа: Участник
Сообщений: 1 273
Регистрация: 3-03-06
Пользователь №: 14 942



Цитата(AlexandrY @ Jun 16 2018, 10:12) *
Фиеричная идея!
Смысл в том чтобы сделать умышленные сбои неотличимыми от неумышленных багов.
А как такую программу отлаживать, спрашивается?

Это очень надуманное соображение. Я было начал что-то отвечать, но потом понял, что не имеет никакого смысла. Все что вы написали актуально, но элементарно разрешимо.
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Jun 16 2018, 11:42
Сообщение #7


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(x736C @ Jun 16 2018, 14:01) *
Это очень надуманное соображение. Я было начал что-то отвечать, но потом понял, что не имеет никакого смысла. Все что вы написали актуально, но элементарно разрешимо.

Я даже не о том разрешимо или нет, я об элементарной логике.
Если дивайс дает делать все, только иногда редко сбоит, то это нормальный консамерский дивайс.
И все его будут использовать как ни в чем не бывало.
Go to the top of the page
 
+Quote Post
a123-flex
сообщение Jun 16 2018, 12:35
Сообщение #8


Профессионал
*****

Группа: Свой
Сообщений: 1 687
Регистрация: 11-01-05
Из: Москва
Пользователь №: 1 884



Цитата(jcxz @ Jun 16 2018, 12:15) *
Ага! Если ещё и в каждую версию закладывать баги, начинающие срабатывать после определённой даты или количества включений! Обновляем - получаем новую порцию багов, но пока спящих. И так подсаживаем юзеров на иглу постоянных апдейтов и сами никогда не останемся без работы и хакерам кровь попортим!
И есть широкоизвестные и успешные конторы, работающие по такому принципу biggrin.gif

Microsoft ?)


--------------------
Если хочешь узнать, что ждет тебя на дороге впереди, спроси у тех, кто возвращается по ней.
Go to the top of the page
 
+Quote Post
x736C
сообщение Jun 16 2018, 13:25
Сообщение #9


Профессионал
*****

Группа: Участник
Сообщений: 1 273
Регистрация: 3-03-06
Пользователь №: 14 942



Цитата(AlexandrY @ Jun 16 2018, 14:42) *
Все его будут использовать как ни в чем не бывало.

Все зависит от критичности сбоя и их интенсивности. Очевидно, что «сбои» должны выводить клон из области конкурентного превосходства в худшем случае. А в лучшем случае не должны позволить сделать из клона полноценный продукт.

Я ожидал дискуссии по этой теме. Это говорит о том, что тема горячая, актуальная. Вопрос себя не исчерпал и тут есть над чем покреативить.
Go to the top of the page
 
+Quote Post
a123-flex
сообщение Jun 16 2018, 14:24
Сообщение #10


Профессионал
*****

Группа: Свой
Сообщений: 1 687
Регистрация: 11-01-05
Из: Москва
Пользователь №: 1 884



Цитата(x736C @ Jun 16 2018, 17:25) *
Я ожидал дискуссии по этой теме.

А есть факты из надежных источников считывания прошивок залоченных на чтение STM32 ?
Очень хотелось бы верить в то, что этот элемент системы - доверенный blush.gif

Цитата(x736C @ Jun 16 2018, 17:25) *
Это говорит о том, что тема горячая, актуальная.

что может быть на форуме разработчиков горячее отымелова разработчиков ? wink.gif


--------------------
Если хочешь узнать, что ждет тебя на дороге впереди, спроси у тех, кто возвращается по ней.
Go to the top of the page
 
+Quote Post
x736C
сообщение Jun 16 2018, 14:59
Сообщение #11


Профессионал
*****

Группа: Участник
Сообщений: 1 273
Регистрация: 3-03-06
Пользователь №: 14 942



Цитата(a123-flex @ Jun 16 2018, 17:24) *
А есть факты из надежных источников считывания прошивок залоченных на чтение STM32 ?

Надежных источников у меня нет, но если ориентироваться на подобные сайты (http://www.break-ic.com), то можно полагать, stm32 успешно копируется.
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Jun 16 2018, 17:00
Сообщение #12


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(x736C @ Jun 16 2018, 16:25) *
Все зависит от критичности сбоя и их интенсивности. Очевидно, что «сбои» должны выводить клон из области конкурентного превосходства в худшем случае. А в лучшем случае не должны позволить сделать из клона полноценный продукт.

Я ожидал дискуссии по этой теме. Это говорит о том, что тема горячая, актуальная. Вопрос себя не исчерпал и тут есть над чем покреативить.

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


Ну и интересно, как узнать в чем конкурентные превосходства продукта?
Я бы даже сказал что клонирование и есть доказательство конкурентного превосходства. Клонирование надо позволять делать.
А потом включать конвейер апгрейдов. Тогда получится борьба на основе хорошего фидбэка.


Go to the top of the page
 
+Quote Post
x736C
сообщение Jun 16 2018, 17:20
Сообщение #13


Профессионал
*****

Группа: Участник
Сообщений: 1 273
Регистрация: 3-03-06
Пользователь №: 14 942



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

По техническому решению. Я все-таки плисовод, нежели программист микроконтроллеров. И в ПЛИС патч очень непросто поставить, насколько знаю. То есть даже считав прошивку, ее очень сложно расковырять.
Для контроллеров все проще. В общем случае, да, поставят заплатку на условный переход. И у меня нет конкретного рецепта, поэтому я высказал общие соображения в надежде на критику и дополнения.

Цитата(AlexandrY @ Jun 16 2018, 20:00) *
Ну и интересно, как узнать в чем конкурентные превосходства продукта?

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

Цитата(AlexandrY @ Jun 16 2018, 20:00) *
Хм, это звучит как сделай то, не знаю что.
Во первых вы не дали наводку как софту определить что он клон.

У меня есть некоторые идеи, как защитить ПЛИС с помощью статистических методов, используя которые прошивка «понимает», что она в контрафактном окружении. В данном случае все зиждется на том, что прошивку для ПЛИС очень непросто расковырять. Не буду тут кривить душой, идеи весьма сырые.
Как защитить микроконтроллер техническими средствами от компаний с бюджетами не представляю.
В теме, ссылку на которую приводил, обсуждались мысли о связи устройства с сервером. Все они снижают надежность, насколько понял.
Go to the top of the page
 
+Quote Post
JeDay
сообщение Jun 16 2018, 20:08
Сообщение #14


Местный
***

Группа: Свой
Сообщений: 276
Регистрация: 22-09-05
Из: Kiev
Пользователь №: 8 818



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

В предыдущей зелезке мы имели неосторожность и алгоритмы антиклонинга вынесли в отдельный модуль ядра. lsmod его хорошо видел. Символов там было минимальное колличество. Вот там можно было сделать патч) Потом уже пришла мысль что надо было модуль статически в ядро линукса запихнуть. Хотя я если честно не проверял, покажет ли lsmod его как отдельный модуль?
Это мы все обсуждаем как не дать склонировать девайс.
Есть еще одна проблемка, для кого-то это вовсе не проблема - кастомные прошивки. Против этого в том же внешнем МК у нас был хард-ресет заведен на процессор. И если долго небыло запроса с линукса о проверке подлинности, МК ребутал проц. Но такую штуку легко хардварно пофиксить sad.gif
Go to the top of the page
 
+Quote Post
a123-flex
сообщение Jun 17 2018, 12:10
Сообщение #15


Профессионал
*****

Группа: Свой
Сообщений: 1 687
Регистрация: 11-01-05
Из: Москва
Пользователь №: 1 884



Имхо нет надёжной защиты, кроме выноса части функций устройства в аппаратно защищенный ключ(и), а дальше опора всей защиты на этот узел. Любые вензеля в стандартном x86 будут раскручены, не несущие функции аппаратные ключи - вырезаны.
То что крякеры рекламируют взлом всех существующих камней это понятно, вопрос чего они реально могут. Ну и за сколько, разумеется.


--------------------
Если хочешь узнать, что ждет тебя на дороге впереди, спроси у тех, кто возвращается по ней.
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th April 2024 - 02:49
Рейтинг@Mail.ru


Страница сгенерированна за 0.01506 секунд с 7
ELECTRONIX ©2004-2016