Diferenças de segurança do OpenVPN 2.4 entre tls-crypt e tls-auth

Diferenças de segurança do OpenVPN 2.4 entre tls-crypt e tls-auth

Eu estava lendo e tls-crypt e fiquei curioso se isso aumentaria a segurança e reduziria a chance de chaves serem comprometidas durante handshakes e se ofereceria melhor segurança em relação ao tls-auth?

Talvez alguém pudesse explicar melhor o tls-auth e o tls-crypt e como eles melhoram a segurança?

meu arquivo de cliente atual:

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

Responder1

O handshake TLS pode ser mais ou menos dividido nas seguintes etapas:

  1. Os clientes enviam "client hello" ao servidor, juntamente com o valor aleatório do cliente e o conjunto de cifras suportado.
  2. O servidor responde "servidor olá" ao cliente, junto com o valor aleatório do servidor e o conjunto ciper escolhido.
  3. O servidor envia seu certificado ao cliente para autenticação.
  4. O cliente verifica a identidade do servidor.
  5. O cliente cria um segredo pré-mestre aleatório e o criptografa com a chave pública do certificado do servidor.
  6. O cliente envia o segredo pré-mestre criptografado ao servidor.
  7. O servidor PODE solicitar certificado do cliente, se necessário.
  8. Tanto o servidor quanto o cliente geram a chave de sessão com base no segredo pré-mestre.
  9. O servidor e o cliente agora podem trocar mensagens criptografadas usando a chave de sessão.

A diferença entre tls-auth e tls-crypt é que a partir da etapa 1, tls-crypt criptografará todas as mensagens com uma chave pré-compartilhada.

Isso oferece vários benefícios:

  1. Ele oculta a inicialização de um handshake TLS com um servidor OpenVPN. Isto é útil em algumas situações quando a assinatura do protocolo OpenVPN é detectada e bloqueada.
  2. Ele evita ataques de negação de serviço TLS. Com o tls-auth, o invasor pode abrir milhares de conexões TLS simultaneamente, mas não fornecer um certificado válido, obstruindo as portas disponíveis. Com tls-crypt o servidor rejeitaria a conexão antecipadamente na etapa 1.
  3. Os dados são criptografados duas vezes, uma vez por tls-crypt e outra vez pela sessão TLS.

informação relacionada