HSTS er en nettsikkerhetsresponsoverskrift. Navnet er et akronym for "HTTP Strict Transport Security". Funksjonen til HSTS-headeren er å tvinge nettlesere til å koble til nettsteder ved hjelp av HTTPS.
Tips: HTTPS bruker kryptering for å sikre nettforbindelsen din fra hackere som prøver å endre eller overvåke den. HTTP har ikke disse beskyttelsene, og derfor kan en hacker på rett sted overvåke og endre HTTP-trafikken din.
En nettsvarhode er et stykke metadata som sendes av serveren når den svarer på nettforespørsler. En undergruppe av disse overskriftene blir ofte referert til som sikkerhetsoverskrifter da deres formål er å øke sikkerheten til nettstedet og brukeren.
HSTS-overskriften har to obligatoriske deler og to valgfrie. Overskriftsnavnet "Strict-Transport-Security" og deretter "max-age"-operatøren og verdien er begge obligatoriske. Et annet par operatører, "includeSubDomains" og "preload" brukes også noen ganger.
Når nettleseren mottar et HTTPS-svar med HSTS-overskriften, blir den bedt om å koble til denne nettsiden og alle ressurser på den, eksklusivt ved å bruke HTTPS i varigheten av "maks-alder"-timeren. "Maks-alder" er en variabel som beskriver hvor lenge en innstilling må huskes av nettleseren. Verdien av "max-age" er oppført i sekunder, den anbefalte verdien er "31536000", som er ett år.
Tanken er at i løpet av varigheten av denne tidtakeren, som tilbakestilles med hver påfølgende sideinnlasting, vil nettleseren kreve en HTTPS-tilkobling og avvise eventuelle HTTP-ressurser. Dette beskytter mot person-in-the-midten-angrep, der en hacker mellom deg og webserveren kan manipulere svarene du mottar.
Hovedpunktet der dette beskytter deg er den første forbindelsen. Vanligvis, når du kobler til et nettsted, kan du be om HTTP-nettstedet, og deretter bli videresendt til HTTPS-nettstedet. Dessverre kan en hacker i en person-i-midtposisjon forhindre denne oppgraderingen til HTTPS og kan deretter stjele eller overvåke aktiviteten din på nettstedet. Når HSTS-overskriften har blitt sett av nettleseren, vil imidlertid nettleseren din opprette selv den første tilkoblingen over HTTPS, og beskytte deg mot hackere.
HSTS forhindrer også usikre ressurser fra å bli lastet, som også kan bli modifisert av en angriper hvis de ble levert over HTTP.
Operatoren "includeSubDomains" brukes til å indikere at overskriften også skal gjelde for alle underdomener på nettstedet.
HSTS forhåndsinnlastningslisten
Du legger kanskje merke til at HSTS fortsatt ikke beskytter deg aller første gang du kobler til et nettsted. Det er her "preload"-operatøren kommer inn. Nettsteder kan sende seg inn for å bli inkludert i HSTS forhåndslastliste, "preload"-operatøren er en nødvendig indikator hvis dette er tilfelle. HSTS forhåndsinnlastningslisten oppdateres regelmessig og lagres i nettleseren, hvis et nettsted er inkludert i det, vil nettleseren bruke HSTS-beskyttelsen på den. Dette skjer selv på den aller første tilkoblingen før nettleseren noen gang kunne ha sett HSTS-svarhodet.
Tips: En "maks-alder" på et år eller mer kreves for å bli lagt til HSTS-forhåndsbelastningslisten.
Problemer med HSTS
Et av hovedpoengene til HSTS er at den viser en feilmelding hvis det er noen problemer med HTTPS-tilkoblingen. Som en ekstra sikkerhetsforanstaltning er det ikke meningen at brukere skal kunne omgå HSTS-feilmeldinger, slik de ville vært i stand til med vanlige HTTPS-feil.
Dessverre kan dette forårsake problemer hvis et selskap ruller ut HSTS før hele nettstedet, og hver ressurs som brukes på det, støtter HTTPS. I dette tilfellet vil brukere begynne å se HSTS-sikkerhetsfeilmeldinger som de ikke kan omgå, og i hovedsak ødelegger nettstedet fullstendig. Det verste er at det å fjerne HSTS-overskriften ikke løser problemet for disse brukerne, siden nettleseren deres vil fortsette å håndheve HSTS i den potensielt måneder lange "maksalderen".
Som sådan er det svært viktig at en kort "maks-alder" brukes når headeren først distribueres. Hvis det er noen problemer, vedvarer de bare i kort tid når de er oppdaget. Først når du er sikker på at nettstedet ditt er fullstendig HSTS-kompatibelt, bør du konfigurere en lang HSTS-timer.
Tips: Det er også mulig å sette en "maks-alder" på 0, dette fjerner i hovedsak den lagrede HSTS-oppføringen fra alle som ser den. Dette kan hjelpe hvis det er et problem, men det vil bare påvirke brukere når og hvis de bestemmer seg for å prøve igjen.