esquema de identificación segura IoT

3

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!

    
pregunta Vincz777 25.09.2016 - 23:46
fuente

1 respuesta

1

Recomendaría lo siguiente:

  1. Es mejor si implementó un protocolo TLS 1.2 bien probado en este dispositivo con el fin de asegurar una comunicación autenticada en lugar de inventar su propio protocolo.
  2. Implemente un certificado de cliente en cada dispositivo y almacénelo, así como los certificados de CA raíz en el dispositivo.
  3. Algunos microcontroladores tienen un área de almacenamiento SRAM / EEPROM segura en el chip que se puede usar para almacenar claves, por ejemplo. El MAXQ1010 de Maxim tiene un almacenamiento de 128 bits. Hash el certificado del dispositivo y los certificados raíz de CA y almacena este valor de hash en el almacenamiento seguro en chip. En el inicio, el dispositivo debe generar un hash de los contenidos del certificado y de la CA raíz y comprobar si es el mismo que el valor almacenado, si no da un error y se niega a iniciar. Como alternativa, almacene el certificado y la CA raíz en la memoria programable para microcontroladores que se pueden programar una sola vez.

En resumen, al utilizar la generación actual de TLS, puede estar seguro de que ha implementado un protocolo robusto y bien investigado. Luego puede enfocar su tiempo y esfuerzo en desarrollar otras funcionalidades de su solución.

    
respondido por el Sandeep S. Sandhu 26.09.2016 - 11:29
fuente

Lea otras preguntas en las etiquetas