La maggior parte della tua domanda dovrebbe essere risolta qui:
OpenVPN -cipher vs -tls-cipher?
Tuttavia, poiché la tua domanda è leggermente diversa, lascia che ti fornisca un elenco semplificato di passaggi eseguiti in una configurazione di connessione OpenVPN e quali chiavi sono utilizzate dove:
-
Il client si connette al server. Se viene utilizzato tls-auth
o tls-crypt
, questo pacchetto e tutti i seguenti pacchetti di canali di controllo sono autenticati o autenticati e crittografati con questa chiave da entrambe le parti.
-
Il client e il server eseguono un handshake TLS sul canale di controllo. Entrambi utilizzano le chiavi key
, cert
e ca
per l'autenticazione TLS. Il server utilizza i parametri dh
se viene utilizzata una suite di crittografia DH (E). TLS utilizza una delle suite di crittografia consentite dall'opzione tls-cipher
.
-
Sul canale protetto TLS (che ha la propria crittografia) OpenVPN esegue lo scambio di chiavi OpenVPN.
-
Le chiavi risultanti da questo scambio di chiavi OpenVPN vengono utilizzate per crittografare e autenticare i pacchetti di canali di dati (i pacchetti di rete virtuali effettivi). Il canale dati utilizza i metodi di crittografia e autenticazione specificati dalle opzioni cipher
e auth
, o una cifra negoziata sul canale di controllo, che è una delle cifre nell'opzione ncp-ciphers
(quest'ultima è solo OpenVPN 2.4+ ).
Ciò significa che le chiavi in key
, cert
e ca
vengono utilizzate solo da TLS e nello stesso modo in cui TLS (o, la libreria TLS). TLS ciphersuite specifica il tipo di autenticazione del server. Pertanto, se si accettano solo suite di crittografia RSA, il server deve disporre di un privkey / cert RSA, ma il client potrebbe comunque utilizzare un certificato diverso.