Je komunikace přes HTTPS bezpečná?

Thai Duong a Juliano Rizzo prohlásili, že jsou schopni pomocí JavaScriptu dešifrovat data mezi uživatelem a serverem přenášená přes HTTPS. Přičemž začlenění takového škodlivého JavaScript kódu do stránky může být provedeno mnoha různými způsoby. Jedním z nich může být ostatně i malvertising, o kterém jsme nedávno psali.

V rámci HTTPS se k zajištění šifrovaného spojení mezi dvěma body používá protokol TLS (Transport Layer Security), což je přímý následovník SSL (Secure Socket Layer). V současné době jsou k dispozici tři verze protokolu TLS a to TLS 1.0, TLS 1.1 a TLS 1.2. To, jaká verze protokolu TLS bude použita, si dohadují obě strany během fáze nazvané TLS handshake, kdy jedna strana vystupuje zpravidla jako klient a druhá jako webový server. V rámci této fáze je zvolena nejvyšší verze protokolu, kterou obě strany podporují, šifrovací algoritmus a samotný šifrovací klíč.

Byť jsou vyšší verze TLS k dispozici již několik let, je nejpoužívanějším protokolem stále TLS 1.0, který navíc obsahuje zranitelnost, které může útočník zneužít a následně dešifrovat přenášená data. Ač je tato zranitelnost známá poměrně dlouho, všichni si mysleli, že ji není možné zneužít, ale to už neplatí. Pomocí exploitu, autory nazvaném BEAST (Browser Exploit Against SSL/TLS, česky bestie) je možné odchytit a dešifrovat cookies platné pro aktuální sezení. Exploit provede útok na symetrickou blokovou šifru AES (resp. její slabé místo, kterým je inicializační vektor a CBC mód), která je v rámci TLS 1.0 použita, a proti které je možné vést choosen-plaintext útok.

Na první pohled se zdá, že nejjednodušším řešením, jak se bránit před možným útokem, je upgrade nebo instalace takového prohlížeče, který TLS 1.2 podporuje. V době psaní tohoto příspěvku podporuje TLS 1.1 a TLS 1.2 pouze Microsoft IE 8 a IE 9 a dále pak ještě Opera. (Ve výchozím nastavení IE není podpora tohoto protokolu zapnuta, ta je zapnuta jen v prohlížeči Opera.) Přičemž další nejpoužívanější prohlížeče jako je Mozilla Firefox a Google Chrome TLS 1.2 nepodporují. Když se podíváme, jaké je postavení jednotlivých prohlížečů na trhu, zjistíme, že se tento problém týká poměrně značného počtu uživatelů.

O tom, zda váš prohlížeč podporuje vyšší verzi protokolu TLS, se můžete přesvědčit sami, stačí, když např. v IE 7 kliknete na Nástroje – Možnosti Internetu – Upřesnit – Nastavení – Zabezpečení a uvidíte, že v nabídce je pouze TLS 1.0. A podobně je tomu i ve Firefoxu 6, kde musíte kliknout na Nástroje – Možnosti – Rozšířené – Šifrování.

Jenže jak již bylo řečeno, TLS 1.2 musí podporovat obě strany, což znamená, že používání té správné verze prohlížeče a protokolu vás nezachrání. TLS 1.2 totiž musí podporovat i server, ke kterému se připojujete, a tam je situace mnohdy ještě horší. Pokud tuto vyšší verzi protokolu server nepodporuje, tak se s vaším prohlížečem dohodne na použití TLS 1.0, kterou umí oba, a vězte, že naprostou většinu serverů na internetu ke komunikaci přes TLS 1.2 nedonutíte. Schválně navštivte stránky společnosti Qualys a zkuste jejich nástroj pro vyhodnocování konfigurace SSL serverů. Jednoduše zadejte adresu serveru, ke kterému se připojujete přes HTTPS, a počkejte si na výsledek.

Závěr: Proveďte upgrade systému a prohlížeče na vyšší verzi, která protokol TLS 1.1 nebo TLS 1.2 podporuje. V případě, že není upgrade systému možný a musíte i nadále na svém serveru používat pouze TLS 1.0, může být vhodným řešením použít v rámci TLS místo blokové šifry AES proudovou šifru RC4.

Pokud vás tento článek zaujal, můžete odkaz na něj sdílet.

Štítky:

  1. admin

    Také je možné přesunout proudovou šifru RC4 na první místo, viz. workaround pro IIS.

  2. tomasii

    Dobrý den.
    Používám IS 8.0.6001.18702, ale přesto je v nastavení jen TLS 1.0
    Dle článku by měl být k dispozici TLS 1.1, nebo TLS 1.2.
    Proč to tak není?
    Dík za odpověď
    Tomáš Naxera

  3. admin

    Záleží bohužel i na verzi OS, viz http://msdn.microsoft.com/en-us/library/windows/desktop/aa380512%28v=vs.85%29.aspx

  4. tomasii

    Mám W-XP verze 5.1 (sestavení 2600.xpsp_sp3_gdr.101209-1647 : Service Pack 3). V uvedeném článku píše autor o potřebě patche od MS. Ten ale vzhledem k datu příspěvku, asi není k dispozici. Na stránkách MS ( http://technet.microsoft.com/en-us/library/dd560644(WS.10).aspx ) k aktivaci TLS 1.2 píší: „Using Group Policy, enable the System cryptography: Use FIPS compliant algorithms for encryption, hashing, and signing security policy setting. Open Internet Explorer. On the Tools menu, click Internet Options. Click the Advanced tab, and then select the Use TLS 1.2 check box“. Nevím ale, jak to nastavit (jestli to vůbec jde).

  5. admin

    Uvedený postup jak aktivovat TLS 1.2 je platný pro systémy Windows 7 a Windows Server 2008 R2. Windows XP TLS 1.2 nepodporuje.

  6. tomasii

    Dík

  7. Harry

    Legrační je, že ani web Qualysu, tedy specialisty na hledání zranitelností, nepodporuje TLS 1.1 a 1.2 (tedy pokud nelže jejich vlastní test :)
    OT: Děkuji za hlídání komentářů. Ještě by se hodilo přidat datum vzniku článku, zdaleka ne všude jsou diskuze, které napoví.


K článku “Je komunikace přes HTTPS bezpečná?” se zde nachází 7 komentářů.

Diskuse na tomto webu je moderována. Pod článkem budou zobrazovány jen takové komentáře, které nebudou sloužit k propagaci konkrétní firmy, produktu nebo služby. V případě, že chcete, aby z těchto stránek vedl odkaz na váš web, kontaktujte nás, známe efektivnější způsoby propagace.

Přihlášeným uživatelům se tento formulář nezobrazuje - zaregistrujte se.

Jméno:(požadováno)
E-mail:(požadováno - nebude zobrazen)
Web:

Text vaší reakce: