Por que o Firefox 33 não usa o GCM em nosso servidor da web?

3

Nós temos um servidor web (Ubuntu 12.04) com o apache2 2.2.22-1ubuntu1.7.

Do lado do cliente com o openssl:

$ echo QUIT | openssl s_client -connect OURSERVER:8080 2>/dev/null | egrep "Cipher is|Protocol"
New, TLSv1/SSLv3, Cipher is DHE-RSA-AES256-GCM-SHA384
    Protocol  : TLSv1.2
$ 

podemos nos conectar OK, mas o nosso Firefox 33 no Ubuntu 14.04 só pode conectar max com:

TLS_DHE_RSA_WITH_AES_256_CBC_SHA

Mas quando visitamos outros sites com o mesmo Firefox 33, podemos ver que ele pode usar o GCM!

Pergunta: Por que não conseguimos nos conectar com o GCM ao nosso servidor da web? Por que o Firefox não está usando o ex .: TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256?

Nossa configuração do apache se parece com isso:

SSLCipherSuite "HIGH"
SSLProtocol -ALL +TLSv1
SSLHonorCipherOrder on
    
por thequestionthequestion 21.10.2014 / 22:01

1 resposta

0

O "conjunto de criptografia" HIGH é um grupo de conjuntos de criptografia. Aparentemente, você tem uma expectativa diferente da ordem desses conjuntos de criptografia que os padrões.

Como você pode ver na seguinte saída do comando openssl ciphers , o conjunto de cifras DHE-RSA-AES256-SHA256 é o preferido sobre o conjunto de cifras GCM que você espera.

$ openssl ciphers -V HIGH | \
> grep -nC1 'DHE-RSA-AES256-SHA256\|ECDHE-RSA-AES128-GCM-SHA256' | column -t
11-  0x00,0x9F  -  DHE-RSA-AES256-GCM-SHA384      TLSv1.2  Kx=DH    Au=RSA    Enc=AESGCM(256)  Mac=AEAD
12:  0x00,0x6B  -  DHE-RSA-AES256-SHA256          TLSv1.2  Kx=DH    Au=RSA    Enc=AES(256)     Mac=SHA256
13-  0x00,0x6A  -  DHE-DSS-AES256-SHA256          TLSv1.2  Kx=DH    Au=DSS    Enc=AES(256)     Mac=SHA256
--
33-  0x00,0x8D  -  PSK-AES256-CBC-SHA             SSLv3    Kx=PSK   Au=PSK    Enc=AES(256)     Mac=SHA1
34:  0xC0,0x2F  -  ECDHE-RSA-AES128-GCM-SHA256    TLSv1.2  Kx=ECDH  Au=RSA    Enc=AESGCM(128)  Mac=AEAD
35-  0xC0,0x2B  -  ECDHE-ECDSA-AES128-GCM-SHA256  TLSv1.2  Kx=ECDH  Au=ECDSA  Enc=AESGCM(128)  Mac=AEAD

Se você quiser forçar uma ordem em particular, especifique explicitamente os conjuntos explicitamente, como em:

SSLCipherSuite "EECDH+AESGCM+AES128 EECDH+AESGCM DH+AESGCM+AES128 DH+AESGCM+AES EECDH+AES128 EECDH+AES DH+AES128 DH+AES RSA+AESGCM+AES128 RSA+AESGCM+AES RSA+AES128 RSA+AES RSA+3DES !MD5:!aNULL"

Observe que sua versão do Apache é muito antiga para oferecer suporte a conjuntos de codificação ECDH. Além disso, usando SSLProtocol -ALL +TLSv1 , você excluirá o uso de TLSv1.1 e TLSv1.2 em versões mais recentes do Apache. Sugiro usar SSLProtocol ALL -SSLv2 -SSLv3 e atualizar seu servidor da Web.

Para referência, aqui está a saída TestSSLServer que obtive para o Apache 2.22 rodando no Ubuntu 12.04 com SSLCipherSuite HIGH e SSLProtocol ALL -SSLv2 -SSLv3 :

Supported versions: TLSv1.0 TLSv1.1 TLSv1.2
Deflate compression: no
Supported cipher suites (ORDER IS NOT SIGNIFICANT):
  TLSv1.0
     RSA_WITH_3DES_EDE_CBC_SHA
     DHE_RSA_WITH_3DES_EDE_CBC_SHA
     DH_anon_WITH_3DES_EDE_CBC_SHA
     RSA_WITH_AES_128_CBC_SHA
     DHE_RSA_WITH_AES_128_CBC_SHA
     DH_anon_WITH_AES_128_CBC_SHA
     RSA_WITH_AES_256_CBC_SHA
     DHE_RSA_WITH_AES_256_CBC_SHA
     DH_anon_WITH_AES_256_CBC_SHA
     RSA_WITH_CAMELLIA_128_CBC_SHA
     DHE_RSA_WITH_CAMELLIA_128_CBC_SHA
     DH_anon_WITH_CAMELLIA_128_CBC_SHA
     RSA_WITH_CAMELLIA_256_CBC_SHA
     DHE_RSA_WITH_CAMELLIA_256_CBC_SHA
     DH_anon_WITH_CAMELLIA_256_CBC_SHA
  (TLSv1.1: idem)
  TLSv1.2
     RSA_WITH_3DES_EDE_CBC_SHA
     DHE_RSA_WITH_3DES_EDE_CBC_SHA
     DH_anon_WITH_3DES_EDE_CBC_SHA
     RSA_WITH_AES_128_CBC_SHA
     DHE_RSA_WITH_AES_128_CBC_SHA
     DH_anon_WITH_AES_128_CBC_SHA
     RSA_WITH_AES_256_CBC_SHA
     DHE_RSA_WITH_AES_256_CBC_SHA
     DH_anon_WITH_AES_256_CBC_SHA
     RSA_WITH_AES_128_CBC_SHA256
     RSA_WITH_AES_256_CBC_SHA256
     RSA_WITH_CAMELLIA_128_CBC_SHA
     DHE_RSA_WITH_CAMELLIA_128_CBC_SHA
     DH_anon_WITH_CAMELLIA_128_CBC_SHA
     DHE_RSA_WITH_AES_128_CBC_SHA256
     DHE_RSA_WITH_AES_256_CBC_SHA256
     DH_anon_WITH_AES_128_CBC_SHA256
     DH_anon_WITH_AES_256_CBC_SHA256
     RSA_WITH_CAMELLIA_256_CBC_SHA
     DHE_RSA_WITH_CAMELLIA_256_CBC_SHA
     DH_anon_WITH_CAMELLIA_256_CBC_SHA
     TLS_RSA_WITH_AES_128_GCM_SHA256
     TLS_RSA_WITH_AES_256_GCM_SHA384
     TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
     TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
     TLS_DH_anon_WITH_AES_128_GCM_SHA256
     TLS_DH_anon_WITH_AES_256_GCM_SHA384
----------------------
Server certificate(s):
  d975495633785b152215100eb449c57bee391e98: CN=ubuntu
----------------------
Minimal encryption strength:     strong encryption (96-bit or more)
Achievable encryption strength:  strong encryption (96-bit or more)
BEAST status: vulnerable
CRIME status: protected
    
por 22.10.2014 / 18:14