Stiamo pensando di utilizzare il seguente design per identificare in modo sicuro i dispositivi IoT dal cloud e vorremmo sapere se qualcuno vedrebbe gravi difetti in esso.
-
Il design si basa sull'uso di una chiave RSA a 4096 bit.
-
La chiave pubblica dovrebbe essere inclusa nel firmware del dispositivo IoT.
-
All'avvio, il dispositivo genererà un ID casuale a 256 bit (utilizzando un chip specifico con capacità casuali reali o entropia dall'utente che preme i pulsanti sul dispositivo). Questo ID non cambierà fino a quando il dispositivo non verrà ripristinato e verrà tenuto nella RAM.
-
Alla prima connessione, il dispositivo si registrerà in un'infrastruttura cloud inviando un messaggio crittografato contenente l'ID.
-
Quindi il dispositivo invierà messaggi crittografati contenenti l'ID e il carico utile. L'infrastruttura cloud decodificherà il messaggio e verrà assicurato che provenga dallo stesso dispositivo che si era registrato con l'ID specificato per la prima volta.
-
Le funzionalità JTAG dovrebbero essere disabilitate sul dispositivo. È possibile prendere in considerazione l'invasatura.
-
Il firmware dovrebbe essere autentico (l'utente ha la possibilità di eseguire il flashing del suo dispositivo prima di utilizzarlo).
In queste condizioni, pensi che ci sia un modo per un utente malintenzionato con accesso al dispositivo di rubare l'ID?
Un'altra domanda è quale generatore pseudocasuale potremmo usare (libreria?) per la crittografia RSA?
Grazie mille!