HSTS je hlavička odpovede na webovú bezpečnosť. Názov je skratkou pre „HTTP Strict Transport Security“. Funkciou hlavičky HSTS je prinútiť prehliadače pripojiť sa k webovým stránkam pomocou HTTPS.
Tip: HTTPS používa šifrovanie na zabezpečenie vášho webového pripojenia pred hackermi, ktorí sa ho pokúšajú upraviť alebo monitorovať. HTTP nemá tieto ochrany, takže hacker na správnom mieste môže monitorovať a upravovať váš HTTP prenos.
Hlavička webovej odpovede je časť metaúdajov odoslaných serverom, keď odpovedá na webové požiadavky. Podmnožina týchto hlavičiek sa často označuje ako bezpečnostné hlavičky, pretože ich účelom je zvýšiť bezpečnosť webovej stránky a používateľa.
Hlavička HSTS má dve povinné časti a dve voliteľné. Názov hlavičky „Strict-Transport-Security“ a potom operátor a hodnota „max-age“ sú povinné. Niekedy sa používa aj ďalší pár operátorov „includeSubDomains“ a „preload“.
Keď prehliadač dostane odpoveď HTTPS s hlavičkou HSTS, dostane pokyn, aby sa pripojil k tejto webovej lokalite a všetkým zdrojom na nej, a to výlučne pomocou HTTPS počas trvania časovača „max-age“. „Maximálny vek“ je premenná, ktorá popisuje, ako dlho si musí prehliadač pamätať nastavenie. Hodnota „max-age“ je uvedená v sekundách, odporúčaná hodnota je „31536000“, čo je jeden rok.
Myšlienka je taká, že počas trvania tohto časovača, ktorý sa vynuluje pri každom nasledujúcom načítaní stránky, bude prehliadač vyžadovať pripojenie HTTPS a odmietnuť akékoľvek HTTP zdroje. To chráni pred útokmi typu person-in-the-middle, kedy hacker medzi vami a webovým serverom môže manipulovať s odpoveďami, ktoré dostanete.
Hlavným bodom, v ktorom vás to chráni, je prvé pripojenie. Zvyčajne, keď sa pripájate k webovej lokalite, môžete požiadať o webovú lokalitu HTTP a potom vás presmerovať na webovú lokalitu HTTPS. Žiaľ, hacker v pozícii person-in-the-middle by mohol zabrániť tomuto upgradu na HTTPS a následne by mohol ukradnúť alebo sledovať vašu aktivitu na webe. Keď však prehliadač uvidí hlavičku HSTS, váš prehliadač vytvorí aj prvé pripojenie cez HTTPS, čím vás ochráni pred hackermi.
HSTS tiež bráni načítaniu akýchkoľvek nezabezpečených zdrojov, ktoré by tiež mohol útočník so zlým úmyslom zmeniť, ak by boli doručené cez HTTP.
Operátor „includeSubDomains“ sa používa na označenie toho, že hlavička by sa mala vzťahovať aj na všetky subdomény webovej lokality.
Zoznam predbežného načítania HSTS
Môžete si všimnúť, že HSTS vás stále nechráni pri prvom pripojení na webovú stránku. Tu prichádza na scénu operátor „preload“. Webové stránky sa môžu prihlásiť na zaradenie do zoznamu predbežného načítania HSTS. Ak je to tak, operátor „predbežného načítania“ je povinným indikátorom. Zoznam predbežného načítania HSTS sa pravidelne aktualizuje a ukladá v prehliadači, ak je v ňom zahrnutá stránka, prehliadač na ňu použije ochranu HSTS. Stáva sa to dokonca aj pri prvom pripojení predtým, ako prehliadač mohol vidieť hlavičku odpovede HSTS.
Tip: Na pridanie do zoznamu predbežného načítania HSTS sa vyžaduje „maximálny vek“ rok alebo viac.
Problémy s HSTS
Jedným z hlavných bodov HSTS je, že v prípade akýchkoľvek problémov s pripojením HTTPS zobrazí chybové hlásenie. Ako dodatočné bezpečnostné opatrenie sa predpokladá, že používatelia nebudú môcť obísť chybové hlásenia HSTS, ako by to bolo možné pri bežných chybách HTTPS.
Bohužiaľ to môže spôsobiť problémy, ak spoločnosť zavedie HSTS skôr, ako celá webová stránka a každý zdroj, ktorý sa na nej používa, podporuje HTTPS. V tomto prípade sa používateľom začnú zobrazovať chybové správy zabezpečenia HSTS, ktoré nemôžu obísť, čím v podstate úplne porušia webovú stránku. Najhoršie na tom je, že jednoduchým odstránením hlavičky HSTS sa problém pre týchto používateľov nevyrieši, pretože ich prehliadač bude naďalej presadzovať HSTS počas potenciálne mesiacov trvajúceho „maximálneho veku“.
Preto je mimoriadne dôležité, aby sa pri prvom nasadení hlavičky použil krátky „maximálny vek“. Ak sa vyskytnú nejaké problémy, potom po zistení pretrvávajú iba krátky čas. Až keď ste si istí, že váš web je úplne v súlade s HSTS, mali by ste nakonfigurovať dlhý časovač HSTS.
Tip: Je tiež možné nastaviť „maximálny vek“ na 0, čím sa v podstate odstráni uložený záznam HSTS každému, kto ho uvidí. To môže pomôcť, ak sa vyskytne problém, ale ovplyvní používateľov iba vtedy a vtedy, keď sa rozhodnú skúsiť znova.