Где хранить секретные ключи?
Я хочу сохранить пароль в своей программе ESP8266, но не могу найти способ сделать это недоступным для хакеров. Даже если я зашифрую его, мне все равно нужно будет где-то хранить закрытый ключ для процесса шифрования. У меня есть только две идеи, и обе имеют проблемы:
- Как константа в программном коде
Скомпилированный двоичный файл будет общедоступен, поэтому любой, кто сможет потратить некоторое время на интерпретацию скомпилированного файла, в конечном итоге сможет найти хранящийся в нем пароль. - В EEPROM
По крайней мере, это безопасно для людей, не являющихся пользователями, но любой пользователь все равно сможет загрузить свою собственную программу и прочитать EEPROM, чтобы найти пароль .
Конечно, это распространенная проблема, особенно в коммерческих продуктах. О каком решении я не думаю?
@Blaine, 👍0
Обсуждение1 ответ
ESP8266 не подходит для этого. Внутри него нельзя ничего хранить с защитой от считывания.
Любое пользовательское программное обеспечение находится во внешней памяти, поэтому даже любители могут его прочитать. Если вы предоставляете двоичный файл для загрузки (из-за обновлений или самостоятельной сборки), это даже упрощает считывание.
Если вы примените асимметричное шифрование, например, с помощью ключа от внешнего сервера, вы не сможете помешать хакеру применить тот же алгоритм.
Заключительное замечание: абсолютной безопасности не существует. Достичь какой-то степени можно, но это сложно.
- Как читать и записывать EEPROM в ESP8266
- Как сделать выводы Tx и Rx на ESP-8266-01 в выводах GPIO?
- Как навсегда изменить скорость передачи данных ESP8266 (12e)?
- Как заставить 5-вольтовое реле работать с NodeMCU
- Как исправить: Invalid conversion from 'const char*' to 'char*' [-fpermissive]
- ESP8266 не подключается к Wi-Fi
- AT-команда не отвечает на последовательный монитор
- Разница между этими двумя платами NodeMCU?
Возможно, вам следует рассказать нам, что вы пытаетесь сделать, требуя сохранить пароль., @Rohit Gupta
Если это так важно, то вам, вероятно, понадобится модуль/чип TPM для хранения и использования закрытого ключа. Однако тогда вам следует отправлять пароль только в зашифрованном виде. Если вы просто расшифроваете пароль с помощью TPM, а затем воспользуетесь им напрямую, кто-нибудь сможет его извлечь. Похоже, это вариант использования аутентификации с открытым ключом с использованием TPM., @chrisl