Magazín o bezpečnosti

Magazín o SSL certifikátech a certifikačních autoritách pro Vás píší odbornící z SSLmarketu.

Ukrást přihlašovací údaje je díky HTTP snadné

Data na internetu jsou standardně přenášena HTTP protokolem nešifrovaně. Dnešní článek se věnuje praktické ukázce odposlechu přihlašovacích údajů do webového e-mailu. Odposlech je možný při použití protokolu HTTP na síti, ke které má útočník přístup (WiFi sítě a veřejné hotspoty). Sledovat je možné úplně vše, od e-mailové komunikace až po chat.

Softwarová příprava

Logo programu Wireshark

Pro zachycení síťové komunikace je možné použít populární open-source program Wireshark. Není třeba žádných speciálních nebo placených nástrojů, Wireshark je freeware.

Aplikace Wireshark funguje jako protokolový analyzér a paketový sniffer; umožňuje sledovat a zaznamenat data "tekoucí" přes síťové rozhraní (síťovou kartu), nebo ve sledované počítačové síti. Program jsem stáhl přímo z jeho webových stránek, dostupné jsou verze pro Windows a OS X, uživatelé ostatních systémů mohou zkompilovat aplikaci ze zdrojových kódů.

Simulace odposlechu a získání přihlašovacích údajů

Po jeho instalaci a spuštění vyberte vaší síťové rozhraní (síťovou kartu), přes kterou bude komunikace probíhat.

Hlavní obrazovka program Wireshark

Vzhledem k objemu sledovaných dat doporučuji filtrovat pakety, které nás skutečně zajímají. K tomu slouží volba Capture Options, ve které jsem nastavil sledování  komunikace na portu 80, který je určen pro protokol HTTP a nezabezpečené surfování. Tímto nastavením jsem odfiltroval ostatní síťový provoz, který nebyl relevantní.

Wireshark - nastavení filtrování HTTP (port 80)

Po nastavení a kliknutí na tlačítko Start začne Wireshark zaznamenávat síťovou komunikaci, která je vidět v hlavním okně programu.

Wireshark zaznamenává síťový provoz

Nyní jsem simuloval přihlášení do webového e-mailu na webhostingu Czechia.com. Stejným způsobem se miliony uživatelů přihlašují do Gmailu nebo na Seznam.cz e-mail. Záměrně jsem pro přihlášení použil protokol HTTP, byť je šifrovaný protokol HTTPS k dispozici.

Přihlášení na webmail Czechia.com

Po úspěšném přihlášení jsem se vrátil do programu Wireshark a zastavil zaznamenávání. Vše důležité už bylo uloženo. Za krátkou chvíli nutnou pro přihlášení se záznam rozrostl a bylo třeba najít záznam komunikace, ve které je zaslání přihlašovacích údajů.

Když jsem potvrdil přihlašovací údaje, musel jsem je serveru nějak poslat. K tomu slouží metoda HTTP zvaná POST. Na tu jsem se zaměřil a vyhledal v logu výraz "POST". Do pole Filter jsem zadal výraz http.request.method == "POST"; výraz po kliknutí na Apply vyfiltroval záznam a našel paket s požadovaným HTTP requestem (požadavkem).

Celou související TCP konverzaci je možné zobrazit po kliknutí pravým tlačítkem myši na daný paket a zvolením Follow TCP stream.

Wireshark Follow TCP stream

V okně se následně zobrazí celá konverzace. V ní je možné najít zaslané přihlašovací údaje včetně použitého hesla. To jsem zvýraznil (samozřejmě je již změněno na bezpečnější).

Wirehark - odchycené přihlašovací údaje

Útočníkovi nic nebrání údaje v komunikaci najít a kdykoliv použít. Zde nepomůže ani silné heslo, protože bude opět celé čitelné. Silné heslo je naopak účinné proti slovníkovým útokům, které zkouší hádat heslo na základě slovníku s běžnými výrazy.

Pokud jste připojeni k síti, kterou může útočník sledovat (WiFi), pomůže vám pouze šifrování přenášených dat přes SSL/TLS protokol.  

Obranou je šifrovaná komunikace

Obecně známou ochranou přenosu dat na internetu je protokol SSL/TLS a šifrování dat certifikátem. Zda-li má použití HTTPS při přihlašování význam je možné ověřit stejným způsobem a stejným softwarem.

Opět jsem spustil Wireshark, v nastavení filtrování jsem však místo portu 80 zadal port 443, který se standardně pro HTTPS používá. Spustil jsem opět sledování sítě a přihlásil na stejnou e-mailovou schránku, ovšem se zapnutým HTTPS šifrováním. Pakety již putují přes HTTPS protokol a TLSv1, jak je vidět na zaznamenávané komunikaci. 

Záznam komunikace přes HTTPS

Výsledek odchycené šifrované komunikace můžete vidět níže.

Záznam konverzace šifrované přes HTTPS

Jak vidíte, nic srozumitelného jsem nezískal. Data jsou zašifrovaná, takže obsah komunikace není možné zjistit a útočník přihlašovací údaje nezíská. Konverzaci je možné dešifrovat pouze privátním klíčem, který je však bezpečně uložen na serveru.

Není důvod nešifrovat

Odborníci se shodují na tom, že dnes není žádný důvod nešifrovat. Například SSL certifikáty RapidSSL jsou dostupné od 349,- Kč na rok a jejich zřízení trvá pouze několik minut.

Poskytovatelé internetových služeb (například webového e-mailu) jsou v dnešní době povinni uživatelům zpřístupnit zabezpečené přihlášení a spojení přes HTTPS protokol.

Před každým přihlášením k jakékoliv internetové službě se ujistěte, že jste na správné doméně a že jste spojeni přes protokol HTTPS využívající platný certifikát. Doporučuji též zkontrolovat DNSSEC, pokud je doména DNSSECem podepsaná.

Ing. Jindřich Zechmeister
Specialista pro bezpečnostní SSL certifikáty
Certifikovaný Symantec Sales Expert Plus 
e-mail: jindrich.zechmeister(at)zoner.cz

Pole s hvězdičkou * jsou povinná.

Přidat komentář

Přehled komentářů

  • heslo

    19. 11. 2013 21:33:53 | míša

    Ahoj, prosím tě, dalo by se tímto způsobem vypátrat zpět heslo, které bylo změněno nějakým kokotem k osobnímu emailu na seznam.cz?

    Takhle si někdo vystřelil z mýho táty, jenomže pro něj je ten email dost důležitej a používá ho k práci. Holt závisti se meze nekladou a pak to takhle dopadá :-( Technická pomoc na seznamu samozřejmě nepomůže, dělá to za ně všechno automatický systém, který když nesedí informace, jako kontrolní otázka atd, kterou samozřejmě někdo změnil, není možné dostat se do emailu zpátky :-( Takže pokud by jsi věděl, jaká by byla možnost vrátit email do vlastních rukou, prosím napiš mi. Dík

    Odpovědět

  • heslo

    20. 11. 2013 11:17:54 | Zechmeister, SSLmarket

    Ahoj míšo, s největší pravděpodobností ne (přihlášení bude šifrované), navíc bys musela být na stejné síti, jako on.
    Podobný postup není řešením, protože je určitě i trestné.
    Je lepší se obrátit na Seznam a jejich podporu, která pomůže situaci vyřešit. Určitě Ti s tím pomůžou.

    Odpovědět

  • K bezpečné autentifikaci nemusí být HTTPS

    29. 1. 2014 16:06:49 | Martin Kokeš

    Pokud si systém přihlášení uděláte tak, že budete generovat pro každé přihlášení pár klíčů a u klienta zašifrujete formulář s heslem pomocí JavaScriptu a RSA...

    Odpovědět

  • Viditelnost dat

    27. 3. 2014 8:11:32 | Honza

    Ahoj, mohl by mi prosím někdo vysvětlit, jak je možné poslouchat síťovou komunikaci na mojí síťové kartě?

    Příklad z článku chápu, autor sniffuje svoje vlastní síťové rozhraní. Ale pokud bychom byli oba ve stejné síti a já poslal dotaz na server např. czechia.com, tak pakety putují k nastavené výchozí bráně (router), k serveru a pak zase zpět. Proč by je měl útočník vidět na svém síťovém rozhraní?

    Díky

    Odpovědět

  • mobilné siete

    28. 2. 2015 20:58:40 | Martin

    Chcem sa opýtať autora, či sa dá sledovať komunikácia medzi mnou a mobilným operátorom. Ďakujem

    Odpovědět