Estoy diseñando un dispositivo de recolección de datos muy simple para un proyecto de investigación. Debido a que estamos registrando, entre otras cosas, la posición GPS de los vehículos reales, necesitamos proteger los datos. Ya que implementamos manualmente cada dispositivo de registro, no hay necesidad de registros o inicios de sesión.
He configurado un servidor web (Node.js), una base de datos (MongoDB), una aplicación (iOS nativo) y un formato de datos (JSON). El cliente envía regularmente JSON al servidor web con el siguiente comando:
PUT/store/[deviceId]/?hash=[hash]
(con los datos reales como una variable POST)
Donde deviceId
es un identificador simple, por ahora solo un número (0, 1 o 2), para que elija en qué colección MongoDB almacenar los datos.
El hash
es un hash del verbo HTTP, la url y el secreto del dispositivo (solo una cadena aleatoria codificada en cada dispositivo), inspirado en esta respuesta .
Mi preocupación aquí es qué tan seguro es este sistema. Estoy usando HTTPS para proteger la transferencia de datos, y el secreto del dispositivo para asegurarme de que sea uno de nuestros dispositivos, y no el hijo del vecino que intenta hackearnos.
¿Es eso suficiente?