Remover conjuntos de criptografia antigos

Remover conjuntos de criptografia antigos

Eu gerencio alguns sites e um deles obteve uma classificação de segurança baixa (no scorecard sec). Tenho um servidor gerenciado, então pedi ajuda ao pessoal de TI, mas também gostaria de entender um pouco mais esse assunto.

O problema é que existem antigos conjuntos de criptografia TLS1.0 e TLS1.1, como:

TLS_RSA_WITH_IDEA_CBC_SHA (0x0007)
TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA
TLS_RSA_WITH_RC4_128_MD5
TLS_RSA_WITH_3DES_EDE_CBC_SHA

Meu primeiro pensamento é que eles devem estar localizados nos arquivos de configuração do OpenSSL. Mas depois de alguns tutoriais, acho que se refere à configuração do Apache. Os httpd.conf(e hosts virtuais) não possuem conjuntos de criptografia definidos explicitamente. Mas o incluído httpd-ssl.conftem alguma coisa.

SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
SSLHonorCipherOrder on
 SSLCipherSuite  ECDH+AESGCM:ECDH+CHACHA20:ECDH+AES256:!LOW:!MEDIUM:!3DES:!aNULL:!eNULL:!ADH:!DSS!EXP:!MD5:!PSK:!RC4:!SRP

O que não entendo atualmente: este é o lugar certo? Talvez não ou por que isso é diferente.

Eu li em ciphersuite.info que os primeiros acima são nomes IANA (?) E existem nomes OpenSSL. Mas o que é, ECDH+AESGCMpor exemplo?

Pode precisar de alguma orientação sobre onde procurar em seguida. Não quero copiar e colar informações, mas entenda um pouco mais sobre esse assunto. No entanto, não sou o principal responsável pela segurança ou TI, então prefiro não ler um livro de 300 páginas :-/

Responder1

Esta SSLCipherSuiteé a diretiva correta para definir os algoritmos criptográficos que devem ser usados. No TLS 1.2, espera-se que você defina uma combinação de quatro algoritmos (chamados de conjunto de criptografia):

  • Um algoritmo de troca de chaves usado para configurar um segredo compartilhado entre cliente e servidor. A partir do segredo, ambas as partes podem derivar uma chave para criptografia simétrica.
  • Um algoritmo de assinatura para troca de chaves.
  • Um algoritmo de chave simétrica para realmente criptografar e descriptografar os dados que devem ser transmitidos.
  • Um algoritmo hash que é usado para garantir a integridade das mensagens (através de um código de autenticação de mensagens) ou construir um gerador de números pseudoaleatórios criptograficamente seguro.

Cada conjunto de criptografia possui um identificador exclusivoregistrado através da IANAe começando com TLS_. Por exemplo, existe TLS_DHE_RSA_WITH_AES_128_GCM_SHA256o que significa:

  • O algoritmo de troca de chaves é DHE, ou seja, troca de chaves Diffie-Hellman com chaves efêmeras.
  • O algoritmo de assinatura é RSA.
  • O algoritmo de criptografia simétrica é AES com chaves de 128 bits no modo GCM.
  • O algoritmo hash é SHA-256.

O OpenSSL, como provedor de uma implementação concreta de TLS, permite que você escolha conjuntos de criptografia IANA por meio de umformato personalizado chamado “lista de cifras”. Este formato suporta regras de seleção complexas, como ECDH+AESGCMtodas as suítes de criptografia contendo os algoritmos ECDH(para troca de chaves) e AESGCM(para criptografia simétrica). Você pode verificar os conjuntos de criptografia exatos obtidos com o comando openssl ciphers "ECDH+AESGCM". No meu caso, a lista inclui, por exemplo, o conjunto de cifras TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384(ou como o OpenSSL o chama, ECDHE-ECDSA-AES128-GCM-SHA256).

A corda ECDH+AESGCMem si énãoum conjunto de criptografia. É uma regra de seleção específica do OpenSSL para conjuntos de criptografia.

Na prática, eu usaria uma lista concreta de conjuntos de criptografia seguros, por exemplo, orecomendações da Mozilla. Com as regras de seleção do OpenSSL, existe o risco de você incluir conjuntos de criptografia que você realmente não pretendia (mesmo que você sempre possa verificar o resultado com o openssl cipherscomando mencionado acima).

informação relacionada