Perbedaan antara teori dan praktik keamanan dan kriptografi?


21

Apa perbedaan menarik yang ada antara teori dan praktik keamanan dan kriptografi?

Paling menarik tentu saja akan menjadi contoh yang menunjukkan jalan baru untuk penelitian teoritis berdasarkan pengalaman praktis :).

Jawaban mungkin termasuk (tetapi tidak terbatas pada):

  • Contoh di mana teori menyarankan sesuatu itu mungkin tetapi itu tidak pernah digunakan dalam praktik
  • Contoh di mana teori menyatakan bahwa sesuatu itu aman dan tidak aman dalam praktiknya
  • Contoh-contoh sesuatu dalam penggunaan praktis yang meluas memiliki sedikit teori di baliknya.

...

Peringatan

Jika jawaban Anda pada dasarnya dari bentuk "Teori adalah tentang asimptotik, tetapi praktiknya tidak," maka teorinya harus benar-benar sentral, atau jawabannya harus mencakup contoh-contoh spesifik di mana pengalaman praktis pada contoh dunia nyata berbeda dari harapan berdasarkan pada teorinya.


Salah satu contoh yang saya tahu: evaluasi sirkuit aman. Sangat kuat dalam teori, tetapi terlalu rumit untuk digunakan dalam praktik, karena itu akan melibatkan mengambil kode Anda, membuka gulungannya ke dalam sirkuit, dan kemudian melakukan evaluasi yang aman dari masing-masing gerbang satu per satu.


FYI, pertanyaan ini terinspirasi oleh beberapa retorika / diskusi tentang pertanyaan lain ini: cstheory.stackexchange.com/questions/453/…
Joshua Grochow

Jawaban:


23

Oh boy, harus mulai dari mana.

Yang besar pasti kotak hitam. Peneliti Crypto membuat keributan tentang hal-hal seperti masalah tidak dapat dipastikannya dari Random Oracle Model. Peneliti keamanan berada di ujung lain dan ingin semuanya dapat digunakan sebagai kotak hitam, bukan hanya fungsi hash. Ini adalah sumber ketegangan yang konstan.

Sebagai ilustrasi, jika Anda melihat analisis formal protokol keamanan, misalnya logika BAN , Anda akan melihat bahwa enkripsi simetris diperlakukan sebagai "cipher blok ideal." Ada perbedaan halus di sini - logika BAN (dan teknik analisis protokol lainnya) tidak mengklaim sebagai bukti keamanan; alih-alih, itu adalah teknik untuk menemukan kekurangan. Oleh karena itu tidak sepenuhnya benar bahwa model sandi yang ideal terlibat di sini. Namun, secara empiris benar bahwa sebagian besar analisis keamanan cenderung terbatas pada model formal, sehingga efeknya sama.

Kami bahkan belum berbicara tentang praktisi. Orang-orang ini biasanya bahkan tidak memiliki petunjuk bahwa primitif crypto tidak dimaksudkan untuk menjadi kotak hitam, dan saya ragu ini akan berubah - dekade mencoba untuk mengalahkan ini ke dalam kepala mereka tidak membuat perbedaan.

Untuk melihat seberapa buruk masalahnya, pertimbangkan penasihat keamanan ini terkait dengan kemampuan tanda tangan API. Bug ini sebagian disebabkan oleh serangan ekstensi-panjang dalam konstruksi Merkle-Damgard (yang merupakan sesuatu yang sangat mendasar), dan memengaruhi Flickr, DivShare, iContact, Mindmeister, Myxer, RememberTheMilk, Scribd, Vimeo, Voxel, Wizehhive dan Zoomr. Para penulis mencatat bahwa ini bukan daftar lengkap.

Saya benar-benar berpikir para praktisi pantas menerima bagian terbesar dari kesalahan atas keadaan yang menyedihkan ini. Di sisi lain, mungkin para ahli teori kripto perlu memikirkan kembali posisi mereka juga. Baris mereka adalah: "kotak hitam tidak mungkin dibangun; kita bahkan tidak akan mencoba." Yang saya katakan, karena jelas bahwa konstruksi Anda akan mendapatkan (mis) digunakan sebagai kotak hitam, mengapa tidak setidaknya mencoba membuat mereka sedekat mungkin dengan kotak hitam?

Makalah Merkle-Damgard Revisited adalah contoh yang bagus tentang apa yang saya bicarakan. Mereka mempelajari gagasan keamanan bahwa "fungsi hash panjang sewenang-wenang H harus berperilaku sebagai ramalan acak ketika blok bangunan panjang tetap dipandang sebagai ramalan acak atau blok-sandi yang ideal." Jenis penelitian teoritis ini berpotensi sangat berguna dalam praktik.

Sekarang mari kita lihat contoh evaluasi rangkaian Anda. Saya mohon tidak setuju dengan alasan Anda. Ini tidak seperti Anda akan mengambil biner yang dikompilasi dan secara membuta mengubahnya menjadi sebuah sirkuit. Sebaliknya, Anda hanya akan menerapkan evaluasi rangkaian untuk fungsi perbandingan mendasar yang biasanya cukup sederhana. Fairplay adalah implementasi evaluasi sirkuit. Seorang kolega saya yang bekerja dengannya memberi tahu saya bahwa ini sangat cepat. Meskipun benar bahwa efisiensi adalah masalah dengan evaluasi sirkuit (dan saya tahu contoh dunia nyata di mana ia ditolak karena alasan ini), itu jauh dari penghenti.

Alasan kedua saya tidak setuju dengan Anda adalah bahwa jika Anda berpikir tentang beberapa skenario kehidupan nyata yang khas di mana Anda mungkin ingin melakukan evaluasi rangkaian yang tidak diketahui - misalnya, ketika dua perusahaan mencari tahu apakah akan menggabungkan - biaya komputasi yang terlibat itu sepele dibandingkan dengan keseluruhan upaya manusia dan anggaran.

Jadi mengapa tidak ada yang menggunakan evaluasi fungsi aman generik dalam praktik? Pertanyaan bagus Ini membawa saya pada perbedaan kedua antara teori dan praktik: kepercayaan sebenarnya ada dalam praktik! Tidak semua yang perlu dilakukan dalam model paranoid. Serangkaian masalah yang orang benar-benar ingin pecahkan menggunakan kripto jauh, jauh lebih kecil dari apa yang dibayangkan oleh kriptografer.

Saya kenal seseorang yang memulai perusahaan yang mencoba menjual layanan perhitungan multi-pihak yang aman kepada klien perusahaan. Coba tebak - tidak ada yang menginginkannya. Cara mereka mendekati masalah ini adalah dengan menandatangani kontrak yang menentukan apa yang dapat dan tidak bisa Anda lakukan dengan data, dan bahwa Anda akan menghancurkan data setelah Anda selesai menggunakannya untuk tujuan yang dimaksud. Sebagian besar waktu, ini berfungsi dengan baik.

Poin terakhir saya tentang perbedaan antara teori dan praktik adalah tentang PKI. Makalah Crypto sering menempel kalimat di suatu tempat mengatakan "kami menganggap PKI." Sayangnya, sertifikat digital untuk pengguna akhir (berbeda dengan situs web atau karyawan dalam konteks perusahaan, di mana ada hierarki alami) tidak pernah terwujud. Makalah klasik ini menggambarkan keriuhan yang terjadi ketika Anda meminta orang normal untuk menggunakan PGP. Saya diberi tahu bahwa peranti lunaknya telah meningkat pesat sejak itu, tetapi masalah desain dan arsitektur serta keterbatasan manusia yang mendasarinya tidak jauh berbeda saat ini.

Saya tidak berpikir kriptografi harus melakukan sesuatu yang berbeda sebagai konsekuensi dari kurangnya PKI dunia nyata, kecuali untuk menyadari fakta bahwa itu membatasi penerapan protokol kriptografi di dunia nyata. Saya melemparkannya karena itu adalah sesuatu yang saya coba perbaiki.


Jawaban bagus! (Meskipun saya akui saya tidak cukup mengikuti semua itu - saya harus mengikuti beberapa tautan Anda dan membacanya, tetapi lain kali.) Mengenai evaluasi sirkuit aman: Saya senang mendengarnya. Pendapat yang saya nyatakan pada dasarnya adalah perasaan saya setelah mengikuti kursus intro teori-crypto dan bertanya kepada profesor saya tentang apakah hal itu pernah digunakan dalam praktik.
Joshua Grochow

Terima kasih. BTW, saya baru di StackExchange dan saya tidak tahu apakah komunitas wiki berarti penulisan orang pertama tidak dapat diterima. Jika itu masalahnya, jangan ragu untuk melakukan perubahan.
randomwalker

Saya berharap saya dapat menjawab pertanyaan ini lebih dari sekali.
Jeffε

FairPlay tidak aman di bawah model ancaman yang realistis (tidak aman terhadap penyerang jahat; itu hanya aman jika kami memercayai musuh untuk tidak berperilaku buruk / jahat). Efisiensi mudah jika keamanan tidak penting, dan keamanan mudah jika efisiensi tidak penting, tetapi saat ini tidak diketahui cara mencapai keduanya secara bersamaan.
DW

Komentar Anda tentang praktisi sebenarnya murah hati. Saya telah menemukan sebuah perusahaan yang produk utamanya adalah pemrosesan pembayaran untuk kartu kredit yang menggunakan cipher Vigenère dengan kunci lebih pendek daripada beberapa fragmen dari plaintext yang dikenal. Dan kemudian mereka tidak percaya bahwa itu tidak aman sampai saya mengirim mereka beberapa kode serangan.
Peter Taylor

12

Jawaban Randomwalker sangat bagus. Kesenjangan favorit saya antara teori dan praktik adalah model oracle acak. Ini tampaknya heuristik yang sangat aman dalam praktik (dengan asumsi orang tidak melakukan sesuatu yang bodoh dan setidaknya melakukan perpanjangan panjang dengan benar, lihat juga jawaban pengacak acak) tetapi kami tidak memiliki hasil teoritis positif tentang hal itu. Faktanya, semua hasil teoretis tentang heuristik ini negatif. Saya pikir ini adalah pertanyaan penelitian yang bagus dan berharap suatu hari nanti beberapa hasil positif yang menarik tentang model ini akan terbukti.

Mengenai kebingungan sejauh yang saya tahu bahkan dalam praktek, meskipun itu digunakan secara luas, kebingungan tidak dianggap seaman enkripsi, dan tidak bijaksana untuk menggunakan kebingungan untuk menyembunyikan rahasia jangka panjang dan sangat sensitif. (Berbeda dengan enkripsi menggunakan oracle acak, yang orang benar-benar nyaman menggunakannya untuk ini.) Jadi dalam hal itu, kesenjangan di sana antara teori dan praktik tidak sebesar. (yaitu, kebingungan adalah bidang yang sangat menarik yang kami jauh dari pemahaman baik secara teori maupun dalam praktik.)


10

Enkripsi homomorfik dan komunikasi multipartai aman adalah dua dari penemuan besar baru-baru ini dalam kriptografi yang belum cukup dipelajari untuk dipraktikkan: upaya penelitian seperti PROCEED bergerak ke arah ini untuk mengidentifikasi model pemrograman seperti apa yang mungkin kita gunakan untuk menulis ini semacam komputasi, serta menemukan optimisasi terhadap algoritma kriptografi inti yang membuatnya berjalan dalam waktu yang wajar. Ini adalah kejadian yang cukup umum dalam kriptografi: kami mulai dengan (relatif) algoritma sederhana yang membutuhkan waktu lama untuk dijalankan, dan kemudian kriptografer menghabiskan waktu bertahun-tahun menggunakan matematika untuk mengoptimalkan algoritma lebih jauh dan lebih jauh.


10

Contoh di mana teori menyarankan sesuatu itu mungkin tetapi itu tidak pernah digunakan dalam praktik:

Sangat mudah untuk menemukan contoh hal-hal yang diselesaikan secara teori tetapi salah satu (1) terlalu tidak efisien untuk digunakan dalam praktik atau (2) tidak ada yang peduli. Contoh: (1) bukti nol pengetahuan (generik), (2) tanda tangan tak terbantahkan. Faktanya, lihat konferensi crypto apa saja dan setidaknya setengah dari makalah mungkin akan masuk dalam salah satu kategori ini.

Contoh di mana teori menyatakan bahwa sesuatu itu aman dan tidak aman dalam praktiknya:

Pertanyaan ini agak kabur, jadi saya tidak yakin apakah ini menjawabnya - tetapi ada banyak contoh skema 'terbukti aman' yang rusak dalam praktik karena definisi keamanan tidak cocok dengan skenario penempatan. Dalam beberapa tahun terakhir saja ada serangan terhadap (varian yang dapat dibuktikan) SSH dan IPSec, antara lain.

Contoh-contoh sesuatu yang digunakan secara luas memiliki sedikit teori di baliknya:

Saya menganggap maksud Anda di dunia crypto, bukan di dunia keamanan umum. Contoh yang baik adalah tanda tangan DSS, yang tidak memiliki bukti keamanan.


9

M.M.M.wM.wM.wM.wM.M.M.M.

Ada banyak perusahaan komersial yang menawarkan solusi kebingungan biner, dan ada juga beberapa solusi open source. Metode yang tepat untuk kebingungan, tentu saja dirahasiakan; paradigma kebingungan yang lazim dalam industri adalah heuristik, sehingga mengetahui algoritma yang digunakan untuk mengaburkan biner dalam konteks ini umumnya akan menjamin beberapa keuntungan dalam deobfusiasi. Kebingungan dalam industri dikenal sebagai "keamanan melalui ketidakjelasan."

Ada pendekatan teoritis untuk masalah kebingungan yang memformalkan keinginan industri tetapi bergantung pada gagasan keamanan yang lebih kuat yang didasarkan pada ketangguhan komputasi (bayangkan mengganti bilangan bulat dan uji ekivalensi string dengan uji ekivalensi fungsi satu arah). Secara khusus, studi kebingungan titik komposable telah maju untuk mencoba memecahkan masalah kebingungan menarik bagi industri. Sayangnya model teori penyebaran yang paling luas untuk kebingungan yang didasarkan pada model yang diilhami oleh perangkat keras anti-perusak diberi hasil yang mustahil pada tahun 2001 oleh Barak dkk dalam makalah " Pada (im) kemungkinan program yang membingungkan ". (Beberapa model lain sejak itu juga telah diberikan hasil ketidakmungkinan).

Saat ini teori kebingungan program sedang dalam keadaan fluks, membutuhkan model baru (mungkin kurang restriktif). Faktanya, masalah utama dengan teori ini adalah kurangnya model yang disepakati (dan oleh karena itu garuntees formal). Munculnya Enkripsi Homomorfik Baru-baru ini dapat memberikan dasar seperti itu (ini murni spekulasi dari pihak penulis ini).

Untuk memperjelas, kekaburan cocok dengan contoh ketiga Anda: "Contoh sesuatu yang digunakan secara luas memiliki sedikit teori di baliknya." Kebingungan digunakan secara luas saat ini oleh industri dan oleh mereka yang memiliki tujuan jahat. Kebingungan dalam industri saat ini tidak didasarkan pada teori yang keras meskipun ada upaya.


8

Ada kesenjangan yang signifikan bahkan ketika datang ke primitif dasar seperti generator pseudorandom. Pertimbangkan misalnya fungsi pseudorandom. Dalam praktiknya orang menggunakan hal-hal seperti AES , yang berbeda dari kandidat teoretis (Goldreich, Goldwasser, Micali; Naor, Reingold, dll.) Sepanjang beberapa dimensi: Pertama, parameternya benar-benar berbeda, misalnya AES dapat memiliki panjang kunci yang sama dengan panjang input. , yang belum pernah terjadi dalam konstruksi teoretis. Mungkin yang lebih penting, AES (dan banyak cipher blok lainnya) mengikuti apa yang disebut paradigma jaringan substitusi-permutasi yang sangat berbeda dari cara konstruksi teoretis berjalan (misalnya yang disebutkan di atas).

Paling menarik tentu saja akan menjadi contoh yang menunjukkan jalan baru untuk penelitian teoritis berdasarkan pengalaman praktis :).

Saya pikir contoh di atas adalah contoh seperti itu, lihat contoh makalah ini dengan Eric Miles (yang darinya jawaban ini diambil).

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.