Kauza Cryptocult
Ministr vnitra Vít Rakušan používá ke komunikaci aplikaci, která podporuje end-to-end šifrování. To je výborná zpráva a bylo by ještě lepší, kdyby to byla taková samozřejmost, aby to nebyla ani zpráva. Ministři, vysocí státní úředníci a další lidé podobného postavení mají používat bezpečné metody komunikace zcela automaticky a rutinně, zejména s ohledem na to, že se nacházíme uprostřed kybernetické války s Ruskem.
Obvinění, že Rakušan takovou aplikaci používá pouze ke komunikaci s aktéry kauzy Dozimetr, si ale zaslouží pozornost, stejně jako skutečnost, že k zabezpečení komunikace používá obskurní aplikaci CryptoCult české provenience.
Než se podíváme na zoubek aplikacím jako takovým, je nutné vyřešit ještě jeden problém. Totiž skutečnost, že u běžných důvěryhodných aplikací (mezi které CryptoCult nepatří, ale nepředbíhejme) záleží mnohem více na tom, JAK aplikaci používáme, než JAKOU aplikaci používáme.
Nezáleží na tom, jakou aplikaci používáte, ale jak ji používáte
Pravidla bezpečného používání šifrované komunikace lze shrnout do pěti bodů, přičemž je nutné splnit všechny, pokud chcete mít jistotu, že vaše zprávy budou důvěrné.
První zásadou je šifrovanou aplikaci vůbec používat. Už z kauzy Mazánka a Kolibříka víme, že samo vlastnictví šifrovaných telefonů komunikaci nechrání, ale je nutné je používat. I když to třeba není tak pohodlné jako nešifrované kanály. Naštěstí od dob zmíněných pánů technologie pokročila, takže se nemusí vzdávat svých elegantních iPhonů ve prospěch poněkud old school vypadajících kousků, ale stačí spustit správnou aplikaci.
Druhou zásadou je šifrování v dané aplikaci zapnout. Protože některé aplikace pro použití end-to-end šifrování vyžadují opt-in. Nestačí tedy běžný chat, ale musíte zahájit speciální tajný, šifrovaný. Týká se to Telegramu a Messengeru od Facebooku. WhatsApp a Signal šifrují všechno ve výchozím nastavení. U ostatních je nutné s cílovou osobou zahájit speciální šifrovanou chatovací seanci a citlivé informace psát do ní.
Třetí zásadou a často kamenem úrazu je ověření totožnosti protistrany. Všechny zmiňované platformy umožňují v nějaké podobě zobrazit klíče nebo otisky klíčů používané při komunikaci. Různé aplikace jim říkají různě – encryption key, safety number a tak dále. Zobrazují je v různé podobě. Messenger prostě zobrazí dlouhé číslo a nechá na vás, abyste si ho u protistrany ověřili.
Signal, WhatsApp a Telegram zobrazí grafickou podobu nebo QR kód, který je možno druhým zařízením naskenovat. Teprve pokud si s protistranou vzájemně ověříte tento klíč, můžete si být jisti, že komunikujete skutečně s tím, za koho se vydává, a ne třeba s útočníkem, který dělá man in the middle attack.
Ověření je nejlepší udělat osobně, prostě si ukázat telefony se stejnými kódy nebo je naskenovat. Ale lze to udělat přes jakýkoliv důvěryhodný kanál, přičemž důvěryhodný znamená, že útočník nemůže obsah zpráv v něm modifikovat a že si můžete ověřit totožnost protistrany. Odposlouchávat ho může, to nevadí, ale nesmí mít možnost obsah komunikace modifikovat.
Můžete si třeba zavolat po běžné otevřené telefonní lince a příslušné číslo si odrecitovat. Jenomže můžete se v době deepfake simulací hlasu i videa spolehnout na to, že svého partnera poznáte po hlase? Navíc aplikace tuto možnost před uživateli docela schovávají někde v hlubinách uživatelského profilu, a tak své uživatele nevedou k jejímu využití.
Čtvrtá zásada je odvozena od třetí. Co když se toto číslo změní? Aplikace vás na to upozorní, obvykle nějakým laikovi nepříliš srozumitelným hlášením typu „safety number in this conversation changed“. Co budete v takovém případě dělat? Správný postup je, že si znovu ověříte totožnost protistrany nezávislým způsobem, nejlépe osobním setkáním. A do doby, než k němu dojde, nebudete o ničem citlivém komunikovat. Změna klíče může mít zcela nevinné vysvětlení, třeba nový mobil. Anebo se jedná o pokus o útok.
Pátá zásada spočívá v zabezpečení koncového zařízení, typicky mobilního telefonu. Protože můžete používat sebelepší aplikaci, ale bude vám k ničemu ve chvíli, kdy nemůžete věřit zařízení, na kterém ji provozujete. Může obsahovat malware, který dokáže sledovat obsah obrazovky a co píšete na klávesnici. Nebo číst lokální data aplikace, která někdy nelze dostatečně zabezpečit proti jinému softwaru běžícímu na stejném zařízení, případně forenzní analýze.
Teprve ve chvíli, kdy je splněno těchto pět zásad, má smysl se zabývat kvalitami aplikace, kterou budete používat. Protože sebelepší aplikace je k ničemu, nedodržujeme-li pravidla bezpečnosti, což jsou – mimo jiné – ty shora zmiňované zásady. V opačném případě aplikace funguje jako bezpečnostní zámek nejvyšší třídy v papundeklových dveřích a klíčem pod rohožkou.
Důvěru si za peníze nekoupíš
Obchodní ředitel společnosti CircleTech, která stojí za aplikací CryptoCult, ve své odpovědi v kritizovaném článku z 27. září tvrdí, že jeho aplikace je miliardkrát bezpečnější než Signal. To je výrok, který je přinejlepším sporný. Těžko říct, jaký parametr bezpečnosti měl na mysli. Ale teoreticky by mohlo takové tvrzení být pravdivé, protože miliarda je v kryptografii vlastně malé číslo.
Prakticky všechny aplikace, které dneska používají šifrování, používají v důsledku symetrický šifrovací algoritmus AES s délkou klíče 256 bitů. Jednoduše proto, že je univerzálně dostupný všude a nic lepšího neexistuje. To samo o sobě znamená, že existuje přibližně 115792089237316195423570985008687907853269984665640564039457 miliard miliard různých klíčů (tj. cca 1,158 × 1068 klíčů, psáno exponenciální notací). Asi lze věřit tomu, že v rámci implementačních detailů lze nějakou tu miliardu přidat nebo ubrat a při dostatečně kreativním výkladu lze výrok pana obchodního ředitele pokládat za formálně pravdivý. Rozhodně ovšem není relevantní.
Pokud tu miliardu vezmeme nikoliv jako faktické konstatování, ale coby floskuli, je to ještě problematičtější. Můžeme se dohadovat o tom, co znamená „bezpečnější“, ale CryptoCult trpí jednou zásadní vadou, která ho z jakéhokoliv seriózního hodnocení bezpečnosti šifrované komunikace diskvalifikuje: nejsou dostupné zdrojové kódy aplikace.
Na webu společnosti jsou k dispozici velmi povšechné informace o použitých protokolech, ale ďábel se skrývá v detailech. I bezpečné protokoly je možné (a bohužel velmi snadné) implementovat a použít nebezpečným způsobem. Obecně, dostupné informace nejsou úplně vzorem důvěryhodnosti a aktuálnosti. V seznamu podporovaných zařízení najdeme jako nejnovější model Samsung Galaxy S5 mini (a jeho věkové souputníky), tedy telefon prodávaný před devíti lety s Androidem 4.4.2.
Těžko říct, zda jde o nedostatky v aktualizaci webu, ten ovšem vypadá, že byl naposledy aktualizován někdy za premiérování Bohuslava Sobotky. Webová prezentace neobsahuje ani žádné údaje o provedených bezpečnostních auditech nebo třeba kontakt, kam se mají obracet bezpečnostní výzkumníci v případě, že v aplikaci objeví chybu (třeba pomocí standardu security.txt).
Aplikace navíc není přítomna v obchodě Google Play ani Apple App Store (web se o podpoře platformy iOS vůbec nezmiňuje, nabízí ovšem podporu dnes již mrtvých systémů Symbian a BlackBerry). Pokud si ji má uživatel nainstalovat, musí tak činit pomocí sideloadingu, což je samo o sobě obtížné udělat bezpečně, o dostupnosti aktualizací a oprav chyb nemluvě.
Dostupnost detailních informací o použitých komunikačních protokolech, jejich implementaci a zdrojových kódů je přitom z hlediska bezpečnosti naprosto základní. Proto jsou pro bezpečnostně kritické scénáře mnohem vhodnější open source aplikace, jako je Signal nebo Telegram, než uzavřené aplikace jako Messenger nebo WhatsApp. Security through obscurity, tedy zabezpečení skrze nejasnosti, zde neplatí.
Používat CryptoCult (nebo Messenger nebo WhatsApp, abychom byli fér) je akt víry a náboženská zkušenost dle hesla „nemůžeš pochopit, musíš uvěřit“. Jde o černou skříňku, která je pouze tak důvěryhodná, jak důvěryhodný je její autor. Jestli víc důvěřujete technologickému gigantu Meta, nebo českému eseróčku, je asi věcí vašeho osobního a politického přesvědčení.
V neprospěch důvěryhodnosti českého eseróčka ovšem svědčí, že jeho obchodní ředitel lže. Třeba tento výrok z již zmíněného článku je očividně nepravdivý: „Veškeré aplikace, které jsou zdarma, v zásadě používají nějaké šifrování, ale na druhou stranu vydají veškeré informace úřadům. My používáme end-to-end šifrování, takže i kdybychom data vydat chtěli, tak je nemáme.“
End-to-end šifrování dneska umožňují všechny čtyři nejpoužívanější bezplatné aplikace, tedy Messenger, Signal, Telegram i WhatsApp. I pro ně tedy platí, že nemohou vydat obsah komunikace, protože ho prostě nemají k dispozici. Co pan obchodní ředitel prodává jako konkurenční výhodu, je ve skutečnosti průmyslový standard. Podle zveřejněných informací FBI z roku 2021 například Signal o svých uživatelích umí sdělit pouze čas jejich registrace a posledního připojení ke službě.
Pokud si aplikaci CryptoCult nainstalovaly kromě pana ministra „tisíce“ uživatelů, jak firma tvrdí, je to statisticky zanedbatelné číslo. Signal si stáhlo přes sto milionů uživatelů a má čtyřicet milionů měsíčně aktivních uživatelů. Telegram má něco přes miliardu uživatelů, z toho kolem 700 milionů měsíčně aktivních. Popularita mezi uživateli samozřejmě neznamená nutně důkaz kvality, ale přitahuje pozornost a bezpečnostní testování. Nelze tvrdit, že je malá nezávislá česká aplikace méně bezpečná. Možná je, možná není, ale z dostupných údajů to nelze potvrdit ani vyvrátit.
Pokud si tuto aplikaci s cenou licence v desítkách tisíc korun skutečně koupily tisíce lidí, svědčí to o marketingové zdatnosti pana obchodního ředitele, případně jeho podřízených, protože dokázal prodat zajíce v pytli.
Autor textu (Michal Altair Valášek) se oblasti kybernetické bezpečnosti věnuje dlouhodobě, pro čtenáře HN připravil i elektronickou knihu vysvětlující základy kryptografie.