Estaba leyendo tls-crypt y tenía curiosidad por saber si eso aumentaría la seguridad y reduciría la posibilidad de que las claves se vean comprometidas durante los apretones de manos y si ofrecería una mejor seguridad que tls-auth.
¿Quizás alguien podría explicar mejor tls-auth y tls-crypt y cómo mejoran la seguridad?
mi archivo de cliente actual:
client
tls-client
dev tun
proto udp
remote 1.2.3.4 9999
<ca>
</ca>
<cert>
</cert>
<key>
</key>
pull
auth-nocache
cipher AES-256-CBC
keysize 256
compress lz4-v2
reneg-sec 36000
keepalive 30 120
Respuesta1
TLS Handshake se puede dividir más o menos en los siguientes pasos:
- Los clientes envían un "hola de cliente" al servidor, junto con el valor aleatorio del cliente y el conjunto de cifrado admitido.
- El servidor responde "servidor hola" al cliente, junto con el valor aleatorio del servidor y el conjunto de cifrado elegido.
- El servidor envía su certificado al cliente para su autenticación.
- El cliente verifica la identidad del servidor.
- El cliente crea un secreto previo al maestro aleatorio y lo cifra con la clave pública del certificado del servidor.
- El cliente envía el secreto previo al maestro cifrado al servidor.
- El servidor PUEDE solicitar el certificado del cliente si es necesario.
- Tanto el servidor como el cliente generan la clave de sesión en función del secreto maestro previo.
- El servidor y el cliente ahora pueden intercambiar mensajes cifrados utilizando la clave de sesión.
La diferencia entre tls-auth y tls-crypt es que, a partir del paso 1, tls-crypt cifrará todos los mensajes con una clave previamente compartida.
Esto proporciona varios beneficios:
- Oculta la inicialización de un protocolo de enlace TLS con un servidor OpenVPN. Esto es útil en algunas situaciones cuando se detecta y bloquea la firma del protocolo OpenVPN.
- Previene ataques de denegación de servicio TLS. Con tls-auth, el atacante puede abrir miles de conexiones TLS simultáneamente pero no proporcionar un certificado válido, bloqueando los puertos disponibles. Con tls-crypt, el servidor rechazará la conexión desde el principio en el paso 1.
- Los datos se cifran dos veces, una mediante tls-crypt y otra mediante la sesión TLS.