HSTS: tving nettstedet til alltid å bruke HTTPS
HSTS (HTTP Strict Transport Security) er en enkel men kraftfull mekanisme som tvinger alle besøkende til å bruke HTTPS. Slik fungerer det.
Du har installert et SSL-sertifikat og aktivert HTTPS – men er nettstedet ditt virkelig sikret? Uten HSTS kan besøkende fortsatt nå siden din over usikret HTTP, i alle fall ved det første besøket. Det er nok til at et angrep kan gjennomføres. HSTS tetter dette hullet.
Hva er HSTS?
HTTP Strict Transport Security (HSTS) er en sikkerhetsmekanisme som instruerer nettlesere om å alltid kontakte nettstedet over HTTPS – aldri over HTTP. Den aktiveres ved å sende en spesiell HTTP-responsheader fra webserveren din:
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
Når en nettleser mottar denne headeren, husker den instruksjonen i antall sekunder angitt i max-age (her ett år = 31 536 000 sekunder). I løpet av denne perioden vil nettleseren automatisk oppgradere alle HTTP-forespørsler til HTTPS – uten å sende en eneste byte over usikret forbindelse.
Hvilke angrep forhindrer HSTS?
SSL-stripping
Et SSL-stripping-angrep foregår slik: en angriper i posisjon mellom brukeren og serveren (f.eks. på et åpent Wi-Fi-nettverk) fanger opp den første HTTP-forespørselen og svarer som om serveren er HTTP-only. Brukeren kommuniserer ukryptert med angriperen, som videresender kryptert til den ekte serveren. Verken bruker eller server ser nødvendigvis at noe er galt.
HSTS bryter dette angrepet: nettleseren nekter å sende den innledende HTTP-forespørselen i det hele tatt.
Protokollnedgradering
Angripere kan forsøke å tvinge forbindelsen til en eldre, sårbar versjon av TLS. HSTS alene stopper ikke dette, men i kombinasjon med riktig serverkonfigurasjon og DNSSEC reduseres angrepsflaten ytterligere.
Slik aktiverer du HSTS
Apache
Legg til i .htaccess eller serverens konfigurasjonsfil (krever mod_headers):
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
Nginx
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
Via CMS (WordPress)
Mange sikkerhets-plugins (f.eks. Wordfence, iThemes Security) støtter HSTS-konfigurasjon uten at du trenger å redigere serverfiler manuelt.
Direktivene forklart
| Direktiv | Funksjon |
|---|---|
max-age | Antall sekunder nettleseren husker HSTS-instruksen |
includeSubDomains | Gjelder også alle subdomener under domenet |
preload | Signaliserer at domenet kan inkluderes i nettlesernes forhåndsinnlastede HSTS-liste |
HSTS Preload-listen
Google, Mozilla og Apple vedlikeholder en felles HSTS Preload-liste innebygget i nettleserne. Domener på listen er HSTS-beskyttet fra aller første besøk – selv før den første HTTPS-responsen. Du kan søke om oppføring på hstspreload.org .
Advarsel: Preload er permanent i praksis. Det kan ta måneder å bli fjernet fra listen. Aktiver det bare dersom du er sikker på at hele domenet – inkludert alle subdomener – alltid vil kjøre HTTPS.
Vanlige feil
Sette max-age for lavt. En verdi på 300 sekunder gir nesten ingen beskyttelse. Bruk minst 15 768 000 sekunder (6 måneder) i produksjon, og 31 536 000 (1 år) for preload.
Aktivere includeSubDomains uten wildcard-sertifikat. Dersom et subdomen mangler gyldig SSL-sertifikat og includeSubDomains er aktivert, vil nettlesere blokkere det subdomenet helt. Sørg for at alle subdomener er dekket – gjerne med et wildcard-sertifikat
.
Aktivere HSTS på HTTP. Headeren har ingen effekt hvis den sendes over HTTP. Den må alltid sendes fra HTTPS-endepunktet.
Glemme å fornye SSL-sertifikatet. Dersom sertifikatet utløper mens HSTS er aktiv, vil besøkende se en blokkert side de ikke kan komme forbi uten å manuelt slette HSTS-dataene i nettleseren. Sjekk at automatisk fornyelse fungerer, og vurder å bruke backup av nettstedet som del av en helhetlig rutine.
HSTS og .no-domener
For norske nettsteder registrert under .no gjelder de samme tekniske kravene som for andre TLD-er. HSTS er en ren webserverfunksjon og påvirker ikke domeneregistreringen. Det viktigste er at du har et gyldig SSL-sertifikat
installert og at HTTPS fungerer korrekt på alle sider og ressurser – inkludert bilder, skript og stilark – før du aktiverer HSTS.
Kombiner HSTS med DNSSEC for å sikre at DNS-oppføringene dine ikke kan manipuleres, og les mer om den generelle sikkerhetsoverflaten på Vymos sikkerhetssider .
Klar til å sikre domenet ditt?
Sjekk om navnet er ledig – live mot registeret, på .no, .com og flere.