ESP32 Удаление конфиденциальных данных ключей
Можно ли гарантировать, что ключи (например, ssid, ssl-сертификаты) будут удалены из памяти esp32?
Я новичок в esp32, исходя из соображений безопасности устройств Интернета Вещей.
Допустим, человек тестировал приложение esp32, которое использовало Wi-Fi, в котором чувствительные клавиши встроены в прошивку. Затем они переписали esp32 с помощью маленькой прошивки с мигающим светодиодом, пытаясь очистить указанные клавиши.
Я хотел бы знать, будет ли достаточно мигания небольшой программы "мигания" для удаления ключей, чтобы esp32 можно было перепрофилировать, не беспокоясь о том, что дамп прошивки откроет прошлую информацию о прошивке.
Этот вопрос специально предназначен для сценариев, в которых esp32 предназначен для целей разработки (биты предохранителей никогда не сжигаются - я думаю, что существует недостаток безопасности, из-за которого чип может быть сброшен в любом случае).
@PathToLife, 👍1
1 ответ
Лучший ответ:
Вы можете использовать esptool.py
чтобы запустить операцию erase_flash.
Стереть вспышку: erase_flash и erase_region
Чтобы стереть весь флэш-чип (все данные заменены байтами 0xFF):
esptool erase_flash
Чтобы стереть область флэш-памяти, начинающуюся с адреса 0x20000 длиной 0x4000 байт (16 КБ):
esptool erase_region 0x20000 0x4000
Адрес и длина должны быть кратны размеру сектора стирания флэш-памяти SPI. Это 0x1000 (4096) байт для поддерживаемых флэш-чипов.
-- основные команды esptool
Что касается защиты от копирования, вы можете зашифровать содержимое флэш-памяти, так что даже если чип будет считан напрямую без ключа дешифрования, они не смогут понять какой-либо смысл данных.
- esp32, platformio A fatal error occurred: Packet content transfer stopped (received 8 bytes) *** [upload] Error 2
- Как выбрать альтернативные контакты I2C на ESP32?
- Драйверы для чипа последовательного порта CH9102X
- Как преобразовать форматированный оператор print в строковую переменную?
- ESP32 - "Детектор Браунаута был активирован" при запуске Wi-Fi
- Питание esp32cam от аккумулятора
- Контакты RX и TX на esp32
- ESP32: отключить детектор отключения питания
Спасибо за информацию, Маенко! Мне было интересно, будет ли в дополнение к вашему ответу достаточно прошивки прошивки blink (или любой другой небольшой пользовательской прошивки) для перезаписи всех существующих данных прошивки? Если true, то, возможно, erase_flash не потребуется., @PathToLife
@PathToLife Я не уверен, стирает ли обычная загрузка кода всю флэш-память или нет. Вы могли бы попробовать выполнить большую загрузку, за которой следует небольшая загрузка, затем прочитать весь flash с помощью esptool и посмотреть, что осталось от большой загрузки..., @Majenko
Есть ли способ создать приложение, которое при замене кем-то неопытным или вредоносным (то есть без операции стирания) не приведет к утечке данных (легко)? Я говорю о данных, хранящихся в NVS, LittleFS или аналогичных. Однако я не хочу полностью шифровать все устройство, поскольку это имеет ограничения и нарушит работу "свободного" программного обеспечения., @RDragonrydr
@RDragonrydr Вы можете вручную зашифровать данные, которые вы храните в NVS, используя собственное программное обеспечение в вашем sketch. Без ключей (которые находятся в скетче, поэтому будут перезаписаны новым кодом) расшифровка данных была бы практически невозможна.,, @Majenko