Actualizando la huella digital de SSL en un dispositivo IoT

1

Actualmente estoy en el proceso de diseño del modelo de seguridad para un producto de IoT que mi empresa está desarrollando.

El dispositivo se conectará a Internet a través de WiFi y solo se comunicará con el servidor de nuestra empresa.

  • La comunicación se realizará a través de HTTPS
  • Durante el montaje físico del producto, la huella digital SSL del servidor se almacenará en el dispositivo. El dispositivo utiliza esta huella dactilar para asegurarse de que realmente habla con su servidor "doméstico" cada vez que establece una conexión.

Un problema con este enfoque surge tan pronto como cambia el certificado SSL del servidor. Todos los dispositivos en el campo ya no podrán conectarse al servidor debido a una falla en la comprobación de huellas dactilares.

Una solución parcial sería crear un período de tiempo en el que el servidor distribuiría su nueva huella digital a todos los dispositivos conectados, junto con la hora exacta en que se volverá válido. Los dispositivos podrían almacenar la nueva clave y utilizarla a partir de la fecha anunciada. Pero esto no resuelve el problema para los dispositivos que no están en línea durante el período de distribución de huellas dactilares.

¿Hay alguna solución potencial a este problema que podría haber pasado por alto? ¿Cuál es "la manera correcta" de hacer tal cosa? (No puedo ser el primero en hacerlo, ¿verdad?)

    
pregunta Oromis 10.04.2017 - 17:21
fuente

2 respuestas

2

Parece que no ha creado un mecanismo de actualización para el producto que está lanzando. Esto es mucho más preocupante que la actualización de firmas para certificados anclados. ¿Cómo se actualizará el producto en caso de que se deban realizar mejoras de seguridad o se deban corregir los errores?

El producto debe lanzarse con una firma inicial para todas las conexiones TLS. El mecanismo de actualización debe ser capaz de desplegar una imagen de firmware actualizada e implementarla en el dispositivo. El dispositivo solo debe solicitar estas actualizaciones a través de un canal cifrado TLS. El código de implementación de la actualización del lado del servidor debe firmar todas las actualizaciones de firmware con una clave privada. La clave pública utilizada para la validación de firmas debe integrarse en el firmware cuando se lance el dispositivo. De esta manera, puede actualizar las firmas TLS mediante el mecanismo de actualización, así como las claves públicas que se utilizan para la validación de la imagen del firmware.

Asegúrese de actualizar los valores de firma TLS y las claves públicas utilizadas para la validación de la imagen antes de que caduquen, esto puede significar que tiene un período de actualización de 3 meses antes del vencimiento de cualquiera de los dos. Este período debe definirse en función de cuánto tiempo tardan los usuarios en actualizar el producto; desea dar a todos un tiempo significativo para actualizar su dispositivo y un método para realizar una descarga / actualización manual del firmware en caso de que estos valores / claves no se actualicen antes de que caduquen.

    
respondido por el Joshua Gimer 10.04.2017 - 18:20
fuente
1

¿Por qué no utilizar en su servidor un certificado en el que confían las autoridades de certificación, por lo que sus IoT pueden usar los mecanismos PKI existentes para verificar las revocaciones y puede cambiar el certificado de su servidor cuando lo desee?

    
respondido por el Tom 11.04.2017 - 13:06
fuente

Lea otras preguntas en las etiquetas