Impostazioni SSLCipherSuite in Apache per supportare TLS 1.0, 1.1 e 1.2


8

Ho un server web Apache 2.4.7 che esegue più nomi di dominio usando un singolo indirizzo IP. A causa della vulnerabilità di Poodle, ho aggiunto la seguente SSLCipherSuiteriga. Ha funzionato bene per un po ', ma gli utenti stanno segnalando problemi con l'accesso alla pagina in Firefox. Sfortunatamente chiedere agli utenti di cambiare browser non è un'opzione, quindi devo modificare le impostazioni per supportare TLS 1.0, 1.1 e 1.2.

Le impostazioni correnti sono:

<VirtualHost ZYX.XYZ.org:443>
DocumentRoot /var/www/ZYX.XYZ/www
ServerName ZYX.XYZ.org

<Directory "/var/www/ZYX.XYZ/">
  allow from all
  Options -Indexes
</Directory>

SSLEngine on
SSLCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:-LOW:-SSLv2:-SSLv3:-EXP:!kEDH
SSLCertificateFile /etc/apache2/ssl/XYZ.org.crt
SSLCertificateKeyFile /etc/apache2/ssl/XYZ.org.key
SSLCACertificateFile /etc/apache2/ssl/gd_bundle-g2-g1.crt
</VirtualHost>

Se guardiamo al test di Qualys , vediamo che il server supporta solo TLS 1.2.

Quali sarebbero le impostazioni appropriate per abilitare TLS 1.0, TLS 1.1 e TLS 1.2, in modo che il sito possa supportare i browser più vecchi e anche mantenere un livello decente di sicurezza?

Risposte:


13

La seguente configurazione è (o era la) la migliore configurazione secondo SSLLabs:

SSLProtocol +TLSv1.2 +TLSv1.1 +TLSv1
SSLCompression off
SSLHonorCipherOrder on
SSLCipherSuite "ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA"

Tuttavia, escluderà tutti i browser meno recenti (incluso Opera Mini!), Poiché non dispone di suite di crittografia non PFS e RC4. Puoi aggiungere quanto segue (ovviamente prima del preventivo di chiusura) per abilitare RC4, incluso un fallback (ultima voce) su RC4 senza PFS:

:ECDHE-ECDSA-RC4-SHA:ECDHE-RSA-RC4-SHA:ECDH-ECDSA-RC4-SHA:ECDH-RSA-RC4-SHA:RC4-SHA

È necessario incoraggiare gli utenti ad aggiornare al più presto. RC4 è rotto e non dovrebbe più essere utilizzato, soprattutto senza PFS.

Per ottenere voti migliori, invia anche un'intestazione HSTS (affinché funzioni, devi abilitare mod_header):

Header always set Strict-Transport-Security "max-age=63072000;"

Questa configurazione non funzionerà per Apache <2.2.26, perché non supporta la crittografia a curva ellittica.

Aggiornamento :
appena verificato, è ancora buono per A +. :) Credo che ciò richieda un certificato con SHA256, comunque.

Aggiornamento ottobre 2015 : di
recente ho trovato un altro generatore per le configurazioni SSL , fornito da Mozilla. Ordina i codici in modo che Chrome non dica che stai utilizzando una suite di codici deprecata.


3

Ho trovato questa raccomandazione su Cipherli.st :

SSLCipherSuite AES128+EECDH:AES128+EDH
SSLProtocol All -SSLv2 -SSLv3
SSLHonorCipherOrder On
Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains"
Header always set X-Frame-Options DENY
Header always set X-Content-Type-Options nosniff
# Requires Apache >= 2.4
SSLCompression off 
SSLUseStapling on 
SSLStaplingCache "shmcb:logs/stapling-cache(150000)" 

3
 SSLCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:-LOW:-SSLv2:-SSLv3:-EXP:!kEDH
                                                           ^^^^^^^^

La disabilitazione delle suite di crittografia SSLv3 disabilita tutte le suite di crittografia introdotte con SSL3.0. Poiché queste suite di crittografia vengono utilizzate anche con versioni SSL successive (TLS1.0 +) e le nuove suite di crittografia sono state principalmente introdotte con TLS1.2, questa impostazione rende TLS1.0 e TLS1.1 non disponibili a causa della mancata crittografia condivisa. Pertanto, il protocollo è effettivamente limitato a TLS1.2.

Se chiamassi openssl ciphers -V <cipher>con la tua stringa di cifratura, vedresti che tutte le cifrature disponibili richiedono TLS1.2.

Ad esempio: openssl ciphers -V TLSv1.2.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.