Serangan kriptografi: panjelasan pikeun pikiran bingung

Sawaktos Anjeun ngadenge kecap "kriptografi," sababaraha urang apal sandi WiFi maranéhanana, padlock héjo gigireun alamat ramatloka favorit maranéhanana, sarta kumaha hésé éta pikeun meunangkeun kana email batur. Batur ngelingan runtuyan kerentanan dina taun panganyarna kalayan ngabejaan singketan (DROWN, FREAK, PODLE ...), logos stylish sarta peringatan pikeun urgently ngamutahirkeun browser anjeun.

Kriptografi nyertakeun sadayana, tapi jajantung di sejen. Intina nyaéta aya garis anu saé antara sederhana sareng kompleks. Sababaraha hal anu gampang pikeun ngalakukeun, tapi hésé nempatkeun deui babarengan, kawas megatkeun endog. Hal-hal sanés gampang dilakukeun tapi sesah dibalikan nalika bagian anu alit, penting, penting leungit: contona, muka panto anu dikonci nalika "bagian anu penting" mangrupikeun konci. Kriptografi ngulik kaayaan ieu sareng kumaha aranjeunna tiasa dianggo dina prakna.

Dina taun-taun ayeuna, kumpulan serangan kriptografi parantos janten kebon binatang tina logos flashy, ngeusi rumus tina makalah ilmiah, sareng nyababkeun perasaan suram umum yén sadayana rusak. Tapi dina kanyataanana, seueur serangan dumasar kana sababaraha prinsip umum, sareng halaman rumus anu henteu terbatas sering digolongkeun kana ide anu gampang kahartos.

Dina runtuyan artikel ieu, urang bakal kasampak di tipena béda serangan cryptographic, kalawan tekenan kana prinsip dasar. Dina istilah umum teu persis dina urutan ieu, tapi urang bakal nutupan handap:

  • strategi dasar: gaya kasar, analisis frékuénsi, interpolasi, downgrading sarta cross-protokol.
  • Kerentanan branded: FREAK, kajahatan, PODLE, Drown, Logjam.
  • Strategi canggih: serangan oracle (serangan Vodenet, serangan Kelsey); Metoda papanggih-di-tengah, serangan ulang, bias statistik (kriptanalisis diferensial, kriptanalisis integral, jsb).
  • Serangan saluran samping jeung baraya deukeut maranéhanana, téhnik analisis gagal.
  • Serangan kana kriptografi konci umum: akar kubus, siaran, pesen patali, serangan Coppersmith, algoritma Pohlig-Hellman, jumlah tabung, serangan Wiener, serangan Bleichenbacher.

Tulisan khusus ieu nyertakeun bahan di luhur dugi ka serangan Kelsey.

Stratégi Dasar

Serangan di handap ieu saderhana dina harti yén éta tiasa dijelaskeun sacara lengkep tanpa seueur rinci téknis. Hayu urang ngajelaskeun unggal jenis serangan dina istilah pangbasajanna, tanpa bade kana conto kompléks atawa kasus pamakéan canggih.

Sababaraha serangan ieu sakitu legana janten leungit sareng teu acan dianggo mangtaun-taun. Batur anu lami-lami anu masih rutin sneak up on pamekar cryptosystem unsuspecting dina abad ka-21. Jaman kriptografi modéren bisa dianggap geus dimimitian ku mecenghulna IBM DES, cipher munggaran nu tahan sagala serangan dina daptar ieu.

Gaya kasar basajan

Serangan kriptografi: panjelasan pikeun pikiran bingungSkéma énkripsi diwangun ku dua bagian: 1) fungsi énkripsi, nu nyokot pesen (plaintext) digabungkeun jeung konci, lajeng nyieun pesen énkripsi - ciphertext; 2) fungsi dekripsi anu nyandak ciphertext sareng konci sareng ngahasilkeun plaintext. Enkripsi sareng dekripsi kedah gampang diitung nganggo konci-sareng sesah ngitung tanpa éta.

Anggap urang ningali ciphertext sareng nyobian ngadekrip éta tanpa émbaran tambahan (ieu disebut serangan ngan ukur ciphertext). Upami urang kumaha waé sacara ajaib mendakan konci anu leres, urang tiasa kalayan gampang pariksa yén éta leres leres upami hasilna mangrupikeun pesen anu wajar.

Catet yén aya dua asumsi implisit di dieu. Kahiji, urang terang kumaha ngalakukeun dekripsi, nyaeta, kumaha cryptosystem jalan. Ieu mangrupikeun asumsi standar nalika ngabahas kriptografi. Nyumputkeun detil palaksanaan cipher ti panyerang sigana sapertos ukuran kaamanan tambahan, tapi saatos panyerang terangkeun detil ieu, kaamanan tambahan ieu leungit sareng teu tiasa dibalikeun deui. Éta kumaha Prinsip Kerchoffs: Sistem ragrag kana leungeun musuh teu kudu ngabalukarkeun kasulitan.

Kadua, urang nganggap yén konci anu leres mangrupikeun hiji-hijina konci anu bakal ngakibatkeun dekripsi anu lumayan. Ieu oge asumsi lumrah; éta wareg lamun ciphertext leuwih panjang batan konci na bisa dibaca. Ieu biasana naon kajadian di dunya nyata, iwal konci praktis badag atawa shenanigans séjén anu pangalusna ditinggalkeun kumisan (upami anjeun henteu resep yén kami parantos ngalangkungan panjelasan, mangga tingali Teorema 3.8 di dieu).

Dibikeun di luhur, strategi timbul: pariksa unggal konci mungkin. Ieu disebut gaya brute, sarta serangan misalna hiji dijamin dianggo ngalawan sagala ciphers praktis - pamustunganana. Contona, brute force cukup pikeun hack Caesar cipher, hiji cipher kuna mana konci hiji hurup tina alfabét, implying ngan leuwih 20 konci mungkin.

Hanjakal keur cryptanalysts, ngaronjatna ukuran konci mangrupakeun pertahanan alus ngalawan gaya BRUTE. Nalika ukuran konci naék, jumlah konci anu mungkin ningkat sacara éksponénsial. Kalayan ukuran konci modéren, gaya kasar anu sederhana henteu praktis. Pikeun ngartos naon anu kami maksud, hayu urang nyandak superkomputer anu paling gancang dikenal dina pertengahan 2019: puncak ti IBM, kalawan kinerja puncak ngeunaan 1017 operasi per detik. Kiwari, panjang konci has nyaéta 128 bit, anu hartosna 2128 kombinasi anu mungkin. Pikeun milarian sadaya konci, superkomputer Summit peryogi waktos anu kirang langkung 7800 kali umur Alam Semesta.

Kedah brute force dianggap panasaran sajarah? Henteu pisan: éta mangrupikeun bahan anu diperyogikeun dina buku masak cryptanalysis. Jarang anu ciphers jadi lemah nu ngan bisa pegat ku serangan palinter, tanpa pamakéan gaya ka hiji gelar atawa lianna. Seueur hacks anu suksés ngagunakeun metode algoritmik pikeun ngaleuleuskeun cipher target heula, teras ngalakukeun serangan brute force.

Analisis frékuénsi

Serangan kriptografi: panjelasan pikeun pikiran bingungKalolobaan téks teu gibberish. Contona, dina téks basa Inggris aya loba hurup 'e' jeung artikel 'the'; dina file binér, aya loba nol bait salaku padding antara potongan informasi. Analisis frékuénsi nyaéta serangan naon waé anu ngamangpaatkeun kanyataan ieu.

Conto kanonik tina cipher anu rentan ka serangan ieu nyaéta cipher substitusi saderhana. Dina cipher ieu, konci téh méja kalayan sagala hurup diganti. Contona, 'g' diganti ku 'h', 'o' ku j, jadi kecap 'go' jadi 'hj'. Cipher ieu hese pikeun brute force sabab aya seueur tabel panéangan anu mungkin. Upami anjeun resep kana matematika, panjang konci anu efektif sakitar 88 bit: éta
Serangan kriptografi: panjelasan pikeun pikiran bingung. Tapi analisis frékuénsi biasana meunang pakasaban rengse gancang.

Pertimbangkeun ciphertext di handap ieu diolah ku cipher substitusi basajan:

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

siga Y sering lumangsung, kaasup dina tungtung loba kecap, urang samentara bisa nganggap yén ieu téh hurup. e:

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

pasangan XD diulang di awal sababaraha kecap. Khususna, kombinasi XDeLe jelas nunjukkeun kecap these atawa there, ku kituna hayu urang neruskeun:

Nu ALE UGLE NGAREGEPKEUN NU NGAREGEPKEUN ANU ANU ANU SARUNGEUN TANPA ALE FLEAUT GR WN OGQL ZDWBGEGZDO

Hayu urang salajengna nganggap éta L соответствует r, A - a teras salajengna. Panginten peryogi sababaraha usaha, tapi dibandingkeun sareng serangan gaya brute pinuh, serangan ieu ngabalikeun téks asli dina waktos anu lami:

aya deui hal di langit jeung bumi horatio ti nu ngimpi dina filsafat Anjeun

Kanggo sababaraha, ngarengsekeun "cryptograms" sapertos mangrupikeun hobi anu pikaresepeun.

Gagasan analisa frekuensi langkung dasar tibatan anu sigana di glance kahiji. Sarta eta manglaku ka ciphers leuwih kompleks. Sapanjang sajarah, rupa-rupa desain cipher geus nyoba ngalawan serangan saperti ngagunakeun "substitusi polyalphabetic". Di dieu, salila prosés enkripsi, tabel substitusi hurup dirobah ku cara kompléks tapi bisa diprediksi nu gumantung kana konci. Sakabéh cipher ieu dianggap hésé megatkeun dina hiji waktu; sarta acan analisis frékuénsi modest pamustunganana ngéléhkeun kabeh.

Cipher polyalphabetic anu paling ambisius dina sajarah, sareng sigana anu paling kasohor, nyaéta cipher Enigma Perang Dunya II. Ieu kawilang kompléks dibandingkeun miheulaan na, tapi sanggeus loba gawé teuas, cryptanalysts Britania retak eta ngagunakeun analisis frékuénsi. Tangtosna, aranjeunna henteu tiasa ngembangkeun serangan anu elegan sapertos anu dipidangkeun di luhur; aranjeunna kapaksa ngabandingkeun pasangan dipikawanoh tina plaintext na ciphertext (nu disebut "serangan plaintext"), malah provoking pamaké Enigma mun encrypt pesen tangtu jeung nganalisis hasilna (nu "serangan plaintext dipilih"). Tapi ieu henteu ngajantenkeun nasib tentara musuh anu eleh sareng kapal selam tenggelam langkung gampang.

Saatos triumph ieu, analisis frékuénsi ngiles tina sajarah cryptanalysis. Ciphers dina jaman digital modern dirancang pikeun digawekeun ku bit, teu hurup. Langkung pentingna, ciphers ieu dirarancang kalayan pamahaman anu poék ngeunaan naon anu janten katelah hukum Schneier urang: Saha waé tiasa nyiptakeun algoritma énkripsi anu aranjeunna nyalira henteu tiasa ngalanggar. Teu cukup pikeun sistem enkripsi siga hese: ngabuktikeun patut na, éta kudu ngalaman review kaamanan merciless ku loba cryptanalysts anu bakal ngalakukeun pangalusna maranéhanana pikeun rengat cipher nu.

Itungan awal

Serangan kriptografi: panjelasan pikeun pikiran bingungCandak kota hypothetical tina Precom Heights, populasi 200. Unggal imah di kota ngandung rata-rata $ 000 hargana, tapi teu leuwih ti $ 30. Pasar kaamanan di Precom dimonopoli ku ACME Industries, nu ngahasilkeun konci panto kelas Coyote ™ legendaris. Numutkeun analisa ahli, konci kelas Coyote ngan ukur tiasa dirusak ku mesin hipotésis anu kompleks, anu nyiptakeunana butuh kira-kira lima taun sareng investasi $ 000. Naha kotana aman?

Paling dipikaresep euweuh. Antukna, penjahat anu cukup ambisius bakal muncul. Anjeunna bakal nalar sapertos kieu: "Enya, kuring bakal ngaluarkeun biaya anu ageung. Lima taun sabar ngantosan, sareng $ 50. Tapi nalika kuring réngsé, kuring bakal ngagaduhan aksés kana sagala kabeungharan kota ieu. Upami kuring maén kartu kuring leres, investasi ieu bakal mayar nyalira sababaraha kali.

Sami bener dina kriptografi. Serangan ngalawan cipher tinangtu tunduk kana analisis biaya-manfaat anu kejam. Lamun rasio nguntungkeun, serangan moal lumangsung. Tapi serangan anu dianggo ngalawan seueur korban poténsial sakaligus ampir sok mayar, dimana prakték desain anu pangsaéna nyaéta nganggap yén éta dimimitian ti dinten pertama. Kami dasarna ngagaduhan versi kriptografi tina Hukum Murphy: "Naon waé anu leres-leres tiasa ngarobih sistem bakal ngarusak sistem."

Conto pangbasajanna sistem kripto anu rentan ka serangan precomputation nyaéta cipher tanpa konci konstan. Ieu kasus kalawan Cipher Caesar urang, nu saukur mindahkeun unggal hurup tina alfabét tilu hurup ka hareup (tabel ieu looped, jadi hurup panungtungan dina alfabét ieu énkripsi katilu). Di dieu deui prinsip Kerchhoffs asalna kana antrian: sakali sistem ieu hacked, éta hacked salawasna.

Konsepna basajan. Malah pamekar cryptosystem novice dipikaresep bakal ngakuan ancaman jeung nyiapkeun sasuai. Ningali évolusi kriptografi, serangan sapertos kitu henteu pantes pikeun sabagéan ageung ciphers, ti mimiti versi ningkat tina cipher Caesar dugi ka turunna cipher polyalphabetic. Serangan sapertos kitu ngan balik deui kalayan munculna jaman kriptografi modéren.

Balik deui ieu disababkeun ku dua faktor. Firstly, cryptosystems cukup kompléks tungtungna mucunghul, dimana kamungkinan eksploitasi sanggeus Hacking teu atra. Kadua, kriptografi jadi nyebar nepi ka jutaan jalma awam nyieun kaputusan unggal poé ngeunaan dimana jeung naon bagéan kriptografi dipaké deui. Butuh sababaraha waktos sateuacan para ahli sadar résiko sareng ngangkat alarm.

Inget serangan precomputation: di ahir artikel urang bakal kasampak di dua conto cryptographic real-hirup dimana eta maénkeun peran penting.

Sapédah

Ieu detektif kawentar Sherlock Holmes, ngalakukeun serangan interpolasi ka Dr. Watson malang:

Kuring langsung ngaduga yén anjeun sumping ti Afghanistan... Karérét pamikiran kuring kieu: "Jalma ieu mangrupikeun dokter dumasar kana jinisna, tapi anjeunna ngagaduhan militér. Janten, dokter militer. Anjeunna nembé sumping ti daérah tropis - beungeutna poék, tapi ieu sanés warna alami kulitna, sabab pigeulangna langkung bodas. Beungeutna haggard - écés, anjeunna ngalaman pisan sareng kaserang panyakit. Anjeunna tatu dina leungeun kénca-Na - anjeunna nahan eta gerak sarta saeutik unnaturally. Dimana di wewengkon tropis bisa hiji dokter militér Inggris endure hardships jeung meunang tatu? Tangtosna, di Afghanistan." Sakabeh kereteg pikiran teu butuh sadetik. Janten kuring nyarios yén anjeun sumping ti Afghanistan, sareng anjeun kaget.

Holmes tiasa nyandak sakedik inpormasi tina unggal bukti masing-masing. Anjeunna ngan bisa ngahontal kacindekan na ku tempo aranjeunna sadayana babarengan. Serangan interpolasi jalanna sami ku cara mariksa pasangan plaintext sareng ciphertext anu dipikanyaho hasil tina konci anu sami. Ti unggal pasangan, observasi individu sasari anu ngamungkinkeun hiji kacindekan umum ngeunaan konci bisa digambar. Sadaya kacindekan ieu samar-samar sareng sigana henteu aya gunana dugi ka ujug-ujug ngahontal massa kritis sareng ngakibatkeun hiji-hijina kacindekan anu mungkin: henteu paduli kumaha luar biasa éta, éta kedah leres. Saatos ieu, boh koncina diungkabkeun, atanapi prosés dekripsi janten langkung saé supados tiasa diulang.

Hayu urang ngagambarkeun ku conto basajan kumaha interpolasi jalan. Sebutkeun urang hoyong maca buku harian pribadi musuh urang, Bob. Anjeunna énkripsi unggal nomer dina buku harian na nganggo sistem kriptografi saderhana anu anjeunna pelajari tina iklan dina majalah "A Mock of Cryptography." Sistemna tiasa sapertos kieu: Bob milih dua nomer anu anjeunna resep: Serangan kriptografi: panjelasan pikeun pikiran bingung и Serangan kriptografi: panjelasan pikeun pikiran bingung. Ti ayeuna, pikeun énkripsi nomer naon waé Serangan kriptografi: panjelasan pikeun pikiran bingung, éta ngitung Serangan kriptografi: panjelasan pikeun pikiran bingung. Contona, upami Bob milih Serangan kriptografi: panjelasan pikeun pikiran bingung и Serangan kriptografi: panjelasan pikeun pikiran bingung, teras nomerna Serangan kriptografi: panjelasan pikeun pikiran bingung bakal énkripsi salaku Serangan kriptografi: panjelasan pikeun pikiran bingung.

Hayu urang nyebutkeun yén dina 28 Désémber urang noticed nu Bob ieu scratching hal dina diary na. Nalika anjeunna réngsé, urang bakal tenang angkat sareng ningali éntri terakhir:

Kaping: 235/520

Dear Diary,

Dinten ieu dinten alus. Ngaliwatan 64 dinten ieu abdi gaduh tanggal jeung Alisa, anu hirup di hiji apartemen 843. Nyaan pikir manéhna bisa jadi 26!

Kusabab kami serius pisan pikeun nuturkeun Bob dina tanggal na (kami duanana 15 dina skenario ieu), penting pisan pikeun terang tanggal sareng alamat Alice. Untungna, urang perhatikeun yén sistem crypto Bob rentan ka serangan interpolasi. Urang bisa jadi teu nyaho Serangan kriptografi: panjelasan pikeun pikiran bingung и Serangan kriptografi: panjelasan pikeun pikiran bingung, tapi urang terang tanggal ayeuna, janten urang gaduh dua pasangan plaintext-ciphertext. Nyaéta, urang terang éta Serangan kriptografi: panjelasan pikeun pikiran bingung énkripsi di Serangan kriptografi: panjelasan pikeun pikiran bingungjeung Serangan kriptografi: panjelasan pikeun pikiran bingung - at Serangan kriptografi: panjelasan pikeun pikiran bingung. Ieu anu bakal urang tuliskeun:

Serangan kriptografi: panjelasan pikeun pikiran bingung

Serangan kriptografi: panjelasan pikeun pikiran bingung

Kusabab kami 15 taun, urang geus nyaho ngeunaan sistem dua persamaan dua unknowns, nu dina kaayaan ieu cukup pikeun manggihan. Serangan kriptografi: panjelasan pikeun pikiran bingung и Serangan kriptografi: panjelasan pikeun pikiran bingung tanpa masalah. Unggal pasangan plaintext-ciphertext nempatkeun konstrain dina konci Bob, sarta dua konstrain babarengan cukup pikeun sakabéhna cageur konci. Dina conto urang jawaban téh Serangan kriptografi: panjelasan pikeun pikiran bingung и Serangan kriptografi: panjelasan pikeun pikiran bingung (di Serangan kriptografi: panjelasan pikeun pikiran bingung Serangan kriptografi: panjelasan pikeun pikiran bingung, jadina 26 dina diary pakait sareng kecap 'hiji', nyaeta, "hiji sarua" - approx. jalur).

Serangan interpolasi, tangtosna, henteu dugi ka conto saderhana sapertos kitu. Unggal cryptosystem nu ngurangan kana obyék matematik well-dipikaharti sarta daptar parameter aya dina resiko serangan interpolasi-beuki kaharti obyék, nu leuwih luhur resiko.

Pendatang sering ngawadul yén kriptografi mangrupikeun "seni ngarancang hal-hal anu paling awon." Serangan interpolasi sigana seueur anu disalahkeun. Bob tiasa nganggo desain matematik anu elegan atanapi tetep tanggalna sareng Alice pribadi - tapi hanjakalna, anjeun biasana henteu tiasa gaduh dua cara. Ieu bakal janten jelas pisan nalika urang antukna dugi ka topik kriptografi konci umum.

Cross protokol / downgrade

Serangan kriptografi: panjelasan pikeun pikiran bingungDina Now You See Me (2013), sakelompok ilusionis nyobian ngabobodo raja asuransi korup Arthur Tressler kaluar tina sakabéh pakayana. Pikeun kéngingkeun aksés kana rekening bank Arthur, para ilusi kedah nyayogikeun nami pangguna sareng kecap konci na atanapi maksa anjeunna némbongan sacara pribadi di bank sareng ngiringan skéma éta.

Duanana pilihan hésé pisan; Lalaki biasa manggung di panggung, sareng henteu milu dina operasi intelijen. Janten aranjeunna milih pilihan katilu anu mungkin: antekna nyauran bank sareng nyamar janten Arthur. Bank naroskeun sababaraha patarosan pikeun pariksa identitas, sapertos nami paman sareng nami piaraan anu munggaran; pahlawan urang sateuacanna aranjeunna gampang nimba informasi ieu ti Arthur maké rékayasa sosial palinter. Ti titik ieu, kaamanan sandi alus teuing euweuh urusan.

(Numutkeun hiji urban legend yén urang geus pribadi diverifikasi tur diverifikasi, cryptographer Eli Beaham sakali encountered a Tunai Mandiri bank anu maksa dina netepkeun patarosan kaamanan. Nalika Tunai Mandiri nanya ngaran nini indungna, Beaham mimiti dictating: "Modal X, leutik y, tilu ... ").

Éta sami dina kriptografi, upami dua protokol kriptografi dianggo paralel pikeun ngajagaan aset anu sami, sareng hiji langkung lemah tibatan anu sanés. Sistem anu dihasilkeun janten rentan ka serangan cross-protocol, dimana protokol anu langkung lemah diserang supados tiasa nampi hadiah tanpa ngarampa anu langkung kuat.

Dina sababaraha kasus kompléks, teu cukup ngan saukur ngahubungan server maké protokol lemah, tapi merlukeun partisipasi involuntary of a klien sah. Ieu tiasa diatur nganggo anu disebut serangan downgrade. Ngartos serangan ieu, hayu urang nganggap yen illusionists urang boga tugas leuwih hese tibatan dina film. Hayu urang nganggap yén hiji pagawe bank (kasir) jeung Arthur encountered sababaraha kaayaan teu kaduga, hasilna dialog handap:

maling: Halo? Ieu Arthur Tressler. Abdi hoyong ngareset sandi.

Kasir: Hebat. Punten tingali buku kode rahasia pribadi anjeun, kaca 28, kecap 3. Sadaya pesen di handap ieu bakal énkripsi nganggo kecap khusus ieu salaku konci. PQJGH. LOTJNAM PGGY MXVRL ZZLQ SRIU HHNMLPPPV…

maling: Hei, heu, antosan, antosan. Ieu bener diperlukeun? Naha urang tiasa nyarios sapertos jalma biasa?

Kasir: Abdi henteu nyarankeun ngalakukeun ieu.

maling: Kuring ngan ... tingali, kuring kungsi poé lousy, oke? Abdi klien VIP tur Abdi teu dina wanda pikeun ngagali ngaliwatan ieu buku kode bodo.

Kasir: muhun. Lamun keukeuh, Bapak Tressler. Naon anu anjeun pikahoyong?

maling: Punten, abdi hoyong nyumbang sadayana artos abdi ka Arthur Tressler National Victims Fund.

(Reureuh sakeudeung).

Kasir: Naha jelas ayeuna. Mangga nyadiakeun PIN Anjeun pikeun transaksi badag.

maling: Abdi naon?

Kasir: Dina pamundut pribadi anjeun, transaksi ukuran ieu merlukeun PIN pikeun transaksi badag. Kode ieu dibikeun ka anjeun nalika anjeun muka akun anjeun.

maling:... Kuring leungit eta. Ieu bener diperlukeun? Naha anjeun teu tiasa ngan ukur nyatujuan deal?

Kasir: No. Hapunten, Pak Tressler. Sakali deui, ieu mangrupikeun ukuran kaamanan anu anjeun pikahoyong. Upami anjeun hoyong, urang tiasa ngirim kodeu PIN anyar ka kotak surat anjeun.

Pahlawan urang nunda operasi. Aranjeunna eavesdrop on sababaraha transaksi badag Tressler urang, hoping uninga PIN; tapi unggal waktos paguneman robah jadi gibberish disandi saméméh nanaon metot anu ceuk. Tungtungna, hiji poé alus, rencana dilaksanakeun kana aksi. Aranjeunna sabar ngantosan momen nalika Tressler kedah ngadamel transaksi anu ageung dina telepon, anjeunna asup kana jalur, teras ...

Tukang nyitak: Halo. Abdi hoyong ngalengkepan transaksi jarak jauh, mangga.

Kasir: Hebat. Mangga tingali buku kode rahasia pribadi anjeun, halaman...

(Maling mencet tombol; sora kasir robah jadi sora nu teu kaharti).

Kasir: - #@$#@$#*@$$@#* bakal énkripsi ku kecap ieu salaku koncina. AAAYRR PLRQRZ MMNJK LOJBAN…

Tukang nyitak: Hampura, kuring teu pati ngarti. Deui? Dina kaca naon? kecap naon?

Kasir: Ieu kaca @#$@#*$)#*#@()#@$(#@*$(#@*.

Tukang nyitak: Naon?

Kasir: Kecap nomer dua puluh @$#@$#%#$.

Tukang nyitak: Serius! Geus cukup! Anjeun sareng protokol kaamanan anjeun mangrupikeun sababaraha jinis sirkus. Kuring terang yén anjeun tiasa ngobrol sareng kuring biasa.

Kasir: Abdi henteu nyarankeun…

Tukang nyitak: Sareng kuring henteu mamatahan anjeun miceunan waktos kuring. Abdi henteu hoyong ngadangu deui ngeunaan ieu dugi ka ngalereskeun masalah sareng saluran telepon anjeun. Dupi urang finalize deal ieu atanapi henteu?

Kasir:… Sumuhun. muhun. Naon anu anjeun pikahoyong?

Tukang nyitak: Abdi hoyong nransper $20 ka Lord Business Investments, nomer rekening...

Kasir: Hiji menit, mangga. Ieu masalah badag. Mangga nyadiakeun PIN Anjeun pikeun transaksi badag.

Tukang nyitak: Naon? Oh, kahayang. 1234.

Ieu serangan ka handap. Protokol lemah "ngan nyarita langsung" ieu envisioned salaku pilihan dina kaayaan darurat. Jeung can di dieu urang.

Anjeun panginten tiasa heran saha anu leres-leres bakal ngarancang sistem "aman dugi ka ditaroskeun" sapertos anu dijelaskeun di luhur. Tapi sapertos bank fiksi nyandak resiko pikeun nahan para nasabah anu henteu resep kriptografi, sistem sacara umum sering condong kana sarat anu teu acuh atanapi bahkan henteu ngamusuhan kaamanan.

Ieu persis naon anu lumangsung kalawan protokol SSLv2 di 1995. Pamarentah AS geus lila mimiti nempo kriptografi salaku pakarang anu pangalusna diteundeun jauh ti musuh asing jeung domestik. Potongan kode anu individual disatujuan pikeun ékspor ti Amérika Serikat, mindeng jeung kaayaan yén algoritma ieu ngahaja ngaruksak. Netscape, pamekar browser nu pang populerna, Netscape Navigator, dibéré idin pikeun SSLv2 ngan ku 512-bit konci RSA inherently rentan (jeung 40-bit pikeun RC4).

Nepi ka tungtun taun milénium, aturan geus santai sarta aksés ka enkripsi modern janten lega sadia. Tapi, klien sareng server parantos ngadukung kriptografi "ékspor" anu lemah salami mangtaun-taun kusabab inersia anu sami anu ngajaga dukungan pikeun sistem warisan mana waé. Klién percaya yén aranjeunna tiasa mendakan server anu henteu ngadukung anu sanés. The server tuh sami. Tangtosna, protokol SSL nyatakeun yén klien sareng server henteu kedah nganggo protokol anu lemah nalika aya anu langkung saé. Tapi premis anu sami dilarapkeun ka Tressler sareng bankna.

Téori ieu kapanggih jalan kana dua serangan-profil tinggi nu ngoyagkeun kaamanan protokol SSL dina 2015, duanana kapanggih ku peneliti Microsoft sarta INRIA. Kahiji, rinci ngeunaan serangan FREAK ieu wangsit dina bulan Pebruari, dituturkeun tilu bulan engké ku serangan sarupa sejen disebut Logjam, nu urang bahas di leuwih jéntré lamun urang ngaléngkah ka serangan on kriptografi konci publik.

Serangan kriptografi: panjelasan pikeun pikiran bingungKerentanan FREEK (ogé katelah "Smack TLS") janten terang nalika panaliti nganalisis palaksanaan klien/server TLS sareng mendakan bug anu panasaran. Dina palaksanaan ieu, upami klien henteu naroskeun nganggo kriptografi ékspor anu lemah, tapi server masih ngaréspon ku konci sapertos kitu, klien nyarios "Oh muhun" sareng ngalih ka suite cipher anu lemah.

Dina waktos éta, kriptografi ékspor sacara lega dianggap luntur sareng teu aya watesna, ku kituna serangan éta ngajempolan lengkep sareng mangaruhan seueur domain penting, kalebet White House, IRS, sareng situs NSA. Malah parah, tétéla yén seueur server anu rentan ngaoptimalkeun kinerja ku ngagunakeun deui konci anu sami tinimbang ngahasilkeun anu énggal pikeun unggal sési. Hal ieu ngamungkinkeun, sanggeus downgrading protokol, pikeun ngalakonan serangan pre-itung: cracking hiji konci tetep kawilang mahal ($ 100 jeung 12 jam dina waktu publikasi), tapi biaya praktis narajang sambungan ieu nyata ngurangan. Ieu cukup pikeun milih konci server sakali sarta rengat enkripsi pikeun sakabéh sambungan saterusna ti moment on.

Sareng sateuacan urang teraskeun, aya hiji serangan canggih anu kedah disebatkeun ...

serangan Oracle

Serangan kriptografi: panjelasan pikeun pikiran bingungMoxie Marlinspike pangalusna dipikawanoh salaku bapana cross-platform crypto olahtalatah aplikasi Signal; tapi urang pribadi resep salah sahiji inovasi na kirang dipikawanoh - prinsip doom cryptographic (Cryptographic Doom Prinsip). Pikeun paraphrase rada, urang tiasa nyarios kieu: "Upami protokol ngalaksanakeun naon waé ngalakukeun operasi kriptografi dina pesen ti sumber anu berpotensi jahat sareng kalakuanana béda-béda gumantung kana hasilna, éta ditakdirkeun." Atanapi dina bentuk anu langkung seukeut: "Entong nyandak inpormasi ti musuh pikeun diolah, sareng upami anjeun kedah, sahenteuna henteu nunjukkeun hasilna."

Hayu urang ninggalkeun kumisan buffer overflows, suntik paréntah, jeung sajabana; aranjeunna saluareun ruang lingkup sawala ieu. Palanggaran "prinsip doom" ngabalukarkeun hacks kriptografi serius alatan kanyataan yén protokol behaves persis saperti nu diharapkeun.

Salaku conto, hayu urang nyandak desain fiktif sareng cipher substitusi anu rentan, teras nunjukkeun kamungkinan serangan. Bari urang geus katempo serangan dina cipher substitusi ngagunakeun analisis frékuénsi, éta henteu ngan "cara séjén pikeun megatkeun cipher sarua." Sabalikna, serangan oracle mangrupakeun penemuan leuwih modern, lumaku pikeun loba kaayaan dimana analisis frékuénsi gagal, sarta kami bakal ningali démo ieu dina bagian salajengna. Di dieu cipher saderhana dipilih ngan ukur pikeun ngajantenkeun conto langkung jelas.

Janten Alice sareng Bob komunikasi nganggo cipher substitusi saderhana nganggo konci anu ngan ukur dipikanyaho ku aranjeunna. Aranjeunna ketat pisan ngeunaan panjang seratan: panjangna persis 20 karakter. Janten aranjeunna sapuk yén upami aya anu hoyong ngirim pesen anu langkung pondok, aranjeunna kedah nambihan sababaraha téks dummy ka tungtung pesen supados janten persis 20 karakter. Saatos sababaraha diskusi, aranjeunna mutuskeun yén aranjeunna ngan ukur nampi téks dummy di handap ieu: a, bb, ccc, dddd jsb Ku kituna, téks dummy tina sagala panjang diperlukeun dipikawanoh.

Nalika Alice atanapi Bob nampi pesen, aranjeunna mimiti pariksa yén pesen éta panjangna leres (20 karakter) sareng yén sufiksna mangrupikeun téks dummy anu leres. Upami ieu henteu masalahna, teras aranjeunna ngabales ku pesen kasalahan anu pas. Upami panjang téks sareng téks dummy henteu kunanaon, panampi maca pesen éta nyalira sareng ngirim réspon énkripsi.

Dina mangsa serangan, panyerang nyamar jadi Bob jeung ngirim pesen palsu ka Alice. Pesen-pesen éta omong kosong lengkep - panyerang henteu gaduh konci, sareng ku kituna henteu tiasa ngajalin pesen anu bermakna. Tapi saprak protokol ngalanggar prinsip doom, panyerang masih bisa bubu Alice kana nembongkeun informasi konci, sakumaha ditémbongkeun di handap ieu.

maling: PREWF ZHJKL MMMN. LA

Alice: Téks dummy teu valid.

maling: PREWF ZHJKL MMMN. LB

Alice: Téks dummy teu valid.

maling: PREWF ZHJKL MMMN. LC

Alice: ILCT? TLCT RUWO PUT KCAW CPS OWPOW!

maling nu boga pamanggih naon Alice ngan ngomong, tapi catetan anu simbol C kudu saluyu a, saprak Alice narima téks dummy.

maling: REWF ZHJKL MMMN. LAA

Alice: Téks dummy teu valid.

maling: REWF ZHJKL MMMN. LBB

Alice: Téks dummy teu valid.

Saatos sababaraha usaha ...

maling: REWF ZHJKL MMMN. LGG

Alice: Téks dummy teu valid.

maling: REWF ZHJKL MMMN. LHH

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

Deui, lawan boga pamanggih naon Alice ngan ngomong, tapi catetan anu H kudu cocog b saprak Alice narima téks dummy.

Jeung saterusna nepi ka lawan nyaho harti unggal karakter.

Dina glance kahiji, métode nyarupaan serangan plaintext dipilih. Tungtungna, panyerang milih ciphertexts, sareng server matuh ngolahna. Beda utama anu ngajadikeun serangan ieu giat di dunya nyata nyaéta yén panyerang henteu peryogi aksés kana transkrip anu saleresna - réspon server, bahkan anu teu bahaya sapertos "Teks dummy anu teu valid," cekap.

Sanaos serangan tinangtu ieu instruktif, ulah gantung teuing kana spésifik skéma "teks dummy", sistem kripto khusus anu dianggo, atanapi sekuen pesen anu dikirim ku panyerang. Gagasan dasar nyaéta kumaha réaksi Alice béda-béda dumasar kana sipat plaintext, sareng ngalakukeun kitu tanpa mastikeun yén ciphertext anu saluyu saleresna asalna ti pihak anu dipercaya. Ku kituna, Alice ngidinan panyerang pikeun squeeze informasi rusiah kaluar tina jawaban nya.

Aya seueur anu tiasa dirobih dina skenario ieu. Lambang anu diréaksikeun ku Alice, atanapi bédana pisan dina paripolahna, atanapi bahkan sistem kripto anu dianggo. Tapi prinsipna bakal tetep sami, sareng serangan sacara gembleng bakal tetep giat dina hiji bentuk atanapi anu sanés. Palaksanaan dasar serangan ieu mantuan uncover sababaraha bug kaamanan, nu urang bakal kasampak di sakeudeung; tapi mimitina aya sababaraha palajaran teoritis pikeun diajar. Kumaha ngagunakeun "Naskah Alice" fiksi ieu dina serangan anu tiasa dianggo dina cipher modern nyata? Ieu malah mungkin, sanajan dina teori?

Dina 1998, cryptographer Swiss Daniel Bleichenbacher ngajawab patarosan ieu dina satuju. Anjeunna nunjukkeun serangan oracle dina cryptosystem RSA anu seueur dianggo, nganggo skéma pesen anu khusus. Dina sababaraha palaksanaan RSA, server ngabales sareng pesen kasalahan anu béda-béda gumantung kana naha plaintext cocog sareng skéma atanapi henteu; ieu cukup pikeun ngalaksanakeun serangan.

Opat taun ti harita, taun 2002, kriptografi Perancis Serge Vaudenay nunjukkeun serangan oracle anu ampir sami sareng anu dijelaskeun dina skenario Alice di luhur - iwal ti cipher fiktif, anjeunna ngarobih sadayana kelas cipher modern anu terhormat anu dianggo ku jalma. Khususna, serangan Vaudenay nargétkeun cipher ukuran input tetep ("block ciphers") nalika dianggo dina anu disebut "mode enkripsi CBC" sareng nganggo skéma padding anu populer, dasarna sami sareng anu aya dina skenario Alice.

Ogé dina 2002, cryptographer Amérika John Kelsey - co-panulis Dua Puluh - ngusulkeun rupa-rupa serangan oracle dina sistem anu niiskeun pesen teras énkripsi. Anu paling kasohor diantara ieu nyaéta serangan anu ngamangpaatkeun kanyataan yén sering mungkin pikeun nyimpulkeun panjang aslina tina plaintext tina panjang ciphertext. Dina tiori, ieu ngamungkinkeun pikeun serangan oracle nu recovers bagian tina plaintext aslina.

Di handap ieu kami nyayogikeun pedaran anu langkung rinci ngeunaan serangan Vaudenay sareng Kelsey (urang bakal masihan pedaran anu langkung rinci ngeunaan serangan Bleichenbacher nalika urang ngaléngkah ka serangan dina kriptografi konci umum). Sanajan usaha pangalusna urang, téks janten rada teknis; jadi lamun di luhur geus cukup pikeun anjeun, skip dua bagian salajengna.

serangan Vodene urang

Pikeun ngartos serangan Vaudenay, urang kedah ngobrol sakedik langkung seueur ngeunaan blok cipher sareng modeu enkripsi. A "block cipher" nyaeta, sakumaha disebutkeun, a cipher nu nyokot konci na input tina panjangna tetep tangtu ("panjang blok") sarta ngahasilkeun blok énkripsi tina panjangna sarua. Blok ciphers loba dipaké sarta dianggap rélatif aman. DES anu ayeuna pensiunan, dianggap cipher modéren munggaran, nyaéta blok cipher. Sakumaha anu disebatkeun di luhur, sami pikeun AES, anu seueur dianggo ayeuna.

Hanjakal, blok ciphers boga hiji kalemahan glaring. Ukuran blok has nyaéta 128 bit, atanapi 16 karakter. Jelas, kriptografi modern merlukeun gawé bareng data input nu leuwih gede, sarta ieu mangrupa tempat mode enkripsi datang kana antrian. Modeu enkripsi dasarna hack: éta mangrupikeun cara pikeun nerapkeun blok cipher anu ngan ukur nampi input tina ukuran anu tangtu pikeun input anu panjangna sawenang.

Serangan Vodene museurkeun kana mode operasi CBC (Cipher Block Chaining) anu populer. Serangan éta ngarawat blok cipher dasarna salaku kotak hideung anu magis, teu bisa ditembus sareng ngaleungitkeun kaamananna.

Ieu diagram anu nunjukkeun kumaha modeu CBC jalan:

Serangan kriptografi: panjelasan pikeun pikiran bingung

Serangan kriptografi: panjelasan pikeun pikiran bingung

Ditambah dikurilingan nandakeun operasi XOR (eksklusif OR). Contona, blok kadua ciphertext narima:

  1. Ku ngalakukeun operasi XOR dina blok plaintext kadua jeung blok ciphertext kahiji.
  2. Énkripsi blok anu dihasilkeun ku cipher blok nganggo konci.

Kusabab CBC ngagunakeun beurat sapertos operasi XOR binér, hayu urang sakedap pikeun nginget sababaraha pasipatanana:

  • Idémpotensi: Serangan kriptografi: panjelasan pikeun pikiran bingung
  • Komutatif: Serangan kriptografi: panjelasan pikeun pikiran bingung
  • Asosiasi: Serangan kriptografi: panjelasan pikeun pikiran bingung
  • Malikkeun diri: Serangan kriptografi: panjelasan pikeun pikiran bingung
  • Ukuran bait: bait n tina Serangan kriptografi: panjelasan pikeun pikiran bingung = (bait n tina Serangan kriptografi: panjelasan pikeun pikiran bingung) Serangan kriptografi: panjelasan pikeun pikiran bingung (bait n tina Serangan kriptografi: panjelasan pikeun pikiran bingung)

Biasana, sipat ieu nunjukkeun yén upami urang gaduh persamaan anu ngalibetkeun operasi XOR sareng hiji anu teu dipikanyaho, éta tiasa direngsekeun. Contona, upami urang terang éta Serangan kriptografi: panjelasan pikeun pikiran bingung kalawan kanyahoan Serangan kriptografi: panjelasan pikeun pikiran bingung jeung kawentar Serangan kriptografi: panjelasan pikeun pikiran bingung и Serangan kriptografi: panjelasan pikeun pikiran bingung, mangka urang bisa ngandelkeun sipat disebut tadi di luhur pikeun ngajawab persamaan pikeun Serangan kriptografi: panjelasan pikeun pikiran bingung. Ku nerapkeun XOR dina dua sisi persamaan jeung Serangan kriptografi: panjelasan pikeun pikiran bingung, urang meunang Serangan kriptografi: panjelasan pikeun pikiran bingung. Ieu kabeh bakal jadi pohara relevan dina momen.

Aya dua béda leutik sareng hiji bédana utama antara skenario Alice urang sareng serangan Vaudenay. Dua leutik:

  • Dina naskah, Alice ngaharepkeun plainteks ditungtungan ku karakter a, bb, ccc teras salajengna. Dina serangan Wodene, korban malah ngaharepkeun plaintexts mungkas N kali kalawan N bait (nyaéta, hexadecimal 01 atawa 02 02, atawa 03 03 03, jeung saterusna). Ieu murni bédana kosmetik.
  • Dina skenario Alice, éta gampang pikeun ngabejaan naha Alice geus narima pesen ku respon "Teks dummy salah". Dina serangan Vodene urang, analisis leuwih diperlukeun tur palaksanaan tepat di sisi korban penting; tapi demi singgetan, hayu urang anggap yén analisis ieu masih mungkin.

Bedana utama:

  • Kusabab urang henteu nganggo sistem kripto anu sami, hubungan antara bait ciphertext anu dikawasa ku panyerang sareng rusiah (konci sareng plaintext) écés bakal béda. Ku alatan éta, panyerang kedah nganggo strategi anu béda nalika nyiptakeun ciphertext sareng napsirkeun réspon server.

Beda utama ieu mangrupikeun potongan akhir tina teka-teki pikeun ngartos serangan Vaudenay, janten hayu urang sakedap pikeun mikir naha sareng kumaha serangan oracle dina CBC tiasa dipasang di tempat munggaran.

Anggap we dibere ciphertext CBC tina 247 blok, sarta kami rék ngadekrip eta. Urang tiasa ngirim pesen palsu ka server, sapertos urang tiasa ngirim pesen palsu ka Alice sateuacanna. Server bakal ngadekrip pesen pikeun urang, tapi moal nunjukkeun dekripsi - sakali deui, sapertos Alice, server bakal ngalaporkeun ngan ukur sakedik inpormasi: naha plaintext ngagaduhan padding anu sah atanapi henteu.

Pertimbangkeun yén dina skenario Alice urang ngagaduhan hubungan ieu:

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

Hayu urang nelepon ieu "persamaan Alice urang." Urang ngadalikeun ciphertext; server (Alice) bocor informasi samar ngeunaan plaintext narima; sarta ieu diwenangkeun urang deduce informasi ngeunaan faktor panungtungan - konci. Sacara analogi, upami urang tiasa mendakan sambungan sapertos kitu pikeun skrip CBC, urang ogé tiasa nyandak sababaraha inpormasi rahasia di dinya ogé.

Kabeneran, aya bener aya hubungan kaluar aya nu bisa urang pake. Mertimbangkeun kaluaran tina panggero ahir pikeun ngadekrip blok cipher sarta denote kaluaran ieu salaku Serangan kriptografi: panjelasan pikeun pikiran bingung. Kami ogé nunjukkeun blok plaintext Serangan kriptografi: panjelasan pikeun pikiran bingung jeung blok ciphertext Serangan kriptografi: panjelasan pikeun pikiran bingung. Tingali deui dina diagram CBC sareng perhatikeun naon anu lumangsung:

Serangan kriptografi: panjelasan pikeun pikiran bingung

Hayu urang nyauran ieu "persamaan CBC".

Dina skénario Alice, ku ngawaskeun ciphertext sareng ningali kabocoran plaintext anu saluyu, urang tiasa nga-mount serangan anu pulih deui istilah katilu dina persamaan - konci. Dina skenario CBC, urang ogé ngawas ciphertext jeung niténan bocor informasi dina plaintext pakait. Lamun analogi nahan, urang bisa ménta informasi ngeunaan Serangan kriptografi: panjelasan pikeun pikiran bingung.

Hayu urang nganggap urang bener dibalikeun Serangan kriptografi: panjelasan pikeun pikiran bingung, teras naon? Nya, teras urang tiasa nyitak sadayana blok terakhir plaintext sakaligus (Serangan kriptografi: panjelasan pikeun pikiran bingung), cukup ku ngasupkeun Serangan kriptografi: panjelasan pikeun pikiran bingung (nu urang boga) jeung
nampi Serangan kriptografi: panjelasan pikeun pikiran bingung kana persamaan CBC.

Ayeuna urang optimis ngeunaan rencana serangan umum, waktosna pikeun ngerjakeun detilna. Mangga nengetan persis kumaha informasi plaintext bocor dina server. Dina naskah Alice, kabocoran lumangsung alatan Alice ngan bakal ngabales pesen nu bener lamun $inline$text{SIMPLE_SUBSTITUTION}(text{ciphertext},text{key})$inline$ ditungtungan ku garis. a (atawa bb, jeung saterusna, tapi kasempetan kaayaan ieu dipicu ku kasempetan éta pisan leutik). Sarupa jeung CBC, server narima padding lamun jeung ngan lamun Serangan kriptografi: panjelasan pikeun pikiran bingung ditungtungan ku heksadesimal 01. Ku kituna hayu urang coba trik sarua: ngirim ciphertexts palsu kalawan nilai palsu urang sorangan Serangan kriptografi: panjelasan pikeun pikiran bingungnepi ka server narima keusikan.

Nalika server nampi padding pikeun salah sahiji pesen palsu kami, éta hartosna:

Serangan kriptografi: panjelasan pikeun pikiran bingung

Ayeuna kami nganggo sipat bait-bait XOR:

Serangan kriptografi: panjelasan pikeun pikiran bingung

Urang terang istilah kahiji sareng katilu. Sarta kami geus katempo yen ieu ngamungkinkeun urang cageur istilah sésana - bait panungtungan ti Serangan kriptografi: panjelasan pikeun pikiran bingung:

Serangan kriptografi: panjelasan pikeun pikiran bingung

Ieu ogé masihan kami bait terakhir tina blok plaintext ahir via persamaan CBC sareng harta bait-demi-bait.

Urang tiasa ngantepkeun éta sareng puas yén kami parantos ngalaksanakeun serangan kana cipher sacara téoritis anu kuat. Tapi dina kanyataanana urang tiasa ngalakukeun leuwih: urang sabenerna bisa cageur kabeh téks. Ieu merlukeun trik nu teu aya dina naskah aslina Alice sarta teu diperlukeun pikeun serangan oracle, tapi masih patut diajar.

Ngartos eta, mimiti dicatet yén hasil kaluaran nilai bener tina bait panungtungan nyaéta Serangan kriptografi: panjelasan pikeun pikiran bingung urang boga pangabisa anyar. Ayeuna, nalika ngajalin ciphertext, urang tiasa ngamanipulasi bait terakhir tina plaintext anu saluyu. Sakali deui, ieu aya hubunganana sareng persamaan CBC sareng sipat bait-demi-bait:

Serangan kriptografi: panjelasan pikeun pikiran bingung

Kusabab urang ayeuna terang istilah kadua, urang tiasa nganggo kontrol urang leuwih kahiji pikeun ngadalikeun katilu. Urang ngan ukur ngitung:

Serangan kriptografi: panjelasan pikeun pikiran bingung

Kami henteu tiasa ngalakukeun ieu sateuacanna sabab kami henteu acan gaduh bait terakhir Serangan kriptografi: panjelasan pikeun pikiran bingung.

Kumaha ieu bakal ngabantosan urang? Anggap ayeuna urang nyieun sagala ciphertexts sahingga dina plaintexts pakait bait panungtungan sarua jeung 02. Server ayeuna ngan ukur nampi padding upami plaintext ditungtungan ku 02 02. Kusabab urang dilereskeun bait panungtungan, ieu ngan bakal kajadian lamun bait penultimate of plaintext ogé 02. Urang terus ngirim blok ciphertext palsu, ngarobah bait penultimate, dugi server narima padding pikeun salah sahijina. Dina titik ieu urang meunang:

Serangan kriptografi: panjelasan pikeun pikiran bingung

Sarta kami balikkeun bait penultimate Serangan kriptografi: panjelasan pikeun pikiran bingung sapertos anu terakhir dibalikeun deui. Urang teruskeun dina sumanget anu sarua: urang ngabenerkeun dua bait panungtungan plaintext ka 03 03, urang ngulang serangan ieu pikeun bait katilu ti tungtung jeung saterusna, pamustunganana lengkep malikkeun Serangan kriptografi: panjelasan pikeun pikiran bingung.

Kumaha upami sesa téks? Punten dicatet yén nilai Serangan kriptografi: panjelasan pikeun pikiran bingung sabenerna $inline$text{BLOCK_DECRYPT}(text{key},C_{247})$inline$. Urang tiasa nempatkeun sagala blok séjén gantina Serangan kriptografi: panjelasan pikeun pikiran bingung, sarta serangan bakal tetep suksés. Nyatana, urang tiasa naroskeun ka server pikeun ngalakukeun $inline$text{BLOCK_DECRYPT}$inline$ pikeun data naon waé. Dina titik ieu, éta kaulinan leuwih - urang tiasa ngadekrip sagala ciphertext (tingali sejen dina diagram dekripsi CBC pikeun nempo ieu; jeung dicatet yén IV umum).

Metoda husus ieu muterkeun hiji peran krusial dina serangan oracle nu urang bakal sapatemon engké.

serangan Kelsey urang

John Kelsey anu ramah kami netepkeun prinsip anu nyababkeun seueur serangan anu mungkin, sanés ngan ukur rinci ngeunaan serangan khusus dina cipher khusus. Milikna Artikel 2002 taun mangrupa ulikan ngeunaan kamungkinan serangan kana data dikomprés énkripsi. Naha anjeun nyangka yén inpormasi yén data dikomprés sateuacan énkripsi henteu cekap pikeun ngalakukeun serangan? Tétéla éta cukup.

Hasil héran ieu alatan dua prinsip. Kahiji, aya korelasi kuat antara panjang plaintext jeung panjang ciphertext; keur loba ciphers sarua persis. Kadua, nalika komprési dilakukeun, aya ogé korelasi anu kuat antara panjang pesen anu dikomprés sareng darajat "noisiness" tina plaintext, nyaéta proporsi karakter anu henteu ngulang (istilah téknis nyaéta "éntropi tinggi". ).

Pikeun ningali prinsip dina aksi, mertimbangkeun dua plainteks:

Plaintext 1: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

Plaintext 2: ATVXCAGTRSVPTVVULSJQHGEYCMQPCRQBGCYIXCFJGJ

Hayu urang anggap duanana plainteks dikomprés lajeng énkripsi. Anjeun nampi dua ciphertext anu hasilna sareng kedah nebak ciphertext mana anu cocog sareng plaintext:

Ciphertext 1: PVOVEYBPJDPVANEAWVGCIUWAABCIYIKOOURMYDTA

Ciphertext 2: DWKJZXYU

Jawabanana jelas. Di antara plaintexts, ngan plaintext 1 bisa dikomprés kana panjang saeutik tina ciphertext kadua. Urang terang ieu tanpa terang nanaon ngeunaan algoritma komprési, konci enkripsi, atanapi bahkan cipher sorangan. Dibandingkeun sareng hirarki kamungkinan serangan kriptografi, ieu mangrupikeun gélo.

Kelsey salajengna nunjuk kaluar yén dina kaayaan mahiwal tangtu prinsip ieu ogé bisa dipaké pikeun ngalakukeun serangan oracle. Khususna, éta ngajelaskeun kumaha panyerang tiasa pulihkeun plaintext rusiah upami anjeunna tiasa maksa server pikeun énkripsi data bentuk (plaintext dituturkeun ku Serangan kriptografi: panjelasan pikeun pikiran bingungbari anjeunna dina kadali Serangan kriptografi: panjelasan pikeun pikiran bingung tur kumaha bae tiasa pariksa panjang hasil énkripsi.

Sakali deui, sapertos serangan oracle anu sanés, urang gaduh hubungan:

Serangan kriptografi: panjelasan pikeun pikiran bingung

Sakali deui, urang ngadalikeun hiji istilah (Serangan kriptografi: panjelasan pikeun pikiran bingung), urang ningali bocor leutik inpormasi ngeunaan anggota anu sanés (ciphertext) sareng nyobian pulih anu terakhir (plaintext). Sanajan analogi, ieu kaayaan rada mahiwal dibandingkeun serangan oracle séjén kami geus katempo.

Pikeun ngagambarkeun kumaha serangan sapertos kitu tiasa dianggo, hayu urang nganggo skéma komprési fiktif anu urang nembé didamel: TOYZIP. Éta milarian garis téks anu parantos muncul sateuacana dina téks sareng ngagentosana ku tilu bait pananda tempat anu nunjukkeun dimana mendakan conto garis sateuacana sareng sabaraha kali éta muncul di dinya. Contona, garis helloworldhello bisa dikomprés kana helloworld[00][00][05] Panjang 13 bait dibandingkeun sareng 15 bait aslina.

Anggap hiji panyerang nyobian cageur plaintext formulir a password=..., dimana sandi sorangan teu kanyahoan. Numutkeun kana modél serangan Kelsey, panyerang tiasa naroskeun server pikeun ngompres teras énkripsi pesen bentuk (plaintext dituturkeun ku Serangan kriptografi: panjelasan pikeun pikiran bingung), dimana Serangan kriptografi: panjelasan pikeun pikiran bingung - téks bébas. Nalika server parantos réngsé damel, éta ngalaporkeun panjang hasilna. Serangan sapertos kieu:

maling: Punten komprési sareng énkripsi plaintext tanpa padding.

Server: Panjang hasilna 14.

maling: Punten komprés sareng énkripsi plaintext anu ditambihan password=a.

Server: Panjang hasilna 18.

The cracker catetan: [asli 14] + [tilu bait nu diganti password=] + a

maling: Punten komprési sareng énkripsi plaintext anu ditambihan password=b.

Server: Panjang hasilna 18.

maling: Punten komprési sareng énkripsi plaintext anu ditambihan password=с.

Server: Panjang hasilna 17.

The cracker catetan: [asli 14] + [tilu bait nu diganti password=c]. Ieu nganggap yén plaintext aslina ngandung string password=c. Hartina, kecap akses dimimitian ku hurup c

maling: Punten komprési sareng énkripsi plaintext anu ditambihan password=сa.

Server: Panjang hasilna 18.

The cracker catetan: [asli 14] + [tilu bait nu diganti password=с] + a

maling: Punten komprési sareng énkripsi plaintext anu ditambihan password=сb.

Server: Panjang hasilna 18.

(… Sababaraha waktu engké…)

maling: Punten komprési sareng énkripsi plaintext anu ditambihan password=со.

Server: Panjang hasilna 17.

The cracker catetan: [asli 14] + [tilu bait nu diganti password=co]. Nganggo logika anu sami, panyerang nyimpulkeun yén kecap akses dimimitian ku hurup co

Jeung saterusna nepi ka sakabéh sandi disimpen deui.

Anu maca bakal dihampura pikeun mikir yén ieu mangrupikeun latihan akademik murni sareng yén skenario serangan sapertos kitu moal pernah timbul di dunya nyata. Alas, sakumaha baris geura-giru urang tingali, eta leuwih hade teu nyerah kriptografi.

Kerentanan merek: KRIME, PODLE, DROWN

Tungtungna, saatos diajar téori sacara rinci, urang tiasa ningali kumaha téknik ieu diterapkeun dina serangan kriptografi kahirupan nyata.

Kajahatan

Serangan kriptografi: panjelasan pikeun pikiran bingungUpami serangan ditujukeun ka browser sareng jaringan korban, sababaraha bakal langkung gampang sareng sababaraha bakal langkung hese. Salaku conto, gampang ningali lalu lintas korban: ngan calik sareng anjeunna di kafe anu sami sareng WiFi. Ku sabab kitu, calon korban (i.e. dulur) umumna disarankan ngagunakeun sambungan énkripsi. Bakal leuwih hese, tapi masih mungkin, nyieun requests HTTP atas nama korban ka sababaraha situs pihak-katilu (contona, Google). Panyerang kedah mamingan korban ka halaman wéb anu jahat kalayan skrip anu ngadamel pamundut. Pangotektak wéb bakal otomatis nyayogikeun cookie sési anu pas.

Ieu sigana endah. Lamun Bob indit ka evil.com, bisa naskah dina situs ieu ngan nanya ka Google pikeun surélék sandi Bob pikeun [email protected]? Muhun, dina teori enya, tapi kanyataanana henteu. Skenario ieu disebut serangan pemalsuan pamundut lintas-situs (Pemalsuan Paménta Lintas Situs, CSRF), sarta éta populér di sabudeureun pertengahan 90an. Dinten upami evil.com nyobian trik ieu, Google (atawa naon baé ramatloka timer respecting) biasana bakal ngabales ku, "Hebat, tapi token CSRF anjeun pikeun transaksi ieu bakal ... um ... три триллиона и семь. Mangga malikan deui nomer ieu." Panyungsi modéren ngagaduhan anu disebut "kabijakan asal anu sami" dimana naskah dina situs A henteu gaduh aksés kana inpormasi anu dikirim ku halaman wéb B. Janten naskah dina evil.com bisa ngirim requests ka google.com, tapi teu bisa maca réspon atawa sabenerna ngalengkepan urus.

Urang kedah ngantebkeun yén iwal Bob ngagunakeun sambungan énkripsi, sadaya panyalindungan ieu euweuh hartina. Panyerang ngan saukur tiasa maca lalu lintas Bob sareng pulih cookie sési Google. Kalayan cookie ieu, anjeunna ngan saukur bakal muka tab Google énggal tanpa ngantunkeun panyungsi nyalira sareng nyamar Bob tanpa mendakan kawijakan asal anu sami. Tapi, hanjakalna pikeun maling, ieu janten kirang umum. Internét sacara gembleng parantos lami nyatakeun perang dina sambungan anu teu énkripsi, sareng lalu lintas kaluar Bob sigana énkripsi, naha anjeunna resep atanapi henteu. Salaku tambahan, ti mimiti palaksanaan protokol, lalu lintas ogé ngaleutikan sateuacan énkripsi; ieu prakték umum pikeun ngurangan latency.

Ieu dimana eta asalna kana antrian Kajahatan (Komprési Rasio Infoleak Dijieun Gampang, leakage basajan ngaliwatan rasio komprési). Kerentanan ieu diungkabkeun dina Séptémber 2012 ku peneliti kaamanan Juliano Rizzo sareng Thai Duong. Kami parantos nalungtik sadayana dasar téoritis, anu ngamungkinkeun urang ngartos naon anu dilakukeun sareng kumaha. Panyerang tiasa maksa browser Bob pikeun ngirim pamundut ka Google teras ngadangukeun réspon dina jaringan lokal dina bentuk anu dikomprés sareng énkripsi. Ku kituna kami boga:

Serangan kriptografi: panjelasan pikeun pikiran bingung

Di dieu panyerang ngadalikeun pamundut sareng gaduh aksés kana sniffer lalu lintas, kalebet ukuran pakét. Skenario fiksi Kelsey hirup.

Ngartos téori, panulis CRIME nyiptakeun garapan anu tiasa maok cookies sési pikeun sajumlah situs, kalebet Gmail, Twitter, Dropbox sareng Github. Kerentanan mangaruhan kalolobaan panyungsi wéb modern, nyababkeun patches dileupaskeun anu cicingeun ngubur fitur komprési dina SSL supados henteu dianggo pisan. Hiji-hijina anu ditangtayungan tina kerentanan nyaéta Internet Explorer anu terhormat, anu henteu kantos nganggo komprési SSL.

TETIK

Serangan kriptografi: panjelasan pikeun pikiran bingungDina Oktober 2014, tim kaamanan Google nyieun gelombang di komunitas kaamanan. Aranjeunna tiasa ngamangpaatkeun kerentanan dina protokol SSL anu parantos ditambal langkung ti sapuluh taun ka pengker.

Tétéla éta bari server ngajalankeun TLSv1.2 anyar ngagurilap, loba geus ditinggalkeun rojongan pikeun SSLv3 warisan pikeun kasaluyuan mundur kalawan Internet Explorer 6. Kami geus geus dikaitkeun serangan downgrade, sangkan anjeun bisa ngabayangkeun naon anu lumangsung. Sabotase protokol sasalaman anu diatur saé sareng server siap uih deui ka SSLv3 lami anu saé, dasarna ngabatalkeun panalungtikan kaamanan 15 taun ka pengker.

Pikeun konteks sajarah, Ieu kasimpulan ringkes sajarah SSL dugi ka versi 2 ti Matthew Green:

Transport Layer Security (TLS) mangrupikeun protokol kaamanan anu paling penting dina Internét. [..] ampir unggal transaksi anu anjeun lakukeun dina Internét gumantung kana TLS. [..] Tapi TLS henteu salawasna TLS. Protokol mimiti hirupna di Komunikasi Netscape disebut "Secure Sockets Layer" atanapi SSL. Gosip nyarios yén versi SSL munggaran pisan pikasieuneun yén pamekar ngumpulkeun sadaya cetakan kode sareng dikubur dina TPA rusiah di New Mexico. Salaku konsekuensi, versi SSL munggaran sadia masarakat awam sabenerna Vérsi SSL 2. Éta pikasieuneun pisan, sareng [..] éta mangrupikeun produk pertengahan 90-an, anu dianggap ku cryptographers modern salaku "jaman poék kriptografi" Seueur serangan kriptografi anu paling pikasieuneun anu urang terang ayeuna henteu acan kapendak. Hasilna, pamekar protokol SSLv2 dina dasarna ditinggalkeun pikeun fumble jalan di nu poek, sarta maranéhanana nyanghareupan loba monster dahsyat - ka chagrin maranéhanana jeung kauntungan urang, saprak serangan dina SSLv2 ninggalkeun palajaran invaluable pikeun generasi saterusna protokol.

Saatos kajadian ieu, dina 1996, Netscape anu frustasi ngadesain ulang protokol SSL ti mimiti. hasilna éta SSL versi 3, nu ngalereskeun sababaraha masalah kaamanan anu dipikanyaho ti miheulaan na.

Untungna pikeun maling, "sababaraha" henteu hartosna "sadayana". Gemblengna, SSLv3 nyayogikeun sadaya blok wangunan anu diperyogikeun pikeun ngaluncurkeun serangan Vodene. Protokol ieu nganggo cipher blok mode CBC sareng skéma padding anu teu aman (ieu dilereskeun dina TLS; ku kituna peryogi serangan downgrade). Upami anjeun émut skéma padding dina pedaran asli kami ngeunaan serangan Vaudenay, skéma SSLv3 sami pisan.

Tapi, hanjakalna pikeun maling, "sarupa" henteu hartosna "idéntik". Skéma padding SSLv3 nyaéta "N bait acak dituturkeun ku angka N". Coba, dina kaayaan ieu, pikeun milih blok imajinér tina ciphertext tur ngaliwatan sagala léngkah tina skéma aslina Vaudene urang: anjeun bakal manggihan yén serangan éta hasil extracts bait panungtungan ti blok pakait tina plaintext, tapi teu balik salajengna. Decrypting unggal bait 16 tina ciphertext mangrupakeun trik hébat, tapi teu meunangna.

Nyanghareupan kagagalan, tim Google nganggo jalan terakhir: aranjeunna ngalih ka modél ancaman anu langkung kuat - anu dianggo dina KRIME. Anggap panyerang mangrupikeun skrip anu dijalankeun dina tab browser korban sareng tiasa ngekstrak cookies sési, serangan éta masih pikaresepeun. Sanaos model ancaman anu langkung lega kirang realistis, urang ningali dina bagian sateuacana yén modél khusus ieu tiasa dilaksanakeun.

Kusabab kamampuan panyerang anu langkung kuat ieu, serangan ayeuna tiasa diteruskeun. Catet yén panyerang terang dimana cookie sési énkripsi muncul dina lulugu sareng ngatur panjang pamundut HTTP sateuacanna. Ku sabab éta, éta tiasa ngamanipulasi pamundut HTTP supados bait terakhir cookie saluyu sareng tungtung blok. Ayeuna bait ieu cocog pikeun dekripsi. Anjeun ngan saukur tiasa nambihan hiji karakter kana pamundut, sareng bait penultimate cookie bakal tetep di tempat anu sami sareng cocog pikeun pilihan nganggo metodeu anu sami. Serangan diteruskeun ku cara ieu dugi ka file cookie parantos disimpen deui. Disebut POODLE: Padding Oracle dina Enkripsi Warisan Diturunkeun.

LEBET

Serangan kriptografi: panjelasan pikeun pikiran bingungSalaku urang disebutkeun, SSLv3 miboga flaws na, tapi éta fundamentally béda ti miheulaan na, saprak SSLv2 leaky mangrupakeun produk ti jaman béda. Di dinya anjeun tiasa ngaganggu pesen di tengah: соглашусь на это только через мой труп robah jadi соглашусь на это; klien jeung server bisa papanggih online, ngadegkeun kapercayaan tur tukeur rusiah di hareup panyerang, anu lajeng bisa kalayan gampang niru duanana. Aya ogé masalah sareng kriptografi ékspor, anu kami sebutkeun nalika nganggap FREAK. Ieu cryptographic Sodom jeung Gomora.

Dina Maret 2016, tim peneliti ti widang téknis anu béda-béda ngumpul sareng mendakan anu ngareureuwas: SSLv2 masih dianggo dina sistem kaamanan. Leres, panyerang henteu tiasa deui ngarobih sési TLS modéren kana SSLv2 saprak liang éta ditutup saatos FREAK sareng PODLE, tapi aranjeunna masih tiasa nyambung ka server sareng ngamimitian sési SSLv2 nyalira.

Anjeun bisa nanya, naha urang paduli naon maranéhna ngalakukeun di dinya? Aranjeunna gaduh sési anu rentan, tapi éta henteu kedah mangaruhan sési sanés atanapi kaamanan server - leres? Muhun, teu cukup. Sumuhun, éta kumaha kuduna dina teori. Tapi henteu - sabab ngahasilkeun sertipikat SSL maksakeun beban anu tangtu, nyababkeun seueur server anu nganggo sertipikat anu sami sareng, salaku hasilna, konci RSA anu sami pikeun sambungan TLS sareng SSLv2. Anu langkung parah, kusabab kutu OpenSSL, pilihan "Pareuman SSLv2" dina palaksanaan SSL populér ieu henteu leres-leres jalan.

Hal ieu ngamungkinkeun serangan cross-protocol on TLS, disebutna LEBET (Ngadékripsi RSA nganggo énkripsi Usas sareng Lemah, ngadekrip RSA nganggo énkripsi luntur sareng lemah). Ngelingan yen ieu teu sarua jeung serangan pondok; panyerang henteu kedah janten "lalaki di tengah" sareng henteu kedah ngalibetkeun klien pikeun ilubiung dina sési anu teu aman. Panyerang ngan saukur ngamimitian sési SSLv2 anu teu aman sareng server sorangan, nyerang protokol anu lemah, sareng pulihkeun konci pribadi RSA server. Konci ieu sah pikeun sambungan TLS, sareng ti titik ieu, teu aya jumlah kaamanan TLS anu bakal nyegah éta dikompromi.

Tapi pikeun rengat éta, anjeun peryogi serangan anu tiasa dianggo ngalawan SSLv2, anu ngamungkinkeun anjeun pulih henteu ngan ukur lalu lintas khusus, tapi ogé konci server RSA rusiah. Sanaos ieu mangrupikeun setélan anu rumit, panaliti tiasa milih kerentanan anu ditutup saatos SSLv2. Aranjeunna pamustunganana mendakan pilihan anu cocog: serangan Bleichenbacher, anu kami sebutkeun tadi sareng anu bakal kami jelaskeun sacara rinci dina tulisan salajengna. SSL sareng TLS ditangtayungan tina serangan ieu, tapi sababaraha fitur acak SSL, digabungkeun sareng konci pondok dina kriptografi kelas ékspor, ngamungkinkeun. a palaksanaan husus DROWN.

Dina waktos publikasi, 25% tina situs luhur Internét kapangaruhan ku kerentanan DROWN, sareng serangan éta tiasa dilaksanakeun kalayan sumber daya sederhana anu sayogi pikeun peretas tunggal anu jahat. Meunangkeun konci RSA server merlukeun dalapan jam komputasi jeung $440, sarta SSLv2 indit ti leungit ka radioaktif.

Antosan, kumaha upami Heartbleed?

Ieu sanes serangan cryptographic dina rasa ditétélakeun di luhur; Ieu panyangga mudal.

Hayu urang istirahat

Urang mimitian ku sababaraha téhnik dasar: gaya kasar, interpolasi, downgrading, cross-protokol, sarta precomputation. Teras we ningal hiji téknik canggih, panginten komponén utama serangan kriptografi modéren: serangan oracle. Urang nyéépkeun sababaraha waktos pikeun ngémutan éta - sareng ngartos henteu ngan ukur prinsip dasarna, tapi ogé detil téknis tina dua palaksanaan khusus: serangan Vaudenay dina mode enkripsi CBC sareng serangan Kelsey dina protokol enkripsi pre-komprési.

Dina reviewing downgrade sarta serangan precomputation, urang sakeudeung outlined serangan FREAK, nu ngagunakeun duanana métode ku ngabogaan situs target downgrade kana konci lemah lajeng make deui kenop nu sami. Pikeun artikel salajengna, urang bakal nyimpen serangan Logjam (mirip pisan), anu nargétkeun algoritma konci umum.

Urang teras ningal tilu conto deui aplikasi prinsip-prinsip ieu. Kahiji, CRIME and PODLE: dua serangan anu ngandelkeun kamampuan panyerang pikeun nyuntik plaintext arbitrary gigireun plaintext target, teras pariksa réspon server sareng terus, ngagunakeun metodologi serangan oracle, mangpaatkeun informasi sparse ieu, sawaréh cageur plaintext. Kajahatan nuju jalur serangan Kelsey kana komprési SSL, sedengkeun POODLE gantina nganggo varian serangan Vaudenay dina CBC kalayan pangaruh anu sami.

Urang teras ngalihkeun perhatian ka serangan DROWN cross-protocol, anu ngawangun sambungan ka server nganggo protokol SSLv2 warisan teras pulihkeun konci rahasia server nganggo serangan Bleichenbacher. Kami parantos ngalangkungan rinci téknis ngeunaan serangan ieu ayeuna; sapertos Logjam, éta kedah ngantosan dugi ka urang gaduh pamahaman anu hadé ngeunaan cryptosystems konci umum sareng kerentananana.

Dina artikel salajengna urang bakal ngobrol ngeunaan serangan canggih kayaning papanggih-di-tengah, cryptanalysis diferensial sarta serangan ulang. Hayu urang nyandak foray gancang kana serangan sisi-kanal, lajeng ngaléngkah ka bagian senang: cryptosystems konci publik.

sumber: www.habr.com

Tambahkeun komentar