Hlavní navigace

Šifrování WhatsApp je lež, server umí klientům vyměnit klíče

16. 1. 2017
Doba čtení: 4 minuty

Sdílet

Světově nejpopulárnější komunikační aplikace WhatsApp se chlubí velkou bezpečností a end-to-end šifrováním. Ve skutečnosti je to ale lež, server totiž umí u klientů potichu vyměnit klíče a odposlechnout komunikaci.

V komunikační službě WhatsApp byla objevena vlastnost, která má zásadní dopad na bezpečnost šifrované komunikace. Tobias Boelter, bezpečnostní expert z University of California, totiž zjistil, že provozovatel služby má možnost si přečíst zprávy, ke kterým by neměl mít díky end-to-end šifrování vůbec přístup. Může totiž donutit klienty k výměně klíčů. Ve většině případů se o tom uživatelé vůbec nedozví.

Služba s více než miliardou uživatelů se už téměř rok chlubí tím, že podporuje end-to-end šifrování, takže nikdo nemá možnost číst komunikaci uživatelů. Ani Facebook, který je tři roky vlastníkem a provozovatelem WhatsApp, by tak neměl mít k obsahu komunikace přístup. Zprávy totiž mají být zašifrovány bezpečně pomocí klíčů, které jsou uloženy jen v zařízeních uživatelů.

WhatsApp dokonce o této vlastnosti hovoří jako o zásadní výhodě a tvrdí, že každá konverzace používá vlastní klíč. Ten je možné volitelně ověřit a získat tak jistotu, že komunikujeme se správnou protistranou. Protože je k šifrování použit bezpečný protokol Signal, který vyvinula společnost Open Whisper Systems, uživatelé předpokládali, že komunikace je skutečně bezpečná.

Server ovládá klienty

Ve skutečnosti je součástí této konkrétní implementace backdoor, který serveru dovoluje toto bezpečné šifrování obejít. Server totiž může klientům nařídit, aby zatím nedoručené zprávy znovu zašifrovaly jiným klíčem a poslaly mu je. Příjemce se o této změně navíc vůbec nedozví a odesílatel jen v případě, že v nastavení výslovně zapne zobrazování varování týkajících se šifrování. V případě drtivé většiny uživatelů tak projde výměna klíčů zcela potichu.

Zobrazení těchto notifikací je možné najít v menu Settings → Account → Security pod položkou „Show Security Notifications“. Uživatel se pak dozví o tom, že protistrana vyměnila šifrovací klíče.

Tímto způsobem je možné se skutečně dostat ke komunikaci, která by měla zůstat utajena. Pokud by byl WhatsApp požádán vládní organizací k vydání záznamů komunikace, mohl by k nim touto cestou získat přístup, říká Tobias Boelter. Chybu prý Facebooku hlásil už v dubnu 2016, ale dostalo se mu odpovědi v tom smyslu, že jde o „očekávané chování“ a firma se problémem dále nezabývala.

Funkce totiž má své opodstatnění a využívá se například ve chvíli, kdy uživatel vymění telefon nebo přeinstaluje aplikaci. Původní klíče jsou pak ztraceny a nový telefon je nezná. Pokud byly mezi tím uživateli poslány zprávy zašifrované starým klíčem, server vyzve odesílatele k jejich přešifrování a znovuodeslání. Pak je doručí uživateli do nové instalace aplikace.

Nové klíče jsou samozřejmě doručovány pomocí infrastruktury WhatsApp a pokud uživatel znovu neprovede jejich ověření, je možné mu podvrhnout libovolný klíč. Služba tak může velmi snadno provést útok typu man-in-the-middle a oběma komunikujícím stranám podvrhnout vlastní klíče.

Problém není ani tak v samotné možnosti vyměnit klíč, jako v tom, že se o změně uživatel ve výchozím stavu nedozví. Chyba rozhodně není v protokolu, ale je v konkrétní implementaci. Stejný protokol například používá aplikace Signal (kterou doporučuje Edward Snowden), která při výměně klíčů velmi hlasitě protestuje a žádá od uživatele jejich nové ověření. WhatsApp to nedělá.

I když možná neúmyslná, pořád díra

Na odhalení problému velmi rychle zareagoval Open Whisper Systems s vlastním prohlášením, ve kterém tvrdí, že nejde o backdoor, ale o nutnou funkcionalitu. Podle jejich slov se velmi podobně chová většina šifrovacích systémů, vše je proto v pořádku a normální. WhatsApp nedává vládám ‚backdoor‘ do svých systémů a bude bojovat proti jakémukoliv požadavku k jeho vytvoření.

Tvrdí také, že takto je možné znovu zašifrovat jen ty zprávy, které nebyly doposud doručeny klientovi. Nedodává ale, že zprávy o stavu doručení předávají stejné servery, které jsou schopné přikázat výměnu klíčů. Ve skutečnosti je tedy možné v libovolnou chvíli komunikaci pozdržet, klíče vyměnit a nechat si zprávy poslat v dešifrovatelné podobě.

Dalším argumentem proti zneužitelnosti je podle firmy to, že servery nemají informace o tom, zda konkrétní klienti mají zapnuté či vypnuté oznamování změn klíčů. Útočník prý tak nemůže sbírat informace o zranitelných uživatelích. Protože je ale notifikační volba ve výchozím stavu vypnutá, drtivá většina uživatelů je proti tomuto útoku bezbranná.

Firma tvrdí, že se rozhodně nejedná o backdoor. Ve skutečnosti ale nezáleží na tom, jak takovou vlastnost pojmenujete. End-to-end šifrování má sloužit k tomu, aby v žádném bodě přenosové trasy nebylo možné komunikaci ohrozit. Pokud je toto základní pravidlo porušeno, je poškozen celý princip šifrování a bezpečné prostředí mizí.

UX DAy - tip 2

Na svou obhajobu společnost také říká, že pro uživatele je lepší, když notifikace tohoto typu nevidí. Pravděpodobně by je taková věc obtěžovala a stejně by ji slepě ignorovali. Ovšem existuje velký rozdíl mezi tím, když uživatel na důležité oznámení reaguje zbrkle a chybně, a když žádné oznámení nedostane a reagovat na něj nemůže.

Je úplně jedno, jestli jde o implementační nedokonalost nebo vědomou cestu k uživatelským datům. Stačí, že existuje technické řešení, které v případě potřeby umožní data přečíst. Pokud bude mít nějaká vládní organizace důvod se k datům dostat, dokáže provozovatele donutit takové technické řešení použít. Nehledě k tomu, že ho může použít útočník, který se dostane k serverům služby. Uživatel správně implementované služby by mohl mít stále jistotu, že je jeho komunikace v bezpečí krytá end-to-end komunikací s ověřeným klíčem.

Byl pro vás článek přínosný?

Autor článku

Petr Krčmář pracuje jako šéfredaktor serveru Root.cz. Studoval počítače a média, takže je rozpolcen mezi dva obory. Snaží se dělat obojí, jak nejlépe umí.