Google zapnul HSTS pro všechny své TLD. Co to znamená?
14.11.2017 | Jindřich Zechmeister
Google oznámil zapnutí HSTS zabezpečení pro všechny své TLD domény, které vlastní a spravuje. V tomto článku připomeneme, co je to HSTS a HPKP a co tento krok Googlu znamená pro internet. Dozvíte se také, že HPKP je dobrý sluha, ale v nepovolaných rukou je velice nebezpečný.
HSTS znamená web dostupný pouze přes HTTPS
HSTS je ochranou před (záměrným) obcházením HTTP, avšak pro správce serveru je zároveň dost nebezpečným nástrojem. V hlavičce poslané prohlížeči přes HTTPS je uveden čas, po který je web dostupný pouze přes HTTPS. Tento interval může být například rok. Při špatné konfiguraci můžete web s HSTS a HPKP znepřistupnit a způsobit si výrazné problémy. Pokud o klíč uvedený k HPKP hlavičce přijdete, nedokáže se server s uživatelem bezpečně spojit a návštěvník je odříznutý. Z tohoto důvodu musí být specifikován i záložní klíč a v hlavičce musí být uvedeny minimálně dva otisky klíčů.
Prohlížeče mají zabudován vlastní seznam domén, tzv. HSTS preload list. Díky seznamu znají domény se zapnutým HSTS (vyžadující šifrování) ještě před jejich návštěvou. Ochrana je pak účinnější. Prohlížeč Chrome od Googlu má též svůj vlastní seznam domén, které HSTS používají a navíc má seznam klíčů HPKP, ve kterém jsou nejvýznamnější domény jako Google.com, Facebook.com, Twitter.com nebo GitHub.com. O uvedení na tento seznam si můžete požádat zde. Je však nemožné, aby v těchto seznamech byly uvedeny všechny domény na světě; přidávají se proto zejména ty, které jsou pro bezpečnost návštěvníků mimořádně důležité (jako například gmail.com).
Vybrané TLD domény budou používat HSTS
Nyní už víme, co HSTS znamená a co se stane, když bude 45 hlavních TLD (domén prvního řádu) uvedeno v prohlížeči v "preload listu". Jakákoliv doména druhého a nižšího řádu v zónách zmíněných 45 TLD bude dostupná pouze přes HTTPS a musí mít vlastní TLS certifikát, protože samotná "koncovka" domény vyžaduje HSTS. Google na těchto doménách záměrně zcela pohřbil HTTP, které zde nejde použít. Tento odvážný krok si Google mohl dovolit i díky tomu, že zajistí sám pro domény TLS certifikáty.
Možná vás napadá, zdali se časem přidají další domény. Podobný postup je však možný pouze u domén, které správce vyčleňuje pro konkrétní účely a nejsou určeny pro koncové zákazníky. Majitel této domény by přišel o svobodu rozhodnutí a i když celý internet směřuje k plošnému nasazení HTTPS, HSTS pro celou doménu prvního řádu je například pro českou doménu CZ stále nereálné. V případě domén spravovaných Googlem se jedná o "koncovky" google, how, soy, foo nebo dev. Kompletní seznam TLD Googlu najdete zde.
Jedním z předpokladů použití HSTS je automatizace nasazení certifikátů a jejich automatická rotace. Tu podporují webhosteři a také CZECHIA.COM; v tomto případě má zákazník k dispozici certifikát Basic DV zdarma, ale HSTS se plošně nepoužívá a využití je na každém zákazníkovi.
HSTS a HPKP není bezpečnostní spása
Stejně jako ostatní bezpečnostní funkce nezajistí samotné HSTS dokonalou ochranu před všemi potencionálními útoky. Při zabezpečení webu je nutné bezpečnostní opatření kombinovat a HSTS je pouze jedním z bezpečnostních nástrojů. Nástroj pomáhá dosáhnout určitého cíle, ale samotné jeho použití nezaručí výsledek; stejně je tomu i u bezpečnosti serveru. Nasazení TLS certifikátu nezaručí neprolomitelné zabezpečení webu, pokud je server nastaven špatně a slabé či zastaralé šifrování oslabuje celkovou bezpečnost a vytváří vektor potenciálního útoku.
Na HSTS je třeba dívat se i lehce skepticky; zabezpečení může být pro administrátora poměrně časově náročné a přináší některá rizika, která jsem již zmínil. Například bezpečnostní výzkumník Scott Helme ve svém článku I'm giving up on HPKP popisuje důvody, proč použití HPKP vzdal. HSTS v kombinaci s HPKP a v nešikovných rukou může webové stránky zcela vyřadit na dlouho z provozu. To se stalo i webu Smashing Magazine, který byl kvůli tomu pět dní nedostupný. Celý jejich příběh a popis chyby najdete v článku Be Afraid Of HTTP Public Key Pinning
Ivan Ristic se v loňském článku Is HTTP Public Key Pinning Dead? zamýšlí nad tím, zdali je tento princip už mrtvý. Upozorňuje na vysoká rizika používání HPKP, která odráží statistika používání HPKP na internetu. Odkazuje se na výzkum 1 milionu nejznámějších domén (dle indexu Alexa), který provedl již zmíněný Scott Helme a při kterém našel pouze 375 webů používajících HPKP (tedy 0,0375 %).
Zvažujete nasazení HSTS nebo HPKP?
Pokud sami zvažujete použití obou technik pro zabezpečení webu, doporučujeme nejprve pročíst detailnější princip fungování a zejména varování před možnými problémy. Při použití HPKP je vysloveně nutné mít k dispozici záložní klíč (tedy certifikát) a uvádět ho v hlavičce; jinak může dojít k fatální nedostupnosti webu. Možné problémy se nikdy nedají plánovat a web nemůže být odkázán pouze na jeden TLS certifikát.
Úspěšné nastavení HSTS si můžete vyzkoušet například v testu SSLlabs; ve výsledku ověření uvidíte detaily nastavení HSTS, případně HPKP. Dalším nástrojem, ve kterém můžete HSTS ověřit, je Securityheaders.io. Pokud uvažujete i o nastavení HPKP hlaviček, může vám přijít vhod online generátor hashů pro HPKP, který pro váš certifikát připraví otisky správných klíčů.
Další zdroje informací:
- HTTP Strict Transport Security for Apache, NGINX and Lighttpd. Dostupné na raymii.org
- Návod na HSTS pro Wordpress a Drupal - Require HTTPS with the HSTS Header. Dostupné na pantheon.in
- Bezpečnější šifrování HTTPS s hlavičkami HSTS a HPKP. Dostupné na Root.cz
- Broadening HSTS to secure more of the Web. Dostupné na security.googleblog.com
Specialista pro bezpečnostní SSL certifikáty
DigiCert TLS/SSL Professional
e-mail: jindrich.zechmeister(at)zoner.cz