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

Поделиться
HTML-код
  • Опубликовано: 2 авг 2024
  • В ролике рассматриваются некоторые аспекты обеспечения безопасности и защиты программного обеспечения микроконтроллеров STM32 от считывания злоумышленниками. В данной части рассматриваются: Защита от считывания (RDP) и обнаружение отключения (BOR). Видео содержит примеры и демонстрацию работы кода.
    Канал в телеграмм - t.me/vladimir_medintsev
    Канал Яндекс.Дзен - zen.yandex.ru/vladimir_medintsev
    Канал на RuTube - rutube.ru/channel/1797552/
    Канал на RUclips - / 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();
    ----
  • НаукаНаука

Комментарии • 214

  • @Techn0man1ac
    @Techn0man1ac 3 года назад +13

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

  • @user-bb4ef4uh6c
    @user-bb4ef4uh6c 3 года назад +2

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

  • @Roman_Malov
    @Roman_Malov 3 года назад +1

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

  • @chegleeff
    @chegleeff 3 года назад +2

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

  • @user-qu5xj4no5q
    @user-qu5xj4no5q 3 года назад +15

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

    • @ugene4063
      @ugene4063 3 года назад

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

    • @user-qu5xj4no5q
      @user-qu5xj4no5q 3 года назад

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

    • @ugene4063
      @ugene4063 3 года назад

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

    • @user-qu5xj4no5q
      @user-qu5xj4no5q 3 года назад

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

    • @0koshi
      @0koshi 3 года назад

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

  • @compreability1854
    @compreability1854 3 года назад +1

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

  • @babursapayev188
    @babursapayev188 3 года назад +2

    Thanks Bro. Salamu Aleykum from Turkey

  • @edgull_tlt
    @edgull_tlt 2 года назад +1

    Спасибо

  • @vad741
    @vad741 3 года назад +2

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

    • @VladimirMedintsev
      @VladimirMedintsev  3 года назад +6

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

    • @VojtekPomianowski
      @VojtekPomianowski 3 года назад

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

    • @VojtekPomianowski
      @VojtekPomianowski 3 года назад

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

    • @VladimirMedintsev
      @VladimirMedintsev  3 года назад

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

    • @VojtekPomianowski
      @VojtekPomianowski 3 года назад +1

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

  • @vakivaki7847
    @vakivaki7847 3 года назад

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

  • @user-tu1ue9mw4w
    @user-tu1ue9mw4w 3 года назад +2

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

    • @dazzershell
      @dazzershell 3 года назад +1

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

  • @dmytromykhailiuta9268
    @dmytromykhailiuta9268 3 года назад +2

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

  • @kardanium
    @kardanium 3 года назад +6

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

    • @silicodance
      @silicodance 3 года назад

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

    • @dazzershell
      @dazzershell 3 года назад +2

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

    • @silicodance
      @silicodance 3 года назад

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

    • @dazzershell
      @dazzershell 3 года назад

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

    • @anatoliyv5607
      @anatoliyv5607 Год назад

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

  • @finskiymaster
    @finskiymaster 3 года назад +3

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

    • @user-tu1ue9mw4w
      @user-tu1ue9mw4w 3 года назад +4

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

    • @alexpetrov4500
      @alexpetrov4500 2 года назад +1

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

    • @StahLHerZRocK
      @StahLHerZRocK Год назад +1

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

    • @user-tu1ue9mw4w
      @user-tu1ue9mw4w Год назад +1

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

    • @StahLHerZRocK
      @StahLHerZRocK Год назад

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

  • @trymbachyaroslav3828
    @trymbachyaroslav3828 3 года назад +1

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

    • @prohojii_4el
      @prohojii_4el 3 года назад +2

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

  • @rdengin
    @rdengin 2 года назад

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

  • @Ololoshize
    @Ololoshize 3 года назад +1

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

    • @VladimirMedintsev
      @VladimirMedintsev  3 года назад

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

  • @CadmiumUA
    @CadmiumUA 3 года назад +1

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

    • @VladimirMedintsev
      @VladimirMedintsev  3 года назад +1

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

    • @CadmiumUA
      @CadmiumUA 3 года назад

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

    • @VladimirMedintsev
      @VladimirMedintsev  3 года назад +1

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

    • @user-tu1ue9mw4w
      @user-tu1ue9mw4w 3 года назад

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

  • @pistoletov1974
    @pistoletov1974 3 года назад

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

    • @VladimirMedintsev
      @VladimirMedintsev  3 года назад

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

    • @alexeiarhangelsky7436
      @alexeiarhangelsky7436 2 года назад

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

  • @Nidvoraich
    @Nidvoraich 3 года назад +2

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

    • @eugene6411
      @eugene6411 3 года назад

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

    • @VladimirMedintsev
      @VladimirMedintsev  3 года назад +1

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

    • @eugene6411
      @eugene6411 3 года назад

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

    • @user-tu1ue9mw4w
      @user-tu1ue9mw4w 3 года назад

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

    • @eugene6411
      @eugene6411 3 года назад

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

  • @clora1136
    @clora1136 3 года назад

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

  • @vernnms78
    @vernnms78 3 года назад

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

    • @VladimirMedintsev
      @VladimirMedintsev  3 года назад

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

  • @MaxiRPD
    @MaxiRPD 3 года назад

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

  • @muxahx3096
    @muxahx3096 3 года назад

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

    • @VladimirMedintsev
      @VladimirMedintsev  3 года назад +2

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

    • @alexpetrov4500
      @alexpetrov4500 2 года назад

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

  • @konstantingolinskiy4944
    @konstantingolinskiy4944 3 года назад +1

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

    • @romanmurashko
      @romanmurashko 3 года назад +1

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

    • @eugene6411
      @eugene6411 3 года назад +2

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

    • @VladimirMedintsev
      @VladimirMedintsev  3 года назад

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

    • @silentage6310
      @silentage6310 3 года назад +3

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

    • @user-tu1ue9mw4w
      @user-tu1ue9mw4w 3 года назад +1

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

  • @shamandn3064
    @shamandn3064 3 года назад +1

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

    • @VladimirMedintsev
      @VladimirMedintsev  3 года назад +2

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

    • @NEOSPORYMIY
      @NEOSPORYMIY 3 года назад +2

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

    • @vad741
      @vad741 3 года назад

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

    • @VladimirMedintsev
      @VladimirMedintsev  3 года назад

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

    • @trollermik4204
      @trollermik4204 3 года назад

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

  • @user-hm7gl7er6z
    @user-hm7gl7er6z 2 года назад

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

  • @ajdarseidzade688
    @ajdarseidzade688 3 года назад +1

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

    • @VladimirMedintsev
      @VladimirMedintsev  3 года назад

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

    • @ajdarseidzade688
      @ajdarseidzade688 3 года назад +1

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

    • @VladimirMedintsev
      @VladimirMedintsev  3 года назад

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

    • @user-if7zu8nk2j
      @user-if7zu8nk2j 3 года назад

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

    • @ajdarseidzade688
      @ajdarseidzade688 3 года назад +1

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

  • @NodsFrend1
    @NodsFrend1 3 года назад +2

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

    • @silentage6310
      @silentage6310 3 года назад +2

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

    • @leharuso
      @leharuso 3 года назад +1

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

    • @dllsearch
      @dllsearch 3 года назад

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

    • @cb_q
      @cb_q 3 года назад

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

  • @NIKOLAY_PSHONIA
    @NIKOLAY_PSHONIA 3 года назад

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

    • @user-lc3jq3qq9x
      @user-lc3jq3qq9x 3 года назад +3

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

    • @eugene6411
      @eugene6411 3 года назад

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

    • @NIKOLAY_PSHONIA
      @NIKOLAY_PSHONIA 3 года назад

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

    • @VladimirMedintsev
      @VladimirMedintsev  3 года назад +2

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

    • @NIKOLAY_PSHONIA
      @NIKOLAY_PSHONIA 3 года назад

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

  • @user-je8oz6lh6w
    @user-je8oz6lh6w 2 года назад

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

    • @VladimirMedintsev
      @VladimirMedintsev  2 года назад

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

    • @user-je8oz6lh6w
      @user-je8oz6lh6w 2 года назад

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

    • @user-je8oz6lh6w
      @user-je8oz6lh6w 2 года назад

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

    • @VladimirMedintsev
      @VladimirMedintsev  2 года назад

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

    • @user-je8oz6lh6w
      @user-je8oz6lh6w 2 года назад

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

  • @AdamFullowsky
    @AdamFullowsky 3 года назад +1

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

    • @VladimirMedintsev
      @VladimirMedintsev  3 года назад

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

  • @dmitriycold6906
    @dmitriycold6906 3 года назад +1

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

    • @VladimirMedintsev
      @VladimirMedintsev  3 года назад

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

    • @dmitriycold6906
      @dmitriycold6906 3 года назад

      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  3 года назад

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

    • @dmitriycold6906
      @dmitriycold6906 3 года назад

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

    • @VladimirMedintsev
      @VladimirMedintsev  3 года назад

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

  • @ivanrusev2270
    @ivanrusev2270 Год назад

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

    • @VladimirMedintsev
      @VladimirMedintsev  Год назад

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

    • @ivanrusev2270
      @ivanrusev2270 Год назад

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

    • @VladimirMedintsev
      @VladimirMedintsev  Год назад

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

    • @ivanrusev2270
      @ivanrusev2270 Год назад

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

  • @Lownger
    @Lownger Год назад

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

    • @VladimirMedintsev
      @VladimirMedintsev  Год назад

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

    • @Lownger
      @Lownger Год назад

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

    • @Lownger
      @Lownger Год назад

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

    • @VladimirMedintsev
      @VladimirMedintsev  Год назад

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

    • @Lownger
      @Lownger Год назад

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

  • @user-wq5ex8lw7c
    @user-wq5ex8lw7c 3 года назад

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

    • @VladimirMedintsev
      @VladimirMedintsev  3 года назад

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

    • @user-wq5ex8lw7c
      @user-wq5ex8lw7c 3 года назад

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

  • @davidkain9046
    @davidkain9046 2 года назад

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

  • @ArthurIslamRU
    @ArthurIslamRU 3 года назад

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

    • @kazimiralmazov2245
      @kazimiralmazov2245 3 года назад

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

    • @ArthurIslamRU
      @ArthurIslamRU 3 года назад

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

    • @kazimiralmazov2245
      @kazimiralmazov2245 3 года назад

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

    • @ArthurIslamRU
      @ArthurIslamRU 3 года назад +1

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

  • @iwh1te340
    @iwh1te340 3 года назад

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

  • @ugene4063
    @ugene4063 3 года назад +1

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

    • @user-hn4ef7ek4n
      @user-hn4ef7ek4n Год назад

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

  • @MsSk0000
    @MsSk0000 3 года назад +4

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

    • @VladimirMedintsev
      @VladimirMedintsev  3 года назад +4

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

    • @semenkovrov4256
      @semenkovrov4256 3 года назад +3

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

    • @VladimirMedintsev
      @VladimirMedintsev  3 года назад +3

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

    • @MsSk0000
      @MsSk0000 3 года назад +3

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

  • @WindLighter
    @WindLighter 2 года назад

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

  • @user-tu1ue9mw4w
    @user-tu1ue9mw4w 3 года назад +1

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

    • @VladimirMedintsev
      @VladimirMedintsev  3 года назад

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

    • @user-tu1ue9mw4w
      @user-tu1ue9mw4w 3 года назад

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

    • @VladimirMedintsev
      @VladimirMedintsev  3 года назад

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

    • @user-tu1ue9mw4w
      @user-tu1ue9mw4w 3 года назад

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

  • @ibrag2012
    @ibrag2012 3 года назад +2

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

  • @kazimiralmazov2245
    @kazimiralmazov2245 3 года назад +12

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

    • @cnjzyjdheckfy
      @cnjzyjdheckfy 3 года назад +6

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

    • @kazimiralmazov2245
      @kazimiralmazov2245 3 года назад +1

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

    • @CadmiumUA
      @CadmiumUA 3 года назад +2

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

    • @kazimiralmazov2245
      @kazimiralmazov2245 3 года назад +1

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

    • @bogdanzayatsastronomyandna4722
      @bogdanzayatsastronomyandna4722 3 года назад

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

  • @dkmcdk724
    @dkmcdk724 3 года назад +1

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

    • @VladimirMedintsev
      @VladimirMedintsev  3 года назад

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

    • @dkmcdk724
      @dkmcdk724 3 года назад

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

  • @elnurismailov7592
    @elnurismailov7592 5 месяцев назад

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

  • @VukaGhost
    @VukaGhost 3 года назад +1

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

  • @user-if7zu8nk2j
    @user-if7zu8nk2j 3 года назад

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