La mayor parte de su pregunta debe responderse aquí:
OpenVPN -cipher vs -tls-cipher?
Aún así, debido a que su pregunta tiene un enfoque un poco diferente, permítame proporcionarle una lista simplificada de los pasos realizados en una configuración de conexión OpenVPN, y qué claves se usan donde:
-
El cliente se conecta al servidor. Si se usa tls-auth
o tls-crypt
, este paquete y todos los siguientes paquetes de canales de control se autentican o autentican y cifran con esta clave por ambas partes.
-
El cliente y el servidor realizan un protocolo de enlace TLS en el canal de control. Ambos utilizan las claves key
, cert
y ca
para la autenticación TLS. El servidor utiliza los parámetros dh
si se usa un conjunto de cifrado DH (E). TLS usa una de las suites de cifrado permitidas por la opción tls-cipher
.
-
A través del canal seguro TLS (que tiene su propio cifrado), OpenVPN realiza el intercambio de claves OpenVPN.
-
Las claves resultantes de este intercambio de claves OpenVPN se utilizan para cifrar y autenticar paquetes de canales de datos (los paquetes de red virtual reales). El canal de datos utiliza los métodos de encriptación y autenticación especificados por las opciones cipher
y auth
, o un cifrado negociado sobre el canal de control, que es uno de los cifrados en la opción ncp-ciphers
(este último es OpenVPN 2.4+ solamente ).
Esto significa que las claves en key
, cert
y ca
son utilizadas solo por TLS, y de la misma manera que TLS (o, la biblioteca TLS). El conjunto de cifrado TLS especifica el tipo de autenticación del servidor. Por lo tanto, si solo permite los conjuntos de cifrado RSA, el servidor debe tener una clave / certificado de RSA, pero el cliente aún puede usar un certificado diferente.