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.

ssl labs 

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