Estamos contemplando utilizar el siguiente diseño para identificar de manera segura los dispositivos de IoT desde la nube, y nos gustaría saber si alguien verá fallas importantes en ella.
-
El diseño se basa en el uso de una clave RSA de 4096 bits.
-
La clave pública se incluiría en el firmware del dispositivo IoT.
-
Al inicio, el dispositivo generará una ID aleatoria de 256 bits (utilizando un chip específico con capacidades aleatorias reales o la entropía del usuario presionando los botones en el dispositivo). Esta ID no cambiará hasta que se reinicie el dispositivo, y se mantendrá en la RAM.
-
En la primera conexión, el dispositivo se registrará en una infraestructura en la nube y enviará un mensaje cifrado con el ID.
-
Luego, el dispositivo enviará mensajes cifrados con la ID y la carga útil. La infraestructura de la nube descifrará el mensaje y se asegurará de que provenga del mismo dispositivo que se registró con la ID dada la primera vez.
-
Se supone que las capacidades de JTAG están deshabilitadas en el dispositivo. Se puede considerar la maceta.
-
Se supone que el firmware es original (el usuario tiene la capacidad de actualizar su dispositivo antes de usarlo).
En esas condiciones, ¿crees que hay una manera para que un atacante con acceso al dispositivo robe la ID?
Otra pregunta también es: ¿qué generador pseudoaleatorio podríamos usar (¿biblioteca?) para el cifrado RSA?
Muchas gracias!