Где хранить секретные ключи?

esp8266 security

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

  1. Как константа в программном коде
    Скомпилированный двоичный файл будет общедоступен, поэтому любой, кто сможет потратить некоторое время на интерпретацию скомпилированного файла, в конечном итоге сможет найти хранящийся в нем пароль.
  2. В EEPROM
    По крайней мере, это безопасно для людей, не являющихся пользователями, но любой пользователь все равно сможет загрузить свою собственную программу и прочитать EEPROM, чтобы найти пароль .

Конечно, это распространенная проблема, особенно в коммерческих продуктах. О каком решении я не думаю?

, 👍0

Обсуждение

Возможно, вам следует рассказать нам, что вы пытаетесь сделать, требуя сохранить пароль., @Rohit Gupta

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


1 ответ


0

ESP8266 не подходит для этого. Внутри него нельзя ничего хранить с защитой от считывания.

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

Если вы примените асимметричное шифрование, например, с помощью ключа от внешнего сервера, вы не сможете помешать хакеру применить тот же алгоритм.

Заключительное замечание: абсолютной безопасности не существует. Достичь какой-то степени можно, но это сложно.

,