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.
Å 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
Å 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
LielÄ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
. 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
PaÅ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: Šø . No Ŕī brīža, lai Å”ifrÄtu jebkuru numuru , tÄ aprÄÄ·ina . PiemÄram, ja Bobs izvÄlÄjÄs Šø , tad numurs tiks Å”ifrÄts kÄ .
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 Šø , 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 Å”ifrÄts Un - plkst . LÅ«k, ko mÄs pierakstÄ«sim:
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 Šø 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 Šø (pie , 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
FilmÄ 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...
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.
NeaizsargÄ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
Moksija 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:
Ar apli apvilkts pluss apzÄ«mÄ XOR (ekskluzÄ«vu VAI) darbÄ«bu. PiemÄram, tiek saÅemts otrais Å”ifrÄtÄ teksta bloks:
Veicot XOR darbÄ«bu otrajÄ vienkÄrÅ”Ä teksta blokÄ ar pirmo Å”ifrÄtÄ teksta bloku.
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:
KomutativitÄte:
AsociativitÄte:
PaŔatgriezeniskums:
Baita lielums: baits n no = (n baits no ) (n baits no )
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 ar nezinÄmo un slavens Šø , tad mÄs varam paļauties uz iepriekÅ” minÄtajÄm Ä«paŔībÄm, lai atrisinÄtu vienÄdojumu . PiemÄrojot XOR abÄs vienÄdojuma pusÄs ar , saÅemam . 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:
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Ä . MÄs apzÄ«mÄjam arÄ« vienkÄrÅ”Ä teksta blokus un Å”ifrÄta teksta bloki . VÄlreiz apskatiet CBC diagrammu un ievÄrojiet, kas notiek:
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 .
PieÅemsim, ka mÄs patieÅ”Äm atjaunojÄm , ko tad? Tad mÄs varam izdrukÄt visu pÄdÄjo vienkÄrÅ”Ä teksta bloku uzreiz (), vienkÄrÅ”i ievadot (kas mums ir) un
saÅemts 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 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 lÄ«dz serveris pieÅem pildÄ«jumu.
Ja serveris pieÅem pildÄ«jumu kÄdam no mÅ«su viltus ziÅojumiem, tas nozÄ«mÄ, ka:
Tagad mÄs izmantojam baitu baitu XOR rekvizÄ«tu:
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 :
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 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:
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:
IepriekÅ” mÄs to nevarÄjÄm izdarÄ«t, jo mums vÄl nebija pÄdÄjÄ baita .
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:
Un mÄs atjaunojam priekÅ”pÄdÄjo baitu 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 .
KÄ ar pÄrÄjo tekstu? LÅ«dzu, Åemiet vÄrÄ, ka vÄrtÄ«ba patiesÄ«bÄ ir $inline$text{BLOCK_DECRYPT}(text{key},C_{247})$inline$. TÄ vietÄ varam likt jebkuru citu bloku , 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:
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:
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 kamÄr viÅÅ” kontrolÄ un var kaut kÄ pÄrbaudÄ«t Å”ifrÄtÄ rezultÄta garumu.
Atkal, tÄpat kÄ citiem orÄkula uzbrukumiem, mums ir attiecÄ«bas:
Atkal mÄs kontrolÄjam vienu terminu (), 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 ), Kur - 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
Ja 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:
Å 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
2014. 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.
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.
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
KÄ 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.