Como configurar globalmente clientes seguros usando o OpenSSL no Oracle Linux 5 / RHEL 5?

3

Meu local de trabalho recentemente corrigiu um de nossos servidores para solucionar a vulnerabilidade do POODLE. Desde então, os clientes mais antigos do Oracle Linux 5 (com base no RHEL 5) não podem mais se conectar com segurança ao servidor com qualquer aplicativo. Os computadores clientes usam o OpenSSL versão 0.9.8e; instalar a versão mais recente disponível do OpenSSL nesses computadores (0.9.8e-31) não faz diferença, mas forçar o cliente a usar apenas TLSv1 faz corrigir o problema.

Por exemplo, s_client gera isso:

$ openssl s_client -connect foo.bar.com:443
CONNECTED(00000003)
5529:error:140790E5:SSL routines:SSL23_WRITE:ssl handshake failure:s23_lib.c:188:

No entanto, isso funciona corretamente:

$ openssl s_client -connect foo.bar.com:443 -tls1

Da mesma forma, wget https://foo.bar.com/testFile falha, mas wget --secure-protocol=TLSv1 https://foo.bar.com/testFile funciona.

A minha principal questão é, como posso configurar globalmente o OpenSSL nestas máquinas cliente para que possam se conectar novamente sem ter que reconfigurar manualmente cada aplicativo que usamos ou podemos usar no futuro. A atualização dessas caixas para versões mais recentes do Linux não é uma opção. Pontos de bônus se você puder explicar exatamente o que está causando esse comportamento.

Obrigado!

    
por Alvin Thompson 25.10.2014 / 01:15

2 respostas

2

Primeiro, por quê? Nos documentos para s_client , afirma-se que o openssl usará por padrão um handshake que descubra o correto protocolo para você. Essa é toda a base do ataque POODLE. O problema é que, em 0.9.8, o handshake começa com SSL_V23 e, em algum ponto posterior, tentará o TLSv1. Muitos servidores não gostam quando os clientes se conectam usando SSL_V23 porque é um sinal vermelho de que o cliente está fazendo algo inseguro, daí o seu problema.

Como consertar isso? Bem, eu não encontrei nenhuma opção para o openssl.cnf que permitiria que você dissesse "Ei, por padrão, apenas use TLSv1". Em este tópico , eles parecem sugerir que isso é possível em v1.0.0 +. Após uma hora de pesquisa no Google, decidi que sua melhor opção seria recompilar o openssl e desativar o SSLv2 e o SSLv3 . Se você estiver recompilando o openssl, provavelmente será mais fácil usar 0.9.8, tentar atualizar o openssl para 1.x + em algo como o RHEL pode ser um pesadelo total.

    
por 29.10.2014 / 22:40
0

Como o RHEL 5 sofre do mesmo problema, eu apenas verifiquei o bugzilla: link

Eles se concentram bastante no Tomcat 6 e no material do JBoss, onde isso se resume a alterar algumas linhas na configuração do servidor de aplicativos.

Mas dentro desse bugzilla existe um encadeamento que leva ao problema openssl do RHEL5.

link

openssl-0.9.8e-31.el5_11 é o opensp de recompilação upstream que você precisa.

Então: IMHO você só precisa instalar esse patch e forçar seus servidores web / aplicativos a não usar protocolos inseguros.

    
por 30.10.2014 / 21:51