Perché il protocollo TLS non funziona senza le crittografie SSLv3?

32

Durante la disattivazione di SSLv3 dai nostri file ssl.conf per superare la vulnerabilità di Barboncino, ho disabilitato anche i cifrari SSLv3 utilizzando !SSLv3 . Con le crittografie disabilitate, non siamo stati in grado di accedere al sito Web tramite Firefox e IE. Quello che segue è il messaggio di errore di Firefox:

An error occurred during a connection to xxxx.example.com.
Cannot communicate securely with peer: no common encryption algorithm(s).
(Error code: ssl_error_no_cypher_overlap)

Quindi siamo tornati indietro e abbiamo abilitato la crittografia SSLv3 e tutto ha funzionato correttamente. Al momento, il protocollo SSLv3 è disabilitato, ma i cifrari SSLv3 sono abilitati.

  • Sto assumendo correttamente che abbiamo ottenuto l'errore con uno dei browser perché i codici TLS non erano disponibili nel browser?
  • È possibile che il protocollo utilizzato sia TLSv3, ma le cifre sono di SSLv3?

SSLProtocol all -SSLv2 -SSLv3
#SSLProtocol -all +SSLv3
#   SSL Cipher Suite:
# List the ciphers that the client is permitted to negotiate.
# See the mod_ssl documentation for a complete list.
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:!MEDIUM:!LOW

Possiamo aggiornare i browser nel nostro ufficio, ma non possiamo farlo sui computer dei nostri clienti. Il protocollo SSLv3 è disabilitato, ma con le crittografie abilitate all'impostazione consigliata? In altre parole, stiamo bene con la connessione tramite TLS con crittografie SSLv3?

    
posta Sree 16.10.2014 - 06:11
fonte

3 risposte

31

Presumo dall'impostazione ssl.conf che stai utilizzando il modulo mod_ssl dal server web Apache. Questo modulo si basa su OpenSSL per fornire il motore di crittografia.

Dalla documentazione su OpenSSL , si afferma:

Protocol version: SSLv2, SSLv3, TLSv1.2. The TLSv1.0 ciphers are flagged with SSLv3. No new ciphers were added by TLSv1.1

Puoi confermare quanto sopra eseguendo il seguente comando:

$ openssl ciphers -v 'TLSv1' | sort
ADH-AES128-SHA          SSLv3 Kx=DH       Au=None Enc=AES(128)  Mac=SHA1
ADH-AES256-SHA          SSLv3 Kx=DH       Au=None Enc=AES(256)  Mac=SHA1
ADH-CAMELLIA128-SHA     SSLv3 Kx=DH       Au=None Enc=Camellia(128) Mac=SHA1
ADH-CAMELLIA256-SHA     SSLv3 Kx=DH       Au=None Enc=Camellia(256) Mac=SHA1
...

Ciò significa che se il tuo file di configurazione esclude ciphersuite SSLv3, stai rimuovendo anche il supporto per TLSv1.0! Questo ti lascia con ciphersuite TLSv1.2 solo dal momento che anche il supporto per SSLv2 è stato rimosso:

$ openssl ciphers -v 'ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:!MEDIUM:!LOW:!SSLv3' | sort
AES128-GCM-SHA256       TLSv1.2 Kx=RSA      Au=RSA  Enc=AESGCM(128) Mac=AEAD
AES128-SHA256           TLSv1.2 Kx=RSA      Au=RSA  Enc=AES(128)  Mac=SHA256
AES256-GCM-SHA384       TLSv1.2 Kx=RSA      Au=RSA  Enc=AESGCM(256) Mac=AEAD
AES256-SHA256           TLSv1.2 Kx=RSA      Au=RSA  Enc=AES(256)  Mac=SHA256
...

Da quanto sopra, non è difficile capire perché dovresti NON rimuovere SSLv3 dalla ciphersuite. La disabilitazione del protocollo SSLv3 è più che sufficiente per proteggere i client dalla vulnerabilità di POODLE.

Il messaggio di errore che stai riscontrando è probabile perché stai utilizzando browser più vecchi come Firefox < 27.0 o Internet Explorer < 11.0 in quanto queste versioni non supportano TLSv1.2 per impostazione predefinita.

    
risposta data 16.10.2014 - 08:50
fonte
7

POODLE è un problema di protocollo, non un problema di cifratura. (In effetti, funziona sia con AES che con DES, quindi puoi vedere che è indipendente dal codice utilizzato). Disabilitare i cifrari SSLv3 non è necessario (e, come hai scoperto, probabilmente non è desiderabile). La disabilitazione del solo protocollo è sufficiente per proteggere contro POODLE.

    
risposta data 16.10.2014 - 06:17
fonte
4

Ho scritto un articolo su come ottenere un A + sul Test SSL Qualys e contiene i dettagli delle configurazioni SSL favorevoli:

ssl_ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS;

Questa è una configurazione di NginX, quindi potrebbe essere necessario modificare leggermente il formato poiché sembra che tu stia utilizzando Apache. Questo può essere implementato come un insieme più ampio di modifiche di configurazione per rafforzare la configurazione SSL.

fonte: link

    
risposta data 16.10.2014 - 09:06
fonte

Leggi altre domande sui tag