ESP32 Удаление конфиденциальных данных ключей

esp32 security

Можно ли гарантировать, что ключи (например, ssid, ssl-сертификаты) будут удалены из памяти esp32?

Я новичок в esp32, исходя из соображений безопасности устройств Интернета Вещей.

Допустим, человек тестировал приложение esp32, которое использовало Wi-Fi, в котором чувствительные клавиши встроены в прошивку. Затем они переписали esp32 с помощью маленькой прошивки с мигающим светодиодом, пытаясь очистить указанные клавиши.

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

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

, 👍1


1 ответ


Лучший ответ:

2

Вы можете использовать esptool.py чтобы запустить операцию erase_flash.

Стереть вспышку: erase_flash и erase_region

Чтобы стереть весь флэш-чип (все данные заменены байтами 0xFF):

esptool erase_flash

Чтобы стереть область флэш-памяти, начинающуюся с адреса 0x20000 длиной 0x4000 байт (16 КБ):

esptool erase_region 0x20000 0x4000

Адрес и длина должны быть кратны размеру сектора стирания флэш-памяти SPI. Это 0x1000 (4096) байт для поддерживаемых флэш-чипов.

-- основные команды esptool

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

,

Спасибо за информацию, Маенко! Мне было интересно, будет ли в дополнение к вашему ответу достаточно прошивки прошивки blink (или любой другой небольшой пользовательской прошивки) для перезаписи всех существующих данных прошивки? Если true, то, возможно, erase_flash не потребуется., @PathToLife

@PathToLife Я не уверен, стирает ли обычная загрузка кода всю флэш-память или нет. Вы могли бы попробовать выполнить большую загрузку, за которой следует небольшая загрузка, затем прочитать весь flash с помощью esptool и посмотреть, что осталось от большой загрузки..., @Majenko

Есть ли способ создать приложение, которое при замене кем-то неопытным или вредоносным (то есть без операции стирания) не приведет к утечке данных (легко)? Я говорю о данных, хранящихся в NVS, LittleFS или аналогичных. Однако я не хочу полностью шифровать все устройство, поскольку это имеет ограничения и нарушит работу "свободного" программного обеспечения., @RDragonrydr

@RDragonrydr Вы можете вручную зашифровать данные, которые вы храните в NVS, используя собственное программное обеспечение в вашем sketch. Без ключей (которые находятся в скетче, поэтому будут перезаписаны новым кодом) расшифровка данных была бы практически невозможна.,, @Majenko