transferencia segura de datos IOT

0

Tengo una pregunta sobre una arquitectura de software de monitoreo.

Piense en 50 ubicaciones diferentes en diferentes ciudades. Supongamos que estas ubicaciones son plantas pequeñas.

En cada ubicación hay aproximadamente 50 dispositivos que producen pequeñas cantidades de datos, que es una cadena y un contador entero.

Necesito tomar estos datos de los dispositivos y guardarlos en una base de datos del servidor dentro de la planta.

Periódicamente, necesito enviar estos datos del servidor a la sede central para informar. No quiero enviar datos de la planta a la sede en tiempo real, ya que la conexión podría estar inactiva durante un día o dos entre la planta y la sede.

Suponga que no confiamos en que los operadores de la planta y los productos puedan ser robados. P.ej. Se producen 50 productos en la planta, pero solo 40 se reportan a HQ.

Básicamente, una cadena y un entero deben tomarse de un dispositivo y transmitirse al HQ en otra ciudad.

Supongo que hay 3 lugares donde se deben proteger los datos.

  1. Entre el dispositivo y el servidor. (Ambos están en la planta, se conectarán a través de Ethernet o serie)
  2. En el servidor
  3. Entre el servidor y HQ

1) Para el primer camino; el dispositivo estará en un estuche rígido que no puede ser abierto por nadie excepto el personal autorizado. El software en el dispositivo tendrá una clave SHA y cifrará los datos y los enviará al servidor a través de serie o Ethernet. El servidor escribirá los datos cifrados o descifrados en una base de datos.

  • ¿Es lo suficientemente seguro cifrar los datos y enviarlos a través del socket TCP?
  • Como el dispositivo no puede tener un módulo de seguridad de hardware, la clave de cifrado estará codificada y estará en la memoria. ¿Hay alguna otra forma de asegurar la llave que no sea encerrarla en una caja de acero?
  • Si el servidor tiene la misma clave SHA que está en el dispositivo, ¿debería estar en un módulo de seguridad de hardware?

2) El servidor estará protegido por un estuche rígido y también será accesible por el HQ a través de la conexión de escritorio remoto. Se instalarán y configurarán software antivirus y firewall.

3) ¿Debo volver a cifrar los datos en el servidor y enviarlos a través de sockets TCP y descifrarlos en el centro?

  • ¿Debo usar un protocolo como https y usar REST?
  • ¿Recomiendas otra solución?
pregunta lonerunner 16.10.2018 - 17:06
fuente

1 respuesta

1

Supondré que los dispositivos transmitirán tuplas (serial, counter, key, value) donde:

  • serie: una identificación única para el dispositivo (idealmente establecida en la fábrica).
  • contador: a realiza un seguimiento de la cantidad de mensajes enviados al servidor central
  • clave: nombre del parámetro que está enviando
  • valor: el número

Haga que los dispositivos cifren ese mensaje grande con la clave pública del centro (si también puede permitirse tener una clave privada por dispositivo, agregue también una firma digital. De lo contrario, use una parte fija en el campo de identificación de serie que estaba generado al azar y no es conocido por terceros).

El servidor de la planta solo ve mensajes cifrados, por lo que no puede modificarlos. Podría elegir perder algunos mensajes, pero notaría la brecha en el contador. O que un dispositivo dado dejó de enviar datos hace dos semanas.

Tenga en cuenta que pasamos de "proteger datos en tres lugares" a simplemente "proteger entre dispositivo y centro". Por supuesto, no hay ninguna razón para que el servidor de la planta no pueda usar https cuando se conecta con el servidor central, pero eso no sería necesario para la confidencialidad de los mensajes.

Hablas de "clave SHA", que no tiene mucho sentido (SHA se usa para compendios de mensajes ...). Simplemente use criptografía asimétrica. Sus dispositivos probablemente pueden usar criptografía de curva elíptica.

Aún necesita corregir los otros bits, como usar un modo de cifrado autenticado (por ejemplo, GCM) o, si no, realizar comprobaciones adicionales, un atacante que haya comprometido todo el dispositivo podría hacerse pasar por ese dispositivo ( pero solo eso). El servidor central debe verificar que las cosas tengan sentido ... pero, de lo contrario, esto debería proporcionar una buena base para comenzar.

    
respondido por el Ángel 16.10.2018 - 18:06
fuente

Lea otras preguntas en las etiquetas