Technologie SSL/TLS slouží k zabezpečení datových přenosů pomocí šifrování. Můžeme pomocí ní vytvořit bezpečný tunel mezi dvěma koncovými body – v tomto případě počítač klienta a server banky. HTTPS je protokol HTTP zabezpečený pomocí této technologie.
Data přenášená tímto tunelem jsou šifrovaná a nikdo je cestou nemůže odposlouchávat nebo upravovat – do tohoto tunelu jednoduše řečeno zvenčí „není vidět“. Teoreticky. Celá věc je totiž trochu složitější, používají se různé protokoly pro výměnu klíčů a jejich verze a různé šifrovací algoritmy a délky klíčů… SSL/TLS tedy není jen otázkou máme či nemáme, ale záleží na jeho konfiguraci – nastavení. V krajním případě SSL/TLS tunel pouze vytváří iluzi bezpečnosti, ale ve skutečnosti jsme na tom stejně, jako kdybychom přenášená data nešifrovali vůbec. V následujícím textu se seznámíme s tím, jak jsou na tom české banky z hlediska konfigurace SSL/TLS.
Kromě toho, že ke zkoumání bezpečnosti jednotlivých HTTPS serverů můžeme použít různé programy běžící na našem počítači, máme k dispozici i online testovací nástroje. Pro tuto analýzu jsem využil služeb nezávislé společnosti Qualys, Inc. – SSL Labs – která se zabývá počítačovou bezpečností od roku 1999, kdy byla založena (sídlí v Kalifornii v USA).
Naměřené výsledky jsem zpracoval do následující tabulky. Test probíhal 25. 6. 2010, takže se hodnoty vztahují k tomuto datu. Kliknutím na název banky se dostanete k podrobným aktualizovaným výsledkům na stránkách SSL Labs. Známky jsou orientační (A = výborně, F = nedostatečně). Body představují souhrnné hodnocení (po rozkliknutí odkazu uvidíte, z čeho se skládá), maximum je 100 bodů – čím více, tím lépe. Sloupeček MITM znační, zda tu hrozí Man-in-the-middle útok založený na tzv. znovuvyjednání (renegotiation), tzn. ne = dobré, více o něm píše Ivan Ristić (není to zdaleka jediný způsob, jakým lze MITM útok provést). CA značí certifikační autoritu, která podepsala certifikát dané banky. EV je zde Extended Validation – druh certifikátu, viz níže (ano = drobné plus). Sloupeček server značí software používaný na straně serveru (resp. jméno, jakým se nám server sám představuje).
Banka | Známka | Bodů | MITM | CA | EV | Server |
AXA Bank | A | 88 | ne | VeriSign | ano | tetrade HSP/4.2.20 |
Evropsko-ruská banka | A | 88 | ne | VeriSign | ano | IBM_HTTP_Server (Apache) |
GE Money Bank | A | 88 | ne | VeriSign | ano | IBM_HTTP_Server (Apache) |
J & T Banka | A | 87 | ne | VeriSign | ano | - |
LBBW Bank | A | 85 | ano | VeriSign | ano | Omikron OSIS 1.03.005 |
Raiffeisenbank | A | 85 | ne | VeriSign | ne | Apache |
Komerční banka | A | 84 | ne | VeriSign | ano | IBM_HTTP_Server (Apache) |
BRE Bank (mBank) | A | 84 | ano | VeriSign | ano | mBank Web Server |
Citibank | A | 81 | ano | VeriSign | ne | unknown |
ING Bank | A | 81 | ano | VeriSign | ne | Apache-Coyote/1.1 |
Privat Bank | A | 81 | ano | VeriSign | ne | IBM_HTTP_Server (Apache) |
Raiffeisen stavební spořitelna | B | 76 | ne | Thawte | ne | Microsoft-IIS/7.0 |
Commerzbank | C | 61 | ne | TrustCenter | ne | Apache |
Raiffeisenbank im Stiftland | C | 60 | ne | VeriSign | ne | - |
Oberbank | C | 57 | ano | VeriSign | ne | Omikron OSIS 1.03.003 |
Poštová banka | C | 57 | ne | VeriSign | ano | Microsoft-IIS/6.0 |
UniCredit Bank | C | 52 | ne | VeriSign | ne | Apache |
Modrá pyramida stavební spořitelna | C | 52 | ano | Thawte | ano | Apache |
Hypoteční banka | C | 52 | ano | Thawte | ne | Apache |
Volksbank | C | 52 | ne | VeriSign | ne | IBM_HTTP_Server (Apache) |
Stavební spořitelna České spořitelny | C | 52 | ano | Thawte | ne | Apache |
The Royal Bank of Scotland | C | 52 | ano | VeriSign | ne | Microsoft-IIS/6.0 |
Banco Popolare | C | 52 | ne | VeriSign | ne | - |
Česká spořitelna | D | 48 | ano | VeriSign | ne | Apache |
Wüstenrot | D | 48 | ne | Thawte | ne | Microsoft-IIS/6.0 |
Českomoravská záruční a rozvojová banka | F | 0 | ne | I.CA | ne | Microsoft-IIS/7.0 |
Českomoravská stavební spořitelna | F | 0 | ano | GlobalSign | ano | Microsoft-IIS/6.0 |
Saxo Bank | F | 0 | ne | VeriSign | ne | Microsoft-IIS/6.0 |
Fio banka | F | 0 | ne | Equifax | ne | Apache |
Československá obchodní banka | F | 0 | ano | GlobalSign | ano | Microsoft-IIS/6.0 |
Ne všechny banky (držitelé bankovní licence ČNB) nabízejí internetové bankovnictví nebo něco, co by se dalo podrobit našemu testu. Testy jsem tedy neprováděl u těchto subjektů: Bank of Tokyo-Mitsubishi UFJ (Holland) N.V., Crédit Agricole Corporate and Investment Bank S.A. Prague, organizační složka, Deutsche Bank Aktiengesellschaft Filiale Prag, organizační složka, Fortis Bank SA/NV, pobočka Česká republika, HSBC Bank plc - pobočka Praha, PPF banka a.s., Všeobecná úverová banka a.s., pobočka Praha; zkráceně: VUB, a.s., pobočka Praha, Česká exportní banka, Waldviertler Sparkasse von 1842 AG.
Velice zvláštní je situace u Waldviertler Sparkasse von 1842 AG, která HTTPS šifrování nepoužívá a přihlašovací formulář k jejímu bankovnictví se nachází na stránce načtené nešifrovaným protokolem HTTP. Takže tady nebylo co měřit. Jejich bankovnictví je realizované formou ActiveX komponenty, která už elektronicky podepsaná je (VeriSign). Za zajištění bezpečné komunikace s bankou je potom zodpovědná tato komponenta. Není mi ale jasné, proč tato banka nepoužívá HTTPS pro samotné načtení stránky s formulářem – vždyť certifikáty podepsané důvěryhodnou CA zase tak drahé nejsou. (pokud se pokusíte cestu ručně přepsat na https://, certifikát je vydaný na jméno *.web4u.cz)
U Českomoravské záruční a rozvojové banky je třeba poznamenat, že tato banka v testu propadla (0 bodů) z důvodu, že její certifikát je podepsaný I.CA, což je certifikační autorita, která není běžně v internetových prohlížečích nainstalována a proto ji test považuje za nedůvěryhodnou. To není vyloženě špatně – pokud je správně zvládnut proces instalace certifikátu CA na počítače klientů, jedná se o bezpečné řešení. V ostatních měřených disciplínách (než je důvěryhodnost certifikátu) dosáhla tato banka dobrých výsledků.
Certifikační autority a EV certifikáty
Certifikační autorita (CA) je organizace, která ověřuje totožnost jiných subjektů (firem, lidí…) a na základě toho jim podepisuje jejich šifrovací certifikáty. Jedná se o koncept tzv. důvěryhodné třetí strany – místo abychom sami ověřovali pravost každého serverového certifikátu, máme v počítači nainstalované certifikáty několika (celkem mnoha) certifikačních autorit, kterým věříme, že totožnost daných subjektů zkontrolovaly správně (a na základě toho vydaly certifikát).
Nejvíce bank si nechalo vystavit svůj certifikát společností VeriSign:
Certifikační autorita | Počet bank |
VeriSign | 20 |
Thawte | 5 |
GlobalSign | 2 |
Equifax | 1 |
I.CA | 1 |
TrustCenter | 1 |
Extended Validation (EV) jsou „lepší“ certifikáty – neliší se ani tak technologií, jako spíš procesem ověřování subjektu, kterému je certifikát vydáván. Ověřování totožnosti je důkladnější a je těžší ho získat. Také je vydání těchto certifikátů dražší. Uživatel je o nich obvykle informován webovým prohlížečem formou zeleného pruhu v adresním řádku.
EV | Počet bank | Průměrně bodů | Nejvíce bodů | Nejméně bodů |
ano | 11 | 64,8 | 88 | 0 |
ne | 19 | 52,1 | 85 | 0 |
EV certifikátům jistý přínos ke zvýšení bezpečnosti nelze upřít, nicméně není to věc, bez které by se nedalo žít – jak je vidět, většina bank je nepoužívá. Banky s EV certifikáty dosáhly v testu v průměru více bodů – ovšem tyto body nemají díky EV certifikátu, ale díky správně nastaveným serverům. Že EV certifikát není zárukou úspěchu dokládá několik bank, které i přes jeho vlastnictví dopadly v našem testu velice špatně.
Potíž je v tom, že i když banka bude EV certifikát mít, pokud se útočníkovi podaří získat certifikát na jméno banky od libovolné CA, kterou má uživatel nainstalovanou v prohlížeči, pravděpodobně mu útok projde. Na uživatele totiž nevyskočí žádné varovné okno, vše bude vypadat v pořádku – jen zelený proužek bude chybět. A toho si zdaleka ne každý uživatel všimne.
Podobné je to v otázce známých (VeriSign, Thawte atd.) vs. neznámých (mnoho dalších, podívejte se do svého prohlížeče) CA. U bank se tak nějak očekává, že budou mít certifikát od nějaké věhlasné CA, ale nakonec to není moc platné, protože pokud by se útočníkovi podařilo získat podvržený certifikát od jiné CA, pravděpodobně mu to projde – málokterý uživatel totiž kontroluje, kdo je vydavatelem certifikátu a u mnoha uživatelů je úspěchem už jen to, že dávají pozor, aby byl certifikát považovaný prohlížečem za důvěryhodný, a neodkliknou každé okno, které na ně vyskočí.
Uživatelé svobodného prohlížeče Firefox mohou využít rozšíření Certificate Patrol, které je upozorní, kdykoli se certifikát jimi navštěvovaných stránek změní. A to i v případě, že je nový certifikát „důvěryhodný“ (podepsaný CA nainstalovanou v prohlížeči). Uživatel by při každém takovém upozornění měl zpozornět – certifikáty se totiž nemění příliš často, obvykle se vydávají s platností na dva roky. Pokud se certifikát změnil (delší dobu) před vypršením platnosti, dost možná se děje něco nekalého. V takovém případě můžete zavolat do banky a zeptat se, jestli certifikáty měnili.
Serverový software
Webový server posílá uvnitř odpovědi klientovi textový řetězec, kterým se identifikuje – do něj se dává název serverového softwaru případně jeho verzi. Teoreticky si tam provozovatel může vložit cokoli, ale budeme jim věřit :-) Taky tam nemusí vkládat nic a neukazovat světu, jaký software používá – této možnosti několik bank využilo.
Serverový software | Počet bank | Průměrně bodů | Nejvíce bodů |
Apache | 14 | 62,6 | 88 |
Microsoft-IIS | 8 | 29,1 | 76 |
ostatní | 4 | 78,5 | 88 |
neznámý | 4 | 70 | 87 |
Nejvíce bank používá webový server Apache (nebo software na jeho zdrojových kódech postavený). V průměru dosáhly servery běžící na Apachi 62,6 bodů. Výrazně horších výsledků dosáhly servery běžící na Microsoft IIS – pouhých 29,1 bodů. Čtyři banky používaný software neuvádějí a čtyři používají nějaký jiný.
Doporučení pro banky
Analyzujte současnou situaci a zvažte výhody a nevýhody současné konfigurace HTTPS. Kolik vás změna nastavení bude stát? Nic? Trochu času? A kolik vás bude stát útok na vaši banku? Jedná se o nějaký záměr, nebo jsou takto servery nastavené jen „ze zvyku“? Někdo jen „zapomněl“ změnit výchozí nastavení? Skutečně je potřeba, aby vaše servery podporovaly i zastaralé šifry a protokoly, které se už delší dobu považují za nebezpečné a nedoporučuje se je používat? Pravděpodobně ne – vždyť i tak zaostalý prohlížeč, jako je Internet Explorer (verze 6), zvládá šifrovanou komunikaci se serverem, který v testu dosáhl 91 bodů (nebo více). Konkurence má bezpečněji nastavené servery – brání něco nastavení těch vašich na stejnou úroveň?
Doporučení pro klienty
- Nepropadejte panice a nejednejte impulzivně. Není nutné hned rušit účet a přecházet k jinému ústavu.
- Požádejte svou banku, aby vám sdělila, proč používá právě tuto konfiguraci HTTPS, a jestli by nemohla svoje servery nastavit bezpečněji.
- Pravděpodobně používáte k autorizaci aktivních operací (zejména plateb) kódy zasílané pomocí SMS. Dbejte zvýšené opatrnosti – kontrolujte, zda kód, který opisujete do počítače, přísluší k platbě, kterou chcete zadat (to byste měli dělat tak jako tak). Kdyby útočník odposlechl jméno a heslo přenášené po HTTPS, závisí bezpečnost vašeho účtu už jen na vašem mobilním telefonu (nebo kryptografickém kalkulátoru). Nenechte si ho ukrást. Pokud vaše banka používá šifrované SMS, jste na tom lépe.
- Vyhýbejte se nebezpečným počítačovým sítím. Doma, v případě velkého seriózního poskytovatele internetu, moc velké nebezpečí nehrozí – zde vás může odposlouchávat pravděpodobně jen Policie, tajná služba a další lidi ze státní správy. Vyšší riziko je u sítí ve škole, v práci nebo u komunitních sítí. Osoby, které zde mají přístup k síťové infrastruktuře, mohou odposlouchávat data proudící po síti a v určitých případech se jim může podařit je dešifrovat. Záleží na vás, jak moc tyto lidi znáte a jak moc jim věříte. Zvýšené opatrnosti dbejte v případě bezdrátových sítí (WiFi), bez ohledu na to, kdo je provozuje.
- Pokud by k vykradení vašeho účtu přeci jen došlo, banka se bude snažit celou věc ututlat a raději vás odškodní, než aby utrpělo její dobré jméno. Takže o peníze pravděpodobně nepřijdete. Nepříjemná zkušenost to ale bude tak jako tak, takže je lepší se jí vyhnout.
- Bezpečnost není jen HTTPS šifrování, záleží na mnoha dalších faktorech. O tom si povíme třeba někdy příště – zatím snad jen, že: používat elektronické bankovnictví na zavšiveném počítači prolezlém viry a spywarem není úplně dobrý nápad.
Závěr
Bezpečnost počítačových systémů je velice komplexní záležitost a SSL/TLS bezpečnost, kterou jsme dnes zkoumali, tvoří jen její (malou) část. Na druhou stranu řetěz je tak silný jako jeho nejslabší článek. Bezpečné nastavení serverů nemusí stát ani korunu a může spočívat třeba jen ve dvou řádcích v konfiguračním souboru – stačí vědět, jak na to. Nezáleží na tom, kolik jste utratili za licence k softwaru (to bývá někdy dokonce kontraproduktivní) nebo kolik peněz jste dali za váš Extended Validation certifikát od věhlasné certifikační autority. Bezpečnost si nejde koupit jako nějaký produkt – bezpečnost musí prostoupit celou vaší organizací a je potřeba ji neustále udržovat a rozvíjet. Bezpečný systém lze postavit na svobodném (otevřeném) softwaru, který je zdarma a dostupný všem. Na čem záleží, jsou znalosti a lidé.
Přibližně za měsíc se bude test opakovat. Věřím, že banky na nastavení svých serverů zapracují a ty, které dnes nedopadly moc dobře, nás potěší změnou k lepšímu.