Tengo un concentrador que se comunica con un dispositivo IoT y necesita cambiar la clave de cifrado en ese dispositivo a intervalos frecuentes.
Los mensajes se cifran mediante AES-256-CBC con la clave antigua, y la nueva clave se incluye en esos mensajes.
Una vez que se envíe la nueva clave, debo estar absolutamente seguro de que el concentrador y el dispositivo están sincronizados con la clave que se está utilizando. ¿Por qué? La conexión puede interrumpirse en cualquier momento.
Dado que, aquí hay algunas cosas que he pensado:
- El concentrador envía la clave, actualizando la suya, luego el dispositivo se actualiza a la nueva clave si la recibe. (¿Qué pasa si el dispositivo no recibe la clave?)
- El concentrador envía la clave, espera para actualizarse, luego el dispositivo actualiza su clave, luego envía una 'Clave recibida', sobre la cual el concentrador actualiza la suya propia. (¿Qué sucede si nunca se recibe el mensaje del dispositivo?)
Me parece que no importa qué, hay una comunicación final que puede hacer que una parte no confirme una actualización. ¿Hay alguna manera de asegurarse?