Hlavní navigace

SSL v ohrožení: komunikaci je možné dešifrovat

Petr Krčmář

SSL dostává v posledních měsících jednu ránu za druhou. Nejprve byly napadeny dvě certifikační autority, což vyvolalo řadu otázek okolo bezpečnosti modelu PKI. Nyní bylo napadeno samotné SSL a autoři útoku tvrdí, že mohou odposlechnout libovolnou komunikaci. V důsledku tak mohou odcizit cookie a celé sezení.

Thai Duong a Julian Rizzo, dva známí bezpečnostní analytici, předvedli zranitelnost SSL a TLS, která umožňuje odposlouchávat šifrovanou komunikaci dvou stran. Podle obou autorů byly zranitelnosti nalezeny prakticky ve všech aktuálních implementacích SSL/TLS a ohroženy jsou miliony webů, které se na šifrování spoléhají.

Podle dostupných informací je útok úspěšný i proti mechanismu HSTS, který zajišťuje, že jsou webové stránky načteny jen v případě, že jsou plně zašifrovány.

Útok nazvaný BEAST (zkratka Browser Exploit Against SSL/TLS) postihuje TLS 1.0, SSL 3.0 a všechny předchozí verze. Novější verze TLS 1.1 a 1.2 jsou proti němu odolné, ale zase nejsou téměř vůbec rozšířené v prohlížečích ani web serverech. Úspěšný útok tak může ohrozit uživatelské účty téměř na všech webech. Zmiňovány jsou zejména Google, PayPal a další.

BEAST je jiný než doposud publikované útoky proti HTTPS, komentoval útok Thai Duong. Zatímco ostatní se zaměřují na podvržení identity, BEAST útočí přímo na protokol. Pokud víme, je BEAST prvním útokem, který opravdu dešifruje HTTPS komunikaci. Zatím jsou k dispozici jen obecné informace, ale oba autoři chtějí během dnešního dne předvést reálný útok na PayPal v rámci své přednášky na konferenci Ekoparty security conference v Buenos Aires.

Už teď ale víme, na jakém principu útok BEAST pracuje. Staví na dlouho známé slabině TLS, kterou ale doposud nikdo nedokázal reálně využít a mnoho odborníků se domnívalo, že to vůbec není možné. Potíž je v tom, že jednotlivé bloky komunikace jsou šifrovány pomocí AES, která mění klíče podle obsahu předchozích bloků. BEAST se snaží tento proces zmanipulovat tak, aby byly jednotlivé bloky šifrovány stejnými klíči. U obsahu o nízké entropii (a přibližně známém obsahu) je pak možné spolehlivě odhadnout původní data.

BEAST se skládá ze dvou kroků a využívá klasického útoku man-in-the-middle, při kterém sleduje komunikaci klienta se servery. Jakmile dojde na spojení se zajímavým serverem, útočník podstrčí klientovi vlastní javascriptový kód například v přidaném iframe nebo přímým vložením do stahované stránky. Tento skript se postará o manipulaci šifrovacího algoritmu, který začne generovat slabě šifrované bloky.

Poté nastoupí klasický síťový sniffer, který komunikaci zachytí a dešifruje. Dešifrování ale neprobíhá v reálném čase, ale prolomení jednoho bajtu ze zachycené cookie trvá přibližně dvě sekundy. Pro získání kompletního identifikátoru sezení je tak potřeba řádově deset minut. Rizzo ale upozorňuje na to, že čas je možné v budoucnu významně zkrátit a útok odcizení identity provést téměř okamžitě.

Řešením je samozřejmě přechod na novější TLS verze 1.1 či 1.2. Přestože je první jmenovaná verze k dispozici už od roku 2006, využívá jí podle výzkumu firmy Qualys jen asi desetina procenta webů.

Šifrování na webu (Zdroj: Qualys)

Problém je v tom, že lidé nejsou ochotni věci zlepšovat, dokud k tomu nemají dobrý důvod. A tím je obvykle až úspěšný útok, říká Ivan Ristic, ředitel společnosti Qualys. To je strašné, že?

Ani Mozilla, ani projekt OpenSSL ještě TLS 1.2 neimplemen­tovali. Konkurenční Microsoft jej sice v Internet Exploreru i IIS má, ale není standardně zapnutý. Podobně je na tom Opera, která jej taky běžně nepoužívá. Podpora pro novější TLS tedy prakticky neexistuje, takže neexistuje ani snadná obrana proti útoku BEAST.

Google se nyní ve vývojové verzi svého prohlížeče Chrome snaží útoku bránit tím, že náhodně fragmentuje přenášená data do více šifrovaných bloků. Situace útočníka by se tím měla výrazně ztížit, protože nebude předem vědět, jaká data konkrétní blok obsahuje.

Zdroje k dalšímu čtení

Našli jste v článku chybu?
23. 9. 2011 12:51
Jouda (neregistrovaný)

protokol založený na asymetrickém šifrování (např. AES)...

Odkdy je AES asymetrický algoritmus?

23. 9. 2011 17:13
MilanK (neregistrovaný)

No já jako nejpravděpodobnější scénář vidím toto: JS se podstrčí do nějaké nešifrované stránky (může to být http://www.seznam.cz). JS naváže TLS spojení s https://mail.google.com (aniž by se přihlásil ke schránce) a protože má spojení ve své moci, pošle si jím potřebná známá data. Uživatel mezi tím surfuje někde jinde, zatím co se na pozadí podaří útočníkovi rozšifrovat to TLS spojení iniciované JS. Když potom stejný browser přistoupí na https://mail.google.com na popud uživatele, použije prohlí…