Tarbal 0 Posted July 4, 2018 · Report post Советую вам разобраться как работает лицензирование. Грубо: Программа расшифровывает конфигурацию аппликации или проекта публичным ключом. В конфигурации указан срок действия лицензии. Много можно чего напридумывать. Quote Ответить с цитированием Share this post Link to post Share on other sites
Olej 0 Posted July 4, 2018 · Report post Задался вопросом, как защитить свое устройство на базе линукса на не секюрном процессоре с внешней SPI флешкой.аря по цифровой подписи, но лучше чем ничего. ... У кого какие мысли? Мысль такая, что юные дарования валом "задавались вопросом" как защитить их "гениальные творения" :santa2: ещё со времён раннего MS-DOS. Вы находитесь в разделе Linux, и в мире Linux, который является, вообще-то говоря open+free, где действуют GPL-лицензии в разных вариантах, которые, кстати, предписывают и что вы со своим "гениальным творением" имеете право делать, а чего нет ... раз уж вы опираетесь на Linux ... да ещё и на другие GNU инструменты. Quote Ответить с цитированием Share this post Link to post Share on other sites
JeDay 0 Posted July 4, 2018 · Report post Мысль такая, что юные дарования валом "задавались вопросом" как защитить их "гениальные творения" :santa2: ещё со времён раннего MS-DOS. Вы находитесь в разделе Linux, и в мире Linux, который является, вообще-то говоря open+free, где действуют GPL-лицензии в разных вариантах, которые, кстати, предписывают и что вы со своим "гениальным творением" имеете право делать, а чего нет ... раз уж вы опираетесь на Linux ... да ещё и на другие GNU инструменты. У Вас по ходу инженерные мысли отсутствуют, а отметиться в этой ветке заходелось :biggrin: Отвечу сам себе может кому-то пригодится. Если в проца нет секюрного загрузчика то на 100% защититься от перепрошивки кастомными прошивками не получится. Есть чипы ATECC608A, ATSHA204.. отличное решение если конечно secure boot обеспечивает запуск u-boot к примеру в котором реализован драйвер этих чипов. Тогда вы можете проверить цифровую подпись линукса открытыми ключами которые будут хратиться в чипах упомянутых выше. Но без secure boot злоумышленник может просто заменить ваш u-boot своим и наплевав на цифровую подпись загрузить линукс напрямую. Чтобы хоть как-то усложнить взлом, Ambarella и Atmel тоже рекомендуют загрузчик прописывать в OTP сектор в NAND либо лочить его от перезаписи. http://ww1.microchip.com/downloads/en/AppNotes/doc8753.pdf Но такую защиту можно обойти: снять дамп с оригинальной флеши, перепаять на новую заменив при этом u-boot. Quote Ответить с цитированием Share this post Link to post Share on other sites
Tarbal 0 Posted July 5, 2018 · Report post У Вас по ходу инженерные мысли отсутствуют, а отметиться в этой ветке заходелось :biggrin: Отвечу сам себе может кому-то пригодится. Если в проца нет секюрного загрузчика то на 100% защититься от перепрошивки кастомными прошивками не получится. Есть чипы ATECC608A, ATSHA204.. отличное решение если конечно secure boot обеспечивает запуск u-boot к примеру в котором реализован драйвер этих чипов. Тогда вы можете проверить цифровую подпись линукса открытыми ключами которые будут хратиться в чипах упомянутых выше. Но без secure boot злоумышленник может просто заменить ваш u-boot своим и наплевав на цифровую подпись загрузить линукс напрямую. Чтобы хоть как-то усложнить взлом, Ambarella и Atmel тоже рекомендуют загрузчик прописывать в OTP сектор в NAND либо лочить его от перезаписи. http://ww1.microchip.com/downloads/en/AppNotes/doc8753.pdf Но такую защиту можно обойти: снять дамп с оригинальной флеши, перепаять на новую заменив при этом u-boot. Вы бы полегче. У Olej вообще-то несколько книг с блестящими инженерными мыслями. Нa сайте IBM его книги тоже есть. https://www.ibm.com/developerworks/ru/libra...l_01/index.html https://www.ibm.com/developerworks/ru/libra...s_02/index.html И еще много. Quote Ответить с цитированием Share this post Link to post Share on other sites
Kabdim 0 Posted July 5, 2018 · Report post А как же стильный, модный, молодежный способ - перенести часть функционала в облако? Quote Ответить с цитированием Share this post Link to post Share on other sites
JeDay 0 Posted July 5, 2018 · Report post Вы бы полегче. У Olej вообще-то несколько книг с блестящими инженерными мыслями. Нa сайте IBM его книги тоже есть. https://www.ibm.com/developerworks/ru/libra...l_01/index.html https://www.ibm.com/developerworks/ru/libra...s_02/index.html А причем тут книги до написанного поста выше? Судя по книгам человек опытный, молодец. Но в после было полезной инфы - ноль. А как же стильный, модный, молодежный способ - перенести часть функционала в облако? У меня облако тоже есть. Но это не значит что это лечение от всего. ;) Quote Ответить с цитированием Share this post Link to post Share on other sites
Kabdim 0 Posted July 5, 2018 · Report post Дык, если у вас в облаке хоть какой-то ключевой функционал, то вроде как пофиг скопируют или нет железо. Авторизировать железки и отбраковывать копии при таком раскладе не сложно. Пример из игровых консолей, кто-то конечно может что-то спиратить, но сильная завязка на онлайн делает это уделом особо принципиальных. Quote Ответить с цитированием Share this post Link to post Share on other sites
Tarbal 0 Posted July 6, 2018 · Report post А причем тут книги до написанного поста выше? Судя по книгам человек опытный, молодец. Но в после было полезной инфы - ноль. Человек высказал отношение к вопросу сообщества Open Source и GNU лицензии. Это жизненная позиция. Хотя самый цирк начинается. Микрософт купил Github. Quote Ответить с цитированием Share this post Link to post Share on other sites
Neo_Matrix 0 Posted March 18, 2019 · Report post Подыму старую тему. Возникла похожая потребность защитить девай на основе чипа с OpenWRT(по сути встраиваемый Linux). Основная часть прошивки будет крутится на контроллере СТМ, линуксовая часть будет занята лишь установкой сетевых подключений и их раутингом, "секретного кода" в этой части не предполагается, разве что вебморда, но это не критично. И что бы не нарушать ГНУ лицензию, можно все это выложить на офф. сайте. Проблема заключается в секюрном хранении пароля доступа к серверу и логина, а так же ключа шифрования данных (SSL). У кого будут какие идеи по реализации? Заранее предположим, что хардварная защита СТМ32 не поддается взлому(опять же будем просто считать это звено не взламываемым, т.е. самым надежным в этой цепи.) Quote Ответить с цитированием Share this post Link to post Share on other sites
JeDay 0 Posted March 20, 2019 · Report post Повторюсь.. Лучше всего юзать более современный и дорогой процессор с secure-boot. Обычно в них есть внутри защищенная память для хранения ключей и процей приватной инфы. Если это обычный проц с линуксом на борту, то я бы хранил ключи и пароли на STM32. Но обмен по шине лучше зашифровать. Хэш для шифрования трафика можно сгенерить на основе уникального серийника в STM32. На этапе производства линукс вычитает хеш, зашифрует захардкодженым ключем и бросит на ФС. Константный ключ можно спрятать в статическом модуле ядра и вычитывать его с /proc. Таким образом спрятать концы в воду. Можно поставить готовое решение типа ATECC608A от Atmel. Но имхо тоже самое вы можете на STM32 програмно соорудить если цена критична. Quote Ответить с цитированием Share this post Link to post Share on other sites
Neo_Matrix 0 Posted March 20, 2019 · Report post К сожалению доступных контроллеров(до 15$ при покупке 100шт с учетом стоимости флеш+озу) с поддержкой linux, wifi, lan+wan, usb не так и много, а с возможностью secure boot я вовсе не смог найти. Предполагаю использовать один из вариантов готовых модулей на MTK7688. Может я чего проглядел? Подскажите. Quote Ответить с цитированием Share this post Link to post Share on other sites
sasamy 0 Posted March 21, 2019 (edited) · Report post 12 hours ago, Neo_Matrix said: К сожалению доступных контроллеров(до 15$ при покупке 100шт с учетом стоимости флеш+озу) с поддержкой linux, wifi, lan+wan, usb не так и много, а с возможностью secure boot я вовсе не смог найти. Предполагаю использовать один из вариантов готовых модулей на MTK7688. Может я чего проглядел? Подскажите. Серия процессоров imx - в свободном доступе инструменты и документация для secure boot https://www.nxp.com/docs/en/application-note/AN4581.pdf OP-TEE https://source.codeaurora.org/external/imx/imx-optee-os/?h=OP-TEE/coverity_scan Это наверно единственный доступный вариант. Обратите внимание на imx7 и imx6sx - у них есть ядро cortex-m4f вместе с линуксовыми ядрами cortex-a, так что stm можно выкинуть. Edited March 21, 2019 by sasamy Quote Ответить с цитированием Share this post Link to post Share on other sites
JeDay 0 Posted March 21, 2019 · Report post iMX6ULL посмотрите. В него есть секюрити, но надо подписывать NDA чтоб доки получить. Quote Ответить с цитированием Share this post Link to post Share on other sites
Neo_Matrix 0 Posted March 21, 2019 · Report post Спасибо за предложенные варианты, но они выглядят монстроузорно на фоне необходимого мне функционала, да и стоимость получается космической, посчитайте к цене проца стоимость RAM+FLASH+PHY и в случае модуля еще и дорогой разъем формата SO-DIMM, а иначе BGA монтаж, который тоже не дешево стоит. По сути искал плату, которая в себе включала бы возможности дешевого роутера, с максимальным количеством сетевых интерфейсов(wifi+lan+wan(2 сетевых) и желательно USB), вполне могла даже подойти ESP32 но у нее 1-сетевой интерфейс и к ней мало доверия(8266 - повлияла) + более сложная разработка сетевых протоколов. Основная часть софта уже давно написана и функционирует на СТМ32, не хватает только портов для передачи инфы в сеть. Аппаратной защиты прошивки СТМа вполне достаточно, если считать ее недостаточно надежной, то можно еще долго делать идеальную защиту вложив в это кучу денег, но в таком случае проект станет уже нерентабельным. На данный момент вопрос в скрытии логина\пароля\сертификата для подключения к серверу. Пытался понять как реализовать защиту вышеперечисленными методами, но так и не понял, как можно безопасно передать эту инфу от СТМ в линукс, через внешний порт(который можно соснифить, а флешку с линуксом за несколько минуть выпаять и закинуть на программатор. Дальше за несколько дней найти все пассворды...). Quote Ответить с цитированием Share this post Link to post Share on other sites
sasamy 0 Posted March 21, 2019 · Report post 1 hour ago, Neo_Matrix said: На данный момент вопрос в скрытии логина\пароля\сертификата для подключения к серверу. Пытался понять как реализовать защиту вышеперечисленными методами, но так и не понял, как можно безопасно передать эту инфу от СТМ в линукс, через внешний порт(который можно соснифить, а флешку с линуксом за несколько минуть выпаять и закинуть на программатор. Дальше за несколько дней найти все пассворды...). Вопрос больше в том что вы осилите на стм сделать - какой протокол для безопасной передачи и насколько прогрессирует паранойя а то от снифера внешней памяти SDRAM вообще не скрыться. Можно блеклистить логин/пароль/сертификат на сервере в случае подозрения на копию и приязывать ПО к серийнику процессора с Linux и к стм. Quote Ответить с цитированием Share this post Link to post Share on other sites