Serangan kriptografi: panjelasan kanggo pikiran sing bingung

Yen sampeyan krungu tembung "kriptografi," sawetara wong ngelingi sandhi WiFi, gembok ijo ing jejere alamat situs web favorit, lan sepira angel kanggo mlebu email wong liya. Liyane ngelingi sawetara kerentanan ing taun-taun pungkasan kanthi nyebutake singkatan (DROWN, FREAK, POODLE...), logo sing apik gayane lan peringatan supaya cepet nganyari browser sampeyan.

Kriptografi nyakup kabeh, nanging tegese ing liyane. Intine ana garis sing apik antarane prasaja lan kompleks. Sawetara iku gampang ditindakake, nanging angel dilebokake maneh, kayata mecah endhog. Liyane iku gampang ditindakake, nanging angel dibalekake nalika ana bagean cilik, penting, penting: contone, mbukak lawang sing dikunci nalika "bagean sing penting" dadi kunci. Kriptografi nyinaoni kahanan kasebut lan kepiye carane bisa digunakake ing praktik.

Ing taun-taun pungkasan, koleksi serangan kriptografi wis dadi zoo logo sing mencorong, diisi rumus saka makalah ilmiah, lan nyebabake perasaan surem umum yen kabeh wis rusak. Nanging nyatane, akeh serangan adhedhasar sawetara prinsip umum, lan kaca rumus sing ora ana watese asring digodhog dadi gagasan sing gampang dimangerteni.

Ing seri artikel iki, kita bakal nliti macem-macem jinis serangan kriptografi, kanthi penekanan ing prinsip dhasar. Ing istilah umum lan ora persis ing urutan iki, nanging kita bakal nutupi ing ngisor iki:

  • Strategi dhasar: brute force, analisis frekuensi, interpolasi, downgrading lan salib-protokol.
  • Kerentanan merek: FREAK, CRIME, PODLE, DROWN, Logjam.
  • Strategi Lanjut: serangan oracle (serangan Vodenet, serangan Kelsey); metode meet-in-the-middle, serangan ulang tahun, bias statistik (kriptanalisis diferensial, kriptanalisis integral, lsp).
  • Serangan saluran sisih lan sederek cedhak, teknik analisis kegagalan.
  • Serangan ing kriptografi kunci publik: ROOT kubus, siaran, pesen related, serangan Coppersmith, algoritma Pohlig-Hellman, sieve nomer, serangan Wiener, serangan Bleichenbacher.

Artikel khusus iki nyakup materi ing ndhuwur nganti serangan Kelsey.

Sastranegara dhasar

Serangan ing ngisor iki prasaja amarga bisa diterangake meh kabeh tanpa rincian teknis. Ayo diterangake saben jinis serangan kanthi istilah sing paling gampang, tanpa nganggo conto rumit utawa kasus panggunaan sing luwih maju.

Sawetara serangan iki umume dadi ora bisa digunakake lan ora digunakake nganti pirang-pirang taun. Liyane minangka wong tuwa sing isih kerep nyolong ing pangembang cryptosystem sing ora curiga ing abad kaping 21. Jaman kriptografi modern bisa dianggep wis diwiwiti kanthi tekane IBM DES, cipher pisanan sing bisa nahan kabeh serangan ing daftar iki.

Prasaja brute force

Serangan kriptografi: panjelasan kanggo pikiran sing bingungSkema enkripsi kasusun saka rong bagean: 1) fungsi enkripsi, sing njupuk pesen (plaintext) digabungake karo kunci, banjur nggawe pesen sing dienkripsi - ciphertext; 2) fungsi dekripsi sing njupuk ciphertext lan kunci lan ngasilake plaintext. Enkripsi lan dekripsi kudu gampang dietung nganggo kunci-lan angel dietung tanpa kunci kasebut.

Ayo kita nganggep kita ndeleng ciphertext lan nyoba kanggo dekripsi tanpa informasi tambahan (iki diarani serangan ciphertext mung). Yen kita nemokake kunci sing bener, kita bisa kanthi gampang verifikasi manawa pancen bener yen asil kasebut minangka pesen sing cukup.

Elinga yen ana rong asumsi implisit ing kene. Kaping pisanan, kita ngerti carane nindakake dekripsi, yaiku, cara kerja cryptosystem. Iki minangka asumsi standar nalika ngrembug babagan kriptografi. Ndhelikake rincian implementasi cipher saka panyerang bisa uga katon minangka langkah keamanan tambahan, nanging yen panyerang ngerteni rincian kasebut, keamanan tambahan iki bakal ilang kanthi tenang lan ora bisa dibatalake. mekaten Prinsip Kerchoffs: Sistem sing tiba ing tangan mungsuh kudu ora nyebabake rasa ora nyaman.

Kapindho, kita nganggep yen kunci sing bener mung siji-sijine kunci sing bakal nyebabake dekripsi sing cukup. Iki uga minangka asumsi sing cukup; wareg yen ciphertext luwih dawa tinimbang tombol lan bisa diwaca. Iki biasane kedadeyan ing jagad nyata, kajaba tombol ora praktis ageng utawa shenanigans liyane sing paling apik ditinggalake (Yen sampeyan ora seneng, kita wis ngliwati panjelasan, deleng Teorema 3.8 kene).

Diwenehi ing ndhuwur, ana strategi: mriksa saben kunci sing bisa ditindakake. Iki diarani brute force, lan serangan kasebut dijamin bisa nglawan kabeh cipher praktis - pungkasane. Contone, brute force cukup kanggo hack Caesar cipher, cipher kuna ngendi tombol iku siji aksara saka alfabet, implying mung liwat 20 tombol bisa.

Sayange kanggo cryptanalysts, nambah ukuran tombol minangka pertahanan apik marang pasukan kasar. Nalika ukuran tombol mundhak, jumlah tombol bisa mundhak kanthi eksponensial. Kanthi ukuran tombol modern, gaya kasar sing prasaja pancen ora praktis. Kanggo ngerti apa sing dimaksud, ayo goleki superkomputer sing paling cepet dikenal ing pertengahan 2019: Summit saka IBM, kanthi kinerja puncak kira-kira 1017 operasi per detik. Saiki, dawa tombol khas yaiku 128 bit, tegese 2128 kombinasi sing bisa ditindakake. Kanggo nggoleki kabeh tombol, superkomputer Summit mbutuhake wektu sing kira-kira 7800 kaping umur Semesta.

Apa brute force dianggep minangka penasaran sejarah? Ora kabeh: iku minangka bahan sing perlu ing buku masak kriptanalisis. Arang banget cipher sing lemah banget, mung bisa dirusak kanthi serangan sing cerdas, tanpa nggunakake kekuwatan nganti siji derajat. Akeh hacks sukses nggunakake cara algoritma kanggo weakened cipher target pisanan, lan banjur nindakake serangan brute force.

Analisis frekuensi

Serangan kriptografi: panjelasan kanggo pikiran sing bingungPaling teks ora gibberish. Contone, ing teks Inggris ana akeh huruf 'e' lan artikel 'the'; ing file binar, ana akeh bita nol minangka padding antarane bagéyan informasi. Analisis frekuensi yaiku serangan apa wae sing njupuk kauntungan saka kasunyatan iki.

Conto kanonik saka cipher sing rentan marang serangan iki yaiku cipher substitusi sing prasaja. Ing cipher iki, tombol minangka tabel kanthi kabeh huruf diganti. Contone, 'g' diganti karo 'h', 'o' karo j, dadi tembung 'go' dadi 'hj'. Cipher iki angel kanggo brute force amarga ana akeh tabel golek. Yen sampeyan kasengsem ing math, dawa tombol efektif bab 88 bit: iku
Serangan kriptografi: panjelasan kanggo pikiran sing bingung. Nanging analisis frekuensi biasane rampung kanthi cepet.

Coba ciphertext ing ngisor iki sing diproses nganggo cipher substitusi sing prasaja:

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

Wiwit Y asring kedadeyan, kalebu ing pungkasan akeh tembung, kita bisa nganggep manawa iki minangka layang. e:

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

Pasangan XD dibaleni ing wiwitan sawetara tembung. Utamane, kombinasi XDeLe kanthi jelas nuduhake tembung kasebut these utawa there, supaya kita nerusake:

PANGOCAP SAKA ALE UGLE ING BASA INGGRIS

Ayo kita luwih nganggep sing L соответствует r, A - a lan liya-liyane. Perlu sawetara nyoba, nanging dibandhingake karo serangan brute force, serangan iki bakal mulihake teks asli kanthi cepet:

ana luwih akeh perkara ing swarga lan bumi wektu tinimbang sing diimpiake ing filsafat sampeyan

Kanggo sawetara, ngrampungake "cryptograms" kuwi minangka hobi sing nyenengake.

Gagasan analisis frekuensi luwih dhasar tinimbang sing katon sepisanan. Lan ditrapake kanggo cipher sing luwih rumit. Saindhenging sajarah, macem-macem desain cipher wis nyoba kanggo nglawan serangan kasebut nggunakake "substitusi polyalphabetic". Ing kene, sajrone proses enkripsi, tabel substitusi huruf diowahi kanthi cara sing rumit nanging bisa diprediksi gumantung saka kunci kasebut. Kabeh cipher iki dianggep angel kanggo break ing siji wektu; nanging analisis frekuensi andhap asor pungkasanipun ngalahake kabeh.

Cipher polyalphabetic paling ambisius ing sajarah, lan mbokmenawa paling misuwur, yaiku sandi Enigma Perang Donya II. Iki relatif rumit dibandhingake karo sing sadurunge, nanging sawise kerja keras, para cryptanalyst Inggris ngrusak kanthi nggunakake analisis frekuensi. Mesthine, dheweke ora bisa ngembangake serangan sing elegan kaya sing ditampilake ing ndhuwur; padha kudu mbandhingaké pasangan dikenal saka plaintext lan ciphertext (sing disebut "serangan plaintext"), malah provoking pangguna Enigma kanggo encrypt pesen tartamtu lan nganalisa asil ("serangan plaintext dipilih"). Nanging iki ora nggawe nasib tentara mungsuh sing dikalahake lan kapal selam dicemplungake luwih gampang.

Sawise kamenangan iki, analisis frekuensi ilang saka sejarah kriptanalisis. Cipher ing jaman digital modern dirancang kanggo nggarap bit, dudu huruf. Sing luwih penting, cipher iki dirancang kanthi pangerten sing peteng babagan apa sing banjur dikenal hukum Schneier: Sapa wae bisa nggawe algoritma enkripsi sing ora bisa dirusak. Iku ora cukup kanggo sistem enkripsi ketoke angel: kanggo mbuktekaken worth, iku kudu ngalami review keamanan merciless dening akeh cryptanalysts sing bakal nindakake sing paling apik kanggo kokain cipher.

Petungan awal

Serangan kriptografi: panjelasan kanggo pikiran sing bingungNjupuk kutha hipotetis Precom Heights, populasi 200. Saben omah ing kutha kasebut ngemot barang-barang berharga rata-rata $ 000, nanging ora luwih saka $ 30. Pasar keamanan ing Precom dimonopoli dening ACME Industries, sing ngasilake kunci lawang kelas Coyote™ sing legendaris. Miturut analisis pakar, kunci kelas Coyote mung bisa dirusak dening mesin hipotetis sing rumit banget, nggawe sing mbutuhake limang taun lan investasi $ 000. Apa kutha aman?

Paling kamungkinan ora. Pungkasane, penjahat sing cukup ambisius bakal katon. Dheweke bakal nanggapi kaya mangkene: "Ya, aku bakal mbayar biaya sing gedhe. Lima taun sabar ngenteni, lan $ 50. Nanging yen aku wis rampung, aku bakal duwe akses menyang kabeh kasugihan kutha iki. Yen aku main kertu kanthi bener, investasi iki bakal mbayar kaping pirang-pirang.

Semono uga ing kriptografi. Serangan marang cipher tartamtu tundhuk analisis biaya-manfaat kejam. Yen rasio sarujuk, serangan ora bakal kelakon. Nanging serangan sing makarya marang akeh korban potensial bebarengan meh tansah mbayar mati, kang paling laku desain kanggo nganggep padha miwiti saka dina. Kita duwe versi kriptografi saka Hukum Murphy: "Apa wae sing bisa ngrusak sistem bakal ngrusak sistem kasebut."

Conto paling gampang saka sistem kripto sing rentan marang serangan precomputation yaiku cipher tanpa kunci konstan. Iki ana kasus karo cipher Caesar, sing mung nggeser saben huruf alfabet telung huruf maju (tabel diubengi, supaya huruf pungkasan ing alfabet dienkripsi katelu). Ing kene maneh prinsip Kerchhoffs main: yen sistem disusupi, disusupi ing salawas-lawase.

Konsep punika prasaja. Malah pangembang cryptosystem sing anyar bakal ngerteni ancaman kasebut lan nyiapake. Nggoleki evolusi kriptografi, serangan kasebut ora cocog kanggo umume cipher, saka versi pertama cipher Caesar sing luwih apik nganti cipher polialfabetik. Serangan kasebut mung bali kanthi tekane jaman kriptografi modern.

Iki bali amarga rong faktor. Kaping pisanan, kriptosistem sing cukup rumit pungkasane muncul, ing endi kemungkinan eksploitasi sawise peretasan ora jelas. Kapindho, kriptografi dadi nyebar nganti mayuta-yuta wong awam nggawe keputusan saben dina babagan ngendi lan bagean kriptografi apa sing bakal digunakake maneh. Butuh sawetara wektu sadurunge ahli nyadari risiko lan ngangkat weker.

Elingi serangan precomputation: ing pungkasan artikel kita bakal ndeleng rong conto kriptografi nyata sing nduwe peran penting.

Interpolasi

Iki detektif misuwur Sherlock Holmes, nindakake serangan interpolasi marang Dr. Watson sing malang:

Aku langsung ngira yen sampeyan teka saka Afganistan ... Sepur pikiranku kaya ing ngisor iki: "Wong iki minangka dokter miturut jinis, nanging dheweke duwe militer. Dadi, dhokter militer. Dheweke nembe teka saka wilayah tropis - pasuryane peteng, nanging iki dudu warna alami kulit, amarga bangkekane luwih putih. Pasuryane kuciwa - temenan, dheweke wis nandhang sangsara lan nandhang lara. Dheweke tatu ing tangan kiwa - dheweke nyekel tangane ora obah lan rada ora wajar. Ing ngendi ing wilayah tropis bisa dadi dokter militer Inggris nandhang kasusahan lan tatu? Mesthi, ing Afghanistan." Sepur pikire ora butuh sedetik wae. Dadi aku ngomong yen sampeyan teka saka Afghanistan, lan sampeyan kaget.

Holmes bisa njupuk informasi sethithik banget saka saben bukti kanthi individu. Dheweke mung bisa nggayuh kesimpulan kanthi nimbang kabeh. Serangan interpolasi kerjane padha kanthi mriksa pasangan teks kosong lan ciphertext sing dikawruhi saka kunci sing padha. Saka saben pasangan, pengamatan individu diekstrak sing ngidini kesimpulan umum babagan kunci sing bakal ditarik. Kabeh kesimpulan iki samar-samar lan katon ora ana gunane nganti tiba-tiba tekan massa kritis lan nyebabake mung kesimpulan sing bisa ditindakake: ora ketompo carane luar biasa, mesthine bener. Sawise iki, salah siji tombol dicethakaké, utawa proses dekripsi dadi olahan sing bisa replikasi.

Ayo digambarake kanthi conto prasaja carane interpolasi bisa digunakake. Ayo ngomong kita pengin maca buku harian pribadi mungsuh kita, Bob. Dheweke ngenkripsi saben nomer ing buku harian nggunakake cryptosystem prasaja sing dheweke sinau saka iklan ing majalah "A Mock of Cryptography." Sistem kerjane kaya iki: Bob milih rong nomer sing disenengi: Serangan kriptografi: panjelasan kanggo pikiran sing bingung и Serangan kriptografi: panjelasan kanggo pikiran sing bingung. Wiwit saiki, kanggo encrypt sembarang nomer Serangan kriptografi: panjelasan kanggo pikiran sing bingung, iku ngitung Serangan kriptografi: panjelasan kanggo pikiran sing bingung. Contone, yen Bob milih Serangan kriptografi: panjelasan kanggo pikiran sing bingung и Serangan kriptografi: panjelasan kanggo pikiran sing bingung, banjur nomer Serangan kriptografi: panjelasan kanggo pikiran sing bingung bakal ndhelik minangka Serangan kriptografi: panjelasan kanggo pikiran sing bingung.

Contone, ing tanggal 28 Desember, kita weruh yen Bob lagi ngeruk ing buku hariane. Yen wis rampung, kita bakal njupuk kanthi tenang lan nonton entri pungkasan:

Tanggal: 235/520

Dear Diary,

Dina iki dina sing apik. Liwat 64 dina iki aku duwe tanggal karo Alisa, sing manggon ing apartemen 843. Aku pancene mikir dheweke bisa uga 26!

Amarga kita serius banget ngetutake Bob ing tanggale (umur kita 15 taun ing skenario iki), penting kanggo ngerti tanggal lan alamat Alice. Untunge, kita sok dong mirsani manawa sistem crypto Bob rentan marang serangan interpolasi. Kita bisa uga ora ngerti Serangan kriptografi: panjelasan kanggo pikiran sing bingung и Serangan kriptografi: panjelasan kanggo pikiran sing bingung, nanging kita ngerti tanggal saiki, mula kita duwe rong pasangan plaintext-ciphertext. Yaiku, kita ngerti Serangan kriptografi: panjelasan kanggo pikiran sing bingung ndhelik ing Serangan kriptografi: panjelasan kanggo pikiran sing bingunglan Serangan kriptografi: panjelasan kanggo pikiran sing bingung - ing Serangan kriptografi: panjelasan kanggo pikiran sing bingung. Iki sing bakal kita tulis:

Serangan kriptografi: panjelasan kanggo pikiran sing bingung

Serangan kriptografi: panjelasan kanggo pikiran sing bingung

Wiwit umur 15 taun, kita wis ngerti babagan sistem rong persamaan karo rong sing ora dingerteni, sing ing kahanan iki cukup kanggo nemokake. Serangan kriptografi: panjelasan kanggo pikiran sing bingung и Serangan kriptografi: panjelasan kanggo pikiran sing bingung tanpa masalah. Saben pasangan plaintext-ciphertext nempatake kendala ing tombol Bob, lan loro alangan bebarengan cukup kanggo mbalekake tombol rampung. Ing conto kita jawabane Serangan kriptografi: panjelasan kanggo pikiran sing bingung и Serangan kriptografi: panjelasan kanggo pikiran sing bingung (ing Serangan kriptografi: panjelasan kanggo pikiran sing bingung Serangan kriptografi: panjelasan kanggo pikiran sing bingung, dadi 26 ing buku harian cocog karo tembung 'siji', yaiku, "sing padha" - kira-kira. jalur).

Serangan interpolasi, mesthi, ora diwatesi karo conto sing prasaja. Saben kriptosistem sing nyuda obyek matematika sing dimangerteni kanthi apik lan dhaptar paramèter ana ing risiko serangan interpolasi-sing luwih bisa dingerteni obyek kasebut, luwih dhuwur risiko.

Wong anyar kerep sambat yen kriptografi minangka "seni ngrancang samubarang sing paling ala." Serangan interpolasi bisa uga disalahake. Bob bisa nggunakake desain matématika sing elegan utawa tetep tanggal karo Alice pribadi - nanging sayangé, sampeyan biasane ora bisa duwe loro cara. Iki bakal dadi jelas banget nalika kita entuk topik kriptografi kunci umum.

Protokol lintas / downgrade

Serangan kriptografi: panjelasan kanggo pikiran sing bingungIng Now You See Me (2013), klompok ilusionis nyoba ngapusi raja asuransi korup Arthur Tressler saka kabeh rejeki. Kanggo entuk akses menyang akun bank Arthur, para ilusi kudu menehi jeneng pangguna lan sandhi utawa meksa dheweke katon ing bank lan melu skema kasebut.

Loro-lorone opsi angel banget; Wong lanang wis biasa tampil ing panggung, lan ora melu operasi intelijen. Dadi, dheweke milih pilihan katelu: accomplice dheweke nelpon bank lan nyamar dadi Arthur. Bank takon sawetara pitakonan kanggo verifikasi identitas, kayata jeneng pamane lan jeneng pet pisanan; pahlawan kita ing advance padha gampang extract informasi iki saka Arthur nggunakake teknik sosial pinter. Wiwit saiki, keamanan tembung sandhi sing apik ora penting maneh.

(Miturut legenda kutha sing wis diverifikasi lan diverifikasi kanthi pribadi, ahli kriptografi Eli Beaham nate nemoni teller bank sing meksa nggawe pitakonan keamanan. Nalika teller takon jeneng mbah ibune, Beaham wiwit ndhikte: "Modal X, cilik y, telu...").

Iku padha ing kriptografi, yen loro protokol cryptographic digunakake ing podo karo kanggo nglindhungi aset padha, lan siji luwih ringkih saka liyane. Sistem sing diasilake dadi rentan kanggo serangan lintas protokol, ing ngendi protokol sing luwih lemah diserang supaya bisa entuk hadiah tanpa ndemek sing luwih kuwat.

Ing sawetara kasus rumit, ora cukup mung ngubungi server kanthi nggunakake protokol sing luwih lemah, nanging mbutuhake partisipasi klien sing ora sah. Iki bisa diatur nggunakake serangan downgrade sing disebut. Kanggo mangerteni serangan iki, ayo nganggep yen ilusionis kita duwe tugas sing luwih angel tinimbang ing film kasebut. Ayo nganggep manawa karyawan bank (kasir) lan Arthur nemoni sawetara kahanan sing ora dikarepake, nyebabake dialog ing ngisor iki:

maling: Halo? Iki Arthur Tressler. Aku pengin ngreset sandi.

Kasir: Agung. Mangga deleng buku kode rahasia pribadi sampeyan, kaca 28, tembung 3. Kabeh pesen ing ngisor iki bakal dienkripsi nggunakake tembung khusus iki minangka kunci. PQJGH. LOTJNAM PGGY MXVRL ZZLQ SRIU HHNMLPPPV…

maling: Hei, he, ngenteni, ngenteni. Apa iki pancen perlu? Apa kita ora bisa ngomong kaya wong normal?

Kasir: Aku ora nyaranake nindakake iki.

maling: Aku mung ... delok, aku wis dina ala, oke? Aku klien VIP lan aku ora ana ing swasana ati kanggo dig liwat buku kode bodho iki.

Kasir: nggih. Yen sampeyan ngeyel, Pak Tressler. Apa sing dikarepake?

maling: Mangga, aku pengin nyumbang kabeh dhuwit kanggo Dana Korban Nasional Arthur Tressler.

(Ngaso).

Kasir: Apa saiki wis cetha. Mangga wenehi PIN kanggo transaksi gedhe.

maling: Kula apa?

Kasir: Ing panjalukan pribadi, transaksi ukuran iki mbutuhake PIN kanggo transaksi gedhe. Kode iki diwenehake nalika sampeyan mbukak akun.

maling:... Aku ilang. Apa iki pancen perlu? Apa sampeyan ora bisa nyetujoni kesepakatan kasebut?

Kasir: Ora. Nuwun sewu, Pak Tressler. Maneh, iki minangka langkah keamanan sing dijaluk. Yen sampeyan pengin, kita bisa ngirim kode PIN anyar menyang kothak layang.

Pahlawan kita nundha operasi kasebut. Padha eavesdrop ing sawetara transaksi gedhe Tressler kang, wus kanggo krungu PIN; nanging saben-saben obrolan dadi kodhe gibberish sadurunge ana sing menarik. Pungkasan, ing sawijining dina, rencana kasebut ditindakake. Dheweke ngenteni kanthi sabar nalika Tressler kudu nggawe transaksi gedhe liwat telpon, dheweke mlebu, banjur ...

Tressler: Halo. Aku pengin ngrampungake transaksi remot, mangga.

Kasir: Agung. Mangga deleng buku kode rahasia pribadi sampeyan, kaca ...

(Maling menet tombol, swarane kasir dadi rame sing ora dingerteni).

Kasir: - #@$#@$#*@$$@#* bakal dienkripsi nganggo tembung iki minangka kunci. AAAYRR PLRQRZ MMNJK LOJBAN…

Tressler: Nuwun sewu, kula mboten ngertos. maneh? Ing kaca apa? Tembung apa?

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

Tressler: Apa?

Kasir: Tembung nomer rong puluh @$#@$#%#$.

Tressler: Serius! Cukup wis! Sampeyan lan protokol keamanan minangka jinis sirkus. Aku ngerti sampeyan mung bisa ngomong karo aku biasane.

Kasir: Aku ora nyaranake…

Tressler: Lan aku ora menehi saran supaya sampeyan mbuwang wektu. Aku ora pengin krungu liyane babagan iki nganti sampeyan ndandani masalah karo saluran telpon. Apa kita bisa ngrampungake kesepakatan iki utawa ora?

Kasir:… Ya. nggih. Apa sing dikarepake?

Tressler: Aku pengin nransfer $20 menyang Lord Business Investments, nomer akun...

Kasir: Siji menit, mangga. Iku masalah gedhe. Mangga wenehi PIN kanggo transaksi gedhe.

Tressler: opo? Oh, persis. 1234.

Punika serangan mudhun. Protokol sing luwih lemah "mung ngomong langsung" dibayangake minangka pilihan ing kasus darurat. Lan durung kene kita.

Sampeyan bisa uga kepengin weruh sapa sing bener bakal ngrancang sistem "aman nganti ditakoni" kaya sing kasebut ing ndhuwur. Nanging kaya bank fiksi njupuk risiko kanggo nahan pelanggan sing ora seneng karo kriptografi, sistem umume asring nyedhaki syarat sing ora peduli utawa malah musuhan kanggo keamanan.

Iki persis kedadeyan karo protokol SSLv2 ing taun 1995. Pamrentah AS wis suwe wiwit ndeleng kriptografi minangka senjata sing paling apik dijauhake saka mungsuh asing lan domestik. Potongan kode disetujoni kanthi individu kanggo ekspor saka Amerika Serikat, asring kanthi syarat algoritma kasebut sengaja diremehake. Netscape, pangembang browser paling populer, Netscape Navigator, diwenehi idin kanggo SSLv2 mung kanthi kunci RSA 512-bit sing rentan (lan 40-bit kanggo RC4).

Ing pungkasan milenium, aturan wis santai lan akses menyang enkripsi modern kasedhiya. Nanging, klien lan server wis ndhukung kriptografi "ekspor" sing lemah sajrone pirang-pirang taun amarga inersia sing padha sing njaga dhukungan kanggo sistem warisan apa wae. Klien percaya yen bisa nemoni server sing ora ndhukung apa-apa. Server uga padha. Mesthi, protokol SSL ndhikte manawa klien lan server ora tau nggunakake protokol sing lemah nalika ana sing luwih apik. Nanging premis sing padha ditrapake kanggo Tressler lan bank.

Teori iki ditemokake ing rong serangan profil dhuwur sing nggegirisi keamanan protokol SSL ing 2015, sing ditemokake dening peneliti Microsoft lan INRIA. Kaping pisanan, rincian serangan FREAK dicethakaké ing Februari, banjur telung sasi mengko dening serangan liyane padha disebut Logjam, kang bakal kita rembugan luwih rinci nalika kita nerusake kanggo serangan ing kriptografi tombol umum.

Serangan kriptografi: panjelasan kanggo pikiran sing bingungKerentanan PECAH (uga dikenal minangka "Smack TLS") katon nalika peneliti nganalisa implementasi klien/server TLS lan nemokake bug sing aneh. Ing implementasine kasebut, yen klien ora malah njaluk nggunakake kriptografi ekspor sing lemah, nanging server isih nanggapi karo tombol kasebut, klien ujar "Oh uga" lan ngalih menyang suite cipher sing lemah.

Ing wektu iku, kriptografi ekspor dianggep wis ketinggalan jaman lan ora ana watesan, mula serangan kasebut kaget banget lan kena pengaruh akeh domain penting, kalebu situs Gedung Putih, IRS, lan NSA. Malah luwih elek, ternyata akeh server sing rawan ngoptimalake kinerja kanthi nggunakake maneh tombol sing padha tinimbang ngasilake sing anyar kanggo saben sesi. Iki ndadekake iku bisa, sawise downgrade protokol, kanggo nindakake serangan pra-komputasi: cracking siji tombol tetep relatif larang ($100 lan 12 jam ing wektu publikasi), nanging biaya praktis kanggo nyerang sambungan wis suda. Iku cukup kanggo milih tombol server sapisan lan kokain enkripsi kanggo kabeh sambungan sakteruse saka wayahe.

Lan sadurunge nerusake, ana siji serangan maju sing kudu disebutake ...

Serangan Oracle

Serangan kriptografi: panjelasan kanggo pikiran sing bingungMoxie Marlinspike paling dikenal minangka bapak saka aplikasi olahpesen crypto cross-platform Signal; nanging kita pribadi seneng karo salah sawijining inovasi sing kurang dikenal - prinsip siksa kriptografi (Prinsip Doom Kriptografi). Kanggo paraphrase rada, kita bisa ngomong iki: "Yen protokol nindakake sembarang nindakake operasi kriptografi ing pesen saka sumber sing duweni potensi ala lan tumindak beda-beda gumantung saka asile, mesthi bakal ditakdirake." Utawa ing wangun sing luwih cetha: "Aja njupuk informasi saka mungsuh kanggo diproses, lan yen sampeyan kudu, paling ora nuduhake asil."

Ayo ninggalake buffer overflows, injeksi printah, lan liya-liyane; lagi ngluwihi orane katrangan saka diskusi iki. Pelanggaran "prinsip kiamat" nyebabake hacks kriptografi sing serius amarga kasunyatane protokol kasebut tumindak kaya sing dikarepake.

Minangka conto, ayo njupuk desain fiktif kanthi cipher substitusi sing rawan, banjur nduduhake serangan sing bisa ditindakake. Nalika kita wis ndeleng serangan ing cipher substitusi nggunakake analisis frekuensi, iku ora mung "cara liya kanggo break cipher padha." Kosok baline, serangan oracle minangka penemuan sing luwih modern, ditrapake kanggo akeh kahanan nalika analisis frekuensi gagal, lan kita bakal weruh demonstrasi babagan iki ing bagean sabanjure. Ing kene cipher prasaja dipilih mung kanggo nggawe conto luwih cetha.

Dadi Alice lan Bob komunikasi nggunakake cipher substitusi prasaja nggunakake tombol mung dikenal kanggo wong-wong mau. Padha banget ketat babagan dawa pesen: padha persis 20 karakter. Dadi dheweke setuju yen ana wong sing pengin ngirim pesen sing luwih cendhek, dheweke kudu nambah sawetara teks goblok ing pungkasan pesen kasebut supaya dadi persis 20 karakter. Sawise sawetara diskusi, dheweke mutusake yen dheweke mung bakal nampa teks goblok ing ngisor iki: a, bb, ccc, dddd etc. Mangkono, teks goblok saka sembarang dawa dibutuhake dikenal.

Nalika Alice utawa Bob nampa pesen, dheweke pisanan mriksa manawa pesen kasebut dawane bener (20 karakter) lan sufiks kasebut minangka teks palsu sing bener. Yen ora, dheweke nanggapi kanthi pesen kesalahan sing cocog. Yen dawa teks lan teks goblok ok, panampa maca pesen dhewe lan ngirim respon ndhelik.

Sajrone serangan kasebut, panyerang nyamar dadi Bob lan ngirim pesen palsu menyang Alice. Pesen kasebut ora ana gunane - panyerang ora duwe kunci, mula ora bisa nggawe pesen sing migunani. Nanging amarga protokol kasebut nglanggar prinsip siksa, panyerang isih bisa njebak Alice supaya bisa mbukak informasi kunci, kaya sing ditampilake ing ngisor iki.

maling: PREWF ZHJKL MMMN. LA

Alice: Teks goblok ora valid.

maling: PREWF ZHJKL MMMN. LB

Alice: Teks goblok ora valid.

maling: PREWF ZHJKL MMMN. LC

Alice: ILCT? TLCT RUWO PUT KCAW CPS OWPOW!

Maling wis ora idea apa Alice mung ngandika, nanging cathetan sing simbol C kudu cocog a, wiwit Alice nampa teks goblok.

maling: REWF ZHJKL MMMN. LAA

Alice: Teks goblok ora valid.

maling: REWF ZHJKL MMMN. LBB

Alice: Teks goblok ora valid.

Sawise sawetara upaya ...

maling: REWF ZHJKL MMMN. LGG

Alice: Teks goblok ora valid.

maling: REWF ZHJKL MMMN. LHH

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

Maneh, panyerang wis ora idea apa Alice mung ngandika, nanging cathetan sing H kudu cocog b wiwit Alice ditampa teks goblok.

Lan sateruse nganti penyerang ngerti makna saben karakter.

Sepisanan, cara kasebut meh padha karo serangan plainteks sing dipilih. Pungkasane, panyerang milih ciphertexts, lan server manut proses kasebut. Bentenane utama sing ndadekake serangan kasebut bisa ditindakake ing jagad nyata yaiku panyerang ora mbutuhake akses menyang transkrip sing nyata-respon server, sanajan ora mbebayani kaya "Teks dummy sing ora sah," wis cukup.

Nalika serangan tartamtu iki instruktif, aja lali babagan spesifik skema "teks goblok", sistem crypto khusus sing digunakake, utawa urutan pesen sing dikirim dening panyerang. Ide dhasar yaiku kepiye reaksi Alice kanthi beda adhedhasar sifat plaintext, lan nindakake tanpa verifikasi manawa ciphertext sing cocog kasebut asale saka pihak sing dipercaya. Mangkono, Alice ngidini panyerang ngetokake informasi rahasia saka jawaban dheweke.

Ana akeh sing bisa diganti ing skenario iki. Simbol sing ditanggepi Alice, utawa prabédan banget ing prilaku, utawa malah cryptosystem digunakake. Nanging prinsip bakal tetep padha, lan serangan sakabèhé bakal tetep sregep ing siji wangun utawa liyane. Implementasi dhasar saka serangan iki mbantu nemokake sawetara kewan omo keamanan, sing bakal kita deleng sakcepete; nanging pisanan ana sawetara piwulang teoritis kanggo sinau. Carane nggunakake iki fiktif "Alice script" ing serangan sing bisa digunakake ing cipher modern nyata? Apa iki bisa, sanajan ing teori?

Ing taun 1998, kriptografi Swiss Daniel Bleichenbacher mangsuli pitakonan iki kanthi afirmatif. Dheweke nduduhake serangan oracle ing RSA cryptosystem kunci publik sing akeh digunakake, nggunakake skema pesen tartamtu. Ing sawetara implementasi RSA, server nanggapi kanthi pesen kesalahan sing beda-beda gumantung apa plaintext cocog karo skema utawa ora; iki cukup kanggo nindakake serangan.

Sekawan taun salajengipun, ing taun 2002, kriptografi Perancis Serge Vaudenay nduduhake serangan oracle sing meh padha karo sing diterangake ing skenario Alice ing ndhuwur - kajaba cipher fiktif, dheweke ngrusak kabeh cipher modern sing dihormati sing digunakake wong. Utamane, serangan Vaudenay nargetake cipher ukuran input tetep ("block ciphers") nalika digunakake ing "mode enkripsi CBC" lan kanthi skema bantalan populer tartamtu, sing padha karo skenario Alice.

Uga ing 2002, kriptografi Amerika John Kelsey - co-penulis Rongwelas - ngusulake macem-macem serangan oracle ing sistem sing ngompres pesen banjur enkripsi. Sing paling misuwur ing antarane yaiku serangan sing njupuk kauntungan saka kasunyatan manawa asring bisa nyimpulake dawa asli plaintext saka dawa ciphertext. Ing teori, iki ngidini serangan oracle sing mbalekake bagean saka plainteks asli.

Ing ngisor iki kita menehi katrangan sing luwih rinci babagan serangan Vaudenay lan Kelsey (kita bakal menehi katrangan sing luwih rinci babagan serangan Bleichenbacher nalika kita pindhah menyang serangan kriptografi kunci umum). Senadyan upaya paling apik, teks dadi rada teknis; Dadi yen ing ndhuwur cukup kanggo sampeyan, skip rong bagean sabanjure.

serangan Vodene kang

Kanggo mangerteni serangan Vaudenay, kita kudu ngomong luwih dhisik babagan cipher blok lan mode enkripsi. A "block cipher" punika, minangka kasebut, cipher sing njupuk kunci lan input saka dawa tetep tartamtu ("dawa pamblokiran") lan mrodhuksi pemblokiran ndhelik dawa padha. Blok cipher digunakake akeh lan dianggep relatif aman. DES sing saiki wis pensiun, dianggep cipher modern pisanan, minangka cipher blok. Kaya sing kasebut ing ndhuwur, padha uga kanggo AES, sing digunakake saiki.

Sayange, blok cipher duwe siji kelemahane. Ukuran blok sing khas yaiku 128 bit, utawa 16 karakter. Temenan, kriptografi modern mbutuhake data input sing luwih gedhe, lan ing kene ana mode enkripsi. Mode enkripsi sejatine minangka hack: minangka cara kanggo ngetrapake cipher blok sing mung nampa input ukuran tartamtu kanggo input kanthi dawa sewenang-wenang.

Serangan Vodene fokus ing mode operasi CBC (Cipher Block Chaining) sing populer. Serangan kasebut nganggep cipher blok sing ndasari minangka kothak ireng sing magis lan ora bisa ditembus lan nglewati keamanane.

Mangkene diagram sing nuduhake cara kerja mode CBC:

Serangan kriptografi: panjelasan kanggo pikiran sing bingung

Serangan kriptografi: panjelasan kanggo pikiran sing bingung

Tanda tambah sing dibunderake nuduhake operasi XOR (eksklusif UTAWA). Contone, blok kapindho ciphertext ditampa:

  1. Kanthi nindakake operasi XOR ing blok plainteks kapindho kanthi blok ciphertext pisanan.
  2. Enkripsi blok sing diasilake nganggo cipher blok nggunakake kunci.

Wiwit CBC akeh banget nggunakake operasi XOR biner, ayo ngelingi sawetara sifate:

  • Idempotensi: Serangan kriptografi: panjelasan kanggo pikiran sing bingung
  • Komutatif: Serangan kriptografi: panjelasan kanggo pikiran sing bingung
  • Asosiasi: Serangan kriptografi: panjelasan kanggo pikiran sing bingung
  • Self-reversibility: Serangan kriptografi: panjelasan kanggo pikiran sing bingung
  • Ukuran byte: byte n saka Serangan kriptografi: panjelasan kanggo pikiran sing bingung = (byte n saka Serangan kriptografi: panjelasan kanggo pikiran sing bingung) Serangan kriptografi: panjelasan kanggo pikiran sing bingung (byte n saka Serangan kriptografi: panjelasan kanggo pikiran sing bingung)

Biasane, sifat kasebut nuduhake yen kita duwe persamaan sing nglibatake operasi XOR lan siji sing ora dingerteni, bisa ditanggulangi. Contone, yen kita ngerti Serangan kriptografi: panjelasan kanggo pikiran sing bingung karo sing ora dingerteni Serangan kriptografi: panjelasan kanggo pikiran sing bingung lan misuwur Serangan kriptografi: panjelasan kanggo pikiran sing bingung и Serangan kriptografi: panjelasan kanggo pikiran sing bingung, banjur kita bisa ngandelake sifat-sifat kasebut ing ndhuwur kanggo ngrampungake persamaan Serangan kriptografi: panjelasan kanggo pikiran sing bingung. Kanthi nglamar XOR ing loro-lorone saka persamaan karo Serangan kriptografi: panjelasan kanggo pikiran sing bingung, kita entuk Serangan kriptografi: panjelasan kanggo pikiran sing bingung. Iki kabeh bakal dadi relevan banget ing wayahe.

Ana rong prabédan cilik lan siji prabédan utama antarane skenario Alice lan serangan Vaudenay. Loro cilik:

  • Ing naskah kasebut, Alice ngarepake plainteks rampung karo karakter a, bb, ccc lan liya-liyane. Ing serangan Wodene, korban malah ngarepake plaintexts kanggo mungkasi kaping N karo bait N (yaiku, heksadesimal 01 utawa 02 02, utawa 03 03 03, lan sateruse). Iki sejatine bedane kosmetik.
  • Ing skenario Alice, gampang dingerteni manawa Alice wis nampa pesen kasebut kanthi nanggepi "Teks dummy sing salah." Ing serangan Vodene, analisis luwih dibutuhake lan implementasine sing tepat ing sisih korban penting; nanging kanggo ringkesan, ayo padha njupuk minangka diwenehi yen analisis iki isih bisa.

Bedane utama:

  • Amarga kita ora nggunakake sistem crypto sing padha, hubungan antarane bait ciphertext sing dikontrol panyerang lan rahasia (kunci lan plainteks) mesthi bakal beda. Mula, panyerang kudu nggunakake strategi sing beda nalika nggawe ciphertext lan interpretasi respon server.

Bentenane utama iki minangka potongan pungkasan saka teka-teki kanggo ngerti serangan Vaudenay, mula ayo mikir babagan kenapa lan kepiye serangan oracle ing CBC bisa dipasang ing wiwitan.

Upaminipun kita diwenehi ciphertext CBC saka 247 pamblokiran, lan kita arep kanggo dekripsi. Kita bisa ngirim pesen palsu menyang server, kaya kita bisa ngirim pesen palsu menyang Alice sadurunge. Server bakal dekripsi pesen kanggo kita, nanging ora bakal nuduhake dekripsi - tinimbang, maneh, kaya Alice, server mung bakal nglaporake informasi: apa plaintext duwe bantalan sing bener utawa ora.

Coba yen ing skenario Alice kita duwe hubungan ing ngisor iki:

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

Ayo diarani "persamaan Alice." Kita ngontrol ciphertext; server (Alice) bocor informasi samar babagan plainteks sing ditampa; lan iki ngidini kita nyimpulake informasi babagan faktor pungkasan - kunci. Kanthi analogi, yen kita bisa nemokake sambungan kasebut kanggo skrip CBC, kita uga bisa ngekstrak sawetara informasi rahasia ing kana.

Untunge, ana hubungan sing bisa digunakake. Coba output saka panggilan final kanggo decrypt cipher pemblokiran lan ndudohke output iki minangka Serangan kriptografi: panjelasan kanggo pikiran sing bingung. Kita uga nuduhake blok plainteks Serangan kriptografi: panjelasan kanggo pikiran sing bingung lan blok ciphertext Serangan kriptografi: panjelasan kanggo pikiran sing bingung. Deleng maneh diagram CBC lan deleng apa sing kedadeyan:

Serangan kriptografi: panjelasan kanggo pikiran sing bingung

Ayo diarani "persamaan CBC."

Ing skenario Alice, kanthi ngawasi ciphertext lan nonton plaintext bocor sing cocog, kita bisa nggawe serangan sing mbalekake istilah katelu ing persamaan - kunci. Ing skenario CBC, kita uga ngawasi ciphertext lan mirsani bocor informasi ing plaintext sing cocog. Yen ana analogi, kita bisa entuk informasi babagan Serangan kriptografi: panjelasan kanggo pikiran sing bingung.

Ayo nganggep kita pancene dibalèkaké Serangan kriptografi: panjelasan kanggo pikiran sing bingung, banjur apa? Inggih, banjur kita bisa nyithak kabeh blok pungkasan plaintext bebarengan (Serangan kriptografi: panjelasan kanggo pikiran sing bingung), mung kanthi ngetik Serangan kriptografi: panjelasan kanggo pikiran sing bingung (kang kita duwe) lan
ditampa Serangan kriptografi: panjelasan kanggo pikiran sing bingung menyang persamaan CBC.

Saiki kita optimis babagan rencana serangan sakabèhé, wektune kanggo ngrampungake rincian kasebut. Mangga digatekake persis carane informasi plaintext bocor ing server. Ing skrip Alice, bocor kasebut kedadeyan amarga Alice mung bakal nanggapi kanthi pesen sing bener yen $inline$text{SIMPLE_SUBSTITUTION}(text{ciphertext},text{key})$inline$ dipungkasi nganggo baris. a (utawa bb, lan liya-liyane, nanging kemungkinan kahanan kasebut dipicu kanthi kasempatan cilik banget). Kaya CBC, server nampa padding yen lan mung yen Serangan kriptografi: panjelasan kanggo pikiran sing bingung ends ing heksadesimal 01. Dadi ayo nyoba trik sing padha: ngirim ciphertext palsu kanthi nilai palsu kita dhewe Serangan kriptografi: panjelasan kanggo pikiran sing bingungnganti server nampa ngisi.

Nalika server nampa padding kanggo salah sawijining pesen palsu, tegese:

Serangan kriptografi: panjelasan kanggo pikiran sing bingung

Saiki kita nggunakake properti XOR byte-byte:

Serangan kriptografi: panjelasan kanggo pikiran sing bingung

Kita ngerti istilah pisanan lan katelu. Lan kita wis weruh manawa iki ngidini kita mbalekake istilah sing isih ana - byte pungkasan saka Serangan kriptografi: panjelasan kanggo pikiran sing bingung:

Serangan kriptografi: panjelasan kanggo pikiran sing bingung

Iki uga menehi bait pungkasan saka blok plainteks pungkasan liwat persamaan CBC lan properti byte-by-byte.

Kita bisa ninggalake iku lan wareg yen kita wis nindakake serangan ing cipher teoritis kuwat. Nanging nyatane kita bisa nindakake luwih akeh: kita bisa mbalekake kabeh teks. Iki mbutuhake trik sing ora ana ing naskah asli Alice lan ora dibutuhake kanggo serangan oracle, nanging isih kudu sinau.

Kanggo mangerteni, pisanan elinga yen asil output sing bener saka bait pungkasan yaiku Serangan kriptografi: panjelasan kanggo pikiran sing bingung kita duwe kemampuan anyar. Saiki, nalika nggawe ciphertexts, kita bisa ngapusi byte pungkasan saka plaintext sing cocog. Maneh, iki ana gandhengane karo persamaan CBC lan properti byte-by-byte:

Serangan kriptografi: panjelasan kanggo pikiran sing bingung

Wiwit saiki ngerti istilah kapindho, kita bisa nggunakake kontrol kita liwat pisanan kanggo ngontrol katelu. Kita mung ngitung:

Serangan kriptografi: panjelasan kanggo pikiran sing bingung

Kita ora bisa nindakake iki sadurunge amarga kita durung duwe byte pungkasan Serangan kriptografi: panjelasan kanggo pikiran sing bingung.

Kepiye carane iki bakal mbantu kita? Contone, saiki kita nggawe kabeh ciphertext supaya ing plainteks sing cocog, byte pungkasan padha karo 02. Server saiki mung nampa padding yen plaintext rampung karo 02 02. Awit kita mbenerake bait pungkasan, iki mung bakal kelakon yen bait penultimate plaintext uga 02. Kita terus ngirim pamblokiran ciphertext palsu, ngganti bait penultimate, nganti server nampa padding kanggo salah siji saka wong-wong mau. Ing titik iki kita entuk:

Serangan kriptografi: panjelasan kanggo pikiran sing bingung

Lan kita mulihake bait penultimate Serangan kriptografi: panjelasan kanggo pikiran sing bingung kaya sing pungkasan dibalèkaké. Kita terus kanthi semangat sing padha: kita mbenerake rong bait pungkasan plaintext menyang 03 03, kita mbaleni serangan iki kanggo bait katelu saka mburi lan ing, wekasanipun rampung mulihake Serangan kriptografi: panjelasan kanggo pikiran sing bingung.

Apa bab liyane saka teks? Wigati dimangerteni yen regane Serangan kriptografi: panjelasan kanggo pikiran sing bingung sejatine $inline$text{BLOCK_DECRYPT}(text{key},C_{247})$inline$. Kita bisa nyelehake blok liyane tinimbang Serangan kriptografi: panjelasan kanggo pikiran sing bingung, lan serangan kasebut isih bakal sukses. Nyatane, kita bisa njaluk server nindakake $inline$text{BLOCK_DECRYPT}$inline$ kanggo data apa wae. Ing jalur iki, game wis rampung - kita bisa decrypt sembarang ciphertext (ndeleng liyane ing diagram dekripsi CBC kanggo ndeleng iki; lan elinga yen IV umum).

Cara tartamtu iki nduweni peran penting ing serangan oracle sing bakal kita temoni mengko.

Serangan Kelsey

John Kelsey sing nyenengake kita nyedhiyakake prinsip sing ndasari akeh kemungkinan serangan, ora mung rincian serangan tartamtu ing cipher tartamtu. Kang Artikel 2002 taun yaiku sinau babagan kemungkinan serangan ing data sing dikompres sing dienkripsi. Apa sampeyan mikir yen informasi sing data dikompres sadurunge enkripsi ora cukup kanggo nindakake serangan? Pranyata wis cukup.

Asil sing nggumunake iki amarga rong prinsip. Kaping pisanan, ana korélasi sing kuat antara dawa plaintext lan dawa ciphertext; kanggo akeh ciphers podo persis. Kapindho, nalika kompresi ditindakake, ana uga korélasi sing kuat antara dawa pesen sing dikompres lan tingkat "noisiness" plaintext, yaiku proporsi karakter sing ora diulang (istilah teknis yaiku "entropi dhuwur" ).

Kanggo ndeleng prinsip ing tumindak, nimbang rong plainteks:

Plaintext 1: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

Plaintext 2: ATVXCAGTRSVPTVVULSJQHGEYCMQPCRQBGCYIXCFJGJ

Ayo nganggep loro plainteks dikompres banjur dienkripsi. Sampeyan entuk rong ciphertext sing diasilake lan kudu ngira ciphertext sing cocog karo plaintext:

Ciphertext 1: PVOVEYBPJDPVANEAWVGCIUWAABCIYIKOOURMYDTA

Ciphertext 2: DWKJZXYU

Jawabane cetha. Ing antarane plainteks, mung plaintext 1 sing bisa dikompres dadi cilik saka ciphertext kapindho. Kita ngerteni iki tanpa ngerti apa-apa babagan algoritma kompresi, kunci enkripsi, utawa malah cipher kasebut. Dibandhingake karo hirarki kemungkinan serangan kriptografi, iki pancen edan.

Kelsey luwih negesake manawa ing kahanan sing ora biasa, prinsip iki uga bisa digunakake kanggo nindakake serangan oracle. Khususé, iki njlèntrèhaké carane panyerang bisa mbalekake plaintext rahasia yen bisa meksa server kanggo encrypt data formulir (plaintext ngiring dening Serangan kriptografi: panjelasan kanggo pikiran sing bingungnalika dheweke ngontrol Serangan kriptografi: panjelasan kanggo pikiran sing bingung lan piye wae bisa mriksa dawa asil ndhelik.

Maneh, kaya serangan oracle liyane, kita duwe hubungan:

Serangan kriptografi: panjelasan kanggo pikiran sing bingung

Maneh, kita ngontrol siji istilah (Serangan kriptografi: panjelasan kanggo pikiran sing bingung), kita ndeleng bocor cilik informasi babagan anggota liyane (ciphertext) lan nyoba kanggo mbalekake sing pungkasan (plaintext). Senadyan analogi, iki minangka kahanan sing ora biasa dibandhingake karo serangan oracle liyane sing wis kita deleng.

Kanggo nggambarake kepiye serangan kasebut bisa ditindakake, ayo gunakake skema kompresi fiktif sing mentas digawe: TOYZIP. Iku katon kanggo baris teks sing wis katon sadurunge ing teks lan ngganti karo telung placeholder byte sing nuduhake ngendi kanggo nemokake Kayata sadurungé saka baris lan carane kakehan katon ana. Contone, baris helloworldhello bisa dikompres menyang helloworld[00][00][05] Dawane 13 bait dibandhingake karo 15 bait asli.

Upaminipun panyerang nyoba kanggo mbalekake plainteks wangun password=..., ngendi sandi dhewe ora dingerteni. Miturut model serangan Kelsey, panyerang bisa njaluk server kanggo kompres lan banjur ndhelik pesen formulir (plaintext ngiring dening Serangan kriptografi: panjelasan kanggo pikiran sing bingung) ing pundi Serangan kriptografi: panjelasan kanggo pikiran sing bingung - teks gratis. Nalika server wis rampung digunakake, laporan dawa asil. Serangan kasebut kaya mangkene:

maling: Mangga kompres lan enkripsi plainteks tanpa padding.

Server: Dawane asil 14.

maling: Mangga kompres lan enkripsi plaintext sing ditambahake password=a.

Server: Dawane asil 18.

Cathetan cracker: [asli 14] + [telung bita sing diganti password=] + a

maling: Mangga kompres lan enkripsi plainteks sing ditambahake password=b.

Server: Dawane asil 18.

maling: Mangga kompres lan enkripsi plainteks sing ditambahake password=с.

Server: Dawane asil 17.

Cathetan cracker: [asli 14] + [telung bita sing diganti password=c]. Iki nganggep manawa plainteks asli ngemot senar password=c. Yaiku, tembung sandhi diwiwiti kanthi huruf c

maling: Mangga kompres lan enkripsi plainteks sing ditambahake password=сa.

Server: Dawane asil 18.

Cathetan cracker: [asli 14] + [telung bita sing diganti password=с] + a

maling: Mangga kompres lan enkripsi plainteks sing ditambahake password=сb.

Server: Dawane asil 18.

(… Sawetara wektu mengko…)

maling: Mangga kompres lan enkripsi plainteks sing ditambahake password=со.

Server: Dawane asil 17.

Cathetan cracker: [asli 14] + [telung bita sing diganti password=co]. Nggunakake logika sing padha, panyerang nyimpulake yen tembung sandhi diwiwiti kanthi huruf co

Lan sateruse nganti kabeh sandhi dibalekake.

Sing maca bakal diapura amarga mikir yen iki minangka latihan akademis lan skenario serangan kasebut ora bakal muncul ing jagad nyata. Alas, kaya sing bakal kita deleng, luwih becik ora nyerah ing kriptografi.

Kerentanan merek: CRIME, POODLE, DROWN

Pungkasan, sawise sinau teori kasebut kanthi rinci, kita bisa ndeleng kepiye teknik kasebut ditrapake ing serangan kriptografi nyata.

Kadurjanan

Serangan kriptografi: panjelasan kanggo pikiran sing bingungYen serangan kasebut ditujokake menyang browser lan jaringan korban, sawetara bakal luwih gampang lan sawetara bakal luwih angel. Contone, gampang kanggo ndeleng lalu lintas korban: mung lungguhan karo dheweke ing kafe sing padha karo WiFi. Mulane, korban potensial (yaiku kabeh wong) umume disaranake nggunakake sambungan sing dienkripsi. Bakal luwih angel, nanging isih bisa, kanggo nggawe panjalukan HTTP atas jenenge korban menyang sawetara situs pihak katelu (contone, Google). Penyerang kudu nggodho korban menyang kaca web angkoro kanthi skrip sing nggawe panjaluk kasebut. Browser web bakal kanthi otomatis nyedhiyakake cookie sesi sing cocog.

Iki katon apik tenan. Yen Bob tindak menyang evil.com, bisa script ing situs iki mung takon Google kanggo email sandi Bob kanggo [email protected]? Inggih, ing teori ya, nanging ing kasunyatan ora. Skenario iki diarani serangan pemalsuan panyuwunan lintas situs (Palsu Panyuwunan Lintas Situs, CSRF), lan populer ing sekitar pertengahan 90-an. Dina iki yen evil.com nyoba trik iki, Google (utawa situs web sing ngurmati awake dhewe) biasane bakal nanggapi, "Apik, nanging token CSRF sampeyan kanggo transaksi iki bakal ... um ... три триллиона и семь. Mbaleni nomer iki." Browser modern duwe sing diarani "kabijakan asal sing padha" sing skrip ing situs A ora duwe akses menyang informasi sing dikirim dening situs web B. Dadi skrip ing evil.com bisa ngirim panjalukan kanggo google.com, nanging ora bisa maca respon utawa bener ngrampungake transaksi.

Kita kudu nandheske yen kajaba Bob nggunakake sambungan sing dienkripsi, kabeh proteksi kasebut ora ana gunane. Penyerang mung bisa maca lalu lintas Bob lan mbalekake cookie sesi Google. Kanthi cookie iki, dheweke mung bakal mbukak tab Google anyar tanpa ninggalake browser dhewe lan niru Bob tanpa nemoni kabijakan asal-usul sing padha. Nanging, sayangé kanggo maling, iki dadi kurang umum. Internet sacara sakabehe wis suwe ngumumake perang babagan sambungan sing ora dienkripsi, lan lalu lintas metu Bob bisa uga dienkripsi, manawa dheweke seneng utawa ora. Kajaba iku, saka awal implementasine saka protokol, lalu lintas uga nyusut sadurunge enkripsi; iki minangka praktik umum kanggo nyuda latensi.

Iki ngendi iku teka menyang muter Kadurjanan (Rasio Kompresi Infoleak Digawe Gampang, bocor sederhana liwat rasio kompresi). Kerentanan kasebut dicethakaké ing September 2012 dening peneliti keamanan Juliano Rizzo lan Thai Duong. Kita wis nliti kabeh basis teoretis, sing ngidini kita ngerti apa sing ditindakake lan kepiye. Panyerang bisa meksa browser Bob ngirim panjaluk menyang Google banjur ngrungokake tanggapan ing jaringan lokal kanthi bentuk sing dikompres lan dienkripsi. Mulane kita duwe:

Serangan kriptografi: panjelasan kanggo pikiran sing bingung

Ing kene panyerang ngontrol panjalukan lan nduweni akses menyang sniffer lalu lintas, kalebu ukuran paket. Skenario fiksi Kelsey dadi urip.

Ngerteni teori kasebut, penulis CRIME nggawe eksploitasi sing bisa nyolong cookie sesi kanggo macem-macem situs, kalebu Gmail, Twitter, Dropbox lan Github. Kerentanan kasebut kena pengaruh paling akeh browser web modern, sing nyebabake patch dirilis sing ngubur fitur kompresi ing SSL kanthi meneng supaya ora bisa digunakake. Siji-sijine sing dilindhungi saka kerentanan yaiku Internet Explorer sing dihormati, sing ora nate nggunakake kompresi SSL.

PODLE

Serangan kriptografi: panjelasan kanggo pikiran sing bingungIng Oktober 2014, tim keamanan Google nggawe gelombang ing komunitas keamanan. Dheweke bisa ngeksploitasi kerentanan ing protokol SSL sing wis ditambal luwih saka sepuluh taun kepungkur.

Pranyata metu sing nalika server mlaku TLSv1.2 anyar mengilap, akeh wis ninggalake support kanggo SSLv3 warisan kanggo kompatibilitas mundur karo Internet Explorer 6. Kita wis ngomong bab serangan downgrade, supaya sampeyan bisa mbayangno apa mengkono. Sabotase protokol jabat tangan sing diatur kanthi apik lan server wis siyap bali menyang SSLv3 lawas sing apik, ateges mbatalake riset keamanan 15 taun pungkasan.

Kanggo konteks sejarah, punika ringkesan Brief saka sajarah SSL nganti versi 2 saka Matthew Green:

Transport Layer Security (TLS) minangka protokol keamanan paling penting ing Internet. [..] meh kabeh transaksi sing sampeyan lakoni ing Internet gumantung marang TLS. [..] Nanging TLS ora mesthi TLS. Protokol wiwit urip ing Komunikasi Netscape disebut "Secure Sockets Layer" utawa SSL. Desas-desus nyatakake yen versi pisanan SSL pancen elek banget, mula para pangembang nglumpukake kabeh cetakan kode kasebut lan dikubur ing TPA rahasia ing New Mexico. Akibaté, versi SSL pisanan sing kasedhiya kanggo umum versi SSL 2. Iku cukup medeni, lan [..] minangka produk saka pertengahan 90-an, sing dianggep para kriptografi modern minangka "jaman peteng kriptografi" Akeh serangan kriptografi sing paling nggegirisi sing kita kenal saiki durung ditemokake. Akibaté, pangembang saka protokol SSLv2 padha ateges ditinggalake kanggo fumble dalan ing peteng, lan padha ngadhepi akeh monsters elek - kanggo kesel lan entuk manfaat kita, amarga serangan ing SSLv2 ninggalake pelajaran sing ora ana regane kanggo protokol generasi sabanjure.

Sawisé acara kasebut, ing taun 1996, Netscape sing frustasi ngrancang ulang protokol SSL saka awal. Asil ana SSL versi 3, kang ndandani sawetara masalah keamanan sing dikenal sadurunge.

Untunge kanggo maling, "sawetara" ora ateges "kabeh". Sakabèhé, SSLv3 nyedhiyakake kabeh blok bangunan sing dibutuhake kanggo miwiti serangan Vodene. Protokol kasebut nggunakake cipher blok mode CBC lan skema bantalan sing ora aman (iki didandani ing TLS; mula perlu serangan mudhun). Yen sampeyan ngelingi skema padding ing deskripsi asli babagan serangan Vaudenay, skema SSLv3 meh padha.

Nanging, sayangé kanggo maling, "mirip" ora ateges "padha". Skema padding SSLv3 yaiku "N bita acak diikuti karo nomer N". Coba, miturut kondisi kasebut, pilih blok ciphertext khayalan lan tindakake kabeh langkah skema asli Vaudene: sampeyan bakal nemokake serangan kasebut kasil ngekstrak byte pungkasan saka blok plaintext sing cocog, nanging ora luwih maju. Decrypting saben bait 16 saka ciphertext punika trick gedhe, nanging ora kamenangan .

Ngadhepi kegagalan, tim Google nggunakake cara pungkasan: padha ngalih menyang model ancaman sing luwih kuat - sing digunakake ing CRIME. Yen panyerang minangka skrip sing mlaku ing tab browser korban lan bisa ngekstrak cookie sesi, serangan kasebut isih nyengsemake. Nalika model ancaman sing luwih jembar kurang realistis, kita weruh ing bagean sadurunge model tartamtu iki bisa ditindakake.

Amarga kemampuan penyerang sing luwih kuat iki, serangan kasebut saiki bisa diterusake. Elinga yen panyerang ngerti ngendi cookie sesi sing dienkripsi katon ing header lan ngontrol dawa panjalukan HTTP sadurunge. Mulane, bisa ngapusi panjalukan HTTP supaya byte pungkasan cookie didadekake siji karo mburi blok. Saiki byte iki cocok kanggo dekripsi. Sampeyan mung bisa nambah siji karakter menyang panjalukan, lan bait penultimate cookie bakal tetep ing panggonan sing padha lan cocok kanggo pilihan nggunakake cara sing padha. Serangan terus ing cara iki nganti file cookie rampung dibalèkaké. Iki diarani POODLE: Padding Oracle ing Enkripsi Warisan sing Diturunake.

klelep

Serangan kriptografi: panjelasan kanggo pikiran sing bingungKaya sing wis kasebut, SSLv3 duwe cacat, nanging dhasar beda karo sing sadurunge, amarga SSLv2 sing bocor minangka produk saka jaman sing beda. Ing kono sampeyan bisa ngganggu pesen ing tengah: соглашусь на это только через мой труп diowahi dadi соглашусь на это; klien lan server bisa ketemu online, netepake kapercayan lan ijol-ijolan rahasia ing ngarepe penyerang, sing banjur bisa gampang niru loro. Ana uga masalah karo kriptografi ekspor, sing kita sebutake nalika nimbang FREAK. Iki padha cryptographic Sodom lan Gomora.

Ing Maret 2016, tim peneliti saka macem-macem lapangan teknis teka bebarengan lan nggawe panemuan sing nggumunake: SSLv2 isih digunakake ing sistem keamanan. Ya, panyerang ora bisa mudhun maneh sesi TLS modern menyang SSLv2 amarga bolongan kasebut ditutup sawise FREAK lan POODLE, nanging isih bisa nyambung menyang server lan miwiti sesi SSLv2 dhewe.

Sampeyan bisa uga takon, kenapa kita peduli apa sing ditindakake ing kana? Dheweke duwe sesi sing rawan, nanging ora kena pengaruh sesi liyane utawa keamanan server - bener? Inggih, ora cukup. Ya, kaya ngono ing teori. Nanging ora - amarga ngasilake sertifikat SSL nyebabake beban tartamtu, nyebabake akeh server nggunakake sertifikat sing padha lan, minangka asil, tombol RSA sing padha kanggo sambungan TLS lan SSLv2. Sing luwih elek, amarga bug OpenSSL, pilihan "Pateni SSLv2" ing implementasi SSL populer iki ora bisa digunakake.

Iki nggawe serangan lintas-protokol ing TLS, diarani klelep (Decrypting RSA karo enkripsi Obsolete lan Weakened, decrypting RSA karo enkripsi lungse lan weakened). Elinga yen iki ora padha karo serangan singkat; panyerang ora perlu kanggo tumindak minangka "wong ing tengah" lan ora perlu kanggo ndherek klien kanggo melu ing sesi insecure. Penyerang mung miwiti sesi SSLv2 sing ora aman karo server dhewe, nyerang protokol sing lemah, lan mbalekake kunci pribadi RSA server. Tombol iki uga valid kanggo sambungan TLS, lan wiwit titik iki, ora ana jumlah keamanan TLS sing bakal nyegah saka kompromi.

Nanging kanggo kokain, sampeyan butuh serangan sing bisa digunakake marang SSLv2, sing ngidini sampeyan mbalekake ora mung lalu lintas tartamtu, nanging uga kunci server RSA rahasia. Sanajan iki minangka persiyapan sing rumit, para peneliti bisa milih kerentanan sing ditutup sawise SSLv2. Dheweke pungkasane nemokake pilihan sing cocog: serangan Bleichenbacher, sing wis kasebut sadurunge lan bakal diterangake kanthi rinci ing artikel sabanjure. SSL lan TLS dilindhungi saka serangan iki, nanging sawetara fitur acak saka SSL, digabungake karo tombol cendhak ing kriptografi kelas ekspor, ndadekake iku bisa. implementasine tartamtu saka DROWN.

Nalika diterbitake, 25% situs paling dhuwur ing Internet kena pengaruh kerentanan DROWN, lan serangan kasebut bisa ditindakake kanthi sumber daya sederhana sing kasedhiya kanggo peretas tunggal sing nakal. Kanggo njupuk kunci RSA server mbutuhake wolung jam komputasi lan $440, lan SSLv2 dadi radioaktif.

Ngenteni, kepiye babagan Heartbleed?

Iki dudu serangan kriptografi ing pangertèn sing diterangake ing ndhuwur; Iki minangka buffer overflow.

Ayo ngaso

Kita miwiti kanthi sawetara teknik dhasar: brute force, interpolation, downgrade, cross-protocol, lan precomputation. Banjur kita ndeleng siji teknik canggih, mbok menawa komponen utama serangan kriptografi modern: serangan oracle. Kita ngenteni sawetara wektu kanggo ngerteni - lan ora mung ngerti prinsip dhasar, nanging uga rincian teknis saka rong implementasi tartamtu: serangan Vaudenay ing mode enkripsi CBC lan serangan Kelsey ing protokol enkripsi pra-komprèsi.

Nalika mriksa serangan downgrade lan precomputation, kita njlentrehake kanthi ringkes serangan FREAK, sing nggunakake loro cara kasebut kanthi nduwe situs target downgrade menyang tombol sing lemah banjur gunakake maneh tombol sing padha. Kanggo artikel sabanjure, kita bakal nyimpen serangan Logjam (banget padha), sing ngarahake algoritma kunci umum.

Banjur kita ndeleng telung conto liyane babagan aplikasi prinsip kasebut. Kaping pisanan, CRIME lan PODLE: rong serangan sing gumantung marang kemampuan panyerang kanggo nyuntikake plainteks sembarang ing jejere plaintext target, banjur mriksa respon server lan banjur, nggunakake metodologi serangan oracle, eksploitasi informasi sing jarang iki kanggo, sebagian mbalekake plaintext. CRIME tindak rute serangan Kelsey ing komprèsi SSL, nalika POODLE tinimbang nggunakake varian saka serangan Vaudenay ing CBC karo efek padha.

Kita banjur ngalihake perhatian menyang serangan DROWN cross-protocol, sing nggawe sambungan menyang server nggunakake protokol SSLv2 warisan lan banjur mbalekake kunci rahasia server nggunakake serangan Bleichenbacher. Saiki kita wis ngilangi rincian teknis serangan iki; kaya Logjam, kudu ngenteni nganti kita duwe pangerten sing apik babagan cryptosystems kunci umum lan kerentanane.

Ing artikel sabanjure kita bakal ngomong babagan serangan lanjut kayata meet-in-the-middle, kriptanalisis diferensial lan serangan ulang tahun. Ayo cepet menyang serangan saluran sisih, banjur pindhah menyang bagean sing nyenengake: cryptosystems kunci umum.

Source: www.habr.com

Add a comment