JeDay 0 15 июня, 2018 Опубликовано 15 июня, 2018 · Жалоба Добрый день. Задался вопросом, как защитить свое устройство на базе линукса на не секюрном процессоре с внешней SPI флешкой. Единственное, что приходит в голову это поставить рядом МК и зашить туда закрытый ключ. Написать драйвер и вкомпилить статически в ядро в котором будет периодически считываться зашифрованный пакет с МК и открытым ключем валидировать. Если пакет неправильный - перегружаться либо начать глючить. МК будет делать тоже самое зеркально. Если долго нет контрольного запроса, то делать хардварный ресет процессора. Это менее надежно чем процессор со встроенной верификацией бинаря по цифровой подписи, но лучше чем ничего. У кого какие мысли? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x736C 0 15 июня, 2018 Опубликовано 15 июня, 2018 · Жалоба Столько копий сломано. Попробуйте поискать на форуме похожие темы. Навскидку https://electronix.ru/forum/index.php?showtopic=143246 Если подытожить самое первое, что всплывает в такого рода дискуссиях. Необходимо понимать портрет взломщика, так сказать. Кто будет пытаться копировать ваше устройство. Что-то очень выгодное в мировом масштабе все равно скопируют. По крайней мере, так безапелляционно декларируется. Исходя из всего прочитанного по теме пришел к выводу, что защита должна быть очень скрытая. Сам факт ее наличия должен быть неочевидным. И проявлять себя должна псевдослучайным образом на длинном промежутке времени. Единичные отказы на длительных промежутках времени и вылавливать дольше и сложнее. Ваш вспомогательный контроллер просто скопируют, считав с него прошивку, если не смогут взломать протокол обмена. То есть опять-таки, надо понимать, на кого нацелена ваша защита. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kolobok0 0 16 июня, 2018 Опубликовано 16 июня, 2018 · Жалоба ...Задался вопросом,... Тут всё правильно сказали выше - надо использовать плюсы присущие данной железке и схемному решению. Т.е. если флэш достаточно большая - то обеспечить её более-менее равномерным покрытием кода. Сам объём кода увеличить (включить оптимизацию по скорости к примеру). И защиту скрывать именно не явно. Но вот доп. мк внешний я бы поставил (если стоимость позволяет). Но это первый эшелон - от пионэров. А вот более посерьёзнее - тот подход, что прозвучал выше. Опыт показывает, что бОльшая защита получается при симбиозе аппаратно-программной защиты и разноуровневой(про софт речь) на низком и на высоком. Если низкий - то от пионэров и лентяев, то высокоуровневая защита съедает бОльший ресурс человеко-часов при взломе. Но хочу обратить Ваше внимание, что создателю защиты очень важно иметь опыт по взлому подобных систем. Т.е. попробуйте сами в рукопашную вскрыть любую прошивку. А свою прошивку считайте достаточно устойчивой, если Вы её сами не сможете пройти под отладчиком либо дезасэмблировать. Считать взломщиков глупее или малоопытными - это очень наивная позиция. Тем более что при создании защиты всегда используют гораздо меньше ресурсов(и знаний) чем при взломе. надеюсь это очевидно :) с уважением (круглый) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 3 16 июня, 2018 Опубликовано 16 июня, 2018 · Жалоба Исходя из всего прочитанного по теме пришел к выводу, что защита должна быть очень скрытая. Сам факт ее наличия должен быть неочевидным. И проявлять себя должна псевдослучайным образом на длинном промежутке времени. Единичные отказы на длительных промежутках времени и вылавливать дольше и сложнее. Фиеричная идея! Смысл в том чтобы сделать умышленные сбои неотличимыми от неумышленных багов. А как такую программу отлаживать, спрашивается? Как вариант защиты - версионирование. Нужно создать технологию автоматической генерации новых версий с постоянной периодичностью. Вот это настоящий кошмар для хакеров. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 235 16 июня, 2018 Опубликовано 16 июня, 2018 · Жалоба Как вариант защиты - версионирование. Нужно создать технологию автоматической генерации новых версий с постоянной периодичностью. Вот это настоящий кошмар для хакеров. Ага! Если ещё и в каждую версию закладывать баги, начинающие срабатывать после определённой даты или количества включений! Обновляем - получаем новую порцию багов, но пока спящих. И так подсаживаем юзеров на иглу постоянных апдейтов и сами никогда не останемся без работы и хакерам кровь попортим! И есть широкоизвестные и успешные конторы, работающие по такому принципу :biggrin: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x736C 0 16 июня, 2018 Опубликовано 16 июня, 2018 · Жалоба Фиеричная идея! Смысл в том чтобы сделать умышленные сбои неотличимыми от неумышленных багов. А как такую программу отлаживать, спрашивается? Это очень надуманное соображение. Я было начал что-то отвечать, но потом понял, что не имеет никакого смысла. Все что вы написали актуально, но элементарно разрешимо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 3 16 июня, 2018 Опубликовано 16 июня, 2018 · Жалоба Это очень надуманное соображение. Я было начал что-то отвечать, но потом понял, что не имеет никакого смысла. Все что вы написали актуально, но элементарно разрешимо. Я даже не о том разрешимо или нет, я об элементарной логике. Если дивайс дает делать все, только иногда редко сбоит, то это нормальный консамерский дивайс. И все его будут использовать как ни в чем не бывало. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
a123-flex 0 16 июня, 2018 Опубликовано 16 июня, 2018 · Жалоба Ага! Если ещё и в каждую версию закладывать баги, начинающие срабатывать после определённой даты или количества включений! Обновляем - получаем новую порцию багов, но пока спящих. И так подсаживаем юзеров на иглу постоянных апдейтов и сами никогда не останемся без работы и хакерам кровь попортим! И есть широкоизвестные и успешные конторы, работающие по такому принципу :biggrin: Microsoft ?) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x736C 0 16 июня, 2018 Опубликовано 16 июня, 2018 · Жалоба Все его будут использовать как ни в чем не бывало. Все зависит от критичности сбоя и их интенсивности. Очевидно, что «сбои» должны выводить клон из области конкурентного превосходства в худшем случае. А в лучшем случае не должны позволить сделать из клона полноценный продукт. Я ожидал дискуссии по этой теме. Это говорит о том, что тема горячая, актуальная. Вопрос себя не исчерпал и тут есть над чем покреативить. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
a123-flex 0 16 июня, 2018 Опубликовано 16 июня, 2018 · Жалоба Я ожидал дискуссии по этой теме. А есть факты из надежных источников считывания прошивок залоченных на чтение STM32 ? Очень хотелось бы верить в то, что этот элемент системы - доверенный :blush: Это говорит о том, что тема горячая, актуальная. что может быть на форуме разработчиков горячее отымелова разработчиков ? ;) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x736C 0 16 июня, 2018 Опубликовано 16 июня, 2018 · Жалоба А есть факты из надежных источников считывания прошивок залоченных на чтение STM32 ? Надежных источников у меня нет, но если ориентироваться на подобные сайты (http://www.break-ic.com), то можно полагать, stm32 успешно копируется. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 3 16 июня, 2018 Опубликовано 16 июня, 2018 · Жалоба Все зависит от критичности сбоя и их интенсивности. Очевидно, что «сбои» должны выводить клон из области конкурентного превосходства в худшем случае. А в лучшем случае не должны позволить сделать из клона полноценный продукт. Я ожидал дискуссии по этой теме. Это говорит о том, что тема горячая, актуальная. Вопрос себя не исчерпал и тут есть над чем покреативить. Хм, это звучит как сделай то, не знаю что. Во первых вы не дали наводку как софту определить что он клон. Во вторых вот в том месте где у вас будет условный переход клон-неклон и будет сделан патч. А все остальные изощрения в коде будут хакерами проигнорены. Ну и интересно, как узнать в чем конкурентные превосходства продукта? Я бы даже сказал что клонирование и есть доказательство конкурентного превосходства. Клонирование надо позволять делать. А потом включать конвейер апгрейдов. Тогда получится борьба на основе хорошего фидбэка. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x736C 0 16 июня, 2018 Опубликовано 16 июня, 2018 · Жалоба Отвечу с конца. Ваше предложение борьбы с клонами к теме не относится, т.к. это не техническое решение. И тут я согласен, это правильный путь. Сюда еще приписывают маркетинг, торговую марку и т.д. По техническому решению. Я все-таки плисовод, нежели программист микроконтроллеров. И в ПЛИС патч очень непросто поставить, насколько знаю. То есть даже считав прошивку, ее очень сложно расковырять. Для контроллеров все проще. В общем случае, да, поставят заплатку на условный переход. И у меня нет конкретного рецепта, поэтому я высказал общие соображения в надежде на критику и дополнения. Ну и интересно, как узнать в чем конкурентные превосходства продукта? Имел в виду, результирующее превосходство, которое позволяет продавать потребителю клон, а не оригинальное изделие. Это может быть цена, срок выпуска копий. То есть время на копирование может убивать весь гешефт. Ну и стабильность работы. К которой можно добавить поддержку с гарантийным, сервисным обслуживанием, но это уже другая тема. Хм, это звучит как сделай то, не знаю что. Во первых вы не дали наводку как софту определить что он клон. У меня есть некоторые идеи, как защитить ПЛИС с помощью статистических методов, используя которые прошивка «понимает», что она в контрафактном окружении. В данном случае все зиждется на том, что прошивку для ПЛИС очень непросто расковырять. Не буду тут кривить душой, идеи весьма сырые. Как защитить микроконтроллер техническими средствами от компаний с бюджетами не представляю. В теме, ссылку на которую приводил, обсуждались мысли о связи устройства с сервером. Все они снижают надежность, насколько понял. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
JeDay 0 16 июня, 2018 Опубликовано 16 июня, 2018 · Жалоба Во вторых вот в том месте где у вас будет условный переход клон-неклон и будет сделан патч. А все остальные изощрения в коде будут хакерами проигнорены. В предыдущей зелезке мы имели неосторожность и алгоритмы антиклонинга вынесли в отдельный модуль ядра. lsmod его хорошо видел. Символов там было минимальное колличество. Вот там можно было сделать патч) Потом уже пришла мысль что надо было модуль статически в ядро линукса запихнуть. Хотя я если честно не проверял, покажет ли lsmod его как отдельный модуль? Это мы все обсуждаем как не дать склонировать девайс. Есть еще одна проблемка, для кого-то это вовсе не проблема - кастомные прошивки. Против этого в том же внешнем МК у нас был хард-ресет заведен на процессор. И если долго небыло запроса с линукса о проверке подлинности, МК ребутал проц. Но такую штуку легко хардварно пофиксить :( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
a123-flex 0 17 июня, 2018 Опубликовано 17 июня, 2018 · Жалоба Имхо нет надёжной защиты, кроме выноса части функций устройства в аппаратно защищенный ключ(и), а дальше опора всей защиты на этот узел. Любые вензеля в стандартном x86 будут раскручены, не несущие функции аппаратные ключи - вырезаны. То что крякеры рекламируют взлом всех существующих камней это понятно, вопрос чего они реально могут. Ну и за сколько, разумеется. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться