La respuesta de tl; dr es: Sí, su comprensión es correcta.
En el modo TLS, OpenVPN establece una sesión TLS para realizar un intercambio de claves sobre esa sesión TLS para obtener las claves utilizadas para cifrar / autenticar los datos de carga útil del túnel. Esta es una sesión TLS normal, como si abriera un sitio web HTTPS en su navegador, excepto que no solo realizará la autenticación del servidor sino también la autenticación del cliente y, por lo tanto, el cliente también necesitará un certificado con clave privada. / p>
El intercambio de sesiones TLS en sí mismo debe ser seguro, después de todo, es todo lo que tiene cuando visita un sitio de banca en línea, por ejemplo, pero esa es solo la teoría. En la práctica, cada protocolo tiene puntos débiles e incluso si el protocolo no tuviera ninguno, la implementación del protocolo también puede tener puntos débiles. Para hacer que sea aún más difícil para un atacante usar esas debilidades, puede usar tls-crypt, que cifrará y autentificará los paquetes TLS usando claves de un archivo de clave estática. Ahora, un atacante también necesitaría tener en sus manos una copia de ese archivo de claves, de lo contrario, incluso sabría un ataque utilizable y tendría la posibilidad de realizarlo (por ejemplo, poder monitorear el tráfico o realizar una conexión de hombre en el medio). ) no lo ayudará.
Con tls-crypt, todos los datos que se ejecutan en el "canal TLS" están cifrados y autenticados con los mismos algoritmos que los datos de carga útil del túnel y con las claves del archivo de clave estática. Para los datos de carga útil de TLS (autenticación de usuario, intercambio de claves, inserción de configuración, etc.), esto significa que estos datos se cifran y autentican dos veces. Una vez por tls-crypt y una vez por la propia sesión TLS, como una sesión TLS en sí misma se utiliza para cifrar y autenticar datos y, por supuesto, incluso si no se usa tls-crypt, la autenticación del usuario, el intercambio de claves y la configuración push debe estar encriptado y autenticado; de lo contrario, ¿cómo sería seguro todo el protocolo si ese no fuera el caso?
A pesar de haber agregado seguridad adicional para el administrador de VPN paranoico (aunque, considerando los horribles errores SSL / TLS encontrados en los últimos años, estas personas parecen mucho menos paranoicas como solían hacerlo), también tiene otro efecto positivo: previene Cierto tipo de ataques de denegación de servicio. Incluso si un atacante no puede entrar en tu VPN, puede intentar abrir miles de sesiones TLS al mismo tiempo. Al no poder proporcionar un certificado válido, todas estas sesiones fallarán al final, pero hasta que ese sea el caso (tomará 60 segundos de manera predeterminada), un objeto de sesión TLS puede usar una cantidad significativa de recursos de memoria para un dispositivo integrado pequeño. y abrir miles de estos puede derribar rápidamente ese dispositivo. Con tls-crypt, ya el primer paquete enviado no se autenticará / descifrará correctamente y, por lo tanto, se descartará de inmediato. No es necesario crear un objeto de sesión TLS en ese caso.