Je šifrování českých bank bezpečné, nebo je to jen iluze?

7. 7. 2010
Doba čtení: 10 minut

Sdílet

Bezpečnost elektronického bankovnictví je založena mimo jiné na SSL šifrování webových stránek. Zabezpečení ale není jen otázkou aktivace SSL, důležitou roli hrají také certifikáty, šifrovací algoritmy nebo třeba protokoly pro výměnu klíčů. Některé banky bohužel iluzi bezpečí jen vytvářejí.

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ň?

bitcoin_skoleni

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.

Autor článku