Što je HSTS?

click fraud protection

HSTS je zaglavlje odgovora na web sigurnost. Naziv je akronim za “HTTP Strict Transport Security”. Funkcija HSTS zaglavlja je prisiliti preglednike da se povežu s web-stranicama koristeći HTTPS.

Savjet: HTTPS koristi enkripciju kako bi zaštitio vašu web vezu od hakera koji je pokušavaju modificirati ili nadzirati. HTTP nema te zaštite pa bi haker na pravom mjestu mogao pratiti i mijenjati vaš HTTP promet.

Zaglavlje web odgovora dio je metapodataka koje poslužitelj šalje kada odgovara na web zahtjeve. Podskup ovih zaglavlja često se naziva sigurnosnim zaglavljima jer je njihova svrha povećati sigurnost web stranice i korisnika.

HSTS zaglavlje ima dva obvezna dijela i dva neobavezna. Naziv zaglavlja "Strict-Transport-Security", a zatim operator "max-age" i vrijednost su obavezni. Ponekad se koristi i drugi par operatora, "includeSubDomains" i "preload".

Kada preglednik primi HTTPS odgovor s HSTS zaglavljem, dobiva uputu da se poveže s ovom web-stranicom i svim resursima na njoj, isključivo koristeći HTTPS za vrijeme trajanja "max-age" timera. "Max-age" je varijabla koja opisuje koliko dugo preglednik mora pamtiti postavku. Vrijednost "max-age" navedena je u sekundama, preporučena vrijednost je "31536000", što je jedna godina.

Ideja je da unutar trajanja ovog tajmera, koji se resetuje sa svakim sljedećim učitavanjem stranice, preglednik zahtijeva HTTPS vezu i odbija sve HTTP resurse. To štiti od napada osobe u sredini, gdje haker između vas i web poslužitelja može manipulirati odgovorima koje primite.

Glavna točka u kojoj vas to štiti je prva veza. Obično, kada se povežete na web-mjesto, možete zatražiti HTTP web-mjesto, a zatim vas proslijediti na HTTPS web-mjesto. Nažalost, haker na poziciji osobe u sredini mogao bi spriječiti ovu nadogradnju na HTTPS i zatim ukrasti ili pratiti vašu aktivnost na web stranici. Međutim, nakon što preglednik vidi HSTS zaglavlje, vaš će preglednik uspostaviti čak i prvu vezu preko HTTPS-a, štiteći vas od hakera.

HSTS također sprječava učitavanje bilo kakvih nesigurnih resursa koji bi također mogli biti zlonamjerno izmijenjeni od strane napadača ako su isporučeni putem HTTP-a.

Operator “includeSubDomains” koristi se za označavanje da se zaglavlje također treba primijeniti na sve poddomene web-mjesta.

Popis predučitavanja HSTS-a

Možda ćete primijetiti da vas HSTS još uvijek ne štiti prvi put kada se povežete na web-stranicu. Ovdje se pojavljuje operator "preload". Web-mjesta se mogu prijaviti da budu uključena u popis predučitavanja HSTS-a, operator “preload” je obavezan pokazatelj ako je to slučaj. Popis predučitavanja HSTS-a redovito se ažurira i pohranjuje u pregledniku, ako je web-mjesto uključeno u to, preglednik će na njega primijeniti HSTS zaštitu. To se događa čak i pri prvoj vezi prije nego što je preglednik mogao vidjeti zaglavlje HSTS odgovora.

Savjet: potrebno je dodati "maks. dob" od godinu dana ili više na popis predučitavanja HSTS-a.

Problemi s HSTS-om

Jedna od glavnih točaka HSTS-a je da prikazuje poruku o pogrešci ako postoje problemi s HTTPS vezom. Kao dodatna sigurnosna mjera opreza, korisnici ne bi trebali moći zaobići HSTS poruke o pogrešci, kao što bi mogli s normalnim HTTPS pogreškama.

Nažalost, to može uzrokovati probleme ako tvrtka uvede HSTS prije nego što cijela web stranica i svaki resurs koji se na njoj koristi podržava HTTPS. U ovom slučaju, korisnici će početi vidjeti poruke o sigurnosnim pogreškama HSTS-a koje ne mogu zaobići, što će u biti potpuno razbiti web stranicu. Najgore je to što jednostavno uklanjanje HSTS zaglavlja ne rješava problem za te korisnike, jer će njihov preglednik nastaviti provoditi HSTS za potencijalno višemjesečnu "max-age".

Zbog toga je kritično važno da se kratka "max-age" koristi pri prvom postavljanju zaglavlja. Ako postoje problemi, oni traju samo kratko vrijeme nakon što se otkriju. Tek kada ste sigurni da je vaša web stranica u potpunosti usklađena s HSTS-om, trebate konfigurirati dugi HSTS timer.

Savjet: Također je moguće postaviti "max-age" od 0, što u biti uklanja spremljeni HSTS unos od svih koji ga vide. To može pomoći ako postoji problem, ali će utjecati samo na korisnike kada i ako odluče pokušati ponovno.