SSLCipherSuite - desativa a criptografia fraca, a cifra cbc e o algoritmo baseado em md5

6

Recentemente, um desenvolvedor executou uma varredura PCI com o TripWire em nosso servidor LAMP. Eles identificaram vários problemas e instruíram o seguinte para corrigir os problemas:

Problema: O Servidor SSL Suporta Criptografia Fraca para SSLv3, TLSv1,

Solução: adicione a seguinte regra ao httpd.conf

SSLCipherSuite ALL:!aNULL:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM

Problema: Servidor SSL Suporta Cifras CBC para SSLv3, TLSv1

Solução: desabilite todos os pacotes de criptografia usando cifras CBC

Problema: Servidor SSL Suporta Algoritmo MAC Fraco para SSLv3, TLSv1

Solução: desabilite todos os pacotes de criptografia usando algoritmos MAC baseados em MD5

Eu tentei pesquisar no google por um tutorial abrangente sobre como construir uma diretiva SSLCipherSuite para atender aos meus requisitos, mas não encontrei nada que eu pudesse entender. Eu vejo exemplos de diretivas SSLCipherSuite, mas eu preciso de uma explicação sobre o que cada componente da diretiva faz. Então, mesmo na diretiva SSLCipherSuite ALL:!aNULL:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM , eu não entendo por exemplo o que significa !LOW .

Alguém pode a) me dizer a diretiva SSLCipherSuite que atenderá às minhas necessidades ou b) mostrará um recurso que explica claramente cada segmento de um SSLCipherSuite e como construir um?

    
por John 02.11.2013 / 00:55

2 respostas

9

Se a única reclamação for o MAC baseado em MD5, você poderá simplesmente adicionar o elemento !MD5 ao seu conjunto de criptografia existente para atender à recomendação.

Dito isso, vejo que eles também se queixam do uso do modo CBC. Infelizmente, não há nenhum grupo de codificação CBC . A recomendação dada a você também não exclui os cipherspecs do modo CBC, pelo menos na minha versão do openSSL (1.0.1e). Isto é uma vergonha. Se você precisar que todas as cifras sejam excluídas, você poderá excluir todas as CBCs explicitamente, embora seja necessário atualizá-las conforme elas forem incluídas. Note que mesmo HIGH inclui cifras CBC.

A inclusão de ALL e RC4+RSA é redundante. Eu hesitaria em confiar em um consultor de segurança (mesmo um computadorizado) que não pode sequer construir um cipherspec bem formado que atenda às suas próprias recomendações.

O SSLCipherSuite recebe uma especificação de criptografia OpenSSL. Você pode encontrar este na documentação do openssl (link) , mas eu acho que esta documentação geralmente está fora de data. No entanto, você pode testar um executando openssl ciphers ${cipherspec} em seu servidor; a saída será uma lista de cifras separadas por : que seria permitida pela especificação fornecida ou um erro indicando que nenhuma foi permitida.

Da mesma forma, se você quiser saber o que o LOW contém, faça:

falcon@tiernyn ~ $ openssl ciphers 'LOW'
EDH-RSA-DES-CBC-SHA:EDH-DSS-DES-CBC-SHA:ADH-DES-CBC-SHA:DES-CBC-SHA:DES-CBC-MD5

!LOW significa excluir esses. +HIGH significa preferir os de alta segurança no pedido.

Se você quiser uma lista delimitada por linhas de todas as cifras que usam CBC em seu cipherspec, faça:

openssl ciphers ${cipherspec} | sed 's/:/\n/g' | grep CBC

Esses são os que você deve excluir. Você pode, no entanto, achar mais razoável para grep -v CBC e incluir apenas aqueles (basta configurá-los em uma lista : -delimited e usar isso como cipherspec).

    
por 02.11.2013 / 01:58
4

A documentação de mod_ssl explica os componentes das configurações SSLCipherSuite , aqui .

Se você quiser atender a todos esses requisitos de verificação, é necessário executar apenas o RC4 com SSLCipherSuite RC4-SHA (ou executar o TLS mais recente, que pode ou não ser prático para o sistema).

    
por 02.11.2013 / 01:46

Tags