Skutečná teoretická kryptografie

Skutečná teoretická kryptografie3
Skutečná teoretická kryptografie3

Všechno nejde vždy podle plánu“ je jedním z hlavních principů, kterými by se mělo při plánování řídit. Pamatujete si, kdy naposledy proběhl váš předem naplánovaný den přesně podle vašich představ? I když se zdá, že se předpokládá veškerá vyšší moc, ve skutečnosti se něco stane.

Přesně stejná „vyšší moc“ nastává při řešení kryptografických problémů. Stovky vědců mohou roky přemýšlet o každém posledním detailu, ale realita vás stále překvapí. V mnoha ohledech láká lidi ke kryptografii nekonečný cyklus skládající se z řady vývojových nových kryptografických řešení, identifikace zranitelných míst a jejich eliminace.

Skutečná teoretická kryptografie
Skutečná teoretická kryptografie

Například je zde zajímavá epizoda z historie vývoje známého protokolu TLS. První matematický důkaz o zabezpečení systému ochrany údajů použitého v TLS 1.1 poskytl Krawczyk v roce 2001 . Ale o necelý rok později byl navržen útok, který ukázal nestabilitu protokolu právě z hlediska ochrany dat!

Podrobnějšímu zkoumání tohoto vzrušujícího příběhu se budeme zabývat ve druhé části našeho článku (ale s výhledem do budoucna vás budeme informovat, že reputace respektovaného Krawczyka bude nakonec zcela obnovena).

Bohužel, takové incidenty nejsou v kryptografii neobvyklé a výše uvedená zranitelnost se pro dlouhodobě trpící TLS ukázala být daleko od poslední Každý rok se na kryptografických konferencích a seminářích prezentují nové extrémně překvapivé útoky, jejichž existence na první pohled odporuje teoretickým studiím (viz [ 1 , 2 , 3 ]) a opravy OpenSSL jsou vydávány se záviděníhodnou pravidelností.

A v tuto chvíli vyvstává otázka: jaký je důvod pro „chyby“ kryptografů – teoretiků? Pokud teoretický výzkum neposkytuje stoprocentní záruky bezpečnosti, možná se neoplatí věnovat jim čas a energii?

Než odpovíme na tuto otázku, pokusme se zjistit, jaké jsou pilíře kryptografie, jaký je model protivníka a jak se ve světě formují a rozšiřují znalosti o tak složitém a mnohostranném konceptu, jako je „informační bezpečnost“.

Vývoj systémů, které řeší problémy s bezpečností informací, je mimořádně složitý a časově náročný proces. Ve skutečnosti se ukazuje, že teoretický výzkum je pouze jednou z mnoha etap života takových systémů. Neméně důležité jsou fáze modelování, implementace a provozu systému, z nichž poslední je z hlediska běžných uživatelů nejvýznamnější. Každá z těchto fází vychází z předchozí a je logickým pokračováním jejího předchůdce: například fáze teoretického výzkumu je bez modelování nemožná, protože přísnost uvažování vyžaduje formalizaci studovaných vlastností a objektů.

Modelování v kryptografii zahrnuje hloubkovou analýzu všech vlastností vyvíjeného systému, všech možných způsobů interakce uživatele s ním a někdy dokonce i fyzických podmínek, ve kterých bude systém fungovat. Výsledkem modelování je matematický model systému, který zahrnuje zejména takzvaný model protivníka, který ve skutečnosti určuje, co znamená bezpečný nebo stabilní systém.

Model protivníka se skládá ze tří složek: typ útoku, model ohrožení a předpoklady o prostředcích, které má protivník k dispozici. Společně tyto tři komponenty umožňují jasně definovat svět, ve kterém náš systém žije: jak s ním může nepřítel komunikovat, co se od ní může naučit, co přesně chce dosáhnout a jaké zdroje na to má.

Útočný modelTyp útoku určuje kvalitativní schopnosti nepřítele, pokud jde o jeho interakci s analyzovaným systémem. Typ útoku tedy určuje, jaké informace o systému může protivník obdržet a jak může zasahovat do procesu jeho provozu. Příkladem je typ útoku, při kterém může protivník zachytit a upravit data na komunikačním kanálu. Zde musí schopnosti nepřítele brát v úvahu všechny známé praktické a teoretické metody narušení bezpečnosti studovaného systému a být co nejblíže těm, které vznikají při praktickém používání systému.

Model ohrožení definuje úkol narušení bezpečnostních vlastností, který se protivník snaží vyřešit. Mezi příklady patří padělání podpisu zprávy nebo prolomení důvěrných informací. Pokud nepřítel vyřeší zadaný úkol, řekne, že si „uvědomil hrozbu“. Model ohrožení odráží myšlenku, které situace jsou porušením bezpečnosti konkrétního systému .

Výpočetní zdrojePředpoklady o zdrojích nepřítele jsou také nesmírně důležitou součástí modelu a nyní určují kvantitativní schopnosti nepřítele. Obvykle jsou určeny celou řadou faktorů – čas a výpočetní zdroje protivníka, velikost jeho programu, množství informací, které může obdržet v důsledku interakce se systémem (povaha těchto informací je dána typem útoku). Bez těchto omezení by bylo zcela bezvýznamné hovořit o zabezpečení většiny systémů používaných v praxi, protože například pro ně vždy existuje protivník, který, s neomezenými zdroji, může najít požadovaný klíč jednoduchou hrubou silou bez použití jakýchkoli složitých metod.

Konečně jsme připraveni definovat, co se rozumí odolností systému . Všimněte si, že nemá vůbec smysl mluvit o stabilitě systému bez odkazu na jakýkoli nepřátelský model. Neformálně řečeno, systém se v určitém modelu protivníka nazývá spolehlivý, pokud žádný protivník, který má schopnosti a zdroje určené modelem, nemůže danou hrozbu realizovat (tj. Pravděpodobnost jeho implementace je poměrně malá) .

Ve skutečných podmínkách

Jakmile se objeví matematický model studovaného objektu, je možné aplikovat vhodné matematické metody, jejichž výsledky jsou a priori absolutně přesné (samozřejmě, pokud se autor ve výpočtech nedopustil chyby a počáteční předpoklady jsou správné). Použití takových metod umožňuje odhalit hluboké vlastnosti zkoumaného objektu a při studiu časově prodloužených procesů umožňuje předvídat jejich budoucnost. Ve fyzice předpovídáme, za kolik sekund padne kámen na zem a v kryptografii, zda bude kryptosystém v příštích několika letech hacknut. Pokud je tedy matematická část výzkumu prováděna přesně a její výsledky neobsahují chyby, pak hlavní důvod vzniku zdánlivě zvláštních rozporů mezi teorií a praxí spočívá vnekonzistence nepřátelských modelů se skutečnými podmínkami ,za kterých je systém v praxi provozován.

Zároveň byste neměli okamžitě obviňovat lidi odpovědné za fázi modelování – model se může stát irelevantní (tj. Přesně nepopisuje realitu) v jakékoli fázi procesu vývoje systému – od nápadu po provoz. Nesrovnalosti mezi realitou a modelem se však mohou objevit v kterékoli ze tří částí, které tvoří model. Podívejme se na několik příkladů.

Neshoda typu útoku

Vraťme se k příkladu uvedenému v úvodu a podívejme se, kde došlo k rozporu mezi realitou a modelem, který Krawczyk použil ve své práci, a kde došlo k chybě, která tento rozpor způsobila.

Ve stejné práci v roce 2001 se prokázala síla ověřeného šifrovacího schématu MAC-then-Encrypt, ve kterém je nejprve ke zprávě připojeno její zosobnění a po zřetězení zprávy a zosobněného vložení je šifrováno v režimu CBC… Zvláštností režimu šifrování CBC je, že dokáže zpracovat pouze řetězce, které lze rozdělit na bloky určité pevné velikosti. Proto, aby bylo možné zpracovat zprávy libovolné délky, se obvykle použije postup výplně: po přidání falešné vložky do zprávy je výsledný řetězec vyplněn na požadovanou velikost podle určitého pravidla. Při zpracování zprávy na straně příjemce se nejprve provede dešifrování a ověření správnosti přidání a až poté se zkontroluje imitace vložení.

Méně než rok po zveřejnění Krawczykovy práce byl představen padding oracle útok na CBC režim. Využívá příležitost pro protivníka k získání informací o tom, zda přijímající strana narazila na chybu při kontrole doplňku dešifrované zprávy. Výsledkem útoku je narušení důvěrnosti přenášených dat. Více o tomto útoku si můžete přečíst zde  a v našich blogových článcích . Nejprve se věřilo, že protokol TLS je chráněn před útokem padding Oracle, protože chyby v něm jsou vráceny pouze v zašifrované podobě, a proto je chyba v přidání nerozeznatelná od chyby v imitaci vložky. Cryptoanalytici se však dokázali prokázatže pro většinu implementací je čas pro vydání chyby v případě nesprávného přidání odlišný od času pro vydání dalších chyb, protože v případě nesprávného přidání je chyba vydána okamžitě a nejsou podniknuta žádná další opatření. Tento časový rozdíl umožnil rozlišit mezi chybami vrácenými přijímajícím koncem a použít padding oracle útok na protokol TLS.

Model Krawczyk však nebere v úvahu, že protivník může během dešifrování získat informace o tom, kde přesně došlo k chybě. Toto opomenutí vedlo k nesouladu mezi typem útoku a skutečnými schopnostmi nepřítele, což se ukázalo být více, než model předpokládal. Takové příležitosti se objevily kvůli zvláštnostem fungování systému (pořadí zpracování chyb), které vznikly ve fázi jeho implementace.

 

To znamená, že  celá situace , které na první vrhají stín na práci respektovaného vědce, ukázalo se, že zdaleka tak hrozné: Krawczyka důkaz byl naprosto správný, prostě model, ve kterém bylo provedeno stala irelevantní.

Neshoda modelu ohrožení

Stejně zajímavé jsou zranitelnosti vyplývající z nesouladu modelu ohrožení. Objevují se, pokud některé možné situace nebyly považovány za negativní. Jedním z příkladů této chyby zabezpečení je schopnost obnovit přibližný přepis šifrované konverzace VoIP, protože zná pouze délku šifrovaných paketů. Zpočátku se věřilo, že přítomnost těchto informací od protivníka nepředstavuje velkou hrozbu porušení důvěrnosti a v nejlepším případě by mohla odhalit jazyk konverzace  nebo přítomnost určitých frází . Vědci z University of North Carolina to však našliže při kombinovaném použití určitých metod kódování hlasových informací a proudových šifer, které zachovávají délku zprávy, s využitím výpočetní lingvistiky a statistických metod, je možné přesně obnovit přepis celé konverzace. K chybě při identifikaci hrozby tak došlo v samém stadiu modelování. Vzhledem k tomu, že systém byl vytvořen speciálně pro šifrování hlasových hovorů, mohla být taková hrozba zaznamenána již v počáteční fázi vývoje kryptografického protokolu.

Rozpor v předpokladech o nepřátelských zdrojích

Sweet32

Útok Sweet32 je zase založen na zranitelnosti vyplývající z nesouladu předpokladů o zdrojích nepřítele. Útok Sweet32 narušuje důvěrnost a je zaměřen na režim šifrování CBC pomocí blokových šifer s malou délkou bloku, jako je šifra 3DES nebo Blowfish s délkou bloku 64 bitů. Tento útok je založen na paradoxu narozenin  a aby byl úspěšný, vyžaduje, aby bylo připojení k serveru udržováno přibližně 38 hodin, aby bylo možné odeslat přibližně 785 GB provozu (v praxi byla hodnota tajného souboru cookie obnovena ještě rychleji – za 30 hodin a 610 GB).

Ve stejné době, v roce 2000, byla publikována práce, ve které již byla uvedena závislost pravděpodobnosti porušení režimu CBC na množství šifrovaných dat. V té době, dokonce i při použití 64bitové blokové šifry, bylo šifrování takového množství dat, které by stačilo na rozbití režimu CBC, ve skutečnosti neproveditelné. Proto byl režim CBC založený na 64bitové blokové šifře v praxi považován za silný. Postupem času však prostředky potřebné k implementaci Sweet32 přestaly být fantastické. Prostě si toho nikdo nevšiml a během provozní fáze došlo k nesouladu mezi modelem a realitou. V praxi se tedy ukázalo, že zdroje dostupné nepříteli jsou podstatně větší, než se v modelu předpokládalo.

Sleduji Darwina

Sleduji Darwina

Stojí za zmínku, že po zveřejnění publikací o každé ze zranitelností popsaných v uvažovaných příkladech byla okamžitě přijata opatření k jejich odstranění. Toto je běžná praxe pro absolutně jakoukoli zranitelnost nalezenou v systému. Existují publikace, které zkoumají způsoby, jak problém vyřešit až do ukončení používání zranitelných nebo dokonce potenciálně zranitelných řešení (například v režimu TLS 1.3 CBC se nepoužívá), objevují se aktualizované praktické systémy. S výhradou bezchybného teoretického výzkumu však nalezená zranitelnost spouští další neméně důležitý proces: analýzu rozporu mezi modelem protivníka a reálnými podmínkami a jeho následné rozšíření, které bude použito jako součást nového kola teoretického výzkumu. Tento proces je v podstatě vývojem modelu protivníka.

Ve skutečnosti je tedy vývoj systému uzavřeným cyklem, ve kterém po integraci řešení probíhá stejně důležitý provozní proces, který také provádí vlastní úpravy. Během operace se naše znalosti schopností a bezpečnostních vlastností nepřítele mohou významně rozšířit, někdy v důsledku hackerství systému na základě výsledků výzkumu  třetích stran nebo interního výzkumu. Takové „ objevy “  začínají novou iteraci životního cyklu systému.

Ale neměli byste s tímto vývojovým řádem zacházet jako s něčím hrozným a považovat jeho cyklickou povahu za známku nedokonalosti procesu. Kryptografie se neliší od jiných věd – podobná situace se vyskytuje všude .Jedním z příkladů je vývoj chápání lidí tvarem Země jako jednoho z nejhmatatelnějších a nejrozšířenějších modelů. Tento model prošel vývojem od plochého modelu Země k modelu Země jako koule, poté elipsoidu revoluce a po geoidu postupně odpovídal na všechny nové otázky lidstva: „Proč existuje horizont, za nímž není nic vidět?“, „Proč by měl člověk plavat po stejné trajektorii rychlejší než ostatní? “ atd. V tomto případě je vzhled efektu, který nesouhlasí s předpovědi teorie, analogický k rozbití teoreticky zabezpečeného kryptosystému v praxi. Teoretické studie nejkompletnějších modelů nepřítele v současné době (a při zohlednění jejich výsledků při vývoji skutečného systému) tedy mohou zvýšit pravděpodobnost, že

Za zmínku stojí také to, že teoretický výzkum umožňuje předvídat mnoho útoků před jejich realizací v praxi. Například v roce 1997 se ukázalo, že použití režimu CBC s předvídatelným inicializačním vektorem je nebezpečné. V implementaci protokolů pomocí této metody šifrování však nebyly provedeny žádné změny, protože navrhovaný útok se zdál příliš teoretický. Do roku 2011, navzdory velkému množství výzkumů, které varovaly před možností takového útoku na TLS, nebyla zranitelnost opravena a analytici představili  praktickou implementaci útoku nazvanou BEAST (o které se také psalo v našem blogu)). Teprve poté byla zranitelnost uzavřena.

Na závěr poznamenáváme, že každá fáze vývoje systému je důležitá a měla by interagovat s předchozími fázemi a „naslouchat“ jejich výsledkům. Takový proces zajišťuje přesně vývoj znalostí, nejen „záplatování děr“. Proto je tak důležité nevynechávat žádnou z fází a věnovat náležitou pozornost vývoji nových modelů a teoretickému výzkumu.