Ho un hub che comunica con un dispositivo IoT e deve cambiare la chiave di crittografia su quel dispositivo a intervalli frequenti.
I messaggi sono crittografati con AES-256-CBC utilizzando la vecchia chiave e la nuova chiave è inclusa in quei messaggi.
Una volta che la nuova chiave è stata inviata, ho bisogno di essere assolutamente sicuro che l'hub e il dispositivo siano sincronizzati sulla chiave utilizzata. Perché? La connessione può essere interrotta in qualsiasi momento.
Detto questo, ecco alcune cose a cui ho pensato:
- L'hub invia la chiave, aggiornando la propria, quindi il dispositivo si aggiorna alla nuova chiave se la riceve. (Cosa succede se il dispositivo non riceve la chiave?)
- Hub invia la chiave, attende l'aggiornamento, quindi il dispositivo aggiorna la chiave, quindi restituisce una "Chiave ricevuta", sulla quale l'hub aggiorna la propria. (Cosa succede se il messaggio di ritorno del dispositivo non viene mai ricevuto?)
Mi sembra che non importa cosa, c'è una comunicazione finale che può far sì che una parte non confermi un aggiornamento. C'è un modo per esserne sicuri?