Por favor, veja as seções EDIT na minha própria resposta; eles contêm uma explicação para esse enigma .
Estou tentando desativar o RC4 para um servidor Apache 2.2.9 em execução no CentOS 6.5 VPS e não consigo obter êxito.
Um certificado validado pela empresa adquirido recentemente está instalado e as conexões SSL estão funcionando bem, mas eu queria configurar as coisas da melhor maneira possível, para "fortalecer a segurança", como alguns tutoriais colocam.
Verificando a configuração com o Qualys SSL Labs, a página de resultados mostra "Este servidor aceita a cifra RC4, que é fraca. Grade limitada a B."
No entanto, eu coloquei isso no ssl.conf:
SSLCipherSuite HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4:!SSLv2:!SSLv3
Salvei o script fornecido na resposta a esta pergunta em um arquivo chamado test-ssl-ciphers.sh e alterei o endereço IP para um endereço de loopback. Este é o resultado de ./test-ssl-ciphers.sh | grep -i "RC4"
:
Testing ECDHE-RSA-RC4-SHA...NO (sslv3 alert handshake failure)
Testing ECDHE-ECDSA-RC4-SHA...NO (sslv3 alert handshake failure)
Testing AECDH-RC4-SHA...NO (sslv3 alert handshake failure)
Testing ADH-RC4-MD5...NO (sslv3 alert handshake failure)
Testing ECDH-RSA-RC4-SHA...NO (sslv3 alert handshake failure)
Testing ECDH-ECDSA-RC4-SHA...NO (sslv3 alert handshake failure)
Testing RC4-SHA...NO (sslv3 alert handshake failure)
Testing RC4-MD5...NO (sslv3 alert handshake failure)
Testing RC4-MD5...NO (sslv3 alert handshake failure)
Testing PSK-RC4-SHA...NO (no ciphers available)
Testing KRB5-RC4-SHA...NO (no ciphers available)
Testing KRB5-RC4-MD5...NO (no ciphers available)
Testing EXP-ADH-RC4-MD5...NO (sslv3 alert handshake failure)
Testing EXP-RC4-MD5...NO (sslv3 alert handshake failure)
Testing EXP-RC4-MD5...NO (sslv3 alert handshake failure)
Testing EXP-KRB5-RC4-SHA...NO (no ciphers available)
Testing EXP-KRB5-RC4-MD5...NO (no ciphers available)
Cada uma dessas linhas contém "NÃO", o que, de acordo com o script, significa que o servidor não suporta a combinação de cifras especificada.
Além disso, o comando grep -i -r "RC4" /etc/httpd
fornece apenas o arquivo ssl.conf mencionado acima.
Além disso, a execução openssl ciphers -V
no meu conjunto de cifras não mostra nenhuma cifra RC4, o que faz sentido, dada a sequência de configuração.
Estou, portanto, de alguma forma perdida, por que os sites de verificação SSL estão me dizendo que "o servidor aceita RC4". Eles até listam as seguintes cifras como sendo aceitas:
TLS_RSA_WITH_RC4_128_MD5
TLS_RSA_WITH_RC4_128_SHA
TLS_ECDHE_RSA_WITH_RC4_128_SHA
Alguém tem uma explicação possível? O que estou fazendo de errado? Talvez haja outro lugar em que esse suporte ao RC4 ou "aceitação" seja configurado?
Obrigado.
[ EDIT ] Usando um CentOS 6.6 em uma máquina virtual em casa, executei o script novamente no meu VPS usando seu nome de domínio em vez do endereço de loopback. Essa configuração implica que a lista de cifras é fornecida pela instância openssl na VM: Eu ainda não tenho o RC4 entre as cifras que produzem YES.