HTTP Strict Transport Security (HSTS)
- HTTP Strict Transport Security (HSTS) = vylepšení zabezpečení, které je určeno webovou aplikací pomocí speciální hlavičky v odpovědi
- Jakmile prohlížeč hlavičku obdrží, zabrání odeslání jakékoli komunikace prostřednictvím HTTP do zadané domény
- Veškerou komunikaci bude odesílat prostřednictvím HTTPS
- Zabraňuje také tomu, aby se v prohlížečích objevovaly výzvy k prokliknutí na protokol HTTPS
- Specifikace je z roku 2012
- Od roku 2019 HSTS podporují všechny moderní prohlížeče s výjimkou Opera Mini
Hrozby
- Uživatel si vytvořil záložky, nebo ručně zadal adresu
http://example.com
a je vystaven man-in-the-middle útoku- HSTS automaticky přesměruje požadavky z HTTP na HTTPS
- Webová aplikace, která má být čistě HTTPS, neúmyslně obsahuje HTTP odkazy nebo poskytuje obsah přes HTTP
- HSTS automaticky přesměruje požadavky z HTTP na HTTPS
- Man-in-the-middle útočník se pokouší zachytit provoz od uživatele pomocí neplatného certifikátu a doufá, že uživatel špatný certifikát přijme
- HSTS neumožňuje uživateli zrušit hlášení o neplatném certifikátu
Příklady
- Použití dlouhého
max-age
(1 rok = 31536000 sekund) je nebezpečné, protože v něm chybíincludeSubDomains
Strict-Transport-Security: max-age=31536000
- Tento příklad je v pořádku, pokud všechny současné i budoucí subdomény budou HTTPS
Strict-Transport-Security: max-age=31536000; includeSubDomains
- Jedná se o bezpečnější možnost, která však zablokuje přístup k některým stránkám, které lze zobrazit pouze přes HTTP
Strict-Transport-Security: max-age=86400; includeSubDomains
- Zde je nastavený velmi krátký
max-age
pro případ chyb při počátečním rolloutu
Doporučení
- Použijte níže uvedenou hlavičku, pokud si majitel webu přeje, aby byla jeho doména zahrnuta do HSTS preload seznamu, který spravuje prohlížeč
preload
označuje souhlas vlastníka webu s přednačtením jeho domény- Vlastník webu musí doménu odeslat do seznamu
- Odeslání direktivy
preload
může mít trvalé následky a může zabránit uživatelům v přístupu na web a všechny jeho subdomény, pokud zjistíte, že je potřeba přejít zpět na HTTP
- Přečtěte si podrobnosti o odstranění preloadu před odesláním
preload
hlavičky
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
Problémy
- Majitelé stránek mohou používat HSTS k identifikaci uživatelů bez cookies, což může vést k privacy leaku
- S cookies lze manipulovat ze subdomén, takže vynechání
includeSubDomains
umožňuje širokou škálu útoků s cookies souvisejícími, kterým by jinak HSTS zabránilo tím, že by pro subdoménu vyžadovalo platný certifikát - Zajištění
Secure
u všech cookie zabráním některým, ale stále ne všem útokům