Ho una domanda su un'architettura software di monitoraggio.
Pensa a 50 diversi luoghi in diverse città. Supponiamo che queste località siano piccole piante.
In ogni posizione ci sono circa 50 dispositivi che producono piccole quantità di dati che è una stringa e un contatore intero.
Ho bisogno di prendere questi dati dai dispositivi e salvarli in un database del server all'interno dello stabilimento.
Periodicamente ho bisogno di inviare questi dati dal server all'HQ per la segnalazione. Non voglio inviare dati dall'impianto all'HQ in tempo reale poiché la connessione potrebbe essere interrotta per un giorno o 2 tra l'impianto e il quartier generale.
Supponiamo che non ci fidiamo degli operatori di stabilimento e che i prodotti possono essere rubati. Per esempio. 50 prodotti sono prodotti nello stabilimento ma solo 40 sono segnalati al quartier generale.
Fondamentalmente, una stringa e un intero dovrebbero essere presi da un dispositivo e trasmessi all'HQ in un'altra città.
Ci sono 3 luoghi in cui i dati dovrebbero essere protetti, immagino.
- Tra dispositivo e server. (Entrambi sono nello stabilimento, saranno collegati via ethernet o seriale)
- Sul server
- Tra server e HQ
1) Per il primo percorso; il dispositivo si troverà in una custodia rigida che non può essere aperta da nessuno, ad eccezione del personale autorizzato. Il software sul dispositivo avrà una chiave SHA e crittograferà i dati e li invierà al server via seriale o ethernet. Il server scrive dati crittografati o decrittografati in un database.
- La crittografia dei dati e l'invio sul socket TCP sono abbastanza sicuri?
- Poiché il dispositivo non può disporre di un modulo di sicurezza hardware, la chiave di crittografia sarà hardcoded e sarà in memoria. C'è un modo per fissare la chiave oltre a bloccarla in una custodia in acciaio?
- Se il server ha la stessa chiave SHA che si trova sul dispositivo, dovrebbe trovarsi su un modulo di sicurezza hardware?
2) Il server sarà protetto da una custodia rigida e sarà accessibile dall'HQ tramite la connessione desktop remoto. Il software antivirus e firewall verrà installato e configurato.
3) Devo crittografare nuovamente i dati sul server e inviarlo su socket TCP e decifrare al centro?
- Devo usare un protocollo come https e usare REST?
- Raccomandi un'altra soluzione?