TLSv1 não funciona sem ativar o sslv2

TLSv1 não funciona sem ativar o sslv2

Estou usando a versão Apache 2.2.4. Já sei que esta versão suporta apenas SSLv2, SSLv3 e TLSv1.0, mas algo estranho acontece quando eu a uso:

Quando o SSLv2 está desabilitado, o navegador da web (internet explorer no meu caso) usa SSLv3

SSL 3.0, 3DES com criptografia de 168 bits (Alta); RSA com troca de 2048 bits.

Quando eu habilito o SSLv2, o navegador usa TLSv1.0:

TLS 1.0, AES com criptografia de 256 bits (Alta); RSA com troca de 2048 bits

E, finalmente, quando desativo os dois protocolos (SSLv2 e v3), a página da web não carrega!

Eu usei esta configuração para Apache:

SSLProtocol all
SSLCipherSuite all

Você poderia explicar isso para mim? Como usar o TLSv1.0 sem ativar o SSLv2?

Responder1

Esse comportamento é causado pela especificação original do TLS v1 RFC (RFC 2246, seção "E. Compatibilidade com versões anteriores com SSL").

Basicamente, esta RFC afirma que a maioria dos servidores não usará portas de escuta diferentes para diferentes versões de SSL/TLS. Portanto, para garantir a compatibilidade com versões anteriores, é recomendado que o software primeiro inicie a conexão usando uma mensagem de saudação SSL "antiga", depois atualize a conexão para TLS quando ela for suportada em ambos os lados e nunca tente estabelecer uma conexão diretamente usando TLS ("TLS 1.0 clientes que suportam servidores SSL Versão 2.0 devem enviar mensagens de saudação do cliente SSL Versão 2.0").

Versões anteriores do Java (JRE5) costumavam ter esse comportamento, ele foi aprimorado com versões mais recentes que agora lidam com o handshake TLS diretamente. Talvez você deva verificar a versão do navegador e o nível do patch e verificar se esse comportamento persiste após desativar o SSLv2 no navegador também.

informação relacionada