Vědci nejspíše přišli na to, jak se NSA podařilo prolomit VPN

Snowdenovi se sice podařilo dostat téma americké Národní bezpečnostní agentury na titulní strany světových periodik, odborná komunita však o možnostech NSA spekulovala již dávno před tím. Letitým evergreenem byla především otázka, zdali má jedna z nejmocnějších vládních agentur na světě skutečně prostředky k tomu, aby dokázala ve velkém odposlouchávat i šifrovanou komunikaci na internetu – zejména VPN.
Určité náznaky tu byly celé roky, z nitra mocné agentury totiž tu a tam opravdu unikla nějaká zajímavá informace, kterým na jaře 2012 vévodila zpráva, podle které si NSA mohla připsat jakýsi ohromný úspěch v oblasti počítačové kryptografie.
Nikdo tehdy ale přesně netušil, oč by se mohlo jednat, než se o pár let později objevil na scéně Edward a začal publikovat tajné prezentace NSA, ve kterých se agentura mimo jiné chlubila právě tím, že dokáže prakticky živě odposlouchávat obrovské množství VPN a SSH komunikace a dokáže pokořit i HTTPS a další typy šifrovaného datového toku.
Dobrá, dejme tedy tomu, že to NSA skutečně dokáže. Ale jak? Skupina čtrnácti expertů před pár dny publikovala studii (PDF), ve které popisuje možný způsob. A další specialisté přikyvují a dávají jim za pravdu.
Diffeho-Hellmanova výměna klíčů
Jedním z nejpravděpodobnějších technik NSA je údajně prolomení Diffeho-Hellmanovy výměny klíčů (D-H). Jedná se o kryptografický protokol, který se používá pro otevření šifrovaného spojení skrze nezabezpečený kanál – veřejný internet. Protokol D-H používá celý zástup šifrovacích technologií, v jejichž čele stojí IPSec, který konečně patří k nejrozšířenějším protokolům šifrovaného spojení uvnitř VPN tunelu.
A co má být vlastně na Diffeho-Hellmanově výměně klíčů děravého? Ve vší stručnosti se pokusím popsat, jak vlastně funguje. Dejme tomu, že se budu chtít spojit s Davidem z redakce šifrovanou linkou. Jenže jak to udělat, aniž bychom si dopředu dohodli klíč, kterým budeme celou komunikaci šifrovat?
Jak funguje protokol D-H:
Jak funguje protokol D-H: |
---|
Nejprve si s Davidem dohodneme veřejná a obrovská prvočísla p a g, která budou sloužit k extrémně složitým výpočtům. |
Dále si každý zvolíme tajná a náhodná čísla a a b, která budou sloužit jako náše soukromé klíče. |
Pomocí prvočísel p a g spočítáme ze soukromých klíčů veřejné klíče A a B, které si navzájem vyměníme. |
Díky vzájemným matematickým vztahům mezi p, g, A a B každý z nás vypočítá stejný šifrovací klíč s, který můžeme konečně použít k vlastní šifrované komunikaci. |
Wikipedie vysvětluje princip protokolu D-H pro vytvoření šiforvacího klíče formou diagramu s mícháním barev. Obrázek jsem tedy upravil pro naše potřeby (Zdroj: David Elster, Wikipedie, CC-BY-SA)
Celý princip najdete matematicky i graficky znázorněný na Wikipedii, ve stručnosti a zcela laicky řečeno jde ale o to, že si můžeme s Davidem skrze veřejný internet vyměnit několik neškodných hodnot, na jejichž základě každý z nás vypočítá tentýž šifrovací klíč, aniž bychom se na něm museli nejprve jasně dohodnout.
Když nás tedy bude někdo odposlouchávat, dozví se leda hodnotu prvočísel p, g a veřejných klíčů A a B. Aby ovšem získal šifrovací klíč s, musel by znát i tajné hodnoty soukromých klíčů a a b.
D-H + IPsec = problém
Pokud se útočník nedostane k a a b na mém a Davidově počítači, zbývá mu jediná možnost – pokusit se je zjistit reverzními výpočty. Celá podstata počítačové kryptografie ale stojí a padá na principu, že je podobný výpočet velmi složitý, aby se ekonomicky vyplatil.
Jistě, můžete rozlousknout nějaký ten 1 024bitový klíč, ale zabere to třeba rok výpočtů na hypotetickém superpočítačovém clusteru v ceně několika set milionů dolarů. To je prakticky k ničemu.
Skupina výzkumníků však přišla na jednu nepříjemnost. Výpočet soukromých klíčů a a b pro určité p a g je sice šíleně složitý, ale pokud už jednou známe veřejné hodnoty p a g, výpočet dalších možných soukromých klíčů a a b odpovídajících stejným p a g zabere jen zlomek původního výpočetního výkonu. Tedy alespoň v případech, kdy se při výpočtech používají nejvýše 1 024bitové hodnoty.
V ideálním případě by obě strany při inicializaci šifrovaného spojení pokaždé zvolily náhodná prvočísla, jenže praxe může být jiná, čímž se dostáváme zpět k VPN a protokolu IPSec. Podle zjištění skupiny specialistů totiž většina serverů používá IPSec jen s malou sadou standardizovaných a opakujících se hodnot p a g.
Kdyby tedy někdo investoval měsíce času a desítky až stovky milionů dolarů do vývoje crackovacího superpočítače a podařilo by se mu skutečně prolomit protokol D-H pro konkrétní hodnoty p a g, další soukromé klíče pro tatáž pročísla odhalí už relativně snadno. No a jelikož se hodnoty p a g třeba u zmíněného IPSec příliš nemění, mohl by útočník masivně odposlouchávat zdánlivě bezpečně šifrované spojení.
NSA má finanční zdroje i motiv
Něco podobného by se mohlo podařit jen organizaci s pohádkovým rozpočtem, know-how a hlavně motivem. Výzkumníci tedy došli k závěru, že pokud NSA skutečně rozlouskla ve velkém VPN, SSH a některé další šifrovací technologie, popsaná slabina 1024bitové Diffeho-Hellmanovy výměny klíčů je asi ona pomyslná trefa do černého a podporuje ji i šuškanda ohledně jakéhosi kryptografického úspěchu z roku 2012.
Centrála Národní bezpečnostní agentury v Marylandu
Možná tehdy NSA skutečně rozlouskla první D-H prvočísla a začala sledovat šifrovaný internet ve velkém. Ostatně podle Snowdena měla agentura už před lety technologickou kapacitu k tomu, aby odposlouchávala až 20 tisíc šifrovaných spojení VPN za hodinu a také určité množství HTTPS spojení. Zdokumentovaný postup, který vyžaduje ohromné kvantum času a peněz na počátku, pak je ale velmi svižný, se tedy opravdu nabízí.
Zvyšte zabezpečení, doporučí specialisté
A jak se proti tomu vlastně bránit? Experti doporučují v případě protokolu D-H zvýšit šifrování z 1 024bitových na 2 048bitové klíče (na ty by měla být krátká i NSA) a také implementaci lepších technik iniciace prvotního spojení – zejména protokol D-H s využitím eliptických křivek. To už se ale dostáváme do mnohem komplikovanějšího kryptografického světa, na který tento článek rozhodně nestačí.
Jaké z toho plyne ponaučení? Designové chyby mohou překonat jinak nezměrnou kryptografickou sílu komplikovaných matematických výpočtů. Nelze než doufat, že NSA neví i o skulinách v dalších šifrovacích protokolech, které dnes používáme nejen na internetu. Moc jistý bych si tím ale nebyl.
Text vyšel na serveru Živě.cz