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:
- Os clientes enviam "client hello" ao servidor, juntamente com o valor aleatório do cliente e o conjunto de cifras suportado.
- O servidor responde "servidor olá" ao cliente, junto com o valor aleatório do servidor e o conjunto ciper escolhido.
- O servidor envia seu certificado ao cliente para autenticação.
- O cliente verifica a identidade do servidor.
- O cliente cria um segredo pré-mestre aleatório e o criptografa com a chave pública do certificado do servidor.
- O cliente envia o segredo pré-mestre criptografado ao servidor.
- O servidor PODE solicitar certificado do cliente, se necessário.
- Tanto o servidor quanto o cliente geram a chave de sessão com base no segredo pré-mestre.
- 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:
- 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.
- 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.
- Os dados são criptografados duas vezes, uma vez por tls-crypt e outra vez pela sessão TLS.