Schema di identificazione sicura IoT

3

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!

    
posta Vincz777 25.09.2016 - 23:46
fonte

1 risposta

1

Raccomando quanto segue:

  1. È meglio se hai implementato un collaudato protocollo TLS 1.2 su questo dispositivo ai fini della sicurezza delle comunicazioni autenticate piuttosto che inventare il tuo protocollo.
  2. Distribuire un certificato client su ciascun dispositivo e memorizzarlo, nonché i certificati della CA radice sul dispositivo.
  3. Alcuni microcontrollori dispongono di un'area di memoria SRAM / EEPROM sicura su chip che può essere utilizzata per le chiavi del negozio - ad es. Maxim's MAXQ1010 ha una memoria a 128 bit. Hash il certificato del dispositivo ei certificati di origine CA e memorizza questo valore di hash nell'archiviazione sicura on-chip. All'avvio, il dispositivo dovrebbe generare un hash del certificato e il contenuto della CA principale e verificare se questo è uguale al valore memorizzato, se non si dà un errore e si rifiuta di iniziare. In alternativa, memorizzare il certificato e la CA principale nella memoria programmabile per i microcontroller che sono programmabili una sola volta.

In sintesi, utilizzando l'attuale generazione di TLS puoi essere certo di aver implementato un protocollo robusto e ben studiato. È quindi possibile concentrare tempo e sforzi nello sviluppo di altre funzionalità della soluzione.

    
risposta data 26.09.2016 - 11:29
fonte

Leggi altre domande sui tag