Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuŔiem prātiem

Kad dzirdat vārdu ā€œkriptogrāfijaā€, daži cilvēki atceras savu WiFi paroli, zaļo piekaramo atslēgu blakus iecienÄ«tākās vietnes adresei un to, cik grÅ«ti ir iekļūt kāda cita e-pastā. Citi atgādina par virkni ievainojamÄ«bu pēdējos gados ar izteiksmÄ«giem saÄ«sinājumiem (DROWN, FREAK, POODLE...), stilÄ«giem logotipiem un brÄ«dinājumu steidzami atjaunināt pārlÅ«kprogrammu.

Kriptogrāfija aptver visu, bet bÅ«tÄ«ba citā. Lieta ir tāda, ka starp vienkārÅ”u un sarežģītu ir smalka robeža. Dažas lietas ir viegli izdarāmas, bet grÅ«ti atkal salikt kopā, piemēram, salauzt olu. Citas lietas ir viegli izdarāmas, bet grÅ«ti atgÅ«t, ja trÅ«kst kādas mazas, svarÄ«gas, bÅ«tiskas daļas: piemēram, atvērt aizslēgtas durvis, kad atslēga ir ā€œizŔķiroŔā daļaā€. Kriptogrāfija pēta Ŕīs situācijas un to, kā tās var izmantot praksē.

Pēdējos gados kriptogrāfisko uzbrukumu kolekcija ir pārvērtusies par spožu logotipu zoodārzu, kas piepildīts ar formulām no zinātniskiem rakstiem, un radījusi vispārēju drūmu sajūtu, ka viss ir salauzts. Taču patiesībā daudzi uzbrukumi ir balstīti uz dažiem vispārīgiem principiem, un bezgalīgas formulu lappuses bieži vien tiek izdalītas līdz viegli saprotamām idejām.

Å ajā rakstu sērijā mēs apskatÄ«sim dažādus kriptogrāfisko uzbrukumu veidus, akcentējot pamatprincipus. VispārÄ«gi un ne tieÅ”i Ŕādā secÄ«bā, bet mēs apskatÄ«sim tālāk norādÄ«to.

  • Pamatstratēģijas: brutāls spēks, frekvenču analÄ«ze, interpolācija, pazemināŔana un savstarpējie protokoli.
  • ZÄ«mola ievainojamÄ«bas: FREAK, CRIME, PÅŖDELIS, SLÄŖCINĀJS, Logjam.
  • Uzlabotas stratēģijas: orākula uzbrukumi (Vodenet uzbrukums, Kelsey uzbrukums); sapulces metode, dzimÅ”anas dienas uzbrukums, statistiskā novirze (diferenciālā kriptanalÄ«ze, integrālā kriptanalÄ«ze utt.).
  • Sānu kanālu uzbrukumi un viņu tuvi radinieki, neveiksmju analÄ«zes metodes.
  • Uzbrukumi publiskās atslēgas kriptogrāfijai: kuba sakne, raidÄ«jums, saistÄ«tais ziņojums, Coppersmith uzbrukums, Pohlig-Hellman algoritms, skaitļu siets, VÄ«nera uzbrukums, Bleihenbahera uzbrukums.

Å is konkrētais raksts aptver iepriekÅ” minēto materiālu lÄ«dz pat Kelsijas uzbrukumam.

Pamatstratēģijas

Tālāk minētie uzbrukumi ir vienkārÅ”i tādā nozÄ«mē, ka tos var gandrÄ«z pilnÄ«bā izskaidrot bez Ä«paŔām tehniskām detaļām. Izskaidrosim katru uzbrukuma veidu visvienkārŔākajā veidā, neiedziļinoties sarežģītos piemēros vai sarežģītos lietoÅ”anas gadÄ«jumos.

Daži no Å”iem uzbrukumiem lielā mērā ir novecojuÅ”i un nav izmantoti daudzus gadus. Citi ir veclaiki, kuri joprojām regulāri piezogas pie nenojauÅ”ajiem kriptosistēmas izstrādātājiem 21. gadsimtā. Var uzskatÄ«t, ka mÅ«sdienu kriptogrāfijas laikmets ir sācies ar IBM DES, pirmā Å”ifra, kas izturēja visus Ŕī saraksta uzbrukumus, parādÄ«Å”anos.

VienkārÅ”s brutāls spēks

Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuÅ”iem prātiemÅ ifrÄ“Å”anas shēma sastāv no divām daļām: 1) Å”ifrÄ“Å”anas funkcijas, kas paņem ziņojumu (plaintext) kombinācijā ar atslēgu un pēc tam izveido Å”ifrētu ziņojumu - Å”ifrētu tekstu; 2) atÅ”ifrÄ“Å”anas funkcija, kas ņem Å”ifrētu tekstu un atslēgu un veido vienkārÅ”u tekstu. Gan Å”ifrÄ“Å”anai, gan atÅ”ifrÄ“Å”anai ir jābÅ«t viegli izskaitļojamai ar atslēgu un grÅ«ti aprēķināmai bez tās.

Pieņemsim, ka redzam Å”ifrētu tekstu un mēģinām to atÅ”ifrēt bez papildu informācijas (to sauc par uzbrukumu tikai Å”ifrētajam tekstam). Ja mēs kaut kā maÄ£iski atrodam pareizo atslēgu, mēs varam viegli pārbaudÄ«t, vai tā patieŔām ir pareiza, ja rezultāts ir saprātÄ«gs ziņojums.

Ņemiet vērā, ka Å”eit ir divi netieÅ”i pieņēmumi. Pirmkārt, mēs zinām, kā veikt atÅ”ifrÄ“Å”anu, tas ir, kā darbojas kriptosistēma. Tas ir standarta pieņēmums, apspriežot kriptogrāfiju. Å ifra ievieÅ”anas detaļu slēpÅ”ana no uzbrucējiem var Ŕķist papildu droŔības pasākums, taču, tiklÄ«dz uzbrucējs ir izdomājis Ŕīs detaļas, Ŕī papildu droŔība tiek klusi un neatgriezeniski zaudēta. Tā Kerčhofa princips: Sistēma, kas nonāk ienaidnieka rokās, nedrÄ«kst radÄ«t neērtÄ«bas.

Otrkārt, mēs pieņemam, ka pareizā atslēga ir vienÄ«gā atslēga, kas novedÄ«s pie saprātÄ«gas atÅ”ifrÄ“Å”anas. Tas ir arÄ« pamatots pieņēmums; tas ir apmierināts, ja Å”ifrētais teksts ir daudz garāks par atslēgu un ir lasāms. Tas parasti notiek reālajā pasaulē, izņemot milzÄ«gas nepraktiskas atslēgas vai citas viltÄ«bas, kuras vislabāk atstāt malā (ja jums nepatÄ«k, ka esam izlaiduÅ”i skaidrojumu, lÅ«dzu, skatiet teorēmu 3.8 Å”eit).

Ņemot vērā iepriekÅ” minēto, rodas stratēģija: pārbaudiet visas iespējamās atslēgas. To sauc par brutālu spēku, un tiek garantēts, ka Ŕāds uzbrukums galu galā darbosies pret visiem praktiskiem Å”ifriem. Piemēram, lai uzlauztu, pietiek ar brutālu spēku Cēzara Å”ifrs, sens Å”ifrs, kurā atslēga ir viens alfabēta burts, kas nozÄ«mē nedaudz vairāk par 20 iespējamiem taustiņiem.

Diemžēl kriptonalÄ«tiÄ·iem atslēgas lieluma palielināŔana ir laba aizsardzÄ«ba pret brutālu spēku. Palielinoties atslēgas izmēram, iespējamo atslēgu skaits palielinās eksponenciāli. Izmantojot modernos taustiņu izmērus, vienkārÅ”s brutālais spēks ir pilnÄ«gi nepraktisks. Lai saprastu, ko mēs domājam, pieņemsim ātrāko zināmo superdatoru 2019. gada vidÅ«. Virsotne no IBM, ar maksimālo veiktspēju aptuveni 1017 operācijas sekundē. MÅ«sdienās tipiskais atslēgas garums ir 128 biti, kas nozÄ«mē 2128 iespējamās kombinācijas. Lai meklētu visus taustiņus, Summit superdatoram bÅ«s nepiecieÅ”ams laiks, kas aptuveni 7800 reižu pārsniedz Visuma vecumu.

Vai brutāls spēks jāuzskata par vēsturisku kuriozu? NebÅ«t ne: tā ir nepiecieÅ”ama sastāvdaļa kriptanalÄ«zes pavārgrāmatā. Reti kad Å”ifri ir tik vāji, ka tos var salauzt tikai ar gudru uzbrukumu, bez spēka pielietoÅ”anas vienā vai otrā pakāpē. Daudzi veiksmÄ«gi uzlauÅ”anas gadÄ«jumi izmanto algoritmisku metodi, lai vispirms vājinātu mērÄ·a Å”ifru un pēc tam veiktu brutāla spēka uzbrukumu.

Frekvences analīze

Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuÅ”iem prātiemLielākā daļa tekstu nav muļķīgi. Piemēram, angļu valodas tekstos ir daudz burtu "e" un rakstu "the"; binārajos failos starp informācijas daļām ir daudz nulles baitu. Frekvences analÄ«ze ir jebkurÅ” uzbrukums, kas izmanto Å”o faktu.

Kanoniskais Å”ifra piemērs, kas ir neaizsargāts pret Å”o uzbrukumu, ir vienkārÅ”ais aizstāŔanas Å”ifrs. Å ajā Å”ifrā atslēga ir tabula ar visiem aizstātajiem burtiem. Piemēram, ā€œgā€ tiek aizstāts ar ā€œhā€, ā€œoā€ ar j, tāpēc vārds ā€œgoā€ kļūst par ā€œhjā€. Å o Å”ifru ir grÅ«ti rupji izmantot, jo ir tik daudz iespējamo uzmeklÄ“Å”anas tabulu. Ja jÅ«s interesē matemātika, efektÄ«vais atslēgas garums ir aptuveni 88 biti: tas ir
Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuŔiem prātiem. Bet frekvences analīze parasti ātri pabeidz darbu.

Apsveriet Ŕādu Å”ifrētu tekstu, kas apstrādāts ar vienkārÅ”u aizstāŔanas Å”ifru:

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

KopÅ” Y notiek bieži, tostarp daudzu vārdu beigās, mēs provizoriski varam pieņemt, ka tas ir burts e:

XDeLe ALe UGLe XDWNKE WN DeAJeN ANF eALXD DGLAXWG XDAN ALe FleAUX GR WN OGQL ZDWBGEGZDO

pāris XD atkārtojas vairāku vārdu sākumā. Jo Ä«paÅ”i kombinācija XDeLe skaidri iesaka vārdu these vai there, tāpēc turpināsim:

TheLe ALe UGLe thWNKE WN HeaJeN ANF EALth DGLAtWG nekā ALe FleAUt GR WN OGQL ZDWBGEGZDO

Tālāk pieņemsim, ka L atbilst r, A Sākot no a un tā tālāk. Tas, iespējams, prasÄ«s dažus mēģinājumus, taču, salÄ«dzinot ar pilnu brutālu spēku uzbrukumu, Å”is uzbrukums ātri atjauno sākotnējo tekstu:

debesīs un zemē horatio ir vairāk lietu, nekā sapņojat jūsu filozofijā

Dažiem Ŕādu ā€œkriptogrammuā€ risināŔana ir aizraujoÅ”s hobijs.

Frekvences analÄ«zes ideja ir fundamentālāka, nekā Ŕķiet no pirmā acu uzmetiena. Un tas attiecas uz daudz sarežģītākiem Å”ifriem. Vēstures gaitā dažādi Å”ifrÄ“Å”anas modeļi ir mēģinājuÅ”i pretoties Ŕādam uzbrukumam, izmantojot "polialfabētisko aizstāŔanu". Å eit Å”ifrÄ“Å”anas procesa laikā burtu aizstāŔanas tabula tiek modificēta sarežģītos, bet paredzamos veidos, kas ir atkarÄ«gi no atslēgas. UzskatÄ«ja, ka visi Å”ie Å”ifri vienā reizē ir grÅ«ti uzlaužami; un tomēr pieticÄ«gā frekvences analÄ«ze galu galā uzvarēja tos visus.

VērienÄ«gākais polialfabētiskais Å”ifrs vēsturē un, iespējams, slavenākais, bija Otrā pasaules kara Enigma Å”ifrs. Tas bija salÄ«dzinoÅ”i sarežģīts salÄ«dzinājumā ar tā priekÅ”gājējiem, taču pēc smaga darba britu kriptoanalÄ«tiÄ·i to uzlauza, izmantojot frekvences analÄ«zi. Protams, viņi nevarēja izveidot tādu elegantu uzbrukumu, kāds parādÄ«ts iepriekÅ”; viņiem bija jāsalÄ«dzina zināmie vienkārŔā teksta un Å”ifrētā teksta pāri (tā sauktais "plaintext attack"), pat provocējot Enigma lietotājus Å”ifrēt noteiktus ziņojumus un analizēt rezultātu ("izvēlētais vienkārŔā teksta uzbrukums"). Bet tas nemaz neatvieglināja sakautu ienaidnieka armiju un nogrimuÅ”o zemÅ«deņu likteni.

Pēc Ŕī triumfa frekvenču analÄ«ze pazuda no kriptanalÄ«zes vēstures. MÅ«sdienu digitālajā laikmetā Å”ifri ir paredzēti darbam ar bitiem, nevis burtiem. Vēl svarÄ«gāk ir tas, ka Å”ie Å”ifri tika izstrādāti ar tumÅ”u izpratni par to, kas vēlāk kļuva pazÄ«stams kā Å neiera likums: Ikviens var izveidot Å”ifrÄ“Å”anas algoritmu, kuru viņŔ pats nevar uzlauzt. Å ifrÄ“Å”anas sistēmai ar to nepietiek likās grÅ«ti: lai pierādÄ«tu savu vērtÄ«bu, daudziem kriptoanalÄ«tiÄ·iem ir jāveic nežēlÄ«gs droŔības pārskats, kas darÄ«s visu iespējamo, lai uzlauztu Å”ifru.

Sākotnējie aprēķini

Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuÅ”iem prātiemPaņemiet hipotētisko pilsētu Precom Heights, kurā ir 200 000 iedzÄ«votāju. Katrā mājā pilsētā ir vērtslietas vidēji USD 30 000 vērtÄ«bā, bet ne vairāk kā USD 50 000 vērtÄ«bā. Precom droŔības tirgu monopolizē ACME Industries, kas ražo leÄ£endārās Coyoteā„¢ klases durvju slēdzenes. Saskaņā ar ekspertu analÄ«zi, Coyote klases slēdzeni var uzlauzt tikai ar ļoti sarežģītu hipotētisku maŔīnu, kuras izveide prasa apmēram piecus gadus un 50 000 USD ieguldÄ«jumu. Vai pilsēta ir droÅ”a?

Visticamāk nē. Galu galā parādÄ«sies diezgan ambiciozs noziedznieks. ViņŔ spriedÄ«s Ŕādi: ā€œJā, man bÅ«s lielas sākotnējās izmaksas. Pieci gadi pacietÄ«gas gaidÄ«Å”anas un USD 50 000. Bet, kad bÅ«Å”u pabeidzis, man bÅ«s piekļuve visas Ŕīs pilsētas bagātÄ«bas. Ja es pareizi izspēlÄ“Å”u savas kārtis, Å”is ieguldÄ«jums atmaksāsies daudzkārt.

Tas pats attiecas uz kriptogrāfiju. Uzbrukumi konkrētam Å”ifram tiek pakļauti nesaudzÄ«gai izmaksu un ieguvumu analÄ«zei. Ja attiecÄ«ba ir labvēlÄ«ga, uzbrukums nenotiks. Taču uzbrukumi, kas vērsti pret daudziem potenciālajiem upuriem vienlaikus, gandrÄ«z vienmēr atmaksājas, un tādā gadÄ«jumā labākā dizaina prakse ir pieņemt, ka tie sākās no pirmās dienas. Mums bÅ«tÄ«bā ir Mērfija likuma kriptogrāfiskā versija: "Viss, kas faktiski var sabojāt sistēmu, salauzÄ«s sistēmu."

VienkārŔākais piemērs kriptosistēmai, kas ir neaizsargāta pret priekÅ”aprēķinu uzbrukumu, ir bezatslēgas Å”ifrs. Tā tas bija ar Cēzara Å”ifrs, kas vienkārÅ”i pārbÄ«da katru alfabēta burtu trÄ«s burtus uz priekÅ”u (tabula ir cilpa, tāpēc pēdējais alfabēta burts tiek Å”ifrēts treÅ”ais). Å eit atkal stājas spēkā Kerchhoffs princips: kad sistēma ir uzlauzta, tā tiek uzlauzta uz visiem laikiem.

Koncepcija ir vienkārÅ”a. Pat iesācējs kriptosistēmas izstrādātājs, visticamāk, atpazÄ«s draudus un attiecÄ«gi sagatavosies. Raugoties uz kriptogrāfijas attÄ«stÄ«bu, Ŕādi uzbrukumi nebija piemēroti lielākajai daļai Å”ifru, sākot no pirmajām uzlabotajām Cēzara Å”ifra versijām lÄ«dz polialfabētisko Å”ifru samazināŔanās. Šādi uzbrukumi atgriezās tikai lÄ«dz ar mÅ«sdienu kriptogrāfijas laikmeta atnākÅ”anu.

Å Ä« atdeve ir saistÄ«ta ar diviem faktoriem. Pirmkārt, beidzot parādÄ«jās pietiekami sarežģītas kriptosistēmas, kurās ekspluatācijas iespēja pēc uzlauÅ”anas nebija acÄ«mredzama. Otrkārt, kriptogrāfija kļuva tik plaÅ”i izplatÄ«ta, ka miljoniem neprofesionālu cilvēku katru dienu pieņēma lēmumus par to, kur un kādas kriptogrāfijas daļas izmantot atkārtoti. Pagāja zināms laiks, lÄ«dz eksperti saprata riskus un sacēla trauksmi.

Atcerieties priekÅ”aprēķinu uzbrukumu: raksta beigās mēs apskatÄ«sim divus reālās dzÄ«ves kriptogrāfijas piemērus, kur tam bija svarÄ«ga loma.

Interpolācija

Šeit ir slavenais detektīvs Šerloks Holmss, kurŔ veic interpolācijas uzbrukumu nelaimīgajam doktoram Vatsonam:

Uzreiz nojautu, ka esi atbraucis no Afganistānas... Mans domu gājiens bija Ŕāds: ā€œÅ is cilvēks pēc tipa ir ārsts, bet viņam ir militārs pamats. Tātad, militārais ārsts. ViņŔ tikko atbraucis no tropiem - viņa seja ir tumÅ”a, bet tas nav viņa dabiskais ādas tonis, jo viņa plaukstas ir daudz baltākas. Seja ir nogurusi - acÄ«mredzot, viņŔ ir daudz cietis un cietis no slimÄ«bām. ViņŔ bija ievainots kreisajā rokā ā€“ tur to nekustÄ«gi un nedaudz nedabiski. Kur tropos angļu militārais ārsts varētu izturēt grÅ«tÄ«bas un gÅ«t ievainojumus? Protams, Afganistānā." Viss domu gājiens neaizņēma ne sekundi. Un tāpēc es teicu, ka tu nāc no Afganistānas, un tu biji pārsteigts.

Holmss varēja iegÅ«t ļoti maz informācijas no katra pierādÄ«juma atseviŔķi. Savu secinājumu viņŔ varēja izdarÄ«t, tikai apsverot tos visus kopā. Interpolācijas uzbrukums darbojas lÄ«dzÄ«gi, pārbaudot zināmos vienkārŔā un Å”ifrētā teksta pārus, kas izriet no vienas atslēgas. No katra pāra tiek iegÅ«ti atseviŔķi novērojumi, kas ļauj izdarÄ«t vispārÄ«gu secinājumu par atslēgu. Visi Å”ie secinājumi ir neskaidri un Ŕķiet bezjēdzÄ«gi, lÄ«dz tie pēkŔņi sasniedz kritisko masu un noved pie vienÄ«gā iespējamā secinājuma: lai cik neticami tas bÅ«tu, tam ir jābÅ«t patiesam. Pēc tam vai nu tiek atklāta atslēga, vai arÄ« atÅ”ifrÄ“Å”anas process kļūst tik pilnveidots, ka to var atkārtot.

Ilustrēsim ar vienkārÅ”u piemēru, kā darbojas interpolācija. Pieņemsim, ka vēlamies izlasÄ«t mÅ«su ienaidnieka Boba personÄ«go dienasgrāmatu. ViņŔ Å”ifrē katru numuru savā žurnālā, izmantojot vienkārÅ”u kriptosistēmu, par kuru viņŔ uzzināja no sludinājuma žurnālā "Kriptogrāfijas izspēles". Sistēma darbojas Ŕādi: Bobs izvēlas divus skaitļus, kas viņam patÄ«k: Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuÅ”iem prātiem Šø Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuÅ”iem prātiem. No Ŕī brīža, lai Å”ifrētu jebkuru numuru Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuÅ”iem prātiem, tā aprēķina Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuÅ”iem prātiem. Piemēram, ja Bobs izvēlējās Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuÅ”iem prātiem Šø Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuÅ”iem prātiem, tad numurs Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuÅ”iem prātiem tiks Å”ifrēts kā Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuÅ”iem prātiem.

Pieņemsim, ka 28. decembrÄ« pamanÄ«jām, ka Bobs kaut ko skrāpē savā dienasgrāmatā. Kad viņŔ bÅ«s pabeidzis, mēs klusi paņemsim to rokās un skatÄ«simies pēdējo ierakstu:

Datums: 235/520

Mīļā dienasgrāmata,

Å odien bija laba diena. Caur 64 Å”odien man ir randiņŔ ar Alisi, kura dzÄ«vo dzÄ«voklÄ« 843. Es tieŔām domāju, ka viņa varētu bÅ«t 26!

Tā kā mēs ļoti nopietni vēlamies sekot Bobam viņa randiņā (Å”ajā gadÄ«jumā mums abiem ir 15 gadi), ir ļoti svarÄ«gi zināt datumu, kā arÄ« Alises adresi. Par laimi, mēs pamanām, ka Boba kriptosistēma ir neaizsargāta pret interpolācijas uzbrukumu. Mēs varam nezināt Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuÅ”iem prātiem Šø Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuÅ”iem prātiem, taču mēs zinām Å”odienas datumu, tāpēc mums ir divi vienkārŔā un Å”ifrētā teksta pāri. Proti, mēs to zinām Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuÅ”iem prātiem Å”ifrēts Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuÅ”iem prātiemUn Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuÅ”iem prātiem - plkst Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuÅ”iem prātiem. LÅ«k, ko mēs pierakstÄ«sim:

Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuŔiem prātiem

Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuŔiem prātiem

Tā kā mums ir 15 gadi, mēs jau zinām par divu vienādojumu sistēmu ar diviem nezināmiem, ko Å”ajā situācijā ir pietiekami, lai atrastu Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuÅ”iem prātiem Šø Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuÅ”iem prātiem bez problēmām. Katrs vienkārŔā un Å”ifrētā teksta pāris nosaka Boba atslēgas ierobežojumu, un abi ierobežojumi kopā ir pietiekami, lai pilnÄ«bā atgÅ«tu atslēgu. MÅ«su piemērā atbilde ir Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuÅ”iem prātiem Šø Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuÅ”iem prātiem (pie Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuÅ”iem prātiem Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuÅ”iem prātiem, tātad 26 dienasgrāmatā atbilst vārdam "viens", tas ir, "tas pats" - apm. josla).

Interpolācijas uzbrukumi, protams, neaprobežojas tikai ar Ŕādiem vienkārÅ”iem piemēriem. Katrai kriptosistēmai, kas reducējas lÄ«dz labi saprotamam matemātiskam objektam un parametru sarakstam, draud interpolācijas uzbrukums ā€” jo saprotamāks objekts, jo lielāks risks.

Jaunpienācēji bieži sūdzas, ka kriptogrāfija ir "māksla veidot lietas pēc iespējas neglītākas". Iespējams, lielā mērā vainojami interpolācijas uzbrukumi. Bobs var izmantot elegantu matemātisko dizainu vai paturēt savu randiņu ar Alisi privātu, taču diemžēl parasti tas nav iespējams abos virzienos. Tas kļūs pilnīgi skaidrs, kad beidzot nonāksim pie publiskās atslēgas kriptogrāfijas tēmas.

Cross-protokols/pazemināta versija

Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuÅ”iem prātiemFilmā Now You See Me (2013) iluzionistu grupa mēģina izkrāpt korumpētu apdroÅ”ināŔanas magnātu Arturu Tresleru no visa viņa bagātÄ«bas. Lai piekļūtu ArtÅ«ra bankas kontam, iluzionistiem vai nu jānorāda viņa lietotājvārds un parole, vai arÄ« jāpiespiež viņŔ personÄ«gi ierasties bankā un piedalÄ«ties shēmā.

Abas iespējas ir ļoti sarežģītas; PuiÅ”i ir pieraduÅ”i uzstāties uz skatuves, nevis piedalÄ«ties izlÅ«koÅ”anas operācijās. Tāpēc viņi izvēlas treÅ”o iespējamo variantu: viņu lÄ«dzzinātājs piezvana uz banku un izliekas par ArtÅ«ru. Banka uzdod vairākus jautājumus, lai pārbaudÄ«tu identitāti, piemēram, onkuļa vārdu un pirmā mājdzÄ«vnieka vārdu; mÅ«su varoņi jau iepriekÅ” viņi viegli iegÅ«st Å”o informāciju no ArtÅ«ra, izmantojot gudru sociālo inženieriju. No Ŕī brīža lieliskajai paroles droŔībai vairs nav nozÄ«mes.

(Saskaņā ar pilsētas leÄ£endu, kuru esam personÄ«gi pārbaudÄ«juÅ”i un pārbaudÄ«juÅ”i, kriptogrāfs Eli BÄ«hems reiz sastapās ar bankas kasieru, kurÅ” uzstāja uz droŔības jautājuma uzstādÄ«Å”anu. Kad skaitÄ«tājs jautāja savas vecmāmiņas vārdu no mātes puses, BÄ«hems sāka diktēt: ā€œLielais X, mazs y, trÄ«s...").

Tas pats attiecas uz kriptogrāfiju, ja divi kriptogrāfijas protokoli tiek izmantoti paralēli, lai aizsargātu vienu un to paÅ”u lÄ«dzekli, un viens ir daudz vājāks par otru. IegÅ«tā sistēma kļūst neaizsargāta pret pārrobežu protokolu uzbrukumu, kad tiek uzbrukts vājākam protokolam, lai tiktu pie balvas, nepieskaroties spēcÄ«gākajam.

Dažos sarežģītos gadÄ«jumos nepietiek ar vienkārÅ”u sazināŔanos ar serveri, izmantojot vājāku protokolu, bet ir nepiecieÅ”ama likumÄ«ga klienta piespiedu lÄ«dzdalÄ«ba. To var organizēt, izmantojot tā saukto pazemināŔanas uzbrukumu. Lai saprastu Å”o uzbrukumu, pieņemsim, ka mÅ«su iluzionistiem ir grÅ«tāks uzdevums nekā filmā. Pieņemsim, ka bankas darbinieks (kasieris) un ArtÅ«rs saskārās ar kādiem neparedzētiem apstākļiem, kā rezultātā izveidojās Ŕāds dialogs:

Laupītājs: Sveiki? Tas ir Arturs Treslers. Es vēlos atiestatīt savu paroli.

Kasieris: Lieliski. LÅ«dzu, apskatiet savu personÄ«go slepeno kodu grāmatiņu, 28. lpp., vārds 3. Visi turpmākie ziņojumi tiks Å”ifrēti, izmantojot Å”o konkrēto vārdu kā atslēgu. PQJGH. LOTJNAM PGGY MXVRL ZZLQ SRIU HHNMLPPPVā€¦

LaupÄ«tājs: Hei, hei, pagaidi, pagaidi. Vai tas tieŔām ir vajadzÄ«gs? Vai mēs nevaram runāt kā normāli cilvēki?

Kasieris: Es neiesaku to darīt.

LaupÄ«tājs: Es vienkārÅ”i... skaties, man bija draņķīga diena, labi? Esmu VIP klients un man nav noskaņojuma rakties pa Ŕīm stulbajām kodu grāmatām.

Kasieris: Labi. Ja jūs uzstājat, Treslera kungs. Ko tu gribi?

Laupītājs: Lūdzu, es vēlētos ziedot visu savu naudu Arthur Tressler Nacionālajam upuru fondam.

(Pauze).

Kasieris: Vai tagad ir skaidrs. Lai veiktu lielus darījumus, lūdzu, norādiet savu PIN.

Laupītājs: Mans kas?

Kasieris: Pēc jÅ«su personÄ«ga pieprasÄ«juma Ŕāda lieluma transakcijām ir nepiecieÅ”ams PIN, lai veiktu lielus darÄ«jumus. Å is kods jums tika pieŔķirts, atverot kontu.

LaupÄ«tājs:... ES to pazaudēju. Vai tas tieŔām ir vajadzÄ«gs? Vai jÅ«s nevarat vienkārÅ”i apstiprināt darÄ«jumu?

Kasieris: Nē. Es atvainojos, Treslera kungs. Atkal, Å”is ir jÅ«su pieprasÄ«tais droŔības lÄ«dzeklis. Ja vēlaties, mēs varam nosÅ«tÄ«t jaunu PIN kodu uz jÅ«su pastkastÄ«ti.

MÅ«su varoņi atliek operāciju. Viņi noklausās vairākus Tressler lielos darÄ«jumus, cerot dzirdēt PIN; bet katru reizi saruna pārvērÅ”as Å”ifrētā blēņā, pirms tiek pateikts kaut kas interesants. Beidzot kādā jaukā dienā plāns tiek Ä«stenots. Viņi pacietÄ«gi gaida brÄ«di, kad Tresleram telefoniski jāveic apjomÄ«gs darÄ«jums, viņŔ tiek pie lÄ«nijas, un tad...

Tressler: Sveiki. Lūdzu, vēlos pabeigt attālinātu darījumu.

Kasieris: Lieliski. Lūdzu, apskatiet savu personīgo slepeno kodu grāmatiņu, lapu...

(Apzagtājs nospiež pogu; kasieres balss pārvērÅ”as nesaprotamā troksnÄ«).

Kasieris: - #@$#@$#*@$$@#* tiks Å”ifrēts ar Å”o vārdu kā atslēgu. AAAYRR PLRQRZ MMNJK LOJBANā€¦

Tressler: Atvainojiet, es īsti nesapratu. Atkal? kurā lapā? Kāds vārds?

Kasieris: Å Ä« ir lapa @#$@#*$)#*#@()#@$(#@*$(#@*).

Tressler: Kas ir?

Kasieris: Vārda numurs divdesmit @$#@$#%#$.

Tressler: Nopietni! Pietiek jau! Jūs un jūsu droŔības protokols esat kaut kāds cirks. Es zinu, ka tu vari ar mani normāli runāt.

Kasieris: Neiesakuā€¦

Tressler: Un es jums neiesaku tērēt savu laiku. Es nevēlos par to vairāk dzirdēt, kamēr neesat novērsis tālruņa lÄ«nijas problēmas. Vai mēs varam noslēgt Å”o darÄ«jumu vai nē?

Kasieris:ā€¦ Jā. Labi. Ko tu gribi?

Tressler: Vēlos pārskaitīt $20 000 uz Lord Business Investments, konta numurs...

Kasieris: Vienu minūti, lūdzu. Tas ir liels darījums. Lai veiktu lielus darījumus, lūdzu, norādiet savu PIN.

Tressler: Kas? Ak, tieÅ”i tā. 1234. gads.

Å eit ir lejupvērsts uzbrukums. Tika iecerēts vājāks protokols "tikai runājiet tieÅ”i". opcija avārijas gadÄ«jumā. Un tomēr Å”eit mēs esam.

Jums varētu rasties jautājums, kurÅ” pie pilna prāta izveidos Ä«stu "seifu, kamēr neprasÄ«s citādi" sistēmu, piemēram, iepriekÅ” aprakstÄ«to. Taču tāpat kā izdomāta banka uzņemas risku, lai noturētu klientus, kuriem nepatÄ«k kriptogrāfija, sistēmas kopumā bieži vien pievērÅ”as prasÄ«bām, kas ir vienaldzÄ«gas vai pat klaji naidÄ«gas pret droŔību.

TieÅ”i tas notika ar SSLv2 protokolu 1995. gadā. ASV valdÄ«ba jau sen ir sākusi uzskatÄ«t kriptogrāfiju par ieroci, ko vislabāk turēt prom no ārvalstu un vietējiem ienaidniekiem. Koda daļas tika atseviŔķi apstiprinātas eksportam no ASV, bieži vien ar nosacÄ«jumu, ka algoritms tika apzināti vājināts. Netscape, vispopulārākās pārlÅ«kprogrammas Netscape Navigator izstrādātājam, tika dota atļauja izmantot SSLv2 tikai ar raksturÄ«gi ievainojamo 512 bitu RSA atslēgu (un 40 bitu RC4).

LÄ«dz tÅ«kstoÅ”gades beigām noteikumi bija atviegloti, un piekļuve modernajai Å”ifrÄ“Å”anai kļuva plaÅ”i pieejama. Tomēr klienti un serveri gadiem ilgi ir atbalstÄ«juÅ”i novājinātu "eksporta" kriptogrāfiju tās paÅ”as inerces dēļ, kas uztur atbalstu jebkurai mantotajai sistēmai. Klienti uzskatÄ«ja, ka viņi varētu saskarties ar serveri, kas neatbalsta neko citu. Serveri darÄ«ja to paÅ”u. Protams, SSL protokols nosaka, ka klienti un serveri nekad nedrÄ«kst izmantot vāju protokolu, ja ir pieejams labāks protokols. Bet tas pats priekÅ”noteikums attiecās uz Tresleru un viņa banku.

Å Ä« teorija atradās divos augsta profila uzbrukumos, kas satricināja SSL protokola droŔību 2015. gadā, kurus atklāja Microsoft pētnieki un INRIA. Vispirms februārÄ« tika atklātas FREAK uzbrukuma detaļas, pēc tam trÄ«s mēneÅ”us vēlāk sekoja vēl viens lÄ«dzÄ«gs uzbrukums ar nosaukumu Logjam, par kuru mēs runāsim sÄ«kāk, kad pāriesim pie uzbrukumiem publiskās atslēgas kriptogrāfijai.

Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuÅ”iem prātiemNeaizsargātÄ«ba FREAK (pazÄ«stams arÄ« kā "Smack TLS") atklājās, kad pētnieki analizēja TLS klienta/servera implementācijas un atklāja dÄ«vainu kļūdu. Å ajās implementācijās, ja klients pat nelÅ«dz izmantot vāju eksporta kriptogrāfiju, bet serveris joprojām atbild ar Ŕādām atslēgām, klients saka ā€œAk labiā€ un pārslēdzas uz vāju Å”ifru komplektu.

Tolaik eksporta kriptogrāfija tika plaÅ”i uzskatÄ«ta par novecojuÅ”u un aizliegtu, tāpēc uzbrukums bija pilnÄ«gs Å”oks un skāra daudzas svarÄ«gas jomas, tostarp Balto namu, IRS un NSA vietnes. Vēl ļaunāk, izrādās, ka daudzi neaizsargāti serveri optimizēja veiktspēju, atkārtoti izmantojot tās paÅ”as atslēgas, nevis Ä£enerējot jaunas katrai sesijai. Tas ļāva pēc protokola pazemināŔanas veikt pirmsaprēķinu uzbrukumu: vienas atslēgas uzlauÅ”ana joprojām bija salÄ«dzinoÅ”i dārga (100 USD un 12 stundas publicÄ“Å”anas brÄ«dÄ«), bet praktiskās izmaksas savienojumam tika ievērojami samazinātas. Pietiek vienreiz atlasÄ«t servera atslēgu un no Ŕī brīža uzlauzt Å”ifrÄ“Å”anu visiem nākamajiem savienojumiem.

Un pirms mēs turpinām, ir jāpiemin viens progresīvs uzbrukums...

Orākula uzbrukums

Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuÅ”iem prātiemMoksija Mārlinspika vislabāk pazÄ«stams kā starpplatformu kriptogrāfijas ziņojumapmaiņas lietotnes Signal tēvs; bet mums personÄ«gi patÄ«k viens no viņa mazāk zināmajiem jauninājumiem - kriptogrāfijas posta princips (Kriptogrāfiskās nolemtÄ«bas princips). Nedaudz pārfrāzējot, mēs varam teikt: ā€œJa protokols darbojas jebkura veic kriptogrāfisku darbÄ«bu ziņojumam no potenciāli ļaunprātÄ«ga avota un uzvedas atŔķirÄ«gi atkarÄ«bā no rezultāta, tas ir lemts." Vai arÄ« asākā formā: "Neņemiet informāciju no ienaidnieka apstrādei un, ja jums ir nepiecieÅ”ams, tad vismaz nerādiet rezultātu."

Atstāsim malā bufera pārpildes, komandu injekcijas un tamlÄ«dzÄ«gi; tie ir ārpus Ŕīs diskusijas jomas. "NolemtÄ«bas principa" pārkāpums noved pie nopietniem kriptogrāfijas uzlauÅ”anas gadÄ«jumiem, jo ā€‹ā€‹protokols darbojas tieÅ”i tā, kā paredzēts.

Kā piemēru ņemsim fiktÄ«vu dizainu ar neaizsargātu aizstāŔanas Å”ifru un pēc tam demonstrēsim iespējamo uzbrukumu. Lai gan mēs jau esam redzējuÅ”i uzbrukumu aizstāŔanas Å”ifram, izmantojot frekvences analÄ«zi, tas nav tikai "vēl viens veids, kā izjaukt to paÅ”u Å”ifru". Gluži pretēji, orākula uzbrukumi ir daudz modernāks izgudrojums, ko var izmantot daudzās situācijās, kad frekvenču analÄ«ze neizdodas, un mēs to redzēsim nākamajā sadaļā. Å eit vienkārÅ”ais Å”ifrs ir izvēlēts tikai tāpēc, lai piemērs bÅ«tu skaidrāks.

Tātad Alise un Bobs sazinās, izmantojot vienkārÅ”u aizstāŔanas Å”ifru, izmantojot atslēgu, kas zināma tikai viņiem. Tie ir ļoti stingri attiecÄ«bā uz ziņojumu garumu: tie ir tieÅ”i 20 rakstzÄ«mes gari. Tāpēc viņi vienojās, ka, ja kāds vēlas nosÅ«tÄ«t Ä«sāku ziņojumu, ziņojuma beigās jāpievieno fiktÄ«vs teksts, lai tas bÅ«tu tieÅ”i 20 rakstzÄ«mes. Pēc dažām diskusijām viņi nolēma pieņemt tikai Ŕādus fiktÄ«vus tekstus: a, bb, ccc, dddd utt. Tādējādi ir zināms jebkura vajadzÄ«gā garuma fiktÄ«vs teksts.

Kad Alise vai Bobs saņem ziņojumu, viņi vispirms pārbauda, ā€‹ā€‹vai ziņojuma garums ir pareizs (20 rakstzÄ«mes) un vai sufikss ir pareizs fiktÄ«vais teksts. Ja tas tā nav, viņi atbild ar atbilstoÅ”u kļūdas ziņojumu. Ja teksta garums un fiktÄ«vais teksts ir pareizi, adresāts pats nolasa ziņojumu un nosÅ«ta Å”ifrētu atbildi.

Uzbrukuma laikā uzbrucējs uzdodas par Bobu un nosÅ«ta Alisei viltus ziņojumus. Ziņojumi ir pilnÄ«gas muļķības ā€“ uzbrucējam nav atslēgas, un tāpēc viņŔ nevar viltot jēgpilnu ziņojumu. Bet, tā kā protokols pārkāpj nolemtÄ«bas principu, uzbrucējs joprojām var piespiest Alisi atklāt galveno informāciju, kā parādÄ«ts tālāk.

Laupītājs: PREWF ZHJKL MMMN. LA

Alise: Nederīgs fiktīvs teksts.

Laupītājs: PREWF ZHJKL MMMN. LB

Alise: Nederīgs fiktīvs teksts.

Laupītājs: PREWF ZHJKL MMMN. LC

Alise: ILCT? TLCT RUWO PUT KCAW CPS OWPOW!

Kramplaužam nav ne jausmas, ko Alise tikko teica, taču atzīmē, ka simbols C jāatbilst a, jo Alise pieņēma fiktīvo tekstu.

Laupītājs: REWF ZHJKL MMMN. LAA

Alise: Nederīgs fiktīvs teksts.

Laupītājs: REWF ZHJKL MMMN. LBB

Alise: Nederīgs fiktīvs teksts.

Pēc vairākiem mēģinājumiem...

Laupītājs: REWF ZHJKL MMMN. LGG

Alise: Nederīgs fiktīvs teksts.

Laupītājs: REWF ZHJKL MMMN. LHH

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

Atkal uzbrucējam nav ne jausmas, ko Alise tikko teica, taču atzīmē, ka H ir jāatbilst b, jo Alise pieņēma fiktīvo tekstu.

Un tā tālāk, līdz uzbrucējs zina katra varoņa nozīmi.

No pirmā acu uzmetiena metode atgādina izvēlētu vienkārÅ”a teksta uzbrukumu. Galu galā uzbrucējs izvēlas Å”ifrētos tekstus, un serveris tos paklausÄ«gi apstrādā. Galvenā atŔķirÄ«ba, kas padara Å”os uzbrukumus dzÄ«votspējÄ«gus reālajā pasaulē, ir tā, ka uzbrucējam nav nepiecieÅ”ama piekļuve faktiskajam atÅ”ifrējumam ā€” pietiek ar servera atbildi, pat tik nekaitÄ«gu kā ā€œNederÄ«gs fiktÄ«vs tekstsā€.

Lai gan Å”is konkrētais uzbrukums ir pamācoÅ”s, pārāk neaizraujieties ar "fiktÄ«va teksta" shēmas specifiku, konkrēto izmantoto Å”ifrÄ“Å”anas sistēmu vai precÄ«zu uzbrucēja nosÅ«tÄ«to ziņojumu secÄ«bu. Pamatideja ir tāda, kā Alise reaģē atŔķirÄ«gi, pamatojoties uz vienkārŔā teksta Ä«paŔībām, un to dara, nepārbaudot, vai atbilstoÅ”ais Å”ifrētais teksts patieŔām nāk no uzticamas puses. Tādējādi Alise ļauj uzbrucējam no savām atbildēm izspiest slepenu informāciju.

Å ajā scenārijā var daudz ko mainÄ«t. Simboli, uz kuriem Alise reaģē, vai viņas uzvedÄ«bas atŔķirÄ«bas vai pat izmantotā kriptosistēma. Taču princips paliks nemainÄ«gs, un uzbrukums kopumā paliks dzÄ«votspējÄ«gs vienā vai otrā veidā. Å Ä« uzbrukuma pamata ievieÅ”ana palÄ«dzēja atklāt vairākas droŔības kļūdas, kuras mēs tuvākajā laikā apskatÄ«sim; bet vispirms ir jāapgÅ«st dažas teorētiskas mācÄ«bas. Kā izmantot Å”o izdomāto "Alises skriptu" uzbrukumā, kas var darboties ar Ä«stu mÅ«sdienu Å”ifru? Vai tas vispār ir iespējams, pat teorētiski?

1998. gadā Å veices kriptogrāfs Daniels Bleihenbahers uz Å”o jautājumu atbildēja apstiprinoÅ”i. ViņŔ demonstrēja orākula uzbrukumu plaÅ”i izmantotajai publiskās atslēgas kriptosistēmai RSA, izmantojot Ä«paÅ”u ziņojumu shēmu. Dažās RSA implementācijās serveris reaģē ar dažādiem kļūdu ziņojumiem atkarÄ«bā no tā, vai vienkārÅ”ais teksts atbilst shēmai vai nē; ar to pietika, lai veiktu uzbrukumu.

Četrus gadus vēlāk, 2002. gadā, franču kriptogrāfs Seržs Vodenejs demonstrēja orākula uzbrukumu, kas bija gandrÄ«z identisks tam, kas aprakstÄ«ts iepriekÅ” Alises scenārijā, izņemot to, ka fiktÄ«va Å”ifra vietā viņŔ salauza veselu cienÄ«jamu mÅ«sdienu Å”ifru klasi, ko cilvēki patiesÄ«bā izmanto. Jo Ä«paÅ”i Vaudenay uzbrukuma mērÄ·is ir fiksēta ievades lieluma Å”ifri ("bloka Å”ifri"), ja tie tiek izmantoti tā sauktajā "CBC Å”ifrÄ“Å”anas režīmā" un ar noteiktu populāru polsterējuma shēmu, kas bÅ«tÄ«bā ir lÄ«dzvērtÄ«ga Alises scenārijā esoÅ”ajai.

ArÄ« 2002. gadā amerikāņu kriptogrāfs Džons Kelsijs - lÄ«dzautors Divas zivis ā€” ierosināja dažādus orākula uzbrukumus sistēmām, kas saspiež ziņojumus un pēc tam tos Å”ifrē. Visievērojamākais no tiem bija uzbrukums, kurā tika izmantots fakts, ka bieži vien no Å”ifrētā teksta garuma var secināt sākotnējā teksta garumu. Teorētiski tas ļauj veikt orākula uzbrukumu, kas atgÅ«st sākotnējā vienkārŔā teksta daļas.

Zemāk mēs sniedzam detalizētāku Vaudenay un Kelsey uzbrukumu aprakstu (mēs sniegsim sÄ«kāku Bleichenbacher uzbrukuma aprakstu, kad pāriesim pie uzbrukumiem publiskās atslēgas kriptogrāfijai). Neskatoties uz mÅ«su pÅ«lēm, teksts kļūst nedaudz tehnisks; tādēļ, ja jums pietiek ar iepriekÅ” minēto, izlaidiet nākamās divas sadaļas.

Vodenes uzbrukums

Lai saprastu Vaudenay uzbrukumu, mums vispirms nedaudz vairāk jārunā par bloku Å”ifriem un Å”ifrÄ“Å”anas režīmiem. "Bloka Å”ifrs", kā minēts, ir Å”ifrs, kas ņem atslēgu un noteikta garuma ("bloka garuma") ievadi un izveido tāda paÅ”a garuma Å”ifrētu bloku. Bloku Å”ifri tiek plaÅ”i izmantoti un tiek uzskatÄ«ti par samērā droÅ”iem. Tagad atvaļinātais DES, kas tika uzskatÄ«ts par pirmo moderno Å”ifru, bija bloka Å”ifrs. Kā minēts iepriekÅ”, tas pats attiecas uz AES, ko mÅ«sdienās plaÅ”i izmanto.

Diemžēl bloka Å”ifriem ir viens acÄ«mredzams trÅ«kums. Parastais bloka lielums ir 128 biti jeb 16 rakstzÄ«mes. AcÄ«mredzot mÅ«sdienu kriptogrāfijai ir nepiecieÅ”ams strādāt ar lielākiem ievades datiem, un Å”eit tiek izmantoti Å”ifrÄ“Å”anas režīmi. Å ifrÄ“Å”anas režīms bÅ«tÄ«bā ir uzlauÅ”ana: tas ir veids, kā kaut kādā veidā lietot bloka Å”ifru, kas pieņem tikai noteikta izmēra ievadi, lai ievadÄ«tu patvaļīgu garumu.

Vodenes uzbrukums ir vērsts uz populāro CBC (Cipher Block Chaining) darbÄ«bas režīmu. Uzbrukumā pamatā esoÅ”ais bloka Å”ifrs tiek uzskatÄ«ts par maÄ£isku, neieņemamu melno kasti un pilnÄ«bā apiet tā droŔību.

Šeit ir diagramma, kas parāda, kā darbojas CBC režīms:

Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuŔiem prātiem

Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuŔiem prātiem

Ar apli apvilkts pluss apzÄ«mē XOR (ekskluzÄ«vu VAI) darbÄ«bu. Piemēram, tiek saņemts otrais Å”ifrētā teksta bloks:

  1. Veicot XOR darbÄ«bu otrajā vienkārŔā teksta blokā ar pirmo Å”ifrētā teksta bloku.
  2. IegÅ«tā bloka Å”ifrÄ“Å”ana ar bloka Å”ifru, izmantojot atslēgu.

Tā kā CBC tik intensÄ«vi izmanto bināro XOR darbÄ«bu, atcerēsimies dažas tās Ä«paŔības:

  • Idempotence: Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuÅ”iem prātiem
  • Komutativitāte: Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuÅ”iem prātiem
  • Asociativitāte: Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuÅ”iem prātiem
  • PaÅ”atgriezeniskums: Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuÅ”iem prātiem
  • Baita lielums: baits n no Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuÅ”iem prātiem = (n baits no Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuÅ”iem prātiem) Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuÅ”iem prātiem (n baits no Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuÅ”iem prātiem)

Parasti Ŕīs Ä«paŔības nozÄ«mē, ka, ja mums ir vienādojums ar XOR operācijām un vienu nezināmu, to var atrisināt. Piemēram, ja mēs to zinām Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuÅ”iem prātiem ar nezināmo Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuÅ”iem prātiem un slavens Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuÅ”iem prātiem Šø Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuÅ”iem prātiem, tad mēs varam paļauties uz iepriekÅ” minētajām Ä«paŔībām, lai atrisinātu vienādojumu Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuÅ”iem prātiem. Piemērojot XOR abās vienādojuma pusēs ar Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuÅ”iem prātiem, saņemam Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuÅ”iem prātiem. Tas viss pēc brīža kļūs ļoti aktuāls.

Ir divas nelielas atŔķirības un viena būtiska atŔķirība starp mūsu Alises scenāriju un Vodeneja uzbrukumu. Divas nelielas:

  • Skriptā Alise gaidÄ«ja, ka vienkārÅ”ie teksti beigsies ar varoņiem a, bb, ccc un tā tālāk. Vudēna uzbrukumā upuris tā vietā sagaida, ka vienkārÅ”ie teksti beigsies N reizes ar N baitu (tas ir, heksadecimālo 01 vai 02 02, vai 03 03 03 utt.). Tā ir tikai kosmētiska atŔķirÄ«ba.
  • Alises scenārijā bija viegli noteikt, vai Alise ir pieņēmusi ziņojumu, saņemot atbildi "Nepareizs fiktÄ«vs teksts". Vodenes uzbrukumā ir nepiecieÅ”ama lielāka analÄ«ze, un svarÄ«ga ir precÄ«za Ä«stenoÅ”ana upura pusē; bet Ä«suma labad pieņemsim, ka Ŕī analÄ«ze joprojām ir iespējama.

Galvenā atŔķirība:

  • Tā kā mēs neizmantojam vienu un to paÅ”u Å”ifrÄ“Å”anas sistēmu, attiecÄ«bas starp uzbrucēja kontrolētajiem Å”ifrētā teksta baitiem un noslēpumiem (atslēga un vienkārÅ”ais teksts) acÄ«mredzami atŔķirsies. Tāpēc, veidojot Å”ifrētus tekstus un interpretējot servera atbildes, uzbrucējam bÅ«s jāizmanto cita stratēģija.

Å Ä« bÅ«tiskā atŔķirÄ«ba ir pēdējā mÄ«klas daļa, lai izprastu Vodenay uzbrukumu, tāpēc veltÄ«sim brÄ«di, lai padomātu par to, kāpēc un kā vispār var veikt orākula uzbrukumu CBC.

Pieņemsim, ka mums ir dots 247 bloku CBC Å”ifrēts teksts, un mēs vēlamies to atÅ”ifrēt. Mēs varam nosÅ«tÄ«t viltus ziņojumus uz serveri, tāpat kā mēs varējām nosÅ«tÄ«t viltus ziņojumus Alisei iepriekÅ”. Serveris atÅ”ifrēs ziņojumus mÅ«su vietā, bet neparādÄ«s atÅ”ifrÄ“Å”anu - tā vietā, tāpat kā Alises gadÄ«jumā, serveris ziņos tikai vienu informācijas bitu: vai vienkārÅ”ajam tekstam ir derÄ«gs polsterējums vai nē.

Iedomājieties, ka Alises scenārijā mums bija Ŕādas attiecības:

$$displejs$$teksts{SIMPLE_SUBSTITUTION}(teksts{Å”ifrēts teksts}, teksts{atslēga}) = teksts{plaintext}$$displejs$$

Sauksim to par "Alises vienādojumu". Mēs kontrolējām Å”ifrētu tekstu; serveris (Alise) nopludināja neskaidru informāciju par saņemto vienkārÅ”u tekstu; un tas ļāva izsecināt informāciju par pēdējo faktoru ā€“ atslēgu. Pēc analoÄ£ijas, ja mēs varam atrast Ŕādu savienojumu CBC skriptam, mēs varētu arÄ« iegÅ«t kādu slepenu informāciju.

Par laimi, patieŔām ir attiecÄ«bas, kuras mēs varam izmantot. Apsveriet pēdējā zvana izvadi, lai atÅ”ifrētu bloka Å”ifru, un apzÄ«mējiet Å”o izvadi kā Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuÅ”iem prātiem. Mēs apzÄ«mējam arÄ« vienkārŔā teksta blokus Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuÅ”iem prātiem un Å”ifrēta teksta bloki Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuÅ”iem prātiem. Vēlreiz apskatiet CBC diagrammu un ievērojiet, kas notiek:

Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuŔiem prātiem

Sauksim to par ā€œCBC vienādojumuā€.

Alises scenārijā, pārraugot Å”ifrētu tekstu un vērojot atbilstoŔā vienkārŔā teksta noplÅ«di, mēs varējām veikt uzbrukumu, kas atguva treÅ”o vienādojuma vārdu ā€” atslēgu. CBC scenārijā mēs arÄ« uzraugām Å”ifrētu tekstu un novērojam informācijas noplÅ«des attiecÄ«gajā vienkārÅ”ajā tekstā. Ja lÄ«dzÄ«ba ir spēkā, mēs varam iegÅ«t informāciju par Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuÅ”iem prātiem.

Pieņemsim, ka mēs patieŔām atjaunojām Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuÅ”iem prātiem, ko tad? Tad mēs varam izdrukāt visu pēdējo vienkārŔā teksta bloku uzreiz (Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuÅ”iem prātiem), vienkārÅ”i ievadot Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuÅ”iem prātiem (kas mums ir) un
saņemts Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuÅ”iem prātiem CBC vienādojumā.

Tagad, kad esam optimistiski par kopējo uzbrukuma plānu, ir pienācis laiks izstrādāt detaļas. LÅ«dzu, pievērsiet uzmanÄ«bu tam, kā vienkārŔā teksta informācija tiek nopludināta serverÄ«. Alises skriptā noplÅ«de notika, jo Alise atbildēja ar pareizo ziņojumu tikai tad, ja $inline$text{SIMPLE_SUBSTITUTION}(text{ciphertext},text{key})$inline$ beidzās ar rindiņu a (Vai bbun tā tālāk, taču iespēja, ka Å”os apstākļus izraisÄ«s nejauŔība, bija ļoti maza). LÄ«dzÄ«gi kā CBC, serveris pieņem pildÄ«jumu tad un tikai tad Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuÅ”iem prātiem beidzas ar heksadecimālu 01. Tāpēc izmēģināsim to paÅ”u triku: sÅ«tÄ«t viltotus Å”ifrētus tekstus ar mÅ«su paÅ”u viltotām vērtÄ«bām Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuÅ”iem prātiemlÄ«dz serveris pieņem pildÄ«jumu.

Ja serveris pieņem pildījumu kādam no mūsu viltus ziņojumiem, tas nozīmē, ka:

Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuŔiem prātiem

Tagad mēs izmantojam baitu baitu XOR rekvizītu:

Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuŔiem prātiem

Mēs zinām pirmo un treÅ”o terminu. Un mēs jau esam redzējuÅ”i, ka tas ļauj mums atgÅ«t atlikuÅ”o termiņu - pēdējo baitu no Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuÅ”iem prātiem:

Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuŔiem prātiem

Tādējādi mēs iegÅ«stam arÄ« pēdējā vienkārŔā teksta bloka pēdējo baitu, izmantojot CBC vienādojumu un baitu pa baitam rekvizÄ«tu.

Mēs varētu to atstāt un bÅ«t gandarÄ«ti, ka esam veikuÅ”i uzbrukumu teorētiski spēcÄ«gam Å”ifram. Bet patiesÄ«bā mēs varam darÄ«t daudz vairāk: mēs faktiski varam atgÅ«t visu tekstu. Tam ir nepiecieÅ”ams triks, kas nebija Alises sākotnējā skriptā un nav vajadzÄ«gs orākula uzbrukumam, taču to joprojām ir vērts iemācÄ«ties.

Lai to saprastu, vispirms ņemiet vērā, ka pēdējā baita pareizās vērtÄ«bas izvadÄ«Å”anas rezultāts ir Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuÅ”iem prātiem mums ir jauna spēja. Tagad, veidojot Å”ifrētus tekstus, mēs varam manipulēt ar atbilstoŔā vienkārŔā teksta pēdējo baitu. Atkal, tas ir saistÄ«ts ar CBC vienādojumu un baitu pa baitam rekvizÄ«tu:

Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuŔiem prātiem

Tā kā mēs tagad zinām otro terminu, mēs varam izmantot savu kontroli pār pirmo, lai kontrolētu treÅ”o. Mēs vienkārÅ”i aprēķinām:

Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuŔiem prātiem

IepriekÅ” mēs to nevarējām izdarÄ«t, jo mums vēl nebija pēdējā baita Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuÅ”iem prātiem.

Kā tas mums palÄ«dzēs? Pieņemsim, ka tagad mēs izveidojam visus Å”ifrētos tekstus tā, lai atbilstoÅ”ajos vienkārÅ”ajos tekstos pēdējais baits bÅ«tu vienāds ar 02. Tagad serveris pieņem pildÄ«jumu tikai tad, ja vienkārÅ”ais teksts beidzas ar 02 02. Tā kā mēs izlabojām pēdējo baitu, tas notiks tikai tad, ja vienkārŔā teksta priekÅ”pēdējais baits ir arÄ« 02. Mēs turpinām sÅ«tÄ«t viltus Å”ifrētā teksta blokus, mainot priekÅ”pēdējo baitu, lÄ«dz serveris pieņem pildÄ«jumu vienam no tiem. Å ajā brÄ«dÄ« mēs iegÅ«stam:

Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuŔiem prātiem

Un mēs atjaunojam priekÅ”pēdējo baitu Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuÅ”iem prātiem tāpat kā tika atjaunots pēdējais. Mēs turpinām tādā paŔā garā: mēs labojam pēdējos divus baitus no vienkārÅ”a teksta uz 03 03, mēs atkārtojam Å”o uzbrukumu treÅ”ajam baitam no beigām un tā tālāk, galu galā pilnÄ«bā atjaunojot Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuÅ”iem prātiem.

Kā ar pārējo tekstu? LÅ«dzu, ņemiet vērā, ka vērtÄ«ba Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuÅ”iem prātiem patiesÄ«bā ir $inline$text{BLOCK_DECRYPT}(text{key},C_{247})$inline$. Tā vietā varam likt jebkuru citu bloku Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuÅ”iem prātiem, un uzbrukums joprojām bÅ«s veiksmÄ«gs. Faktiski mēs varam lÅ«gt serverim veikt $inline$text{BLOCK_DECRYPT}$inline$ jebkuriem datiem. Å ajā brÄ«dÄ« spēle ir beigusies ā€” mēs varam atÅ”ifrēt jebkuru Å”ifrētu tekstu (vēlreiz apskatiet CBC atÅ”ifrÄ“Å”anas diagrammu, lai to redzētu; un ņemiet vērā, ka IV ir publiska).

Å ai konkrētajai metodei ir izŔķiroÅ”a nozÄ«me orākula uzbrukumā, ar kuru mēs saskarsimies vēlāk.

Kelsijas uzbrukums

MÅ«su simpātiskais Džons Kelsijs izklāstÄ«ja daudzu iespējamo uzbrukumu pamatā esoÅ”os principus, nevis tikai detalizētu informāciju par konkrētu uzbrukumu konkrētam Å”ifram. Viņa Gada 2002 raksts ir pētÄ«jums par iespējamiem uzbrukumiem Å”ifrētiem saspiestiem datiem. Vai jÅ«s domājāt, ka ar informāciju, ka dati tika saspiesti pirms Å”ifrÄ“Å”anas, nepietika, lai veiktu uzbrukumu? Izrādās, ka pietiek.

Å is pārsteidzoÅ”ais rezultāts ir saistÄ«ts ar diviem principiem. Pirmkārt, pastāv cieÅ”a korelācija starp vienkārŔā teksta garumu un Å”ifrētā teksta garumu; daudziem Å”ifriem precÄ«za vienlÄ«dzÄ«ba. Otrkārt, veicot saspieÅ”anu, pastāv arÄ« spēcÄ«ga korelācija starp saspiestā ziņojuma garumu un vienkārŔā teksta "trokŔņainÄ«bas" pakāpi, tas ir, neatkārtojamo rakstzÄ«mju Ä«patsvaru (tehniskais termins ir "augsta entropija"). ).

Lai redzētu principu darbÄ«bā, apsveriet divus vienkārÅ”us tekstus:

VienkārÅ”ais teksts 1: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

VienkārÅ”ais teksts 2: ATVXCAGTRSVPTVVULSJQHGEYCMQPCRQBGCYIXCFJGJ

Pieņemsim, ka abi vienkārÅ”ie teksti ir saspiesti un pēc tam Å”ifrēti. JÅ«s saņemat divus Å”ifrētus tekstus un jums ir jāuzmin, kurÅ” Å”ifrētais teksts atbilst kādam vienkārÅ”ajam tekstam:

1. Å”ifrētais teksts: PVOVEYBPJDPVANEAWVGCIUWAABCIYIKOOURMYDTA

2. Å”ifrētais teksts: DWKJZXYU

Atbilde ir skaidra. No vienkārÅ”ajiem tekstiem tikai 1. vienkārÅ”ais teksts varēja tikt saspiests otrā Å”ifrētā teksta mazajā garumā. Mēs to sapratām, neko nezinot par saspieÅ”anas algoritmu, Å”ifrÄ“Å”anas atslēgu vai pat paÅ”u Å”ifru. SalÄ«dzinot ar iespējamo kriptogrāfisko uzbrukumu hierarhiju, tas ir traki.

Kelsija turklāt norāda, ka noteiktos neparastos apstākļos Å”o principu var izmantot arÄ« orākula uzbrukuma veikÅ”anai. Jo Ä«paÅ”i tajā ir aprakstÄ«ts, kā uzbrucējs var atgÅ«t slepeno vienkārÅ”o tekstu, ja viņŔ var piespiest serveri Å”ifrēt veidlapas datus (vienkārÅ”ais teksts, kam seko Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuÅ”iem prātiemkamēr viņŔ kontrolē Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuÅ”iem prātiem un var kaut kā pārbaudÄ«t Å”ifrētā rezultāta garumu.

Atkal, tāpat kā citiem orākula uzbrukumiem, mums ir attiecības:

Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuŔiem prātiem

Atkal mēs kontrolējam vienu terminu (Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuÅ”iem prātiem), mēs redzam nelielu informācijas noplÅ«di par citu dalÄ«bnieku (Å”ifrēts teksts) un mēģinām atgÅ«t pēdējo (plaintext). Neskatoties uz analoÄ£iju, Ŕī ir nedaudz neparasta situācija salÄ«dzinājumā ar citiem mÅ«su redzētajiem orākula uzbrukumiem.

Lai ilustrētu, kā Ŕāds uzbrukums varētu darboties, izmantosim fiktÄ«vu saspieÅ”anas shēmu, ko tikko izdomājām: TOYZIP. Tā meklē teksta rindiņas, kas tekstā ir parādÄ«juŔās iepriekÅ”, un aizstāj tās ar trÄ«s viettura baitiem, kas norāda, kur atrast agrāku rindas gadÄ«jumu un cik reizes tā tur parādās. Piemēram, lÄ«nija helloworldhello var saspiest iekŔā helloworld[00][00][05] 13 baitus garÅ”, salÄ«dzinot ar sākotnējiem 15 baitiem.

Pieņemsim, ka uzbrucējs mēģina atgÅ«t veidlapas vienkārÅ”o tekstu password=..., kur pati parole nav zināma. Saskaņā ar Kelsijas uzbrukuma modeli uzbrucējs var lÅ«gt serverim saspiest un pēc tam Å”ifrēt veidlapas ziņojumus (vienkārÅ”s teksts, kam seko Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuÅ”iem prātiem), Kur Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuÅ”iem prātiem - brÄ«vs teksts. Kad serveris ir beidzis darbu, tas ziņo par rezultāta garumu. Uzbrukums notiek Ŕādi:

LaupÄ«tājs: LÅ«dzu, saspiediet un Å”ifrējiet vienkārÅ”u tekstu bez polsterējuma.

Serveris: Rezultāta garums 14.

LaupÄ«tājs: LÅ«dzu, saspiediet un Å”ifrējiet vienkārÅ”u tekstu, kas ir pievienots password=a.

Serveris: Rezultāta garums 18.

Krekers atzīmē: [oriģināls 14] + [trīs baiti, kas tika aizstāti password=] + a

LaupÄ«tājs: LÅ«dzu, saspiediet un Å”ifrējiet vienkārÅ”u tekstu, kuram ir pievienots password=b.

Serveris: Rezultāta garums 18.

LaupÄ«tājs: LÅ«dzu, saspiediet un Å”ifrējiet vienkārÅ”u tekstu, kuram ir pievienots password=с.

Serveris: Rezultāta garums 17.

Krekers atzÄ«mē: [oriÄ£ināls 14] + [trÄ«s baiti, kas tika aizstāti password=c]. Tas pieņem, ka sākotnējā vienkārÅ”ajā tekstā ir virkne password=c. Tas ir, parole sākas ar burtu c

LaupÄ«tājs: LÅ«dzu, saspiediet un Å”ifrējiet vienkārÅ”u tekstu, kuram ir pievienots password=сa.

Serveris: Rezultāta garums 18.

Krekers atzÄ«mē: [oriÄ£ināls 14] + [trÄ«s baiti, kas tika aizstāti password=с] + a

LaupÄ«tājs: LÅ«dzu, saspiediet un Å”ifrējiet vienkārÅ”u tekstu, kuram ir pievienots password=сb.

Serveris: Rezultāta garums 18.

(ā€¦ pēc kāda laikaā€¦)

LaupÄ«tājs: LÅ«dzu, saspiediet un Å”ifrējiet vienkārÅ”u tekstu, kuram ir pievienots password=сŠ¾.

Serveris: Rezultāta garums 17.

Krekers atzÄ«mē: [oriÄ£ināls 14] + [trÄ«s baiti, kas tika aizstāti password=co]. Izmantojot to paÅ”u loÄ£iku, uzbrucējs secina, ka parole sākas ar burtiem co

Un tā tālāk, līdz tiek atjaunota visa parole.

LasÄ«tājam tiks piedots, ja viņŔ domā, ka tas ir tÄ«ri akadēmisks uzdevums un ka Ŕāds uzbrukuma scenārijs reālajā pasaulē nekad neradÄ«sies. Diemžēl, kā mēs drÄ«z redzēsim, labāk ir nepadoties kriptogrāfijai.

Zīmola ievainojamības: CRIME, POODLE, DROWN

Visbeidzot, detalizēti izpētot teoriju, mēs varam redzēt, kā Ŕīs metodes tiek izmantotas reālos kriptogrāfiskos uzbrukumos.

Noziegums

Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuÅ”iem prātiemJa uzbrukums ir vērsts pret upura pārlÅ«kprogrammu un tÄ«klu, daži bÅ«s vieglāk, bet daži grÅ«tāk. Piemēram, ir viegli redzēt upura satiksmi: vienkārÅ”i apsēdieties ar viņu vienā kafejnÄ«cā ar WiFi. Å Ä« iemesla dēļ potenciālajiem upuriem (t.i., visiem) parasti tiek ieteikts izmantot Å”ifrētu savienojumu. BÅ«s grÅ«tāk, bet tomēr iespējams veikt HTTP pieprasÄ«jumus cietuŔā vārdā kādai treŔās puses vietnei (piemēram, Google). Uzbrucējam ir jāievilina upuris uz ļaunprātÄ«gu tÄ«mekļa lapu ar skriptu, kas veic pieprasÄ«jumu. TÄ«mekļa pārlÅ«kprogramma automātiski nodroÅ”inās atbilstoÅ”o sesijas sÄ«kfailu.

Tas Ŕķiet pārsteidzoÅ”s. Ja Bobs devās uz evil.com, vai Ŕīs vietnes skripts varētu vienkārÅ”i lÅ«gt Google nosÅ«tÄ«t Boba paroli uz e-pastu [email protected]? Nu, teorētiski jā, bet patiesÄ«bā nē. Å o scenāriju sauc par starpvietņu pieprasÄ«juma viltoÅ”anas uzbrukumu (Vairāku vietņu pieprasÄ«jumu viltojums, CSRF), un tas bija populārs aptuveni 90. gadu vidÅ«. Å odien, ja evil.com Izmēģinot Å”o triku, Google (vai jebkura sevi cienoÅ”a vietne) parasti atbildēs ar: "Lieliski, bet jÅ«su CSRF marÄ·ieris Å”im darÄ«jumam bÅ«s... hm... трŠø трŠøŠ»Š»ŠøŠ¾Š½Š° Šø сŠµŠ¼ŃŒ. LÅ«dzu, atkārtojiet Å”o numuru." MÅ«sdienu pārlÅ«kprogrammām ir kaut kas saukts par "vienas izcelsmes politiku", saskaņā ar kuru skriptiem vietnē A nav piekļuves informācijai, ko sÅ«ta vietne B. Tātad skripts vietnē A evil.com var nosÅ«tÄ«t pieprasÄ«jumus uz google.com, taču nevar izlasÄ«t atbildes vai faktiski pabeigt darÄ«jumu.

Jāuzsver, ka visi Å”ie aizsardzÄ«bas lÄ«dzekļi ir bezjēdzÄ«gi, ja vien Bobs neizmanto Å”ifrētu savienojumu. Uzbrucējs var vienkārÅ”i nolasÄ«t Boba trafiku un atgÅ«t Google sesijas sÄ«kfailu. Izmantojot Å”o sÄ«kfailu, viņŔ vienkārÅ”i atvērs jaunu Google cilni, neatstājot savu pārlÅ«kprogrammu, un uzdosies par Bobu, nesaskaroties ar nepatÄ«kamām vienas izcelsmes politikām. Bet, diemžēl, zaglim tas notiek arvien retāk. Internets kopumā jau sen ir pieteicis karu neÅ”ifrētiem savienojumiem, un Boba izejoŔā trafika, iespējams, ir Å”ifrēta neatkarÄ«gi no tā, vai viņam tas patÄ«k vai nē. Turklāt jau no paÅ”a protokola ievieÅ”anas sākuma bija arÄ« satiksme saruka pirms Å”ifrÄ“Å”anas; tā bija ierasta prakse, lai samazinātu latentumu.

Å eit tas izpaužas Noziegums (Compression Ratio Infoleak Made Easy, vienkārÅ”a noplÅ«de caur kompresijas pakāpi). IevainojamÄ«bu 2012. gada septembrÄ« atklāja droŔības pētnieki Juliano Rizzo un Thai Duong. Mēs jau esam izskatÄ«juÅ”i visu teorētisko bāzi, kas ļauj saprast, ko un kā viņi darÄ«ja. Uzbrucējs var piespiest Boba pārlÅ«kprogrammu nosÅ«tÄ«t pieprasÄ«jumus uzņēmumam Google un pēc tam klausÄ«ties atbildes lokālajā tÄ«klā saspiestā, Å”ifrētā veidā. Tāpēc mums ir:

Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuŔiem prātiem

Šeit uzbrucējs kontrolē pieprasījumu un viņam ir piekļuve satiksmes snifferim, tostarp paketes izmēram. Kelsijas izdomātais scenārijs atdzīvojās.

Izprotot teoriju, CRIME autori izveidoja ekspluatāciju, kas var nozagt sesijas sÄ«kfailus plaÅ”am vietņu lokam, tostarp Gmail, Twitter, Dropbox un Github. IevainojamÄ«ba skāra lielāko daļu moderno tÄ«mekļa pārlÅ«kprogrammu, kā rezultātā tika izlaisti ielāpi, kas klusi apglabāja saspieÅ”anas funkciju SSL, lai tā netiktu izmantota vispār. VienÄ«gais, kas tika pasargāts no ievainojamÄ«bas, bija cienÄ«jamais Internet Explorer, kas nekad neizmantoja SSL saspieÅ”anu.

PÅŖDELIS

Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuÅ”iem prātiem2014. gada oktobrÄ« Google droŔības komanda radÄ«ja viļņus droŔības kopienā. Viņi varēja izmantot SSL protokola ievainojamÄ«bu, kas tika izlabota pirms vairāk nekā desmit gadiem.

Izrādās, ka, lai gan serveros darbojas jaunais spožais TLSv1.2, daudzi ir atstājuÅ”i atbalstu mantotajam SSLv3, lai nodroÅ”inātu atpakaļejoÅ”u saderÄ«bu ar pārlÅ«kprogrammu Internet Explorer 6. Mēs jau esam runājuÅ”i par pazemināŔanas uzbrukumiem, lai jÅ«s varētu iedomāties, kas notiek. Labi organizēta rokasspiediena protokola sabotāža, un serveri ir gatavi atgriezties pie vecā labā SSLv3, bÅ«tÄ«bā atceļot pēdējo 15 gadu droŔības izpēti.

Vēsturiskajam kontekstam, Å”eit ir Ä«ss MetjÅ« GrÄ«na SSL vēstures kopsavilkums lÄ«dz 2. versijai:

Transporta slāņa droŔība (TLS) ir vissvarÄ«gākais droŔības protokols internetā. [..] gandrÄ«z katrs darÄ«jums, ko veicat internetā, ir atkarÄ«gs no TLS. [..] Bet TLS ne vienmēr bija TLS. Protokols sāka savu dzÄ«vi Netscape komunikācijas sauc par "Secure Sockets Layer" vai SSL. Baumo, ka pirmā SSL versija bija tik briesmÄ«ga, ka izstrādātāji savāca visas koda izdrukas un apglabāja slepenā poligonā Ņūmeksikā. Tā rezultātā pirmā publiski pieejamā SSL versija faktiski ir versija SSL 2. Tas ir diezgan biedējoÅ”i, un [..] tas bija 90. gadu vidus produkts, ko mÅ«sdienu kriptogrāfi uzskata par "kriptogrāfijas tumÅ”ie laikmeti" Daudzi no visbriesmÄ«gākajiem kriptogrāfiskajiem uzbrukumiem, par kuriem mēs Å”odien zinām, vēl nav atklāti. Rezultātā SSLv2 protokola izstrādātāji bÅ«tÄ«bā bija atstāti tumsā, un viņi saskārās ar daudz briesmÄ«gu monstru - viņiem un mums par labu, jo uzbrukumi SSLv2 atstāja nenovērtējamu mācÄ«bu nākamās paaudzes protokoliem.

Pēc Å”iem notikumiem 1996. gadā neapmierināts Netscape no jauna izstrādāja SSL protokolu. Rezultāts bija SSL versija 3, kas novērsa vairākas zināmas tā priekÅ”gājēja droŔības problēmas.

Par laimi zagļiem ā€œdažiā€ nenozÄ«mē ā€œvisiā€. Kopumā SSLv3 nodroÅ”ināja visus nepiecieÅ”amos blokus, lai uzsāktu Vodene uzbrukumu. Protokolā tika izmantots CBC režīma bloka Å”ifrs un nedroÅ”a polsterējuma shēma (tas tika izlabots TLS; tāpēc bija nepiecieÅ”ams pazemināŔanas uzbrukums). Ja atceraties polsterējuma shēmu mÅ«su sākotnējā Vaudenay uzbrukuma aprakstā, SSLv3 shēma ir ļoti lÄ«dzÄ«ga.

Bet diemžēl zagļiem ā€œlÄ«dzÄ«gsā€ nenozÄ«mē ā€œidentisksā€. SSLv3 aizpildÄ«Å”anas shēma ir "N nejauÅ”i baiti, kam seko skaitlis N". Mēģiniet Ŕādos apstākļos atlasÄ«t iedomātu Å”ifrētā teksta bloku un iziet visas Voudenes sākotnējās shēmas darbÄ«bas: jÅ«s atklāsiet, ka uzbrukums veiksmÄ«gi izvelk pēdējo baitu no atbilstoŔā vienkārŔā teksta bloka, bet neiet tālāk. Katra 16. Å”ifrētā teksta baita atÅ”ifrÄ“Å”ana ir lielisks triks, taču tā nav uzvara.

Saskaroties ar neveiksmi, Google komanda izmantoja pēdējo lÄ«dzekli: viņi pārgāja uz jaudÄ«gāku draudu modeli ā€” to, kas tika izmantots noziedzÄ«bai. Pieņemot, ka uzbrucējs ir skripts, kas darbojas upura pārlÅ«kprogrammas cilnē un var izvilkt sesijas sÄ«kfailus, uzbrukums joprojām ir iespaidÄ«gs. Lai gan plaŔāks draudu modelis ir mazāk reālistisks, iepriekŔējā sadaļā mēs redzējām, ka Å”is konkrētais modelis ir iespējams.

Ņemot vērā Ŕīs jaudÄ«gākās uzbrucēju iespējas, uzbrukums tagad var turpināties. Ņemiet vērā, ka uzbrucējs zina, kur galvenē tiek parādÄ«ts Å”ifrētais sesijas sÄ«kfails, un kontrolē HTTP pieprasÄ«juma garumu pirms tā. Tāpēc tas spēj manipulēt ar HTTP pieprasÄ«jumu tā, lai sÄ«kfaila pēdējais baits bÅ«tu saskaņots ar bloka beigām. Tagad Å”is baits ir piemērots atÅ”ifrÄ“Å”anai. PieprasÄ«jumam var vienkārÅ”i pievienot vienu rakstzÄ«mi, un sÄ«kfaila priekÅ”pēdējais baits paliks tajā paŔā vietā un ir piemērots atlasei, izmantojot to paÅ”u metodi. Uzbrukums turpinās Ŕādā veidā, lÄ«dz sÄ«kfaila fails ir pilnÄ«bā atjaunots. To sauc POODLE: Padding Oracle on downgraded Legacy Encryption.

SLÄŖCINĀT

Kriptogrāfiskie uzbrukumi: izskaidrojums apmulsuÅ”iem prātiemKā jau minējām, SSLv3 bija savi trÅ«kumi, taču tas bÅ«tiski atŔķīrās no tā priekÅ”gājēja, jo noplÅ«duÅ”ais SSLv2 bija cita laikmeta produkts. Tur jÅ«s varētu pārtraukt ziņojumu vidÅ«: сŠ¾Š³Š»Š°ŃˆŃƒŃŃŒ Š½Š° этŠ¾ тŠ¾Š»ŃŒŠŗŠ¾ чŠµŃ€ŠµŠ· Š¼Š¾Š¹ труŠæ pārvērtās par сŠ¾Š³Š»Š°ŃˆŃƒŃŃŒ Š½Š° этŠ¾; klients un serveris varētu satikties tieÅ”saistē, izveidot uzticÄ«bu un apmainÄ«ties ar noslēpumiem uzbrucēja priekŔā, kurÅ” pēc tam varētu viegli uzdoties par abiem. Pastāv arÄ« problēma ar eksporta kriptogrāfiju, ko mēs minējām, apsverot FREAK. Tās bija kriptogrāfiskā Sodoma un Gomora.

2016. gada martā pētnieku komanda no dažādām tehniskajām jomām sanāca kopā un izdarÄ«ja pārsteidzoÅ”u atklājumu: SSLv2 joprojām tiek izmantots droŔības sistēmās. Jā, uzbrucēji vairs nevarēja pazemināt modernās TLS sesijas uz SSLv2, jo Å”is caurums tika aizvērts pēc FREAK un POODLE, taču viņi joprojām var izveidot savienojumu ar serveriem un paÅ”i iniciēt SSLv2 sesijas.

JÅ«s varat jautāt, kāpēc mums rÅ«p, ko viņi tur dara? Viņiem ir ievainojama sesija, taču tai nevajadzētu ietekmēt citas sesijas vai servera droŔību ā€“ vai ne? Nu ne gluži. Jā, tā tam teorētiski vajadzētu bÅ«t. Bet nē ā€“ jo SSL sertifikātu Ä£enerÄ“Å”ana uzliek zināmu slogu, kā rezultātā daudzi serveri izmanto vienus un tos paÅ”us sertifikātus un rezultātā tās paÅ”as RSA atslēgas TLS un SSLv2 savienojumiem. Vēl sliktāk, OpenSSL kļūdas dēļ opcija "Atspējot SSLv2" Å”ajā populārajā SSL implementācijā faktiski nedarbojās.

Tas padarÄ«ja iespējamu pārrobežu protokolu uzbrukumu TLS, ko sauc SLÄŖCINĀT (RSA atÅ”ifrÄ“Å”ana ar novecojuÅ”u un vājinātu Å”ifrÄ“Å”anu, RSA atÅ”ifrÄ“Å”ana ar novecojuÅ”u un novājinātu Å”ifrÄ“Å”anu). Atgādiniet, ka tas nav tas pats, kas Ä«ss uzbrukums; uzbrucējam nav jādarbojas kā "cilvēkam vidÅ«" un nav jāiesaista klients, lai piedalÄ«tos nedroŔā sesijā. Uzbrucēji vienkārÅ”i uzsāk nedroÅ”u SSLv2 sesiju ar serveri paÅ”i, uzbrÅ«k vājajam protokolam un atgÅ«st servera RSA privāto atslēgu. Å Ä« atslēga ir derÄ«ga arÄ« TLS savienojumiem, un no Ŕī brīža nekāda TLS droŔība neļaus to apdraudēt.

Taču, lai to uzlauztu, nepiecieÅ”ams strādājoÅ”s uzbrukums SSLv2, kas ļauj atgÅ«t ne tikai konkrētu trafiku, bet arÄ« slepeno RSA servera atslēgu. Lai gan Ŕī ir sarežģīta iestatÄ«Å”ana, pētnieki varēja izvēlēties jebkuru ievainojamÄ«bu, kas tika pilnÄ«bā aizvērta pēc SSLv2. Galu galā viņi atrada piemērotu iespēju: Bleichenbacher uzbrukumu, par kuru mēs minējām iepriekÅ” un ko mēs detalizēti paskaidrosim nākamajā rakstā. SSL un TLS ir aizsargāti pret Å”o uzbrukumu, taču dažas nejauÅ”as SSL funkcijas apvienojumā ar Ä«sajām atslēgām eksporta lÄ«meņa kriptogrāfijā padarÄ«ja to iespējamu. Ä«paÅ”a DROWN ievieÅ”ana.

PublicÄ“Å”anas brÄ«dÄ« 25% interneta populārāko vietņu bija skārusi DROWN ievainojamÄ«ba, un uzbrukumu varēja veikt ar pieticÄ«giem resursiem, kas bija pieejami pat ļauniem vientuļiem hakeriem. Servera RSA atslēgas izgÅ«Å”ana prasÄ«ja astoņas stundas skaitļoÅ”anas un 440 USD, un SSLv2 kļuva novecojis par radioaktÄ«vu.

Pagaidiet, kā ar Heartbleed?

Tas nav kriptogrāfisks uzbrukums iepriekÅ” aprakstÄ«tajā nozÄ«mē; Å Ä« ir bufera pārpilde.

Paņemsim pauzi

Mēs sākām ar dažiem pamata paņēmieniem: brutālu spēku, interpolāciju, pazemināŔanu, pārrobežu protokolu un iepriekŔēju aprēķinu. Tad mēs apskatÄ«jām vienu progresÄ«vu paņēmienu, iespējams, mÅ«sdienu kriptogrāfisko uzbrukumu galveno sastāvdaļu: orākula uzbrukumu. Mēs pavadÄ«jām diezgan ilgu laiku, lai to noskaidrotu - un sapratām ne tikai pamatprincipu, bet arÄ« divu konkrētu ievieÅ”anu tehniskās detaļas: Vaudenay uzbrukums CBC Å”ifrÄ“Å”anas režīmam un Kelsey uzbrukums pirmssaspieÅ”anas Å”ifrÄ“Å”anas protokoliem.

Pārskatot pazemināŔanas un priekÅ”aprēķinu uzbrukumus, mēs Ä«sumā aprakstÄ«jām FREAK uzbrukumu, kas izmanto abas metodes, liekot mērÄ·a vietnēm pazemināt versiju uz vājām atslēgām un pēc tam izmantot tās paÅ”as atslēgas. Nākamajā rakstā mēs saglabāsim (ļoti lÄ«dzÄ«gu) Logjam uzbrukumu, kura mērÄ·is ir publiskās atslēgas algoritmi.

Pēc tam mēs apskatÄ«jām vēl trÄ«s piemērus Å”o principu piemēroÅ”anai. Pirmkārt, CRIME un POODLE: divi uzbrukumi, kas balstÄ«jās uz uzbrucēja spēju ievadÄ«t patvaļīgu vienkārÅ”u tekstu blakus mērÄ·a vienkārÅ”ajam tekstam, pēc tam pārbauda servera atbildes un tad,izmantojot Oracle uzbrukuma metodoloÄ£iju, izmantojiet Å”o trÅ«cÄ«go informāciju, lai daļēji atgÅ«tu vienkārÅ”u tekstu. CRIME izvēlējās Kelsija uzbrukumu SSL saspieÅ”anai, savukārt POODLE tā vietā izmantoja Vodeneja uzbrukuma CBC variantu ar tādu paÅ”u efektu.

Pēc tam mēs pievērsām uzmanÄ«bu vairāku protokolu DROWN uzbrukumam, kas izveido savienojumu ar serveri, izmantojot mantoto SSLv2 protokolu, un pēc tam atgÅ«st servera slepenās atslēgas, izmantojot Bleichenbacher uzbrukumu. Pagaidām esam izlaiduÅ”i Ŕī uzbrukuma tehniskās detaļas; tāpat kā Logjam, tam bÅ«s jāgaida, lÄ«dz mēs labi sapratÄ«sim publiskās atslēgas kriptosistēmas un to ievainojamÄ«bas.

Nākamajā rakstā mēs runāsim par uzlabotiem uzbrukumiem, piemēram, tikÅ”anās vidÅ«, diferenciālo kriptonalÄ«zi un dzimÅ”anas dienas uzbrukumiem. Ä»aujiet mums ātri izpētÄ«t sānu kanālu uzbrukumus un pēc tam pāriet uz jautrāko daļu: publiskās atslēgas kriptosistēmas.

Avots: www.habr.com

Pievieno komentāru