Removendo cifras CBC específicas para SSLv3

Removendo cifras CBC específicas para SSLv3

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:

  1. Configurando Apache-Nginx e OpenSSL
  2. 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:

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.

informação relacionada