Я использую плату NodeMCU с возможностями WiFi для создания простого трекера активов. Мне удалось найти несколько набросков Arduino, которые обеспечивают подключение к концентратору IoT Azure и публиковать сообщения.
Одним из ключей, которые мне нужно «загрузить» на плату, является строка подключения устройства Azure и, конечно, идентификатор SSID WiFi и пароль.
Я боюсь, что кто-то может просто взять доску и «скачать» файлы, чтобы получить доступ к учетным данным безопасности.
Является ли мой страх необоснованным, или потеря полномочий является реальной угрозой, которую мне нужно смягчить?
Ответы:
[Отказ от ответственности: я профессионал в области безопасности / криптозащиты и каждый день занимаюсь вопросами архитектуры безопасности.]
Вы столкнулись с проблемой хранения учетных данных таким образом, чтобы автоматический процесс мог получить к ним доступ, а злоумышленник - нет. Это хорошо известная и очень сложная проблема.
Если ваше устройство IoT имеет встроенное в материнскую плату аппаратное хранилище ключей, такое как некоторые TPM, или эквивалент аппаратного хранилища ключей Android или Apple Secure Enclave, то вы можете использовать его.
На традиционных серверах вы можете использовать HSM или смарт-карты, но единственное полное программное решение, о котором я знаю, - это получить ключ AES из своего рода «аппаратного отпечатка», созданного путем объединения серийных номеров всех аппаратных устройств. Затем используйте этот ключ AES для шифрования учетных данных. Процесс, запущенный на том же сервере, может восстановить ключ AES и расшифровать учетные данные, но после извлечения файла с сервера это по существу не расшифровывается.
IoT вбивает в это ключ по двум причинам:
Предположение, что аппаратные серийные номера являются уникальными, вероятно, не имеет места, и
В отличие от серверов, злоумышленники имеют физический доступ к устройству, поэтому, вероятно, могут получить на устройстве оболочку для запуска программы расшифровки.
И аппаратное шифрование (TPM), и шифрование «аппаратного отпечатка» в лучшем случае являются обфускацией, потому что, по сути, если локальный процесс может расшифровать данные, то злоумышленник, способный запустить этот локальный процесс, может также расшифровать его.
Таким образом, стандартный трюк выглядит так, как будто он здесь не работает. Первый вопрос, который вам нужно задать себе:
Secure <--> Convenient
масштабе?В конечном счете, я думаю, что вам нужно либо решить это,
security > convenience
и заставить человека вводить учетные данные после каждой загрузки (используя что-то вроде ответа @ BenceKaulics ), либо вы решаете этоsecurity < convenience
и просто помещаете учетные данные на устройство, возможно, используя некоторое запутывание, если вы чувствую, что имеет значение.Это сложная проблема, которая усугубляется природой устройств IoT.
Для полноты полного промышленного решения этой проблемы:
Таким образом, злоумышленник, который скомпрометирует устройство, может открыть сеанс, но никогда не имеет прямого доступа к учетным данным.
источник
Угроза реальна, но, к счастью, вы не первый или единственный, кто сталкивается с подобными проблемами безопасности.
То, что вам нужно, это ESP WiFi Manager , то, что вам нужно здесь.
С этой библиотекой ESP, у которого нет сохраненного сеанса, переключится в режим AP и будет размещать веб-портал. Если вы подключитесь к этой точке доступа с помощью ПК или смартфона, вы сможете настроить учетные данные WiFi через веб-страницу.
Вам не нужно жестко кодировать важную информацию, и вы можете использовать свое устройство в любой сети Wi-Fi, которую вы хотите, без необходимости ее перепрошивки.
(Документация ESP WiFi Manager)
источник
Да, они могут получить доступ к вашему паролю, если вы оставите его в виде обычного текста.
Хорошим моментом является то, что многие интерфейсы Wi-Fi принимают хешированные пароли. В то время как те, которые я использовал, приняли хэши md5, а md5 не супер-безопасны, для среднего Джо это все еще очень сложная задача. В зависимости от вашего конфигурационного файла, вы можете указать имя алгоритма хеширования, а затем написать свой пароль или использовать настройки по умолчанию, используемые вашим Wi-Fi-интерфейсом.
источник
Простой ответ - ДА. Это может быть сделано. Вы должны, по крайней мере, выполнить какое-то запутывание, чтобы обеспечить минимальную защиту.
источник