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.
- Wyłącz eksport szyfrów
Zajmij się zmianami konfiguracji, które wprowadzimy w 2. poniżej ( !EXPORT
pod koniec SSLCipherSuite
linii jest sposób, w jaki wyłączymy eksport pakietów szyfrów)
- Wdróż (efemeryczny) eliptyczny krzywa Diffie-Hellman (ECDHE)
W tym celu trzeba zmienić kilka ustawień w plikach konfiguracyjnych Apache - mianowicie SSLProtocol
, SSLCipherSuite
, SSLHonorCipherOrder
aby mieć „sprawdzone metody” setup. Wystarczy coś takiego:
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA
SSLHonorCipherOrder on
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ę.
3. Wygeneruj silną, unikalną grupę Diffie Hellman
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 :
Aby wygenerować niestandardowe parametry DH, użyj komendy openssl dhparam. Alternatywnie możesz dołączyć następujące standardowe 1024-bitowe parametry DH z RFC 2409, sekcja 6.2 do odpowiedniego pliku SSLCertificateFile :
(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 ,
Przed Apache 2.4.7 parametr DH jest zawsze ustawiony na 1024 bity i nie może być konfigurowany przez użytkownika. Zostało to naprawione w mod_ssl 2.4.7, że Red Hat dokonał backportacji do swojej dystrybucji RHEL 6 Apache 2.2 z httpd-2.2.15-32.el6
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 :
SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-DSS-AES128-SHA256:DHE-DSS-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA:!DHE-RSA-AES128-GCM-SHA256:!DHE-RSA-AES256-GCM-SHA384:!DHE-RSA-AES128-SHA256:!DHE-RSA-AES256-SHA:!DHE-RSA-AES128-SHA:!DHE-RSA-AES256-SHA256:!DHE-RSA-CAMELLIA128-SHA:!DHE-RSA-CAMELLIA256-SHA
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.