
Preciso desabilitar as cifras CBC específicas do SSLv3 como uma solução temporária para a vulnerabilidade POODLE, pois há aplicativos legados que precisam usar SSLv3. Depois de consultar a documentação do OPENSSL, parece que existem cifras compartilhadas entre SSLv3 e TLSV1, como:
- SSL_DHE_RSA_WITH_DES_CBC_SHA
- DHE-RSA-DES-CBC-SHA
- TLS_DHE_RSA_WITH_DES_CBC_SHA
- DHE-RSA-DES-CBC-SHA
Minha pergunta é: existe uma maneira de desativar, por exemplo,DHE-RSA-DES-CBC-SHAespecificamente para SSLv3 e esta ação afetará o TLSv1?
Estou usando nginx, Varnish e Apache com OPENSSL
Responder1
Esta configuração deve ser feita no seu servidor web. OpenSSL só permite especificar cifras programaticamente, como dito nesteResposta SE.
Como você disse que está usando Apache e nginx (web cache Varnish não suporta SSL), encontrei essas páginas falando sobre o mesmo assunto, embora sejam direcionadas ao BEAST:
- Configurando Apache-Nginx e OpenSSL
- Fortalecendo os pacotes de criptografia OpenSSL do seu servidor Web
Este é sobre oRescisão SSLque permite que o verniz armazene em cache seu conteúdo:
PS muito importante:
PS1 – Não esqueça de usarHSTS
PS2 - Sempre defina o sinalizador "Seguro" nos cookies gerados dentro de conexões criptografadas. Esquecer isso é uma maneira muito fácil de vazar informações para invasores.
Responder2
A resposta canônica éhttps://security.stackexchange.com/questions/70719/ssl3-poodle-vulnerabilitye prefere excluirprotocoloSSLv3, não cifras.
Preliminarmente, os dois conjuntos de cifras distintos que você nomeia usam DES original, renomeadoDES único, e sãoinseguro em TODAS as versões do protocolo. O DES original foi substituído e retirado há uma década. (Mais exatamente, o FIPS46-3 foi substituído pelo FIPS197 AES em 2001, depois retirado em 2005, e apenas o DEA triplo, NÃO o DEA único, foi republicado como SP800-67 em 2004 como aprovado, mas não padrão.) Eles são classificados como BAIXO na configuração de cifra do openssl, e junto com EXPORT (ainda menos seguro) e eNULL (totalmente inseguro) devenuncaser configurado, a menos que você tenha que lidar com um sistema seriamente obsoleto que não pode ser atualizado, substituído ou front-end, como talvez um dos mais antigos módulos de pouso em Marte.
Para sua pergunta, não existem realmente cifras CBC específicas para SSLv3, embora existamnão-SSLv3. No openssl, a configuração de conjuntos de criptografia e protocolos permitidos é separada e quase independente; AFAICS as únicas restrições são que as cifras que usam os novos recursos TLSv1.2 (criptografia autenticada GCM ou hashes SHA-2) não podem ser escolhidas em nenhum protocolo mais antigo, e algumas cifras usadas no SSLv2, mas não atribuídas a códigos SSLv3+ porque já eram inseguras em 1996 não pode ser usado em SSL3+. Atéde acordo com os padrões, as únicas diferenças para cifrasentre SSL3 e TLS1 ou 1.1 são:
as cifras EXPORT de 40 bits foram oficialmente excluídas em 1.1 - mas o openssl ainda as suporta em 1.1 e 1.2 como uma extensão. Mas eles eram e são inseguros e você não deve usá-los, a menos que viaje no tempo de volta à década de 1990 e esteja sujeito às restrições legais em vigor.algunslugares então.
a troca de chaves Fortezza adicionada para apaziguar o governo dos EUA durante o período "a criptografia é uma arma", e nunca usada por ninguém, exceto talvez pela NSA, foi excluída pelo TLS1. Não é implementado pelo openssl emqualquerprotocolo.
o primeiro lote de cifras ECC emhttps://www.rfc-editor.org/rfc/rfc4492aplicam-se oficialmente apenas ao TLS1+ porque dependem de extensões no ClientHello ehttps://www.rfc-editor.org/rfc/rfc3546para extensões não pôde modificar SSL3, mas openssl >=1.0.0 (ou algum 0.9.8 se ajustado) as implementa em SSL3 tratando as extensões como padrão para "sem restrição" - mas somente se o par concordar, quais pares exceto o openssl recente deliberadamente nobre, provavelmente não o fará. Isto é oúnica diferença de cifra possivelmente útil.Supondo um certificado e chave privada RSA, você poderia usar ECDHE-RSA e esperar que funcione apenas em TLS1 +.
É por isso que o openssl ciphers -v [$cipherstring]
utilitário de linha de comando mostra SSLv3 como a “versão” para a maioria das cifras; significa SSLv3 E ACIMA.
TL-DR:SE seus clientes somente SSL3 não negociam cifras ECC (e a maioria dos clientes muito antigos provavelmente não o fazem, embora os mais novos possam) E TODOS os seus clientes TLS1 +FAZER(o que é muito menos certo) e assumindo o caso comum de um certificado e chave privada RSA, você pode ativar ECDHE-RSA-(3DES ou AES)-CBC, mas desativar DHE-RSA-anything-CBC e RSA-anything-CBC. Isso também oferece Perfect Forward Secrecy.
Se desejar, você também pode ativar o RC4 para todos os SSL3+, com PFS ou não, mas também há preocupações:
- https://security.stackexchange.com/questions/32497/tls-rc4-or-not-rc4
- https://crypto.stackexchange.com/questions/10955/qual-stream-cipher-can-we-replace-the-rc4-in-the-ssl/
- http://blogs.technet.com/b/srd/archive/2013/11/12/security-advisory-2868725-recommendation-to-disable-rc4.aspx
Seus "aplicativos legados" são da Web ou de outra coisa? Se a web não conseguir um navegador decente? Se um aplicativo personalizado não puder reenviar repetidamente os mesmos dados confidenciais APÓS os dados do invasor, ele não será "mordível" em primeiro lugar.