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.
- Entre el dispositivo y el servidor. (Ambos están en la planta, se conectarán a través de Ethernet o serie)
- En el servidor
- 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?