Ativando pacotes de criptografia de exportação no Apache / OpenSSL

3

Gostaria de ativar os pacotes de criptografia de exportação no Apache com o objetivo de testar algumas vulnerabilidades antigas. Eu não fui bem-sucedido até agora e apreciaria muito alguma ajuda.

Minha configuração é a seguinte:

Apache and mod_ssl 2.2.15
OpenSSL 1.0.1a

Até onde sei, as versões acima são antigas o suficiente para "suportar" esses conjuntos de criptografia mais antigos.

Aqui estão as linhas relevantes de /etc/httpd/conf.d/ssl.conf :

SSLprotocol all

SSLCipherSuite DEFAULT:+EXP

Acredito no que precede é tudo o que é necessário para habilitar os pacotes de criptografia de exportação, no entanto, executar o script nmap ssl-enum-ciphers.se não mostra nenhum conjunto de criptografia EXP. Alterar o SSLCipherSuite para algo como "LOW" tem efeito. Eu reiniciei o serviço httpd depois de fazer as alterações.

Também confirmei isso executando openssl s_client -connect 127.0.0.1:443 -cipher EXPORT , ao qual recebo uma falha de handshake de% sslv3 que realmente sugere que os conjuntos de cifras de exportação não foram ativados.

O que estou perdendo aqui?

    
por mekadir 01.06.2016 / 00:03

1 resposta

2

Além de: a lista de códigos-chave DEFAULT no upstream 1.0.1 inclui EXPORT antes de m (março de 2015); em s (março de 2016) eles foram removidos da compilação (não apenas da lista padrão), juntamente com LOW, que continha apenas DES único. Você está construindo a partir da fonte ou usando a compilação ou o pacote de outra pessoa? Um construtor ou empacotador pode alterar o padrão upstream. Além disso, as distribuições baseadas em RedHat e Debian, pelo menos (e talvez outras), remendam as correções de segurança sem alterar a versão interna, portanto, com esses pacotes openssl version realmente não informam o que você está executando; você precisa ver a versão do pacote , algo como openssl-1.0.1e-NN.elN ou openssl-1.0.1e-N+debN .

Usar + em uma criptografia OpenSSL não altera o conteúdo da lista de cifras, ela apenas altera a ordem movendo alguns ciphersuites para o end . Por exemplo, +RC4 significa que as suítes RC4 que já estão na lista devem ser colocadas no final da lista, onde elas podem ter menos probabilidade de serem selecionadas. A ordem geralmente é importante para um cliente, uma vez que a preferência do cliente normalmente controla qual ciphersuite é escolhido dentre aqueles possíveis; para o servidor, só importa se o servidor estiver configurado para substituir a preferência do cliente e usar a preferência do servidor.

Você deve especificar DEFAULT:EXPORT:!aNULL (você pode abreviar DEFAULT:EXP:!aNULL ) ou alternativamente ALL:!aNULL . Você deve usar !aNULL porque DEFAULT exclui conjuntos de não-autenticação anônimos, mas EXPORT (e da mesma forma LOW MEDIUM HIGH ) ou ALL os inclui, e especialmente para a Web (HTTPS) eles não devem ser usados .

Você pode usar a linha de comando openssl ciphers [-v] $string para ver quais cifras estão ativadas em sua construção por uma determinada string. O formato padrão é empacotado em uma linha e difícil de ler, a menos que você o canalize através de algo como tr : '\n' ; (IMO melhor) -v coloca cada cifra em uma linha separada e adiciona detalhes que às vezes são úteis (e se não são fáceis de ignorar).

    
por 01.06.2016 / 07:26