Москва

+7 (495) 488-65-70

Корзина пуста
Загрузка списка товаров из файла
SALE!-10% -20% -30% -40% -50% -60%
дефицитные компоненты
Функции безопасности контроллера ESP32

Функции безопасности контроллера ESP32

Контроллер ESP32 имеет две встроенные функции безопасности: безопасную загрузку и шифрование флэш памяти. Давайте кратко рассмотрим эти функции.

Как правило, в работающем устройстве прошивка и данные хранятся в SPI флэш-памяти, подключенной к SoC ESP32. Поскольку типовые решения флэш являются внешними по отношению к SoC, достаточно подготовленный человек может прочитать содержимое этой памяти при минимальных затратах времени. Более того, содержимое памяти также может быть изменено для получения нужных хакеру результатов.

Шифрование флэш-памяти и функция безопасной загрузки защищают устройство от такого типа атак.

EFUSE: одноразовое программирование

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

ESP32 имеет 1024-битную одноразово программируемую область памяти eFUSE. Эта область разделена на 4 блока по 256 бит каждый.

Область памяти eFUSE

Рис. 1. Область памяти eFUSE

Для целей безопасности используются блоки 1 и 2. В этих блоках хранятся ключи для шифрования флэш-памяти и безопасной загрузки, соответственно. Кроме того, после сохранения ключей в eFUSE, контроллер можно настроить таким образом, чтобы любое программное обеспечение, выполняющееся на ESP32, не могло считывать (и, конечно, обновлять) эти ключи.

Безопасная загрузка

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

Это достигается путем создания цепочки проверок от аппаратного обеспечения до загрузчика и прошивки.

Безопасная загрузка: цепь проверок

Рис. 2. Безопасная загрузка: цепь проверок

Проверка правильности загрузчика

Контроллер безусловно доверяет содержимому ROM и eFUSE.

Аппаратное обеспечение (BootROM) использует хранящийся в eFUSE безопасный ключ для проверки загрузчика. Только после этой проверки загрузчика программного обеспечения, BootROM запустит процесс загрузки.

Загрузчик состоит из трех описанных ниже компонентов:

  • Двоичный код загрузчика: тот код, который будет исполняться при загрузке программы
  • Публичный ключ ECDSA: ключ, который будет использоваться для проверки на следующем шаге (проверка прошивки)
  • Хэш на основе AES: цифровая подпись, подтверждающая, что двоичный файл загрузчика и публичный ключ ECDSA совпадают с запрограммированными производителем

Загрузчик программного обеспечения

Рис. 3. Загрузчик программного обеспечения

AES-input = двоичный загрузчик + публичный ключ ECDSA
AES-key = ключ загрузчика из eFUSE
AES-based-digest = SHA512 (AES (AES-input, AES-key))

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

Проверка прошивки приложения

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

Прошивка приложения также состоит из нескольких элементов, как показано ниже:

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

Прошивка приложения

Рис. 3. Прошивка приложения

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

Шифрование флэш-памяти

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

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

ESP32: упрощенная схема шифрования Flash

Рис. 4. ESP32: упрощенная схема шифрования Flash

Поскольку ключ AES заблокирован в eFUSE, только аппаратное обеспечение может использовать его для расшифровки содержимого флэш-памяти.

Для практического использования механизмов безопасности ESP-32 обратитесь к оригинальной документации Espressif:

Источник: https://medium.com

Автор: Кедар Совани Перевод: Китаин Сергей, г. Москва

Производители: ESPRES

Разделы: Приемо-передатчики

Опубликовано: 14.10.2019

Товары

ESP32-D0WD хит % ESP32-D0WD (ESPRES)
13 212 шт.
нет в наличии
добавить к сравнению
ESP32-D0WDQ6 хит ESP32-D0WDQ6 (ESPRES)
19 024 шт.
нет в наличии
добавить к сравнению
ESP32-D2WD ESP32-D2WD (ESPRES)
0 шт.
нет в наличии
добавить к сравнению
ESP32-PICO-D4 хит ESP32-PICO-D4 (ESPRES)
27 958 шт.
нет в наличии
добавить к сравнению
ESP32-S0WD ESP32-S0WD (ESPRES)
9 659 шт.
нет в наличии
добавить к сравнению
ESP32-SOLO-1 % ESP32-SOLO-1 (ESPRES)
500 шт.
нет в наличии
добавить к сравнению
ESP32-WROVER [4MB] ESP32-WROVER [4MB] (ESPRES)
0 шт.
нет в наличии
добавить к сравнению
  • Москва
  • Санкт-Петербург
  • Мурманск
  • Ульяновск
  • Новосибирск
  • Екатеринбург
  • Краснодар
  • Нижний Новгород
  • Воронеж
  • Уфа
  • Челябинск
  • Самара
  • Красноярск
  • Казань
  • Ростов-на-Дону
  • Саратов
  • Пермь
  • Томск
  • Иркутск
  • Омск
  • Тюмень

Актуальность предложений на товары в корзине истекла, данные были удалены 02.09.2025 в 00:00:00 (Мск.) Список позиций из корзины сохранен в Списке товаров
Актуальность предложений на товары в корзине истекла, данные были удалены 02.09.2025 в 00:00:00 (Мск.) Зарегистрируйтесь или авторизуйтесь на сайте, если регистрировались ранее, чтобы сохранять список товаров из корзины

Данный товар получен от клиентов, которые купили его для целей производства, но он оказался не востребован. Возможно отсутствие ГТД и страны происхождения.