DISTRIBUTED SYSTEMS Concept and Design – Fifth Edition
George Coulouris
Cambridge University
Jean Dollimore
formerly of Queen Mary, University of London
Tim Kindberg
matter 2 media
Gordon Blair
Lancaster University
Ada kebutuhan luas untuk langkah-langkah untuk menjamin privasi, integritas dan ketersediaan sumber daya dalam sistem terdistribusi. serangan keamanan mengambil bentuk menguping, menyamar, gangguan dan penolakan layanan. Desainer sistem terdistribusi aman
harus mengatasi dengan antarmuka layanan terkena dan jaringan tidak aman di lingkungan
di mana penyerang cenderung memiliki pengetahuan tentang algoritma yang digunakan dan untuk menyebarkan sumber daya komputasi.
Kriptografi menyediakan dasar untuk otentikasi pesan serta kerahasiaan dan integritas mereka; protokol keamanan yang dirancang dengan hati-hati diperlukan untuk memanfaatkannya. Pemilihan algoritma kriptografi dan manajemen kunci sangat penting untuk efektivitas, kinerja dan kegunaan dari mekanisme keamanan. Kunci publik kriptografi membuatnya mudah untuk mendistribusikan kunci kriptografi tapi kinerjanya tidak memadai untuk enkripsi data curah. Secret-key kriptografi lebih cocok untuk tugas enkripsi massal. protokol hibrida seperti Transport Layer Security (TLS) membangun saluran aman menggunakan kriptografi kunci publik dan kemudian menggunakannya untuk bertukar kunci rahasia untuk digunakan dalam pertukaran data berikutnya. informasi digital dapat ditandatangani, memproduksi sertifikat digital. Sertifikat memungkinkan kepercayaan yang akan didirikan di antara pengguna dan organisasi.
Bab ini diakhiri dengan studi kasus pada pendekatan untuk desain sistem keamanan dan mekanisme keamanan dikerahkan di Kerberos, TLS / SSL dan 802.11 WiFi.
11.1 Pendahuluan
Dalam Bagian 2.4.3 kami memperkenalkan sebuah model sederhana untuk memeriksa persyaratan keamanan dalam sistem terdistribusi. Kami menyimpulkan bahwa kebutuhan untuk mekanisme keamanan di sistem terdistribusi muncul dari keinginan untuk berbagi sumber daya. (Sumber yang tidak bersama secara umum dapat dilindungi dengan mengisolasi mereka dari akses eksternal.) Jika kita menganggap sumber daya bersama sebagai objek, maka kebutuhannya adalah untuk melindungi proses apapun yang merangkum bersama benda-benda dan saluran komunikasi apapun yang digunakan untuk berinteraksi dengan mereka melawan segala bentuk dibayangkan serangan. Model yang diperkenalkan dalam Bagian 2.4.3 menyediakan titik awal yang baik untuk identifikasi persyaratan keamanan. Hal ini dapat diringkas sebagai berikut:
• Proses merangkum sumber (baik pemrograman languag objek e-tingkat dan
ditentukan sistem sumber daya) dan memungkinkan klien untuk mengaksesnya melalui antarmuka. Kepala sekolah (pengguna atau proses lainnya) yang berwenang untuk beroperasi pada sumber daya. Sumber harus dilindungi terhadap akses yang tidak sah (Gambar 2.17).
• Proses berinteraksi melalui jaringan yang dimiliki oleh banyak pengguna. musuh
(Penyerang) dapat mengakses jaringan. Mereka dapat menyalin atau mencoba untuk membaca pesan apapun ditransmisikan melalui jaringan dan mereka dapat menyuntikkan pesan sewenang-wenang, yang ditujukan untuk tujuan apapun dan mengaku berasal dari sumber manapun, ke dalam jaringan (Gambar 2.18).
Kebutuhan untuk melindungi integritas dan privasi informasi dan sumber daya lainnya milik individu dan organisasi meresap baik fisik dan dunia digital. Hal ini muncul dari keinginan untuk berbagi sumber daya. Dalam dunia fisik, organisasi mengadopsi kebijakan keamanan yang menyediakan untuk berbagi sumber daya dalam batas yang ditentukan. Sebagai contoh, sebuah perusahaan dapat mengizinkan masuk ke bangunan hanya untuk karyawan dan pengunjung terakreditasi. Sebuah kebijakan keamanan untuk dokumen dapat menentukan kelompok karyawan yang dapat mengakses kelas dokumen, atau dapat didefinisikan untuk dokumen individu dan pengguna. kebijakan keamanan ditegakkan dengan bantuan mekanisme keamanan. Sebagai contoh, akses ke sebuah bangunan dapat dikendalikan oleh petugas penerimaan, yang mengeluarkan lencana kepada pengunjung terakreditasi, dan ditegakkan oleh penjaga keamanan atau oleh kunci pintu elektronik. Akses ke dokumen kertas biasanya dikendalikan oleh penyembunyian dan distribusi terbatas. Dalam dunia elektronik, perbedaan antara kebijakan dan mekanisme keamanan sama pentingnya; tanpa itu, akan sulit untuk menentukan apakah sistem tertentu adalah aman. kebijakan keamanan independen dari teknologi yang digunakan, seperti penyediaan kunci pada pintu tidak menjamin keamanan bangunan kecuali ada apolicy untuk penggunaannya (misalnya, bahwa pintu akan terkunci setiap kali ada orang yang menjaga pintu masuk ). Mekanisme keamanan yang kita jelaskan di sini tidak dalam diri mereka memastikan keamanan sistem. Dalam Bagian 11.1.2, kami menguraikan persyaratan untuk keamanan di berbagai skenario perdagangan elektronik sederhana, yang menggambarkan kebutuhan untuk kebijakan dalam konteks itu.Penyediaan mekanisme perlindungan data dan sumber daya lainnya dalam sistem terdistribusi sementara memungkinkan interaksi antar komputer yang diizinkan oleh kebijakan keamanan adalah kekhawatiran bab ini. Mekanisme yang akan kita menjelaskan dirancang untuk menegakkan kebijakan keamanan terhadap serangan paling ditentukan.
Peran kriptografi •
kriptografi digital memberikan dasar bagi sebagian besar mekanisme keamanan komputer, tetapi penting untuk dicatat bahwa keamanan komputer dan kriptografi adalah subyek yang berbeda. Kriptografi adalah seni pengkodean informasi dalam format yang hanya penerima yang dituju dapat membaca sandi. Kriptografi juga dapat digunakan untuk memberikan bukti keaslian informasi, dengan cara analog dengan penggunaan tanda tangan dalam transaksi konvensional. Kriptografi memiliki sejarah panjang dan menarik. Kebutuhan militer untuk komunikasi yang aman dan sesuai kebutuhan musuh untuk mencegat dan mendekripsi itu dipimpin untuk investasi banyak usaha intelektual oleh beberapa otak matematika terbaik
waktu mereka. Pembaca tertarik untuk mengeksplorasi sejarah ini akan menyerap membaca di buku tentang topik dengan David Kahn [Kahn 1967, 1983, 1991] dan Simon Singh [Singh
1999]. Whitfield Diffie, salah satu penemu dari kunci publik kriptografi, telah menulis
dengan pengetahuan langsung tentang sejarah dan politik dari kriptografi [Diffie
1988, Diffie dan Landau 1998]. Ini hanya dalam beberapa kali bahwa kriptografi telah muncul dari membungkus sebelumnya ditempatkan di atasnya dengan pendirian politik dan militer yang digunakan untuk mengontrol pengembangan dan penggunaan. Sekarang subjek penelitian terbuka dengan sebuah komunitas yang aktif, dengan hasil yang disajikan dalam banyak buku, jurnal dan konferensi. Penerbitan buku Schneier Applied Cryptography [Schneier 1996] adalah tonggak sejarah dalam membuka pengetahuan di lapangan. Ini adalah buku pertama yang mempublikasikan banyak algoritma penting dengan kode sumber - sebuah langkah berani, karena ketika edisi pertama muncul pada tahun 1994 status hukum publikasi tersebut tidak jelas. Buku Schneier tetap referensi definitif pada sebagian besar aspek kriptografi modern. Sebuah buku co-ditulis oleh Schneier [Ferguson dan Schneier 2003] lebih baru memberikan pengenalan yang sangat baik untuk kriptografi komputer dan gambaran diskursif hampir semua algoritma penting dan teknik yang digunakan saat ini, termasuk beberapa diterbitkan sejak buku Schneier sebelumnya. Selain itu, pada [1997] menyediakan buku panduan praktis yang baik dengan dasar teoritis yang kuat dan Perpustakaan Keamanan Jaringan [www.secinf.net] adalah sumber online yang sangat baik pengetahuan dan pengalaman praktis. Ross Anderson Rekayasa Keamanan [Anderson 2008] ini juga luar biasa. Hal ini penuh dengan pelajaran objek pada desain sistem yang aman, yang diambil dari situasi dunia nyata dan kegagalan sistem keamanan. Keterbukaan baru sebagian besar merupakan hasil dari pertumbuhan yang luar biasa menarik dalam aplikasi non-militer kriptografi dan persyaratan keamanan sistem komputer terdistribusi, yang telah menyebabkan keberadaannya untuk pertama kalinya sebuah komunitas mandiri peneliti kriptografi luar militer domain. Ironisnya, pembukaan kriptografi untuk akses publik dan penggunaan telah menghasilkan peningkatan besar dalam teknik kriptografi, baik dalam kekuatan mereka untuk menahan serangan musuh dan kenyamanan yang mereka dapat digunakan. Kunci publik kriptografi adalah salah satu buah dari keterbukaan ini. Sebagai contoh lain, kami mencatat bahwa algoritma enkripsi DES yang diadopsi dan digunakan oleh militer AS dan
instansi pemerintah awalnya rahasia militer. publikasi akhirnya dan upaya sukses untuk memecahkannya mengakibatkan pengembangan lebih kuat secret-key algoritma enkripsi.
Lain yang berguna spin-off telah pengembangan dari terminologi umum dan
pendekatan. Contoh yang terakhir adalah penerapan satu set nama akrab untuk
protagonis (kepala sekolah) yang terlibat dalam transaksi yang harus diamankan. Penggunaan
Gambar 11.1 nama Familiar untuk protagonis dalam protokol keamanan
peserta Alice Pertama peserta Bob Kedua Carol Peserta di tiga dan empat pihak protokol Dave Peserta dalam protokol empat-pihak Eve eavesdropper Mallory penyerang berbahaya Sara Sebuah server nama akrab untuk kepala sekolah dan penyerang membantu untuk mengklarifikasi dan membawa ke deskripsi kehidupan protokol keamanan dan potensi serangan pada mereka, yang membantu dalam mengidentifikasi kelemahan mereka. Nama-nama yang ditunjukkan pada Gambar 11.1 digunakan secara ekstensif dalam keamanan
sastra dan kita menggunakannya secara bebas di sini. Kami belum mampu menemukan asal-usul mereka;
terjadinya awal yang kita sadar adalah di asli RSA kunci publik
kriptografi kertas [Rivest et al. 1978]. Komentar yang lucu pada penggunaannya dapat
ditemukan di Gordon [1984].
11.1.1 Ancaman dan serangan
Beberapa ancaman yang jelas - misalnya, di sebagian besar jenis jaringan lokal mudah untuk
membangun dan menjalankan program pada komputer yang terhubung yang memperoleh salinan pesan ditransmisikan antara komputer lain. Ancaman lain yang lebih halus - jika klien
gagal untuk mengotentikasi server, sebuah program mungkin menginstal sendiri di tempat file otentik server dan dengan demikian mendapatkan salinan informasi rahasia bahwa klien tanpa disadari kirim ke itu untuk penyimpanan.Selain bahaya kehilangan atau kerusakan informasi atau sumber daya melalui pelanggaran langsung, klaim palsu dapat dilakukan terhadap pemilik sebuah sistem yang tidak terbukti aman. Untuk menghindari klaim tersebut, pemilik harus berada dalam posisi untuk membantah klaim dengan menunjukkan bahwa sistem ini aman terhadap pelanggaran-pelanggaran tersebut atau dengan menghasilkan log dari semua transaksi untuk periode yang bersangkutan. Sebuah contoh umum
adalah 'hantu penarikan' masalah dalam dispenser uang otomatis (teller mesin).
Jawaban terbaik yang bank dapat menyediakan untuk klaim seperti itu adalah untuk memberikan catatan transaksi yang secara digital ditandatangani oleh pemegang rekening dengan cara yang tidak bisa ditempa oleh pihak ketiga. Tujuan utama dari keamanan adalah untuk membatasi akses ke informasi dan sumber daya untuk hanya mereka pelaku yang berwenang untuk mendapatkan akses. ancaman keamanan jatuh ke dalam tiga kelas yang luas: Kebocoran: Mengacu pada perolehan informasi oleh penerima yang tidak sah.
Merusakkan: Mengacu pada perubahan yang tidak sah dari informasi.
Vandalisme: Mengacu gangguan pada operasi yang tepat dari sistem tanpa gain
untuk pelaku. Serangan pada sistem terdistribusi tergantung pada memperoleh akses ke saluran komunikasi yang ada atau membangun saluran baru yang menyamar sebagai koneksi yang berwenang. (Kami menggunakan saluran istilah untuk mengacu pada setiap mekanisme komunikasi antara proses.) Metode serangan lebih lanjut dapat diklasifikasikan menurut cara di mana saluran disalahgunakan: Menguping: Mendapatkan salinan pesan tanpa otoritas. Menyamar: Mengirim atau menerima pesan menggunakan identitas pokok lain tanpa otoritas mereka. Pesan gangguan: mencegat pesan dan mengubah isinya sebelum
melewati mereka ke penerima yang dimaksud. man-in-the-middle attack adalah bentuk
Pesan gangguan di mana penyerang penyadapan pesan pertama dalam
pertukaran kunci enkripsi untuk membangun saluran aman. Penyerang pengganti dikompromikan kunci yang memungkinkan mereka untuk mendekripsi pesan berikutnya sebelum reencrypting mereka dalam tombol yang benar dan melewati mereka.
Mengulang: Menyimpan dicegat pesan dan mengirim mereka di kemudian hari. Serangan ini mungkin efektif bahkan dengan pesan dikonfirmasi dan dienkripsi.
Penolakan layanan: Banjir saluran atau sumber daya lainnya dengan pesan untuk
menolak akses bagi orang lain. Ini adalah bahaya dalam teori, tapi bagaimana serangan yang dilakukan dalam praktek? Serangan sukses tergantung pada penemuan celah dalam keamanan sistem. Sayangnya, ini semua terlalu umum dalam sistem saat ini, dan mereka tidak selalu sangat jelas. Cheswick dan Bellovin [1994] mengidentifikasi 42 kelemahan yang mereka anggap sebagai berpose risiko serius dalam sistem internet banyak digunakan dan komponen. Mereka berkisar dari menebak password serangan pada program yang melakukan Jaringan
Time Protocol atau transmisi surat pegangan. Beberapa ini telah menyebabkan sukses dan
serangan dipublikasikan dengan baik [Stoll 1989, Spafford 1989], dan banyak dari mereka telah dieksploitasi untuk tujuan nakal atau pidana. Ketika Internet dan syste yang
ms yang terhubung dirancang, keamanan tidak prioritas. Para desainer mungkin tidak memiliki konsepsi dari skala yang Internet akan tumbuh, dan desain dasar dari sistem seperti UNIX mendahului munculnya jaringan komputer. Seperti yang akan kita lihat, penggabungan langkah-langkah keamanan harus berpikir hati-hati pada tahap desain dasar, dan materi dalam bab ini dimaksudkan untuk memberikan dasar untuk berpikir seperti itu.
Kami fokus pada ancaman terhadap sistem terdistribusi yang timbul dari eksposur mereka
saluran komunikasi dan interface mereka. Bagi banyak sistem, ini adalah satu-satunya
ancaman yang perlu dipertimbangkan (selain yang timbul dari kesalahan manusia - keamanan
mekanisme tidak bisa menjaga terhadap password yang dipilih buruk atau salah satu yang sembarangan diungkapkan). Tapi untuk sistem yang mencakup program mobile dan sistem keamanan yang merupakan
sangat sensitif terhadap kebocoran informasi, ada ancaman lebih lanjut.
Ancaman dari kode ponsel •
Beberapa bahasa pemrograman baru dikembangkan telah dirancang untuk memungkinkan program yang akan dimuat ke dalam proses dari server jauh dan kemudian dieksekusi secara lokal. Dalam hal ini, antarmuka internal dan objek dalam proses mengeksekusi mungkin terkena serangan kode mobile. Java adalah bahasa yang paling banyak digunakan dari jenis ini, dan desainer yang dibayar
perhatian besar pada desain dan konstruksi bahasa dan mekanisme untuk loading terpencil dalam upaya untuk membatasi paparan (model sandbox
perlindungan terhadap kode mobile). Mesin virtual Java (JVM) dirancang dengan kode ponsel dalam pandangan. Ini memberi setiap aplikasi lingkungan sendiri di mana untuk menjalankan. Setiap lingkungan memiliki manajer keamanan yang menentukan sumber daya yang tersedia untuk aplikasi. Misalnya, manajer keamanan mungkin berhenti aplikasi membaca dan menulis file atau memberikan akses terbatas untuk koneksi jaringan. Setelah manajer keamanan telah ditetapkan, tidak dapat diganti. Ketika pengguna menjalankan program seperti browser yang download kode mobile untuk dijalankan secara lokal atas nama mereka, mereka tidak memiliki alasan yang sangat baik untuk mempercayai kode untuk
berperilaku secara bertanggung jawab. Bahkan, ada bahaya dari men-download dan menjalankan
kode berbahaya yang menghilangkan file atau mengakses informasi pribadi. Untuk melindungi pengguna
terhadap kode yang tidak dipercaya, kebanyakan browser menentukan bahwa applet tidak dapat mengakses file lokal,
printer atau soket jaringan. Beberapa aplikasi kode ponsel dapat mengasumsikan
berbagai tingkat kepercayaan dalam kode download. Dalam hal ini, manajer keamanan
dikonfigurasi untuk menyediakan lebih banyak akses ke sumber daya lokal. JVM mengambil dua langkah-langkah lebih lanjut untuk melindungi lingkungan setempat:
1. Kelas yang di-download disimpan secara terpisah dari kelas lokal, mencegah mereka dari menggantikan kelas lokal dengan versi palsu.
2. bytecode diperiksa untuk validitas. Hari bytecode Java terdiri dari Java Virtual
instruksi mesin dari set tertentu. Instruksi juga diperiksa untuk memastikan bahwa mereka tidak akan menghasilkan kesalahan tertentu ketika program berjalan, seperti mengakses alamat memori ilegal.
Keamanan Jawa telah menjadi subyek banyak penyelidikan berikutnya, dalam kursus
yang menjadi jelas bahwa mekanisme asli diadopsi tidak bebas dari celah [McGraw dan Felden 1999]. celah yang diidentifikasi dikoreksi dan sistem perlindungan Jawa disempurnakan untuk memungkinkan kode mobile untuk mengakses sumber daya lokal ketika berwenang untuk melakukannya [java.sun.com V].
Meskipun masuknya jenis-checking dan kode-validasi mekanisme, mekanisme keamanan dimasukkan ke dalam sistem kode mobile belum menghasilkan sama
tingkat kepercayaan dalam efektivitas mereka yang digunakan untuk melindungi komunikasi
saluran dan interface. Hal ini karena pembangunan lingkungan untuk
pelaksanaan program menawarkan banyak kesempatan untuk kesalahan, dan sulit untuk menjadi yakin bahwa semua telah dihindari. Volpano dan Smith [1999] telah menunjukkan bahwa pendekatan alternatif, berdasarkan bukti-bukti bahwa perilaku kode mobile suara,
mungkin menawarkan solusi yang lebih baik.
kebocoran informasi •
Jika transmisi pesan antara dua proses dapat diamati, beberapa informasi dapat diperoleh dari eksistensi nya - misalnya, banjir pesan ke dealer di saham tertentu mungkin menunjukkan tingkat tinggi perdagangan di saham itu. Ada banyak bentuk yang lebih halus dari kebocoran informasi, beberapa berbahaya dan lain-lain yang timbul dari kesalahan yang tidak disengaja. Potensi kebocoran muncul setiap kali hasil perhitungan dapat diamati. Pekerjaan dilakukan pada pencegahan jenis ancaman keamanan di tahun 1970-an [Denning dan Denning 1977]. Pendekatan yang dilakukan adalah untuk menetapkan tingkat keamanan untuk informasi dan saluran dan menganalisis arus informasi ke dalam saluran dengan tujuan untuk memastikan bahwa informasi tingkat tinggi tidak dapat mengalir ke saluran-tingkat yang lebih rendah. Sebuah metode untuk kontrol aman dari arus informasi pertama kali dijelaskan oleh Bell dan LaPadula [1975]. Perpanjangan dari pendekatan ini untuk sistem terdistribusi dengan saling tidak percaya antara komponen adalah subjek penelitian baru-baru ini [Myers dan Liskov 1997].
11.1.2 transaksi elektronik Mengamankan
Banyak menggunakan internet di industri, perdagangan dan lain melibatkan transaksi yang sangat bergantung pada keamanan. Sebagai contoh:
Email: Meskipun sistem email aslinya tidak termasuk dukungan untuk keamanan, ada
yang banyak menggunakan email di mana isi pesan harus dirahasiakan (untuk
Misalnya, ketika mengirimkan nomor kartu kredit) atau isi dan pengirim pesan
harus disahkan (misalnya ketika mengirimkan lelang menawar melalui email).
keamanan kriptografi berdasarkan teknik yang diuraikan dalam bab ini sekarang
termasuk dalam banyak klien email.
Pembelian barang dan jasa: Transaksi tersebut sekarang biasa. Pembeli
pilih barang dan membayar mereka melalui Web dan barang dikirim melalui
mekanisme pengiriman yang tepat. Software dan produk digital lainnya (seperti
rekaman dan video) dapat disampaikan dengan men-download. barang berwujud seperti
buku, CD dan hampir setiap jenis lain dari produk juga dijual oleh vendor Internet;
ini disediakan melalui layanan pengiriman.
transaksi perbankan: bank Electronic sekarang menawarkan pengguna hampir semua fasilitas
disediakan oleh bank konvensional. Mereka dapat memeriksa saldo dan pernyataan mereka,
mentransfer uang antar rekening, mengatur pembayaran otomatis reguler dan sebagainya.
Micro-transaksi: Internet cocok untuk penyediaan jumlah kecil
informasi dan layanan lainnya untuk banyak pelanggan. Sebagian besar halaman web saat ini dapat
melihat tanpa biaya, tetapi perkembangan Web sebagai penerbitan berkualitas tinggi
media pasti tergantung pada kemampuan penyedia informasi untuk memperoleh pembayaran
dari konsumen informasi. Suara dan konferensi video di Internet adalah
Saat ini juga gratis, tetapi biaya untuk saat jaringan telepon juga terlibat.
Harga untuk layanan tersebut mungkin berjumlah hanya sebagian kecil dari satu sen, dan pembayaran
overhead harus Sejalan rendah. Secara umum, skema berdasarkan
keterlibatan server bank atau kartu kredit untuk setiap transaksi tidak dapat mencapai hal ini.
Transaksi seperti ini dapat dengan aman dilakukan hanya ketika mereka dilindungi oleh
sesuai kebijakan dan mekanisme keamanan. Seorang pembeli harus dilindungi terhadap
pengungkapan kode kredit (nomor kartu) selama transmisi dan terhadap penipuan
vendor yang memperoleh pembayaran dengan tidak berniat memasok barang. vendor harus
memperoleh pembayaran sebelum melepaskan barang, dan untuk produk download mereka harus
memastikan bahwa hanya pelanggan yang membayar memperoleh data dalam bentuk yang mudah digunakan. Yang dibutuhkan
perlindungan harus dicapai dengan biaya yang wajar dibandingkan dengan nilai
transaksi. kebijakan keamanan yang masuk akal untuk vendor internet dan pembeli menyebabkan persyaratan berikut untuk mengamankan pembelian web:
1. Otentikasi vendor untuk pembeli, sehingga pembeli dapat yakin bahwa mereka
berada dalam kontak dengan server yang dioperasikan oleh vendor dengan siapa mereka dimaksudkan untuk
berurusan.
2. Jauhkan nomor kartu kredit dan pembayaran lainnya pembeli rincian dari jatuh ke
tangan pihak ketiga dan memastikan bahwa mereka ditransmisikan berubah dari
pembeli untuk vendor.
3. Jika barang dalam bentuk yang sesuai untuk men-download, memastikan bahwa konten mereka
dikirim ke pembeli tanpa perubahan dan tanpa pengungkapan kepada pihak ketiga.
Identitas pembeli tidak biasanya diperlukan oleh vendor (kecuali untuk tujuan
dari pengiriman barang, jika mereka tidak di-download). vendor akan ingin memeriksa bahwa
pembeli memiliki dana yang cukup untuk membayar pembelian, tapi ini biasanya dilakukan oleh
menuntut pembayaran dari bank pembeli sebelum pengiriman barang.
Kebutuhan keamanan transaksi perbankan menggunakan jaringan terbuka adalah sama dengan yang untuk transaksi pembelian, dengan pembeli sebagai pemegang rekening dan bank sebagai vendor, tapi ada ada persyaratan keempat juga:
4. Otentikasi identitas pemegang rekening ke bank sebelum memberikan mereka
akses ke akun mereka. Perhatikan bahwa dalam situasi ini, penting bagi bank untuk memastikan bahwa pemegang rekening tidak dapat menyangkal bahwa mereka berpartisipasi dalam transaksi. Non-repudiation adalah nama yang diberikan untuk persyaratan ini. Selain persyaratan di atas, yang ditentukan oleh kebijakan keamanan, ada beberapa persyaratan sistem. Ini timbul dari skala yang sangat besar internet, yang membuatnya tidak praktis untuk meminta pembeli untuk masuk ke dalam hubungan khusus
dengan vendor (dengan mendaftar kunci enkripsi untuk digunakan nanti, dll). Itu harus mungkin untuk pembeli untuk menyelesaikan transaksi yang aman dengan vendor bahkan jika belum ada sebelumnya hubungi antara pembeli dan penjual dan tanpa keterlibatan pihak ketiga.
Teknik seperti penggunaan 'cookies' - catatan dari transaksi sebelumnya yang disimpan pada
host klien pengguna - memiliki kelemahan keamanan yang jelas; desktop dan ponsel host
sering berada dalam lingkungan fisik yang tidak aman.
Karena pentingnya keamanan untuk perdagangan Internet dan pertumbuhan yang cepat
dalam perdagangan Internet, kami telah memilih untuk menggambarkan penggunaan keamanan kriptografi
teknik dengan menjelaskan dalam Bagian 11.6 de facto protokol keamanan standar yang digunakan di
kebanyakan elektronik perdagangan - Transport Layer Security (TLS). Sebuah deskripsi Millicent,
protokol khusus dirancang untuk mikro-transaksi, dapat ditemukan di www.cdk5.net/security
.
Internet commerce adalah sebuah aplikasi penting dari teknik keamanan, tetapi
tentu bukan satu-satunya. Hal ini diperlukan dimanapun komputer digunakan oleh individu atau organisasi untuk menyimpan dan mengkomunikasikan informasi penting. Penggunaan terenkripsi email untuk komunikasi pribadi antara individu adalah kasus di titik yang telah menjadi subyek diskusi politik yang cukup besar. Kami mengacu pada perdebatan ini dalam Bagian 11.5.2.
11.1.3 Merancang sistem yang aman
langkah besar telah dibuat dalam beberapa tahun terakhir dalam pengembangan kriptografi
teknik dan aplikasi mereka, namun merancang sistem yang aman tetap merupakan inheren
tugas yang sulit. Di jantung dilema ini adalah kenyataan bahwa tujuan desainer adalah untuk mengecualikan semua kemungkinan serangan dan celah. Situasi ini analog dengan programmer
yang bertujuan untuk mengecualikan semua bug dari program mereka. Dalam kedua kasus ini ada beton Metode untuk memastikan tujuan ini terpenuhi selama desain. Salah satu desain yang terbaik yang tersedia
standar dan menggunakan analisis informal dan cek. Setelah desain selesai, resmi
validasi adalah pilihan. Bekerja pada validasi formal protokol keamanan telah menghasilkan
beberapa hasil penting [Lampson et al. 1992, Schneider 1996, Abadi dan Gordon 1999].
Sebuah deskripsi salah satu langkah pertama dalam arah ini, logika BAN otentikasi
[Burrows et al. 1990], dan aplikasinya dapat ditemukan di www.cdk5.net/security.
Keamanan adalah tentang menghindari bencana dan meminimalkan kecelakaan. Ketika merancang untuk keamanan perlu untuk mengasumsikan yang terburuk. Kotak pada halaman 472 menunjukkan satu set yang berguna asumsi dan pedoman desain. Asumsi ini mendasari pemikiran di balik teknik yang kami jelaskan dalam bab ini. Untuk menunjukkan validitas mekanisme keamanan yang dipekerjakan dalam suatu sistem, yang desainer sistem harus terlebih dahulu membangun daftar ancaman - metode yang keamanan kebijakan mungkin dilanggar - dan menunjukkan bahwa masing-masing dicegah dengan mekanisme dipekerjakan. Demonstrasi ini dapat mengambil bentuk argumen resmi atau, lebih baik, bukti logis. Tidak ada daftar ancaman kemungkinan untuk menjadi lengkap, sehingga metode audit juga harus digunakan dalam aplikasi keamanan-sensitif untuk mendeteksi pelanggaran. Ini adalah mudah untuk menerapkan jika log aman dari tindakan sistem keamanan-sensitif selalu direkam dengan Rincian dari pengguna lakukan tindakan dan otoritas mereka. Sebuah log keamanan akan berisi urutan catatan timestamped tindakan pengguna. Minimal catatan akan mencakup identitas kepala sekolah, operasi dilakukan (misalnya, menghapus file, memperbarui catatan akuntansi), identitas obyek dioperasi dan timestamp. Di mana pelanggaran tertentu yang diduga, catatan dapat diperluas untuk mencakup pemanfaatan sumber daya fisik (bandwidth jaringan, periferal), atau proses penebangan dapat ditargetkan pada operasi pada objek tertentu. analisis selanjutnya mungkin statistik atau mencari berbasis. Bahkan ketika ada pelanggaran yang diduga, statistik dapat dibandingkan dari waktu ke waktu untuk membantu untuk menemukan setiap tren atau peristiwa yang tidak biasa. Desain sistem yang aman adalah latihan dalam menyeimbangkan biaya terhadap ancaman.
Kisaran teknik yang dapat digunakan untuk melindungi proses dan mengamankan
komunikasi antar cukup kuat untuk menahan hampir setiap serangan, tetapi mereka
Penggunaan menimbulkan biaya dan ketidaknyamanan:
• Sebuah biaya (dalam hal upaya komputasi dan penggunaan jaringan) yang dikeluarkan untuk mereka gunakan. Biaya harus seimbang terhadap ancaman.
• langkah-langkah keamanan dengan Tidak ditentukan mungkin mengecualikan pengguna yang sah dari
melakukan tindakan yang diperlukan.
trade-off tersebut sulit untuk mengidentifikasi tanpa mengorbankan keamanan dan mungkin tampak
konflik dengan saran di paragraf pertama dari ayat ini, tapi kekuatan teknik keamanan yang diperlukan dapat diukur dan teknik dapat dipilih berdasarkan estimasi biaya serangan. relatif teknik murah yang digunakan dalam
Millicent protokol, dijelaskan di www.cdk5.net/security
memberikan contoh. Sebagai ilustrasi dari kesulitan dan kecelakaan yang bisa timbul
dalam desain sistem yang aman, kami meninjau kesulitan yang muncul dengan desain keamanan awalnya tergabung dalam IEEE 802.11 WiFi standar jaringan dalam Bagian 11.6.4.
11.2 Ikhtisar teknik keamanan
Tujuan dari bagian ini adalah untuk memperkenalkan pembaca untuk beberapa lebih penting
teknik dan mekanisme untuk mengamankan sistem terdistribusi dan aplikasi. Disini kita
menggambarkan mereka secara informal, pemesanan deskripsi yang lebih ketat untuk Bagian 11.3 dan 11.4. Kami menggunakan nama-nama yang akrab bagi pelaku diperkenalkan pada Gambar 11.1 dan notasi untuk item dienkripsi dan ditandatangani ditunjukkan pada Gambar 11.2. asumsi terburuk dan pedoman desain Antarmuka yang terkena: sistem terdistribusi terdiri dari proses yang menawarkan jasa atau berbagi informasi. antarmuka komunikasi mereka selalu terbuka (untuk mengizinkan klien baru untuk mengaksesnya) - penyerang dapat mengirim pesan ke antarmuka apapun.
Jaringan yang tidak aman: Misalnya, sumber pesan dapat dipalsukan - pesan dapat
dibuat untuk terlihat seolah-olah mereka datang dari Alice ketika mereka benar-benar dikirim oleh Mallory. alamat host dapat 'palsu' - Mallory dapat terhubung ke jaringan dengan
alamat yang sama seperti Alice dan menerima salinan pesan yang ditujukan untuknya.
Membatasi seumur hidup dan ruang lingkup masing-masing rahasia: Ketika kunci rahasia pertama dihasilkan kita bisa yakin bahwa hal itu belum diganggu. Semakin lama kita menggunakannya dan lebih luas diketahui, semakin besar risikonya. Penggunaan rahasia seperti password dan Kunci rahasia bersama harus waktu terbatas, dan berbagi harus dibatasi.
Algoritma dan kode program yang tersedia untuk penyerang: Semakin besar dan semakin
didistribusikan secara luas rahasia, semakin besar risiko pengungkapannya. enkripsi rahasia
algoritma yang sama sekali tidak memadai untuk lingkungan jaringan skala besar saat ini. Terbaik
latihan adalah untuk mempublikasikan algoritma yang digunakan untuk enkripsi dan otentikasi, mengandalkan
hanya pada kerahasiaan kunci kriptografi. Hal ini membantu untuk memastikan bahwa algoritma
kuat dengan melemparkan mereka terbuka untuk pengawasan oleh pihak ketiga.
Penyerang dapat memiliki akses ke sumber daya yang besar: Biaya daya komputasi cepat
menurun. Kita harus mengasumsikan bahwa penyerang akan memiliki akses ke sebagian terbesar dan
komputer kuat diproyeksikan dalam seumur hidup sistem, kemudian tambahkan beberapa perintah besarnya untuk memungkinkan perkembangan tak terduga.
Meminimalkan basis dipercaya: Bagian dari sistem yang bertanggung jawab untuk pelaksanaan keamanan, dan semua komponen hardware dan software pada
yang mereka bergantung, telah bisa dipercaya - ini sering disebut sebagai komputasi terpercaya
mendasarkan. Cacat atau kesalahan pemrograman dalam basis dipercaya ini dapat menghasilkan keamanan
kelemahan, jadi kita harus bertujuan untuk meminimalkan ukurannya. Sebagai contoh, aplikasi
program tidak dapat dipercaya untuk melindungi data dari pengguna mereka.
Gambar 11.2 Kriptografi notasi
Alice kunci rahasia KKA
kunci rahasia KB Bob
Kunci rahasia bersama antara Alice dan Bob KAB
kunci pribadi Alice (hanya diketahui Alice) KA priv
kunci publik Alice (diterbitkan oleh Alice untuk semua untuk membaca) {M} Apub
Pesan M dienkripsi dengan kunci K [M] K K
11.2.1 Kriptografi
Pesan M yang ditandatangani dengan kunci K Enkripsi adalah proses pengkodean pesan dengan cara seperti untuk menyembunyikan isinya. kriptografi modern mencakup beberapa algoritma aman untuk mengenkripsi dan mendekripsi pesan. Mereka semua didasarkan pada penggunaan rahasia yang disebut kunci. Kunci kriptografi aparameter digunakan dalam algoritma enkripsi sedemikian rupa bahwa enkripsi tidak dapat dikembalikan tanpa pengetahuan tentang kunci.
Ada dua kelas utama dari algoritma enkripsi dalam penggunaan umum. Penggunaan pertama
kunci rahasia bersama - pengirim dan penerima harus berbagi pengetahuan tentang kunci dan
itu tidak harus diungkapkan kepada orang lain. Kelas kedua dari algoritma enkripsi menggunakan
publik / pasangan kunci pribadi. Berikut pengirim pesan menggunakan kunci publik - salah satu yang memiliki
telah diterbitkan oleh penerima - untuk mengenkripsi pesan. penerima menggunakan
sesuai kunci privat untuk mendekripsi pesan. Meskipun banyak kepala sekolah mungkin
memeriksa kunci publik, hanya penerima dapat mendekripsi pesan, karena mereka memiliki
kunci pribadi. Kedua kelas algoritma enkripsi yang sangat berguna dan digunakan
d luas dalam pembangunan sistem terdistribusi aman. algoritma enkripsi kunci publik
ty pically membutuhkan 100 sampai 1000 kali lebih banyak kekuatan pemrosesan sebagai algoritma secret-key,
tetapi ada situasi di mana kenyamanan mereka melebihi kerugian ini.
11.2.2 Penggunaan kriptografi
Kriptografi memainkan tiga peran utama dalam pelaksanaan sistem aman. Kami
memperkenalkan mereka di sini di garis dengan menggunakan beberapa skenario sederhana. Dalam bagian lain dalam
bab ini, kami menjelaskan ini dan protokol lainnya secara lebih detail, menangani beberapa
masalah yang belum terselesaikan yang hanya disorot here.In semua skenario kami di bawah ini, kita dapat mengasumsikan bahwa Alice, Bob dan setiap peserta lain sudah sepakat tentang algoritma enkripsi yang mereka ingin menggunakan dan memiliki implementasi dari mereka. Kami juga menganggap bahwa setiap kunci rahasia atau kunci pribadi yang mereka pegang dapat disimpan dengan aman untuk mencegah penyerang mendapatkan mereka.
Kerahasiaan dan integritas •
Kriptografi digunakan untuk menjaga kerahasiaan dan integritas
informasi setiap kali terkena serangan potensial - misalnya, selama
transmisi di jaringan yang rentan terhadap penyadapan dan pesan
gangguan. Ini menggunakan kriptografi sesuai dengan peran tradisional dalam kegiatan militer dan intelijen. Ini mengeksploitasi fakta bahwa pesan yang dienkripsi dengan
kunci enkripsi tertentu hanya dapat didekripsi oleh penerima yang mengetahui
sesuai kunci dekripsi. Oleh karena itu mempertahankan kerahasiaan pesan terenkripsi
asalkan kunci dekripsi tidak terganggu (diungkapkan kepada non-peserta dalam
komunikasi) dan asalkan algoritma enkripsi cukup kuat untuk mengalahkan
setiap upaya yang mungkin untuk memecahkannya. Enkripsi juga mempertahankan integritas
informasi terenkripsi, asalkan beberapa informasi berlebihan seperti checksum
disertakan dan diperiksa.
Skenario 1. komunikasi rahasia dengan kunci rahasia bersama:
Alice ingin mengirim beberapa informasi rahasia untuk Bob. Alice dan Bob berbagi kunci K. rahasia
1. Alice menggunakan KAB dan fungsi enkripsi disepakati E (KAB, M) untuk mengenkripsi dan mengirim sejumlah pesan {M i} Chicken ke Bob. (Alice bisa terus menggunakan K selama itu aman untuk mengasumsikan bahwa K belum diganggu.)
2. Bob mendekripsi pesan terenkripsi menggunakan fungsi dekripsi sesuai D (kabab, M).
Bob sekarang dapat membaca pesan M. asli Jika pesan didekripsi masuk akal, atau
lebih baik, jika itu termasuk beberapa nilai yang disepakati antara Alice dan Bob (seperti checksum dari
pesan) kemudian Bob tahu bahwa pesan tersebut dari Alice dan yang belum
dirusak. Namun masih ada beberapa masalah: Bob aman?
Soal 2: Bagaimana Bob tahu bahwa setiap {M
Soal 1: Bagaimana Alice dapat mengirim K kunci bersama saya AB} bukan merupakan salinan dari dienkripsi sebelumnya
pesan dari Alice yang ditangkap oleh Mallory dan diputar nanti? Mallory
tidak perlu memiliki K kunci untuk melakukan serangan ini - ia hanya dapat menyalin pola bit
yang mewakili pesan dan mengirimkannya ke Bob kemudian. Misalnya, jika pesan adalah
permintaan untuk membayar sejumlah uang kepada seseorang, Mallory mungkin mengelabui Bob untuk membayar dua kali.
AB Kami menunjukkan bagaimana masalah ini bisa diselesaikan kemudian dalam bab ini.
otentikasi •
Kriptografi digunakan untuk mendukung mekanisme otentikasi
komunikasi antara pasangan kepala sekolah. Seorang kepala sekolah yang mendekripsi pesan
berhasil menggunakan kunci tertentu dapat mengasumsikan bahwa pesan itu asli jika mengandung
checksum benar atau (jika modus blok-chaining enkripsi, dijelaskan dalam Bagian 11.3, digunakan) beberapa nilai yang diharapkan lainnya. Mereka dapat menyimpulkan bahwa pengirim pesan
memiliki kunci enkripsi yang sesuai dan karenanya menyimpulkan identitas pengirim
jika kunci hanya diketahui dua pihak. Jadi jika kunci diadakan secara pribadi, sukses
dekripsi mengotentikasi pesan didekripsi berasal dari pengirim tertentu.
Skenario 2. Dikonfirmasi komunikasi dengan server:
Alice ingin mengakses file yang dimiliki oleh Bob, file server pada jaringan lokal dari organisasi di mana dia bekerja. Sara adalah server otentikasi yang aman dikelola. Sara mengeluarkan pengguna dengan password dan memegang kunci rahasia saat ini untuk semua kepala sekolah dalam sistem itu berfungsi (dihasilkan dengan menerapkan beberapa transformasi untuk password user). Sebagai contoh, ia tahu kunci KA Alice dan Bob KBAB. Dalam skenario kami lihat tiket. Sebuah tiket adalah item terenkripsi yang dikeluarkan oleh sebuah server otentikasi, yang berisi identitas pokok kepada siapa itu dikeluarkan dan kunci bersama yang telah dihasilkan untuk sesi komunikasi saat ini.
1. Alice mengirimkan (tidak terenkripsi) pesan ke Sara menyatakan identitasnya dan meminta
tiket untuk akses ke Bob.
2. Sara mengirimkan respon terhadap Alice dienkripsi di K terdiri dari tiket (untuk dikirim ke
Bob dengan setiap permintaan untuk akses file) dienkripsi dalam KAB dan kunci rahasia K baru
untuk digunakan ketika berkomunikasi dengan Bob. Sehingga respon yang Alice menerima terlihat seperti ini: {{Tiket} KB, KAB} K
3. Alice mendekripsi respon menggunakan KA.A (yang ia menghasilkan dari passwordnya
menggunakan transformasi yang sama; password tidak ditransmisikan melalui jaringan,
dan setelah itu telah digunakan itu dihapus dari penyimpanan lokal untuk menghindari mengorbankan itu). Jika Alice memiliki yang benar sandi yang diturunkan kunci K, dia memperoleh tiket berlaku untuk
menggunakan layanan Bob dan kunci enkripsi baru untuk digunakan dalam berkomunikasi dengan Bob.
Alice tidak dapat mendekripsi atau mengutak-atik tiket, karena dienkripsi di KA. Jika
penerima tidak Alice maka mereka tidak akan tahu password Alice, sehingga mereka tidak akan dapat mendekripsi pesan.
4. Alice mengirim tiket ke Bob bersama-sama dengan identitas dan permintaan R untuk mengakses file: {Tiket}, Alice, R.
5. tiket, awalnya dibuat oleh Sara, sebenarnya: {KKB. Bob mendekripsi tiket menggunakan KBAB kuncinya, Alice} KB. Jadi Bob mendapat identitas otentik Alice (berdasarkan
pengetahuan bersama antara Alice dan Sara password Alice) dan baru
bersama K kunci rahasia untuk digunakan saat berinteraksi dengan Alice. (Ini disebut sesi
kunci karena dapat dengan aman digunakan oleh Alice dan Bob untuk urutan interaksi.) AB
Skenario ini adalah versi sederhana dari protokol otentikasi awalnya dikembangkan
oleh Roger Needham dan Michael Schroeder [1978] dan kemudian digunakan dalam
sistem Kerberos dikembangkan dan digunakan di MIT [Steiner et al. 1988], yang digambarkan dalam
Bagian 11.6.2. Dalam deskripsi kita disederhanakan protokol mereka di atas tidak ada
perlindungan terhadap replay pesan otentikasi tua. Ini dan beberapa lainnya
kelemahan ditangani dengan deskripsi kami penuh protokol Needham-Schroeder di
Bagian 11.6.1. Protokol otentikasi kami telah dijelaskan tergantung pada pengetahuan sebelumnya bythe otentikasi server Sara dari Alice dan kunci Bob, KA dan K. Ini layak di
suatu organisasi di mana Sara berjalan pada komputer yang aman secara fisik dan dikelola
oleh kepala sekolah terpercaya yang menghasilkan nilai awal tombol dan mengirimkan mereka ke pengguna
oleh saluran aman yang terpisah. Tapi itu tidak sesuai untuk perdagangan elektronik atau lainnya
aplikasi luas, di mana penggunaan saluran yang terpisah sangat nyaman
dan persyaratan untuk pihak ketiga yang terpercaya tidak realistis. kriptografi kunci publik menyelamatkan kita dari dilema ini. B
Kegunaan tantangan:
Sebuah aspek penting dari Needham dan Schroeder 1978 terobosan adalah kesadaran bahwa password pengguna tidak harus diserahkan ke layanan otentikasi (dan karenanya terpapar dalam jaringan) setiap kali dikonfirmasi. Sebaliknya, mereka memperkenalkan konsep tantangan kriptografi. Hal ini dapat dilihat pada langkah 2 skenario di atas, di mana server, Sara, mengeluarkan tiket ke Alice dienkripsi di kunci rahasia Alice, KA. Ini merupakan tantangan karena Alice tidak dapat menggunakan tiket kecuali dia dapat mendekripsi itu, dan dia hanya bisa mendekripsi jika dia BAB dapat menentukan K, yang berasal dari kata Alice. Seorang penipu yang mengaku sebagai Alice akan dikalahkan pada saat ini. SEBUAH
Skenario 3. Dikonfirmasi komunikasi dengan kunci publik:
Dengan asumsi bahwa Bob telah menghasilkan pasangan kunci publik / swasta, berikut
Dialog memungkinkan Bob dan Alice untuk membangun kunci rahasia bersama, K:
1. Alice mengakses layanan distribusi kunci untuk mendapatkan sertifikat kunci publik memberikan kunci publik AB Bob. Ini disebut sertifikat karena ditandatangani oleh otoritas terpercaya - orang atau organisasi yang secara luas dikenal handal. Setelah memeriksa tanda tangan, dia membaca kunci publik Bob, K, dari sertifikat. (Kami membahas pembangunan dan penggunaan sertifikat kunci publik dalam Bagian 11.2.3.)
2. Alice membuat kunci bersama baru, Kabb pub, dan mengenkripsi menggunakan K dengan publickey algorithm.She mengirimkan hasilnya ke Bob, bersama dengan nama yang unik mengidentifikasi pasangan kunci publik / privat (karena Bob mungkin memiliki beberapa dari mereka ) - yaitu, Alice mengirimkan keyname, {KAB}.
3. Bob memilih kunci privatnya, KK Bpub Bpriv Bpub, dari toko kunci pribadi dan menggunakannya untuk mendekripsi K. Perhatikan bahwa pesan Alice untuk Bob mungkin telah rusak atau dirusak dalam perjalanan. Konsekuensinya hanya akan bahwa Bob dan Alice tidak berbagi KAB kunci yang sama. Jika ini adalah masalah, dapat dielakkan dengan menambahkan nilai yang disepakati atau string untuk pesan, seperti Bob dan Alice nama atau alamat email, yang Bob dapat memeriksa setelah mendekripsi. AB Skenario di atas menggambarkan penggunaan kriptografi kunci publik untuk mendistribusikan kunci rahasia bersama. Teknik ini dikenal sebagai protokol kriptografi hybrid dan sangat banyak digunakan, karena mengeksploitasi fitur berguna dari kedua kunci publik dan secret-key
algoritma enkripsi. Soal: pertukaran kunci ini rentan terhadap serangan man-in-the-middle. Mallory mungkin mencegat permintaan awal Alice untuk layanan distribusi kunci untuk publickeycertificate Bob dan mengirim respon yang berisi kunci publik sendiri. Dia kemudian bisa mencegat
semua pesan berikutnya. Dalam Keterangan kami di atas, kami menjaga terhadap serangan ini dengan mewajibkan
sertifikat Bob harus ditandatangani oleh otoritas terkenal. Untuk
melindungi terhadap serangan ini, Alice harus memastikan bahwa sertifikat kunci publik Bob adalah
ditandatangani dengan kunci publik (seperti yang dijelaskan di bawah) bahwa dia telah menerima dalam benar-benar aman
cara.
tanda tangan digital •
Kriptografi digunakan untuk menerapkan mekanisme yang dikenal sebagai tanda tangan digital. Ini mengemulasi peran tanda tangan konvensional, memverifikasi kepada pihak ketiga bahwa pesan atau dokumen adalah salinan tak berubah dari satu diproduksi oleh penandatangan. teknik tanda tangan digital didasarkan pada sebuah mengikat permanen pada pesan atau dokumen dari rahasia yang hanya diketahui penandatangan. Hal ini dapat dicapai dengan mengenkripsi pesan - atau lebih baik, bentuk kompresi dari pesan disebut digest - menggunakan kunci yang hanya diketahui penandatangan. Sebuah digest adalah fixed-leng
Nilai th dihitung dengan menggunakan fungsi digest aman. Sebuah fungsi digest aman mirip dengan fungsi checksum, tapi sangat tidak mungkin untuk menghasilkan mencerna nilai yang sama untuk dua pesan yang berbeda. Yang dihasilkan terenkripsi digest bertindak sebagai tanda tangan yang menyertai pesan. Public-key kriptografi umumnya digunakan untuk ini: originator menghasilkan tanda tangan dengan kunci pribadi mereka, dan tanda tangan dapat didekripsi oleh penerima menggunakan sesuai
Gambar 11.3 sertifikat rekening bank Alice
Jenis 1. Sertifikat: Nomor rekening
2. Nama: Alice
3. Rekening: 6262626
4. Sertifikasi otoritas: Bob Bank
5. Tanda tangan: {Digest (lapangan 2 + lapangan 3)}
kunci publik. Ada persyaratan tambahan: verifier harus memastikan bahwa masyarakat
kunci benar-benar adalah bahwa kepala sekolah mengaku penandatangan - ini ditangani oleh penggunaan
sertifikat kunci publik, dijelaskan dalam Bagian 11.2.3.
Skenario 4. tanda tangan digital dengan fungsi mencerna aman:
Alice ingin menandatangani dokumen M sehingga setiap penerima berikutnya dapat memverifikasi bahwa ia adalah pencetus itu. Jadi ketika Bob kemudian mengakses dokumen yang ditandatangani setelah menerima dengan setiap rute dan dari sumber manapun (misalnya, dapat dikirim dalam pesan atau bisa diambil dari database), ia dapat memverifikasi bahwa Alice adalah originator.
1. Alice menghitung sebuah fixed-length digest dari dokumen, Di gest (M).
2. Alice mengenkripsi digest dalam kunci pribadinya, menambahkan ke M dan membuat hasil, tersedia untuk pengguna yang dituju.
3. Bob memperoleh dokumen yang ditandatangani, ekstrak M dan menghitung Digest (M).
4. Bob mendekripsi {Digest (M)} M, {Digest (M)} K Apriv menggunakan kunci publik Alice, K
, Dan membandingkan hasilnya dengan Digest dihitung nya (M). Jika mereka cocok, tanda tangan tersebut valid.
Sertifikat 11.2.3
K Bpriv Apub Sebuah sertifikat digital adalah dokumen yang berisi pernyataan (biasanya pendek) yang ditandatangani oleh kepala sekolah. Kami menggambarkan konsep dengan skenario.
Skenario 5. Penggunaan sertifikat:
Bob adalah bank. Ketika pelanggan menjalin kontak
dengan dia mereka harus yakin bahwa mereka sedang berbicara dengan Bob bank, bahkan jika mereka memiliki
tidak pernah menghubungi dia sebelumnya. Bob perlu mengotentikasi pelanggan sebelum ia memberikan mereka akses ke account mereka. Misalnya, Alice mungkin akan berguna untuk mendapatkan sertifikat dari bank nya menyatakannya nomor rekening bank (Gambar 11.3). Alice bisa menggunakan sertifikat ini saat berbelanja untuk menyatakan bahwa ia memiliki rekening dengan Bob Bank. Sertifikat ditandatangani menggunakan Bob
kunci pribadi, K Bpriv. Sebuah vendor, Carol, dapat menerima sertifikat tersebut untuk pengisian item untuk
akun Alice asalkan dia bisa memvalidasi tanda tangan di lapangan 5. Untuk melakukannya, Carol perlu memiliki kunci publik Bob dan dia perlu memastikan bahwa itu adalah otentik untuk menjaga terhadap kemungkinan bahwa Alice mungkin menandatangani sertifikat palsu mengaitkan namanya dengan
rekening orang lain. Untuk melakukan serangan ini, Alice hanya akan menghasilkan kunci baru, Dan menggunakannya untuk menghasilkan sertifikat palsu yang mengaku datang
dari Bob Bank. Pasangan, K B'pub, K B'priv
Gambar 11.4 sertifikat Public-key untuk Bob Bank
1. Jenis Sertifikat: kunci publik
2. Nama: Bob Bank
3. Kunci publik: K Bpub
otoritas 4. Sertifikasi: Fred - The Bankers Federasi
5. Tanda tangan: {Digest (lapangan 2 + lapangan 3)} K Fpriv
Apa Carol dibutuhkan adalah sertifikat yang menyatakan kunci publik Bob, yang ditandatangani oleh terkenal
dan dipercaya otoritas. Mari kita asumsikan bahwa Fred mewakili Bankir Federasi, salah satu
yang perannya adalah untuk mengesahkan kunci publik dari bank. Fred bisa mengeluarkan kunci publik
sertifikat untuk Bob (Gambar 11.4 K FPUB).
Tentu saja, sertifikat ini tergantung pada ticity Authen dari kunci publik Fred, jadi kami punya masalah rekursif keaslian - Carol hanya bisa mengandalkan sertifikat ini jika dia bisa yakin dia tahu kunci publik otentik Fred, K. Kita dapat mematahkan rekursi ini dengan memastikan bahwa Carol memperoleh K FPUB dengan beberapa cara di mana ia dapat memiliki keyakinan - dia mungkin menyerahkannya oleh perwakilan dari Fred atau dia mungkin menerima salinan ditandatangani itu dari seseorang yang dia tahu dan percaya yang mengatakan mereka mendapatkannya langsung dari Fred . contoh kita menggambarkan rantai sertifikasi - satu dengan dua link, dalam kasus ini. Kami telah menyinggung salah satu probl yang
ems timbul dengan sertifikat - kesulitan memilih otoritas terpercaya dari mana rantai otentikasi dapat mulai.
Kepercayaan adalah jarang mutlak, sehingga pilihan otoritas harus tergantung pada tujuan untuk
yang sertifikat tersebut untuk diletakkan. Masalah lain timbul atas risiko kunci pribadi menjadi
dikompromikan (diungkapkan) dan panjang diperbolehkan dari rantai sertifikasi - semakin lama
rantai, semakin besar risiko link yang lemah.
Asalkan perawatan diambil untuk mengatasi masalah ini, rantai sertifikat adalah
landasan penting untuk perdagangan elektronik dan jenis lain dari dunia nyata
transaksi. Mereka membantu untuk mengatasi masalah skala: ada enam miliar orang di
dunia, jadi bagaimana kita dapat membangun sebuah lingkungan elektronik di mana kita dapat menetapkan
mandat dari salah satu dari mereka?
Sertifikat dapat digunakan untuk menetapkan keaslian banyak jenis pernyataan.
Misalnya, anggota kelompok atau asosiasi mungkin ingin mempertahankan daftar email
yang terbuka hanya untuk anggota kelompok. Cara yang baik untuk melakukan hal ini akan untuk
keahlian manajer (Bob) untuk mengeluarkan sertifikat keahlian (S, Bob, {Digest (S)})
untuk masing-masing anggota, di mana S adalah pernyataan dari bentuk Alice adalah anggota dari Ramah
Masyarakat dan K Bpriv adalah kunci pribadi Bob. Seorang anggota menerapkan untuk bergabung dengan Masyarakat Ramah
daftar email akan harus menyediakan salinan sertifikat ini untuk sistem manajemen daftar,
yang memeriksa sertifikat sebelum mengizinkan anggota untuk bergabung daftar.
Untuk membuat sertifikat yang berguna, dua hal yang diperlukan:
• format standar dan representasi bagi mereka sehingga emiten sertifikat dan
pengguna sertifikat dapat berhasil membangun dan menafsirkannya; K Bpriv
• kesepakatan tentang cara di mana rantai sertifikat dibangun, dan di
khususnya gagasan tentang otoritas terpercaya. Kami kembali ke persyaratan ini dalam Bagian 11.4.4.
Kadang-kadang ada kebutuhan untuk mencabut sertifikat - misalnya, Alice mungkin
menghentikan keanggotaannya dari Masyarakat yang ramah, tapi dia dan orang lain akan probablycontinue untuk memegang salinan disimpan sertifikat keanggotaannya. Ini akan menjadi mahal, jika tidak mustahil, untuk melacak dan menghapus semua sertifikat tersebut, dan itu tidak mudah untuk
membatalkan sertifikat - itu akan diperlukan untuk memberitahu semua penerima yang mungkin dari
pencabutan. Solusi yang biasa untuk masalah ini adalah untuk menyertakan tanggal kadaluwarsa di
sertifikat. Siapapun yang menerima sertifikat yang kedaluwarsa harus menolaknya, dan subjek
sertifikat harus meminta perpanjangan nya. Jika pencabutan lebih cepat diperlukan, maka salah satu
mekanisme yang lebih rumit yang disebutkan di atas harus terpaksa.
kontrol 11.2.4 Akses
Di sini kita menguraikan konsep-konsep yang kontrol akses ke sumber daya berbasis di
sistem terdistribusi dan teknik dengan yang diimplementasikan. Dasar konseptual
untuk perlindungan dan kontrol akses sangat jelas diatur dalam sebuah makalah klasik oleh Lampson [1971], dan rincian implementasi non-didistribusikan dapat ditemukan dalam banyak buku sistem onoperating (lihat misalnya, [Stallings 2008]). Secara historis, perlindungan sumber daya di sistem terdistribusi telah largelyservice-spesifik. Server menerima pesan permintaan dari bentuk <op, kepala sekolah, sumber daya>, di mana op adalah operasi yang diminta, kepala sekolah merupakan identitas atau satu set ofcredentials untuk kepala sekolah membuat permintaan dan sumber daya mengidentifikasi beberapa sumber daya yang operasi diterapkan. server pertama harus mengotentikasi permintaan
pesan dan kredensial kepala sekolah dan kemudian menerapkan kontrol akses, menolak anyrequest yang pokok meminta tidak memiliki hak akses yang diperlukan untuk
melakukan operasi yang diminta pada sumber daya yang ditentukan. Dalam sistem terdistribusi berorientasi objek mungkin ada banyak jenis objek yang kontrol akses harus diterapkan, dan keputusan seringkali aplikasi-spesifik. Misalnya, Alice mungkin diperbolehkan hanya satu penarikan tunai dari rekening bank-nya per hari, sedangkan Bob diperbolehkan tiga. keputusan kontrol akses biasanya diserahkan kepada kode aplikasi-tingkat, namun dukungan generik disediakan untuk banyak mesin yang mendukung keputusan. Ini termasuk otentikasi kepala sekolah, penandatanganan dan otentikasi permintaan, dan pengelolaan kredensial dan data hak akses.
domain perlindungan •
Sebuah domain perlindungan lingkungan eksekusi bersama oleh kumpulan proses: mengandung satu set <sumber daya, hak> pasang, daftar sumber daya yang dapat diakses oleh semua proses yang dijalankan dalam domain dan menentukan operasi diizinkan pada setiap sumber daya. Sebuah domain perlindungan biasanya berhubungan dengan pokok yang diberikan - ketika pengguna log in, identitas mereka adalah otentik dan domain perlindungan diciptakan untuk proses-proses yang mereka akan berjalan. Secara konseptual, domain mencakup semua hak akses yang memiliki kepala sekolah, termasuk hak yang mereka peroleh melalui keanggotaan dari berbagai kelompok. Misalnya, di UNIX, domain perlindungan dari sebuah proses ditentukan oleh pengguna dan kelompok pengidentifikasi melekat proses pada saat login. Hak yang ditentukan dalam hal operasi diperbolehkan. Sebagai contoh, file mungkin dibaca dan ditulis oleh satu proses dan hanya dapat dibaca oleh domain perlindungan another.A hanya sebuah abstraksi. Dua implementasi alternatif yang umum digunakan dalam sistem terdistribusi: kemampuan dan daftar kontrol akses.
Kemampuan: Satu set kemampuan yang dimiliki oleh setiap proses sesuai dengan domain di
yang terletak. Kemampuan adalah nilai biner yang bertindak sebagai kunci akses, yang memungkinkan
Akses pemegang untuk operasi tertentu pada sumber daya tertentu. Untuk digunakan dalam didistribusikan
sistem, di mana kemampuan harus unforgeable, mereka mengambil bentuk seperti:
Sumber daya pengenal Sebuah pengenal unik untuk sumber daya sasaran
Operasi Daftar operasi diizinkan pada sumber daya
kode otentikasi Sebuah tanda tangan digital membuat kemampuan unforgeable
Layanan hanya menyediakan kemampuan untuk klien ketika mereka telah dikonfirmasi sebagai
milik domain perlindungan diklaim. Daftar operasi di kemampuan adalah bagian dari operasi yang ditetapkan untuk sumber daya target dan sering dikodekan sebagai peta bit.
kemampuan yang berbeda digunakan untuk berbagai kombinasi hak akses ke sumber daya yang sama. Ketika kemampuan digunakan, permintaan klien adalah bentuk e th <op, userid,
kemampuan>. Artinya, mereka termasuk kemampuan untuk sumber daya yang akan diakses bukan
pengenal sederhana, memberikan server bukti langsung bahwa klien berwenang untuk
mengakses sumber daya diidentifikasi oleh kemampuan dengan operasi yang ditentukan oleh
kemampuan. Pemeriksaan akses-kontrol pada permintaan yang disertai dengan kemampuan suatu
hanya melibatkan validasi kemampuan dan cek bahwa operasi yang diminta adalah
di set diizinkan oleh kemampuan. Fitur ini adalah keuntungan besar dari kemampuan
- Mereka merupakan kunci akses mandiri, seperti kunci fisik untuk kunci pintu adalah
kunci akses ke bangunan yang kunci melindungi. Kemampuan berbagi dua kelemahan dari kunci untuk kunci fisik: pencurian Key: Siapapun yang memegang kunci untuk sebuah bangunan dapat menggunakannya untuk mendapatkan akses, apakah atau tidak mereka adalah pemegang resmi dari kunci - mereka mungkin telah dicuri kunci atau diperoleh itu dalam beberapa masalah manner.The pencabutan penipuan: hak tersebut untuk terus tombol
perubahan dengan waktu. Misalnya, pemegang dapat berhenti menjadi seorang karyawan dari pemilik bangunan, tetapi mereka mungkin mempertahankan kunci, atau salinan itu, dan menggunakannya dengan cara yang tidak sah.
Satu-satunya solusi yang tersedia untuk masalah ini untuk kunci fisik (a) untuk menempatkan terlarang
gantungan kunci di penjara - tidak selalu layak pada skala waktu yang akan mencegah mereka melakukan
kerusakan - atau (b) untuk mengubah kunci kunci dan ulang untuk semua pemegang kunci - kikuk dan
mahal operation.The masalah analog untuk kemampuan yang jelas:
• capabi
lities mungkin, karena kecerobohan atau sebagai akibat dari serangan menguping,
jatuh ke tangan pelaku selain yang kepada siapa mereka dikeluarkan. Jika ini
terjadi, server tidak berdaya untuk mencegah mereka digunakan secara ilegal.
• Itu
sulit untuk membatalkan kemampuan. Status pemegang dapat berubah dan mereka
hak akses harus berubah sesuai, tapi mereka masih bisa menggunakan kemampuan mereka.
Solusi untuk kedua masalah ini, berdasarkan masuknya informasi yang mengidentifikasi
pemegang dan timeout ditambah daftar kemampuan dicabut, masing-masing, telah
diusulkan dan dikembangkan [Gong 1989, Hayton et al. 1998]. Meskipun mereka menambah kompleksitas konsep dinyatakan sederhana, kemampuan tetap teknik penting - misalnya, mereka dapat digunakan dalam hubungannya dengan daftar kontrol akses untuk mengoptimalkan
kontrol akses pada diulang akses ke sumber daya yang sama, dan mereka memberikan neatest
mekanisme pelaksanaan delegasi (lihat Bagian 11.2.5). Sangat menarik untuk dicatat kesamaan antara kemampuan dan sertifikat. Pertimbangkan sertifikat Alice kepemilikan rekening bank-nya diperkenalkan dalam Bagian 11.2.3. Ini berbeda dari kemampuan seperti yang dijelaskan di sini hanya dalam bahwa tidak ada daftar operasi yang diizinkan dan bahwa penerbit diidentifikasi. Sertifikat dan kemampuan mungkin konsep dipertukarkan dalam beberapa keadaan. sertifikat Alice mungkin dianggap sebagai kunci akses yang memungkinkan dirinya untuk melakukan semua operasi diizinkan untuk pemegang rekening pada rekening bank-nya, tersedia identitasnya bisa dibuktikan.
daftar kontrol akses: Daftar disimpan dengan masing-masing sumber daya, yang berisi entri dalam bentuk
<Domain, operasi> untuk setiap domain yang memiliki akses ke sumber daya dan memberikan
operasi diizinkan untuk domain. Sebuah domain dapat ditentukan oleh pengenal untuk
pokok atau mungkin ekspresi yang dapat digunakan untuk menentukan kepala sekolah
keanggotaan domain. Misalnya, pemilik file ini adalah ekspresi yang dapat
dievaluasi dengan membandingkan identitas kepala sekolah meminta dengan identitas pemilik
disimpan dengan file. Ini adalah skema yang diterapkan dalam kebanyakan sistem berkas, termasuk UNIX dan
Windows NT, di mana satu set izin akses bit dikaitkan dengan masing-masing file, dan
domain yang izin diberikan didefinisikan dengan mengacu kepemilikan
informasi yang disimpan dengan setiap file. Permintaan untuk server dari bentuk <op, kepala sekolah, sumber daya>. Untuk setiap permintaan, server mengotentikasi pokok dan memeriksa untuk melihat bahwa operasi yang diminta termasuk dalam entri kepala sekolah dalam daftar kontrol akses dari sumber daya yang relevan.
implementasi •
tanda tangan digital, kepercayaan dan sertifikat kunci publik memberikan dasar kriptografi untuk kontrol akses yang aman. saluran aman menawarkan manfaat kinerja, memungkinkan beberapa permintaan untuk ditangani tanpa perlu pengecekan ulang kepala sekolah dan kredensial [Wobber et al. 1994]. Kedua CORBA dan Java menawarkan API Keamanan. Dukungan untuk kontrol akses adalah salah satu tujuan utama mereka. Java menyediakan dukungan untuk objek terdistribusi untuk mengelola kontrol akses mereka sendiri dengan Kepala Sekolah, Signor dan ACL kelas dan metode standar untuk
otentikasi dan dukungan untuk sertifikat, validasi tanda tangan dan akses kontrol
pemeriksaan. Rahasia-kunci dan kunci publik kriptografi juga didukung. Farley [1998]
memberikan pengenalan yang baik untuk fitur ini Jawa. Perlindungan dari program Java
yang mencakup kode ponsel didasarkan pada konsep domain perlindungan - kode lokal dan
kode download yang disediakan dengan domain perlindungan yang berbeda di mana untuk mengeksekusi.
Ada dapat menjadi domain perlindungan untuk setiap sumber download, dengan hak akses untuk
set yang berbeda dari sumber daya lokal tergantung pada tingkat kepercayaan yang ditempatkan di
kode download.
Corba menawarkan spesifikasi Layanan Keamanan [Blakley 1999, OMG 2002b] dengan model ORB untuk menyediakan komunikasi yang aman, otentikasi, kontrol akses dengan
kredensial, ACL dan audit; ini dijelaskan lebih lanjut dalam Bagian 8.3.
11.2.5 Kredensial
Kredensial adalah seperangkat bukti yang diberikan oleh kepala sekolah ketika meminta akses ke
sumber. Dalam kasus yang paling sederhana, sertifikat dari otoritas yang relevan menyatakan
identitas kepala sekolah cukup, dan ini akan digunakan untuk memeriksa kepala sekolah
izin dalam daftar kontrol akses (lihat Bagian 11.2.4). Hal ini sering semua yang diperlukan
atau tersedia, tetapi konsep dapat digeneralisasi untuk menangani banyak persyaratan yang lebih halus.
Hal ini tidak mudah untuk mengharuskan pengguna untuk berinteraksi dengan sistem dan mengotentikasi
sendiri setiap kali otoritas mereka diperlukan untuk melakukan operasi pada dilindungi
sumber. Sebaliknya, gagasan bahwa credential yang berbicara untuk kepala sekolah diperkenalkan. sertifikat kunci publik Thusa pengguna berbicara untuk pengguna yang - setiap proses menerima permintaan
dikonfirmasi dengan kunci pribadi pengguna dapat mengasumsikan bahwa permintaan itu dikeluarkan oleh pengguna tersebut.
Berbicara untuk ide dapat dilakukan lebih jauh. Misalnya, di koperasi
tugas, mungkin diperlukan bahwa tindakan sensitif tertentu sebaiknya hanya dilakukan dengan otoritas dua anggota tim; dalam kasus itu, kepala sekolah meminta tindakan
akan mengirimkan surat kepercayaan mereka sendiri mengidentifikasi dan mandat dukungan dari yang lain
anggota tim, bersama-sama dengan indikasi bahwa mereka akan diambil bersama-sama ketika
memeriksa kredensial. Demikian pula, untuk memilih dalam pemilu, permintaan orang akan disertai dengan sertifikat pemilih serta sertifikat identifikasi. Sebuah sertifikat delegasi memungkinkan pelaku untuk bertindak atas nama orang lain, dan sebagainya. Secara umum, pemeriksaan akses-kontrol melibatkan evaluasi formula logis menggabungkan sertifikat yang disediakan. Lampson et al. [1992] telah mengembangkan logika komprehensif otentikasi untuk digunakan dalam mengevaluasi berbicara untuk otoritas dilakukan oleh satu set kredensial. Wobber et al. [1994]
menggambarkan suatu sistem yang mendukung pendekatan yang sangat umum ini. pekerjaan lebih lanjut pada formulir yang berguna
dari credential untuk digunakan dalam tugas-tugas koperasi dunia nyata dapat ditemukan di Rowley [1998].
kredensial berbasis peran tampak sangat berguna dalam desain akses praktis
skema kontrol [Sandhu et al. 1996]. Set kredensial berbasis peran didefinisikan untuk
organisasi atau untuk tugas-tugas koperasi, dan hak akses aplikasi-tingkat yang
dibangun dengan mengacu kepada mereka. Peran kemudian dapat ditugaskan untuk kepala sekolah tertentu dengan
generasi sertifikat peran bergaul kepala sekolah dengan peran bernama di spesifik
tugas atau organisasi [Coulouris et al. 1998].
delegasi •
Bentuk sangat berguna dari credential adalah salah satu yang memberikan hak pokok, atau proses bertindak untuk kepala sekolah, untuk melakukan tindakan dengan otoritas lain
Kepala Sekolah. Kebutuhan untuk delegasi dapat timbul dalam situasi apapun di mana layanan perlu
mengakses sumber daya yang dilindungi dalam rangka untuk menyelesaikan tindakan atas nama kliennya.
Perhatikan contoh server cetak yang menerima permintaan untuk mencetak file. Itu akan
boros sumber daya untuk menyalin file, sehingga nama file akan diteruskan ke server print
dan diakses oleh server print atas nama pengguna membuat permintaan. Jika file
dibaca dilindungi, ini tidak bekerja kecuali server cetak dapat memperoleh hak sementara
untuk membaca file. Delegasi adalah mekanisme yang dirancang untuk memecahkan masalah seperti ini.
Delegasi dapat dicapai dengan menggunakan sertifikat delegasi atau kemampuan a. Itu
sertifikat ditandatangani oleh kepala meminta dan itu kewenangan pokok lain (yang
print server pada contoh kita) untuk mengakses sumber daya yang bernama (file yang akan dicetak). Di
Kemampuan adalah unforgeable, set dikodekan hak untuk mengakses sumber daya.
Ketika hak yang didelegasikan, itu adalah umum untuk membatasi mereka untuk subset dari hak
diselenggarakan oleh kepala penerbitan, sehingga kepala sekolah didelegasikan tidak bisa menyalahgunakan mereka. dalam kami
Misalnya, sertifikat bisa waktu terbatas untuk mengurangi risiko kode server cetak
kemudian berkompromi dan file diungkapkan kepada pihak ketiga. CORBA
Layanan keamanan termasuk mekanisme untuk delegasi dari hak berdasarkan sertifikat,
dengan dukungan untuk pembatasan hak dilakukan.
11.2.6 Firewall
Firewall diperkenalkan dan dijelaskan dalam Bagian 3.4.8. Mereka melindungi intranet,
melakukan penyaringan tindakan pada komunikasi yang masuk dan keluar. Disini kita
mendiskusikan kelebihan dan kekurangan mereka sebagai mekanisme keamanan.
Dalam dunia yang ideal, komunikasi akan selalu berada di antara saling percaya
proses dan saluran aman akan selalu digunakan. Ada banyak alasan mengapa hal ini
ideal adalah tidak dicapai, beberapa diperbaiki, tetapi orang lain yang melekat pada sifat terbuka didistribusikan
sistem atau akibat dari kesalahan yang hadir dalam perangkat lunak yang paling. Kemudahan
yang pesan permintaan dapat dikirim ke server, di mana saja, dan fakta bahwa banyak
server tidak dirancang untuk menahan serangan berbahaya dari hacker atau disengaja
kesalahan, memudahkan informasi yang dimaksudkan untuk menjadi rahasia untuk lea
Firewall menghasilkan lingkungan komunikasi lokal di mana semua eksternal
komunikasi disadap. Pesan diteruskan ke penerima lokal dimaksudkan
hanya untuk komunikasi yang secara eksplisit berwenang. Abadi et al. Menawarkan akses
untuk dipercaya dan dikonfirmasi pengguna ke server web internal yang melalui proxy aman berdasarkan
HTTPS (HTTP melalui TLS) protokol.
11.3 algoritma kriptografi
Sebuah pesan dienkripsi oleh pengirim menerapkan beberapa aturan untuk mengubah plaintext
Pesan (setiap urutan bit) ke ciphertext sebuah (urutan yang berbeda dari bit). penerima harus tahu aturan terbalik dalam rangka untuk mengubah ciphertext kembali ke plaintext asli. pelaku lainnya tidak dapat menguraikan pesan kecuali mereka juga tahu aturan terbalik. Transformasi enkripsi didefinisikan dengan dua bagian, fungsi E dan K. kunci pesan terenkripsi yang dihasilkan ditulis MEKMM = K
Fungsi enkripsi E mendefinisikan algoritma yang mengubah data barang di plaintext
ke dienkripsi data barang dengan menggabungkan mereka dengan kunci dan menukar mereka dalam
cara yang sangat tergantung pada nilai kunci. Kita dapat memikirkan sebuah enkripsi
algoritma sebagai spesifikasi dari keluarga besar fungsi yang tertentu
anggota dipilih oleh kunci yang diberikan. Dekripsi dilakukan dengan menggunakan fungsi terbalik
D, yang juga mengambil kunci sebagai parameter. Untuk enkripsi secret-key, kunci yang digunakan untuk
dekripsi adalah sama seperti yang digunakan untuk enkripsi: DKEKMM = Karena penggunaan simetris kunci, kriptografi secret-key sering disebut kriptografi sebagai simetris, sedangkan kriptografi kunci publik disebut sebagai asimetris karena kunci yang digunakan untuk enkripsi dan dekripsi berbeda, seperti yang akan kita lihat di bawah. Pada bagian berikutnya, kami menjelaskan beberapa fungsi enkripsi yang digunakan secara luas dari kedua jenis.
algoritma simetris •
Jika kita menghapus parameter kunci dari pertimbangan dengan mendefinisikan FMEKM =, maka itu adalah milik fungsi enkripsi yang kuat bahwa FKKM relatif mudah untuk menghitung, sedangkan terbalik, FK1-M, sangat sulit untuk menghitung bahwa tidak layak. fungsi tersebut dikenal sebagai fungsi satu arah. The effectiv eness dari metode apapun untuk mengenkripsi informasi tergantung pada penggunaan fungsi enkripsi F yang memiliki properti satu arah ini. Inilah yang melindungi terhadap serangan yang dirancang untuk menemukan M diberikan MK.
Untuk algoritma simetris yang dirancang dengan baik seperti yang dijelaskan di bagian K berikutnya, kekuatan mereka terhadap upaya untuk menemukan K diberikan plaintext M dan
sesuai ciphertext M tergantung pada ukuran K. Hal ini karena sebagian besar
bentuk umum yang efektif serangan adalah yang paling kasar, dikenal sebagai serangan brute-force. bruteforce yang
Pendekatan adalah untuk menjalankan melalui semua nilai yang mungkin dari K, komputasi EKM untilthe
Hasil pertandingan nilai MK yang sudah dikenal. Jika K memiliki N bit maka serangan seperti itu membutuhkan 2 N 1-K iterasi rata-rata, dan maksimal 2 N
iterasi, untuk menemukan K. Oleh karena itu waktu untuk retak K adalah eksponensial dalam jumlah bit di K.
algoritma asimetris •
Ketika pasangan kunci publik / swasta digunakan, fungsi satu arah dieksploitasi dengan cara lain. Kelayakan skema public-key pertama kali diusulkan oleh Diffie dan Hellman [1976] sebagai metode kriptografi yang menghilangkan kebutuhan untuk kepercayaan antara pihak yang berkomunikasi. Dasar untuk semua skema kunci publik adalah adanya fungsi trap-door. Sebuah fungsi trap-door adalah fungsi satu arah dengan pintu keluar rahasia - mudah untuk menghitung dalam satu arah tetapi tidak layak untuk menghitung terbalik kecuali rahasia diketahui. Itu kemungkinan menemukan fungsi tersebut dan menggunakan mereka K.
Gambar 11.5 Cipher blok chaining
blok plaintext
blok ciphertext
n + 3 n + 2
n + 1
XOR
n-1n-2n-3n dalam kriptografi praktis yang Diffie dan Hellman pertama yang disarankan. Sejak itu, beberapa skema public-key praktis telah diusulkan dan dikembangkan. Mereka semua bergantung pada penggunaan fungsi trap-door yang melibatkan banyak. Sepasang kunci yang dibutuhkan untuk algoritma asimetris berasal dari akar yang sama. Untuk algoritma RSA, dijelaskan dalam Bagian 11.3.2, akar adalah pasangan sewenang-wenang dipilih dari bilangan prima yang sangat besar. Derivasi dari sepasang kunci dari akar adalah
fungsi satu arah. Dalam kasus algoritma RSA, bilangan prima besar dikalikan
bersama-sama - perhitungan yang hanya membutuhkan beberapa detik, bahkan untuk bilangan prima yang sangat besar
bekas. produk yang dihasilkan, N, tentu saja jauh lebih besar daripada multiplicands. Penggunaan ini dari perkalian adalah fungsi satu arah dalam arti bahwa itu adalah komputasi tidak layak untuk memperoleh multiplicands asli dari produk - yaitu, untuk pd produk. Salah satu sepasang kunci yang digunakan untuk enkripsi. Untuk RSA, fungsi enkripsi mengaburkan plaintext dengan memperlakukan setiap blok bit sebagai bilangan biner dan meningkatkan ke kekuatan kunci, nomor modulo N. yang dihasilkan adalah blok ciphertext yang sesuai. Ukuran N dan setidaknya salah satu dari sepasang kunci jauh lebih besar dari ukuran kunci aman untuk kunci simetrik untuk memastikan bahwa N tidak factorizable. Untuk alasan ini, potensi serangan brute-force pada RSA kecil; ketahanan terhadap serangan tergantung pada infeasibility dari factorizing N. Kami mendiskusikan ukuran aman untuk N dalam Bagian 11.3.2.
Cipher blok •
Kebanyakan algoritma enkripsi beroperasi pada blok berukuran tetap data; 64 bit adalah ukuran populer untuk blok. Sebuah pesan dibagi menjadi blok, blok terakhir empuk dengan panjang standar jika perlu dan setiap blok dienkripsi independently.The blok pertama yang tersedia untuk transmisi secepat itu telah dienkripsi. Untuk blok cipher sederhana, nilai masing-masing blok ciphertext tidak dependupon blok sebelumnya. Ini merupakan kelemahan, karena penyerang dapat mengenali pola berulang dan menyimpulkan hubungan mereka dengan plaintext. Juga tidak integritas pesan dijamin kecuali checksum atau mekanisme mengamankan mencerna digunakan. Kebanyakan algoritma block cipher menggunakan cipher block chaining (CBC) E (K, M) untuk mengatasi kelemahan tersebut.
Cipher blok chaining: Dalam modus blok chaining cipher, setiap blok plaintext dikombinasikan
dengan blok ciphertext sebelumnya menggunakan eksklusif-atau operasi (XOR) sebelum itu
dienkripsi (Gambar 11.5). Pada dekripsi, blok tersebut didekripsi dan kemudian
sebelumnya blok dienkripsi (yang seharusnya disimpan untuk tujuan ini) adalah XOR-ed dengan itu untuk mendapatkan blok plaintext baru. Ini bekerja karena operasi XOR adalah sendiri inverse- dua aplikasi itu menghasilkan nilai asli. CBC dimaksudkan untuk mencegah bagian identik enkripsi plaintext untuk potongan identik ciphertext. Tapi ada kelemahan pada awal setiap urutan blok - jika
Gambar cipher 11,6 Streaming
Generator nomor kunci aliran plaintext Buffer tream n + 3 n + 2 n + 1 XORE (K, M)
kami terbuka terenkripsi koneksi untuk dua tujuan dan mengirim pesan yang sama, urutan dienkripsi blok akan sama, dan lubang kebocoran mungkin mendapatkan beberapa
informasi yang berguna dari ini. Untuk mencegah hal ini, kita harus memasukkan bagian yang berbeda dari
plaintext di depan setiap pesan. teks tersebut disebut vektor inisialisasi. SEBUAH
timestamp membuat vektor inisialisasi yang baik, memaksa setiap pesan untuk memulai dengan blok plaintext yang berbeda. Ini, dikombinasikan dengan CBC operasi, akan menghasilkan yang berbeda
cipherteks bahkan untuk dua plainteks yang identik. Penggunaan mode CBC terbatas pada
enkripsi data yang ditransfer di koneksi yang dapat diandalkan. Dekripsi akan gagal jika ada blok ciphertext hilang, karena proses dekripsi tidak akan dapat mendekripsi setiap blok lebih lanjut. Oleh karena itu tidak cocok untuk digunakan dalam aplikasi seperti yang dijelaskan dalam Bab 18, di mana beberapa kehilangan data dapat ditoleransi. Sebuah stream cipher harus digunakan dalam keadaan seperti itu.
stream cipher •
Untuk beberapa aplikasi, seperti enkripsi telepon
percakapan, enkripsi di blok adalah tidak pantas karena aliran data
diproduksi secara real time dalam potongan kecil. sampel data dapat sekecil 8 bit atau bahkan
satu bit, dan itu akan menjadi sia-sia untuk pad masing-masing untuk 64 bit sebelum enkripsi dan
transmisi mereka. stream cipher adalah algoritma enkripsi yang dapat melakukan
enkripsi secara bertahap, mengubah plaintext ke ciphertext satu bit pada satu waktu.
Ini terdengar sulit dicapai, tetapi sebenarnya sangat sederhana untuk mengkonversi blok
algoritma cipher untuk digunakan sebagai stream cipher. Caranya adalah dengan membangun keystream sebuah
generator. Sebuah keystream adalah urutan acak-panjang bit yang dapat digunakan untuk
mengaburkan isi dari aliran data dengan XOR-ing keystream dengan aliran data (Gambar 11.6). Jika keystream yang aman, maka begitu juga dihasilkan dienkripsi aliran data.
Idenya adalah analog dengan teknik yang digunakan dalam komunitas intelijen untuk menggagalkan
penyadap, di mana 'white noise' dimainkan untuk menyembunyikan percakapan di ruang sementara
masih merekam pembicaraan. Jika suara ruang berisik dan white noise dicatat
secara terpisah, percakapan dapat diputar kembali tanpa suara dengan mengurangi putih
kebisingan rekaman dari rekaman ruang berisik. Sebuah generator keystream dapat dibangun dengan iterasi fungsi matematika lebih arange dari nilai input untuk menghasilkan aliran kontinu nilai output. Nilai-nilai output kemudian concatenated untuk membuat blok plaintext, dan blok dienkripsi menggunakan kunci bersama oleh pengirim dan penerima. keystream dapat lebih disamarkan dengan menerapkan CBC. blok dienkripsi yang dihasilkan digunakan sebagai keystream.
Iterasi hampir setiap fungsi yang memberikan rentang nilai non-integer yang berbeda
akan lakukan untuk bahan sumber, tapi generator nomor acak umumnya digunakan dengan
mulai nilai iterasi yang disepakati antara pengirim dan penerima. untuk mempertahankan
kualitas layanan untuk aliran data, blok keystream harus diproduksi sedikit
aliran ciphertext menjelang waktu di mana mereka akan digunakan, dan proses yang menghasilkan mereka tidak harus menuntut begitu banyak usaha pengolahan bahwa aliran data tertunda.
Jadi pada prinsipnya, real-time data stream bisa dienkripsi sama aman sebagai
Data batched, asalkan kekuatan pemrosesan yang cukup tersedia untuk mengenkripsi
keystream secara real time. Tentu saja, beberapa perangkat yang dapat manfaat dari real-time
enkripsi, seperti ponsel, tidak dilengkapi dengan prosesor yang sangat kuat, dan
dalam kasus yang mungkin perlu untuk mengurangi keamanan dari algoritma keystream.
Desain algoritma kriptografi •
Ada banyak yang dirancang = kriptografi menyembunyikan nilai M dan membuatnya
praktis tidak mungkin untuk mengambil K lebih cepat daripada dengan kekerasan. semua enkripsi
algoritma bergantung pada manipulasi informasi-melestarikan M menggunakan prinsip berdasarkan
teori informasi [Shannon 1949]. Schneier [1996] menjelaskan prinsip-prinsip Shannon untuk
kebingungan dan difusi untuk menyembunyikan isi dari blok ciphertext M, menggabungkan dengan
K kunci ukuran yang cukup untuk membuat itu bukti terhadap serangan brute-force.
algoritma sehingga EKMMK
Kebingungan: operasi Non-destruktif seperti XOR dan pergeseran melingkar digunakan untuk
menggabungkan setiap blok plaintext dengan kunci, menghasilkan pola bit baru yang mengaburkan
hubungan antara blok di M dan {M}. Jika blok yang lebih besar dari beberapa karakter ini akan mengalahkan analisis didasarkan pada pengetahuan tentang frekuensi karakter. (Itu
Mesin Perang Dunia II Jerman Enigma digunakan dirantai blok tunggal huruf, dan akhirnya
dikalahkan oleh analisis statistik.) K
Difusi: Biasanya ada pengulangan dan redundansi dalam plaintext. Difusi
menghilang pola biasa yang menghasilkan oleh transposing bagian dari setiap blok plaintext.
Jika CBC digunakan, redundansi juga didistribusikan di seluruh teks yang lebih panjang. Aliran
cipher tidak dapat menggunakan difusi karena tidak ada blok. Dalam dua bagian berikutnya, kita menggambarkan desain beberapa algoritma praktis yang penting. Semua dari mereka telah dirancang dalam terang prinsip-prinsip di atas telah dikenakan analisis yang teliti dan dianggap aman terhadap semua serangan yang dikenal dengan selisih yang cukup besar dari keselamatan. Dengan pengecualian dari algoritma TEA, yang digambarkan untuk tujuan ilustrasi, algoritma yang dijelaskan di sini adalah di antara mereka yang paling banyak digunakan dalam aplikasi di mana keamanan yang kuat diperlukan. Dalam beberapa dari mereka masih ada beberapa kelemahan ringan atau bidang yang menjadi perhatian; ruang tidak memungkinkan kita untuk
menjelaskan semua orang kekhawatiran di sini, dan pembaca disebut Schneier [1996] untuk informasi lebih lanjut. Kami meringkas dan membandingkan keamanan dan kinerja algoritma dalam Bagian 11.5.1. Pembaca yang tidak memerlukan pemahaman tentang operasi algoritma kriptografi dapat menghilangkan Bagian 11.3.1 dan 11.3.2.
11.3.1 Rahasia-key (simetris) algoritma
Banyak algoritma kriptografi telah dikembangkan dan diterbitkan dalam beberapa tahun terakhir.
Schneier [1996] menjelaskan lebih dari 25 algoritma simetris, banyak yang ia mengidentifikasi sebagai aman terhadap serangan dikenal. Di sini kita memiliki ruang untuk menggambarkan hanya tiga dari
mereka. Kami telah memilih yang pertama, TEA, untuk kesederhanaan desain dan implementasi, dan kami menggunakannya untuk memberikan gambaran konkret dari sifat algoritma tersebut. Kami pergi untuk membahas DES dan algoritma IDEA dalam waktu kurang rinci. DES adalah
Gambar 11.7 TEA fungsi enkripsi
kekosongan mengenkripsi (unsigned k panjang [], unsigned teks panjang []) {
}
unsigned long y = teks [0], z = teks [1]; 1
unsigned delta panjang = 0x9e3779b9, sum = 0; int n; 2
untuk (n = 0; n <32; n ++) {3
sum + = delta; 4
y + = ((z << 4) + k [0]) ^ (z + sum) ^ ((z >> 5) + k [1]); 5
z + = ((y << 4) + k [2]) ^ (y + sum) ^ ((y >> 5) + k [3]);
6
}
teks [0] = y; teks [1] = z;
7 standar nasional AS selama bertahun-tahun, tetapi sekarang sebagian besar dari kepentingan sejarah karena
kunci 56-bit yang terlalu kecil untuk menahan serangan brute-force dengan hardware modern. IDE
menggunakan kunci 128-bit. Ini adalah salah satu algoritma enkripsi simetris blok yang paling efektif
dan baik pilihan serba untuk enkripsi massal. Pada tahun 1997, US National Institute untuk Standar dan Teknologi (NIST) mengeluarkan undangan untuk proposal untuk sebuah algoritma untuk menggantikan DES sebagai US Advanced Encryption Standard baru (AES). Pada Oktober 2000 pemenang dipilih dari 21 algoritma yang diajukan oleh kriptografer dari 11 negara. Algoritma Rijndael menang dipilih untuk kombinasi kekuatan dan efisiensi. Informasi lebih lanjut tentang hal itu diberikan di bawah ini.
TEA •
Prinsip-prinsip desain untuk algoritma simetris diuraikan di atas diilustrasikan
baik di Enkripsi kecil Algorithm (TEA) dikembangkan di Cambridge University
[Wheeler dan Needham 1994]. Fungsi enkripsi, diprogram dalam C, diberikan dalam
keseluruhan pada Gambar 11.7. Algoritma TEA menggunakan putaran Selain integer, XOR (yang ^ operator) dan bitwise pergeseran logis (<< dan >>) untuk mencapai difusi dan kebingungan dari pola bit di plaintext. plaintext adalah blok 64-bit direpresentasikan sebagai dua bilangan bulat 32-bit dalam teks vektor []. Kuncinya adalah 128 bit panjang, direpresentasikan sebagai empat bilangan bulat 32-bit.
Pada masing-masing dari 32 putaran, kedua bagian dari teks yang berulang kali dikombinasikan dengan
bergeser bagian dari kunci dan satu sama lain dalam baris 5 dan 6. Penggunaan XOR dan bergeser
bagian dari teks menyediakan kebingungan, dan pergeseran dan swapping dari dua
bagian dari teks menyediakan difusi. The non-berulang delta konstan dikombinasikan
dengan setiap bagian dari teks pada setiap siklus untuk mengaburkan kunci dalam kasus itu mungkin terungkap
oleh bagian teks yang tidak bervariasi. Fungsi dekripsi adalah kebalikan dari yang untuk
enkripsi dan diberikan pada Gambar 11.8. Program pendek ini menyediakan enkripsi secret-key aman dan cukup cepat. Hal ini agak lebih cepat dari algoritma DES, dan keringkasan program meminjamkan diri untuk optimasi dan implementasi hardware. Kunci 128-bit adalah aman terhadap serangan brute-force. Studi yang dilakukan oleh penulis dan lain-lain telah mengungkapkan hanya dua kelemahan yang sangat kecil, yang penulis dibahas dalam catatan berikutnya [Wheeler dan Needham 1997].
Gambar fungsi dekripsi 11.8 TEA
kekosongan mendekripsi (unsigned k panjang [], unsigned teks panjang []) {
}
unsigned long y = teks [0], z = teks [1];
unsigned long delta = 0x9e3779b9, sum = delta << 5; int n;
untuk (n = 0; n <32; n ++) {
z = ((y << 4) + k [2]) ^ (y + sum)
^ ((Y >> 5) + k [3]); y = ((z << 4) + k [0]) ^ (z + sum) ^
((Z >> 5)
+ K [1]);
sum = delta;
}
teks [0] = y; teks [1] = z;
Untuk menggambarkan penggunaannya, Gambar 11.9 menunjukkan prosedur sederhana yang menggunakan TEA untuk mengenkripsi dan mendekripsi sepasang file yang dibuka sebelumnya (menggunakan C library studio).
DES •
Data Encryption Standard (DES) [Badan Standar Nasional 1977] adalah
dikembangkan oleh IBM dan kemudian diadopsi sebagai standar nasional AS untuk pemerintah
dan aplikasi bisnis. Dalam standar ini, fungsi enkripsi memetakan sebuah 64-bit
masukan plaintext menjadi 64-bit output dienkripsi menggunakan kunci 56-bit. Algoritma ini memiliki 16
tahap kunci-dependent dikenal sebagai putaran, di mana data yang akan dienkripsi sedikit-diputar
oleh sejumlah bit ditentukan oleh kunci dan tiga transposisi kunci-independen.
Algoritma itu memakan waktu untuk tampil di perangkat lunak pada komputer dari
1970-an dan 1980-an, tapi itu diimplementasikan dalam perangkat keras VLSI cepat dan dapat dengan mudah
dimasukkan ke dalam antarmuka jaringan dan chip komunikasi lainnya.
Gambar 11.9 TEA digunakan
kekosongan teh (modus char, FILE * infile, FILE * outfile, unsigned k panjang []) {
/ * Mode 'e' untuk mengenkripsi, 'd' untuk mendekripsi, k [] adalah kuncinya. * /
Char ch, Text [8]; int i;
}
sementara (! feof (infile)) {
i = fread (Text, 1, 8, infile); / * Membaca 8 byte dari infile ke Text * /
if (i <= 0) break;
sementara (i <8) {Text [i ++] = '';} / * pad blok terakhir dengan spasi * /
switch (modus) {
Kasus 'e':
}
mengenkripsi (k, (unsigned long *) Teks); istirahat;
Kasus 'd':
mendekripsi (k, (unsigned long *) Teks); istirahat;
}
fwrite (Text, 1, 8, outfile); / * Menulis 8 byte dari teks ke outfile * /
Pada bulan Juni 1997, itu berhasil retak di brute-force dipublikasikan secara luas
menyerang. Serangan itu dilakukan dalam konteks kompetisi untuk menunjukkan kurangnya
keamanan enkripsi dengan kunci lebih pendek dari 128 bit [www.rsasecurity.com II]. SEBUAH
konsorsium pengguna internet menjalankan program aplikasi client pada PC mereka dan lainnya
workstation, yang jumlahnya mencapai 14.000 selama satu periode 24-jam [Curtin dan
Dolske 1998]. Program klien bertujuan untuk cracking kunci tertentu yang digunakan dalam diketahui
plaintext / ciphertext sampel dan kemudian menggunakannya untuk mendekripsi pesan tantangan rahasia. Itu
klien berinteraksi dengan server tunggal yang terkoordinasi pekerjaan mereka, mengeluarkan setiap klien
dengan rentang nilai kunci untuk memeriksa dan menerima laporan kemajuan dari mereka. khas
komputer klien menjalankan program client hanya sebagai kegiatan latar belakang dan memiliki
Kinerja kurang lebih sama dengan prosesor Pentium 200 MHz. Kuncinya adalah
retak di sekitar 12 minggu, setelah sekitar 25% dari kemungkinan 2
nilai-nilai yang telah diperiksa. Pada tahun 1998 mesin dikembangkan oleh Electronic Frontier
Yayasan [EFF 1998] yang berhasil dapat memecahkan kunci DES dalam sekitar tiga hari.
Meskipun masih digunakan di banyak aplikasi komersial dan lainnya, DES dalam Surat
bentuk dasar harus dianggap usang untuk perlindungan semua tapi rendah nilai
informasi. Sebuah solusi yang sering digunakan dikenal sebagai
triple-DES (atau 3DES) [ANSI 1985, Schneier 1996]. Ini melibatkan menerapkan DES tiga kali dengan dua tombol, KE 3 DES MEK1 K 2 DES K1D DES K2E DES K1 56 atau 6 10 1 dan KM =
Hal ini memberikan kekuatan terhadap serangan brute-force setara dengan panjang kunci 112 bit -
yang memadai di masa mendatang - tetapi memiliki kelemahan kinerja yang buruk
yang dihasilkan dari penerapan tiga dari suatu algoritma yang sudah lambat dengan yang modern
standar.
IDE •
Data Encryption Algorithm Internasional (IDEA) dikembangkan di
1990-an [Lai dan Massey 1990, Lai 1992] sebagai pengganti DES. Seperti TEA, menggunakan
kunci 128-bit untuk mengenkripsi blok 64-bit. algoritma didasarkan pada aljabar dari kelompok
dan memiliki delapan putaran XOR, penjumlahan modulo 2 dan perkalian. Untuk kedua DES dan
IDEA, fungsi yang sama digunakan untuk enkripsi dan dekripsi: properti yang berguna untuk
algoritma yang akan diimplementasikan dalam perangkat keras. 16 Kekuatan IDEA telah banyak dianalisis, dan tidak ada kelemahan yang signifikan telah ditemukan. Ia melakukan enkripsi dan dekripsi pada sekitar tiga kali kecepatan DES.
RC4 •
RC4 adalah stream cipher yang dikembangkan oleh Ronald Rivest [Rivest 1992b]. Kunci dapat
dari setiap panjang hingga 256 byte. RC4 mudah untuk menerapkan [Schneier 1996, pp. 397-8] dan
melakukan enkripsi dan dekripsi sekitar 10 kali lebih cepat sebagai DES. Oleh karena itu
diadopsi secara luas dalam aplikasi termasuk IEEE 802.11 jaringan WiFi, namun kelemahan
kemudian ditemukan oleh Fluhrer et al. [2001] yang memungkinkan penyerang untuk memecahkan
beberapa kunci. Hal ini menyebabkan desain ulang 802.11 keamanan (lihat Bagian 11.6.4 untuk informasi lebih lanjut).
AES •
Algoritma Rijndael terpilih menjadi Advanced Encryption Standard
algoritma oleh NIST dikembangkan oleh Joan Daemen dan Vincent Rijmen [Daemen dan
Rijmen 2000, 2002]. cipher memiliki panjang blok variabel dan panjang kunci, dengan spesifikasi untuk kunci dengan panjang 128, 192 atau 256 bit untuk mengenkripsi blok dengan 162:
panjang 128, 192 atau 256 bit. Kedua panjang blok dan panjang kunci dapat diperpanjang oleh
kelipatan 32 bit. Jumlah putaran dalam algoritma bervariasi 9-13
tergantung pada ukuran kunci dan blok. Rijndael dapat diimplementasikan secara efisien pada lebar
berbagai prosesor dan perangkat keras.
11.3.2 Umum-key (asimetris) algoritma
Hanya beberapa skema public-key praktis telah dikembangkan sampai saat ini. mereka bergantung
pada penggunaan fungsi trap-door angka besar untuk menghasilkan kunci. Tombol K
adalah sepasang jumlah yang sangat besar, dan fungsi enkripsi melakukan operasi, seperti eksponensial pada M, menggunakan salah satu dari mereka. Dekripsi adalah fungsi yang sama dengan menggunakan kunci lainnya. Jika eksponensial menggunakan aritmatika modular, dapat ditunjukkan bahwa hasilnya adalah sama dengan nilai asli dari M; yaitu: dan K d D (K d, E (K, M)) = MA pokok yang ingin berpartisipasi dalam komunikasi yang aman dengan orang lain membuat sepasang kunci, Ke dan Ked, dan menjaga dekripsi kunci Kd rahasia. Kunci enkripsi Ke dapat diketahui publik untuk digunakan oleh siapa saja yang ingin berkomunikasi. Kunci enkripsi kunci K Ke
dapat dilihat sebagai bagian dari fungsi enkripsi satu arah E, dan dekripsi adalah bagian dari pengetahuan rahasia yang memungkinkan p pokok membalik enkripsi. Setiap pemegang Kde
(Yang banyak tersedia) dapat mengenkripsi pesan {M}, tetapi hanya kepala sekolah yang memiliki rahasia K dapat beroperasi pintu jebakan.
Penggunaan fungsi dari sejumlah besar menyebabkan biaya pengolahan besar dalam komputasi d
fungsi E dan D. Kita akan lihat nanti bahwa ini adalah masalah yang harus ditangani
dengan menggunakan kunci publik hanya di tahap awal sesi komunikasi yang aman. Itu
Algoritma RSA tentu yang paling dikenal luas algoritma kunci publik dan kami
menggambarkannya dalam beberapa detail di sini. kelas lain dari algoritma didasarkan pada fungsi berasal
dari perilaku kurva eliptik dalam pesawat. Algoritma ini menawarkan kemungkinan
lebih murah enkripsi dan dekripsi fungsi dengan tingkat keamanan yang sama, tetapi mereka
aplikasi praktis kurang maju dan kita berurusan dengan mereka hanya sebentar.
RSA •
The Rivest, Shamir dan Adelman (RSA) desain untuk cipher kunci publik [Rivest
et al. 1978] didasarkan pada penggunaan produk dari dua bilangan prima yang sangat besar (lebih besar
dari 10), bergantung pada fakta bahwa penentuan faktor prima dari besar seperti
angka begitu komputasi sulit untuk menjadi efektif mungkin. 100
Meskipun penyelidikan ekstensif ada kelemahan telah ditemukan di dalamnya, dan sekarang sangat
banyak digunakan. Garis besar metode berikut. Untuk menemukan sepasang kunci <e, d>:
1. Pilih dua bilangan prima besar, P dan Q (masing-masing lebih dari 10), dan bentuk
N = P Q
Z = (P-1)
(Q-1)
2. Untuk d, pilih nomor yang relatif prima dengan Z (yaitu, seperti yang d memiliki
faktor tidak sama dengan Z).
Kami menggambarkan perhitungan yang terlibat menggunakan nilai integer kecil untuk P dan Q:
P = 13, Q = 17 N = 221, Z = 192 d = 5 100 Eke
3. Untuk menemukan e, memecahkan persamaan:
e d = 1 Z mod
Artinya, e d adalah elemen terkecil habis dibagi d dalam seri Z + 1, 2Z + 1, 3Z + 1, ....
e d = 1 mod 192 = 1, 193, 385, ...
385 habis dibagi d
e = 3
85/5 = 77
Untuk mengenkripsi teks menggunakan metode RSA, plaintext dibagi menjadi blok yang sama
panjang k bit, di mana 2 <N (yang, seperti bahwa nilai numerik dari blok selalu
kurang dari N; dalam aplikasi praktis, k biasanya di kisaran 512-1024). kk = 7, karena 2
7 = 128 Fungsi untuk mengenkripsi satu blok plaintext M adalah:
E '(e, N, M) = Me N mod untuk pesan M, ciphertext adalah M 77
mod 221 Fungsi untuk mendekripsi sebuah blok teks terenkripsi c untuk menghasilkan blok plaintext asli:
D '(d, N, c) = cd mod N Rivest, Shamir dan Adelman membuktikan bahwa E' dan D 'yang saling bertolak (yaitu, E' (D '(x)) = D' (E '(x) ) = x) fo
r semua nilai P dalam kisaran 0 P N.
Dua parameter e, N dapat dianggap sebagai kunci untuk fungsi enkripsi, dan
sama parameter d, N merupakan kunci untuk fungsi dekripsi. Jadi kita dapat menulis
Ke = <e, N> dan Kd = <d, N>, dan kita mendapatkan fungsi enkripsi E (notasi KE sini menunjukkan bahwa pesan terenkripsi dapat didekripsi hanya oleh pemegang
dari Kd kunci pribadi) dan D (Kd, {M} K, M) = {M}) = M.
Perlu dicatat salah satu kelemahan potensial dari semua algoritma kunci-publik - karena
kunci publik tersedia untuk penyerang, mereka dapat dengan mudah menghasilkan pesan terenkripsi.
Dengan demikian mereka dapat mencoba untuk mendekripsi pesan yang tidak diketahui oleh mendalam mengenkripsi
bit urutan sewenang-wenang sampai pertandingan dengan pesan target tercapai. Serangan ini,
yang dikenal sebagai serangan plaintext yang dipilih, dikalahkan dengan memastikan bahwa semua pesan
lebih panjang dari panjang kunci, sehingga bentuk serangan brute-force kurang layak dari
serangan langsung pada tombol.
Penerima berniat informasi rahasia harus mempublikasikan atau pasangan distributethe <e, N> sambil menjaga d rahasia. Publikasi <e, N> tidak kompromi
kerahasiaan d, karena setiap upaya untuk menentukan d membutuhkan pengetahuan yang asli
Perdana nomor P dan Q, dan ini hanya bisa didapatkan dengan faktorisasi N.
Anjak jumlah besar (kita ingat bahwa P dan Q dipilih untuk menjadi> 10, sehingga N> 10 200) adalah sangat memakan waktu, bahkan pada sangat komputer performa tinggi. Di
akan mengambil lebih dari empat miliar tahun dengan algoritma terbaik dikenal pada komputer yang melakukan satu 1978, Rivest et al. menyimpulkan bahwa anjak sejumlah besar seperti 10
200 100K
(Juta instruksi per detik. Sebuah perhitungan yang sama untuk komputer saat ini akan
mengurangi waktu ini untuk sekitar satu juta tahun,
RSA Corporation telah mengeluarkan serangkaian tantangan untuk faktor nomor lebih
dari 100 angka desimal [www.rsasecurity.com III]. Pada saat penulisan, jumlah
hingga 174 angka desimal (576 digit biner) telah berhasil diperhitungkan, sehingga penggunaan
dari algoritma RSA dengan kunci 512-bit jelas tidak dapat diterima lemah untuk berbagai tujuan.
RSA Corporation (pemegang paten dalam algoritma RSA) merekomendasikan kunci
panjang minimal 768 bit, atau sekitar 230 angka desimal, untuk jangka panjang (~ 20 tahun)
keamanan. Tombol besar seperti 2048 bit digunakan dalam beberapa aplikasi.
Perhitungan kekuatan di atas mengasumsikan bahwa anjak piutang saat ini dikenal
algoritma yang terbaik yang tersedia. RSA dan bentuk lain dari kriptografi asimetris yang
menggunakan nomor perdana perkalian sebagai fungsi satu arah mereka akan rentan jika lebih cepat
algoritma faktorisasi ditemukan.
algoritma kurva eliptik •
Sebuah metode untuk menghasilkan publik / pasangan kunci pribadi berdasarkan pada sifat-sifat kurva eliptik telah dikembangkan dan diuji. Keterangan lengkap dapat ditemukan dalam buku oleh Menezes dikhususkan untuk subjek [Menezes 1993]. Tombol yang berasal dari cabang yang berbeda matematika, dan tidak seperti RSA keamanan mereka tidak dependupon kesulitan anjak jumlah besar. kunci pendek yang aman, dan persyaratan pengolahan untuk enkripsi dan dekripsi lebih rendah daripada mereka untuk RSA. algoritma enkripsi kurva eliptik kemungkinan akan diadopsi lebih luas di masa depan, terutama dalam sistem seperti perangkat mobile menggabungkan, yang memiliki sumber daya yang terbatas pengolahan. Matematika yang relevan melibatkan beberapa sifat yang cukup kompleks kurva berbentuk bulat panjang dan berada di luar cakupan buku ini.
11.3.3 protokol kriptografi Hybrid
Kunci publik kriptografi nyaman untuk perdagangan elektronik karena tidak ada kebutuhan untuk mekanisme kunci-distribusi aman. (Ada kebutuhan untuk otentikasi kunci publik,
tapi ini jauh lebih ringan, hanya membutuhkan sertifikat kunci publik untuk dikirim dengan
kunci.) Tetapi pengolahan biaya kriptografi kunci publik terlalu tinggi untuk enkripsi
bahkan pesan menengah biasanya ditemui dalam perdagangan elektronik. Itu
solusi diadopsi di sebagian besar sistem terdistribusi skala besar adalah dengan menggunakan enkripsi hybrid
skema di mana kriptografi kunci publik digunakan untuk mengotentikasi pihak dan untuk
mengenkripsi pertukaran kunci rahasia, yang digunakan untuk semua komunikasi selanjutnya.
Kami menjelaskan pelaksanaan protokol hybrid dalam studi kasus TLS dalam Bagian 11.6.3.
11.4 tanda tangan digital
tanda tangan digital yang kuat merupakan persyaratan penting untuk sistem aman. Mereka
diperlukan untuk mengesahkan potongan informasi tertentu - misalnya, untuk memberikan
laporan yang dapat dipercaya mengikat identitas pengguna untuk kunci publik atau mengikat beberapa
hak akses atau peran untuk identitas pengguna.
Kebutuhan untuk tanda tangan dalam berbagai jenis bisnis dan transaksi pribadi
luar sengketa. tanda tangan tulisan tangan telah digunakan sebagai alat verifikasi
dokumen selama dokumen telah ada. tanda tangan tulisan tangan yang digunakan untuk
memenuhi kebutuhan penerima dokumen untuk memverifikasi bahwa dokumen tersebut adalah:
Otentik: Ini meyakinkan penerima bahwa penandatangan sengaja menandatangani dokumen
dan belum diubah oleh orang lain. Unforgeable: Menyediakan bukti bahwa penandatangan, dan tidak ada orang lain, sengaja menandatangani dokumen. Tanda tangan tidak dapat disalin dan ditempatkan pada dokumen lain. Yang tidak dapat ditipu: signer tidak dapat dipercaya menyangkal bahwa dokumen itu ditandatangani oleh mereka. Pada kenyataannya, tidak ada sifat-sifat yang diinginkan dari penandatanganan sepenuhnya dicapai dengan tanda tangan konvensional - pemalsuan dan salinan sulit dideteksi, dokumen dapat
diubah setelah penandatanganan dan penandatangan kadang-kadang tertipu untuk menandatangani dokumen tanpa sadar atau tidak sadar - tapi kami bersedia untuk hidup dengan ketidaksempurnaan mereka karena
sulitnya kecurangan dan risiko deteksi. Seperti tanda tangan tulisan tangan,
tanda tangan digital tergantung pada pengikatan atribut yang unik dan rahasia penandatangan
untuk dokumen. Dalam kasus tanda tangan tulisan tangan, rahasianya adalah pola tulisan tangan
penandatangan. Sifat dokumen digital yang diselenggarakan di file yang tersimpan atau pesan yang
benar-benar berbeda dari dokumen kertas. dokumen digital yang sepele
mudah untuk menghasilkan, menyalin dan mengubah. Cukup menambahkan identitas originator,
apakah sebagai string teks, foto atau gambar tulisan tangan, tidak memiliki nilai untuk
keperluan verifikasi. Apa yang dibutuhkan adalah sarana untuk ditarik kembali mengikat identitas penandatangan untuk seluruh urutan bit mewakili dokumen. Ini harus memenuhi persyaratan pertama di atas, untuk keaslian. Seperti dengan tanda tangan tulisan tangan, meskipun, tanggal dokumen tidak dapat dijamin oleh tanda tangan. Penerima dokumen yang ditandatangani tahu hanya bahwa
Dokumen itu ditandatangani sebelum mereka menerimanya. Mengenai non-penolakan, ada masalah yang tidak timbul dengan tanda tangan tulisan tangan. Bagaimana jika penandatangan sengaja mengungkapkan kunci pribadi mereka dan kemudian menyangkal telah menandatangani, mengatakan bahwa ada orang lain yang bisa melakukannya, karena kuncinya tidak pribadi? Beberapa protokol telah dikembangkan untuk mengatasi masalah ini di bawah judul tanda tangan digital bisa dipungkiri [Schneier 1996], tetapi mereka menambahkan jauh kompleksitas. Sebuah dokumen dengan tanda tangan digital dapat jauh lebih tahan terhadap pemalsuan dari satu tulisan tangan. Tapi kata 'asli' memiliki sedikit makna dengan mengacu dokumen digital. Seperti yang akan kita lihat dalam diskusi kita tentang kebutuhan perdagangan elektronik, tanda tangan digital saja tidak bisa, misalnya, mencegah double-pengeluaran kas elektronik - langkah-langkah lain yang diperlukan untuk mencegah hal itu. Kami sekarang menggambarkan dua
teknik untuk menandatangani dokumen secara digital, yang mengikat identitas kepala sekolah ke
dokumen. Kedua tergantung pada penggunaan kriptografi.
penandatanganan digital •
Dokumen atau pesan elektronik M dapat ditandatangani oleh kepala A
dengan mengenkripsi salinan M dengan KA kunci dan melampirkan ke salinan plaintext M dan
identifier A. Dokumen tersebut ditandatangani kemudian terdiri dari: M, A, [M] KA. tanda tangan dapat.
No comments:
Post a Comment