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
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.
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í.
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.
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.
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.
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ší).
Ú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.
Výsledek odchycené šifrované komunikace můžete vidět níže.
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
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