Защита прошивки STM32. Часть 1. Защита от считывания (RDP) и обнаружение отключения (BOR).

Sdílet
Vložit
  • čas přidán 8. 07. 2024
  • В ролике рассматриваются некоторые аспекты обеспечения безопасности и защиты программного обеспечения микроконтроллеров STM32 от считывания злоумышленниками. В данной части рассматриваются: Защита от считывания (RDP) и обнаружение отключения (BOR). Видео содержит примеры и демонстрацию работы кода.
    Канал в телеграмм - t.me/vladimir_medintsev
    Канал Яндекс.Дзен - zen.yandex.ru/vladimir_medintsev
    Канал на RuTube - rutube.ru/channel/1797552/
    Канал на CZcams - / vladimirmedintsev
    ------------------------------------------
    Если вы хотите поддержать автора канала номер карты Сбер:
    2202-2023-2480-4008
    ------------------------------------------
    Делайте репост в социальных сетях и конечно же оставляйте свои комментарии.
    00:00 - Введение
    01:24 - Методы взлома
    04:15 - Введение в безопасность STM32
    06:10 - Защита от считывания (RDP)
    18:13 - Обнаружение отключения (BOR)
    23:23 - Заключение
    ----
    Пример кода показанный в видео:
    FLASH_OBProgramInitTypeDef FLASH_OBInitStruct;
    HAL_FLASH_OB_Unlock();
    HAL_FLASHEx_OBGetConfig(&FLASH_OBInitStruct);
    FLASH_OBInitStruct.OptionType = OPTIONBYTE_RDP;
    FLASH_OBInitStruct.RDPLevel = OB_RDP_LEVEL_1;
    HAL_FLASHEx_OBProgram(&FLASH_OBInitStruct);
    FLASH_OBInitStruct.OptionType = OPTIONBYTE_BOR;
    FLASH_OBInitStruct.BORLevel = FLASH_VOLTAGE_RANGE_3;
    HAL_FLASHEx_OBProgram(&FLASH_OBInitStruct);
    HAL_FLASH_OB_Launch();
    HAL_FLASH_OB_Lock();
    ----
  • Věda a technologie

Komentáře • 214

  • @Techn0man1ac
    @Techn0man1ac Před 3 lety +13

    И Вам спасибо, Владимир

  • @chegleeff
    @chegleeff Před 3 lety +2

    Всегда интересные видео 👍

  • @Roman_Malov
    @Roman_Malov Před 3 lety +1

    Видос отличный зачет,спасибо.

  • @user-bb4ef4uh6c
    @user-bb4ef4uh6c Před 3 lety +2

    Классное видео, интересное направление.

  • @user-qu5xj4no5q
    @user-qu5xj4no5q Před 3 lety +15

    сразу вспомнил прошивки принтеров )) объясню поподробнее. Суть дела - производитель хочет продавать картриджи по завышенным ценам. Для этого изобрели чипы (eeprom с криптозащитой). Но умельцы - хакеры модифицируют прошивку и отключают учет тонера по чипу картриджа. Поэтому следующим шагом стала защита самой прошивки принтера...
    Саму прошивку считать несложно - она часто в отдельной флеш-памяти. При старте аппарата, стартует бутлоадер, он в начале флеш. По хитрому алгоритму (в последних аппаратах вроде как используются пары публичного и приватного ключа, т.е. шифрование как в tls ) прошивка расшифровывается и распаковывается (zlib часто для экономии места флеш) в оперативку.
    Конечно хакеры начали дебажить и прочее... но сам процесс сильно усложнился. Последний шаг - система на чипе, когда в одном чипе флеш, оперативки и собственно контроллер...

    • @ugene4063
      @ugene4063 Před 3 lety

      Ага. Чипы с криптозащитой. Attiny 13 🤣

    • @user-qu5xj4no5q
      @user-qu5xj4no5q Před 3 lety

      @@ugene4063 ?? почему же. Для чипов сначала использовались eeprom AT88, а далее самсунг стал использовать свою наработку (чипы 921). Определенно есть что-то еще, но я с тем не сталкивался

    • @ugene4063
      @ugene4063 Před 3 lety

      @@user-qu5xj4no5q ну потому что я только такие видел. У меня был целый парк hp принтеров. Чипы я извлекал, лечил и использовал жля своих поделок. 1кб флеша мне хватало

    • @user-qu5xj4no5q
      @user-qu5xj4no5q Před 3 lety

      @@ugene4063 а, понятно. не знал, что использовали в HP (до того как они samsung купили). Надо будет тоже поковырять, немало чипов таких должно быть ))

    • @0koshi
      @0koshi Před 3 lety

      А кто заставляет покупать последние модели принтеров с такой защитой? Можно найти на складах уже правильные принтеры ну или на барахолках. А запчасти и тонер можно найти и для очень древних принтеров, которые по износу почти вечные, те тогда они были дорогими с механикой по большей частью из металла. А проблемму с драйверами успешно решает карточка с lpt портом + виртуальная машина

  • @edgull_tlt
    @edgull_tlt Před 2 lety +1

    Спасибо

  • @babursapayev188
    @babursapayev188 Před 3 lety +2

    Thanks Bro. Salamu Aleykum from Turkey

  • @compreability1854
    @compreability1854 Před 3 lety +1

    отлично было бы ч.2!)

  • @vad741
    @vad741 Před 3 lety +2

    Влепил лайкос потом смотрел. Тема очень актуальна. Разберите все доступные варианты защит.

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety +6

      Тут уже кто-то предлагал лучшую защиту. Не давать устройство пользователю.

    • @VojtekPomianowski
      @VojtekPomianowski Před 3 lety

      "Вас сломают в любом случае весь вопрос только в цене." - не зовсім так. Скільки років на ринку криптопроцесори для сім карт. Премію оголошувала 10млн$ за взлом. Ніхто не взломав. Не рахуємо знайденого бага в алгоритмі V1.0 V1.1 котрий певний час експлуатувався. По такому ж принципу може працювати і захист програмного коду МК - кожен запуск і кожен період роботи МК потребує автентифікації не отримав код автентифікації - аварійний режим. Правда такий режим буде потребувати постійного доступу до серверу розробника. що на сьогодні можна забезпечити.

    • @VojtekPomianowski
      @VojtekPomianowski Před 3 lety

      Проданий не один десяток міліардів чіпів.

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety

      @@VojtekPomianowski Так то же специально сделанные криптопроцессоры. Мы же говорим о civil grade низкого уровня.

    • @VojtekPomianowski
      @VojtekPomianowski Před 3 lety +1

      В серіях G реалізовані можливості більш глибокого апаратного захисту, але звичайно не кардинально інші.

  • @vakivaki7847
    @vakivaki7847 Před 3 lety

    Атмеги тоже можно защитить ) фьюзы защитные выставить)))

  • @user-tu1ue9mw4w
    @user-tu1ue9mw4w Před 3 lety +2

    В любой защите , всегда есть дыра - человек. Сам про...л защиту пару раз. Хорошо девайсы обратно пришли. После этого нацарапал установку защиты. автоматом.

    • @dazzershell
      @dazzershell Před 3 lety +1

      Найти людей, кто в этом бинарнике что-то поймёт - гораздо сложнее и дороже, чем создать свое. У нас пытались и бросили.

  • @finskiymaster
    @finskiymaster Před 3 lety +3

    спасибо за информацию. в одном из обсуждений аппаратной защиты устройств от копирования была высказана мысль - "если ты МОЖЕШЬ создать устройство, которое имеет смысл копировать, то ты МОЖЕШЬ придумать, как его защитить"

    • @user-tu1ue9mw4w
      @user-tu1ue9mw4w Před 3 lety +4

      Да , мысль интересная. Вот только за это время можно было ещё пару устройств сделать. Непоспав пару недель ты сделаешь защиту, а через месяц узнаешь, что кто-то её хакнул. Не потому что ты тупой, а потому ,что чел этим профессионально занимается несколько лет и учел то, что ты не учел. Иии? Бросать всё и делать защиты? А магнитометры кто будет делать?

    • @alexpetrov4500
      @alexpetrov4500 Před 2 lety +1

      Денис вы неправы.
      1. Когда вы создаёте устройство, вы решаете чётко одну задачу, используя существующий не вами созданный контроллер как платформу.
      2. Устройство и наработки которые вы создали может успешно и прекрасно работать.
      2а) успешность и смысл массового копирования вашей работы и/или продукта, это отдельная большая тема включающая - моральные, бизнес рыночные и экономические аспекты. Но мы пока ее пропустим.
      3) есть кейсы когда вы создаёте продукт , и возможно продукт требующий простой безопасности, используя опять же уже существующий контроллер - как электронщик и программист вы знаете только его ТТХ и искренне, полагаетесь и верите что так оно и работает.
      То что вы упускайте, включенный бит защиты -
      а) не всегда работает как вы думаете, просто потому что есть риски которых вы не знаете.
      б) вы используете платформу архитектуру которой вы не знаете и не можете знать досконально, это чужой закрытый продукт.
      в) есть куча тонкостей и методов аттак, не будучи экспертом вы вряд ли будете способны защитить свой продукт и интеллектуальную собственность - не потратив ещё 10 лет на изучение именно метов защиты + чип дизайн, и тонкостей реализации архитектуру кортекса с точки зрения практической безопасности.
      Итого: писать код это одно, а делать защиты и писать безопасно, это соооовсем другое и требует 3-4х навыков и 4х времени.

    • @StahLHerZRocK
      @StahLHerZRocK Před rokem +1

      @@user-tu1ue9mw4w магнитометры нам нужны, без магнитометров в стране абсурд и коррупция

    • @user-tu1ue9mw4w
      @user-tu1ue9mw4w Před rokem +1

      @@StahLHerZRocK коррупция во всем мире. Во все наши неполживые сдристнули в Израиль и что там теперь? Коррупция?!

    • @StahLHerZRocK
      @StahLHerZRocK Před rokem

      @@user-tu1ue9mw4w к чему этот ваш опус?)

  • @trymbachyaroslav3828
    @trymbachyaroslav3828 Před 3 lety +1

    Спасибо за видео. Только я не понял как изменение уровня BOR влияет на защиту прошивки?

    • @prohojii_4el
      @prohojii_4el Před 3 lety +2

      Я так понял что речь шла о взломе методом питания на самых нестабильных пределах и для увода рабочего режима в более стабильное питание этот диапазон можно задать

  • @Ololoshize
    @Ololoshize Před 3 lety +1

    Владимир, подскажите, а как понять, что это первый запуск устройства?
    Или можно при каждом старте (до бесконечного цикла) выполнять приведённый вами код, который устанавливает защиту?

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety

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

  • @kardanium
    @kardanium Před 3 lety +6

    Сколько уже работаю с STM32, но вот про то, что RDP Lvl 2 залочит камень окончательно и бесповоротно - честно, не знал. Я в принципе особо блокировкой чтения памяти и не интересовался, но теперь буду знать.

    • @silicodance
      @silicodance Před 3 lety

      Даже если пин boot0 подтянуть к единичке нельзя будет через встроенный бутлоадер снять защиту через утилиту Demonstrator?

    • @dazzershell
      @dazzershell Před 3 lety +2

      @@silicodance Я по дурочке поставил лвл2 однажды. Надпись "убрать эту защиту не получится" в утилите меня не напугала. Пришлось 100 ногий корпус сдувать и перепаивать. На уровне 2 там внутри корпуса пережигаются какие-то перемычки. Но камни сейчас ломают и чисто механически, корпус фрезеруют и флешку как-то считывают электронным микроскопом. И цены на это вполне доступны.

    • @silicodance
      @silicodance Před 3 lety

      @@dazzershell Ничего себе, буду знать. Ну допустим считают, и смогут копировать устройство, смогут дизассемблировать и даже немного изменить под себя наверное смогут, но смогут ли они восстановить обратно Си код и использовать его для себя и дальше развивать, это вряд ли, как думаете?

    • @dazzershell
      @dazzershell Před 3 lety

      @@silicodance смогут, у нас это делали с китайскими платами. Боялись свою разработку начинать. По итогу, большая часть прошивки - таблицы магических чисел, сворованные уже китайцами с какого-то оригинала. Любое отклонение в параметрах устройства, и ничего не работает. А вот от китайцев прятать надо все. Особенно ноу-хау всякие, просто потому что такое же устройство у них выйдет в 3 раза дешевле, даже с учетом доставки, даже если работать по себестоимости. Интересная статья была, как наша ракета Игла появилась, на базе Стингера, советую посмотреть.

    • @anatoliyv5607
      @anatoliyv5607 Před rokem

      ​@@silicodance скорее в объектный файл

  • @clora1136
    @clora1136 Před 3 lety

    * @brief Launch the option byte loading.
    * @note This function will reset automatically the MCU.
    я так понимаю на F1 блокировать флешь не надо, ибо оно перезагружается при установке?

  • @dmytromykhailiuta9268
    @dmytromykhailiuta9268 Před 3 lety +2

    Дякую, дуже корисний канал.

  • @rdengin
    @rdengin Před rokem

    Институт этот Фраунгофер называется. Это, на секундочку, разработчик MPEG.

  • @pistoletov1974
    @pistoletov1974 Před 3 lety

    Спасибо большое. Раз левел ставится в коде то его можно и снять в коде? Например зажимая кнопочку при старте программы переключать левел 1 - 2 или еще хитрее сделать что-то что бы мк не в мусор если левел 2 нужен а оставлять секретик?

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety

      Ну в видео же прямо говорится что уровень 2 снять нельзя. Никак. Совсем.

    • @alexeiarhangelsky7436
      @alexeiarhangelsky7436 Před 2 lety

      @@VladimirMedintsev Я тоже подумал что доступ блокируется только для внешних интерфейсов отладки SWD/JTAG. На что сразу возникает интерес проверить снять уровень 2 из кода прошивки, так как ей вроде как доступ ко всему остаётся.

  • @vernnms78
    @vernnms78 Před 3 lety

    Подскажите, пожалуйста, начинающему, какую среду программирования использовать для STM?

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety

      STM32CubeIDE бесплатно скачивать с сайта www.st.com

  • @Nidvoraich
    @Nidvoraich Před 3 lety +2

    Левел 2 можно сбросить на 0 изнутри?
    По идее же можно. Значит, например, можно написать код, который будет при определённом условии на минуту, например, сбрасывать защиту на ноль.
    Каждый второй вторник месяца в 15:00, к примеру. Или при определенной комбинации нажатых клавиш.
    Или я не прав насчёт сброса изнутри (с помощью уже залитой прошивки)?

    • @eugene6411
      @eugene6411 Před 3 lety

      @@VladimirMedintsev а если программно изнутри установить левел 2, а потом сбросить обратно в левел 0, то прошивка останется? Не очистит флешку процессор? Или флеш перетирается только при снятии блокировки через отладчик? Или из левел 2 в левел 0 не перетирает, а из левел 1 в левел 0 перетирается?

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety +1

      @@eugene6411 левел 2 снять нельзя. Никак. Никогда. Он однократный. Программатором понизить уровень 1 -> 0 можно но прошивка будет очищена

    • @eugene6411
      @eugene6411 Před 3 lety

      @@VladimirMedintsev а если изнутри в прошивке понизить уровень 1 -> 0, то тоже очистится или продолжит работать?

    • @user-tu1ue9mw4w
      @user-tu1ue9mw4w Před 3 lety

      @@eugene6411 я думаю, все можно сделать, если упереться в проблему. Только кто вас кормить будет , всё это время?

    • @eugene6411
      @eugene6411 Před 3 lety

      @@user-tu1ue9mw4w это понятное дело, вопрос скорее спортивного характера

  • @NIKOLAY_PSHONIA
    @NIKOLAY_PSHONIA Před 3 lety

    Спасибо за видео. Почитав коменты - у меня вопрос? Можно ли написать кусок проги на свободный вывод (кнопка) нажал и проц запустил кусок проги и снял защиту 2. или невозможно программным путем снять защиту 2 ???

    • @user-lc3jq3qq9x
      @user-lc3jq3qq9x Před 3 lety +3

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

    • @eugene6411
      @eugene6411 Před 3 lety

      @@user-lc3jq3qq9x так он окирпичивает его отключением SWD. А вот изнутри может и можно обратно вернуть на левел 0, тем самым включив SWD обратно

    • @NIKOLAY_PSHONIA
      @NIKOLAY_PSHONIA Před 3 lety

      @@user-lc3jq3qq9x т.е. внутри прога не сможет сбросить биты в проце ?

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety +2

      Левел 2 снять нельзя.

    • @NIKOLAY_PSHONIA
      @NIKOLAY_PSHONIA Před 3 lety

      @@VladimirMedintsev Теперь понял.

  • @muxahx3096
    @muxahx3096 Před 2 lety

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

    • @VladimirMedintsev
      @VladimirMedintsev  Před 2 lety +2

      И вы конечно же можете привести пример таких закладок? Ну наверняка ведь вы узнали об этом из статьи в нормальном, заслуживающем доверия, источнике. Просто интересно знать из каких источников люди черпают это тайное знание. Или нет источников?

    • @alexpetrov4500
      @alexpetrov4500 Před 2 lety

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

  • @MaxiRPD
    @MaxiRPD Před 3 lety

    Все что нужно знать про защиту STM32 (как и любого другого MC) - сколько конкретно тысяч долларов стоит взлом конкретного того камня на котором вы делаете проект на сегодня, для того чтоб считать риски, делать какие-то прогнозы и применять(не применять) этот камень. Естественно если нужно будет - сломают RDP level2 по щелчку.

  • @shamandn3064
    @shamandn3064 Před 3 lety +1

    А при установки RDP Level 2 в каком состоянии будет внутренний бутлоадер? Можно ли перезалить прошивку используя его?

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety +2

      Если установлен левел 2 нет у вас больше бутлоадера

    • @NEOSPORYMIY
      @NEOSPORYMIY Před 3 lety +2

      Можно перезаливать прошивку только с самописного бутлоадера.

    • @vad741
      @vad741 Před 3 lety

      В может ли сама программа по спец событию понизить уровень с 2 до 0? Проверить бы так же кнопкой.

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety

      @@vad741 ответ нет не может. Левел 2 устанавливается один раз, навсегда.

    • @trollermik4204
      @trollermik4204 Před 3 lety

      @@VladimirMedintsev Возможно глупый вопрос, но возможно ли после level2 затереть МК и использовать повторно?

  • @CadmiumUA
    @CadmiumUA Před 3 lety +1

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

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety +1

      Троттлинг? На STM32?

    • @CadmiumUA
      @CadmiumUA Před 3 lety

      ​@@VladimirMedintsev Ну наверно не совсем троттлинг как таковой, но какая то температура, при которой микро начинает тупить.

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety

      Не, я просто уточнил.

    • @user-tu1ue9mw4w
      @user-tu1ue9mw4w Před 3 lety

      Иногда помогает. На некоторых камнях. Но в последнее время редко.

  • @user-hm7gl7er6z
    @user-hm7gl7er6z Před 2 lety

    вот не знаю, но на F0 не идет. BOR понятно не поддерживается. До основного цикла, после активации RDP не стартует программа. бесполезно, но зато отключается интерфейс программирования. В основном цикле работает не поймешь как. Ибо все таки. эти вещи вероятно можно повторять 1 раз и только в основном цикле, а значит, необходимо делать проверку статуса нужных битов RDP. иначе это не работает основная программа.

  • @konstantingolinskiy4944
    @konstantingolinskiy4944 Před 3 lety +1

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

    • @romanmurashko
      @romanmurashko Před 3 lety +1

      Бинарник же можно дизассемблировать и найти то условие, которое чекает серийник. Ну и подправить. Это в теории.

    • @eugene6411
      @eugene6411 Před 3 lety +2

      @@romanmurashko лучше тогда уж сделать так, чтобы в случае если серийник отличается, то не попадать тупо в бесконечный цикл, а продолжать работать, но не совсем правильно)) Если не верный серийник, то добавить немножко рандома в алгоритм программы) Пусть мамкины кул хацкеры поломают голову почему их устройство в некоторых непредсказуемых случаях сбоит))0

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety

      Можно, но мне кажется муторно в условиях массового производства для каждого изделия отдельную прошивку компилировать.

    • @silentage6310
      @silentage6310 Před 3 lety +3

      @@VladimirMedintsev человек видимо имел в виду что прошивка при первом запуске считывает ид и сохраняет во флеш.
      при повторном запуске если ид сохранен - то только проверяет его и если он не сходится - дальше не запускается.
      если прошивку скопируют - то на другом камне она не будет работать.
      наверное через отладку защиту будет не сложно найти, но в лоб скопировал - прошил новый - не заработает. многие на этом и закончат :)

    • @user-tu1ue9mw4w
      @user-tu1ue9mw4w Před 3 lety +1

      @@silentage6310 нужно делать хеш от ид. И в определенных местах делать проверку. Сломать сломают, но это стоит дороже.

  • @ivanrusev2270
    @ivanrusev2270 Před rokem

    А почему в stm32f103 я выставляю бит защиты аппаратно через st-link/v2 и у меня программа не работает.?

    • @VladimirMedintsev
      @VladimirMedintsev  Před rokem

      Да кто же вас знает что вы там и где выставляете.

    • @ivanrusev2270
      @ivanrusev2270 Před rokem

      @@VladimirMedintsev Ещё один вопрос.Мне нужно создать в программе код доступа что бы эта опция работала?

    • @VladimirMedintsev
      @VladimirMedintsev  Před rokem

      Я не понимаю ваш вопрос.

    • @ivanrusev2270
      @ivanrusev2270 Před rokem

      @@VladimirMedintsev Да я на серии stm32f103 выставил бит защиты и программа защищена но не работает контролер.?

  • @user-je8oz6lh6w
    @user-je8oz6lh6w Před 2 lety

    Вопрос дилетанта. Как можно узнать в STM32CubeIDE, какой режим компиляции установлен - DEBUG или RELEASE ?

    • @VladimirMedintsev
      @VladimirMedintsev  Před 2 lety

      А если поднести мышку к кнопке не показывает???

    • @user-je8oz6lh6w
      @user-je8oz6lh6w Před 2 lety

      @@VladimirMedintsev Я не про это. Чтобы написать #if

    • @user-je8oz6lh6w
      @user-je8oz6lh6w Před 2 lety

      @@VladimirMedintsev Понимаю - тупой вопрос. Просто у меня #if ! DEBUG пишет "синтаксическая ошибка"

    • @VladimirMedintsev
      @VladimirMedintsev  Před 2 lety

      Надо смотреть на описание компилятора, что за дефайны он там поддерживает.

    • @user-je8oz6lh6w
      @user-je8oz6lh6w Před 2 lety

      @@VladimirMedintsev Разобрался, спасибо.

  • @NodsFrend1
    @NodsFrend1 Před 3 lety +2

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

    • @silentage6310
      @silentage6310 Před 3 lety +2

      с учетом тех систем для взлома что показаны в начале это мелочь.

    • @leharuso
      @leharuso Před 3 lety +1

      абсолютная защита - это вообще не давать пользователю железку на руки.

    • @dllsearch
      @dllsearch Před 3 lety

      Meltdown и Spectre показали, что даже при удаленном пользовании можно получать данные из железа.
      Конечно, в STM такие механизмы предсказания не используют, но кто знает, может и найдут, как сдампить прошивку замыканием двух контактов.

    • @cb_q
      @cb_q Před 3 lety

      не подойдет, у Китая уже есть космическая программа.

  • @ajdarseidzade688
    @ajdarseidzade688 Před 3 lety +1

    Только 14:01 - неправильный порядок отключения (последующее включение тоже неправильное вообще-то) и кирдык контроллеру или порту отладчика в будущем обеспечен.

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety

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

    • @ajdarseidzade688
      @ajdarseidzade688 Před 3 lety +1

      @@VladimirMedintsev "Несколько тысяч" - имелось ввиду, что Вы наверно так готовые устр-ва перепрограммируете и питание подаете по этому же разъему. Если нет и питание уже бывает там - то невероятное везение.

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety

      @@ajdarseidzade688 Да питание подаем по тому же разьему.

    • @user-if7zu8nk2j
      @user-if7zu8nk2j Před 3 lety

      @@ajdarseidzade688 Ничего подобного. SWDIO и SWCLK - это обычные GPIO-порты. Когда вы подключаете программатор, то на эти порты подаются либо логические "0" либо логические "1" (в зависимости от логики роботы самого программатора и стадии программирования), которые никак не могут повредить контроллер
      Я в своей практике подключаю-отключаю программатор в ЛЮБОМ порядке по разному как попадёт. Ни один процессор не вышел из строя ещё

    • @ajdarseidzade688
      @ajdarseidzade688 Před 3 lety +1

      @@user-if7zu8nk2j Да без проблем - продолжайте так и делать дальше. LPT порты (видели такой?) так и горели у юзеров когда в компьютерном сервисе работал и на горячую они их подключали. На работе, у начальника, периодически либо контроллер (ПИК причем!! а не хилый STM32, который от небольшого перегрева паяльником способен выйти из строя и не сразу может, а потом!) какой-то сгорит, либо у программатора один раз контроллер внутри вышел из строя (и чинил я его). Также на горячую продолжайте подключать и HDMI кабеля. Помню, в компьютерном сервисе, когда я работал там (я ремонтировал принтеры/ксероксы/электронику), то ребята из "компьютерной" части (те что непосредственно софт на ПК устанавливают или их собирают) даже память (RAM) на горячую меняли и ничего! ( :) до поры, до времени).

  • @dmitriycold6906
    @dmitriycold6906 Před 3 lety +1

    На 103 процессоре после этого защита ставится но программа не работает.

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety

      И ставится и работает. Проверено. Опшен бит вообще не влияет на выполнение программы в принципе. Он только управляет интерфейсом программирования и отладки.

    • @dmitriycold6906
      @dmitriycold6906 Před 3 lety

      FLASH_OBProgramInitTypeDef FLASH_OBInitStruct;
      HAL_FLASH_Unlock();
      HAL_FLASH_OB_Unlock();
      FLASH_OBInitStruct.OptionType = OPTIONBYTE_RDP;
      FLASH_OBInitStruct.RDPLevel = OB_RDP_LEVEL_1;
      HAL_FLASHEx_OBProgram(&FLASH_OBInitStruct);
      HAL_FLASH_OB_Launch();
      HAL_FLASH_OB_Lock();
      HAL_FLASH_Lock();
      Ставлю вот этот код до основного цикла и программа не выполняется. Я просто не совсем пойму в основной цикл можно его ставить? Эти биты защиты каждый раз флешку не будут тереть?

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety

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

    • @dmitriycold6906
      @dmitriycold6906 Před 3 lety

      Так беда то в том что отладка после этого уже не работает )))

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety

      @@dmitriycold6906 если отладка не работает значит опшен бит установлен. проверяйте может вы по какой-то причине в hard fault улетаете. Я не Кашпировский мне отсюда не видно что у вас там в камне происходит.

  • @Lownger
    @Lownger Před rokem

    подскажите, как в stm32cubeIde поменять RDP?

    • @VladimirMedintsev
      @VladimirMedintsev  Před rokem

      Это делается не в IDE, а в STM32CubeProgrammer

    • @Lownger
      @Lownger Před rokem

      @@VladimirMedintsev но я прошиваю МК прямо из IDE. Всё равно надо качать STM32CubeProgrammer ?

    • @Lownger
      @Lownger Před rokem

      @@VladimirMedintsev ладно, попробую так тогда FLASH->OPTCR |= 0x0000FF00;

    • @VladimirMedintsev
      @VladimirMedintsev  Před rokem

      @@Lownger Ну для начала разблокировать надо.

    • @Lownger
      @Lownger Před rokem

      @@VladimirMedintsev там какая-то мутная процедура разблокировки. Если я правильно понял, сначала записываем в OPTKEYR 2 пароля, потом ждем while (FLASH->SR & FLASH_SR_BSY) __NOP(); потом пишем в OPTCR, потом устанавливаем FLASH_OPTCR_OPTSTRT и снова ждем BSY. Это правильно?

  • @user-wq5ex8lw7c
    @user-wq5ex8lw7c Před 3 lety

    В чем смысл level1 если он снимается бесприпятственно штатными методами?

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety

      Он снимается только с очисткой памяти. Значит программу снять не получится, а чип повторно использовать получится.

    • @user-wq5ex8lw7c
      @user-wq5ex8lw7c Před 3 lety

      @@VladimirMedintsev Ясно, спасибо. Значит полезная возможность.

  • @AdamFullowsky
    @AdamFullowsky Před 3 lety +1

    Привет, можешь рассказать в новом видео о том, как из программы перейти в DFU режим. Я находил несколько способов. Первый был частично аппаратный, и основанный на конденсаторе и резисторе на ножке бут, где пин gpio подключался к буту, и потом на него подавалась единица, и контроллер быстро программно ребутили. Второй более сложный, там в программе сначала сбрасывается вся конфигурация, и идёт переход по адресу DFU загрузчика, но как оно работает, и почему компилятор выдаёт непонятную ошибку связанную вообще с юникодом я так и не разобрался. Просто интересная тема, и возможно многим полезна будет.
    https: // community .st . com/s/question/0D50X00009XkeeW/stm32l476rg-jump-to-bootloader-from-software

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety

      Об этом есть великолепная статья Олега Артамонова - olegart.livejournal.com/1493696.html
      Подробнее никто уже не расскажет. Ну и кстати, под видео с рассказом о загрузчике в комментариях тоже очень много дельного попадалось.

  • @ugene4063
    @ugene4063 Před 3 lety +1

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

    • @user-hn4ef7ek4n
      @user-hn4ef7ek4n Před rokem

      Во-во,поэтому все эти Атмельки ломают как орешки.

  • @iwh1te340
    @iwh1te340 Před 3 lety

    Есть приборы, стоимость их от 300 тыс (за самую дешевою версию), производят их 2 фирмы во всем мире (которые в этой области еще с 70х годов), есть еще 3я, но это инженеры которые работали там, стырили наработки и открыли свою фирму. О чем это я, ах да, прошивка у них не залочена от слова совсем. Кому нужно вспороть, вспорят, либо подберут алгоритм работы (у меня в одно рыло на это ушло, 2 месяца) начиная со схемы, и заканчивая алгоритмом обработки сигнала.

  • @WindLighter
    @WindLighter Před 2 lety

    а как эти функции выглядят напрямую, в смысле не фенкция HAL, а "регистр такой-то" = "значение"?

  • @ArthurIslamRU
    @ArthurIslamRU Před 3 lety

    Спасибо большое Уважаемый Владимир. Вы только главное не рассказали: зачем ломать Кристал, то есть пример, зачем читать чужой флеш и тп?

    • @kazimiralmazov2245
      @kazimiralmazov2245 Před 3 lety

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

    • @ArthurIslamRU
      @ArthurIslamRU Před 3 lety

      @@kazimiralmazov2245 привет, подождите, получается так: человек архитектор делает тз на проект. Схемотехник и конструктор плат реализуют его в железе. Сложном железе. Потом пишется сложнейшее по.
      Потом отладка. Заливка тестовой версии, потом выход на коммерцию. И, например, я не заложил Кристал. Товарищи читают ядро в бинарный файл. И? Что они без железа сделают?
      Или, положим, даже сделают железо, как они его интегрируют с софтом?

    • @kazimiralmazov2245
      @kazimiralmazov2245 Před 3 lety

      @@ArthurIslamRU каждый соф лезет в железо допустим к номеру 123456. Сделав сто железок с номером 123456 то думаешь софт их различит?))) Привязки софта к компу и прочему аленеводству это пол часа доя полупьяного хакера. Главное, стали делать железо. Именно железка сложное устройство. И кто повторяет железку он должен разгадать мысли и задумки того, кто эту железку сочинил.))))

    • @ArthurIslamRU
      @ArthurIslamRU Před 3 lety +1

      @@kazimiralmazov2245 да, думаю здесь две вещи: хрень всякую нет смысла копировать, как я понимаю, на гитхабе скачать можно. А серьезные вещи, и копировать и ломать будут на серьезном уровне, через рентген восстановят топологию платы, если серийники не затертые, и из по вырежут нужные блоки, чтобы не разбираться со всей микропрограммой... В общем, я так и не понимаю, зачем лочить кристал

  • @davidkain9046
    @davidkain9046 Před 2 lety

    слить прошивку пол беды. ее еще нужно декомпилировать ..

  • @MsSk0000
    @MsSk0000 Před 3 lety +4

    вопрос: на какого хомяка в опенсорс-эпоху нужна защита??
    кроме того, что нужно защищать написанные кем-то подлянки, чтобы их не попалили, ничего в голову не приходит...
    ну или для школоты - защитить супер-пупер алгоритм вычисления факториала ))

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety +4

      Даже по утверждениям рьяных сторонников open source доля открытого ПО меньше 10%. О какой эпохе опен соурс вообще вы говорите. Считаете что лично ваш код защищать не надо, ваше право, никто не заставляет. А данные аппаратные возможности заложены в микроконтроллер и о них это видео. Использовать или нет это вы там сами как-нибудь. Мне ваш хомяк не интересен.

    • @semenkovrov4256
      @semenkovrov4256 Před 3 lety +3

      @@VladimirMedintsev человек говорит, что честным людям скрывать нечего, а вы со своими 10%... (проценты сами придумали или нагуглить успели?)

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety +3

      @@semenkovrov4256 Во-первых эти 10% были придуманы не мной, а озвучены ребятками на августовской Open Source Tech Conference. Более того, мне кажется они подыграли и намеренно завысили эту цифру так сказать для поддержки. Но в принципе все понимают, что сама идея работает, но только в очень ограниченном количестве случаев.
      Во-вторых мы под этим видео это все уже обсуждали. Точнее пытались обсудить. Я даже приводил реальный жизненный кейс. Сейчас процитирую.
      "...вот давайте я реальный пример приведу, а вы если это возможно посоветуйте как поступить. Вот есть два разработчика электроники для медицины. У них есть приборы которые разработаны более 10 лет назад. Я зная недостатки разработал свой прибор на современной базе и с современным ПО. Запили я сейчас опен соурс через месяц они обновят свои приборы и пользуясь связями в научных кругах прикроются статьями. Таким образом на рынок после этого мне вообще будет вход закрыт ибо пока я найду деньги на сертификацию своих приборов их оборудование будет в продаже 1 год. А из выйгрыша ну скажут мне спасибо что человек и может донат на сто рублей пришлют. Как вот в этой ситуации быть? Вполне реальный кейс." И что вы таки думаете мне ответил человек? Да вполне ожидаемо: " не открывайте код пока не сделаете коммерческого успеха и не закрепитесь на рынке". Шах и мат.
      В-третьих лично мне кажется что современные старатели за открытый код очень похожи на сектантов. Сами написать ничего не написали (ну реально проект для ограниченного количества радиолюбителей не имеющий в принципе коммерческой ценности не в счет), а все им открой.
      В-четвертых довод про честным людям скрывать нечего вообще детский какой-то. Без разницы, ошибки есть у всех, нет людей пишущих без ошибок. Более того ошибки есть и у меня в видео и у других. Все ошибаются и смеются над чужими ошибками только сугубо не здоровые люди. Так что наличие ошибок и уязвимостей это не повод к закрытию кода. Причина у всех только одна - коммерческая.
      Оговорка, я не имею ввиду проекты мигания лампочками.

    • @MsSk0000
      @MsSk0000 Před 3 lety +3

      @@VladimirMedintsev оговорюсь, что мне понравилось данное видео, и я уважаю проделанный труд, но мой посыл относился не столько к увиденному, сколько к тенденции навязывать нам скрытый функционал, в результате чего на нас вынуждают приобретать товары по завышенным ценам (пример те же картриджи HP), льется поток ненужной рекламы, укрепляется платформа полицейского мироустройства и т.п.
      Возможность скрыть свои подлянки - является предпосылкой к чувству безнаказанности, которая впоследствии вытекает в вещи деструктивного масштаба гораздо значимые, чем возможная выгода. Мы ведь не бабочки-однодневки, поэтому приходится задумываться а во что все выльется лет этак через 20-30

  • @kazimiralmazov2245
    @kazimiralmazov2245 Před 3 lety +11

    Улыбает, что так все стараются на халяву защитить свои прошивки. Все дело не в цене спила проца и всяких там криптовых наворочек. Все дело в цене устройства на этом проце. Если устройство дорогое в пределах от 20- и выше тысяч руб и есть спрос на него, то свинтят проц в легкую. Все процы выпускают в Китае и там же их пилят. Ну например. Проц STM32F105 цена спила 1000$ +150$ за удаление в прошивке всяких заморочек с криптами и проверками. Ну и теперь давайте посчитаем окупаемость проекта. Сколько нужно продать клонов устройства, чтобы окупить и наварить. Продаём клон половина цены от 20 тыс руб. Тоесть по 10 тыс. Допустим продаем 20 таких клонов и получаем.... А если устройсво еще выше стоимостью, то расчет окупаемости резко в наваре. Что бы там в STM не трендели, то кристалл проца это обычная многослойная плата, а элементы там обычные транзисторы. Все наши барыги по спилу процев это посредники в китае. Только мощный микроскоп увидет кристал и зная как расположены элементы все легко на лазере правится. Кстати улыбает, когда трут маркировку на корпусе проца))) На кристале стоит маркировка и китаец на заводе все это определит после первого прохода до кристала. И ещё. Нужно знать к кому обращаться в китае. Нормальный спил проходит так. Обговаривается цена работы по вытряхиванию прошивки. Дизят прошивку. Затем китаец присылает два прошитых кантроля для проверки. Вы получаете кантроли. Впаиваете в устройство и если все работает, то оплачиааете работу по пэйпалу и сразу получаете готовую прошивку для производства клонов... Вот и все ребята!!! Все ваши заморочки с шифрами, криптами и id привязками пустая трата времени..))))

    • @cnjzyjdheckfy
      @cnjzyjdheckfy Před 3 lety +6

      Может,в таком случае ,не нужно закрывать исходники ,а делать все открытым ?

    • @kazimiralmazov2245
      @kazimiralmazov2245 Před 3 lety +1

      @@cnjzyjdheckfy написано выше. Все дело в цене на устройство!!!! Ломишь цену, значит жли клона. Глянь на стоимость Кесс2 или загрузчик Ктаг.. Сколько официально стоит и по чем продают?? А там процы вообще по 206 лап имеют...Если ты написал код и включаешь лампочку в сортире или подмигиваешь девкам светодиодиком. То можешь лочить, не лочить, тебя не спилят точно..

    • @CadmiumUA
      @CadmiumUA Před 3 lety +2

      @@cnjzyjdheckfy не всегда это возможно. Например у нас в украине, у нотариусов юсб ключи доступа к реестрам сделаны на стм32. Представляете такое открыть.

    • @kazimiralmazov2245
      @kazimiralmazov2245 Před 3 lety +1

      @@CadmiumUA за нотариусов могут наказать.. А вот самодельщиков без всяких документов и со своими самопалами можно чемоданами пилить)))

    • @bogdanzayatsastronomyandna4722
      @bogdanzayatsastronomyandna4722 Před 3 lety

      @@kazimiralmazov2245 Про самодельщиков:
      1)проще самому написать код по действиям микроконтроллера,
      2)Большинство исходников их "труда" есть на Гитхабе.

  • @elnurismailov7592
    @elnurismailov7592 Před 4 měsíci

    Такой вопрос STM32F105 стоит зашита от чтения при снятии в программе stlink защиты проц очищается есть ли возможность считать данные в stm32f105 который стоит защита от чтения

  • @user-tu1ue9mw4w
    @user-tu1ue9mw4w Před 3 lety +1

    Судя по обсуждению в теме, картина печальная. Любой китаец, запилит любой проц, сидя на циновке у дверей макдональдса. Так что , Владимир, вешаем паяльники на стену, и расходимся.

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety

      Я практически не использую паяльник.

    • @user-tu1ue9mw4w
      @user-tu1ue9mw4w Před 3 lety

      @@VladimirMedintsev повезло. Тады стлинки повесьте.

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety

      И их не буду вешать. В моей вселенной все хорошо.

    • @user-tu1ue9mw4w
      @user-tu1ue9mw4w Před 3 lety

      Ну и правильно.

  • @ibrag2012
    @ibrag2012 Před 3 lety +2

    Було таке: планував систему безпеки: продублював слабкі місця, зробив майже абсолютною, а потім замислився: а якщо у мене буде потреба вломитися? -у висновку залишив декілька неочевидних вразливостей (а ще і зменшив вартість проекту).

  • @dkmcdk724
    @dkmcdk724 Před 3 lety +1

    Сколько амбиций у народа... Кому нужен их говнокод, куда надежнее и быстрее написать свой код, чем копаться в чужих какашках. Не у всех конечно, но 98% - правда, даже типа в промышленных решениях.

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety

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

    • @dkmcdk724
      @dkmcdk724 Před 3 lety

      @@VladimirMedintsevСам много раз встречал таких. Да бог с ними. Я еще могу понять когда человек не хочет публиковать нечто готовое и цельное - типа схема, исходный код, конструкторская документация, потенциальный рынок сбыта. Но зацикливать на безопасности бинарного кода!!! Средств защиты STM вполне достаточно для 99.99% случаев и заморачиваться на более сложных способах защиты могут только менеджеры и по-настоящему больные люди.

  • @VukaGhost
    @VukaGhost Před 3 lety +1

    "Не хотелось бы, чтобы их прошивка ушла куда-то"
    Волков бояться - в лес не ходить, как говорится. А кто боится - пусть меняет род деятельности (например, метет дворы. Метла-то уж вряд ли куда "уйдет").
    Столлман наш пророк

  • @user-if7zu8nk2j
    @user-if7zu8nk2j Před 3 lety

    А я считаю что это всё игрушки.
    Любая нормальная фирма, которой нужно будет какой-нибудь девайс как-правило наймёт людей, которые ей этот девайс сделают и напишут под него прогу. Либо приобретёт готовое устройство, которое будет выполнять те функции, которые даной канторе нужны. Никто не будет этим дрочевом заниматься по слому и считыванию чужих прошивок.
    Правильно была написана тут фраза - "если ты МОЖЕШЬ создать устройство, которое имеет смысл копировать, то ты МОЖЕШЬ придумать, как его защитить"
    Так что не парьтесь по поводу защиты. Никому нафиг ваши проги не нужны