Jak włączyć TLS 1.1 i 1.2 z OpenSSL i Apache

33

W świetle rosnącej liczby problemów związanych z bezpieczeństwem, takich jak nowo ogłoszony przeglądarka wykorzystująca protokół SSL / TLS (BEAST), byłem ciekawy, jak możemy włączyć TLS 1.1 i 1.2 z OpenSSL i Apache, aby upewnić się, że nie będziemy podatni na ataki do takich wektorów zagrożeń.

Jan
źródło

Odpowiedzi:

25

TLS1.2 jest teraz dostępny dla Apache, aby dodać TLS 1.2, wystarczy dodać w konfiguracji wirtualnego hosta https:

SSLProtocol -all +TLSv1.2

-all usuwa inny protokół ssl (SSL 1,2,3 TLS1)

+TLSv1.2 dodaje TLS 1.2

dla większej kompatybilności przeglądarki możesz użyć

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

przy okazji, możesz także zwiększyć pakiet Cipher, używając:

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$

Możesz przetestować bezpieczeństwo swojej witryny https za pomocą skanera internetowego, takiego jak: https://www.ssllabs.com/ssltest/index.html

Froggiz
źródło
2
Nie jestem pewien, dlaczego ten post jest oznaczony jako „nieaktualny”. Użyłem zalecanego rozwiązania, a witryna mojego klienta zmieniła ocenę z „C” w Qualsys SSL Labs na „A”.
Michael Sobczak
Cześć, usunąłem nieaktualne ostrzeżenie, aby uniknąć nieporozumień, był to link do starej poprawnej odpowiedzi. Cieszę się, że twoje bezpieczeństwo wzrosło;)
Froggiz
W witrynach dostępnych / 000-default.conf dodałem do wirtualnego hosta „SSLProtocol -all + TLSv1.2” i otrzymałem: AH00526: Błąd składni w wierszu 31 pliku /etc/apache2/sites-enabled/000-default.conf : Niepoprawne polecenie „SSLProtocol”, być może niepoprawnie napisane lub zdefiniowane przez moduł niewprowadzony w konfiguracji serwera Działanie „configtest” nie powiodło się.
Elia Weiss
Czy włączyłeś mod_ssl? (polecenie: a2enmod ssl)
Froggiz
„SSLProtocol: Nielegalny protokół„ TLSv1.2 ”” (OS X 10.10.5)
Michael,
10

Według dziennika zmian OpenSSL obsługa TLS 1.2 została dodana do gałęzi programistycznej OpenSSL 1.0.1, ale ta wersja nie została jeszcze wydana. Prawdopodobnie pewne zmiany będą również potrzebne w kodzie mod_ssl, aby faktycznie włączyć TLS 1.2 dla Apache.

Inną powszechnie używaną biblioteką SSL / TLS jest NSS ; jest używany przez mniej znany moduł Apache mod_nss ; niestety obecne wersje NSS również nie obsługują TLS 1.2.

Jeszcze inną biblioteką SSL / TLS jest GnuTLS i udaje, że obsługuje TLS 1.2 już w bieżącej wersji. Istnieje moduł Apache wykorzystujący GnuTLS: mod_gnutls , który również twierdzi, że obsługuje TLS 1.2. Jednak ten moduł wydaje się być dość nowy i może nie być bardzo stabilny; Nigdy nie próbowałem tego użyć.

Siergiej Własow
źródło
1
@ Sergey, dziękuję za linki i informacje. Nadal jestem zasmucony, że nie jesteśmy w stanie wykorzystać tych standardów, biorąc pod uwagę ich wiek. Wydaje mi się dziwne, że musimy być obrońcami naszych systemów i sieci, ale nie możemy korzystać z narzędzi, które mogłyby poprawić nasze zabezpieczenia. Wygląda również na to, że osoby przeglądające przeglądarkę internetową mają dostęp do pomocy w obsłudze tych standardów oprócz serwerów takich jak Apache i ewentualnie IIS.
John
2
Czy rok później ta odpowiedź jest nadal aktualna?
Ben Walther
2
@BenWalther OpenSSL 1.0.1 został wydany w marcu 2012 roku z obsługą TLS 1.2. Najnowsza wersja to 1.0.1c. Nie jestem pewien, jak duża część reszty postu jest nadal aktualna.
Burhan Ali
6

Nie możesz, OpenSSL nie oferuje jeszcze wersji dla TLS 1.1.

Jeden trafny komentarz do /. w przypadku tego problemu:

Czy uprzejmie wytłumaczysz niemytym masom, jak zaimplementujesz obsługę TLS 1.1 i 1.2 w świecie, w którym dominująca biblioteka OpenSSL nie obsługuje jeszcze żadnego z protokołów w swoich stabilnych wersjach? Jasne, możesz używać GnuTLS i mod_gnutls, a ja próbowałem, ale nie było sensu, ponieważ żadna przeglądarka oprócz Opery nie obsługiwała go, a moduł zawierał dziwne usterki. IE 8/9 miały je obsługiwać w systemach Vista i 7, ale nie udało się uzyskać dostępu do strony obsługiwanej przez mod_gnutls, gdy 1.1 i 1.2 były włączone po stronie klienta. Próbowałem wczoraj od nowa z ciekawości, a teraz nawet Opera 11.51 dusi się w TLS 1.1 i 1.2. Więc tam Nic tak naprawdę nie obsługuje protokołów. Musisz poczekać na OpenSSL 1.0.1 dla TLS 1.1 i nikt nie wie, kiedy to trafi do repozytoriów.

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

Steve-o
źródło
1
@ Steve-o, dziękuję za informację. Jest to trochę rozczarowujące, że TLS 1.1 jest dostępny od kwietnia 2006 r., A TLS 1.2 został wydany od sierpnia 2008 r. Z aktualizacjami w marcu 2011 r. I nadal nie mamy możliwości ich wykorzystania.
John
4

Adam Langley, inżynier Google Chrome, zwraca uwagę, że TLS 1.1 nie rozwiązałby tego problemu z powodu problemu z implementacją protokołu SSLv3, nad którym wszyscy muszą się obejść: przeglądarki muszą przejść na wersję SSLv3, aby obsługiwać błędne serwery, a osoba atakująca może to zainicjować nachylenie.

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

cjc
źródło
3

Gnu_tls działa jak urok, a także implementuje SNI (Server Name Identification), co jest bardzo przydatne w wirtualnym hostingu ....

Nie ma problemu również znaleźć pakiety bin dla mod_gnutls w dystrybucjach Linuksa, używam go od 2 lat i nie ma problemów, jest również bardziej wydajny niż openssl imho.

Problem polega jednak na tym, że większość przeglądarek nie obsługuje tls 1.1 lub 1.2, więc zacznij rozpowszechniać pomysł regularnego uaktualniania przeglądarek dla ludzi.

rastrano
źródło
@ Rastrano - czy masz jakieś sugestie lub linki, jak to zaimplementować? Dzięki za informacje i szkoda, że ​​„nowoczesne” przeglądarki jeszcze ich nie obsługują.
Jan