Come abilitare TLS 1.1 e 1.2 con OpenSSL e Apache


33

Alla luce di un numero crescente di problemi di sicurezza, come il browser Exploit Against SSL / TLS (BEAST) appena annunciato, ero curioso di sapere come potremmo abilitare TLS 1.1 e 1.2 con OpenSSL e Apache per garantire che non saremo vulnerabili a tali vettori di minacce.

Risposte:


25

TLS1.2 è ora disponibile per apache, per aggiungere TLSs1.2 è sufficiente aggiungere nella configurazione dell'host virtuale https:

SSLProtocol -all +TLSv1.2

-all sta rimuovendo altri protocolli SSL (SSL 1,2,3 TLS1)

+TLSv1.2 sta aggiungendo TLS 1.2

per una maggiore compatibilità del browser è possibile utilizzare

SSLProtocol -all +TLSv1 +TLSv1.1 +TLSv1.2

tra l'altro puoi aumentare anche la suite Cipher usando:

SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:ECDHE-RSA-AES128-SHA:DHE-RSA-AES128-GCM-SHA256:AES256+EDH:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GC$

Puoi testare la sicurezza del tuo sito Web https con uno scanner online come: https://www.ssllabs.com/ssltest/index.html


2
Non sono sicuro del motivo per cui questo post è contrassegnato come "obsoleto". Ho usato la soluzione consigliata e il sito del mio cliente è passato da una valutazione "C" sui laboratori SSL Qualsys a una "A".
Michael Sobczak,

Ciao, ho rimosso un avviso obsoleto per evitare malintesi, era il collegamento alla vecchia risposta corretta. Sono felice che la tua sicurezza sia aumentata;)
Froggiz,

In siti disponibili / 000-default.conf ho aggiunto all'host virtuale "SSLProtocol -all + TLSv1.2" e ottenuto: AH00526: errore di sintassi sulla riga 31 di /etc/apache2/sites-enabled/000-default.conf : Comando "SSLProtocol" non valido, forse errato o definito da un modulo non incluso nella configurazione del server Azione "configtest" non riuscita.
Elia Weiss,

Hai abilitato mod_ssl? (comando: a2enmod ssl)
Froggiz,

"Protocollo SSL: protocollo illegale 'TLSv1.2'" (OS X 10.10.5)
Michael


10

Secondo il log delle modifiche di OpenSSL , il supporto per TLS 1.2 è stato aggiunto al ramo di sviluppo di OpenSSL 1.0.1, ma questa versione non è ancora stata rilasciata. Probabilmente saranno necessarie anche alcune modifiche nel codice mod_ssl per abilitare effettivamente TLS 1.2 per Apache.

Un'altra libreria SSL / TLS comunemente usata è NSS ; è utilizzato da un modulo Apache meno noto mod_nss ; sfortunatamente, le attuali versioni di NSS non supportano TLS 1.2.

Un'altra libreria SSL / TLS è GnuTLS e finge di supportare TLS 1.2 già nella sua versione attuale. Esiste un modulo Apache che utilizza GnuTLS: mod_gnutls , che afferma anche di supportare TLS 1.2. Tuttavia, questo modulo sembra essere piuttosto nuovo e potrebbe non essere molto stabile; Non ho mai provato ad usarlo.


1
@ Sergey, grazie per i collegamenti e le informazioni. Sono ancora rattristato dal fatto che non siamo in grado di utilizzare questi standard considerando la loro età. Mi sembra strano che dobbiamo essere difensori dei nostri sistemi e delle nostre reti, tuttavia non possiamo utilizzare gli strumenti che potrebbero aiutare a migliorare le nostre posizioni di sicurezza. Inoltre, sembra che la gente del browser web abbia un modo per aiutare a abilitare il supporto per questi standard oltre a quelli del server come Apache e possibilmente IIS.
Giovanni,

2
Questa risposta è ancora accurata, un anno dopo?
Ben Walther,

2
@BenWalther OpenSSL 1.0.1 è stato rilasciato a marzo 2012 con supporto TLS 1.2. L'ultima versione al momento è 1.0.1c. Non sono sicuro di quanto del resto del post sia ancora valido.
Burhan Ali,

6

Non è possibile, OpenSSL non offre ancora una versione per TLS 1.1.

Un commento pertinente su /. per questo problema:

Spiegherai gentilmente alle masse non lavate come implementeresti il ​​supporto TLS 1.1 e 1.2 in un mondo in cui la libreria dominante OpenSSL non supporta ancora nessuno dei protocolli nelle sue versioni stabili? Certo, puoi usare GnuTLS e mod_gnutls, e l'ho provato, ma non aveva senso, dato che nessun browser a parte Opera lo supportava e c'erano alcuni strani problemi nel modulo. Si supponeva che IE 8/9 li supportasse con Vista e 7, ma non riusciva ad accedere al sito servito da mod_gnutls quando 1.1 e 1.2 erano abilitati sul lato client. L'ho provato di nuovo ieri per curiosità, e ora anche Opera 11.51 soffoca su TLS 1.1 e 1.2. Quindi lì. Niente supporta veramente i protocolli. Deve attendere OpenSSL 1.0.1 per TLS 1.1 e nessuno sa quando colpirà i repository.

http://it.slashdot.org/comments.pl?sid=2439924&cid=37477890


1
@ Steve-o, grazie per l'informazione. È un po 'deludente che TLS 1.1 sia uscito dall'aprile 2006 e TLS 1.2 sia uscito dall'agosto 2008 con aggiornamenti a marzo 2011 e non abbiamo ancora la possibilità di utilizzarli.
Giovanni,

4

Adam Langley, un ingegnere di Google Chrome, sottolinea che TLS 1.1 non avrebbe risolto questo problema a causa di un problema di implementazione con SSLv3 che tutti devono aggirare: i browser devono eseguire il downgrade a SSLv3 per supportare i server con errori e un utente malintenzionato può iniziare questo downgrade.

http://www.imperialviolet.org/2011/09/23/chromeandbeast.html


3

Gnu_tls funziona come un incantesimo e implementa anche SNI (Server Name Identification), molto utile nell'hosting virtuale ....

Nessun problema anche a trovare pacchetti bin per mod_gnutls nelle distribuzioni di Linux, lo uso da 2 anni e nessun problema, è anche più performante di openssl imho.

Ma il problema è anche che la maggior parte dei browser non supporta tls 1.1 o 1.2, quindi si prega di iniziare a diffondere l'idea di aggiornare regolarmente i browser alle persone.


@ Rastrano - hai qualche suggerimento o link su come implementarlo? Grazie per le informazioni ed è un peccato che i browser "moderni" non lo supportino ancora.
Giovanni
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.