Často kladené otázky
Před několika lety tým bezpečnostních expertů publikoval článek popisující útočný scénář, který umožňuje prolomit IKEv1 Aggressive Mode připojení s Pre-Shared Key a které by se takto popsaným způsobem nedalo aplikovat na IKEv1 Main Mode připojení s Pre-Shared Key, což vedlo k chybnému předpokladu, že Aggressive Mode je zásadně mnohem méně bezpečný než Main Mode. Pokud se však podíváme na fakta neutrálně, tento výrok neodpovídá skutečnosti. Většina lidí neví, že součástí tohoto útoku bylo uhodnout Pre-Shared Key (PSK) pomocí „brute force“ útoku a takový útok může být úspěšný pouze v případě, že je PSK zvolen příliš nezabezpečeně. PSK je také jen heslo a stejně jako u všech hesel platí: slabá hesla vedou k nízké bezpečnosti. Dokud má PSK alespoň 14 znaků (čím více, tím lépe), skládá se z malých a velkých písmen a číslic a byl zcela náhodně vygenerován (takže jej nelze snadno uhodnout) a dokud je v fázi 1 zvolen minimálně SHA1 jako hash (nebo lépe, doporučujeme SHA-256, pokud je to možné), není důvod předpokládat, že připojení Aggressive Mode PSK je zásadně méně bezpečné než připojení Main Mode PSK. Pokud chcete být zcela v bezpečí, jednoduše zvolte autentizaci založenou na certifikátech, pokud je to možné, protože to znemožňuje tento útok.
Technické pozadí:
Pre-Shared Key (PSK) není heslo používané pro šifrování dat, ale slouží výhradně k autentizaci, zhruba tak jako když se uživatel přihlašuje na webové stránce pomocí hesla. Během fáze 1 musí obě strany prokázat navzájem, že znají PSK. To samozřejmě nemůže proběhnout zasláním hesla druhé straně, protože i kdyby druhá strana dříve nevěděla, co to je, nyní by to věděla. Místo toho musí obě strany vypočítat číslo (hash), pro které se používají data, která si obě strany již vyměnily (a která jsou při každém vytvoření připojení jiná, aby bylo zajištěno, že hash bude také pokaždé jiný) a samotný PSK. Pouze tento hash je odeslán na druhou stranu, která musí provést přesně stejné výpočty. Pokud dostane stejný výsledek, znamená to, že i druhá strana použila stejný PSK, tedy jej zná. Stejná hra se pak opakuje v opačném směru s mírnou odchylkou ve výpočtu, aby bylo zaručeno, že oba hashe budou vždy odlišné, protože odeslání stejné hodnoty by samozřejmě nic nedokázalo.
Rozdíl mezi Main Mode a Aggressive Mode je jednoduše ten, že v režimu Main Mode se hash přenáší šifrovaně, protože procedurou výměny klíčů (DH Exchange), která vede k bezpečnému klíči relace na obou stranách, již byla dokončena. Jakmile mají obě strany klíč relace, všechny pakety jsou přenášeny pouze šifrovaně. V režimu Aggressive Mode se hash přenáší nešifrovaně, protože výměna klíčů v tomto okamžiku ještě není dokončena. Útočník, který naslouchá připojení Aggressive Mode, tak může získat přístup jak k hashi, tak ke všem datům potřebným pro jeho výpočet, s výjimkou samotného PSK. To samo o sobě však spojení nerozbijí, pouze má dostatek informací k zahájení hledání PSK, například pomocí „brute force“ útoku (zkoušení všech možných kombinací) nebo slovníkového útoku (zkoušení často používaných hesel, která lze získat z úniků dat). Pouze pokud je PSK příliš slabý na to, aby odolal těmto útokům, lze spojení nakonec prolomit. Proto je dobrá a dostatečně bezpečná PSK nezbytná pro bezpečnost VPN připojení PSK.
Stejný útok je však možný i u připojení Main Mode, vyžaduje to jen trochu více úsilí. V případě režimu Main Mode nestačí pouze odposlouchávat provoz, ale je nutný tzv. Man-in-the-Middle (MitM) útok, tj. útočník musí být schopen zachytit a manipulovat s provozem. Prostřednictvím MitM útoku může útočník zrušit šifrování, což nestačí k získání přístupu k VPN, protože je stále potřeba PSK, protože bez něj nelze fázi 1 úspěšně dokončit, ale i pak by měl útočník hash a všechna data potřebná pro jeho výpočet a mohl by zkusit uhodnout PSK stejným způsobem jako u připojení Aggressive Mode. A pokud je útočník schopen odposlouchávat veškerý provoz (což je základní předpoklad pro jakýkoli scénář útoku), je velmi pravděpodobné, že může provést i MitM útok a v tomto případě Main Mode neposkytuje žádnou další ochranu.
PSK ze 11 náhodných alfanumerických znaků má entropii přibližně 64 bitů, což je 2^64 možných hodnot. Moderní špičkové grafické karty (k roku 2016) mohou vypočítat v řádu 1 miliardy hashů SHA-256 za sekundu. V průměru musí člověk vyzkoušet 50 % všech možných hodnot, aby našel shodu, což by trvalo 292 let. Pokud má útočník k dispozici 100 takových grafických karet, útok by „trval“ pouze kolem 3 let. Ale i s 14 znaky je entropie přibližně 80 bitů a zde by samotná grafická karta trvala 19 154 798 let. Ani 10 000 grafických karet by čas výrazně nesnížilo. A nikdy nesmíme zapomínat na náklady takového útoku. Ne tolik náklady na nákup grafických karet, ale spíše jejich spotřeba energie, pokud všechny tyto grafické karty pracují s maximálním výkonem 24 hodin denně po dobu let, desetiletí nebo dokonce staletí. To by rychle vedlo k miliardám eur nákladů na energii jen proto, aby se prolomilo jediné PSK připojení na celém světě. Kromě toho musí útočník začít znovu pokaždé, když se PSK změní. Pokud se tedy PSK mění pouze jednou ročně, má útočník maximálně 1 rok na to, aby jej našel; i to by bylo poměrně ambiciózní, a to i u slabého PSK.