Přeskočit na hlavní obsah

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

  1. 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
  2. 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
  3. 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í

  1. 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
  1. 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

Kam dál

Cheat sheety

Checklisty