Google Chrome HSTS preload

Google Chrome HSTSVi rekommenderar samtliga användare av SSL/TLS att nyttja den säkerhetshöjande funktionen HSTS eller Strict Transport Security som det också kallas. HSTS berättar för webbläsaren att domänen använder sig av https samt försvårar nedgraderingsattacker såsom sslstrip.

Google Chrome har även en lista med domäner som läses in i förväg och gör då att besökaren alltid kommer att välja den krypterade versionen av Er hemsida.

Observera att följande http-header måste skickas med (läs här hur ni lägger till den):

Strict-Transport-Security: max-age=10886400; includeSubDomains; preload

Denna header säger bl.a. att ni kommer att stödja https i minst 18 veckor frammåt samt att samtliga underdomäner också kommer att vara krypterade med SSL/TLS. Observera att detta dock kan ställa till problem om ni innehar underdomäner som ej använder sig av https.

Här lägger du till Er domän till Chromes HSTS preload-lista:

Så får du A+ av SSL Labs

Om du ser nedan omdöme så betyder det att du har en installation av webbserver och certifikat som är mycket bra: A+.

Det är inte dock helt trivialt att erhålla detta betyg av SSL Labs.SSL LabsFörst och främst måste ni ange vilka protokoll som stödjs:

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

Detta är för Nginx och innebär dock att ni väljer bort ett få antal besökare som ej kan nå Er webbplats. Men till följd att säkerheten blir bättre.

Sedan är det dags att berätta vilka protokoll vi vill använda oss av:

ssl_prefer_server_ciphers on;
ssl_ciphers AES256+EECDH:AES256+EDH:!aNULL;

Sedan måste bättre DHE-parametrar skapas:

$ cd /etc/ssl/certs
$ openssl dhparam -out dhparam.pem 4096

Och läggas till i konfigurationsfilen:

ssl_dhparam /etc/ssl/certs/dhparam.pem;

Och slå sedan på stöd för TLS:

# Enable SSL on all domains - you may also want to enable this on a per-site
# basis instead if you are supporting multiple virtual hosts.
ssl on;

# Cache SSL sessions for 10m (this is about 40,000 sessions), timing them out
# after 24 hours.
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 24h;

# Set the buffer size to 1400 bytes (that way it fits into a single MTU).
ssl_buffer_size 1400;

Även så lägger vi till stöd för OCSP-stapling:

ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.4.4 8.8.8.8 valid=300s;
resolver_timeout 10s;

Och sist men inte minst så bör vi även använda oss av HSTS:

# Enable HSTS
add_header Strict-Transport-Security max-age=63072000; includeSubDomains; preload;

# Do not allow this site to be displayed in iframes
add_header X-Frame-Options DENY;

# Do not permit Content-Type sniffing.
add_header X-Content-Type-Options nosniff;

När du infört ovan konfiguration så bör du även läsa in konfigurationsfilen igen samt se till att eventuella intermediate-certifikat laddas in. Kontrollera sedan igen med SSLLabs.com och se att du får ett A+ betyg.

Vi rekommenderar även att du lägger till domänen till Google Chrome HSTS-preload lista.

Denna artikel baseras på denna.