Není to zas tak jednoduché.
Milí čtenáři, na můj poslední článek o e-mailech americké armády, které v desetitisícovém množství končí v africkém státě Mali, zareagovalo hned několik čtenářů slovy „co se diví, nešifrované e-maily mají zhruba stejnou bezpečnost jako korespondenční lístek, všechno tajné se má šifrovat.“
Toto je celkem očekávatelná námitka, i když nevím, kolik příslušníků mladší generace ještě ví, co to byl korespondenční lístek; sám jsem jej v tomto století určitě nedostal, a s tím, jak se klasická pošta pomalu sune do zapomnění, nečekám, že ještě někdy dostanu. Ale ano, logika by říkala, že všechno tajné se má zašifrovat.
Praxe ukazuje, že je to docela těžké splnit. Pozor, toto je celkem technické čtení, ale mělo by být srozumitelné každému, kdo má aspoň trochu kladný vztah k počítačům.
Základní problém: šifrování není magická sůl z Digitálního moře, kterou byste posypali kus dat a on se stal automaticky neprůstřelným. Musí se to dělat nějakými konkrétními postupy, a ty postupy takzvaně blbě škálují. Jinými slovy, v pětičlenné skupině fungují skvěle, mezi stovkou lidí už o něco hůř, a pokud se tímto způsobem snaží sporadicky navzájem komunikovat milion jedinců, je to organizační peklo.
E-mail je takzvaná asynchronní komunikace, podobně jako dopis. Jinými slovy, na rozdíl od telefonního hovoru nebo chatu na nějakém textovém kanále spolu ty dvě strany nekomunikují v reálném čase. Posíláte-li e-mail, nevíte dopředu ani to, kdy si ho zamýšlený příjemce přečte, ani, zda si jej vůbec přečte, ani jestli je vůbec ještě naživu, nebo dokonce, zda vůbec existuje. Tato skutečnost poněkud omezuje výběr algoritmů a protokolů, které máte pro ochranu té zprávy k dispozici.
Nejlepším současným prostředkem pro ochranu asynchronních zpráv je takzvaná asymetrická kryptografie, vynález ze 70. let 20. století, s jehož algebraickými střevy vás nebudu zatěžovat; k tomu, aby si člověk užil elegantní detaily eliptických křivek apod., by beztak potřeboval zhruba čtyři roky matfyzu. Nicméně i laikovi je srozumitelná skutečnost, že asymetrická kryptografie používá takzvané páry klíčů.
V páru klíčů máte veřejný klíč a soukromý klíč, které k sobě patří (jsou nějak matematicky spojeny). Na veřejnost dáte svůj veřejný klíč, ten se nemusí tajit; tento veřejný klíč může kdokoliv použít k tomu, aby vám poslal šifrovanou zprávu. Sám u sebe si pak střežíte soukromý klíč jako oko v hlavě, a pomocí něj si tu zprávu dokážete rozšifrovat. Pokud se všechno dělá dobře, vnější útočník může jenom skřípat zuby, neboť bez toho, aby měl váš soukromý klíč, si nic nepřečte. Maximum, co může odhadnout, je délka zprávy, kterou jste poslali, protože délka chráněné zprávy se kryptografickými prostředky moc maskovat nedá. (Resp. dá se uměle zvětšit, ale nikoliv zmenšit.)
Krásné a jednoduché, což? Každý si uděláme pár klíčů, vyvěsíme svoje veřejné klíče někam „ven“, a od této chvíle jsme chráněni. Proč to ty pitomce v americké armádě nenapadlo?
Armádu to samozřejmě napadlo, ostatně civilní využití kryptografie je spíš novinka; typicky se o ni zajímali právě vojáci, protože problém, že tajná zpráva padne do rukou nepřítele, znali už za Caesara. Nicméně armáda je obří organismus. Když připočteme všechny lidi zvenčí, kteří s ní komunikují, tak ještě mnohem větší.
Hlavní organizační problém leží ve správě klíčů. Vraťme se na chvíli k tomu konkrétnímu případu americké armády. Pokud by každý americký voják a každý člověk zvenčí, který s vojáky komunikuje, měl mít vlastní pár klíčů, znamená to několik milionů klíčů. Dokonce i omezíme-li se na nějaké vyšší šarže a početné civilisty, kteří s nimi komunikují, dostaneme se aspoň na milion. Klíče by správně měly mít omezenou platnost, dejme tomu 2 roky, takže každý boží den včetně Vánoc a Halloweenu vyprší v průměru platnost cca 1500 klíčů a je nutno těm lidem udělat klíče nové (nebo to vypršení můžete koncentrovat do několika dnů v roce, ale pak to budou statisícové vlny těžké práce); nejen to, je nutno všechny jejich partnery informovat o tom, že si mají nový klíč stáhnout (patrně nějak poloautomaticky, pomocí tzv. keyserverů), a zároveň je ujistit, že je to pravý klíč a ne nějaký podvrh.
Přitom právě ta poslední část věty je klíčová (pun intended). Distribujete-li totiž po celé Americe neustále každý den tisíce a tisíce nových klíčů pomocí nějakých keyserverů, navíc asi vlastněných různými organizacemi (Northrop-Grumman bude mít nepochybně svůj server, Boeing také), může se stát, že aktivní protivník se tam pokusí vpašovat nějaké svoje klíče, vyrobené sobě na míru za účelem odchycení nějakého tajemství.
Každý uživatel si, pravda, může manuálně ověřit platnost klíče pomocí takzvaného otisku (fingerprint), ale vyžaduje to určitou pozornost a chvíli času. V praxi jsou k tomu lidé ochotni, dokud ta komunikující skupina je malá a sestává se spíš z odborníků (dejme tomu pět vývojářů na jednom softwarovém projektu), ale jakmile se nafukuje na stovky a tisíce účastníků, vstoupí do hry nevyhnutelná lenost: „nemám na to čas“ (a leckdy opravdu ten čas nemá). Zkuste si představit, že jste na jaderné ponorce, po delší době jste se vynořili nad hladinu, a z centrály vám dorazilo pár tisíc nových, zaručeně pravých klíčů, které vznikly v době, kdy jste byli pod vodou; kdo to bude opravdu kontrolovat? Ono i v rámci náporu práce po běžném návratu z dovolené to bude fuška, a na běžné dovolené jezdí každá kancelářská myš.
Vůbec, lidský faktor je v počítačové bezpečnosti zásadním slabým místem, a bezpečná, spolehlivá distribuce nových šifrovacích klíčů ve velkém měřítku je logisticky ohromný oříšek, daleko obtížnější než fyzická logistika kanonů, raket a náhradních dílů, které je potřeba dostat ze skladů na bojiště. Ty mrtvé předměty totiž aspoň celé úsilí aktivně nesabotují, kdežto člověk, klikající na „Přečetl jsem si a ověřil“, když ve skutečnosti nic nepřečetl a neověřil, vzbuzuje v naivnějších administrátorech pocit falešné jistoty.
Ještě obtížnější je situace, kdy klíč nevyprší sám o sobě, ale je nějakým způsobem kompromitován nebo ztracen. Někomu ukradou notebook, někdo zapomene heslo, někomu chcípne paměť v tabletu, někdo je vyhozen pro neschopnost či nadbytečnost, někoho přejede autobus, někdo je podezřelý ze špionáže. Máte-li milion účastníků sítě, můžete se spolehnout na to, že takových incidentů nastane pár desítek denně, včetně víkendů. Ve všech těchto případech je nutno ten příslušný veřejný klíč „zablokovat“, sdělit opět všem partnerům, že si jej mají zablokovat také, že už dále nemají věřit e-mailům, které jím byly šifrovány, a přitom má zároveň postižená organizace problém, který původně právě to šifrování mělo řešit.
Jaký? Dejme tomu, že vám po mrtvém zaměstnanci, se kterým spadlo letadlo, zůstane e-mailová schránka plná zašifrovaných e-mailů. Jako organizace, která ho zaměstnávala, máte veškeré legitimní důvody si ty e-maily rozšifrovat, abyste věděli, o čem si psal, a na co má navázat jeho nástupce. Jenže ten jediný soukromý klíč možná právě shořel s jeho notebookem. Z hlediska samotného šifrovacího systému pak není žádný rozdíl mezi vámi a útočníkem zvenčí, který se snaží vlámat k informacím, které mu nenáleží. Do solidního systému se bez klíče prostě nedostanete, i když nutně musíte. Matematiku vaše nutnost nezajímá.
V praxi se tento problém „nouzové rekonstrukce“ dá řešit jen dvěma způsoby. Buď si daná organizace někam ukládá kopie všech soukromých klíčů všech uživatelů, nebo se používají takzvané master klíče, tj. dodatečné klíče, kterými se veškerá komunikace šifruje za účelem pozdějšího nuceného dešifrování. Jinými slovy, píše-li Franta Honzovi, zašifruje ten e-mail svým klíčem (pro své vlastní budoucí použití), Honzovým klíčem (pro příjemce) a master klíčem (pro svého šéfa, který by se k obsahu e-mailu jednoho dne chtěl dostat).
Oba tyto přístupy fungují, ale zároveň tím vzniká nesmírné lákadlo pro špiony jiných mocností nebo konkurence, protože kdo se k té databázi soukromých a master klíčů úspěšně dostane, může si pak číst miliony tajných e-mailů bez námahy. Zase: existují nějaké způsoby, jak toto riziko snížit (air-gapované počítače, dělba tajemství mezi několik osob), ale pořád tímto přístupem vytváříte „single point of failure“, jehož selhání může způsobit obrovský a explozivní průser, protože najednou se neprozradí jedna či dvě utajované skutečnosti, ale kvanta a kvanta.
Nebo jej tedy nevytváříte a necháváte klíče jen uživatelům, ale pak se zase musíte smířit s tím, že přejede-li vám obchodníka auto, nikdy nedokážete úplně zrekonstruovat jeho komunikaci z doby, kdy byl naživu.
A abychom toho neměli málo, do hry vstupuje ještě jeden faktor: určité, docela značné procento lidí nemá na IT prostě „buňky“ a nechápe, že nějaký úkon může být bezpečný a jiný zase velice riskantní, i když navenek vypadají podobně. Snadno pak místo A udělají B, protože je to pohodlnější nebo rychlejší. Než se shánět po nějakých klíčích a ověřovat jejich platnost, raději si ty informace vyměníme soukromým e-mailem bez jakékoliv ochrany, že?
Suma sumárum, „šifrujte e-maily, vy jedna přihlouplá armádo“ je tak trochu knížecí rada, zvlášť pokud se ten dotyčný rádce nebude muset následně zabývat správou vzniklého systému. U malých skupin lidí to funguje dobře, ty vlastně takovou radu nepotřebují. Ale plošné šifrování e-mailů ve velkých organizacích je logistický clusterfuck, který víceméně nikdo nezvládl vyřešit tak, aby problémů nebylo víc než výhod. Zatímco v pěti lidech se šifruje hladce a jedna radost, u pěti set už to začíná být komplikované, a dostanete-li se ke statisícům účastníků, kteří si chtějí nějak náhodně psát mezi sebou, problémy spojené s distribucí a správou klíčů vás zahltí.
A výsledek? Ani obrovské IT firmy jako Google, Apple a Microsoft nešifrují interně všechny e-maily, a to přesto, že zaměstnávají počítačově talentované lidi, kteří tu nutnost chránit informace aspoň chápou. Spíše se snaží o to, aby ty interní e-maily pokud možno vůbec neopustily jejich servery, nebo aby při komunikaci s jinými firmami byly směrovány nějakým předvídatelným způsobem a nekončily v rukách nepovolaných osob, třeba zrovna v Mali. To je totiž to jediné, co se v takto gigantických rozměrech dá realisticky dělat.
Jistě, existují šifrované mailové služby jako Tutanota a Protonmail. Víte, co mají společného? Používají je jen lidi, kteří a) rozumí potřebě šifrování dat a základním pojmům, které jsou s tím spojeny, b) jsou ochotni vynaložit čas a energii na různé nezbytné drobné úkony s tím související, c) většinou si šifrovaně píšou jen s několika málo podobně zaměřenými jedinci.
Ani jedna z těch podmínek není ve velkých organizacích splněna, a podle toho to pak vypadá.
Diskusní fórum ke článku najdete zde.
Hudební epilog
Jeden z oblíbených problémů v počítačové vědě se jmenuje “problém byzantských generálů“, tak si na ně zavzpomínáme i hudebně.