Kryptografické útoky: vysvetlenie pre zmätené mysle

Keď počujete slovo „kryptografia“, niektorí ľudia si pamätajú svoje heslo WiFi, zelený visiaci zámok vedľa adresy ich obľúbenej webovej stránky a aké ťažké je dostať sa do e-mailu niekoho iného. Iní si spomínajú na sériu zraniteľností z posledných rokov s výrečnými skratkami (DROWN, FREAK, POODLE...), štýlovými logami a varovaním, aby ste si urýchlene aktualizovali prehliadač.

Kryptografia pokrýva všetko, ale podstatu v inom. Ide o to, že medzi jednoduchým a zložitým je tenká hranica. Niektoré veci sa dajú ľahko urobiť, ale ťažko sa dajú opäť dokopy, ako napríklad rozbitie vajíčka. Iné veci sa dajú robiť ľahko, ale je ťažké ich získať späť, keď chýba malá, dôležitá, rozhodujúca časť: napríklad otvorenie zamknutých dverí, keď je kľúčom „rozhodujúca časť“. Kryptografia študuje tieto situácie a ich využitie v praxi.

V posledných rokoch sa zbierka kryptografických útokov zmenila na zoologickú záhradu honosných log, naplnených vzorcami z vedeckých prác a vyvolala všeobecný pochmúrny pocit, že všetko je pokazené. V skutočnosti sú však mnohé útoky založené na niekoľkých všeobecných princípoch a nekonečné strany vzorcov sú často zredukované na ľahko pochopiteľné myšlienky.

V tejto sérii článkov sa pozrieme na rôzne typy kryptografických útokov s dôrazom na základné princípy. Vo všeobecnosti a nie presne v tomto poradí, ale pokryjeme nasledujúce:

  • Základné stratégie: hrubá sila, frekvenčná analýza, interpolácia, downgrading a krížové protokoly.
  • Zraniteľnosť značky: FREAK, CRIME, PODLE, DROWN, Logjam.
  • Pokročilé stratégie: útoky veštcov (útok Vodenet, útok Kelsey); metóda meet-in-the-middle, narodeninový útok, štatistické skreslenie (diferenciálna kryptanalýza, integrálna kryptoanalýza atď.).
  • Útoky na bočný kanál a ich blízkych príbuzných, metódy analýzy porúch.
  • Útoky na kryptografiu s verejným kľúčom: kocka root, vysielanie, súvisiace správy, Coppersmith útok, Pohlig-Hellman algoritmus, číselné sito, Wiener útok, Bleichenbacher útok.

Tento konkrétny článok pokrýva vyššie uvedený materiál až po Kelseyin útok.

Základné stratégie

Nasledujúce útoky sú jednoduché v tom zmysle, že sa dajú takmer úplne vysvetliť bez veľkých technických detailov. Poďme vysvetliť každý typ útoku najjednoduchším spôsobom, bez toho, aby sme zachádzali do zložitých príkladov alebo pokročilých prípadov použitia.

Niektoré z týchto útokov sú do značnej miery zastarané a dlhé roky sa nepoužívajú. Iní sú staromódni, ktorí sa stále pravidelne plížia k nič netušiacim vývojárom kryptosystémov v 21. storočí. Éru modernej kryptografie možno považovať za začatú s príchodom IBM DES, prvej šifry, ktorá odolala všetkým útokom na tomto zozname.

Jednoduchá hrubá sila

Kryptografické útoky: vysvetlenie pre zmätené mysleŠifrovacia schéma pozostáva z dvoch častí: 1) šifrovacia funkcia, ktorá vezme správu (obyčajný text) skombinovanú s kľúčom a následne vytvorí zašifrovanú správu – šifrový text; 2) dešifrovacia funkcia, ktorá vezme šifrovaný text a kľúč a vytvorí čistý text. Šifrovanie aj dešifrovanie sa musí dať ľahko vypočítať pomocou kľúča – a ťažko vypočítať bez neho.

Predpokladajme, že vidíme šifrovaný text a pokúsime sa ho dešifrovať bez akýchkoľvek ďalších informácií (toto sa nazýva útok iba na šifrovaný text). Ak nejakým kúzlom nájdeme správny kľúč, môžeme ľahko overiť, že je skutočne správny, ak je výsledkom rozumná správa.

Všimnite si, že tu existujú dva implicitné predpoklady. Po prvé, vieme, ako vykonať dešifrovanie, teda ako funguje kryptosystém. Toto je štandardný predpoklad pri diskusii o kryptografii. Skrytie podrobností o implementácii šifry pred útočníkmi sa môže zdať ako dodatočné bezpečnostné opatrenie, no akonáhle útočník tieto podrobnosti zistí, toto dodatočné zabezpečenie sa potichu a nenávratne stratí. To je ako Kerchhoffov princíp: Systém, ktorý sa dostane do rúk nepriateľa, by nemal spôsobiť nepríjemnosti.

Po druhé, predpokladáme, že správny kľúč je jediný kľúč, ktorý povedie k rozumnému dešifrovaniu. To je tiež rozumný predpoklad; vyhovuje, ak je šifrový text oveľa dlhší ako kľúč a je čitateľný. To sa zvyčajne deje v reálnom svete, okrem obrovské nepraktické kľúče alebo iné hlúposti, ktoré je najlepšie nechať bokom (ak sa vám nepáči, že sme preskočili vysvetlenie, pozrite si vetu 3.8 tu).

Vzhľadom na vyššie uvedené vzniká stratégia: skontrolujte každý možný kľúč. Tomu sa hovorí hrubá sila a takýto útok zaručene funguje proti všetkým praktickým šifrám – príp. Na hacknutie stačí napríklad hrubá sila Caesarova šifra, starodávna šifra, kde kľúčom je jedno písmeno abecedy, čo znamená niečo vyše 20 možných kľúčov.

Nanešťastie pre kryptoanalytikov je zväčšenie veľkosti kľúča dobrou obranou proti hrubej sile. So zvyšujúcou sa veľkosťou kľúča sa počet možných kľúčov zvyšuje exponenciálne. Pri moderných veľkostiach kľúčov je jednoduchá hrubá sila úplne nepraktická. Aby sme pochopili, čo máme na mysli, zoberme si najrýchlejší známy superpočítač z polovice roku 2019: Summit od IBM so špičkovým výkonom približne 1017 operácií za sekundu. Dnes je typická dĺžka kľúča 128 bitov, čo znamená 2128 možných kombinácií. Na prehľadávanie všetkých kľúčov bude superpočítač Summit potrebovať čas, ktorý je približne 7800-krát väčší ako vek vesmíru.

Treba hrubú silu považovať za historickú kuriozitu? Vôbec nie: je to nevyhnutná zložka v kuchárskej knihe kryptoanalýzy. Málokedy sú šifry také slabé, že sa dajú prelomiť iba šikovným útokom, bez použitia sily v tej či onej miere. Mnoho úspešných hackov používa algoritmickú metódu na oslabenie cieľovej šifry a potom na vykonanie útoku hrubou silou.

Frekvenčná analýza

Kryptografické útoky: vysvetlenie pre zmätené mysleVäčšina textov nie je blábol. Napríklad v anglických textoch je veľa písmen „e“ a článkov „the“; v binárnych súboroch je medzi informáciami veľa nulových bajtov ako výplň. Frekvenčná analýza je akýkoľvek útok, ktorý využíva túto skutočnosť.

Kanonický príklad šifry zraniteľnej voči tomuto útoku je jednoduchá substitučná šifra. V tejto šifre je kľúčom tabuľka so všetkými nahradenými písmenami. Napríklad „g“ je nahradené „h“, „o“ za j, takže slovo „go“ sa zmení na „hj“. Túto šifru je ťažké použiť hrubou silou, pretože existuje toľko možných vyhľadávacích tabuliek. Ak vás zaujíma matematika, efektívna dĺžka kľúča je približne 88 bitov: to jest
Kryptografické útoky: vysvetlenie pre zmätené mysle. Frekvenčná analýza však zvyčajne vykoná prácu rýchlo.

Uvažujme o nasledujúcom šifrovom texte spracovanom jednoduchou substitučnou šifrou:

XDYLY ALY UGLY XDWNKE WN DYAJYN ANF YALXD DGLAXWG XDAN ALY FLYAUX GR WN OGQL ZDWBGEGZDO

Od Y vyskytuje často, vrátane na konci mnohých slov, môžeme predbežne predpokladať, že ide o toto písmeno e:

XDeLe ALE UGLe XDWNKE WN DeAJeN ANF eALXD DGLAXWG XDAN ALE FLEAUX GR WN OGQL ZDWBGEGZDO

Pár XD opakuje sa na začiatku niekoľkých slov. Najmä spojenie XDeLe slovo jasne naznačuje these alebo there, tak pokračujme:

The Le ALE UGLe THWNKE WN HeAJeN ANF EALth DGLAtWG THAN ALE FLEAUt GR WN OGQL ZDWBGEGZDO

Predpokladajme to ďalej L zodpovedá r, A - a a tak ďalej. Pravdepodobne to bude trvať niekoľko pokusov, ale v porovnaní s úplným útokom hrubou silou tento útok okamžite obnoví pôvodný text:

na nebi a na zemi je horatio viac vecí, než o ktorých sa vo vašej filozofii sníva

Pre niektorých je riešenie takýchto „kryptogramov“ vzrušujúcim koníčkom.

Myšlienka frekvenčnej analýzy je zásadnejšia, ako sa na prvý pohľad zdá. A platí to pre oveľa zložitejšie šifry. V priebehu histórie sa rôzne návrhy šifier pokúšali čeliť takémuto útoku pomocou „polyalfabetickej substitúcie“. Tu sa počas procesu šifrovania mení tabuľka nahrádzania písmen zložitými, ale predvídateľnými spôsobmi, ktoré závisia od kľúča. Všetky tieto šifry sa považovali za ťažké naraz prelomiť; a napriek tomu ich skromná frekvenčná analýza nakoniec porazila.

Najambicióznejšou polyalfabetickou šifrou v histórii a pravdepodobne najznámejšou bola šifra Enigma z druhej svetovej vojny. V porovnaní so svojimi predchodcami bol pomerne zložitý, ale po tvrdej práci ho britskí kryptoanalytici rozlúskli pomocou frekvenčnej analýzy. Samozrejme, nemohli vyvinúť elegantný útok ako ten, ktorý je zobrazený vyššie; museli porovnať známe dvojice otvoreného textu a zašifrovaného textu (tzv. „útok otvoreného textu“), pričom dokonca vyprovokovali používateľov Enigmy, aby zašifrovali určité správy a analyzovali výsledok („zvolený útok s otvoreným textom“). Osud porazených nepriateľských armád a potopených ponoriek to však neuľahčilo.

Po tomto triumfe zmizla frekvenčná analýza z histórie kryptoanalýzy. Šifry v modernom digitálnom veku sú navrhnuté tak, aby pracovali s bitmi, nie s písmenami. Ešte dôležitejšie je, že tieto šifry boli navrhnuté s temným chápaním toho, čo sa neskôr stalo známym ako Schneierov zákon: Každý môže vytvoriť šifrovací algoritmus, ktorý sám nedokáže prelomiť. Pre systém šifrovania to nestačí zdalo ťažké: aby dokázal svoju hodnotu, musí prejsť nemilosrdnou bezpečnostnou kontrolou mnohými kryptoanalytikmi, ktorí urobia všetko pre to, aby šifru prelomili.

Predbežné výpočty

Kryptografické útoky: vysvetlenie pre zmätené mysleVezmite si hypotetické mesto Precom Heights s 200 000 obyvateľmi. Každý dom v meste obsahuje cennosti v priemernej hodnote 30 000 USD, ale nie viac ako 50 000 USD Trh bezpečnosti v Precom je monopolizovaný spoločnosťou ACME Industries, ktorá vyrába legendárne zámky dverí triedy Coyote™. Podľa expertnej analýzy môže zámok triedy Coyote prelomiť iba veľmi zložitý hypotetický stroj, ktorého vytvorenie si vyžaduje približne päť rokov a investíciu 50 000 dolárov. Je mesto bezpečné?

S najväčšou pravdepodobnosťou nie. Nakoniec sa objaví pomerne ambiciózny zločinec. Zdôvodní to takto: „Áno, vzniknú mi veľké počiatočné náklady. Päť rokov trpezlivého čakania a 50 000 dolárov. Ale keď skončím, budem mať prístup k všetko bohatstvo tohto mesta. Ak budem hrať správne, táto investícia sa mi mnohonásobne vráti.“

To isté platí v kryptografii. Útoky proti konkrétnej šifre podliehajú nemilosrdnej analýze nákladov a výnosov. Ak je pomer priaznivý, k útoku nedôjde. Útoky, ktoré pôsobia proti mnohým potenciálnym obetiam naraz, sa však takmer vždy vyplácajú, v takom prípade je najlepším postupom pri navrhovaní predpokladať, že začali od prvého dňa. Máme v podstate kryptografickú verziu Murphyho zákona: „Čokoľvek, čo môže skutočne rozbiť systém, rozbije systém.“

Najjednoduchším príkladom kryptosystému, ktorý je náchylný na predvýpočtový útok, je šifra s konštantným kľúčom. Toto bol prípad s Caesarovu šifru, ktorý jednoducho posunie každé písmeno abecedy o tri písmená dopredu (tabuľka je zacyklená, takže posledné písmeno v abecede je zašifrované ako tretie). Tu opäť vstupuje do hry Kerchhoffsov princíp: akonáhle je systém hacknutý, je hacknutý navždy.

Koncept je jednoduchý. Dokonca aj začínajúci vývojár kryptosystémov pravdepodobne rozpozná hrozbu a podľa toho sa pripraví. Pri pohľade na vývoj kryptografie boli takéto útoky nevhodné pre väčšinu šifier, od prvých vylepšených verzií Caesarovej šifry až po úpadok polyalfabetických šifier. Takéto útoky sa vrátili až s príchodom modernej éry kryptografie.

Tento výnos je spôsobený dvoma faktormi. Po prvé, konečne sa objavili dostatočne zložité kryptosystémy, kde možnosť zneužitia po hacknutí nebola zrejmá. Po druhé, kryptografia sa tak rozšírila, že milióny laikov každý deň rozhodovali o tom, kde a aké časti kryptografie opätovne použiť. Trvalo nejaký čas, kým si odborníci uvedomili riziká a spustili poplach.

Pamätajte na predpočítačový útok: na konci článku sa pozrieme na dva reálne kryptografické príklady, kde zohral dôležitú úlohu.

interpolácia

Tu je slávny detektív Sherlock Holmes, ktorý vykonáva interpolačný útok na nešťastného doktora Watsona:

Okamžite som uhádol, že pochádzate z Afganistanu... Moje myšlienkové pochody boli nasledovné: „Tento muž je podľa typu lekár, ale má vojenské zameranie. Takže vojenský lekár. Práve pricestoval z trópov – jeho tvár je tmavá, ale nie je to prirodzený odtieň jeho pokožky, keďže jeho zápästia sú oveľa belšie. Tvár je vyčerpaná - očividne veľa trpel a trpel chorobami. Zranil sa na ľavej ruke – drží ju nehybne a trochu neprirodzene. Kde v trópoch mohol anglický vojenský lekár znášať ťažkosti a zraniť sa? Samozrejme, v Afganistane." Celý tok myšlienok netrval ani sekundu. A tak som povedal, že si prišiel z Afganistanu a bol si prekvapený.

Holmes mohol z každého dôkazu jednotlivo získať veľmi málo informácií. K svojmu záveru mohol dospieť len tak, že ich zvážil všetky spolu. Interpolačný útok funguje podobne skúmaním známych párov otvoreného textu a šifrového textu, ktoré sú výsledkom rovnakého kľúča. Z každého páru sa získajú jednotlivé pozorovania, ktoré umožňujú vyvodiť všeobecný záver o kľúči. Všetky tieto závery sú vágne a zdajú sa zbytočné, až kým zrazu nedosiahnu kritické množstvo a nevedú k jedinému možnému záveru: bez ohľadu na to, aké je to neuveriteľné, musí to byť pravda. Potom sa kľúč odhalí alebo sa proces dešifrovania natoľko zdokonalí, že ho možno replikovať.

Ukážme si na jednoduchom príklade, ako funguje interpolácia. Povedzme, že si chceme prečítať osobný denník nášho nepriateľa Boba. Každé číslo vo svojom denníku zašifruje pomocou jednoduchého kryptosystému, o ktorom sa dozvedel z reklamy v časopise „A Mock of Cryptography“. Systém funguje takto: Bob si vyberie dve čísla, ktoré sa mu páčia: Kryptografické útoky: vysvetlenie pre zmätené mysle и Kryptografické útoky: vysvetlenie pre zmätené mysle. Odteraz na šifrovanie ľubovoľného čísla Kryptografické útoky: vysvetlenie pre zmätené mysle, vypočítava Kryptografické útoky: vysvetlenie pre zmätené mysle. Napríklad, ak si Bob vybral Kryptografické útoky: vysvetlenie pre zmätené mysle и Kryptografické útoky: vysvetlenie pre zmätené mysle, potom číslo Kryptografické útoky: vysvetlenie pre zmätené mysle bude zašifrované ako Kryptografické útoky: vysvetlenie pre zmätené mysle.

Povedzme, že 28. decembra sme si všimli, že Bob niečo škrabal vo svojom denníku. Keď skončí, potichu to zdvihneme a pozrieme si posledný záznam:

Дата: 235/520

Milý denníček,

Dnes bol dobrý deň. Cez 64 dnes mám rande s Alisou, ktorá býva v byte 843. Naozaj si myslím, že by mohla byť 26!

Keďže to so sledovaním Boba na jeho rande myslíme veľmi vážne (v tomto scenári máme obaja 15), je dôležité poznať dátum a tiež Alicinu adresu. Našťastie sme si všimli, že Bobov kryptosystém je zraniteľný voči interpolačnému útoku. Možno nevieme Kryptografické útoky: vysvetlenie pre zmätené mysle и Kryptografické útoky: vysvetlenie pre zmätené mysle, ale poznáme dnešný dátum, takže máme dva páry otvoreného textu a šifrovaného textu. Totižto vieme Kryptografické útoky: vysvetlenie pre zmätené mysle zašifrované v Kryptografické útoky: vysvetlenie pre zmätené mysleA Kryptografické útoky: vysvetlenie pre zmätené mysle - v Kryptografické útoky: vysvetlenie pre zmätené mysle. Toto si zapíšeme:

Kryptografické útoky: vysvetlenie pre zmätené mysle

Kryptografické útoky: vysvetlenie pre zmätené mysle

Keďže máme 15 rokov, už vieme o sústave dvoch rovníc s dvoma neznámymi, čo v tejto situácii stačí nájsť Kryptografické útoky: vysvetlenie pre zmätené mysle и Kryptografické útoky: vysvetlenie pre zmätené mysle bez akýchkoľvek problémov. Každý pár otvorený text-šifrovaný text kladie obmedzenie na Bobov kľúč a tieto dve obmedzenia spolu postačujú na úplné obnovenie kľúča. V našom príklade je odpoveď Kryptografické útoky: vysvetlenie pre zmätené mysle и Kryptografické útoky: vysvetlenie pre zmätené mysle (at Kryptografické útoky: vysvetlenie pre zmätené mysle Kryptografické útoky: vysvetlenie pre zmätené mysle, takže 26 v denníku zodpovedá slovu „ten“, teda „ten istý“ - cca. jazdný pruh).

Interpolačné útoky sa samozrejme neobmedzujú len na takéto jednoduché príklady. Každý kryptosystém, ktorý sa redukuje na dobre pochopený matematický objekt a zoznam parametrov, je vystavený riziku interpolačného útoku – čím je objekt zrozumiteľnejší, tým vyššie je riziko.

Nováčikovia sa často sťažujú, že kryptografia je „umenie navrhovať veci čo najškaredšie“. Na vine sú pravdepodobne interpolačné útoky. Bob môže použiť buď elegantný matematický dizajn, alebo môže mať svoje rande s Alicou v súkromí – ale bohužiaľ, zvyčajne to nemôžete mať obojstranne. To bude úplne jasné, keď sa nakoniec dostaneme k téme kryptografie s verejným kľúčom.

Cross Protocol/downgrade

Kryptografické útoky: vysvetlenie pre zmätené mysleVo filme Now You See Me (2013) sa skupina iluzionistov pokúša okradnúť skorumpovaného poisťovacieho magnáta Arthura Tresslera o celý jeho majetok. Aby získali prístup k Arthurovmu bankovému účtu, musia iluzionisti buď poskytnúť jeho používateľské meno a heslo, alebo ho prinútiť, aby sa osobne dostavil do banky a zúčastnil sa schémy.

Obe možnosti sú veľmi ťažké; Chlapci sú zvyknutí vystupovať na pódiu a nezúčastňujú sa spravodajských operácií. Vyberú si teda tretiu možnú možnosť: ich komplic zavolá do banky a vydáva sa za Arthura. Banka kladie niekoľko otázok na overenie identity, ako napríklad meno strýka a meno prvého domáceho maznáčika; naši hrdinovia vopred ľahko získajú tieto informácie z Arthura pomocou šikovného sociálneho inžinierstva. Od tohto momentu už na vynikajúcej bezpečnosti hesiel nezáleží.

(Podľa mestskej legendy, ktorú sme osobne overili a overili, sa kryptograf Eli Beaham raz stretol s bankovým pokladníkom, ktorý trval na položení bezpečnostnej otázky. Keď sa pokladník spýtal na meno svojej starej mamy z matkinej strany, Beaham začal diktovať: „Kapitál X, malé y, tri...“).

V kryptografii je to rovnaké, ak sa na ochranu toho istého majetku používajú paralelne dva kryptografické protokoly a jeden je oveľa slabší ako druhý. Výsledný systém sa stáva zraniteľným voči medziprotokolovému útoku, kedy je napadnutý slabší protokol, aby sa dostal k cene bez toho, aby sa dotkol toho silnejšieho.

V niektorých zložitých prípadoch nestačí jednoducho kontaktovať server pomocou slabšieho protokolu, ale vyžaduje si nedobrovoľnú účasť legitímneho klienta. Dá sa to zorganizovať pomocou takzvaného downgrade útoku. Aby sme tento útok pochopili, predpokladajme, že naši iluzionisti majú ťažšiu úlohu ako vo filme. Predpokladajme, že zamestnanec banky (pokladník) a Arthur narazili na nepredvídané okolnosti, ktoré vyústili do nasledujúceho dialógu:

Zlodej: Ahoj? Toto je Arthur Tressler. Chcel by som obnoviť svoje heslo.

Pokladník: Skvelé. Pozrite si prosím svoj osobný tajný kódový zoznam, strana 28, slovo 3. Všetky nasledujúce správy budú zašifrované pomocou tohto špecifického slova ako kľúča. PQJGH. LOTJNAM PGGY MXVRL ZZLQ SRIU HHNMLPPPV…

Zlodej: Hej, hej, počkaj, počkaj. Je to naozaj potrebné? Nemôžeme sa porozprávať ako normálni ľudia?

Pokladník: Neodporúčam to robiť.

Zlodej: Len... pozri, mal som mizerný deň, dobre? Som VIP klient a nemám náladu hrabať sa v týchto hlúpych knihách kódov.

Pokladník: Dobre. Ak na tom trváte, pán Tressler. Čo chceš?

Zlodej: Prosím, rád by som venoval všetky svoje peniaze Národnému fondu obetí Arthura Tresslera.

(Pauza).

Pokladník: Je to už jasné. Pri veľkých transakciách uveďte svoj PIN.

Zlodej: Moje čo?

Pokladník: Na vašu osobnú žiadosť vyžadujú transakcie tejto veľkosti pri veľkých transakciách PIN. Tento kód ste dostali pri otvorení svojho účtu.

Zlodej:... Stratil som to. Je to naozaj potrebné? Nemôžete schváliť dohodu?

Pokladník: Nie Prepáčte, pán Tressler. Opäť ide o bezpečnostné opatrenie, o ktoré ste žiadali. Ak chcete, môžeme vám do poštovej schránky poslať nový PIN kód.

Naši hrdinovia odkladajú operáciu. Odpočúvajú niekoľko Tresslerových veľkých transakcií v nádeji, že budú počuť PIN; ale zakaždým, keď sa konverzácia zmení na kódovaný blábol, kým sa povie niečo zaujímavé. Nakoniec, jedného pekného dňa, je plán uvedený do praxe. Trpezlivo čakajú na chvíľu, keď bude musieť Tressler uskutočniť veľkú transakciu cez telefón, pripojí sa na linku a potom...

Tressler: Ahoj. Chcel by som dokončiť transakciu na diaľku, prosím.

Pokladník: Skvelé. Pozrite si prosím svoj osobný tajný kódový zoznam, stránku...

(Zlodej stlačí tlačidlo; hlas pokladníka sa zmení na nezrozumiteľný hluk).

Pokladník: - #@$#@$#*@$$@#* bude zašifrované týmto slovom ako kľúčom. AAAYRR PLRQRZ MMNJK LOJBAN…

Tressler: Prepáč, celkom som nerozumel. Opäť? Na akej stránke? Aké slovo?

Pokladník: Toto je stránka @#$@#*$)#*#@()#@$(#@*$(#@*.

Tressler: Čo je?

Pokladník: Slovo číslo dvadsať @$#@$#%#$.

Tressler: Vážne! Už dosť! Vy a váš bezpečnostný protokol ste nejaký cirkus. Viem, že sa so mnou môžeš normálne porozprávať.

Pokladník: Neodporúčam…

Tressler: A neodporúčam vám strácať môj čas. Nechcem o tom nič viac počuť, kým nevyriešite problémy s telefónnou linkou. Môžeme uzavrieť túto dohodu alebo nie?

Pokladník:… Áno. Dobre. Čo chceš?

Tressler: Chcel by som previesť 20 000 $ na Lord Business Investments, číslo účtu...

Pokladník: Minútu, prosím. Je to veľká vec. Pri veľkých transakciách uveďte svoj PIN.

Tressler: Čo? Oh, presne tak. 1234.

Tu je útok smerom nadol. Slabší protokol „hovorte priamo“ bol predstavený ako možnosť v prípade núdze. A predsa sme tu.

Možno sa čudujete, kto so zdravým rozumom by navrhol skutočný „trezor, kým sa vás nepýta inak“, ako je ten opísaný vyššie. Ale rovnako ako fiktívna banka riskuje, aby si udržala zákazníkov, ktorí nemajú radi kryptografiu, systémy vo všeobecnosti často inklinujú k požiadavkám, ktoré sú ľahostajné alebo dokonca priamo nepriateľské voči bezpečnosti.

Presne to sa stalo s protokolom SSLv2 v roku 1995. Americká vláda už dlho začala považovať kryptografiu za zbraň, ktorú je najlepšie držať ďalej od zahraničných a domácich nepriateľov. Kusy kódu boli jednotlivo schválené na export zo Spojených štátov, často s podmienkou, že algoritmus bol zámerne oslabený. Netscape, vývojár najpopulárnejšieho prehliadača, Netscape Navigator, dostal povolenie pre SSLv2 iba s inherentne zraniteľným 512-bitovým kľúčom RSA (a 40-bitovým pre RC4).

Na konci tisícročia sa pravidlá uvoľnili a prístup k modernému šifrovaniu sa stal široko dostupným. Klienti a servery však už roky podporujú oslabenú „exportnú“ kryptografiu kvôli rovnakej zotrvačnosti, ktorá podporuje akýkoľvek starší systém. Klienti verili, že sa môžu stretnúť so serverom, ktorý nepodporuje nič iné. Servery urobili to isté. Samozrejme, protokol SSL diktuje, že klienti a servery by nikdy nemali používať slabý protokol, keď je k dispozícii lepší. Rovnaký predpoklad však platil aj pre Tresslera a jeho banku.

Táto teória si našla cestu do dvoch vysokoprofilových útokov, ktoré otriasli bezpečnosťou protokolu SSL v roku 2015, oba objavili výskumníci spoločnosti Microsoft a INRIA. Najprv boli vo februári odhalené podrobnosti o útoku FREAK, o tri mesiace neskôr nasledoval ďalší podobný útok s názvom Logjam, ktorému sa budeme podrobnejšie venovať, keď prejdeme k útokom na kryptografiu s verejným kľúčom.

Kryptografické útoky: vysvetlenie pre zmätené mysleZraniteľnosť FREAK (tiež známy ako "Smack TLS") sa objavil, keď výskumníci analyzovali implementácie TLS klient/server a objavili zvláštnu chybu. Ak v týchto implementáciách klient ani nepožiada o použitie slabej exportnej kryptografie, ale server stále odpovedá takýmito kľúčmi, klient povie „No dobre“ a prepne sa na slabú šifrovaciu sadu.

V tom čase bola exportná kryptografia všeobecne považovaná za zastaranú a zakázanú, takže útok bol úplným šokom a zasiahol mnohé dôležité domény vrátane Bieleho domu, IRS a stránok NSA. Ešte horšie je, že mnohé zraniteľné servery optimalizovali výkon opätovným použitím rovnakých kľúčov namiesto generovania nových pre každú reláciu. To umožnilo po downgrade protokolu vykonať predvýpočtový útok: prelomenie jedného kľúča zostalo relatívne drahé (100 USD a 12 hodín v čase publikácie), ale praktické náklady na napadnutie spojenia sa výrazne znížili. Stačí raz vybrať kľúč servera a od tej chvíle prelomiť šifrovanie pre všetky nasledujúce pripojenia.

A kým sa pohneme ďalej, je tu jeden pokročilý útok, ktorý treba spomenúť...

Oracle útok

Kryptografické útoky: vysvetlenie pre zmätené mysleMoxie Marlinspike najlepšie známy ako otec medziplatformovej aplikácie na odosielanie kryptografických správ Signal; no osobne sa nám páči jedna z jeho menej známych noviniek - princíp kryptografickej záhuby (Princíp kryptografického doomu). Aby sme to trochu parafrázovali, môžeme povedať toto: „Ak protokol funguje akýkoľvek vykoná kryptografickú operáciu na správe z potenciálne škodlivého zdroja a správa sa inak v závislosti od výsledku, je odsúdená na zánik." Alebo v ostrejšej forme: „Neber si informácie od nepriateľa na spracovanie, a ak už musíš, tak aspoň neukazuj výsledok.“

Nechajme bokom pretečenia vyrovnávacej pamäte, príkazové injekcie a podobne; sú nad rámec tejto diskusie. Porušenie „princípu skazy“ vedie k vážnym kryptografickým hackom, pretože protokol sa správa presne podľa očakávania.

Ako príklad si vezmime fiktívny návrh so zraniteľnou substitučnou šifrou a potom ukážme možný útok. Aj keď sme už videli útok na substitučnú šifru pomocou frekvenčnej analýzy, nie je to len „iný spôsob, ako prelomiť rovnakú šifru“. Naopak, útoky orákula sú oveľa modernejším vynálezom, ktorý sa dá použiť v mnohých situáciách, kde frekvenčná analýza zlyhá, a ukážku toho uvidíme v ďalšej časti. Tu je jednoduchá šifra zvolená len preto, aby bol príklad jasnejší.

Alice a Bob teda komunikujú pomocou jednoduchej substitučnej šifry pomocou kľúča, ktorý poznajú len oni. Na dĺžku správ sú veľmi prísni: majú presne 20 znakov. Dohodli sa teda, že ak chce niekto poslať kratšiu správu, mal by na koniec správy pridať nejaký fiktívny text, aby mala presne 20 znakov. Po nejakej diskusii sa rozhodli, že budú akceptovať iba nasledujúce fiktívne texty: a, bb, ccc, dddd atď. Takto je známy fiktívny text akejkoľvek požadovanej dĺžky.

Keď Alica alebo Bob dostanú správu, najprv skontrolujú, či má správa správnu dĺžku (20 znakov) a či prípona je správny fiktívny text. Ak to tak nie je, odpovedia príslušným chybovým hlásením. Ak je dĺžka textu a fiktívny text v poriadku, príjemca si správu prečíta sám a odošle zašifrovanú odpoveď.

Počas útoku sa útočník vydáva za Boba a posiela Alici falošné správy. Správy sú úplný nezmysel - útočník nemá kľúč, a preto nemôže sfalšovať zmysluplnú správu. Ale keďže protokol porušuje princíp záhuby, útočník môže Alicu aj tak chytiť do pasce, aby odhalila kľúčové informácie, ako je uvedené nižšie.

Zlodej: PREWF ZHJKL MMMN. LA

Alice: Neplatný fiktívny text.

Zlodej: PREWF ZHJKL MMMN. LB

Alice: Neplatný fiktívny text.

Zlodej: PREWF ZHJKL MMMN. LC

Alice: ILCT? TLCT RUWO PUT KCAW CPS OWPOW!

Vlamač netuší, čo Alice práve povedala, ale poznamenáva, že symbol C sa musí zhodovať a, pretože Alice prijala fiktívny text.

Zlodej: REWF ZHJKL MMMN. LAA

Alice: Neplatný fiktívny text.

Zlodej: REWF ZHJKL MMMN. LBB

Alice: Neplatný fiktívny text.

Po niekoľkých pokusoch...

Zlodej: REWF ZHJKL MMMN. LGG

Alice: Neplatný fiktívny text.

Zlodej: REWF ZHJKL MMMN. LHH

Alice: TLQO JWCRO FQAW SUY LCR C OWQXYJW. IW PWWR TU TCFA CHUYT TLQO JWFCTQUPOLQZ.

Útočník opäť netuší, čo Alice práve povedala, ale poznamenáva, že H sa musí zhodovať s b, pretože Alice prijala fiktívny text.

A tak ďalej, kým útočník nepozná význam každého znaku.

Metóda na prvý pohľad pripomína zvolený útok otvoreného textu. Nakoniec útočník vyberie šifrové texty a server ich poslušne spracuje. Hlavným rozdielom, ktorý robí tieto útoky životaschopnými v reálnom svete, je to, že útočník nepotrebuje prístup k skutočnému prepisu – stačí odpoveď servera, dokonca aj taká neškodná ako „Neplatný fiktívny text“.

Aj keď je tento konkrétny útok poučný, nenechajte sa príliš zavesiť na špecifiká schémy „fiktívneho textu“, konkrétneho použitého kryptosystému alebo presného poradia správ odoslaných útočníkom. Základnou myšlienkou je, ako Alica reaguje odlišne na základe vlastností otvoreného textu a robí tak bez overenia, že zodpovedajúci šifrovaný text skutočne pochádza od dôveryhodnej strany. Alice teda umožňuje útočníkovi vytlačiť z jej odpovedí tajné informácie.

V tomto scenári sa dá veľa zmeniť. Symboly, na ktoré Alice reaguje, či samotný rozdiel v jej správaní, či dokonca použitý kryptosystém. Ale princíp zostane rovnaký a útok ako celok zostane životaschopný v tej či onej forme. Základná implementácia tohto útoku pomohla odhaliť niekoľko bezpečnostných chýb, na ktoré sa čoskoro pozrieme; ale najprv je potrebné sa naučiť niekoľko teoretických lekcií. Ako použiť tento fiktívny „Alice skript“ v útoku, ktorý dokáže fungovať na skutočnej modernej šifre? Je to vôbec možné, dokonca aj teoreticky?

V roku 1998 odpovedal švajčiarsky kryptograf Daniel Bleichenbacher na túto otázku kladne. Predviedol útok orákula na široko používaný kryptosystém RSA s verejným kľúčom pomocou špecifickej schémy správ. V niektorých implementáciách RSA server odpovedá rôznymi chybovými správami v závislosti od toho, či sa čistý text zhoduje so schémou alebo nie; to stačilo na vykonanie útoku.

O štyri roky neskôr, v roku 2002, francúzsky kryptograf Serge Vaudenay predviedol veštecký útok takmer identický s tým, ktorý je opísaný v scenári Alice vyššie – až na to, že namiesto fiktívnej šifry prelomil celú slušnú triedu moderných šifier, ktoré ľudia v skutočnosti používajú. Vaudenayov útok sa zameriava najmä na šifry s pevnou vstupnou veľkosťou ("blokové šifry"), keď sa používajú v takzvanom "režime šifrovania CBC" a s určitou populárnou schémou výplne, v podstate ekvivalentnou tej v scenári Alice.

Aj v roku 2002 americký kryptograf John Kelsey - spoluautor Twofish — navrhol rôzne útoky orákula na systémy, ktoré komprimujú správy a potom ich šifrujú. Najpozoruhodnejší z nich bol útok, ktorý využil skutočnosť, že často je možné odvodiť pôvodnú dĺžku otvoreného textu z dĺžky šifrovaného textu. Teoreticky to umožňuje útok orákula, ktorý obnoví časti pôvodného otvoreného textu.

Nižšie uvádzame podrobnejší popis útokov Vaudenay a Kelsey (podrobnejší popis útoku Bleichenbacher poskytneme, keď prejdeme k útokom na kryptografiu s verejným kľúčom). Napriek nášmu najlepšiemu úsiliu sa text stáva trochu technickým; takže ak vám vyššie uvedené stačí, ďalšie dve časti preskočte.

Vodeneho útok

Aby sme pochopili útok Vaudenay, musíme si najprv povedať niečo viac o blokových šifrách a režimoch šifrovania. „Bloková šifra“ je, ako už bolo spomenuté, šifra, ktorá berie kľúč a vstup určitej pevnej dĺžky („dĺžka bloku“) a vytvára zašifrovaný blok rovnakej dĺžky. Blokové šifry sú široko používané a považujú sa za relatívne bezpečné. Teraz už vyradený DES, považovaný za prvú modernú šifru, bola bloková šifra. Ako už bolo spomenuté vyššie, to isté platí aj pre AES, ktorý je dnes široko používaný.

Bohužiaľ, blokové šifry majú jednu do očí bijúcu slabinu. Typická veľkosť bloku je 128 bitov alebo 16 znakov. Je zrejmé, že moderná kryptografia vyžaduje prácu s väčšími vstupnými údajmi a práve tu prichádzajú do hry režimy šifrovania. Režim šifrovania je v podstate hack: je to spôsob, ako nejakým spôsobom použiť blokovú šifru, ktorá akceptuje iba vstup určitej veľkosti na vstup ľubovoľnej dĺžky.

Vodeneho útok je zameraný na populárny režim prevádzky CBC (Cipher Block Chaining). Útok považuje základnú blokovú šifru za magickú, nedobytnú čiernu skrinku a úplne obchádza jej bezpečnosť.

Tu je diagram, ktorý ukazuje, ako režim CBC funguje:

Kryptografické útoky: vysvetlenie pre zmätené mysle

Kryptografické útoky: vysvetlenie pre zmätené mysle

Zakrúžkované plus znamená operáciu XOR (exkluzívne OR). Napríklad je prijatý druhý blok šifrovaného textu:

  1. Vykonaním operácie XOR na druhom bloku otvoreného textu s prvým blokom šifrovaného textu.
  2. Zašifrovanie výsledného bloku blokovou šifrou pomocou kľúča.

Keďže CBC tak intenzívne využíva binárnu operáciu XOR, nájdime si chvíľu na pripomenutie niektorých jej vlastností:

  • Idempotencia: Kryptografické útoky: vysvetlenie pre zmätené mysle
  • Komutatívnosť: Kryptografické útoky: vysvetlenie pre zmätené mysle
  • Asociativita: Kryptografické útoky: vysvetlenie pre zmätené mysle
  • Vlastná reverzibilita: Kryptografické útoky: vysvetlenie pre zmätené mysle
  • Veľkosť bajtu: bajt n z Kryptografické útoky: vysvetlenie pre zmätené mysle = (bajt n z Kryptografické útoky: vysvetlenie pre zmätené mysle) Kryptografické útoky: vysvetlenie pre zmätené mysle (bajt n z Kryptografické útoky: vysvetlenie pre zmätené mysle)

Tieto vlastnosti zvyčajne naznačujú, že ak máme rovnicu zahŕňajúcu operácie XOR a jednu neznámu, možno ju vyriešiť. Napríklad, ak to vieme Kryptografické útoky: vysvetlenie pre zmätené mysle s neznámym Kryptografické útoky: vysvetlenie pre zmätené mysle a slávny Kryptografické útoky: vysvetlenie pre zmätené mysle и Kryptografické útoky: vysvetlenie pre zmätené mysle, potom sa pri riešení rovnice môžeme spoľahnúť na vyššie uvedené vlastnosti Kryptografické útoky: vysvetlenie pre zmätené mysle. Aplikovaním XOR na obe strany rovnice s Kryptografické útoky: vysvetlenie pre zmätené mysle, dostaneme Kryptografické útoky: vysvetlenie pre zmätené mysle. To všetko bude o chvíľu veľmi aktuálne.

Medzi naším scenárom Alice a Vaudenayovým útokom sú dva menšie rozdiely a jeden veľký rozdiel. Dve menšie:

  • V scenári Alice očakávala, že pri postavách sa končia holé texty a, bb, ccc a tak ďalej. Pri útoku Wodene obeť namiesto toho očakáva, že otvorené texty budú N-krát ukončené N bajtom (t. j. hexadecimálne 01 alebo 02 02, alebo 03 03 03 atď.). Toto je čisto kozmetický rozdiel.
  • V scenári Alice bolo ľahké zistiť, či Alice prijala správu, podľa odpovede „Nesprávny fiktívny text“. Pri útoku Vodene je potrebná väčšia analýza a dôležitá je presná implementácia na strane obete; ale pre stručnosť berme ako samozrejmosť, že tento rozbor je stále možný.

Hlavný rozdiel:

  • Keďže nepoužívame rovnaký kryptosystém, vzťah medzi bajtami šifrovaného textu kontrolovanými útočníkom a tajnými informáciami (kľúč a otvorený text) bude zjavne odlišný. Preto bude musieť útočník pri vytváraní šifrových textov a interpretácii odpovedí servera použiť inú stratégiu.

Tento hlavný rozdiel je posledným kúskom skladačky, aby sme pochopili útok Vaudenay, takže sa na chvíľu zamyslime nad tým, prečo a ako sa dá vôbec uskutočniť útok orákula na CBC.

Predpokladajme, že sme dostali CBC šifrový text s 247 blokmi a chceme ho dešifrovať. Môžeme posielať falošné správy na server, rovnako ako sme predtým mohli posielať falošné správy Alice. Server za nás dešifruje správy, ale neukáže dešifrovanie - namiesto toho, opäť, ako v prípade Alice, server oznámi iba jeden bit informácie: či má čistý text platnú výplň alebo nie.

Zvážte, že v Alicinom scenári sme mali nasledujúce vzťahy:

$$display$$text{SIMPLE_SUBSTITUTION}(text{ciphertext},text{key}) = text{plaintext}$$display$$

Nazvime to „Alicina rovnica“. Ovládali sme šifrový text; zo servera (Alice) unikli nejasné informácie o prijatom otvorenom texte; a to nám umožnilo odvodiť informáciu o poslednom faktore – kľúči. Analogicky, ak dokážeme nájsť takéto spojenie pre skript CBC, mohli by sme tam tiež získať nejaké tajné informácie.

Našťastie existujú vzťahy, ktoré môžeme využiť. Zvážte výstup posledného volania na dešifrovanie blokovej šifry a označte tento výstup ako Kryptografické útoky: vysvetlenie pre zmätené mysle. Označujeme aj bloky otvoreného textu Kryptografické útoky: vysvetlenie pre zmätené mysle a bloky šifrovaného textu Kryptografické útoky: vysvetlenie pre zmätené mysle. Pozrite sa ešte raz na diagram CBC a všimnite si, čo sa stane:

Kryptografické útoky: vysvetlenie pre zmätené mysle

Nazvime to „rovnica CBC“.

V Alicinom scenári sme monitorovaním šifrovaného textu a sledovaním zodpovedajúceho úniku otvoreného textu dokázali spustiť útok, ktorý obnovil tretí výraz v rovnici – kľúč. V scenári CBC tiež monitorujeme šifrový text a pozorujeme úniky informácií o zodpovedajúcom otvorenom texte. Ak platí analógia, môžeme získať informácie o Kryptografické útoky: vysvetlenie pre zmätené mysle.

Predpokladajme, že sme sa skutočne obnovili Kryptografické útoky: vysvetlenie pre zmätené mysle, Čo potom? Potom môžeme vytlačiť celý posledný blok čistého textu naraz (Kryptografické útoky: vysvetlenie pre zmätené mysle), jednoducho zadaním Kryptografické útoky: vysvetlenie pre zmätené mysle (ktoré máme) a
prijaté Kryptografické útoky: vysvetlenie pre zmätené mysle do rovnice CBC.

Teraz, keď sme optimistickí, pokiaľ ide o celkový plán útoku, je čas vyriešiť detaily. Venujte prosím pozornosť tomu, ako presne na server unikajú informácie v otvorenom texte. V Alicinom skripte došlo k úniku, pretože Alica by odpovedala správnou správou iba vtedy, ak by $inline$text{SIMPLE_SUBSTITUTION}(text{ciphertext},text{key})$inline$ skončilo riadkom a (Alebo bb, a tak ďalej, ale pravdepodobnosť, že tieto stavy budú spustené náhodou, bola veľmi malá). Podobne ako CBC, server akceptuje výplň vtedy a len vtedy Kryptografické útoky: vysvetlenie pre zmätené mysle končí v šestnástkovej sústave 01. Skúsme teda rovnaký trik: posielať falošné šifrové texty s našimi vlastnými falošnými hodnotami Kryptografické útoky: vysvetlenie pre zmätené myslekým server neprijme výplň.

Keď server prijme výplň pre jednu z našich falošných správ, znamená to, že:

Kryptografické útoky: vysvetlenie pre zmätené mysle

Teraz používame vlastnosť bajt-bajt XOR:

Kryptografické útoky: vysvetlenie pre zmätené mysle

Poznáme prvý a tretí termín. A už sme videli, že nám to umožňuje obnoviť zostávajúci člen - posledný bajt Kryptografické útoky: vysvetlenie pre zmätené mysle:

Kryptografické útoky: vysvetlenie pre zmätené mysle

To nám tiež dáva posledný bajt konečného bloku otvoreného textu prostredníctvom rovnice CBC a vlastnosti bajt po byte.

Mohli sme to nechať tak a byť spokojní, že sme vykonali útok na teoreticky silnú šifru. V skutočnosti však môžeme urobiť oveľa viac: v skutočnosti môžeme obnoviť celý text. Vyžaduje si to trik, ktorý nebol v pôvodnom Alicinom scenári a nie je potrebný na útok orákula, ale stále stojí za to sa ho naučiť.

Aby ste to pochopili, najprv si všimnite, že výsledkom je výstup správnej hodnoty posledného bajtu Kryptografické útoky: vysvetlenie pre zmätené mysle máme novú schopnosť. Teraz, keď falšujeme šifrové texty, môžeme manipulovať s posledným bajtom zodpovedajúceho otvoreného textu. Opäť to súvisí s rovnicou CBC a vlastnosťou bajt po byte:

Kryptografické útoky: vysvetlenie pre zmätené mysle

Keďže teraz poznáme druhý výraz, môžeme použiť kontrolu nad prvým na kontrolu tretieho. Jednoducho vypočítame:

Kryptografické útoky: vysvetlenie pre zmätené mysle

Predtým sme to nemohli urobiť, pretože sme ešte nemali posledný bajt Kryptografické útoky: vysvetlenie pre zmätené mysle.

Ako nám to pomôže? Predpokladajme, že teraz vytvoríme všetky šifrové texty tak, že v zodpovedajúcich otvorených textoch sa posledný bajt rovná 02. Server teraz akceptuje výplň iba vtedy, ak čistý text končí na 02 02. Keďže sme opravili posledný bajt, stane sa to iba vtedy, ak je predposledný bajt otvoreného textu tiež 02. Neustále posielame falošné bloky šifrového textu, meníme predposledný bajt, kým server neprijme výplň pre jeden z nich. V tomto bode dostaneme:

Kryptografické útoky: vysvetlenie pre zmätené mysle

A obnovíme predposledný bajt Kryptografické útoky: vysvetlenie pre zmätené mysle rovnako ako bol obnovený posledný. Pokračujeme v rovnakom duchu: opravíme posledné dva bajty otvoreného textu na 03 03, zopakujeme tento útok pre tretí bajt od konca a tak ďalej, v konečnom dôsledku úplne obnovíme Kryptografické útoky: vysvetlenie pre zmätené mysle.

A čo zvyšok textu? Upozorňujeme, že hodnota Kryptografické útoky: vysvetlenie pre zmätené mysle je v skutočnosti $inline$text{BLOCK_DECRYPT}(text{key},C_{247})$inline$. Namiesto toho môžeme dať akýkoľvek iný blok Kryptografické útoky: vysvetlenie pre zmätené myslea útok bude stále úspešný. V skutočnosti môžeme požiadať server, aby urobil $inline$text{BLOCK_DECRYPT}$inline$ pre akékoľvek údaje. V tomto bode je koniec hry – môžeme dešifrovať akýkoľvek šifrovaný text (pozrite si to ešte raz na dešifrovací diagram CBC a všimnite si, že IV je verejné).

Táto konkrétna metóda hrá kľúčovú úlohu pri útoku orákula, s ktorým sa stretneme neskôr.

Kelseyho útok

Náš sympatický John Kelsey vysvetlil princípy mnohých možných útokov, nielen detaily konkrétneho útoku na konkrétnu šifru. Jeho 2002 článok roka je štúdia možných útokov na šifrované komprimované dáta. Mysleli ste si, že informácia o tom, že údaje boli pred zašifrovaním komprimované, nestačí na uskutočnenie útoku? Ukazuje sa, že to stačí.

Tento prekvapivý výsledok je spôsobený dvoma princípmi. Po prvé, existuje silná korelácia medzi dĺžkou otvoreného textu a dĺžkou šifrovaného textu; pre mnohé šifry presná rovnosť. Po druhé, keď sa vykonáva kompresia, existuje tiež silná korelácia medzi dĺžkou komprimovanej správy a stupňom „hlučnosti“ otvoreného textu, teda podielom neopakujúcich sa znakov (technický výraz je „vysoká entropia“ ).

Ak chcete vidieť princíp v praxi, zvážte dva otvorené texty:

Čistý text 1: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

Čistý text 2: ATVXCAGTRSVPTVVULSJQHGEYCMQPCRQBGCYIXCFJGJ

Predpokladajme, že oba otvorené texty sú komprimované a potom zašifrované. Získate dva výsledné šifrové texty a musíte uhádnuť, ktorý šifrový text zodpovedá ktorému otvorenému textu:

Šifrovaný text 1: PVOVEYBPJDPVANEAWVGCIUWAABCIYIKOOURMYDTA

Šifrovaný text 2: DWKJZXYU

Odpoveď je jasná. Spomedzi otvorených textov bolo možné skomprimovať iba otvorený text 1 do skromnej dĺžky druhého šifrového textu. Prišli sme na to bez toho, aby sme vedeli čokoľvek o kompresnom algoritme, šifrovacom kľúči alebo dokonca o samotnej šifre. V porovnaní s hierarchiou možných kryptografických útokov je to trochu šialené.

Kelsey ďalej poukazuje na to, že za určitých nezvyčajných okolností možno tento princíp použiť aj na uskutočnenie útoku veštcov. Predovšetkým popisuje, ako môže útočník obnoviť tajný otvorený text, ak môže prinútiť server, aby zašifroval údaje formulára (obyčajný text nasledovaný Kryptografické útoky: vysvetlenie pre zmätené myslekým to má pod kontrolou Kryptografické útoky: vysvetlenie pre zmätené mysle a môže nejakým spôsobom skontrolovať dĺžku zašifrovaného výsledku.

Opäť, ako pri iných útokoch na orákulum, máme vzťah:

Kryptografické útoky: vysvetlenie pre zmätené mysle

Opäť kontrolujeme jeden výraz (Kryptografické útoky: vysvetlenie pre zmätené mysle), vidíme malý únik informácií o inom člene (šifrovaný text) a snažíme sa obnoviť posledný (šifrovaný text). Napriek analógii je to trochu nezvyčajná situácia v porovnaní s inými útokmi veštcov, ktoré sme videli.

Na ilustráciu toho, ako môže takýto útok fungovať, použijeme fiktívnu schému kompresie, s ktorou sme práve prišli: TOYZIP. Hľadá riadky textu, ktoré sa už v texte vyskytli, a nahrádza ich tromi zástupnými bajtami, ktoré označujú, kde sa má nájsť predchádzajúci výskyt riadku a koľkokrát sa tam vyskytuje. Napríklad linka helloworldhello dá sa stlačiť do helloworld[00][00][05] 13 bajtov v porovnaní s pôvodnými 15 bajtmi.

Predpokladajme, že sa útočník pokúsi obnoviť čistý text formulára password=..., kde samotné heslo nie je známe. Podľa Kelseyho modelu útoku by útočník mohol požiadať server, aby komprimoval a potom zašifroval formulárové správy (obyčajný text, za ktorým Kryptografické útoky: vysvetlenie pre zmätené mysle) kde Kryptografické útoky: vysvetlenie pre zmätené mysle - Voľný text. Keď server dokončí prácu, oznámi dĺžku výsledku. Útok prebieha takto:

Zlodej: Komprimujte a zašifrujte čistý text bez akéhokoľvek vypĺňania.

Server: Dĺžka výsledku 14.

Zlodej: Komprimujte a zašifrujte čistý text, ku ktorému je pripojený password=a.

Server: Dĺžka výsledku 18.

Poznamenáva cracker: [pôvodných 14] + [tri bajty, ktoré boli nahradené password=] + a

Zlodej: Komprimujte a zašifrujte čistý text, do ktorého sa pridáva password=b.

Server: Dĺžka výsledku 18.

Zlodej: Komprimujte a zašifrujte čistý text, do ktorého sa pridáva password=с.

Server: Dĺžka výsledku 17.

Poznamenáva cracker: [pôvodných 14] + [tri bajty, ktoré boli nahradené password=c]. To predpokladá, že pôvodný otvorený text obsahuje reťazec password=c. To znamená, že heslo začína písmenom c

Zlodej: Komprimujte a zašifrujte čistý text, do ktorého sa pridáva password=сa.

Server: Dĺžka výsledku 18.

Poznamenáva cracker: [pôvodných 14] + [tri bajty, ktoré boli nahradené password=с] + a

Zlodej: Komprimujte a zašifrujte čistý text, do ktorého sa pridáva password=сb.

Server: Dĺžka výsledku 18.

(…o nejaký čas neskôr…)

Zlodej: Komprimujte a zašifrujte čistý text, do ktorého sa pridáva password=со.

Server: Dĺžka výsledku 17.

Poznamenáva cracker: [pôvodných 14] + [tri bajty, ktoré boli nahradené password=co]. Pomocou rovnakej logiky útočník dospeje k záveru, že heslo začína písmenami co

A tak ďalej, kým sa neobnoví celé heslo.

Čitateľovi by bolo odpustené, keby si myslel, že ide o čisto akademické cvičenie a že takýto scenár útoku by v reálnom svete nikdy nevznikol. Bohužiaľ, ako čoskoro uvidíme, je lepšie nevzdávať sa kryptografie.

Zraniteľnosť značky: CRIME, POODLE, DROWN

Nakoniec, po podrobnom preštudovaní teórie, môžeme vidieť, ako sa tieto techniky aplikujú v skutočných kryptografických útokoch.

CRIME

Kryptografické útoky: vysvetlenie pre zmätené mysleAk je útok zameraný na prehliadač a sieť obete, niektoré budú jednoduchšie a niektoré ťažšie. Napríklad je ľahké vidieť premávku obete: jednoducho si s ňou sadnite do jednej kaviarne s WiFi. Z tohto dôvodu sa potenciálnym obetiam (teda všetkým) vo všeobecnosti odporúča používať šifrované pripojenie. Bude ťažšie, ale stále možné, odosielať HTTP požiadavky v mene obete na nejakú stránku tretej strany (napríklad Google). Útočník musí nalákať obeť na škodlivú webovú stránku pomocou skriptu, ktorý vykoná požiadavku. Webový prehliadač automaticky poskytne príslušný súbor cookie relácie.

Zdá sa to úžasné. Ak by Bob išiel do evil.com, mohol by skript na tejto stránke požiadať Google, aby poslal e-mailom Bobovo heslo na adresu [email protected]? Teda teoreticky áno, ale v skutočnosti nie. Tento scenár sa nazýva útok na falšovanie žiadosti medzi stránkami (Falšovanie žiadostí o viac stránok, CSRF) a bol populárny okolo polovice 90. rokov. Dnes ak evil.com Ak vyskúšate tento trik, Google (alebo akýkoľvek web, ktorý rešpektuje seba samého) zvyčajne odpovie: „Skvelé, ale váš token CSRF pre túto transakciu bude... ehm... три триллиона и семь. Zopakujte toto číslo." Moderné prehliadače majú niečo, čo sa nazýva „politika rovnakého pôvodu“, podľa ktorej skripty na stránke A nemajú prístup k informáciám odosielaným webom B. Skript na evil.com môže posielať žiadosti na google.com, ale nemôže si prečítať odpovede alebo skutočne dokončiť transakciu.

Musíme zdôrazniť, že pokiaľ Bob nepoužíva šifrované pripojenie, všetky tieto ochrany sú bezvýznamné. Útočník môže jednoducho prečítať Bobovu návštevnosť a obnoviť súbor cookie relácie Google. Pomocou tohto súboru cookie jednoducho otvorí novú kartu Google bez toho, aby opustil svoj vlastný prehliadač, a vydá sa za Boba bez toho, aby narazil na otravné zásady rovnakého pôvodu. Ale, nanešťastie pre zlodeja, je to čoraz menej bežné. Internet ako celok už dávno vyhlásil vojnu nešifrovaným pripojeniam a Bobova odchádzajúca komunikácia je pravdepodobne šifrovaná, či sa mu to páči alebo nie. Navyše od samého začiatku implementácie protokolu bola aj prevádzka scvrkla pred šifrovaním; to bola bežná prax na zníženie latencie.

Tu to prichádza do úvahy CRIME (Compression Ratio Infoleak Made Easy, jednoduchý únik cez kompresný pomer). Zraniteľnosť bola odhalená v septembri 2012 bezpečnostnými výskumníkmi Juliano Rizzo a Thai Duong. Už sme preskúmali celý teoretický základ, ktorý nám umožňuje pochopiť, čo a ako robili. Útočník by mohol prinútiť Bobov prehliadač, aby odosielal požiadavky spoločnosti Google a potom si vypočul odpovede v lokálnej sieti v komprimovanej, zašifrovanej podobe. Preto máme:

Kryptografické útoky: vysvetlenie pre zmätené mysle

Tu útočník riadi požiadavku a má prístup k sledovaču prevádzky vrátane veľkosti paketu. Kelseyin fiktívny scenár ožil.

Autori CRIME pochopili teóriu a vytvorili exploit, ktorý dokáže ukradnúť súbory cookie relácie pre širokú škálu stránok vrátane Gmailu, Twitteru, Dropboxu a Githubu. Zraniteľnosť postihla väčšinu moderných webových prehliadačov, čo malo za následok uvoľnenie záplat, ktoré potichu pochovali funkciu kompresie v SSL, takže sa vôbec nepoužila. Jediným chráneným pred zraniteľnosťou bol úctyhodný Internet Explorer, ktorý nikdy nepoužíval kompresiu SSL.

PUDEL

Kryptografické útoky: vysvetlenie pre zmätené mysleV októbri 2014 urobil bezpečnostný tím Google vlny v bezpečnostnej komunite. Dokázali zneužiť zraniteľnosť protokolu SSL, ktorá bola opravená pred viac ako desiatimi rokmi.

Ukazuje sa, že zatiaľ čo servery bežia na úplne novom TLSv1.2, mnohé opustili podporu pre starý SSLv3 kvôli spätnej kompatibilite s Internet Explorerom 6. Už sme hovorili o útokoch downgrade, takže si viete predstaviť, čo sa deje. Dobre zorganizovaná sabotáž protokolu handshake a servery sú pripravené vrátiť sa k starému dobrému SSLv3, čo v podstate zmarilo posledných 15 rokov výskumu bezpečnosti.

Pre historický kontext, tu je krátky súhrn histórie SSL až po verziu 2 od Matthewa Greena:

Transport Layer Security (TLS) je najdôležitejší bezpečnostný protokol na internete. [..] takmer každá transakcia, ktorú vykonáte na internete, závisí od TLS. [..] Ale TLS nebolo vždy TLS. Protokol začal svoj život v r Netscape Communications s názvom „Secure Sockets Layer“ alebo SSL. Hovorí sa, že prvá verzia SSL bola taká hrozná, že vývojári zhromaždili všetky výtlačky kódu a zakopali ich na tajnej skládke v Novom Mexiku. V dôsledku toho je vlastne prvá verejne dostupná verzia SSL verzia SSL 2. Je to dosť desivé a [...] bol to produkt z polovice 90. rokov, ktorý moderní kryptografi považujú za „temné časy kryptografie" Mnohé z najohavnejších kryptografických útokov, o ktorých dnes vieme, ešte neboli objavené. Výsledkom bolo, že vývojári protokolu SSLv2 boli v podstate ponechaní na tápanie v tme a čelili veľa strašných príšer - na ich ľútosť a náš prospech, pretože útoky na SSLv2 zanechali neoceniteľné lekcie pre ďalšiu generáciu protokolov.

Po týchto udalostiach v roku 1996 frustrovaný Netscape prepracoval protokol SSL od nuly. Výsledkom bol protokol SSL verzie 3, ktorý opravených niekoľko známych bezpečnostných problémov svojho predchodcu.

Našťastie pre zlodejov „niekoľko“ neznamená „všetci“. Celkovo SSLv3 poskytol všetky potrebné stavebné bloky na spustenie útoku Vodene. Protokol používal blokovú šifru režimu CBC a nezabezpečenú schému výplne (toto bolo opravené v TLS; preto je potrebné vykonať downgrade útok). Ak si pamätáte schému výplne v našom pôvodnom popise útoku Vaudenay, schéma SSLv3 je veľmi podobná.

Ale, nanešťastie pre zlodejov, „podobné“ neznamená „identické“. Schéma výplne SSLv3 je „N náhodných bajtov, za ktorými nasleduje číslo N“. Pokúste sa za týchto podmienok vybrať imaginárny blok šifrového textu a prejsť všetkými krokmi pôvodnej schémy Vaudene: zistíte, že útok úspešne extrahuje posledný bajt z príslušného bloku otvoreného textu, ale nejde ďalej. Dešifrovanie každého 16. bajtu šifrového textu je skvelý trik, no nie je to víťazstvo.

Tvárou v tvár neúspechu sa tím Google uchýlil k poslednej možnosti: prešiel na silnejší model hrozby – ten, ktorý sa používa v CRIME. Za predpokladu, že útočníkom je skript spustený na karte prehliadača obete a dokáže extrahovať súbory cookie relácie, útok je stále pôsobivý. Zatiaľ čo širší model hrozby je menej realistický, v predchádzajúcej časti sme videli, že tento konkrétny model je uskutočniteľný.

Vzhľadom na tieto výkonnejšie schopnosti útočníka môže útok teraz pokračovať. Všimnite si, že útočník vie, kde sa v hlavičke nachádza zašifrovaný súbor cookie relácie a riadi dĺžku požiadavky HTTP, ktorá mu predchádza. Preto je schopný spracovať požiadavku HTTP tak, že posledný bajt cookie je zarovnaný s koncom bloku. Teraz je tento bajt vhodný na dešifrovanie. Do požiadavky môžete jednoducho pridať jeden znak a predposledný bajt súboru cookie zostane na rovnakom mieste a je vhodný na výber pomocou rovnakej metódy. Útok pokračuje týmto spôsobom, kým sa súbor cookie úplne neobnoví. Volá sa POODLE: Padding Oracle on Downgraded Legacy Encryption.

UTOPIŤ sa

Kryptografické útoky: vysvetlenie pre zmätené mysleAko sme už spomenuli, SSLv3 mal svoje chyby, no zásadne sa líšil od svojho predchodcu, keďže deravý SSLv2 bol produktom inej doby. Tu môžete prerušiť správu uprostred: соглашусь на это только через мой труп premenil соглашусь на это; klient a server by sa mohli stretnúť online, nadviazať dôveru a vymieňať si tajomstvá pred útočníkom, ktorý by sa potom mohol ľahko vydávať za oboch. Problémom je aj exportná kryptografia, ktorú sme spomenuli pri zvažovaní FREAK. Išlo o kryptografickú Sodomu a Gomoru.

V marci 2016 sa tím výskumníkov z rôznych technických oblastí spojil a dospel k prekvapujúcemu objavu: SSLv2 sa stále používa v bezpečnostných systémoch. Áno, útočníci už nemohli downgradovať moderné relácie TLS na SSLv2, pretože táto diera bola uzavretá po FREAK a POODLE, ale stále sa môžu pripojiť k serverom a iniciovať relácie SSLv2 sami.

Môžete sa opýtať, prečo nás zaujíma, čo tam robia? Majú zraniteľnú reláciu, ale nemalo by to mať vplyv na ostatné relácie alebo bezpečnosť servera - nie? No nie tak celkom. Áno, teoreticky by to tak malo byť. Ale nie - pretože generovanie certifikátov SSL predstavuje určitú záťaž, čo vedie k tomu, že mnoho serverov používa rovnaké certifikáty a v dôsledku toho rovnaké kľúče RSA pre pripojenia TLS a SSLv2. Aby toho nebolo málo, kvôli chybe OpenSSL možnosť „Zakázať SSLv2“ v tejto populárnej implementácii SSL v skutočnosti nefungovala.

To umožnilo krížový protokolový útok na TLS, tzv UTOPIŤ sa (Dešifrovanie RSA so zastaraným a oslabeným šifrovaním, dešifrovanie RSA so zastaraným a oslabeným šifrovaním). Pripomeňme, že to nie je to isté ako krátky útok; útočník nemusí vystupovať ako „muž v strede“ a nemusí zapájať klienta, aby sa zúčastnil nezabezpečenej relácie. Útočníci jednoducho iniciujú nezabezpečenú reláciu SSLv2 so samotným serverom, zaútočia na slabý protokol a obnovia súkromný kľúč RSA servera. Tento kľúč je platný aj pre pripojenia TLS a od tohto momentu už žiadne zabezpečenie TLS nezabráni jeho ohrozeniu.

Na jeho prelomenie však potrebujete funkčný útok proti SSLv2, ktorý vám umožní obnoviť nielen špecifickú komunikáciu, ale aj tajný kľúč servera RSA. Hoci ide o zložité nastavenie, výskumníci si mohli vybrať akúkoľvek zraniteľnosť, ktorá bola po SSLv2 úplne uzavretá. Nakoniec našli vhodnú možnosť: Bleichenbacherov útok, ktorý sme už spomínali a ktorý si podrobne vysvetlíme v nasledujúcom článku. SSL a TLS sú chránené pred týmto útokom, ale niektoré náhodné vlastnosti SSL v kombinácii s krátkymi kľúčmi v exportnej kryptografii to umožnili špecifická implementácia DROWN.

V čase zverejnenia bolo 25 % najlepších internetových stránok postihnutých zraniteľnosťou DROWN a útok mohol byť vykonaný so skromnými zdrojmi dostupnými aj pre zlomyseľných osamelých hackerov. Získanie kľúča RSA servera si vyžiadalo osem hodín výpočtov a 440 USD a protokol SSLv2 sa zmenil zo zastaraného na rádioaktívny.

Počkaj, čo Heartbleed?

Toto nie je kryptografický útok v zmysle opísanom vyššie; Toto je pretečenie vyrovnávacej pamäte.

Dajme si pauzu

Začali sme s niektorými základnými technikami: hrubou silou, interpoláciou, downgradingom, krížovým protokolom a predbežným výpočtom. Potom sme sa pozreli na jednu pokročilú techniku, možno hlavnú zložku moderných kryptografických útokov: útok orákula. Strávili sme dosť času na to, aby sme to zistili – a pochopili sme nielen základný princíp, ale aj technické detaily dvoch konkrétnych implementácií: útok Vaudenay na režim šifrovania CBC a útok Kelsey na protokoly šifrovania pred kompresiou.

Pri posudzovaní downgrade a predpočítačových útokov sme stručne načrtli útok FREAK, ktorý využíva obe metódy tak, že cieľové stránky prejdú na slabé kľúče a potom znova použijú rovnaké kľúče. Pre ďalší článok si uložíme (veľmi podobný) útok Logjam, ktorý sa zameriava na algoritmy verejného kľúča.

Potom sme sa pozreli na ďalšie tri príklady aplikácie týchto princípov. Po prvé, CRIME a POODLE: dva útoky, ktoré sa spoliehali na schopnosť útočníka vložiť ľubovoľný otvorený text vedľa cieľového otvoreného textu, potom preskúmať odpovede servera a potom,pomocou metodológie útoku Oracle, využiť tieto riedke informácie na čiastočné obnovenie otvoreného textu. CRIME sa vydal cestou Kelseyho útoku na SSL kompresiu, zatiaľ čo POODLE namiesto toho použil variant Vaudenayho útoku na CBC s rovnakým účinkom.

Potom sme obrátili našu pozornosť na crossprotocol DROWN útok, ktorý vytvorí spojenie so serverom pomocou staršieho protokolu SSLv2 a následne obnoví tajné kľúče servera pomocou Bleichenbacher útoku. Technické detaily tohto útoku sme zatiaľ preskočili; ako Logjam, bude musieť počkať, kým dobre pochopíme kryptosystémy s verejným kľúčom a ich zraniteľnosti.

V nasledujúcom článku si povieme niečo o pokročilých útokoch, ako sú stret-in-the-middle, diferenciálna kryptanalýza a narodeninové útoky. Poďme sa rýchlo pustiť do útokov na bočných kanáloch a potom prejdime k zábavnej časti: kryptosystémy s verejným kľúčom.

Zdroj: hab.com

Pridať komentár