Niedawno opublikowano nową lukę w zabezpieczeniach Diffie-Hellman, nieoficjalnie zwaną „logjam”, dla której ta strona została zebrana, sugerując sposób jej wyeliminowania:
Mamy trzy zalecenia dotyczące prawidłowego wdrożenia Diffie-Hellman dla TLS:
- Wyłącz eksport szyfrów. Chociaż współczesne przeglądarki nie obsługują już pakietów eksportowych, ataki FREAK i Logjam pozwalają atakującemu typu man-in-the-middle nakłonić przeglądarki do korzystania z kryptografii klasy eksportowej, po czym można odszyfrować połączenie TLS. Szyfry eksportowe to pozostałość po polityce z lat 90., która uniemożliwiła eksport silnych protokołów kryptograficznych ze Stanów Zjednoczonych. Żaden współczesny klient nie polega na pakiecie eksportowym i wyłączanie go ma niewielką wadę.
- Wdróż (efemeryczna) eliptyczna krzywa Diffiego-Hellmana (ECDHE). Wymiana klucza Eliffi-Curve Diffie-Hellman (ECDH) pozwala uniknąć wszystkich znanych możliwych ataków kryptoanalitycznych, a współczesne przeglądarki internetowe wolą teraz ECDHE od oryginalnego, skończonego pola, Diffie-Hellman. Algorytmy logów dyskretnych, których używaliśmy do atakowania standardowych grup Diffie-Hellmana, nie zyskują tak silnej przewagi nad obliczeniami wstępnymi, a pojedyncze serwery nie muszą generować unikalnych krzywych eliptycznych.
- Wygeneruj silną, unikalną grupę Diffie Hellman . Kilka ustalonych grup jest używanych przez miliony serwerów, co czyni je optymalnym celem do obliczeń wstępnych i potencjalnego podsłuchu. Administratorzy powinni wygenerować unikalne, 2048-bitowe lub silniejsze grupy Diffie-Hellman, używając „bezpiecznych” liczb pierwszych dla każdej witryny lub serwera.
Jakie są najlepsze praktyki, które należy podjąć, aby zabezpieczyć mój serwer zgodnie z powyższymi zaleceniami?
apache-2.2
ssl
apache-2.4
httpd
vulnerability
Christophe De Troyer
źródło
źródło
Odpowiedzi:
Z artykułu, który podłączyłeś , są trzy zalecane kroki, aby zabezpieczyć się przed tą podatnością. Zasadniczo te kroki dotyczą każdego oprogramowania, którego można używać z SSL / TLS, ale tutaj zajmiemy się konkretnymi krokami, aby zastosować je do Apache (httpd), ponieważ jest to oprogramowanie, o którym mowa.
Zajmij się zmianami konfiguracji, które wprowadzimy w 2. poniżej (
!EXPORT
pod koniecSSLCipherSuite
linii jest sposób, w jaki wyłączymy eksport pakietów szyfrów)W tym celu trzeba zmienić kilka ustawień w plikach konfiguracyjnych Apache - mianowicie
SSLProtocol
,SSLCipherSuite
,SSLHonorCipherOrder
aby mieć „sprawdzone metody” setup. Wystarczy coś takiego:Uwaga: jeśli chodzi o to, którego
SSLCipherSuite
ustawienia użyć, zawsze się to zmienia i dobrym pomysłem jest skonsultowanie się z takimi zasobami, jak ten, aby sprawdzić najnowszą zalecaną konfigurację.Aby to zrobić, możesz uruchomić
openssl dhparam -out dhparams.pem 2048
.Pamiętaj, że spowoduje to znaczne obciążenie serwera podczas generowania parametrów - zawsze możesz obejść ten potencjalny problem, generując parametry na innej maszynie i używając
scp
lub w podobny sposób, aby przenieść je na dany serwer w celu użycia.Aby użyć tych nowo wygenerowanych
dhparams
w Apache, z Dokumentacji Apache :(moje podkreślenie)
po którym następuje standardowy 1024-bitowy parametr DH. Z tego możemy wywnioskować, że parametry DH wygenerowane na zamówienie mogą być po prostu dołączone do odpowiednich danych
SSLCertificateFile
pytań.Aby to zrobić, uruchom coś podobnego do następującego:
cat /path/to/custom/dhparam >> /path/to/sslcertfile
Alternatywnie, zgodnie z podsekcją Apache artykułu, do którego pierwotnie się połączyłeś, możesz również określić niestandardowy plik dhparams, który utworzyłeś, jeśli wolisz nie zmieniać samego pliku certyfikatu, a zatem:
SSLOpenSSLConfCmd DHParameters "/path/to/dhparams.pem"
niezależnie od tego, które konfiguracje Apache są odpowiednie dla konkretnej implementacji SSL / TLS - ogólnie w
conf.d/ssl.conf
lub,conf.d/vhosts.conf
ale będzie to różnić się w zależności od konfiguracji Apache.Warto zauważyć, że zgodnie z tym linkiem ,
W Debian Wheezy zaktualizuj apache2 do wersji 2.2.22-13 + deb7u4 lub nowszej i openssl do wersji 1.0.1e-2 + deb7u17. Powyższy SSLCipherSuite nie działa idealnie, zamiast tego użyj następujących jak na tym blogu :
Powinieneś sprawdzić, czy twoja wersja Apache jest późniejsza niż te numery wersji w zależności od twojej dystrybucji, a jeśli nie - zaktualizuj ją, jeśli to możliwe.
Po wykonaniu powyższych kroków w celu zaktualizowania konfiguracji i zrestartowaniu usługi Apache w celu zastosowania zmian, należy sprawdzić, czy konfiguracja jest pożądana, uruchamiając testy na SSLLabs i w artykule dotyczącym tej szczególnej luki.
źródło
W oparciu o łatkę Winni Neessen opublikowałem poprawkę dla Apache / 2.2.22 (Debian Wheezy, być może także do użytku na Ubuntu): https://flo.sh/debian-wheezy-apache2-logjam-fix/ - thx . za opinię.
źródło
Zamiast iść złożoną trasą powyższych „hacków”, rozważ przejście na nginx jako główne oprogramowanie serwera WWW (nie tylko buforowanie lub proxy). Wydaje się, że pod względem bezpieczeństwa bardziej odpowiada obecnym standardom niż stare silniki Apache. Korzystając z repozytorium nginx, zapewnia on znacznie bardziej stabilny silnik serwera WWW niż apache.
Całkowicie się zmieniłem. Zaoszczędziło mi to wiele czasochłonnego rozwiązywania problemów dotyczących TLS, a także - w przypadku naszych konfiguracji - uwolniło wiele pamięci RAM w tym samym czasie. W rzeczywistości znalazłem zatrudnienie nginx odświeżająco proste i jednoznaczne, w porównaniu z niezliczonymi komplikacjami konfiguracyjnymi httpd / apache, do których się przyzwyczaiłem. Może to być kwestia gustu, zanim się odwróciłem, byłem biegły w httpd / apache przepisanie / config / konserwacja i było to łatwiejsze, niż się obawiałem. Dostępne są odpowiednie najnowsze informacje na temat konfiguracji nginx dostępne online, a baza użytkowników jest ogromna, bardzo aktywna i przyjazna dla wsparcia. https://news.netcraft.com/wp-content/uploads/2018/11/wpid-wss-top-1m-share.png
źródło