Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isip

Kapag narinig mo ang salitang "cryptography," naaalala ng ilang tao ang kanilang password sa WiFi, ang berdeng padlock sa tabi ng address ng kanilang paboritong website, at kung gaano kahirap makapasok sa email ng ibang tao. Naaalala ng iba ang isang serye ng mga kahinaan sa mga nakalipas na taon na may mga pagdadaglat (DROWN, FREAK, PODLE...), mga naka-istilong logo at babala na agarang i-update ang iyong browser.

Sinasaklaw ng cryptography ang lahat ng ito, ngunit kakanyahan ng sa iba. Ang punto ay mayroong isang pinong linya sa pagitan ng simple at kumplikado. May mga bagay na madaling gawin, ngunit mahirap ibalik, tulad ng pagsira ng itlog. Ang ibang mga bagay ay madaling gawin ngunit mahirap ibalik kapag ang isang maliit, mahalaga, mahalagang bahagi ay nawawala: halimbawa, pagbubukas ng naka-lock na pinto kapag ang "mahalagang bahagi" ang susi. Pinag-aaralan ng Cryptography ang mga sitwasyong ito at kung paano ito magagamit sa pagsasanay.

Sa mga nakalipas na taon, ang koleksyon ng mga cryptographic na pag-atake ay naging isang zoo ng mga makikinang na logo, na puno ng mga formula mula sa mga siyentipikong papel, at nagdulot ng pangkalahatang madilim na pakiramdam na ang lahat ay sira. Ngunit sa katunayan, marami sa mga pag-atake ay nakabatay sa ilang pangkalahatang mga prinsipyo, at ang walang katapusang mga pahina ng mga formula ay kadalasang pinagsasama-sama sa mga ideyang madaling maunawaan.

Sa seryeng ito ng mga artikulo, titingnan natin ang iba't ibang uri ng cryptographic na pag-atake, na may diin sa mga pangunahing prinsipyo. Sa mga pangkalahatang tuntunin at hindi eksakto sa pagkakasunud-sunod na ito, ngunit sasaklawin namin ang sumusunod:

  • Pangunahing estratehiya: brute force, frequency analysis, interpolation, downgrading at cross-protocols.
  • Mga may tatak na kahinaan: FREAK, KRIMEN, POODLE, DROWN, Logjam.
  • Mga Advanced na Istratehiya: pag-atake ng orakulo (pag-atake ng Vodenet, pag-atake ng Kelsey); meet-in-the-middle method, birthday attack, statistical bias (differential cryptanalysis, integral cryptanalysis, atbp.).
  • Mga pag-atake sa side channel at ang kanilang mga malapit na kamag-anak, mga pamamaraan ng pagsusuri ng kabiguan.
  • Mga pag-atake sa public key cryptography: cube root, broadcast, kaugnay na mensahe, Coppersmith attack, Pohlig-Hellman algorithm, number sieve, Wiener attack, Bleichenbacher attack.

Sinasaklaw ng partikular na artikulong ito ang materyal sa itaas hanggang sa pag-atake ni Kelsey.

Pangunahing Istratehiya

Ang mga sumusunod na pag-atake ay simple sa kahulugan na halos ganap na maipaliwanag ang mga ito nang walang masyadong teknikal na detalye. Ipaliwanag natin ang bawat uri ng pag-atake sa pinakasimpleng termino, nang hindi pumunta sa mga kumplikadong halimbawa o mga advanced na kaso ng paggamit.

Ang ilan sa mga pag-atake na ito ay higit na naging lipas na at hindi na ginagamit sa loob ng maraming taon. Ang iba ay mga lumang-timer na regular pa ring sumilip sa mga hindi pinaghihinalaang mga developer ng cryptosystem sa ika-21 siglo. Ang panahon ng modernong cryptography ay maaaring ituring na nagsimula sa pagdating ng IBM DES, ang unang cipher na nakatiis sa lahat ng mga pag-atake sa listahang ito.

Simpleng brute force

Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isipAng encryption scheme ay binubuo ng dalawang bahagi: 1) ang encryption function, na kumukuha ng isang mensahe (plaintext) na pinagsama sa isang key, at pagkatapos ay lumilikha ng isang naka-encrypt na mensahe - ciphertext; 2) isang decryption function na kumukuha ng ciphertext at key at gumagawa ng plaintext. Ang pag-encrypt at pag-decryption ay dapat na madaling kalkulahin gamit ang susiβ€”at mahirap i-compute kung wala ito.

Ipagpalagay natin na nakikita natin ang ciphertext at subukang i-decrypt ito nang walang anumang karagdagang impormasyon (ito ay tinatawag na ciphertext-only attack). Kung sa anumang paraan ay mahiwagang mahanap natin ang tamang key, madali nating ma-verify na tama nga ito kung ang resulta ay isang makatwirang mensahe.

Tandaan na mayroong dalawang implicit na pagpapalagay dito. Una, alam namin kung paano magsagawa ng decryption, iyon ay, kung paano gumagana ang cryptosystem. Ito ay isang karaniwang pagpapalagay kapag tinatalakay ang cryptography. Ang pagtatago ng mga detalye ng pagpapatupad ng cipher mula sa mga umaatake ay maaaring mukhang isang karagdagang hakbang sa seguridad, ngunit kapag nalaman ng umaatake ang mga detalyeng ito, ang karagdagang seguridad na ito ay tahimik at hindi na mababawi. ganyan Prinsipyo ng Kerchoffs: Ang sistemang nahuhulog sa mga kamay ng kaaway ay hindi dapat magdulot ng abala.

Pangalawa, ipinapalagay namin na ang tamang key ay ang tanging susi na hahantong sa isang makatwirang pag-decryption. Ito rin ay isang makatwirang palagay; ito ay nasisiyahan kung ang ciphertext ay mas mahaba kaysa sa susi at nababasa. Ito ang kadalasang nangyayari sa totoong mundo, maliban malaking hindi praktikal na mga susi o iba pang mga kalokohan na pinakamahusay na iwanan (kung hindi mo gusto na nilaktawan namin ang paliwanag, mangyaring tingnan ang Theorem 3.8 dito).

Dahil sa nabanggit sa itaas, lumitaw ang isang diskarte: suriin ang bawat posibleng susi. Ito ay tinatawag na brute force, at ang gayong pag-atake ay garantisadong gagana laban sa lahat ng praktikal na cipher - sa kalaunan. Halimbawa, sapat na ang brute force para i-hack Caesar cipher, isang sinaunang cipher kung saan ang susi ay isang letra ng alpabeto, na nagpapahiwatig ng mahigit 20 posibleng key.

Sa kasamaang palad para sa mga cryptanalyst, ang pagtaas ng laki ng susi ay isang magandang depensa laban sa malupit na puwersa. Habang tumataas ang laki ng key, ang bilang ng mga posibleng key ay tumataas nang husto. Sa modernong mga sukat ng key, ang simpleng brute force ay ganap na hindi praktikal. Upang maunawaan kung ano ang ibig nating sabihin, kunin natin ang pinakamabilis na kilalang supercomputer noong kalagitnaan ng 2019: Rurok mula sa IBM, na may pinakamataas na pagganap na humigit-kumulang 1017 na operasyon bawat segundo. Ngayon, ang karaniwang haba ng key ay 128 bits, na nangangahulugang 2128 posibleng kumbinasyon. Upang maghanap sa lahat ng mga susi, ang Summit supercomputer ay mangangailangan ng oras na humigit-kumulang 7800 beses ang edad ng Uniberso.

Dapat bang ituring ang brute force na isang historical curiosity? Hindi naman: ito ay isang kinakailangang sangkap sa cryptanalysis cookbook. Bihira ang mga cipher na napakahina na maaari lamang itong masira sa pamamagitan ng isang matalinong pag-atake, nang walang paggamit ng puwersa sa isang antas o iba pa. Maraming matagumpay na hack ang gumagamit ng algorithmic na paraan upang pahinain muna ang target na cipher, at pagkatapos ay magsagawa ng brute force na pag-atake.

Pagsusuri ng dalas

Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isipKaramihan sa mga text ay hindi daldal. Halimbawa, sa mga tekstong Ingles ay maraming letrang 'e' at mga artikulong 'the'; sa mga binary file, mayroong maraming mga zero byte bilang padding sa pagitan ng mga piraso ng impormasyon. Ang pagsusuri sa dalas ay anumang pag-atake na sinasamantala ang katotohanang ito.

Ang kanonikal na halimbawa ng isang cipher na mahina sa pag-atake na ito ay ang simpleng substitution cipher. Sa cipher na ito, ang susi ay isang talahanayan na ang lahat ng mga titik ay pinalitan. Halimbawa, ang 'g' ay pinalitan ng 'h', 'o' ng j, kaya ang salitang 'go' ay naging 'hj'. Mahirap i-brute force ang cipher na ito dahil napakaraming posibleng lookup table. Kung interesado ka sa matematika, ang epektibong haba ng key ay humigit-kumulang 88 bits: iyan
Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isip. Ngunit kadalasang ginagawa ng pagsusuri sa dalas ang trabaho nang mabilis.

Isaalang-alang ang sumusunod na ciphertext na naproseso gamit ang isang simpleng substitution cipher:

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

Dahil sa Y madalas na nangyayari, kabilang ang sa dulo ng maraming salita, maaari nating ipagpalagay na ito ang liham e:

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

Pareha XD inuulit sa simula ng ilang salita. Sa partikular, malinaw na iminumungkahi ng kumbinasyong XDeLe ang salita these o there, kaya magpatuloy tayo:

theLe ALe UGLe thWNKE WN heAJeN ANF eALth DGLAtWG than ALe FLeAUt GR WN OGQL ZDWBGEGZDO

Ipagpalagay pa natin iyon L tumutugma sa r, A - a at iba pa. Malamang na tatagal ito ng ilang pagsubok, ngunit kumpara sa isang buong brute force na pag-atake, ibinabalik ng pag-atakeng ito ang orihinal na teksto sa lalong madaling panahon:

mas maraming bagay sa langit at lupa horatio kaysa sa pinangarap sa iyong pilosopiya

Para sa ilan, ang paglutas ng gayong mga "cryptograms" ay isang kapana-panabik na libangan.

Ang ideya ng pagsusuri ng dalas ay mas mahalaga kaysa sa tila sa unang tingin. At nalalapat ito sa mas kumplikadong mga cipher. Sa buong kasaysayan, sinubukan ng iba't ibang disenyo ng cipher na kontrahin ang naturang pag-atake gamit ang "polyalphabetic substitution". Dito, sa panahon ng proseso ng pag-encrypt, ang talahanayan ng pagpapalit ng titik ay binago sa kumplikado ngunit mahuhulaan na mga paraan na nakasalalay sa susi. Ang lahat ng mga cipher na ito ay itinuturing na mahirap masira sa isang pagkakataon; at gayon pa man ang katamtamang pagtatasa ng dalas sa kalaunan ay natalo silang lahat.

Ang pinaka-ambisyoso na polyalphabetic cipher sa kasaysayan, at marahil ang pinakatanyag, ay ang Enigma cipher ng World War II. Ito ay medyo kumplikado kumpara sa mga nauna nito, ngunit pagkatapos ng maraming pagsusumikap, sinira ito ng mga cryptanalyst ng British gamit ang frequency analysis. Siyempre, hindi sila makakabuo ng isang eleganteng pag-atake tulad ng ipinakita sa itaas; kinailangan nilang paghambingin ang mga kilalang pares ng plaintext at ciphertext (ang tinatawag na "plaintext attack"), kahit na hikayatin ang mga user ng Enigma na i-encrypt ang ilang partikular na mensahe at suriin ang resulta (ang "chosen plaintext attack"). Ngunit hindi nito ginawang mas madali ang kapalaran ng mga talunang hukbo ng kaaway at lumubog ang mga submarino.

Matapos ang tagumpay na ito, ang pagtatasa ng dalas ay nawala sa kasaysayan ng cryptanalysis. Ang mga cipher sa modernong digital na edad ay idinisenyo upang gumana sa mga piraso, hindi mga titik. Higit sa lahat, ang mga cipher na ito ay idinisenyo na may madilim na pag-unawa sa kung ano ang naging kilala sa kalaunan batas ni Schneier: Kahit sino ay maaaring lumikha ng isang encryption algorithm na sila mismo ay hindi maaaring masira. Ito ay hindi sapat para sa sistema ng pag-encrypt tila mahirap: upang patunayan ang halaga nito, dapat itong sumailalim sa isang walang awa na pagsusuri sa seguridad ng maraming cryptanalyst na gagawin ang kanilang makakaya upang i-crack ang cipher.

Mga paunang kalkulasyon

Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isipKunin ang hypothetical na lungsod ng Precom Heights, populasyon na 200. Ang bawat tahanan sa lungsod ay naglalaman ng average na $000 na halaga ng mga mahahalagang bagay, ngunit hindi hihigit sa $30. Ang merkado ng seguridad sa Precom ay monopolyo ng ACME Industries, na gumagawa ng maalamat na Coyoteβ„’ class door lock. Ayon sa pagsusuri ng eksperto, ang isang Coyote-class na lock ay maaari lamang masira ng isang napakakomplikadong hypothetical machine, ang paglikha nito ay nangangailangan ng humigit-kumulang limang taon at $000 sa pamumuhunan. Ligtas ba ang lungsod?

Malamang hindi. Sa kalaunan, lilitaw ang isang medyo ambisyosong kriminal. Mangangatuwiran siya ng ganito: β€œOo, magkakaroon ako ng malaking halaga sa paunang bayad. Limang taong paghihintay ng pasyente, at $50. Ngunit kapag tapos na ako, magkakaroon ako ng access sa lahat ng kayamanan ng lungsod na ito. Kung laruin ko nang tama ang aking mga card, ang pamumuhunan na ito ay magbabayad para sa sarili nito nang maraming beses."

Ang parehong ay totoo sa cryptography. Ang mga pag-atake laban sa isang partikular na cipher ay napapailalim sa isang walang awa na pagsusuri sa cost-benefit. Kung ang ratio ay pabor, ang pag-atake ay hindi magaganap. Ngunit ang mga pag-atake na gumagana laban sa maraming potensyal na biktima nang sabay-sabay ay halos palaging nagbubunga, kung saan ang pinakamahusay na kasanayan sa disenyo ay ipagpalagay na nagsimula sila sa unang araw. Mayroon kaming mahalagang cryptographic na bersyon ng Batas ni Murphy: "Anumang bagay na aktwal na makakasira sa system ay sisira sa system."

Ang pinakasimpleng halimbawa ng isang cryptosystem na vulnerable sa isang precomputation attack ay isang constant-keyless cipher. Ito ang kaso sa cipher ni Caesar, na inililipat lamang ang bawat titik ng alpabeto ng tatlong titik pasulong (ang talahanayan ay naka-loop, kaya ang huling titik sa alpabeto ay naka-encrypt na pangatlo). Dito muling pumapasok ang prinsipyo ng Kerchhoff: kapag na-hack ang isang sistema, na-hack ito nang tuluyan.

Ang konsepto ay simple. Kahit na ang isang baguhang developer ng cryptosystem ay malamang na makilala ang banta at maghanda nang naaayon. Sa pagtingin sa ebolusyon ng cryptography, ang mga naturang pag-atake ay hindi naaangkop para sa karamihan ng mga cipher, mula sa mga unang pinahusay na bersyon ng Caesar cipher hanggang sa pagbaba ng polyalphabetic ciphers. Ang ganitong mga pag-atake ay bumalik lamang sa pagdating ng modernong panahon ng cryptography.

Ang pagbabalik na ito ay dahil sa dalawang salik. Una, sa wakas ay lumitaw ang sapat na kumplikadong mga cryptosystem, kung saan ang posibilidad ng pagsasamantala pagkatapos ng pag-hack ay hindi halata. Pangalawa, naging laganap ang cryptography na ang milyun-milyong layko ay gumagawa ng mga desisyon araw-araw tungkol sa kung saan at kung anong mga bahagi ng cryptography ang muling gagamitin. Tumagal ng ilang oras bago napagtanto ng mga eksperto ang mga panganib at itinaas ang alarma.

Tandaan ang precomputation attack: sa dulo ng artikulo titingnan natin ang dalawang totoong buhay na cryptographic na mga halimbawa kung saan ito ay may mahalagang papel.

Pag-aaplay

Narito ang sikat na detective na si Sherlock Holmes, na nagsasagawa ng interpolation attack sa kaawa-awang Dr. Watson:

Nahulaan ko kaagad na nanggaling ka sa Afghanistan... Ang pinag-isipan ko ay ang mga sumusunod: β€œAng taong ito ay isang doktor ayon sa uri, ngunit siya ay may kaugnayan sa militar. Kaya, isang doktor ng militar. Kararating lang niya mula sa tropiko - ang kanyang mukha ay madilim, ngunit hindi ito ang natural na lilim ng kanyang balat, dahil ang kanyang mga pulso ay mas maputi. Haggard ang mukha - halatang marami na siyang dinanas at dinanas ng sakit. Siya ay nasugatan sa kanyang kaliwang kamay - hawak niya ito nang hindi gumagalaw at medyo hindi natural. Saan sa tropiko ang isang Ingles na doktor ng militar na magtiis ng mga paghihirap at masugatan? Siyempre, sa Afghanistan." Ang buong tren ng pag-iisip ay hindi tumagal ng kahit isang segundo. At kaya sinabi ko na nanggaling ka sa Afghanistan, at nagulat ka.

Maaaring kunin ni Holmes ang napakakaunting impormasyon mula sa bawat piraso ng ebidensya nang paisa-isa. Maaabot lamang niya ang kanyang konklusyon sa pamamagitan ng pagsasaalang-alang sa kanilang lahat. Ang isang interpolation attack ay gumagana nang katulad sa pamamagitan ng pagsusuri sa mga kilalang plaintext at ciphertext na mga pares na nagreresulta mula sa parehong key. Mula sa bawat pares, ang mga indibidwal na obserbasyon ay nakuha na nagbibigay-daan sa isang pangkalahatang konklusyon tungkol sa susi na iguguhit. Ang lahat ng mga konklusyong ito ay malabo at tila walang silbi hanggang sa bigla silang umabot sa isang kritikal na masa at humantong sa tanging posibleng konklusyon: gaano man ito kapani-paniwala, dapat itong totoo. Pagkatapos nito, ang susi ay ibinunyag, o ang proseso ng pag-decryption ay nagiging napakapino na maaari itong kopyahin.

Ilarawan natin sa isang simpleng halimbawa kung paano gumagana ang interpolation. Sabihin nating gusto nating basahin ang personal na talaarawan ng ating kaaway, si Bob. Ini-encrypt niya ang bawat numero sa kanyang diary gamit ang isang simpleng cryptosystem na natutunan niya mula sa isang advertisement sa magazine na "A Mock of Cryptography." Gumagana ang system tulad nito: Pumili si Bob ng dalawang numero na gusto niya: Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isip ΠΈ Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isip. Mula ngayon, upang i-encrypt ang anumang numero Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isip, kinakalkula nito Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isip. Halimbawa, kung pinili ni Bob Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isip ΠΈ Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isip, pagkatapos ay ang numero Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isip ay i-encrypt bilang Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isip.

Sabihin nating noong ika-28 ng Disyembre ay napansin namin na may kinakalmot si Bob sa kanyang diary. Kapag natapos na siya, tahimik nating kukunin at panoorin ang huling entry:

Petsa: 235/520

Mahal na Diary,

Ngayon ay isang magandang araw. Sa pamamagitan ng 64 Ngayon ay may date ako kay Alisa, na nakatira sa isang apartment 843. Iniisip ko talaga na baka siya na 26!

Dahil napakaseryoso naming sundan si Bob sa kanyang ka-date (pareho kaming 15 sa sitwasyong ito), mahalagang malaman ang petsa pati na rin ang address ni Alice. Sa kabutihang palad, napansin namin na ang cryptosystem ni Bob ay mahina sa isang interpolation attack. Baka hindi natin alam Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isip ΠΈ Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isip, ngunit alam namin ang petsa ngayon, kaya mayroon kaming dalawang pares ng plaintext-ciphertext. Ibig sabihin, alam namin iyon Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isip naka-encrypt sa Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isipAt Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isip - sa Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isip. Ito ang isusulat natin:

Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isip

Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isip

Dahil kami ay 15 taong gulang, alam na namin ang tungkol sa isang sistema ng dalawang equation na may dalawang hindi alam, na sa sitwasyong ito ay sapat na upang mahanap Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isip ΠΈ Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isip nang walang anumang problema. Ang bawat pares ng plaintext-ciphertext ay naglalagay ng isang hadlang sa susi ni Bob, at ang dalawang mga hadlang na magkasama ay sapat upang ganap na mabawi ang susi. Sa aming halimbawa ang sagot ay Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isip ΠΈ Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isip (sa Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isip Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isip, kaya 26 sa talaarawan ay tumutugma sa salitang 'the one', iyon ay, "the same one" - approx. lane).

Ang mga pag-atake ng interpolation, siyempre, ay hindi limitado sa mga simpleng halimbawa. Ang bawat cryptosystem na bumababa sa isang mahusay na nauunawaan na bagay sa matematika at isang listahan ng mga parameter ay nasa panganib ng isang pag-atake ng interpolation-mas naiintindihan ang bagay, mas mataas ang panganib.

Ang mga bagong dating ay madalas na nagrereklamo na ang cryptography ay "ang sining ng pagdidisenyo ng mga bagay bilang pangit hangga't maaari." Ang mga pag-atake ng interpolation ay malamang na malaking sisihin. Maaaring gumamit si Bob ng eleganteng disenyong pangmatematika o panatilihing pribado ang date nila ni Alice - ngunit sa kasamaang palad, kadalasan ay hindi mo ito maaaring gawin sa parehong paraan. Magiging malinaw na malinaw ito kapag napunta tayo sa paksa ng public key cryptography.

Cross protocol/downgrade

Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isipSa Now You See Me (2013), isang grupo ng mga ilusyonista ang nagtangkang linlangin ang tiwaling insurance magnate na si Arthur Tressler mula sa kanyang buong kayamanan. Upang makakuha ng access sa bank account ni Arthur, dapat ibigay ng mga ilusyonista ang kanyang username at password o pilitin siyang magpakita ng personal sa bangko at makibahagi sa scheme.

Ang parehong mga pagpipilian ay napakahirap; Ang mga lalaki ay sanay na mag-perform sa entablado, at hindi nakikilahok sa mga operasyon ng paniktik. Kaya pinili nila ang ikatlong posibleng opsyon: ang kanilang kasabwat ay tumawag sa bangko at nagpanggap na si Arthur. Ang bangko ay nagtatanong ng ilang katanungan upang i-verify ang pagkakakilanlan, tulad ng pangalan ng tiyuhin at ang pangalan ng unang alagang hayop; ang ating mga bayani nang maaga madali nilang kinukuha ang impormasyong ito mula kay Arthur gamit ang matalinong social engineering. Mula sa puntong ito, hindi na mahalaga ang mahusay na seguridad ng password.

(Ayon sa isang urban legend na personal naming na-verify at na-verify, minsan ay nakatagpo ng cryptographer na si Eli Beaham ang isang bank teller na nagpumilit na magtakda ng security question. Nang tanungin ng teller ang pangalan ng kanyang maternal lola, nagsimulang magdikta si Beaham: β€œCapital X, maliit y, tatlo... ").

Ito ay pareho sa cryptography, kung ang dalawang cryptographic protocol ay ginagamit nang magkatulad upang protektahan ang parehong asset, at ang isa ay mas mahina kaysa sa isa. Ang resultang system ay nagiging vulnerable sa isang cross-protocol attack, kung saan ang isang mas mahinang protocol ay inaatake upang makuha ang premyo nang hindi hinahawakan ang mas malakas.

Sa ilang kumplikadong mga kaso, hindi sapat na makipag-ugnayan lamang sa server gamit ang isang mas mahinang protocol, ngunit nangangailangan ng hindi boluntaryong paglahok ng isang lehitimong kliyente. Maaari itong ayusin gamit ang tinatawag na downgrade attack. Upang maunawaan ang pag-atakeng ito, ipagpalagay natin na ang ating mga ilusyonista ay may mas mahirap na gawain kaysa sa pelikula. Ipagpalagay natin na ang isang empleyado ng bangko (cashier) at Arthur ay nakatagpo ng ilang hindi inaasahang pangyayari, na nagresulta sa sumusunod na pag-uusap:

Magnanakaw: Kamusta? Ito si Arthur Tressler. Gusto kong i-reset ang aking password.

Cashier: Malaki. Mangyaring tingnan ang iyong personal na secret code book, pahina 28, salita 3. Lahat ng mga sumusunod na mensahe ay ie-encrypt gamit ang partikular na salitang ito bilang susi. PQJGH. LOTJNAM PGGY MXVRL ZZLQ SRIU HHNMLPPPV…

Magnanakaw: Hoy, hoy, teka, teka. Kailangan ba talaga ito? Hindi ba pwedeng mag-usap na lang tayo tulad ng mga normal na tao?

Cashier: Hindi ko inirerekomendang gawin ito.

Magnanakaw: I just... tingnan mo, I had a lousy day, okay? Isa akong VIP client at wala ako sa mood na maghukay sa mga kalokohang code book na ito.

Cashier: ayos lang. Kung pipilitin mo, Mr. Tressler. Anong gusto mo?

Magnanakaw: Mangyaring, nais kong ibigay ang lahat ng aking pera sa Arthur Tressler National Victims Fund.

(Pause).

Cashier: Malinaw na ba ngayon. Pakibigay ang iyong PIN para sa malalaking transaksyon.

Magnanakaw: Ang ano ko?

Cashier: Sa iyong personal na kahilingan, ang mga transaksyong ganito ang laki ay nangangailangan ng PIN para sa malalaking transaksyon. Ang code na ito ay ibinigay sa iyo noong binuksan mo ang iyong account.

Magnanakaw:... Nawala ko. Kailangan ba talaga ito? Hindi ba pwedeng aprubahan mo na lang ang deal?

Cashier: Hindi. Paumanhin, Mr. Tressler. Muli, ito ang panukalang panseguridad na hiniling mo. Kung gusto mo, maaari kaming magpadala ng bagong PIN code sa iyong mailbox.

Ipinagpaliban ng ating mga bayani ang operasyon. Nakikinig sila sa ilan sa malalaking transaksyon ng Tressler, umaasang marinig ang PIN; ngunit sa bawat oras na ang pag-uusap ay nagiging coded gibberish bago ang anumang bagay na interesante ay sinabi. Sa wakas, isang magandang araw, ang plano ay isasagawa. Matiyagang naghihintay sila sa sandaling kailangang gumawa ng malaking transaksyon si Tressler sa telepono, siya ay nasa linya, at pagkatapos...

Tressler: Kamusta. Gusto kong kumpletuhin ang isang malayuang transaksyon, mangyaring.

Cashier: Malaki. Pakitingnan ang iyong personal na secret code book, page...

(Pipindot ng magnanakaw ang buton; ang boses ng cashier ay naging hindi maintindihang ingay).

Cashier: - #@$#@$#*@$$@#* ay ie-encrypt gamit ang salitang ito bilang susi. AAAYRR PLRQRZ MMNJK LOJBAN…

Tressler: Sorry, hindi ko masyadong naintindihan. muli? Sa anong page? Anong salita?

Cashier: Ito ang page na @#$@#*$)#*#@()#@$(#@*$(#@*.

Tressler: Ano ba?

Cashier: Salitang numero dalawampu @$#@$#%#$.

Tressler: Seryoso! Tama na! Ikaw at ang iyong security protocol ay isang uri ng sirko. Alam kong kakausapin mo lang ako ng normal.

Cashier: Hindi ko inirerekomenda…

Tressler: At hindi ko ipinapayo sa iyo na sayangin ang aking oras. Ayoko nang makarinig pa tungkol dito hangga't hindi mo naaayos ang iyong mga problema sa linya ng telepono. Maaari ba nating tapusin ang deal na ito o hindi?

Cashier:… Oo. ayos lang. Anong gusto mo?

Tressler: Gusto kong maglipat ng $20 sa Lord Business Investments, account number...

Cashier: Isang minuto, pakiusap. Malaking bagay ito. Pakibigay ang iyong PIN para sa malalaking transaksyon.

Tressler: Ano? Oh, eksakto. 1234.

Narito ang isang pababang pag-atake. Ang mas mahinang protocol na "direktang magsalita" ay naisip bilang pagpipilian sa kaso ng emergency. At narito pa tayo.

Maaari kang magtaka kung sino ang nasa tamang pag-iisip ang magdidisenyo ng isang tunay na "safe until asked otherwise" na sistema tulad ng inilarawan sa itaas. Ngunit kung paanong ang isang kathang-isip na bangko ay nagsasagawa ng mga panganib upang mapanatili ang mga customer na hindi gusto ng cryptography, ang mga system sa pangkalahatan ay madalas na nakikitungo sa mga kinakailangan na walang malasakit o kahit na talagang masungit sa seguridad.

Ito mismo ang nangyari sa SSLv2 protocol noong 1995. Matagal nang sinimulan ng gobyerno ng US na tingnan ang cryptography bilang isang sandata na pinakamainam na inilalayo sa mga dayuhan at domestic na kaaway. Ang mga piraso ng code ay indibidwal na naaprubahan para sa pag-export mula sa Estados Unidos, kadalasang may kondisyon na ang algorithm ay sadyang pinahina. Ang Netscape, ang developer ng pinakasikat na browser, ang Netscape Navigator, ay binigyan lamang ng pahintulot para sa SSLv2 gamit ang likas na madaling masugatan na 512-bit na RSA key (at 40-bit para sa RC4).

Sa pagtatapos ng milenyo, ang mga patakaran ay maluwag at ang access sa modernong pag-encrypt ay naging malawak na magagamit. Gayunpaman, sinusuportahan ng mga kliyente at server ang mahinang "export" na cryptography sa loob ng maraming taon dahil sa parehong pagkawalang-kilos na nagpapanatili ng suporta para sa anumang legacy system. Naniniwala ang mga kliyente na maaaring makatagpo sila ng isang server na hindi sumusuporta sa anupaman. Ganun din ang ginawa ng mga server. Siyempre, ang SSL protocol ay nagdidikta na ang mga kliyente at server ay hindi dapat gumamit ng mahinang protocol kapag ang isang mas mahusay ay magagamit. Ngunit ang parehong premise ay inilapat sa Tressler at sa kanyang bangko.

Ang teoryang ito ay natagpuan ang daan sa dalawang high-profile na pag-atake na yumanig sa seguridad ng SSL protocol noong 2015, parehong natuklasan ng mga mananaliksik ng Microsoft at INRIA. Una, ang mga detalye ng FREAK attack ay inihayag noong Pebrero, na sinundan pagkalipas ng tatlong buwan ng isa pang katulad na pag-atake na tinatawag na Logjam, na tatalakayin natin nang mas detalyado kapag lumipat tayo sa mga pag-atake sa public key cryptography.

Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isipKakayahang mangyari PAMBIHIRA (kilala rin bilang "Smack TLS") ay naliwanagan nang suriin ng mga mananaliksik ang mga pagpapatupad ng TLS client/server at natuklasan ang isang kakaibang bug. Sa mga pagpapatupad na ito, kung hindi man lang hihilingin ng kliyente na gumamit ng mahinang cryptography ng pag-export, ngunit tumugon pa rin ang server gamit ang mga naturang key, sasabihin ng kliyente ang "Oh well" at lumipat sa isang mahinang cipher suite.

Noong panahong iyon, ang pag-export ng cryptography ay malawak na itinuturing na lipas na at hindi limitado, kaya ang pag-atake ay naging ganap na pagkabigla at naapektuhan ang maraming mahahalagang domain, kabilang ang mga site ng White House, IRS, at NSA. Ang mas masahol pa, lumalabas na maraming mga mahihinang server ang nag-o-optimize ng pagganap sa pamamagitan ng muling paggamit ng parehong mga key kaysa sa pagbuo ng mga bago para sa bawat session. Ginawa nitong posible, pagkatapos i-downgrade ang protocol, na magsagawa ng pre-computation attack: ang pag-crack ng isang susi ay nanatiling medyo mahal ($100 at 12 oras sa oras ng paglalathala), ngunit ang praktikal na gastos ng pag-atake sa koneksyon ay makabuluhang nabawasan. Ito ay sapat na upang piliin ang susi ng server nang isang beses at i-crack ang pag-encrypt para sa lahat ng kasunod na koneksyon mula sa sandaling iyon.

At bago tayo magpatuloy, mayroong isang advanced na pag-atake na kailangang banggitin...

Pag-atake ng Oracle

Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isipMoxie Marlinspike pinakamahusay na kilala bilang ama ng cross-platform na crypto messaging app na Signal; ngunit personal naming gusto ang isa sa kanyang hindi gaanong kilalang mga inobasyon - prinsipyo ng cryptographic na tadhana (Cryptographic Doom Principle). Upang bahagyang i-paraphrase, maaari nating sabihin ito: "Kung gumaganap ang protocol anuman nagsasagawa ng cryptographic na operasyon sa isang mensahe mula sa isang potensyal na nakakahamak na pinagmulan at kumikilos nang iba depende sa resulta, ito ay tiyak na mapapahamak." O sa isang mas matalas na anyo: "Huwag kumuha ng impormasyon mula sa kaaway para sa pagproseso, at kung kailangan mo, hindi bababa sa huwag ipakita ang resulta."

Iwanan natin ang buffer overflows, command injection, at iba pa; sila ay lampas sa saklaw ng talakayang ito. Ang paglabag sa "prinsipyo ng tadhana" ay humahantong sa mga seryosong pag-hack ng cryptography dahil sa katotohanan na ang protocol ay kumikilos nang eksakto tulad ng inaasahan.

Bilang halimbawa, kunin natin ang isang gawa-gawang disenyo na may mahinang substitution cipher, at pagkatapos ay magpakita ng posibleng pag-atake. Bagama't nakakita na kami ng pag-atake sa isang substitution cipher gamit ang frequency analysis, hindi lang ito "isa pang paraan para masira ang parehong cipher." Sa kabaligtaran, ang mga pag-atake ng orakulo ay isang mas modernong imbensyon, na naaangkop sa maraming sitwasyon kung saan nabigo ang pagsusuri sa dalas, at makikita natin ang isang pagpapakita nito sa susunod na seksyon. Dito pinipili lamang ang simpleng cipher upang gawing mas malinaw ang halimbawa.

Kaya't nakikipag-usap sina Alice at Bob gamit ang isang simpleng substitution cipher gamit ang isang key na kilala lang nila. Napakahigpit ng mga ito tungkol sa haba ng mga mensahe: eksaktong 20 character ang haba. Kaya't sumang-ayon sila na kung may gustong magpadala ng mas maikling mensahe, dapat silang magdagdag ng ilang dummy text sa dulo ng mensahe upang gawin itong eksaktong 20 character. Pagkatapos ng ilang talakayan, napagpasyahan nilang tanggapin na lamang nila ang mga sumusunod na dummy text: a, bb, ccc, dddd atbp. Kaya, ang isang dummy na teksto ng anumang kinakailangang haba ay kilala.

Kapag nakatanggap si Alice o Bob ng mensahe, tinitingnan muna nila kung tama ang haba ng mensahe (20 character) at ang suffix ay ang tamang dummy text. Kung hindi ito ang kaso, pagkatapos ay tumugon sila sa isang naaangkop na mensahe ng error. Kung ok ang haba ng text at dummy text, babasahin ng tatanggap ang mismong mensahe at magpapadala ng naka-encrypt na tugon.

Sa panahon ng pag-atake, ginagaya ng umaatake si Bob at nagpapadala ng mga pekeng mensahe kay Alice. Ang mga mensahe ay ganap na walang kapararakan - ang umaatake ay walang susi, at samakatuwid ay hindi makakagawa ng isang makabuluhang mensahe. Ngunit dahil nilalabag ng protocol ang prinsipyo ng doom, mabibitag pa rin ng isang attacker si Alice upang ibunyag ang pangunahing impormasyon, tulad ng ipinapakita sa ibaba.

Magnanakaw: PREWF ZHJKL MMMN. LA

Alice: Di-wastong dummy text.

Magnanakaw: PREWF ZHJKL MMMN. LB

Alice: Di-wastong dummy text.

Magnanakaw: PREWF ZHJKL MMMN. LC

Alice: ILCT? TLCT RUWO PUT KCAW CPS OWPOW!

Walang ideya ang magnanakaw kung ano ang sinabi ni Alice, ngunit itinala nito ang simbolo C dapat tumutugma a, simula nung tinanggap ni Alice ang dummy text.

Magnanakaw: REWF ZHJKL MMMN. LAA

Alice: Di-wastong dummy text.

Magnanakaw: REWF ZHJKL MMMN. LBB

Alice: Di-wastong dummy text.

Pagkatapos ng ilang pagsubok...

Magnanakaw: REWF ZHJKL MMMN. LGG

Alice: Di-wastong dummy text.

Magnanakaw: REWF ZHJKL MMMN. LHH

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

Muli, walang ideya ang umaatake kung ano ang sinabi ni Alice, ngunit nabanggit na dapat tumugma ang H sa b mula noong tinanggap ni Alice ang dummy text.

At iba pa hanggang sa malaman ng umaatake ang kahulugan ng bawat karakter.

Sa unang sulyap, ang pamamaraan ay kahawig ng isang piniling pag-atake ng plaintext. Sa huli, pinipili ng umaatake ang mga ciphertext, at masunurin itong pinoproseso ng server. Ang pangunahing pagkakaiba na ginagawang mabubuhay ang mga pag-atake na ito sa totoong mundo ay hindi kailangan ng umaatake ng access sa aktwal na transcriptβ€”sapat na ang tugon ng server, kahit na ang isang hindi nakapipinsala gaya ng "Invalid dummy text."

Bagama't nakapagtuturo ang partikular na pag-atake na ito, huwag masyadong mag-hang up sa mga detalye ng scheme ng "dummy text", ang partikular na cryptosystem na ginamit, o ang eksaktong pagkakasunud-sunod ng mga mensaheng ipinadala ng umaatake. Ang pangunahing ideya ay kung paano naiiba ang reaksyon ni Alice batay sa mga katangian ng plaintext, at ginagawa ito nang hindi nabe-verify na ang kaukulang ciphertext ay talagang nagmula sa isang pinagkakatiwalaang partido. Kaya, pinahihintulutan ni Alice ang umaatake na i-squeeze ang lihim na impormasyon mula sa kanyang mga sagot.

Maraming pwedeng baguhin sa scenario na ito. Ang mga simbolo na tinutugon ni Alice, o ang mismong pagkakaiba sa kanyang pag-uugali, o maging ang cryptosystem na ginamit. Ngunit ang prinsipyo ay mananatiling pareho, at ang pag-atake sa kabuuan ay mananatiling mabubuhay sa isang anyo o iba pa. Ang pangunahing pagpapatupad ng pag-atake na ito ay nakatulong sa pagtuklas ng ilang mga bug sa seguridad, na titingnan natin sa lalong madaling panahon; ngunit una ay may ilang mga teoretikal na aralin na dapat matutunan. Paano gamitin ang kathang-isip na "Alice script" sa isang pag-atake na maaaring gumana sa isang tunay na modernong cipher? Posible ba ito, kahit na sa teorya?

Noong 1998, sinagot ng Swiss cryptographer na si Daniel Bleichenbacher ang tanong na ito sa sang-ayon. Nagpakita siya ng pag-atake ng orakulo sa malawakang ginagamit na pampublikong key cryptosystem RSA, gamit ang isang partikular na scheme ng mensahe. Sa ilang mga pagpapatupad ng RSA, ang server ay tumutugon sa iba't ibang mga mensahe ng error depende sa kung ang plaintext ay tumutugma sa scheme o hindi; ito ay sapat na upang isagawa ang pag-atake.

Makalipas ang apat na taon, noong 2002, ipinakita ng French cryptographer na si Serge Vaudenay ang isang oracle attack na halos kapareho ng inilarawan sa Alice scenario sa itaas - maliban na sa halip na isang fictitious cipher, sinira niya ang isang buong kagalang-galang na klase ng mga modernong cipher na talagang ginagamit ng mga tao. Sa partikular, ang pag-atake ni Vaudenay ay nagta-target ng mga fixed input size ciphers ("block ciphers") kapag ginamit ang mga ito sa tinatawag na "CBC encryption mode" at sa isang partikular na sikat na padding scheme, karaniwang katumbas ng isa sa Alice scenario.

Gayundin noong 2002, ang American cryptographer na si John Kelsey - co-author Twofish β€” nagmungkahi ng iba't ibang pag-atake ng oracle sa mga system na nag-compress ng mga mensahe at pagkatapos ay i-encrypt ang mga ito. Ang pinaka-kapansin-pansin sa mga ito ay isang pag-atake na sinamantala ang katotohanan na kadalasan ay posibleng mahinuha ang orihinal na haba ng plaintext mula sa haba ng ciphertext. Sa teorya, nagbibigay-daan ito para sa isang pag-atake ng orakulo na bumabawi ng mga bahagi ng orihinal na plaintext.

Sa ibaba ay nagbibigay kami ng mas detalyadong paglalarawan ng mga pag-atake ng Vaudenay at Kelsey (magbibigay kami ng mas detalyadong paglalarawan ng pag-atake ng Bleichenbacher kapag lumipat kami sa mga pag-atake sa public key cryptography). Sa kabila ng aming pinakamahusay na pagsisikap, ang teksto ay nagiging medyo teknikal; kaya kung ang nasa itaas ay sapat na para sa iyo, laktawan ang susunod na dalawang seksyon.

atake ni Vodene

Upang maunawaan ang pag-atake ng Vaudenay, kailangan muna nating pag-usapan ang higit pa tungkol sa mga block cipher at mga mode ng pag-encrypt. Ang "block cipher" ay, gaya ng nabanggit, isang cipher na kumukuha ng isang susi at isang input ng isang tiyak na nakapirming haba ("haba ng bloke") at gumagawa ng isang naka-encrypt na bloke ng parehong haba. Ang mga block cipher ay malawakang ginagamit at itinuturing na medyo ligtas. Ang ngayon ay retiradong DES, na itinuturing na unang modernong cipher, ay isang block cipher. Tulad ng nabanggit sa itaas, ang parehong ay totoo para sa AES, na malawakang ginagamit ngayon.

Sa kasamaang palad, ang mga block cipher ay may isang nakasisilaw na kahinaan. Ang karaniwang laki ng block ay 128 bits, o 16 na character. Malinaw, ang modernong kriptograpiya ay nangangailangan ng pagtatrabaho sa mas malaking data ng pag-input, at dito pumapasok ang mga mode ng pag-encrypt. Ang mode ng pag-encrypt ay mahalagang isang hack: ito ay isang paraan upang kahit papaano ay maglapat ng block cipher na tumatanggap lamang ng input ng isang tiyak na laki sa input ng isang arbitrary na haba.

Ang pag-atake ni Vodene ay nakatuon sa sikat na CBC (Cipher Block Chaining) mode ng operasyon. Itinuring ng pag-atake ang pinagbabatayan na block cipher bilang isang mahiwagang, hindi magugupo na itim na kahon at ganap na nilalampasan ang seguridad nito.

Narito ang isang diagram na nagpapakita kung paano gumagana ang CBC mode:

Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isip

Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isip

Ang bilog na plus ay nagpapahiwatig ng XOR (eksklusibong OR) na operasyon. Halimbawa, ang pangalawang bloke ng ciphertext ay natanggap:

  1. Sa pamamagitan ng pagsasagawa ng XOR operation sa pangalawang plaintext block na may unang ciphertext block.
  2. Pag-encrypt ng nagresultang bloke gamit ang isang block cipher gamit ang isang key.

Dahil ang CBC ay gumagawa ng ganoong kabigat na paggamit ng binary XOR na operasyon, maglaan tayo ng ilang sandali upang alalahanin ang ilan sa mga katangian nito:

  • Idepotency: Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isip
  • Commutativity: Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isip
  • Pagkakaisa: Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isip
  • Pagbabalik sa sarili: Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isip
  • Laki ng byte: byte n ng Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isip = (byte n ng Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isip) Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isip (byte n ng Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isip)

Karaniwan, ang mga katangiang ito ay nagpapahiwatig na kung mayroon tayong equation na kinasasangkutan ng mga operasyon ng XOR at isang hindi alam, maaari itong malutas. Halimbawa, kung alam natin iyon Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isip kasama ang hindi alam Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isip at sikat Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isip ΠΈ Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isip, pagkatapos ay maaari tayong umasa sa mga nabanggit na katangian sa itaas upang malutas ang equation para sa Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isip. Sa pamamagitan ng paglalapat ng XOR sa magkabilang panig ng equation na may Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isip, nakukuha namin Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isip. Ang lahat ng ito ay magiging napaka-kaugnay sa isang sandali.

Mayroong dalawang maliit na pagkakaiba at isang malaking pagkakaiba sa pagitan ng aming senaryo ng Alice at ng pag-atake ni Vaudenay. Dalawang menor de edad:

  • Sa script, inaasahan ni Alice na magtatapos ang mga plaintext sa mga character a, bb, ccc at iba pa. Sa pag-atake sa Wodene, sa halip ay inaasahan ng biktima na ang mga plaintext ay magtatapos ng N beses na may N byte (iyon ay, hexadecimal 01 o 02 02, o 03 03 03, at iba pa). Ito ay purong cosmetic difference.
  • Sa senaryo ni Alice, madaling malaman kung tinanggap ni Alice ang mensahe sa pamamagitan ng tugon na "Maling dummy text." Sa pag-atake ni Vodene, kailangan ng karagdagang pagsusuri at ang tumpak na pagpapatupad sa panig ng biktima ay mahalaga; pero for the sake of brevity, let's take it as a given na ang analysis na ito ay pwede pa.

Pangunahing pagkakaiba:

  • Dahil hindi kami gumagamit ng parehong cryptosystem, ang ugnayan sa pagitan ng mga byte ng ciphertext na kinokontrol ng attacker at ng mga lihim (key at plaintext) ay malinaw na magkakaiba. Samakatuwid, ang umaatake ay kailangang gumamit ng ibang diskarte kapag gumagawa ng mga ciphertext at nagbibigay-kahulugan sa mga tugon ng server.

Ang malaking pagkakaiba na ito ay ang huling piraso ng puzzle upang maunawaan ang pag-atake ng Vaudenay, kaya't maglaan tayo ng ilang sandali upang pag-isipan kung bakit at paano mai-mount ang isang oracle na pag-atake sa CBC sa unang lugar.

Ipagpalagay na binigyan tayo ng CBC ciphertext ng 247 blocks, at gusto nating i-decrypt ito. Maaari kaming magpadala ng mga pekeng mensahe sa server, tulad ng dati naming pagpapadala ng mga pekeng mensahe kay Alice. Ide-decrypt ng server ang mga mensahe para sa amin, ngunit hindi ipapakita ang pag-decryption - sa halip, muli, tulad ng kay Alice, ang server ay mag-uulat lamang ng isang piraso ng impormasyon: kung ang plaintext ay may wastong padding o wala.

Isipin na sa senaryo ni Alice nagkaroon kami ng mga sumusunod na relasyon:

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

Tawagin natin itong "Alice's equation." Kinokontrol namin ang ciphertext; ang server (Alice) ay naglabas ng hindi malinaw na impormasyon tungkol sa natanggap na plaintext; at ito ay nagpahintulot sa amin na maghinuha ng impormasyon tungkol sa huling kadahilanan - ang susi. Sa pamamagitan ng pagkakatulad, kung makakahanap tayo ng ganoong koneksyon para sa script ng CBC, maaari rin tayong kumuha ng ilang lihim na impormasyon doon.

Sa kabutihang palad, mayroon talagang mga relasyon sa labas na magagamit namin. Isaalang-alang ang output ng huling tawag upang i-decrypt ang isang block cipher at tukuyin ang output na ito bilang Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isip. Tinutukoy din namin ang mga bloke ng plaintext Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isip at mga bloke ng ciphertext Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isip. Tingnan muli ang CBC diagram at pansinin kung ano ang mangyayari:

Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isip

Tawagin natin itong β€œCBC equation.”

Sa senaryo ni Alice, sa pamamagitan ng pagsubaybay sa ciphertext at pagmamasid sa katumbas na pagtagas ng plaintext, nagawa naming mag-mount ng pag-atake na nakabawi sa ikatlong termino sa equationβ€”ang susi. Sa senaryo ng CBC, sinusubaybayan din namin ang ciphertext at inoobserbahan ang mga pagtagas ng impormasyon sa kaukulang plaintext. Kung ang pagkakatulad ay hawak, makakakuha tayo ng impormasyon tungkol sa Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isip.

Ipagpalagay natin na talagang naibalik natin Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isip, ano ngayon? Kaya, pagkatapos ay maaari nating i-print ang buong huling bloke ng plaintext nang sabay-sabay (Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isip), sa pamamagitan lamang ng pagpasok Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isip (na mayroon tayo) at
natanggap Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isip sa CBC equation.

Ngayon na kami ay optimistiko tungkol sa pangkalahatang plano ng pag-atake, oras na upang ayusin ang mga detalye. Mangyaring bigyang-pansin nang eksakto kung paano na-leak ang plaintext na impormasyon sa server. Sa script ni Alice, nangyari ang pagtagas dahil sasagot lang si Alice ng tamang mensahe kung ang $inline$text{SIMPLE_SUBSTITUTION}(text{ciphertext},text{key})$inline$ ay natapos sa linya a (O bb, at iba pa, ngunit ang mga pagkakataon ng mga kundisyong ito na na-trigger ng pagkakataon ay napakaliit). Katulad ng CBC, tinatanggap ng server ang padding kung at kung lamang Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isip nagtatapos sa hexadecimal 01. Kaya't subukan natin ang parehong trick: pagpapadala ng mga pekeng ciphertext gamit ang sarili nating mga pekeng halaga Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isiphanggang sa tanggapin ng server ang pagpuno.

Kapag tumanggap ang server ng padding para sa isa sa aming mga pekeng mensahe, nangangahulugan ito na:

Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isip

Ngayon ginagamit namin ang byte-byte XOR property:

Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isip

Alam natin ang una at ikatlong termino. At nakita na namin na ito ay nagpapahintulot sa amin na mabawi ang natitirang termino - ang huling byte mula sa Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isip:

Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isip

Nagbibigay din ito sa amin ng huling byte ng panghuling plaintext block sa pamamagitan ng CBC equation at ang byte-by-byte na property.

Maaari naming iwanan ito at makuntento na nagsagawa kami ng pag-atake sa isang theoretically strong cipher. Ngunit sa katunayan marami pa tayong magagawa: maaari nating mabawi ang lahat ng teksto. Nangangailangan ito ng trick na wala sa orihinal na script ni Alice at hindi kinakailangan para sa pag-atake ng oracle, ngunit sulit pa rin itong matutunan.

Upang maunawaan ito, unang tandaan na ang resulta ng pag-output ng tamang halaga ng huling byte ay Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isip mayroon tayong bagong kakayahan. Ngayon, kapag nagpapanday ng mga ciphertext, maaari nating manipulahin ang huling byte ng kaukulang plaintext. Muli, ito ay nauugnay sa CBC equation at sa byte-by-byte na ari-arian:

Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isip

Dahil alam na natin ngayon ang pangalawang termino, magagamit natin ang ating kontrol sa una para kontrolin ang pangatlo. Kinakalkula lang namin:

Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isip

Hindi namin magawa ito noon dahil wala pa kaming huling byte Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isip.

Paano ito makakatulong sa atin? Ipagpalagay na nilikha natin ngayon ang lahat ng mga ciphertext na sa kaukulang mga plaintext ang huling byte ay katumbas ng 02. Ang server ngayon ay tumatanggap lamang ng padding kung ang plaintext ay nagtatapos sa 02 02. Dahil naitama namin ang huling byte, mangyayari lamang ito kung ang penultimate byte ng plaintext ay 02 din. Patuloy kaming nagpapadala ng mga pekeng ciphertext block, binabago ang penultimate byte, hanggang sa tanggapin ng server ang padding para sa isa sa mga ito. Sa puntong ito nakukuha natin:

Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isip

At ibinabalik namin ang penultimate byte Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isip tulad ng huli ay naibalik. Nagpapatuloy kami sa parehong diwa: itinatama namin ang huling dalawang byte ng plaintext sa 03 03, inuulit namin ang pag-atakeng ito para sa ikatlong byte mula sa dulo at iba pa, sa huli ay ganap na nagbabalik Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isip.

Paano naman ang natitirang bahagi ng teksto? Mangyaring tandaan na ang halaga Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isip ay talagang $inline$text{BLOCK_DECRYPT}(text{key},C_{247})$inline$. Maaari naming ilagay ang anumang iba pang bloke sa halip Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isip, at ang pag-atake ay magiging matagumpay pa rin. Sa katunayan, maaari naming hilingin sa server na gumawa ng $inline$text{BLOCK_DECRYPT}$inline$ para sa anumang data. Sa puntong ito, tapos na ang laro - maaari naming i-decrypt ang anumang ciphertext (tingnan muli ang CBC decryption diagram upang makita ito; at tandaan na ang IV ay pampubliko).

Ang partikular na pamamaraang ito ay gumaganap ng isang mahalagang papel sa pag-atake ng orakulo na makakaharap natin mamaya.

atake ni Kelsey

Inilatag ng aming magiliw na si John Kelsey ang mga prinsipyong pinagbabatayan ng maraming posibleng pag-atake, hindi lamang ang mga detalye ng isang partikular na pag-atake sa isang partikular na cipher. Ang kanyang 2002 artikulo ng taon ay isang pag-aaral ng mga posibleng pag-atake sa naka-encrypt na naka-compress na data. Naisip mo ba na ang impormasyon na ang data ay na-compress bago ang pag-encrypt ay hindi sapat upang magsagawa ng isang pag-atake? Tama na pala.

Ang nakakagulat na resulta ay dahil sa dalawang prinsipyo. Una, mayroong isang malakas na ugnayan sa pagitan ng haba ng plaintext at haba ng ciphertext; para sa maraming mga cipher eksaktong pagkakapantay-pantay. Pangalawa, kapag isinagawa ang compression, mayroon ding malakas na ugnayan sa pagitan ng haba ng naka-compress na mensahe at ang antas ng "ingay" ng plaintext, iyon ay, ang proporsyon ng mga hindi umuulit na character (ang teknikal na termino ay "high entropy" ).

Upang makita ang prinsipyo sa pagkilos, isaalang-alang ang dalawang plaintext:

Plaintext 1: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

Plaintext 2: ATVXCAGTRSVPTVVULSJQHGEYCMQPCRQBGCYIXCFJGJ

Ipagpalagay natin na ang parehong plaintext ay naka-compress at pagkatapos ay naka-encrypt. Makakakuha ka ng dalawang resultang ciphertext at kailangan mong hulaan kung aling ciphertext ang tumutugma sa kung aling plaintext:

Ciphertext 1: PVOVEYBPJDPVANEAWVGCIUWAABCIYIKOOURMYDTA

Ciphertext 2: DWKJZXYU

Malinaw ang sagot. Sa mga plaintext, tanging plaintext 1 lang ang maaaring i-compress sa maliit na haba ng pangalawang ciphertext. Naisip namin ito nang hindi alam ang anumang bagay tungkol sa compression algorithm, ang encryption key, o kahit ang cipher mismo. Kung ikukumpara sa hierarchy ng mga posibleng cryptographic na pag-atake, ito ay uri ng kabaliwan.

Itinuro pa ni Kelsey na sa ilalim ng ilang hindi pangkaraniwang mga pangyayari ang prinsipyong ito ay maaari ding gamitin upang magsagawa ng pag-atake ng orakulo. Sa partikular, inilalarawan nito kung paano mababawi ng isang attacker ang lihim na plaintext kung maaari niyang pilitin ang server na i-encrypt ang data ng form (ang plaintext na sinusundan ng Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isiphabang siya ay may kontrol Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isip at kahit papaano ay maaaring suriin ang haba ng naka-encrypt na resulta.

Muli, tulad ng iba pang pag-atake ng orakulo, mayroon kaming relasyon:

Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isip

Muli, kinokontrol namin ang isang termino (Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isip), nakakakita kami ng maliit na pagtagas ng impormasyon tungkol sa isa pang miyembro (ciphertext) at sinusubukang bawiin ang huli (plaintext). Sa kabila ng pagkakatulad, ito ay isang medyo hindi pangkaraniwang sitwasyon kumpara sa iba pang mga pag-atake ng orakulo na nakita natin.

Upang ilarawan kung paano maaaring gumana ang gayong pag-atake, gumamit tayo ng isang kathang-isip na compression scheme na kakaisip lang natin: TOYZIP. Hinahanap nito ang mga linya ng text na lumitaw dati sa text at pinapalitan ang mga ito ng tatlong placeholder byte na nagpapahiwatig kung saan mahahanap ang isang naunang instance ng linya at kung gaano karaming beses ito lumilitaw doon. Halimbawa, ang linya helloworldhello maaaring i-compress sa helloworld[00][00][05] 13 bytes ang haba kumpara sa orihinal na 15 bytes.

Ipagpalagay na sinubukan ng isang umaatake na bawiin ang plaintext ng isang form password=..., kung saan ang password mismo ay hindi alam. Ayon sa modelo ng pag-atake ni Kelsey, maaaring hilingin ng isang umaatake sa server na i-compress at pagkatapos ay i-encrypt ang mga mensahe ng form (plaintext na sinusundan ng Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isip), Saan Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isip - libreng text. Kapag natapos nang gumana ang server, iniuulat nito ang haba ng resulta. Ang pag-atake ay ganito:

Magnanakaw: Mangyaring i-compress at i-encrypt ang plaintext nang walang anumang padding.

Server: Haba ng resulta 14.

Magnanakaw: Mangyaring i-compress at i-encrypt ang plaintext kung saan nakadugtong password=a.

Server: Haba ng resulta 18.

Ang mga tala ng cracker: [orihinal 14] + [tatlong byte na pinalitan password=] + a

Magnanakaw: Mangyaring i-compress at i-encrypt ang plaintext kung saan idinagdag password=b.

Server: Haba ng resulta 18.

Magnanakaw: Mangyaring i-compress at i-encrypt ang plaintext kung saan idinagdag password=с.

Server: Haba ng resulta 17.

Ang mga tala ng cracker: [orihinal 14] + [tatlong byte na pinalitan password=c]. Ipinapalagay nito na ang orihinal na plaintext ay naglalaman ng string password=c. Iyon ay, ang password ay nagsisimula sa isang titik c

Magnanakaw: Mangyaring i-compress at i-encrypt ang plaintext kung saan idinagdag password=сa.

Server: Haba ng resulta 18.

Ang mga tala ng cracker: [orihinal 14] + [tatlong byte na pinalitan password=с] + a

Magnanakaw: Mangyaring i-compress at i-encrypt ang plaintext kung saan idinagdag password=сb.

Server: Haba ng resulta 18.

(… Makalipas ang ilang oras...)

Magnanakaw: Mangyaring i-compress at i-encrypt ang plaintext kung saan idinagdag password=со.

Server: Haba ng resulta 17.

Ang mga tala ng cracker: [orihinal 14] + [tatlong byte na pinalitan password=co]. Gamit ang parehong lohika, napagpasyahan ng umaatake na ang password ay nagsisimula sa mga titik co

At iba pa hanggang sa maibalik ang buong password.

Ang mambabasa ay mapapatawad sa pag-aakalang ito ay isang purong akademikong ehersisyo at ang gayong senaryo ng pag-atake ay hindi kailanman lalabas sa totoong mundo. Sa kasamaang palad, tulad ng makikita natin sa lalong madaling panahon, mas mahusay na huwag sumuko sa cryptography.

Mga kahinaan sa brand: CRIME, PODLE, DROWN

Sa wakas, pagkatapos pag-aralan ang teorya nang detalyado, makikita natin kung paano inilalapat ang mga diskarteng ito sa totoong buhay na pag-atake ng cryptographic.

KRIMEN

Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isipKung ang pag-atake ay nakatuon sa browser at network ng biktima, ang ilan ay magiging mas madali at ang ilan ay magiging mas mahirap. Halimbawa, madaling makita ang trapiko ng biktima: umupo lang kasama niya sa parehong cafe na may WiFi. Para sa kadahilanang ito, ang mga potensyal na biktima (i.e. lahat) ay karaniwang pinapayuhan na gumamit ng naka-encrypt na koneksyon. Magiging mas mahirap, ngunit posible pa rin, na gumawa ng mga kahilingan sa HTTP sa ngalan ng biktima sa ilang third-party na site (halimbawa, Google). Dapat akitin ng umaatake ang biktima sa isang malisyosong web page na may script na gumagawa ng kahilingan. Awtomatikong ibibigay ng web browser ang naaangkop na cookie ng session.

Mukhang kamangha-mangha ito. Kung pumunta si Bob sa evil.com, maaari bang hilingin lamang ng script sa site na ito sa Google na i-email ang password ni Bob [email protected]? Well, sa teorya oo, ngunit sa katotohanan ay hindi. Ang sitwasyong ito ay tinatawag na cross-site request forgery attack (Cross-Site Request Forgery, CSRF), at sikat ito noong kalagitnaan ng 90s. Ngayong araw kung evil.com Sinusubukan ang trick na ito, ang Google (o anumang website na may paggalang sa sarili) ay karaniwang tutugon ng, "Mahusay, ngunit ang iyong CSRF token para sa transaksyong ito ay magiging... um... Ρ‚Ρ€ΠΈ Ρ‚Ρ€ΠΈΠ»Π»ΠΈΠΎΠ½Π° ΠΈ сСмь. Pakiulit ang numerong ito." Ang mga modernong browser ay may tinatawag na "same-origin policy" kung saan ang mga script sa site A ay walang access sa impormasyong ipinadala ng website B. Kaya ang script sa evil.com maaaring magpadala ng mga kahilingan sa google.com, ngunit hindi mabasa ang mga tugon o aktwal na kumpletuhin ang transaksyon.

Dapat nating bigyang-diin na maliban kung si Bob ay gumagamit ng isang naka-encrypt na koneksyon, lahat ng mga proteksyong ito ay walang kabuluhan. Mababasa lang ng isang attacker ang trapiko ni Bob at mabawi ang session cookie ng Google. Gamit ang cookie na ito, magbubukas lang siya ng bagong tab ng Google nang hindi umaalis sa sarili niyang browser at gagayahin si Bob nang hindi nakakaranas ng mga masasamang patakaran sa parehong pinagmulan. Ngunit, sa kasamaang-palad para sa isang magnanakaw, ito ay nagiging mas karaniwan. Ang Internet sa kabuuan ay matagal nang nagdeklara ng digmaan sa mga hindi naka-encrypt na koneksyon, at malamang na naka-encrypt ang papalabas na trapiko ni Bob, gusto man niya ito o hindi. Sa karagdagan, mula sa pinakadulo simula ng pagpapatupad ng protocol, trapiko ay din lumiit bago ang pag-encrypt; ito ay karaniwang kasanayan upang mabawasan ang latency.

Dito pumapasok ito KRIMEN (Compression Ratio Infoleak Made Easy, simpleng pagtagas sa pamamagitan ng compression ratio). Ang kahinaan ay inihayag noong Setyembre 2012 ng mga mananaliksik ng seguridad na sina Juliano Rizzo at Thai Duong. Nasuri na namin ang buong teoretikal na batayan, na nagpapahintulot sa amin na maunawaan kung ano ang kanilang ginawa at kung paano. Maaaring pilitin ng isang attacker ang browser ni Bob na magpadala ng mga kahilingan sa Google at pagkatapos ay makinig sa mga tugon sa lokal na network sa isang naka-compress at naka-encrypt na form. Samakatuwid mayroon kaming:

Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isip

Dito kinokontrol ng attacker ang kahilingan at may access sa traffic sniffer, kasama ang laki ng packet. Nabuhay ang kathang-isip na senaryo ni Kelsey.

Sa pag-unawa sa teorya, ang mga may-akda ng CRIME ay lumikha ng pagsasamantala na maaaring magnakaw ng cookies ng session para sa isang malawak na hanay ng mga site, kabilang ang Gmail, Twitter, Dropbox at Github. Ang kahinaan ay nakaapekto sa karamihan sa mga modernong web browser, na nagreresulta sa mga patch na inilabas na tahimik na nakabaon sa compression feature sa SSL upang hindi na ito magamit. Ang tanging protektado mula sa kahinaan ay ang kagalang-galang na Internet Explorer, na hindi kailanman gumamit ng SSL compression sa lahat.

PODLE

Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isipNoong Oktubre 2014, gumawa ng mga wave ang Google security team sa komunidad ng seguridad. Nagawa nilang pagsamantalahan ang isang kahinaan sa SSL protocol na na-patch higit sa sampung taon na ang nakakaraan.

Lumalabas na habang pinapatakbo ng mga server ang makintab na bagong TLSv1.2, marami ang nag-iwan ng suporta para sa legacy na SSLv3 para sa backward compatibility sa Internet Explorer 6. Napag-usapan na namin ang tungkol sa mga pag-atake sa pag-downgrade, para maisip mo kung ano ang nangyayari. Isang maayos na pagsasabotahe ng handshake protocol at ang mga server ay handang bumalik sa magandang lumang SSLv3, na mahalagang i-undo ang huling 15 taon ng pananaliksik sa seguridad.

Para sa kontekstong pangkasaysayan, narito ang isang maikling buod ng kasaysayan ng SSL hanggang sa bersyon 2 mula sa Matthew Green:

Ang Transport Layer Security (TLS) ay ang pinakamahalagang protocol ng seguridad sa Internet. [..] halos lahat ng transaksyon na gagawin mo sa Internet ay nakasalalay sa TLS. [..] Ngunit ang TLS ay hindi palaging TLS. Ang protocol ay nagsimula sa buhay nito Mga Komunikasyon sa Netscape tinatawag na "Secure Sockets Layer" o SSL. Sinasabi ng bulung-bulungan na ang unang bersyon ng SSL ay napakasama kaya nakolekta ng mga developer ang lahat ng mga printout ng code at inilibing ang mga ito sa isang lihim na landfill sa New Mexico. Bilang kinahinatnan, ang unang bersyon ng SSL na magagamit sa publiko ay talagang bersyon SSL 2. Ito ay medyo nakakatakot, at [..] ito ay isang produkto ng kalagitnaan ng dekada 90, na itinuturing ng mga modernong cryptographer bilang "madilim na edad ng cryptography" Marami sa mga pinakakasuklam-suklam na pag-atake ng cryptographic na alam natin ngayon ay hindi pa natutuklasan. Bilang resulta, ang mga nag-develop ng SSLv2 protocol ay naiwan sa kadiliman, at hinarap nila maraming kakila-kilabot na halimaw - sa kanilang kalungkutan at sa aming kapakinabangan, dahil ang mga pag-atake sa SSLv2 ay nag-iwan ng napakahalagang mga aral para sa susunod na henerasyon ng mga protocol.

Kasunod ng mga kaganapang ito, noong 1996, muling idinisenyo ng isang bigong Netscape ang SSL protocol mula sa simula. Ang resulta ay SSL bersyon 3, na inayos ang ilang kilalang isyu sa seguridad ng hinalinhan nito.

Sa kabutihang palad para sa mga magnanakaw, ang "kakaunti" ay hindi nangangahulugang "lahat." Sa pangkalahatan, ibinigay ng SSLv3 ang lahat ng kinakailangang mga bloke ng gusali upang maglunsad ng pag-atake ng Vodene. Gumamit ang protocol ng CBC mode block cipher at isang hindi secure na padding scheme (ito ay naitama sa TLS; kaya kailangan ng downgrade attack). Kung naaalala mo ang padding scheme sa aming orihinal na paglalarawan ng pag-atake ng Vaudenay, ang SSLv3 scheme ay halos magkapareho.

Ngunit, sa kasamaang-palad para sa mga magnanakaw, ang "katulad" ay hindi nangangahulugang "magkapareho." Ang SSLv3 padding scheme ay "N random bytes na sinusundan ng numero N". Subukan, sa ilalim ng mga kundisyong ito, na pumili ng isang haka-haka na bloke ng ciphertext at dumaan sa lahat ng mga hakbang ng orihinal na pamamaraan ni Vaudene: makikita mo na matagumpay na na-extract ng pag-atake ang huling byte mula sa kaukulang bloke ng plaintext, ngunit hindi na lalayo pa. Ang pag-decryption sa bawat ika-16 na byte ng ciphertext ay isang mahusay na trick, ngunit hindi ito isang tagumpay.

Nahaharap sa kabiguan, ang Google team ay gumawa ng huling paraan: lumipat sila sa isang mas malakas na modelo ng pagbabanta - ang ginamit sa KRIMEN. Ipagpalagay na ang umaatake ay isang script na tumatakbo sa tab ng browser ng biktima at maaaring kumuha ng cookies ng session, ang pag-atake ay kahanga-hanga pa rin. Habang ang mas malawak na modelo ng pagbabanta ay hindi gaanong makatotohanan, nakita namin sa nakaraang seksyon na ang partikular na modelong ito ay magagawa.

Dahil sa mga mas malakas na kakayahan ng attacker na ito, maaari na ngayong magpatuloy ang pag-atake. Tandaan na alam ng umaatake kung saan lumalabas ang naka-encrypt na cookie ng session sa header at kinokontrol ang haba ng kahilingan sa HTTP bago ito. Samakatuwid, nagagawa nitong manipulahin ang kahilingan ng HTTP upang ang huling byte ng cookie ay nakahanay sa dulo ng block. Ngayon ang byte na ito ay angkop para sa decryption. Maaari ka lamang magdagdag ng isang character sa kahilingan, at ang penultimate byte ng cookie ay mananatili sa parehong lugar at angkop para sa pagpili gamit ang parehong paraan. Nagpapatuloy ang pag-atake sa ganitong paraan hanggang sa ganap na maibalik ang cookie file. Ito ay tinatawag na POODLE: Padding Oracle sa Downgraded Legacy Encryption.

LUMUNOD

Mga pag-atake sa cryptographic: isang paliwanag para sa mga nalilitong isipGaya ng nabanggit namin, may mga kapintasan ang SSLv3, ngunit sa panimula ay naiiba ito sa hinalinhan nito, dahil ang tumutulo na SSLv2 ay produkto ng ibang panahon. Doon maaari mong matakpan ang mensahe sa gitna: ΡΠΎΠ³Π»Π°ΡˆΡƒΡΡŒ Π½Π° это Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Π΅Ρ€Π΅Π· ΠΌΠΎΠΉ Ρ‚Ρ€ΡƒΠΏ naging ΡΠΎΠ³Π»Π°ΡˆΡƒΡΡŒ Π½Π° это; ang kliyente at server ay maaaring magkita online, magtatag ng tiwala at makipagpalitan ng mga sikreto sa harap ng umaatake, na maaaring madaling magpanggap na pareho. Mayroon ding problema sa export cryptography, na binanggit namin kapag isinasaalang-alang ang FREAK. Ang mga ito ay cryptographic Sodom at Gomorrah.

Noong Marso 2016, nagsama-sama ang isang pangkat ng mga mananaliksik mula sa iba't ibang teknikal na larangan at nakagawa ng nakakagulat na pagtuklas: Ginagamit pa rin ang SSLv2 sa mga sistema ng seguridad. Oo, hindi na ma-downgrade ng mga attacker ang mga modernong TLS session sa SSLv2 dahil sarado ang butas na iyon pagkatapos ng FREAK at POODLE, ngunit maaari pa rin silang kumonekta sa mga server at simulan ang mga SSLv2 session sa kanilang sarili.

Maaari mong itanong, bakit namin pakialam kung ano ang ginagawa nila doon? Mayroon silang mahinang session, ngunit hindi ito dapat makaapekto sa iba pang mga session o sa seguridad ng server - tama ba? Well, hindi naman. Oo, ganyan dapat sa teorya. Ngunit hindi - dahil ang pagbuo ng mga SSL certificate ay nagpapataw ng isang tiyak na pasanin, na nagreresulta sa maraming mga server na gumagamit ng parehong mga sertipiko at, bilang isang resulta, ang parehong mga RSA key para sa TLS at SSLv2 na mga koneksyon. Ang masama pa nito, dahil sa isang OpenSSL bug, ang opsyong "Huwag paganahin ang SSLv2" sa sikat na pagpapatupad ng SSL na ito ay hindi talaga gumana.

Naging posible ito ng cross-protocol attack sa TLS, na tinatawag LUMUNOD (Pagde-decrypt sa RSA gamit ang Obsolete at Weakened eNcryption, pagde-decrypting ng RSA gamit ang obsolete at weakened encryption). Alalahanin na ito ay hindi katulad ng isang maikling pag-atake; ang umaatake ay hindi kailangang kumilos bilang isang "lalaki sa gitna" at hindi kailangang isali ang kliyente upang lumahok sa isang hindi secure na sesyon. Nagsisimula lang ang mga attacker ng isang hindi secure na SSLv2 session sa server mismo, inaatake ang mahinang protocol, at bawiin ang RSA private key ng server. Valid din ang key na ito para sa mga koneksyon sa TLS, at mula sa puntong ito, walang halaga ng seguridad ng TLS ang makakapigil dito na makompromiso.

Ngunit upang i-crack ito, kailangan mo ng gumaganang pag-atake laban sa SSLv2, na nagpapahintulot sa iyo na mabawi hindi lamang ang partikular na trapiko, kundi pati na rin ang lihim na RSA server key. Bagama't isa itong kumplikadong setup, maaaring pumili ang mga mananaliksik ng anumang kahinaan na ganap na isinara pagkatapos ng SSLv2. Sa kalaunan ay nakahanap sila ng angkop na opsyon: ang pag-atake ng Bleichenbacher, na binanggit namin kanina at ipaliwanag namin nang detalyado sa susunod na artikulo. Ang SSL at TLS ay protektado mula sa pag-atakeng ito, ngunit ginawang posible ng ilang random na feature ng SSL, na sinamahan ng mga maiikling key sa export-grade cryptography. isang tiyak na pagpapatupad ng DROWN.

Sa oras ng paglalathala, 25% ng mga nangungunang site ng Internet ang naapektuhan ng kahinaan ng DROWN, at ang pag-atake ay maaaring isagawa gamit ang mga katamtamang mapagkukunang magagamit sa kahit na malikot na mga hacker. Ang pagkuha ng RSA key ng server ay nangangailangan ng walong oras ng pag-compute at $440, at ang SSLv2 ay naging radioactive mula sa laos.

Teka, paano naman ang Heartbleed?

Ito ay hindi isang cryptographic na pag-atake sa kahulugang inilarawan sa itaas; Ito ay isang buffer overflow.

Magpahinga na tayo

Nagsimula kami sa ilang pangunahing diskarte: brute force, interpolation, downgrading, cross-protocol, at precomputation. Pagkatapos ay tumingin kami sa isang advanced na diskarte, marahil ang pangunahing bahagi ng modernong cryptographic na pag-atake: ang oracle attack. Medyo matagal kaming nag-uunawa nito - at naunawaan hindi lamang ang pinagbabatayan na prinsipyo, kundi pati na rin ang mga teknikal na detalye ng dalawang partikular na pagpapatupad: ang pag-atake ng Vaudenay sa CBC encryption mode at ang pag-atake ng Kelsey sa mga protocol ng pre-compression encryption.

Sa pagsusuri ng mga pag-atake ng downgrade at precomputation, maikli naming binalangkas ang FREAK attack, na gumagamit ng parehong paraan sa pamamagitan ng pag-downgrade ng mga target na site sa mahihinang key at pagkatapos ay muling gamitin ang parehong mga key. Para sa susunod na artikulo, ise-save namin ang (napakatulad) na pag-atake ng Logjam, na nagta-target ng mga pampublikong key algorithm.

Pagkatapos ay tumingin kami sa tatlo pang halimbawa ng aplikasyon ng mga prinsipyong ito. Una, CRIME at POODLE: dalawang pag-atake na umaasa sa kakayahan ng umaatake na mag-inject ng arbitrary na plaintext sa tabi ng target na plaintext, pagkatapos ay suriin ang mga tugon ng server at pagkatapos, gamit ang pamamaraan ng pag-atake ng oracle, gamitin ang kalat-kalat na impormasyong ito upang, bahagyang mabawi ang plaintext. Napunta ang CRIME sa ruta ng pag-atake ni Kelsey sa SSL compression, habang ang POODLE sa halip ay gumamit ng variant ng pag-atake ni Vaudenay sa CBC na may parehong epekto.

Pagkatapos ay ibinaling namin ang aming pansin sa cross-protocol DROWN attack, na nagtatatag ng koneksyon sa server gamit ang legacy SSLv2 protocol at pagkatapos ay binabawi ang mga lihim na key ng server gamit ang Bleichenbacher attack. Nilaktawan namin ang mga teknikal na detalye ng pag-atakeng ito sa ngayon; tulad ng Logjam, kakailanganin itong maghintay hanggang sa magkaroon tayo ng mahusay na pag-unawa sa mga pampublikong key cryptosystem at ang kanilang mga kahinaan.

Sa susunod na artikulo ay pag-uusapan natin ang tungkol sa mga advanced na pag-atake tulad ng meet-in-the-middle, differential cryptanalysis at birthday attacks. Mabilis tayong sumubok sa mga pag-atake sa side-channel, at pagkatapos ay magpatuloy sa nakakatuwang bahagi: mga pampublikong key cryptosystem.

Pinagmulan: www.habr.com

Magdagdag ng komento