Desabilitando SSLv3 mas ainda suportando SSLv2Hello no Apache

12

Muitos clientes SSL, principalmente o JDK 6, usam o protocolo SSLv2Hello para realizar handshake com o servidor.  Usando este protocolo não significa que você está usando o SSL 2.0 ou 3.0 para esse assunto; é meramente um aperto de mão para determinar qual protocolo usar. [ link

No entanto, no Apache, se você desabilitar o suporte SSLv3, isso aparentemente remove o suporte para o Protocolo SSLv2Hello. O Apache Tomcat tem suporte explícito para SSLv2Hello; isto é, você pode habilite isso, mas não ative o SSLv3.

Existe alguma maneira de fazer isso no Apache?

[Atualização]

Esta é a configuração do meu protocolo:

  SSLProtocol +TLSv1 +TLSv1.1 +TLSv1.2 -SSLv3
    
por Matt Hughes 17.10.2014 / 20:57

2 respostas

7

Aparentemente mod_ssl mudou no último ano (eu não encontrei o commit exato para a fonte, mas encontrei o "problema"). A fonte agora faz isso:

If SSLProtocol only includes only one Protocol:
    Handshake = That Protocol's Handshake Only
Else
    Handshake = SSLv2 Handshake

Não há substituição para essa configuração. A única coisa que você pode fazer é editar a fonte, recompilar sua própria versão. Eu criei um diff para forçar a compatibilidade do Handshake SSLv2 se você quiser compilar o seu próprio.

    
por 20.10.2014 / 16:45
1

Então acontece que isso não foi um problema desde o começo. O Apache aceitará o handshake SSLv2 com qualquer uma das configurações que eu postei acima. Eu fui enganado por um erro de aperto de mão em pensar que este era o problema; era realmente apenas um problema de configuração em que o servidor não confiava na autoridade de certificação do cliente.

    
por 22.10.2014 / 15:25