Sto lavorando a un prodotto che richiede l'esistenza di dispositivi in qualsiasi parte del mondo collegati a Internet tramite modem cellulari o linee WLAN che comunicano con un / i server / i esistente in altre parti del mondo.
Quando si degna la porzione di rete del programma non riesco a capire quale sia l'opzione migliore per proteggere la comunicazione tra il server e il dispositivo finale.
Dalle mie ricerche ho trovato due opzioni.
Opzione 1: Utilizzo di un host per ospitare la connessione VPN tra i due dispositivi.
Pro: il software VPN sembra essere ben testato e non richiede una programmazione aggiuntiva per il protocollo di rete. Il dipartimento IT è più a suo agio a causa dell'uso di software già testato e a loro agio con vpn.
Contro: Poiché i miei dispositivi terminali sono linux su piattaforme OMAP, la compilazione incrociata del software VPN se non già eseguita potrebbe essere complicata. Gestione dei firewall e dei router dietro la rete dei dispositivi finali. L'installazione della connessione può essere complicata.
Opzione 2: Implementazione del protocollo TLSv1 nel mio programma per gestire la crittografia.
Pro: non richiede l'esecuzione di software aggiuntivo sul dispositivo. Si basa solo sulle librerie di crittografia come dipendenza. Non devi preoccuparti di gestire nats e firewall perché il protocollo richiederà solo una porta TCP per essere aperta.
Contro: Codifica aggiuntiva per il software di rete. L'IT è scettico perché il nostro programma è responsabile della protezione del protocollo.
FYI: per implementare il TLSv1 vorrei usare link