Sigurna SSL/TLS konfiguracija
Postavljanje ispravnog SSL/TLS certifikata na Vaš poslužitelj, nje dovoljno za osiguravanje potpune sigurnosti. SSLLabs pružaju mogućnost besplatnog testiranja poslužitelja, a dostupno je na poveznici, gdje možete provjeriti ispravnost i kvalitetu SSL/TLS konfiguracije Vašeg poslužitelja. Ako ne želite da se Vaš rezultat pohranjuje na stranici, označite opciju Do not show the results on the boards.
Apache web poslužitelj
Početne postavke velikog broja poslužitelja, neće osigurati potpunu sigurnost iz razloga što su omogućene starije SSL-a/TLS-a, kao što su SSLv3 i TLS 1.0, koji su podložni raznim napadima. Iz tog razloga, dobra je praksa u SSL/TLS konfiguraciji Vaše domene (za Apache web poslužitelje, na Ubuntu operativnom sustavu, puna putanja do te datoteke je /etc/apache2/sites-enabled/yoursite.conf), onemogućiti ranjive protokole. To se radi unosom naredbe:
SSLProtocol -all +TLSv1.2
Ako niste sigurni koja konfiguracijska datoteka za SSL/TLS konfiguaciju, pokrenite sljedeću naredbu:
grep -i -r "SSLEngine" /etc/apache2
Forward Secrecy
Početne postavke poslužitelja podržavaju algoritme za nesigurnu razmjenu ključeva što predstavlja sigurnosnih rizik. Iz tog razloga početna konfiguracija Apache web servera ne podržava takozvani Forward Secrecy protokol.
Za razmjenu ključeva preporuča se isključivo Diffie-Hellman algoritam ili još naprednija verzija Diffie-Hellman algoritma koji koristi matematičku jednadžbu eliptične krivulje kod procesa razmjene ključeva.
Implementacijom Forward Secrecy-a, čak i u slučaju da napadač nekako dođe do Vašeg privatnog SSL/TLS ključa, on neće moći dekriptirati ranije sesije korisnika prema Vašoj domeni, što je u slučaju ne podržavanja Forward Secrecy-a moguće. Forward Secrecy generira novi ključ za svaku sesiju između korisnika i poslužitelja što bitno povećava samo sigurnost korisnika.
Za omogućavanje Forward Secrecy politike, potrenbo je dodati sljedeće naredbe u konfiguracjsku SSL/TLS konfiguacijsku datoteku Vaše domene:
SSLHonorCipherOrder on
SSLCipherSuite "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS !RC4"
SSLSessionTickets off
Otklanjanje ranjivosti Apache version disclosure
Kako Apache web poslužitelj, u HTTP odgovoru, ne bi vraćao verziju softvera i time omogućio napadaču daljnje istraživanje, potrebno je u Apache konfiguacijsku datoteku (puna putanja /etc/apache2/apache2.conf) dodati sljedeće naredbe:
ServerTokens Prod
ServerSignature Off
Završni korak
Nakon uređivanja postavki, potrebno je restartati Apache web poslužitelj naredbom:
sudo service apache2 restart
Nakon što ste uspješno uredili sve postavke te ponovo pokrenuli Apache web poslužitelj, probajte ponovo pokrenuti test na stranici SSLLabs, te provjeriti nove rezultate
Nginx web poslužitelj
Pronalazak SSL/TLS konfiguacijske datoteke:
grep -r ssl_protocol /etc/nginx
Onemogućavanje nesigurnih protokola:
ssl_protocols TLSv1.2 TLSv1.1;
Forward Secrecy
ssl_prefer_server_ciphers on;
ssl_ciphers "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS !RC4";
Završni korak
sudo service nginx restart