Distribuzione chiave da un server centrale [chiuso]

0

Ho un sistema composto da diversi computer che devono comunicare in un contesto in tempo reale.

Tutte le comunicazioni devono essere crittografate e questo sistema non è connesso a Internet, è solo un mucchio di computer collegati tramite diversi switch.

Ogni computer può avere connessioni diverse con gli altri, agendo sia come server e / o client, utilizzando sia UDP e / o TCP.

Quello che mi piacerebbe fare è implementare qualcosa di non ingombrante o troppo complesso. La mia idea era di utilizzare in qualche modo AES 128 (o 256) e la modalità GCM.

Stavo pensando che potrebbe esserci un server centrale incaricato di distribuire una singola chiave che possa essere utilizzata da tutti gli altri computer per crittografare tutti i dati. In particolare, stavo pensando di caricare tutte le chiavi pubbliche su questo computer e poi ogni client, all'avvio del sistema, recupera la chiave dal server e utilizza questa chiave per crittografare la comunicazione con AES. Fondamentalmente sto dicendo di usare AES con una chiave pre-condivisa che può essere ottenuta da un server centrale.

La password creata nel server centrale potrebbe essere modificata manualmente o generata automaticamente ogni giorno.

Che ne pensi di questo design? Sto pensando di sviluppare tutto in C ++, qualche suggerimento su quale tecnologia / libreria dovrei usare?

Ho visto che esiste il livello basso di libcrypto ++ ma che esiste anche OpenSSL che fornisce funzionalità TLS e DTLS. È possibile impostare OpenSSL per creare un sistema come quello che ho descritto o dovrei usare altre librerie come libcrypto ++?

    
posta svoltron 06.07.2018 - 11:17
fonte

1 risposta

1

Questo è un commento, ma lo spazio è limitato.

Sulla base delle informazioni fornite, il consiglio migliore è: non tentare questo.

to use in some way AES 128 (or 256) and GCM mode

Guarda alcune vulnerabilità di sicurezza che coinvolgono la crittografia. L'algoritmo è importante, ma la maggior parte dei problemi si presentano nella parte "in qualche modo".

All the communications must be encrypted

Quindi è necessario modificare tutto il codice client e tutto il codice server o riscrivere lo stack di rete nel sistema operativo.

Perché devono essere crittografati? E 'solo per riservatezza come i dati attraversano la rete Vuoi implementare l'autenticazione bidirezionale?

this system is not connected to Internet...for a system that must stay online on Internet

Eh?

Gli host si connettono / forniscono cose diverse dai servizi che stai cercando di proteggere?

Sembra che tu abbia solo bisogno di una VPN.

any suggestion about which technology / library should I use?

Davvero non capisci cosa stai cercando di ottenere, quindi è comprensibile che tu non sia in grado di porre le domande giuste. Ci sono molte tecnologie disponibili che sono ben scritte, mantenute e supportate (ma non ci sono nemmeno abbastanza informazioni qui per indicarti la giusta direzione).

    
risposta data 06.07.2018 - 13:25
fonte

Leggi altre domande sui tag