čtvrtek 23. února 2017

Je HTTPS dobrý sluha a špatný pán?

Dnes hacknuli web ČSSD. On to tedy hack v pravém slova smyslu průniku na server není, na serveru se nic nezměnilo, ani se z něj nebyly získány informace. Byla jen využita jeho školácká zranitelnost XSS a uživatel tak viděl jiný obsah, než na webu je. Při této příležitosti jsem si uvědomil jednu věc, která je sice zcela jasná, ale vlastně jsem o ní nikde moc neslyšel mluvit.

Dnes je strašně v módě vše převádět na HTTPS, obyčejní uživatelé jsou HTTPS masírování a mnohdy z toho nabývají pocit, že když vití HTTPS, tak jsou v bezpečí. To samozřejmě není pravda, HTTPS je pouze jedna malá část skládačky. Nejvíce slyším běžným uživatelům říkat, že díky HTTPS nikdo nemůže přečíst obsah toho, na co se oni dívají (pomiňme teď věci jako je nějaká podniková transparentní HTTPS proxy atd) a že je zabezpečeno jejich přihlašování před odposlechnutím cestou z prohlížeče na server.
Pro mě je první část tohoto argumentu to nejméně podstatné, co na HTTPS vidím. Opravdu je mi celkem jedno, že někdo vidí obsah na cnews.cz, který si čtu. Za daleko podstatnější je pro mě to, že mám rozumnou míru jistoty, že se nikdo do komunikace nevlomil, nezměnil ji. Ale zpět k tomu, o čem jsem vlastně chtěl mluvit.

Na tom dnešním příkladu jsou pro uživatele zajímavé dvě věci:
  1. Vidí zelený zámeček indikující, že je vše OK.
  2. Když zkontrolují certifikát, tak je také OK.
  3. Doména souhlasí.
Pokud by byl běžný uživatel vycvičen a tyto věci kontroloval, tak bude spokojen. Ale je to velmi falešný pocit bezpečí, asi jako při používání starého antivirového programu. Nebezpečí je ukryto až dále v URL, za názvem domény. Jenže uživatel nemůže tušit, co se v URL může vyskytovat a co ne, to ví pouze vývojář webu. Pokud je web zranitelný, například na jednoduchý XSS útok, jako v tomto případě, nemá uživatel šanci poznat, že se stal obětí podvodu. Pro zajímavost, jak upozornil Michal Špaček, tak zelený zámeček lze podvrhnout přes favicon a to také mnoho uživatelů nerozliší.

Proto prosím všechny HTTPS propagující osoby, masírujte uživatele současně s HTTPS i dalšími instrukcemi, které eliminují například phishing
Samozřejmě také prosím vývojáře, aby dodržovali zásady vývoje bezpečného webu, svá díla nechávali testovat, a také nepovažovali za nějakou potupu spolupracovat s profesionály typu Michal Špaček nebo Roman Kümmel, protože běžný vývojář podle mě nemá tolik zkušeností jako někdo, kdo se danou problematikou detailně zabývá.




PS: Proti HTTPS opravdu nic nemám