openssl / erro de curl: SSL23_GET_SERVER_HELLO: erro interno do alerta tlsv1

6

Encontramos problemas muito estranhos ao conectar com o openssl ou enrolar em um dos nossos servidores, a partir do Ubuntu 14.04

Execução:

openssl s_client -connect ms.icometrix.com:443

dá:

CONNECTED(00000003)
140557262718624:error:14077438:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert
internal error:s23_clnt.c:770:

Um erro semelhante ao executar:

curl https://ms.icometrix.com
curl: (35) error:14077438:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert
internal error

Saída da versão openssl (no cliente / servidor):

OpenSSL 1.0.1f 6 Jan 2014

Saída do openssl do dpkg -l openssl:

1.0.1f-1ubuntu2

O engraçado é que o problema desaparece quando se conecta com outras versões do Openssl:

  • De um mac, OpenSSL 0.9.8zd 8 de janeiro de 2015, tudo ok
  • De centos, OpenSSL 1.0.1e-fips 11 de fevereiro de 2013, tudo ok
  • Última versão estável no Ubuntu 14.04, OpenSSL 1.0.2d 9 de julho de 2015, tudo ok.

Do lado do servidor, não vemos nada de estranho. O problema começou quando desativamos o SSL3 em nossas máquinas.

Pode haver um problema com a compilação no apt-get?

Também testamos outras versões, a proposta pelo apt-cache showpkg, mas o problema continua ...

    
por cecemel 16.07.2015 / 10:30

1 resposta

4

Isso parece um problema com o suporte a ECDH entre cliente e servidor. Se você excluir todas as cifras do ECDH, ele funciona:

openssl s_client -connect ms.icometrix.com:443 -cipher 'DEFAULT:!ECDH'

Meu palpite é que o servidor critica algumas das 25 curvas ECC oferecidas pelo cliente. Os navegadores oferecem apenas algumas curvas. O OpenSSL 0.9.8 não suporta nenhum ECC e, por padrão, o RedHat / CentOS tem um histórico de desabilitar o ECC por motivos de patente. Eu não sei porque o OpenSSL 1.0.2 funciona desde que eu não tenho acesso a esta versão.

Por favor, note que dar a versão OpenSSL geralmente não é suficiente porque todas as distribuições mantêm versões mais antigas, mas adicionam patches de segurança. Em vez disso, verifique com dpkg -l openssl que fornece 1.0.1f-1ubuntu2.15 no meu sistema.

    
por Steffen Ullrich 16.07.2015 / 11:35

Tags