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

3. 7. 2013 | Jindřich Zechmeister

Podívejte se, jak jednoduché je získat vaše přihlašovací údaje, pokud nepoužíváte SSL certifikát. Data na internetu jsou standardně přenášena HTTP protokolem nešifrovaně takže veškerou vaši komunikaci je možné snadno přečíst.

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
DigiCert TLS/SSL Professional
e-mail: jindrich.zechmeister(at)zoner.cz