O webu
HTTPS – má smysl?

HTTP – Hypertext Transfer Protocol – je způsob, kterým se přenášejí data na internetu. HTTP není chráněné před odposloucháváním/sledováním nebo modifikací obsahu. HTTPS tyto problémy řeší šifrováním dat mezi klientem a serverem.

Vlastnosti HTTPS

Modifikace obsahu

Nezabezpečené HTTP spojení nezaručuje, že obsah, který se dostane do prohlížeče, je ten obsah, který vytvořila příslušná webová stránka.

Po cestě od webového serveru dané stránky k prohlížeči návštěvníka je možné modifikovat výsledek, aniž by si toho návštěvník všiml.

V dnešní době sice nebývá zvykem, aby například poskytovatel připojení modifikoval stránky svých zákazníků, ale problém mohou být neznámé Wi-Fi sítě, které teoreticky může provozovat člověk, co chce sledovat připojené uživatele.

Cílem modifikace obsahu stránky může být třeba:

  1. Vložení reklamy provozovatele Wi-Fi.
  2. Získání osobních údajů (hesel). Útočník může do stránky vložit skript, který obsah formulářů odešle kromě originální stránce i nějak jinam.

Odposlouchávání provozu

Jelikož je HTTP nešifrované, může člověk s přístupem do sítě sledovat, co za weby si ostatní prohlížejí.

Nešifrovaně se přenášejí i případné identifikátory pro přihlášení jako jsou cookie. Odposloucháváním přenosu dat přes HTTP je tak možné získat cookie jiného uživatele a třeba se za něj přihlásit do webové aplikace.

Pro Facebook dokonce existovala mobilní aplikace, která poslouchala v síti, a na jediné kliknutí umožňovala přihlášení se za odposlechnuté uživatele, co nezabezpečeně přes HTTP použili Facebook.

Zjistit ale, co si člověk na webu čte, není výrazný problém ani u HTTPS. U webu s méně stránkami teoreticky půjde relativně spolehlivě určit prohlížené stránky jen na základě zkoumání objemu dat.

Přenášení refereru

Jedna z vlastností HTTPS je, že při přechodu na HTTP stránku z HTTPS nejsou přenášeny informace o předchozí stránce. U HTTP se při příchodu na stránku může provozovatel webu standardně snadno dozvědět, odkud návštěvník přišel. Z praktického hlediska tento rozdíl ale nic moc neřeší.

  • Uživatel může referer nepředávat i u HTTP. Není problém jeho odesílání blokovat v prohlížeči.

  • Provozovatel webu může přesný referer rovněž nepředávat i u HTTP. Přesměrováním odkazu přes nějakou stránku.

  • Provozovatelé webu mohou i při přechodu z HTTPS stránky na HTTP stále sledovat pohyb uživatelů přidáváním identifikačních parametrů do URL. Vyžaduje to ale jejich vzájemnou spolupráci.

    Takto může Franta odkázat na Pepu, aby se Pepa dozvěděl, že k němu návštěvník přišel od Franty:

    <a href="http://pepa.cz/?odkud=franta">
      Pepa
    </a>

    Do budoucna předání refereru při přechodu HTTPS → HTTP může zajistit <meta> značka:

    <meta name="referrer" content="always">

Smíšený obsah

Na HTTPS stránce je problematické mít vložený obsah z HTTP. To se týká rámů (<iframe>), stylů, skriptů a podobně. Obráceně v tom není problém.

Prohlížeče rozlišují externí objekty na:

  1. pasivní – obrázky, videa, zvuky
  2. aktivní – rámy, skripty, styly, objekty typu Flashe

Pasivní se zobrazí, ale stav stránky není „100% zelený“. Prohlížeč upozorňuje, že stránka obsahuje nezabezpečené zdroje.

Ty aktivní jsou potom ve výchozím nastavení prohlížečů blokovány. V Internet Exploreru se v případě smíšeného obsahu objevuje v dolní části prohlížeče varovná hláška:

Smíšený obsah v IE

Ve starších IE (IE 7 a IE 8) je informace o smíšeném obsahu výraznější a vyžaduje přímou akci uživatele.

Smíšený obsah v IE 7

Smíšený obsah v IE 8

V ostatních prohlížečích se zobrazí informace o smíšeném obsahu až při zkoumání zabezpečení stránky.

Smíšený obsah ve Firefoxu

Nemožnost vložit HTTP <iframe> nebo externí JS vadí například při vkládání reklamy, která nefunguje pod HTTPS. S příjmy z reklamy od reklamní služby nenabízející HTTPS se tak nezbývá než rozloučit.

Pokud je potřeba používat HTTP obsah na HTTPS stránce, nezbývá než použít proxy (stahovat si na serveru daný HTTP obsah).

Cena

Někteří příznivci HTTPS prohlašují, že není jediný důvod nepoužívat HTTPS. Je to pochopitelně nesmysl. I když je cena potřebných certifikátů v řádů stokorun, přechod na HTTPS bude často znamenat i vyšší náklady na hosting.

  • crt.simplia.cz – Certifikát na 1 rok za 99 Kč + DPH (při objednávce na 3 roky)

Pro provoz webu na HTTPS je potřeba vlastní IP adresa nebo používat SNI (Server Name Indication).

Vlastní IP adresa znamená zpravidla náklady navíc. Třeba u Wedosu stojí 100 Kč + DPH měsíčně. I jinde jsou ceny podobné.

Použití SNI zase nebude ideální pro uživatele starších prohlížečůInternet Explorer 6,7 a 8 na Windows XP. Těm se místo stránky objeví chybová hláška, že je problém s certifikátem.

Upozornění na špatný certifikát

I přesto půjde stránku zobrazit, když návštěvník klikne na nedoporučenou akci „Pokračovat na stránku“. Stránka potom bude doplněna červenou chybovou hláškou „Chyba certifikátu“. Moc dobré mínění o webu ale návštěvník nejspíš mít nebude.

Stránka s špatným certifikátem v IE 8

Pokud už má člověk pro webovou stránku vlastní IP adresu nebo chyba certifikátu v Internet Exploreru pod Windows XP nevadí, přímé náklady se zvýší jen o cenu certifikátu.

Kromě toho ještě něco stojí samotný jednorázový přechod na HTTPS, který se sám neudělá. I pokud si vše člověk vlastnoručně nastaví sám podle návodů na internetu, pořád existují náklady obětované příležitosti, které je třeba brát v úvahu.

Vyhledávače

Jelikož převod webu na HTTPS znamená změnu všech URL celého webu, mohou panovat jisté obavy, jak si s tím poradí internetové vyhledávače.

Google

Google po přesměrováním stránek hlavičkou 301 zpravidla aplikuje změnu velmi rychle a ani nezpůsobuje problémy jako významné výpadky posic ve výsledcích vyhledávání.

Algoritmus Google údajně má jako jedno z kritérií zabezpečení webu (jestli používá HTTPS nebo HTTP). Aplikace tohoto kritéria ale nezměnila ani 1 % všech výsledků, takže o nějaké významné výhodě HTTPS nelze hovořit.

Seznam

U Seznamu typicky přesun webu (změna URL stránek) přináší problémy – změna nějakou dobu trvá a hrozí krátkodobý pokles umístění ve vyhledávání a z toho plynoucí ztráty návštěvnosti.

Z pohledu Seznamu jsou níže dvě různé URL:

http://example.com
https://example.com

Může se na nich nacházet odlišný obsah. Není tedy možné vzít všechny URL s http: a nahradit je za https:.

Množí se dotazy, jestli je dobrý nápad přesouvat weby na https: protokol. Že prý Google to chce. Já říkám, že měnit zbůhdarma URL je blbost.

Seznam trable s https indexací nemá. Má trable s provozovateli webů, kteří nechápou, že výměna protokolu je změna URL. :-)

Dušan Janovský, konzultant vyhledávání v Seznam.cz, Twitter

Podle zkušeností některých tvůrců webů není přechod na HTTPS u Seznamu rozhodně bezproblémový.

Přesměrování na HTTPS u webu hodně závislého na návštěvnosti ze Seznamu je tedy poněkud risiková záležitost. A celou akci si je dobré dvakrát rozmyslet (přinese významná positiva?) a pro jistotu přesun provést v období, kdy propad návštěvnosti způsobí co možná nejmenší ztráty.

Dne 6. 10. 2015 se na blogu fulltextového týmu objevil článek, že s přechodem na HTTPS je v případě Seznamu dobré ještě počkat do roku 2016:

Nové weby nebo stránky, kde krátkodobé zhoršení posic ve vyhledávání nevadí, jde ale bez problému stavět na HTTPS. Hodnocení HTTP a HTTPS webů je rovnocenné.

Celý problém tkví v indexaci přesměrovaných stránek, nejde o problém primárně s HTTPS.

Rychlost

Použití HTTPS je sice značně komplikovanější než HTTP, znatelně zvýšit rychlost načítání webu díky spojování požadavků na jednotlivé soubory může použití SPDY protokolu. Pokud stránka načítá velké množství objektů (typicky obrázky, které není možné spojit do jednoho) u HTTP trvá značnou dobu samotná režie s vytvořením požadavku. SPDY si požadavky na soubory dokáže seskupovat.

Nutné přesměrování

Menší zdržení může přechod na HTTPS způsobit kvůli tomu, že prohlížeče berou jako výchozí protokol http://. Pokud tedy člověk zadá do adresního řádku example.com, prohlížeč navšíví stránku http://example.com, kde bude následně přesměrován na https://example.com.

HTTPS má smysl jen pro přihlašování uživatelů

Někteří lidé zastávají názory, že HTTPS má smysl jen u webových stránek, kdy se přihlašují uživatelé nebo tam mají citlivé údaje.

Zde je zásadní otázka, co jsou to citlivá data. Je to značně individuální a universální odpověď neexistuje.

  • Pro někoho nejsou citlivá skoro žádná jeho data. Pokud je člověk aktivní na internetu, řada informací o něm zkrátka půjde zjistit. Takže ho například (ne)bezpečnost přenosu jeho adresy v e-shopu nemusí trápit, protože ji má stejně na webu.

  • Pro další skupinu je citlivý obsah dostupný až po přihlášení.

  • Někdo považuje za citlivá data už jen informaci, co si prohlíží.

Kdo HTTPS ocení?

Je poměrně složité najít početnější skupinu lidí, která HTTPS vědomě ocení.

  1. Zvlášť opatrní uživatelé se nebudou k citlivým službám přihlašovat mimo důvěryhodná připojení / z neznámých zařízení. U cizího počítače hrozí, že bude obsahovat program, který bude tajně zaznamenávat znaky napsané na klávesnici nebo výsledný obsah v prohlížeči.

  2. Uživatele vědomě resignující na bezpečnost po internetu kolujících dat použití HTTPS nezachrání.

  3. Uživatelé, co neví, co je to HTTP nebo HTTPS , potom nemají co ocenit.

Někdo se domnívá, že důvěryhodné označení, které prohlížeče zobrazují u přes HTTPS zabezpečených webů, zabrání útokům, kdy někdo například zkopíruje design banky na vlastní stránku a následně si ukládá hesla klientů. Či jinak podvodným webům.

Zde by mohl zafungovat Peltzmanův efekt a HTTPS u podvodné stránky by mohlo ještě snížit (už tak nízkou) ostražitost běžných uživatelů.

Čistě z technického hlediska ale zabezpečení webu pomocí HTTPS zvýší celkovou bezpečnost.

Něco se pokazí

Prakticky každá zkušenost s přechodem na HTTPS, co je možné na internetu najít, obsahuje zmínku, že se v něčem udělala chyba, něco špatně zafungovalo, byly s něčím problémy a podobně.

Převod webu na HTTPS je poměrně značný zásah do něčeho, co funguje, který s velkou šancí skončí tím, že něco fungovat nebude. Při úvahách o přesunu webu je to dobré dát do úvahy.

HTTP, nebo HTTPS?

Rozhodnout, jestli přesunout stránku na HTTPS nebo ne, tedy není úplně snadné.

Proč přejít na HTTPS

  1. Rychlost – načítání větších počtů objektu pomocí SPDY.
  2. Ochrana uživatelů před odposloucháváním / podstrčením obsahu. U méně významných webů spíš teoretická hrozba.

Proč nepřejít na HTTPS

  1. Cena – certifikát, platba za vlastní IP adresu, náklady realisace přesunu.
  2. Seznam – ztráta návštěvnosti z vyhledávání kvůli změně všech URL.
  3. Externí skripty a rámy načítané z HTTP – budou v prohlížečích blokovány.
  4. Něco se rozbije.

Při přesunu osobního webíku, kam chodí 5 lidí denně z nových prohlížečů, je jediným důvodem proti náklad jednorázového přesunu.

U jiných webů se těch důvodů ale může sejít více, což učiní přesun značně nerozumným, pokud nepřinese adekvátní výhodu.

Nový web

V případě budování nového webu hovoří proti použití HTTPS v podstatě pouze cena. Nehrozí risika spojená s přesměrováním/přesunem a problémem ve vyhledávačích.

Poděkování

Děkuji Michalu Špačkovi za připomínky, které pomohly v článku odstranit některé chyby, nepřesnosti a nejasnosti.

Odkazy jinam