So aktivieren Sie TLS 1.1 und 1.2 mit OpenSSL und Apache

33

Angesichts einer wachsenden Anzahl von Sicherheitsproblemen, wie dem kürzlich angekündigten Browser-Exploit gegen SSL / TLS (BEAST), war ich gespannt, wie wir TLS 1.1 und 1.2 mit OpenSSL und Apache aktivieren können, um sicherzustellen, dass wir nicht angreifbar sind zu solchen Bedrohungsvektoren.

John
quelle

Antworten:

25

TLS1.2 ist jetzt für Apache verfügbar. Zum Hinzufügen von TLS1.2 müssen Sie lediglich Folgendes in die Konfiguration Ihres virtuellen https-Hosts einfügen:

SSLProtocol -all +TLSv1.2

-all entfernt ein anderes SSL-Protokoll (SSL 1,2,3 TLS1)

+TLSv1.2 fügt TLS 1.2 hinzu

Für mehr Browserkompatibilität können Sie verwenden

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

Übrigens können Sie die Cipher Suite auch erweitern, indem Sie:

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$

Sie können die Sicherheit Ihrer https-Website mit einem Online-Scanner wie dem folgenden testen: https://www.ssllabs.com/ssltest/index.html

Froggiz
quelle
2
Ich bin mir nicht sicher, warum dieser Beitrag als "veraltet" markiert ist. Ich habe die empfohlene Lösung verwendet, und die Site meines Kunden wurde in den Qualsys SSL Labs von "C" auf "A" bewertet.
Michael Sobczak
Hallo, ich habe die veraltete Warnung entfernt, um Missverständnissen vorzubeugen. Sie war ein Link zur alten richtigen Antwort. Ich bin froh, dass Ihre Sicherheit erhöht wurde;)
Froggiz
In sites-available / 000-default.conf habe ich den virtuellen Host 'SSLProtocol -all + TLSv1.2' hinzugefügt und Folgendes erhalten: AH00526: Syntaxfehler in Zeile 31 von /etc/apache2/sites-enabled/000-default.conf : Ungültiger Befehl 'SSLProtocol', möglicherweise falsch geschrieben oder von einem Modul definiert, das nicht in der Serverkonfiguration enthalten ist. Aktion 'configtest' fehlgeschlagen.
Elia Weiss
Hast du mod_ssl aktiviert? (Befehl: a2enmod ssl)
Froggiz
"SSLProtocol: Illegales Protokoll 'TLSv1.2'" (OS X 10.10.5)
Michael
10

Laut dem OpenSSL-Changelog wurde die Unterstützung für TLS 1.2 zum Entwicklungszweig von OpenSSL 1.0.1 hinzugefügt, aber diese Version ist noch nicht freigegeben. Möglicherweise sind auch einige Änderungen im mod_ssl-Code erforderlich, um TLS 1.2 für Apache zu aktivieren.

Eine weitere häufig verwendete SSL / TLS-Bibliothek ist NSS . es wird von einem weniger bekannten Apache-Modul mod_nss verwendet ; Leider unterstützen aktuelle NSS-Versionen auch TLS 1.2 nicht.

Eine weitere SSL / TLS-Bibliothek ist GnuTLS . Sie gibt vor, TLS 1.2 bereits in der aktuellen Version zu unterstützen. Es gibt ein Apache-Modul, das GnuTLS verwendet: mod_gnutls , das ebenfalls behauptet, TLS 1.2 zu unterstützen. Dieses Modul scheint jedoch ziemlich neu zu sein und ist möglicherweise nicht sehr stabil. Ich habe nie versucht, es zu benutzen.

Sergey Vlasov
quelle
1
@ Sergey, danke für die Links und die Informationen. Ich bin immer noch traurig, dass wir diese Standards in Anbetracht ihres Alters nicht anwenden können. Ich finde es seltsam, dass wir Verteidiger unserer Systeme und unserer Netzwerke sein müssen, aber wir können nicht die Tools verwenden, die zur Verbesserung unserer Sicherheitslage beitragen. Es scheint auch, dass die Leute im Webbrowser eine Möglichkeit haben, die Unterstützung dieser Standards zusätzlich zu den Servern wie Apache und möglicherweise IIS zu ermöglichen.
John
2
Ist diese Antwort ein Jahr später noch korrekt?
Ben Walther
2
@BenWalther OpenSSL 1.0.1 wurde im März 2012 mit TLS 1.2-Unterstützung veröffentlicht. Die aktuellste Version ist 1.0.1c. Ich bin mir nicht sicher, wie viel der Rest des Beitrags noch gültig ist.
Burhan Ali
6

Sie können nicht, OpenSSL bietet noch kein Release für TLS 1.1 an.

Ein einschlägiger Kommentar zu /. für diese Ausgabe:

Erklären Sie den ungewaschenen Massen bitte, wie Sie die TLS 1.1- und 1.2-Unterstützung in einer Welt implementieren würden, in der die dominierende Bibliothek OpenSSL noch keines der Protokolle in ihren stabilen Releases unterstützt? Natürlich können Sie GnuTLS und mod_gnutls verwenden, und ich habe es ausprobiert, aber es hat keinen Sinn gemacht, da kein Browser außer Opera dies unterstützte und es einige seltsame Pannen im Modul gab. IE 8/9 sollte sie unter Vista und 7 unterstützen, konnte jedoch nicht auf die von mod_gnutls bereitgestellte Site zugreifen, als 1.1 und 1.2 auf der Clientseite aktiviert waren. Ich habe es gestern aus Neugier erneut versucht und jetzt erstickt sogar Opera 11.51 unter TLS 1.1 und 1.2. Also da. Nichts unterstützt wirklich die Protokolle. Muss auf OpenSSL 1.0.1 für TLS 1.1 warten und niemand weiß, wann das die Repos treffen wird.

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

Steve-o
quelle
1
@ Steve-o, danke für die Information. Dies ist etwas enttäuschend, dass TLS 1.1 seit April 2006 und TLS 1.2 seit August 2008 mit Updates im März 2011 verfügbar sind und wir immer noch nicht in der Lage sind, sie zu verwenden.
John
4

Adam Langley, ein Google Chrome-Ingenieur, weist darauf hin, dass TLS 1.1 dieses Problem aufgrund eines Implementierungsproblems mit SSLv3, das jeder umgehen muss, nicht gelöst hätte: Browser müssen auf SSLv3 downgraden, um fehlerhafte Server zu unterstützen, und ein Angreifer kann dies initiieren downgrade.

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

cjc
quelle
3

Gnu_tls funktioniert wie ein Zauber und implementiert auch SNI (Server Name Identification), was beim virtuellen Hosting sehr nützlich ist.

Kein Problem auch bin-Pakete für mod_gnutls in Linux-Distributionen zu finden, ich benutze es seit 2 Jahren und keine Probleme, es ist auch performanter als openssl imho.

Das Problem ist aber auch, dass die meisten Browser tls 1.1 oder 1.2 nicht unterstützen. Bitte beginnen Sie, die Idee, Browser regelmäßig für andere zu aktualisieren, zu verbreiten.

Rastrano
quelle
@ Rastrano - hast du irgendwelche Vorschläge oder Links, wie man das umsetzt? Danke für die Info und es ist schade, dass "moderne" Browser es noch nicht unterstützen.
John