Jump to content

    
Sign in to follow this  
JeDay

Защита от клонирования и перепрошивки.

Recommended Posts

Советую вам разобраться как работает лицензирование.

Грубо:

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

Share this post


Link to post
Share on other sites
Задался вопросом, как защитить свое устройство на базе линукса на не секюрном процессоре с внешней SPI флешкой.аря по цифровой подписи, но лучше чем ничего.

...

У кого какие мысли?

Мысль такая, что юные дарования валом "задавались вопросом" как защитить их "гениальные творения" :santa2: ещё со времён раннего MS-DOS.

Вы находитесь в разделе Linux, и в мире Linux, который является, вообще-то говоря open+free, где действуют GPL-лицензии в разных вариантах, которые, кстати, предписывают и что вы со своим "гениальным творением" имеете право делать, а чего нет ... раз уж вы опираетесь на Linux ... да ещё и на другие GNU инструменты.

Share this post


Link to post
Share on other sites
Мысль такая, что юные дарования валом "задавались вопросом" как защитить их "гениальные творения" :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.

Share this post


Link to post
Share on other sites
У Вас по ходу инженерные мысли отсутствуют, а отметиться в этой ветке заходелось :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

 

И еще много.

 

Share this post


Link to post
Share on other sites
Вы бы полегче. У 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

 

А причем тут книги до написанного поста выше? Судя по книгам человек опытный, молодец. Но в после было полезной инфы - ноль.

 

А как же стильный, модный, молодежный способ - перенести часть функционала в облако?

У меня облако тоже есть. Но это не значит что это лечение от всего. ;)

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
А причем тут книги до написанного поста выше? Судя по книгам человек опытный, молодец. Но в после было полезной инфы - ноль.

 

Человек высказал отношение к вопросу сообщества Open Source и GNU лицензии. Это жизненная позиция.

Хотя самый цирк начинается. Микрософт купил Github.

Share this post


Link to post
Share on other sites

Подыму старую тему.

Возникла похожая потребность защитить девай на основе чипа с OpenWRT(по сути встраиваемый Linux). Основная часть прошивки будет крутится на контроллере СТМ, линуксовая часть будет занята лишь установкой сетевых подключений и их раутингом, "секретного кода" в этой части не предполагается, разве что вебморда, но это не критично. И что бы не нарушать ГНУ лицензию, можно все это выложить на офф. сайте. Проблема заключается в секюрном хранении пароля доступа к серверу и логина, а так же ключа шифрования данных (SSL). У кого будут какие идеи по реализации? Заранее предположим, что хардварная защита СТМ32 не поддается взлому(опять же будем просто считать это звено не взламываемым, т.е. самым надежным в этой цепи.)

Share this post


Link to post
Share on other sites

Повторюсь.. Лучше всего юзать более современный и дорогой процессор с secure-boot. Обычно в них есть внутри защищенная память для хранения ключей и процей приватной инфы.

Если это обычный проц с линуксом на борту, то я бы хранил ключи и пароли на STM32. Но обмен по шине лучше зашифровать. Хэш для шифрования трафика можно сгенерить на основе уникального серийника в STM32.

На этапе производства линукс вычитает хеш, зашифрует захардкодженым ключем и бросит на ФС. Константный ключ можно спрятать в статическом модуле ядра и вычитывать его с /proc. Таким образом спрятать концы в воду. Можно поставить готовое решение типа ATECC608A от Atmel. Но имхо тоже самое вы можете на STM32 програмно соорудить если цена критична.

Share this post


Link to post
Share on other sites

К сожалению доступных контроллеров(до 15$ при покупке 100шт с учетом стоимости флеш+озу) с поддержкой linux, wifi, lan+wan, usb не так и много, а с возможностью secure boot я вовсе не смог найти. Предполагаю использовать один из вариантов готовых модулей на MTK7688. Может я чего проглядел? Подскажите.

Share this post


Link to post
Share on other sites
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 by sasamy

Share this post


Link to post
Share on other sites

Спасибо за предложенные варианты,  но они выглядят монстроузорно на фоне необходимого мне функционала, да и стоимость получается космической, посчитайте к цене проца стоимость RAM+FLASH+PHY и в случае модуля еще и дорогой разъем формата SO-DIMM, а иначе BGA монтаж, который тоже не дешево стоит. По сути искал плату, которая в себе включала бы возможности дешевого роутера, с максимальным количеством сетевых интерфейсов(wifi+lan+wan(2 сетевых) и желательно USB), вполне могла даже подойти ESP32 но у нее 1-сетевой интерфейс и к ней мало доверия(8266 - повлияла) + более сложная разработка сетевых протоколов. Основная часть софта уже давно написана и функционирует на СТМ32, не хватает только портов для передачи инфы в сеть. Аппаратной защиты прошивки СТМа вполне достаточно, если считать ее недостаточно надежной, то можно еще долго делать идеальную защиту вложив в это кучу денег, но в таком случае проект станет уже нерентабельным. На данный момент вопрос в скрытии логина\пароля\сертификата для подключения к серверу. Пытался понять как реализовать защиту вышеперечисленными методами, но так и не понял, как можно безопасно передать эту инфу от СТМ в линукс, через внешний порт(который можно соснифить, а флешку с линуксом за несколько минуть выпаять и закинуть на программатор. Дальше за несколько дней найти все пассворды...).

Share this post


Link to post
Share on other sites
1 hour ago, Neo_Matrix said:

На данный момент вопрос в скрытии логина\пароля\сертификата для подключения к серверу. Пытался понять как реализовать защиту вышеперечисленными методами, но так и не понял, как можно безопасно передать эту инфу от СТМ в линукс, через внешний порт(который можно соснифить, а флешку с линуксом за несколько минуть выпаять и закинуть на программатор. Дальше за несколько дней найти все пассворды...).

 

Вопрос больше в том что вы осилите на стм сделать - какой протокол для безопасной передачи и насколько прогрессирует паранойя а то от снифера внешней памяти SDRAM вообще не скрыться. Можно блеклистить логин/пароль/сертификат на сервере в случае подозрения на копию и приязывать ПО к серийнику процессора с Linux и к стм.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this