Estoy usando una placa NodeMCU con capacidades WiFi para construir un rastreador de activos simple. He logrado encontrar algunos bocetos de Arduino que permiten la conectividad a Azure IoT Hub y publicar mensajes.
Una de las claves que necesito "cargar" en la placa es la cadena de Azure Device Connection y, por supuesto, un SSID y contraseña de WiFi.
Mi temor es que alguien simplemente tome la pizarra y "descargue" los archivos para obtener acceso a las credenciales de seguridad.
¿Mi temor es injustificado o la pérdida de credenciales es una amenaza real que necesito mitigar?
Respuestas:
[descargo de responsabilidad: soy un profesional de seguridad / criptografía y trato con preguntas de arquitectura de seguridad como esta todos los días].
Te has topado con el problema de almacenar credenciales de tal manera que un proceso desatendido puede acceder a ellas, pero un atacante no puede. Este es un problema bien conocido y muy difícil de resolver.
Si su dispositivo IoT tiene un almacén de claves de hardware integrado en la placa base, como algunos TPM, o el equivalente al Keystore con respaldo de hardware de Android o Apple Secure Enclave, puede usarlo.
Con los servidores tradicionales, puede usar HSM o tarjetas inteligentes, pero la única solución de software completa que conozco es derivar una clave AES de algún tipo de "huella digital de hardware" creada combinando números de serie de todos los dispositivos de hardware. Luego use esa clave AES para cifrar las credenciales. Un proceso que se ejecuta en el mismo servidor puede reconstruir la clave AES y descifrar las credenciales, pero una vez que extrae el archivo del servidor, esencialmente no se puede descifrar.
IoT arroja una llave en eso por dos razones:
La suposición de que los números de serie del hardware son únicos probablemente no se cumple, y
A diferencia de los servidores, los atacantes tienen acceso físico al dispositivo, por lo tanto, probablemente puedan obtener un shell en el dispositivo para ejecutar el programa de descifrado.
Tanto el cifrado de hardware (TPM) como el cifrado de "huella digital de hardware" son ofuscación en el mejor de los casos porque, fundamentalmente, si un proceso local puede descifrar los datos, un atacante capaz de ejecutar ese proceso local también puede descifrarlos.
Así que el truco estándar parece que no funciona aquí. La primera pregunta que debe hacerse es:
Secure <--> Convenient
escala?En última instancia, creo que debe decidir eso
security > convenience
y hacer que un humano ingrese las credenciales después de cada arranque (usando algo como la respuesta de @ BenceKaulics ), o decide esosecurity < convenience
y simplemente coloca las credenciales en el dispositivo, tal vez usando algo de ofuscación si Siento que eso hace la diferencia.Este es un problema difícil que se hace más difícil por la naturaleza de los dispositivos IoT.
Para completar, la solución industrial completa a este problema es:
De esta manera, un atacante que comprometa un dispositivo puede abrir una sesión, pero nunca tiene acceso directo a las credenciales.
fuente
La amenaza es real, pero afortunadamente no es usted el primero o el único con este tipo de problemas de seguridad.
Lo que necesita es el ESP WiFi Manager es lo que necesita aquí.
Con esta biblioteca, el ESP que no tiene una sesión guardada cambiará al modo AP y alojará un portal web. Si se conecta a este AP con una PC o teléfono inteligente, podrá configurar las credenciales de WiFi a través de una página web.
No tiene que codificar la información crítica y puede usar su dispositivo en cualquier red WiFi que desee sin la necesidad de actualizarla.
(Documentación de ESP WiFi Manager)
fuente
Sí, pueden acceder a su contraseña si la deja como texto sin formato.
Lo bueno es que muchas interfaces de conexión wifi aceptan contraseñas hash. Si bien los que utilicé aceptaron hash md5 y md5 no son súper seguros, sigue siendo un desafío muy difícil para Joe promedio. Dependiendo de su archivo de configuración, puede indicar el nombre de su algoritmo de hash y luego escribir su contraseña o usar el predeterminado que usa su interfaz wifi.
fuente
Respuesta simple: sí. Se puede hacer. Debe, al menos, realizar algún tipo de ofuscación para proporcionar una protección mínima.
fuente