Diferencias de seguridad de OpenVPN 2.4 entre tls-crypt y tls-auth

Diferencias de seguridad de OpenVPN 2.4 entre tls-crypt y tls-auth

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:

  1. Los clientes envían un "hola de cliente" al servidor, junto con el valor aleatorio del cliente y el conjunto de cifrado admitido.
  2. El servidor responde "servidor hola" al cliente, junto con el valor aleatorio del servidor y el conjunto de cifrado elegido.
  3. El servidor envía su certificado al cliente para su autenticación.
  4. El cliente verifica la identidad del servidor.
  5. El cliente crea un secreto previo al maestro aleatorio y lo cifra con la clave pública del certificado del servidor.
  6. El cliente envía el secreto previo al maestro cifrado al servidor.
  7. El servidor PUEDE solicitar el certificado del cliente si es necesario.
  8. Tanto el servidor como el cliente generan la clave de sesión en función del secreto maestro previo.
  9. 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:

  1. 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.
  2. 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.
  3. Los datos se cifran dos veces, una mediante tls-crypt y otra mediante la sesión TLS.

información relacionada