HSTS är ett webbsäkerhetssvarshuvud. Namnet är en akronym för "HTTP Strict Transport Security". HSTS-huvudets funktion är att tvinga webbläsare att ansluta till webbplatser med HTTPS.
Tips: HTTPS använder kryptering för att säkra din webbanslutning från hackare som försöker ändra eller övervaka den. HTTP har inte dessa skydd och därför kan en hackare på rätt plats övervaka och ändra din HTTP-trafik.
En webbsvarshuvud är en bit metadata som skickas av servern när den svarar på webbförfrågningar. En delmängd av dessa rubriker kallas ofta säkerhetsrubriker eftersom deras syfte är att öka säkerheten för webbplatsen och användaren.
HSTS-huvudet har två obligatoriska delar och två valfria. Rubriknamnet "Strict-Transport-Security" och sedan "max-age"-operatören och värdet är båda obligatoriska. Ett annat par operatorer, "includeSubDomains" och "preload" används också ibland.
När webbläsaren tar emot ett HTTPS-svar med HSTS-huvudet instrueras den att ansluta till den här webbplatsen och alla resurser på den, endast med hjälp av HTTPS under tiden för "max-age"-timern. "Max-age" är en variabel som beskriver hur länge en inställning måste komma ihåg av webbläsaren. Värdet på "max-age" anges i sekunder, det rekommenderade värdet är "31536000", vilket är ett år.
Tanken är att under tiden för denna timer, som återställs med varje efterföljande sidladdning, kommer webbläsaren att kräva en HTTPS-anslutning och avvisa alla HTTP-resurser. Detta skyddar mot person-in-the-midten-attacker, där en hacker mellan dig och webbservern kan manipulera svaren du får.
Huvudpunkten där detta skyddar dig är den första anslutningen. Vanligtvis när du ansluter till en webbplats kan du begära HTTP-webbplatsen och sedan vidarebefordras till HTTPS-webbplatsen. Tyvärr kan en hackare i en person-i-mittposition förhindra denna uppgradering till HTTPS och kan sedan stjäla eller övervaka din aktivitet på webbplatsen. När HSTS-huvudet har setts av webbläsaren kommer din webbläsare att göra även den första anslutningen över HTTPS, vilket skyddar dig från hackare.
HSTS förhindrar också att osäkra resurser laddas som också skulle kunna modifieras av en angripare om de levererades över HTTP.
Operatören "includeSubDomains" används för att indikera att rubriken även ska gälla för alla underdomäner på webbplatsen.
HSTS-förladdningslistan
Du kanske märker att HSTS fortfarande inte skyddar dig allra första gången du ansluter till en webbplats. Det är här "preload"-operatören kommer in. Webbplatser kan anmäla sig för att ingå i HSTS preload-listan, "preload"-operatören är en obligatorisk indikator om så är fallet. HSTS-förladdningslistan uppdateras regelbundet och lagras i webbläsaren, om en webbplats ingår i den kommer webbläsaren att tillämpa HSTS-skydden på den. Detta händer även vid den allra första anslutningen innan webbläsaren någonsin kunde ha sett HSTS-svarshuvudet.
Tips: En "maxålder" på ett år eller mer krävs för att läggas till i HSTS-förladdningslistan.
Problem med HSTS
En av huvudpunkterna med HSTS är att den visar ett felmeddelande om det finns några problem med HTTPS-anslutningen. Som en extra säkerhetsåtgärd är det meningen att användare inte ska kunna kringgå HSTS-felmeddelanden, vilket de skulle kunna göra med vanliga HTTPS-fel.
Tyvärr kan detta orsaka problem om ett företag rullar ut HSTS innan hela webbplatsen, och varje resurs som används på den, stöder HTTPS. I det här fallet kommer användare att börja se HSTS-säkerhetsfelmeddelanden som de inte kan kringgå, vilket i princip helt bryter ner webbplatsen. Det värsta är att bara att ta bort HSTS-huvudet inte löser problemet för dessa användare, eftersom deras webbläsare kommer att fortsätta att tillämpa HSTS under den potentiellt månader långa "max-age".
Som sådan är det ytterst viktigt att en kort "max-age" används när huvudet först distribueras. Om det finns några problem kvarstår de bara under en kort tid när de har upptäckts. Först när du är säker på att din webbplats är helt HSTS-kompatibel bör du konfigurera en lång HSTS-timer.
Tips: Det är också möjligt att ställa in en "maxålder" på 0, detta tar i princip bort den sparade HSTS-posten från alla som ser den. Detta kan hjälpa om det finns ett problem, men det påverkar bara användare när och om de bestämmer sig för att försöka igen.