SpongeBob SquarePants esetblog: PERTEMUAN XIII (SISTEM TERDISTRIBUSI)

WELCOME

ESETBLOG.BLOGGSPOT.COM

Rabu, 22 Januari 2014

PERTEMUAN XIII (SISTEM TERDISTRIBUSI)


SECURITY
CHAPTER 8

Prinsip terakhir dari sistem terdistribusi yang kita bahas adalah keamanan.Keamanan tidak berarti prinsip paling penting.Namun, orang dapat berargumentasi bahwa itu adalah salah satu prinsip yang paling sulit, karena keamanan harus menyebar di seluruh sistem.Sebuah desain cacat tunggal sehubungan dengan keamanan dapat membuat semua langkah-langkah keamanan tidak berguna. Dalam bab ini, kami berkonsentrasi pada berbagai mekanisme yang umumnya tergabung dalam sistem terdistribusi untuk mendukung keamanan.
Kita mulai dengan memperkenalkan isu-isu dasar keamanan. Membangun semua jenis mekanisme keamanan ke dalam sistem tidak benar-benar masuk akal kecuali diketahui bagaimana mekanisme tersebut akan digunakan, dan terhadap apa. Ini mengharuskan kita tahu tentang kebijakan keamanan yang harus ditegakkan. Gagasan tentang kebijakan keamanan, bersama dengan beberapa masalah desain umum untuk mekanisme yang membantu menegakkan kebijakan tersebut, akan dibahas lebih dulu. Kami juga sempat menyinggung kriptografi yang diperlukan.
Keamanan dalam sistem terdistribusi secara kasar dapat dibagi menjadi dua bagian. Salah satu bagian menyangkut komunikasi antara pengguna atau proses, possibly'residing oii mesin yang berbeda. Mekanisme utama untuk memastikan komunikasi yang aman adalah bahwa dari saluran aman.Saluran aman, dan lebih khusus lagi, otentikasi, integritas pesan, dan kerahasiaan, dibahas dalam bagian terpisah.Bagian lain keprihatinan otorisasi, yang berkaitan dengan memastikan bahwa proses hanya mendapat hak akses ke sumber daya dalam sistem terdistribusi itu berhak. Otorisasi tercakup dalam bagian terpisah yang berhubungan dengan kontrol akses.Selain mekanisme kontrol akses tradisional, kami juga fokus pada pengendalian akses saat harus berurusan dengan kode mobile seperti agen.
Saluran yang aman dan kontrol akses membutuhkan mekanisme untuk membagikan kunci kriptografi, tetapi juga mekanisme untuk menambah dan menghapus pengguna dari sistem.Topik ini dibahas oleh apa yang dikenal sebagai manajemen keamanan. Dalam bagian terpisah, kami membahas masalah yang berhubungan dengan pengelolaan kunci kriptografi, manajemen kelompok aman, dan membagikan sertifikat yang membuktikan pemilik berhak untuk mengakses sumber daya tertentu.
Akhirnya, kita membuat hal-hal konkret dengan membahas dua contoh bagaimana keamanan muncul dalam sistem terdistribusi.Sesame adalah sistem yang lengkap yang dapat diintegrasikan ke dalam sistem terdistribusi untuk menangani keamanan. Sebagai contoh yang sama sekali berbeda dari keamanan sistem terdistribusi, kita secara singkat membahas sistem pembayaran elektronik, yang memungkinkan pengguna dan pedagang di lokasi yang berbeda untuk aman melakukan suatu transaksi pemesanan dan pembayaran barang.
8.1 Pengantar Keamanan
Kita mulai deskripsi kita tentang keamanan pada sistem terdistribusi dengan mengambil melihat beberapa masalah keamanan umum. Pertama, perlu untuk mendefinisikan apa sistem yang aman. Kami membedakan kebijakan keamanan dari mekanisme keamanan, dan lihatlah sistem wide-area Globus yang kebijakan keamanan telah secara eksplisit dirumuskan.Kekhawatiran kedua kami adalah untuk mempertimbangkan beberapa masalah desain umum untuk sistem aman.Akhirnya, kita secara singkat membahas beberapa algoritma kriptografi, yang memainkan peran kunci dalam desain protokol keamanan.
8.1.1 Ancaman Keamanan, Kebijakan, dan Mekanisme
Keamanan dalam sistem komputer sangat terkait dengan gagasan keteguhan. Secara informal, sistem komputer diandalkan adalah salah satu yang dibenarkan kita percaya tc memberikan layanan (Laprie, 1995). Seperti disebutkan dalam Bab. 7, ketergantunganmeliputi ketersediaan, kehandalan, keamanan, dan kemudahan perawatan.Namun, jika kita ingin menaruh kepercayaan kita dalam sebuah sistem komputer, maka kerahasiaan dan integritas juga harus diperhitungkan.Kerahasiaan mengacu pada properti dari sebuah sistem komputer dimana informasi yang diungkapkan hanya kepada pihak yang berwenang. Integritas adalah karakteristik bahwa perubahan terhadap aset sistem dapat dibuat hanya dengan cara resmi. Dengan kata lain, perubahan yang tidak tepat dalam sistem komputer yang aman harus terdeteksi dan dipulihkan. Aset utama dari setiap sistem komputer perangkat keras, perangkat lunak, dan data.
Cara lain untuk melihat keamanan dalam sistem komputer adalah bahwa kita mencoba untuk melindungi layanan dan data yang menawarkan terhadap ancaman keamanan. Ada empat jenis ancaman keamanan untuk mempertimbangkan (Pfleeger, 1997):
1.      Penangkapan
2.      Gangguan
3.      Modifikasi
4.      Pembuatan
Intersepsi mengacu pada situasi bahwa pihak yang tidak sah telah memperoleh akses ke layanan atau data. Sebuah contoh khas dari intersepsi adalah di mana komunikasi antara dua pihak telah terdengar oleh orang lain. Intersepsi juga terjadi ketika data disalin secara ilegal, misalnya, setelah membobol direktori pribadi seseorang dalam sistem file.
Contoh dari gangguan adalah ketika file rusak atau hilang. Secara umum, gangguan mengacu pada situasi di mana layanan atau data menjadi tidak tersedia, tidak dapat digunakan, hancur, dan sebagainya. Dalam pengertian ini, penolakan serangan layanan dimana seseorang jahat mencoba untuk membuat layanan tidak dapat diakses pihak lain adalah ancaman keamanan yang mengklasifikasikan sebagai gangguan.
Modifikasi tidak sah melibatkan perubahan data atau merusak layanan sehingga tidak lagi melekat dengan spesifikasi aslinya.Contoh modifikasi termasuk mencegat dan kemudian mengubah data yang dikirimkan, merusak entri basis data, dan mengubah program sehingga diam-diam log aktivitas user-nya.Fabrikasi mengacu pada situasi di mana data atau kegiatan tambahan yang dihasilkan yang biasanya tidak akan ada. Sebagai contoh, seorang penyusup mencoba untuk menambahkan sebuah entri ke file password atau database.Demikian juga, kadang-kadang mungkin untuk masuk ke sistem dengan memutar pesan sebelumnya terkirim.Kita akan menemukan contoh-contoh tersebut kemudian dalam bab ini.Perhatikan bahwa gangguan, modifikasi, dan fabrikasi masing-masing dapat dilihat sebagai bentuk pemalsuan data.Hanya menyatakan bahwa sistem harus dapat melindungi diri terhadap semua ancaman keamanan yang mungkin bukan cara untuk benar-benar membangun sebuah sistem yang aman.
Yang pertama diperlukan adalah deskripsi persyaratan keamanan, yaitu, kebijakan keamanan.Sebuah kebijakan keamanan menjelaskan secara tepat tindakan entitas dalam sistem diperbolehkan untuk mengambil dan mana yang dilarang.Entitas termasuk pengguna, layanan, data, mesin, dan sebagainya.Setelah kebijakan keamanan telah ditetapkan, menjadi mungkin untuk berkonsentrasi pada mekanisme keamanan dimana kebijakan dapat ditegakkan. Mekanisme keamanan penting adalah:
1.      Enkripsi
2.      Otentikasi
3.      Otorisasi
4.      Audit
Enkripsi adalah fundamental bagi keamanan komputer.Enkripsi mengubah data menjadi sesuatu penyerang tidak dapat mengerti. Dengan kata lain, enkripsi menyediakan sarana untuk melaksanakan kerahasiaan. Selain itu, enkripsi memungkinkan kita untuk memeriksa.Data hether telah dimodifikasi.Dengan demikian juga menyediakan dukungan untuk pemeriksaan integritas.Otentikasi digunakan untuk memverifikasi identitas yang diklaim pengguna, klien, server, dan sebagainya. Dalam kasus klien, premis dasar adalah bahwa sebelum layanan akan melakukan pekerjaan untuk klien, layanan harus belajar identitas klien. Biasanya, pengguna dikonfirmasi melalui password, tetapi ada banyak cara lain untuk authenticaxe klien.Setelah klien telah dikonfirmasi, maka perlu untuk memeriksa apakah klien berwenang untuk melakukan tindakan yang diminta.Akses ke catatan dalam database medis adalah contoh yang khas. Tergantung pada siapa yang mengakses database, izin dapat diberikan untuk membaca catatan, untuk mengubah bidang-bidang tertentu dalam catatan, atau untuk menambah atau menghapus catatan.
Alat audit yang digunakan untuk melacak klien yang diakses apa, dan jalan mana. Meskipun audit tidak benar-benar memberikan perlindungan terhadap ancaman keamanan, audit log dapat sangat berguna untuk analisis pelanggaran keamanan, dan subsequendy mengambil tindakan terhadap penyusup. Untuk alasan ini, penyerang umumnya tertarik untuk tidak meninggalkan jejak apapun yang akhirnya dapat menyebabkan mengekspos identitas mereka.Dalam pengertian ini, akses penebangan membuat menyerang kadang-kadang bisnis yang lebih berisiko.
Contoh: The Globus Arsitektur Keamanan
Gagasan kebijakan keamanan dan peran mekanisme keamanan bermain di sistem terdistribusi untuk menegakkan kebijakan tersebut sering terbaik dijelaskan dengan melihat pada contoh konkret.Pertimbangkan kebijakan keamanan yang ditetapkan untuk sistem wide-area Globus (Chervenak et al., 2000). Globus adalah sistem pendukung perhitungan terdistribusi skala besar di mana banyak host, file, dan sumber daya lain secara bersamaan digunakan untuk melakukan suatu perhitungan. Lingkungan tersebut juga disebut sebagai komputasi grid (Foster dan Kesselman, 1998).Sumber daya dalam grid ini sering berada dalam domain administrasi yang berbeda yang mungkin terletak di berbagai belahan dunia.
Karena pengguna dan sumber daya yang luas dalam jumlah dan tersebar luas di seluruh domain administrasi yang berbeda, keamanan sangat penting. Untuk merancang dan benar menggunakan mekanisme keamanan, perlu untuk memahami apa sebenarnya perlu dilindungi, dan apa asumsi tersebut sehubungan dengan keamanan. Menyederhanakan hal agak, kebijakan keamanan untuk Globus memerlukan delapan pernyataan berikut, yang kami jelaskan di bawah (Foster et al, 1998.):
1.      Lingkungan terdiri dari beberapa domain administrasi.
2.      Operasi lokal (yaitu, operasi yang dilakukan hanya dalam satu domain) dikenakan hanya kebijakan keamanan domain lokal.
3.      Operasi global (yaitu, operasi yang melibatkan beberapa domain) meminta pemrakarsa untuk diketahui dalam setiap domain di mana operasi dilakukan.
4.      Operasi antara entitas dalam domain yang berbeda memerlukan otentikasi bersama.
5.      Global authentication menggantikan otentikasi lokal.
6.      Mengontrol akses ke sumber daya tunduk pada keamanan lokal saja.
7.      Pengguna dapat mendelegasikan hak untuk proses.
8.      Sekelompok proses dalam domain yang sama dapat berbagi kredensial.
Globus mengasumsikan bahwa lingkungan terdiri dari beberapa domain administrasi, dimana setiap domain memiliki kebijakan keamanan lokal sendiri.Hal ini diasumsikan bahwa kebijakan lokal tidak dapat diubah hanya karena domain berpartisipasi dalam Globus, atau dapat kebijakan keseluruhan Globus menimpa keputusan keamanan lokal. Akibatnya, keamanan di Globus akan membatasi diri pada operasi yang mempengaruhi beberapa domain.
Terkait dengan masalah ini adalah bahwa Globus mengasumsikan bahwa operasi yang sepenuhnya lokal ke domain yang tunduk hanya pada kebijakan keamanan yang domain. Dengan kata lain, jika operasi dimulai dan dilaksanakan dalam satu domain, semua masalah keamanan akan dilakukan dengan menggunakan langkah-langkah keamanan lokal saja. Globus tidak akan memberlakukan langkah-langkah tambahan.
Kebijakan keamanan The Globus menyatakan bahwa permintaan untuk operasi dapat dimulai baik secara global maupun lokal. Pemrakarsa, baik itu pengguna atau proses bertindak atas nama pengguna, harus secara lokal dikenal dalam setiap domain di mana operasi yang dilakukan. Misalnya, pengguna mungkin memiliki nama global yang dipetakan ke nama domain lokal yang spesifik. Bagaimana tepatnya pemetaan yang terjadi yang tersisa untuk setiap domain.
Sebuah pernyataan kebijakan penting adalah bahwa operasi antara entitas dalam domain yang berbeda memerlukan otentikasi bersama.Ini berarti, misalnya, bahwa jika pengguna dalam satu domain memanfaatkan layanan dari domain lain, maka identitas pengguna harus diverifikasi. Sama pentingnya adalah bahwa pengguna harus yakin bahwa ia menggunakan layanan ia berpikir ia gunakan. Kami kembali ke otentikasi, luas, kemudian dalam bab ini.
Di atas dua isu kebijakan digabungkan menjadi persyaratan keamanan berikut. Jika identitas pengguna telah diverifikasi, dan user yang juga dikenal secara lokal di domain, maka ia dapat bertindak sebagai yang dikonfirmasi untuk domain lokal. Ini berarti bahwa Globus mensyaratkan bahwa tindakan otentikasi sistem yang sesuai cukup untuk mempertimbangkan bahwa pengguna telah dikonfirmasi untuk domain jauh (di mana pengguna yang dikenal) ketika mengakses sumber daya dalam domain tersebut.Otentikasi tambahan dengan domain yang seharusnya tidak perlu.Setelah pengguna (atau proses bertindak atas nama pengguna) telah dikonfirmasi, masih diperlukan untuk memverifikasi hak akses yang tepat widi terhadap sumber daya. Misalnya, pengguna yang ingin memodifikasi file pertama harus dikonfirmasi, setelah itu dapat diperiksa apakah user yang sebenarnya diizinkan untuk memodifikasi file.Kebijakan keamanan Globus menyatakan bahwa keputusan kontrol akses tersebut yang seluruhnya terbuat lokal dalam domain di mana sumber daya diakses berada.Untuk menjelaskan pernyataan ketujuh, pertimbangkan agen mobile di Globus yang melakukan tugas dengan memulai beberapa operasi di domain yang berbeda, satu demi satu.Seperti agen itu mungkin memakan waktu lama untuk menyelesaikan tugasnya. Untuk menghindari komunikasi dengan pengguna atas nama siapa agen bertindak, Globus mensyaratkan bahwa proses dapat didelegasikan subset dari hak-hak pengguna. Akibatnya, dengan mengesahkan agen dan kemudian memeriksa hak, Globus harus dapat memungkinkan agen untuk memulai operasi tanpa harus menghubungi pemilik agen.
Sebagai pernyataan kebijakan akhir, Globus mensyaratkan bahwa kelompok proses yang berjalan dengan satu domain dan bertindak atas nama pengguna yang sama dapat berbagi satu set kredensial. Seperti yang akan dijelaskan di bawah ini, mandat yang diperlukan untuk otentikasi. Pernyataan ini pada dasarnya membuka jalan untuk solusi scalable untuk otentikasi dengan tidak menuntut bahwa setiap proses membawa mengatur sendiri unik kredensial.Kebijakan keamanan Globus memungkinkan desainer untuk berkonsentrasi pada pengembangan solusi secara keseluruhan untuk keamanan.Dengan asumsi bahwa setiap domain memberlakukan kebijakan keamanan sendiri, Globus berkonsentrasi hanya pada ancaman keamanan yang melibatkan beberapa domain.Secara khusus, kebijakan keamanan menunjukkan bahwa masalah desain penting adalah representasi dari pengguna dalam domain jauh, dan alokasi sumber daya dari domain jauh untuk user atau wakilnya.Apa Globus karena itu terutama perlu, mekanisme untuk otentikasi lintas domain, dan membuat pengguna dikenal dalam domain jauh.Untuk tujuan ini, dua jenis perwakilan diperkenalkan. Sebuah proxy pengguna adalah proses yang diberikan izin untuk bertindak atas nama pengguna untuk jangka waktu terbatas. Sumber daya diwakili oleh proxy sumber daya. Sebuah proxy sumber daya adalah proses yang berjalan dalam satu domain tertentu yang digunakan untuk menerjemahkan operasi global pada sumber daya dalam operasi lokal yang sesuai dengan kebijakan keamanan bahwa domain tertentu. Sebagai contoh, proxy pengguna biasanya akan berkomunikasi dengan proxy sumber daya ketika akses ke sumber daya yang diperlukan.
Arsitektur keamanan Globus dasarnya terdiri dari entitas seperti pengguna, proxy pengguna, proxy sumber daya, dan proses umum. Entitas ini terletak di domain dan berinteraksi satu sama lain. Secara khusus, arsitektur keamanan mendefinisikan empat protokol yang berbeda, seperti ditunjukkan pada Gambar.8-1 (lihat juga Foster et al., 1998).
Protokol pertama menjelaskan secara tepat bagaimana pengguna dapat membuat proxy pengguna dan hak delegasi ke proxy tersebut. Secara khusus, dalam rangka untuk membiarkan tindakan proksi pengguna atas nama user-nya, pengguna memberikan proxy set sesuai mandat.Protokol kedua menentukan bagaimana proxy pengguna dapat meminta alokasi sumber daya dalam domain jauh. Pada intinya, protokol memberitahu proxy sumber daya untuk membuat proses dalam domain jauh setelah saling otentikasi telah terjadi. Proses itu merupakan pengguna (seperti halnya
domain yang sama dengan sumber daya yang diminta. Proses ini diberikan akses ke sumber daya tunduk pada keputusan kontrol akses lokal ke domain tersebut.
Sebuah proses dibuat dalam domain jauh dapat memulai perhitungan tambahan di domain lainnya. Akibatnya, protokol diperlukan untuk mengalokasikan sumber daya dalam domain jauh seperti yang diminta oleh proses selain proxy pengguna. Dalam Globus, jenis alokasi dilakukan melalui proxy pengguna, dengan membiarkan proses memiliki asosiasi pengguna permintaan proxy alokasi sumber daya, pada dasarnya mengikuti protokol kedua.
Yang keempat dan terakhir protokol dalam arsitektur keamanan Globus adalah cara pengguna dapat membuat dirinya dikenal di domain. Dengan asumsi bahwa pengguna memiliki account di domain, apa yang perlu dibentuk adalah bahwa mandat systemwide dimiliki oleh proxy pengguna secara otomatis dikonversi ke kredensial yang diakui oleh domain yang spesifik. Protokol mengatur bagaimana pemetaan antara mandat global dan lokal yang bisa didaftarkan oleh pengguna dalam sebuah tabel pemetaan lokal untuk domain tersebut.
Rincian spesifik dari masing-masing protokol yang dijelaskan dalam (Foster et al., 1998). Isu penting di sini adalah bahwa arsitektur keamanan Globus mencerminkan kebijakan keamanan seperti yang disebutkan di atas. Mekanisme yang digunakan untuk mengimplementasikan arsitektur yang, khususnya protokol disebutkan di atas, yang umum untuk banyak sistem terdistribusi, dan dibahas secara luas dalam bab ini. Kesulitan dalam merancang aman sistem terdistribusi tidak begitu banyak disebabkan oleh mekanisme keamanan, tetapi dengan memutuskan bagaimana mekanisme tersebut akan digunakan untuk menegakkan kebijakan keamanan. Pada bagian berikutnya, kita mempertimbangkan beberapa keputusan desain.
1.1.2   Masalah Desain
Sebuah sistem terdistribusi, atau sistem komputer dalam hal ini, harus menyediakan jasa keamanan di mana berbagai kebijakan keamanan dapat diimplementasikan. Ada sejumlah isu desain penting yang perlu dipertimbangkan ketika menerapkan layanan keamanan untuk tujuan umum. Pada halaman berikut, kita akan membahas tiga masalah ini: fokus kontrol, layering mekanisme keamanan, dan kesederhanaan (lihat juga Gollmann, 1999).

Fokus Kontrol
Ketika mempertimbangkan perlindungan dari (mungkin didistribusikan) aplikasi, pada dasarnya ada tiga pendekatan yang berbeda yang dapat diikuti, seperti ditunjukkan pada Gambar. 8-2. Pendekatan pertama adalah untuk berkonsentrasi langsung pada perlindungan data yang terkait dengan aplikasi tersebut. Dengan langsung, kita berarti bahwa terlepas dari berbagai operasi yang mungkin dapat dilakukan pada item data, perhatian utama adalah untuk memastikan integritas data. Biasanya, jenis perlindungan terjadi dalam sistem database di mana berbagai kendala integritas dapat dirumuskan bahwa secara otomatis diperiksa setiap kali item data yang dimodifikasi (lihat, misalnya, UU-man, 1988).
Pendekatan kedua adalah untuk berkonsentrasi pada perlindungan dengan menentukan mana yang operasi dapat dipanggil, dan oleh siapa, kapan data atau sumber daya tertentu untuk diakses. Dalam hal ini, fokus kontrol sangat terkait dengan akses mekanisme kontrol, yang akan kita bahas secara ekstensif kemudian dalam bab ini. Sebagai contoh, dalam sistem berbasis objek, mungkin memutuskan untuk menentukan untuk setiap metode yang dibuat tersedia untuk klien klien yang diijinkan untuk memanggil metode tersebut. Atau, metode kontrol akses dapat diterapkan pada sebuah antarmuka keseluruhan yang ditawarkan oleh suatu objek, atau mati seluruh obyek itu sendiri. Pendekatan ini sehingga memungkinkan untuk berbagai granularities kontrol akses.
Pendekatan ketiga adalah untuk fokus langsung pada pengguna dengan mengambil langkah-langkah dengan mana hanya orang-orang tertentu memiliki akses ke aplikasi tersebut, terlepas dari operasi mereka ingin melaksanakan. Sebagai contoh, sebuah database dalam bank dapat dilindungi dengan menolak akses kepada siapapun kecuali manajemen yang lebih tinggi. Sebagai contoh lain, di banyak universitas, data dan aplikasi tertentu dibatasi untuk digunakan oleh anggota fakultas dan staf saja, sedangkan akses oleh siswa tidak diperbolehkan. Akibatnya, kontrol difokuskan pada mendefinisikan peran bahwa pengguna memiliki, dan sekali peran pengguna telah diverifikasi, akses ke sebuah sumberdaya baik diberikan atau ditolak. Sebagai bagian dari merancang aman peran kemudian dalam bab ini.







Layering Mekanisme Keamanan
Suatu hal yang penting dalam merancang sistem yang aman adalah untuk memutuskan di mana mekanisme tingkat keamanan harus ditempatkan. Tingkat dalam konteks ini berkaitan dengan organisasi logis dari suatu sistem menjadi beberapa lapisan. Sebagai contoh, jaringan komputer sering disusun dalam lapisan berikut beberapa model referensi, seperti yang kita bahas dalam Bab. 2. Dalam Chap. 1, kami memperkenalkan organisasi sistem terdistribusi terdiri dari lapisan yang terpisah untuk aplikasi, middleware, layanan sistem operasi, dan kernel sistem operasi. Menggabungkan organisasi berlapis jaringan komputer dan sistem terdistribusi, menyebabkan kira-kira dengan apa yang ditampilkan pada Gambar. 8-3.
Pada intinya, Gambar.8-3memisahkanlayanantujuan umumdarilayanan komunikasi.Pemisahan inipenting untuk memahamilayeringkeamanandalam sistemterdistribusidan, khususnya, gagasankepercayaan.Perbedaan antara



1997). Di mana mekanisme keamanan lapisan ditempatkan tergantung pada kepercayaan klien memiliki dalam bagaimana aman layanan berada dalam lapisan tertentu.Sebagai contoh, pertimbangkan sebuah organisasi yang terletak di lokasi yang berbeda yang terhubung melalui layanan komunikasi seperti Switched Data Service Multimegabit (SMDS). Jaringan SMDS dapat dianggap sebagai tulang punggung tingkat link yang menghubungkan berbagai jaringan area lokal di lokasi mungkin secara geografis, seperti ditunjukkan pada Gambar. 8-4 (untuk informasi lebih lanjut tentang SMDS see (Klessig dan Tesink, 1995).



Keamanan dapat diberikan dengan menempatkan perangkat enkripsi pada setiap router SMDS, seperti yang juga ditampilkan pada Gambar. 8-4. Perangkat ini secara otomatis mengenkripsi dan mendekripsi paket yang dikirim antara situs, tetapi sebaliknya tidak menyediakan komunikasi yang aman antara host di situs yang sama. Jika Alice di situs A mengirimkan pesan ke Bob di situs B, dan dia khawatir tentang pesannya dicegat, ia setidaknya harus percaya bahwa enkripsi lalu lintas intersite untuk bekerja dengan baik. Ini berarti, misalnya, bahwa ia harus mempercayai administrator sistem pada kedua situs telah mengambil langkah yang tepat terhadap gangguan dengan perangkat.
Sekarang anggaplah bahwa Alice tidak mempercayai keamanan lalu lintas intersite. Dia kemudian dapat memutuskan untuk mengambil tindakan sendiri dengan menggunakan layanan transportasi tingkat keamanan seperti SSL. SSL singkatan dari Secure Socket Layer dan dapat digunakan untuk aman mengirim pesan di koneksi TCP. Kami akan membahas rincian SSL di Chap. 11 ketika membahas keamanan di Web. Yang penting untuk dicatat adalah bahwa SSL memungkinkan Alice untuk membuat sambungan aman ke Bob. Semua pesan tingkat transportasi akan dienkripsi dan pada tingkat SMDS juga, tapi itu bukan urusan Alice. Dalam kasus ini, Alice harus menaruh kepercayaan ke dalam SSL. Dengan kata lain, dia percaya SSL yang aman.
Dalam sistem terdistribusi, mekanisme keamanan sering ditempatkan dalam lapisan middleware. Jika Alice tidak percaya SSL, dia mungkin ingin menggunakan layanan RPC aman setempat. Sekali lagi, dia harus mempercayai layanan RPC ini untuk melakukan apa yang dijanjikan, seperti tidak membocorkan informasi atau benar otentikasi klien dan server.
Pelayanan keamanan yang ditempatkan di lapisan middleware dari sistem terdistribusi dapat dipercaya hanya jika layanan yang mereka andalkan untuk menjadi aman memang aman. Sebagai contoh, jika sebuah layanan RPC aman sebagian dilakukan dengan cara SSL, kemudian percaya pada layanan RPC tergantung pada seberapa banyak kepercayaan seseorang dalam SSL. Jika keamanan SSL tidak dipercaya, maka tidak ada kepercayaan dalam keamanan dari layanan RPC.

Distribusi Mekanisme Keamanan
Dependensi antara layanan mengenai kepercayaan mengarah pada gagasan Computing Basis Trusted (TCB). TCB adalah himpunan semua mekanisme keamanan dalam (terdistribusi) sistem komputer yang diperlukan untuk menegakkan kebijakan keamanan. Semakin kecil TCB, semakin baik. Jika sistem terdistribusi dibangun sebagai middleware pada sistem operasi jaringan yang ada, keamanan tergantung pada keamanan yang mendasari sistem operasi lokal. Dengan kata lain, TCB dalam sistem terdistribusi dapat mencakup sistem operasi lokal di berbagai host.
Pertimbangkan sebuah file server dalam sebuah sistem berkas terdistribusi. Seperti server mungkin perlu mengandalkan mekanisme perlindungan berbagai yang ditawarkan oleh sistem operasi lokal. Mekanisme tersebut termasuk tidak hanya orang-orang untuk melindungi file terhadap akses oleh proses selain file server, tetapi juga mekanisme untuk melindungi file server dari yang jahat dibawa turun.Sistem terdistribusi middleware berbasis sehingga membutuhkan kepercayaan dalam sistem operasi lokal yang ada mereka bergantung pada. Jika kepercayaan tersebut tidak ada, dien bagian dari fungsi sistem operasi lokal mungkin perlu dimasukkan ke dalam sistem terdistribusi itu sendiri. Pertimbangkan sebuah sistem operasi mikrokernel, di mana layanan sistem operasi yang paling dijalankan sebagai proses user biasa. Dalam hal ini, sistem file, misalnya, dapat sepenuhnya digantikan oleh salah satu disesuaikan dengan kebutuhan spesifik mati dari sistem terdistribusi, termasuk langkah-langkah keamanan berbagai perusahaan. Perhatikan bahwa pendekatan ini secara bertahap dapat menggantikan sistem terdistribusi berbasis middleware oleh sistem operasi terdistribusi seperti yang telah kita bahas dalam Bab. 1.
Konsisten dengan pendekatan ini adalah untuk memisahkan layanan keamanan dari jenis layanan dengan mendistribusikan layanan di seluruh mesin yang berbeda tergantung pada keamanan yang diperlukan. Sebagai contoh, untuk sistem file terdistribusi aman, dimungkinkan untuk mengisolasi file server dari klien dengan menempatkan server pada mesin dengan sistem operasi dipercaya, mungkin menjalankan sistem file aman berdedikasi. Klien dan aplikasi mereka ditempatkan pada mesin yang tak dikenal.Pemisahan ini efektif mengurangi TCB untuk jumlah yang relatif kecil dari mesin dan komponen perangkat lunak. Dengan kemudian melindungi mesin-mesin terhadap serangan keamanan dari luar, kepercayaan keseluruhan dalam keamanan sistem terdistribusi dapat ditingkatkan. Mencegah klien dan aplikasi mereka akses langsung ke layanan penting diikuti dalam Antarmuka Mengurangi untuk Secure System Komponen (RISSC) pendekatan, seperti yang dijelaskan dalam (Neumann, 1995). Dalam pendekatan RISSC, setiap keamanan server kritis ditempatkan pada mesin yang terpisah terisolasi dari sistem pengguna akhir menggunakan tingkat rendah antarmuka jaringan yang aman, seperti ditunjukkan pada Gambar. 8-5. Klien dan aplikasi mereka berjalan di mesin yang berbeda dan dapat mengakses server aman hanya melalui antarmuka jaringan.



Kesederhanaan
Isu lain desain penting yang berkaitan dengan memutuskan di mana lapisan untuk menempatkan mekanisme keamanan adalah kesederhanaan. Merancang sistem komputer aman umumnya dianggap sebagai tugas yang sulit.Akibatnya, jika seorang desainer sistem dapat menggunakan beberapa, mekanisme sederhana yang mudah dipahami dan dipercaya untuk bekerja, semakin baik.Sayangnya, mekanisme sederhana sering tidak cukup untuk melaksanakan kebijakan keamanan.Pertimbangkan lagi situasi di mana Alice ingin mengirim pesan ke Bob seperti dibahas di atas. Enkripsi tingkat link adalah mekanisme sederhana dan mudah dimengerti untuk melindungi terhadap intersepsi lalu lintas pesan intersite: Namun, jauh lebih diperlukan jika Alice ingin memastikan bahwa hanya Bob akan menerima pesannya. Dalam hal ini, layanan otentikasi pengguna tingkat yang diperlukan, dan Alice mungkin perlu menyadari bagaimana layanan tersebut bekerja dalam rangka untuk menempatkan kepercayaannya di dalamnya.Tingkat otentikasi pengguna sehingga mungkin memerlukan setidaknya gagasan kunci kriptografi dan kesadaran mekanisme seperti sertifikat, meskipun fakta bahwa layanan keamanan banyak yang sangat otomatis dan tersembunyi dari pengguna.
Dalam kasus lain, aplikasi itu sendiri secara inheren kompleks dan memperkenalkan keamanan hanya membuat keadaan menjadi lebih buruk. Sebuah aplikasi domain contoh yang melibatkan protokol keamanan kompleks (seperti yang kita bahas nanti dalam bab ini) adalah bahwa sistem pembayaran digital. Kompleksitas pembayaran digital sering disebabkan oleh fakta bahwa beberapa pihak perlu berkomunikasi untuk melakukan pembayaran.Dalam kasus ini, adalah penting bahwa mekanisme yang mendasari yang digunakan untuk mengimplementasikan protokol relatif sederhana dan mudah dimengerti. Kesederhanaan akan memberikan kontribusi kepercayaan bahwa pengguna akhir akan dimasukkan ke dalam aplikasi dan, lebih penting lagi, akan memberikan kontribusi untuk meyakinkan para desainer bahwa sistem tidak memiliki lubang keamanan.
1.1.2   Kriptografi
Dasar untuk keamanan dalam sistem terdistribusi adalah penggunaan teknik kriptografi.Ide dasar dari penerapan teknik ini adalah sederhana. Pertimbangkan pengirim S ingin mengirimkan pesan m ke R. penerima Untuk melindungi pesan terhadap ancaman keamanan, pengirim pertama mengenkripsi menjadi sebuah pesan m dimengerti \ dan kemudian mengirimkan m 'untuk R. R, pada gilirannya, harus mendekripsi diterima pesan ke dalam bentuk m aslinya.
Enkripsi dan dekripsi yang dilakukan dengan menggunakan metode kriptografi parameter dengan kunci, seperti ditunjukkan pada Gambar.8-6. Bentuk asli dari pesan yang dikirimkan disebut plaintext, ditunjukkan sebagai P pada Gambar.8-6, bentuk terenkripsi yang disebut sebagai ciphertext, digambarkan sebagai C.






Untuk menggambarkan berbagai protokol keamanan yang digunakan dalam membangun layanan keamanan untuk sistem terdistribusi, hal ini berguna untuk memiliki notasi untuk berhubungan plaintext, ciphertext, dan kunci. Setelah konvensi penulisan umum, kita akan menggunakanC = EK (P) untuk menunjukkan bahwa ciphertext C diperoleh dengan mengenkripsi plaintext P menggunakan kunci K. Demikian juga, P = DK {C) digunakan untuk mengekspresikan dekripsi ciphertext C menggunakan kunci K, sehingga plaintext P .
Kembali ke contoh kita ditunjukkan pada Gambar.8-6, sementara mentransfer pesan sebagai ciphertext C, ada tiga serangan yang berbeda yang kita butuhkan untuk melindungi, dan enkripsi yang membantu.
Pertama, penyusup dapat mencegat pesan tanpa baik pengirim atau penerima menyadari bahwa menguping terjadi. Tentu saja, jika pesan yang dikirim telah dienkripsi sedemikian rupa sehingga tidak dapat dengan mudah didekripsi tanpa kunci yang tepat, intersepsi tidak berguna: penyusup hanya akan melihat data yang tidak penting. (By the way, fakta saja bahwa pesan sedang dikirim terkadang cukup bagi penyusup untuk menarik kesimpulan. Misalnya, jika selama krisis dunia jumlah lalu lintas ke Gedung Putih tiba-tiba turun ke nol sementara jumlah lalu lintas pergi ke sebuah gunung tertentu di Colorado meningkat dengan jumlah yang sama, mungkin ada informasi yang berguna dalam mengetahui bahwa.)
Tipe kedua dari serangan yang perlu ditangani adalah bahwa memodifikasi pesan.Memodifikasi plaintext mudah, memodifikasi ciphertext yang telah dienkripsi dengan baik jauh lebih sulit karena penyusup pertama harus mendekripsi pesan sebelum bermakna dapat memodifikasinya. Selain itu, ia juga harus benar mengenkripsi lagi atau penerima mungkin melihat bahwa pesan telah dirusak.
Jenis ketiga adalah serangan ketika memasukkan penyusup pesan terenkripsi ke dalam sistem komunikasi, mencoba untuk membuat R percaya pesan-pesan ini datang dari S. Sekali lagi, seperti yang akan kita lihat nanti dalam bab ini, enkripsi dapat membantu melindungi terhadap serangan tersebut. Perhatikan bahwa jika seorang penyusup dapat memodifikasi pesan, ia juga dapat menyisipkan pesan.
Ada perbedaan mendasar antara sistem kriptografi yang berbeda, berdasarkan pada apakah atau tidak enkripsi dan kunci dekripsi adalah sama. Dalam cryptosystem simetris, kunci yang sama digunakan untuk mengenkripsi dan mendekripsi pesan. Dengan kata lain,
P - DK (EK (P))
Kriptografi Symmetric juga disebut sebagai kunci rahasia atau sistem kunci bersama, karena pengirim dan penerima yang diperlukan untuk berbagi kunci yang sama, dan untuk memastikan perlindungan yang bekerja, tombol ini bersama harus dirahasiakan, tidak ada orang lain yang diizinkan untuk melihat kunci. Kami akan menggunakan notasi KA B untuk menunjukkan kunci bersama oleh A dan B.
Dalam cryptosystem asimetris, kunci untuk enkripsi dan dekripsi berbeda, tetapi bersama-sama membentuk pasangan yang unik. Dengan kata lain, ada KE terpisah kunci untuk enkripsi dan satu untuk dekripsi, KD, sehingga
P = DKO (EKI {P))
Salah satu kunci dalam kriptografi asimetris bersifat rahasia, yang lain dibuat publik. Untuk alasan ini, kriptografi asimetris juga disebut sebagai sistem kunci publik. Dalam apa yang berikut, kita menggunakan notasi untuk menunjukkan kunci publik milik A, dan K4 sebagai kunci pribadi yang sesuai.Mengantisipasi diskusi rinci tentang protokol keamanan kemudian dalam bab ini, yang salah satu enkripsi atau kunci dekripsi yang benar-benar membuat masyarakat tergantung pada bagaimana tombol digunakan. Misalnya, jika Alice ingin mengirim pesan rahasia kepada Bob, dia harus menggunakan kunci publik Bob untuk mengenkripsi pesan. Karena Bob adalah satu-satunya memegang kunci dekripsi pribadi, ia juga satu-satunya orang yang dapat mendekripsi pesan.
Di sisi lain, anggaplah bahwa Bob ingin tahu pasti bahwa pesan yang ia baru saja menerima benar-benar datang dari Alice. Dalam hal ini, Alice dapat menjaga kunci enkripsi nya pribadi untuk mengenkripsi pesan dia mengirimkan. Jika Bob berhasil dapat mendekripsi pesan menggunakan kunci publik Alice (dan plaintext dalam pesan memiliki informasi yang cukup untuk memberi makna bagi Bob), dia tahu pesan itu pasti berasal dari Alice, karena kunci dekripsi unik terkait dengan kunci enkripsi .Kita kembali ke algoritma tersebut secara rinci di bawah.
Salah satu aplikasi akhir kriptografi dalam sistem terdistribusi adalah penggunaan fungsi hash. Sebuah fungsi hash H mengambil pesan m panjang sewenang-wenang sebagai masukan dan menghasilkan bit string h memiliki panjang tetap sebagai output:
h = H {m)
Sebuah h hash sebanding dengan bit ekstra yang ditambahkan ke pesan dalam sistem komunikasikation untuk memungkinkan deteksi kesalahan, seperti cek edundancy cyclicr (CRC).
Fungsi hash yang digunakan dalam sistem kriptografi memiliki sejumlah properti. Pertama, mereka adalah fungsi satu arah, yang berarti bahwa komputasi tidak layak untuk menemukan m masukan yang sesuai dengan output h dikenal. Di sisi lain, komputasi / 1 m dari mudah. Kedua, mereka memiliki sifat resistensi tabrakan yang lemah, yang berarti bahwa diberi m input dan output terkait h = H (m), merupakan komputasi layak untuk menemukan yang lain, yang berbeda masukan m '* m, sehingga H (m) = H (m '). Akhirnya, fungsi hash kriptografi juga memiliki properti tahan tabrakan yang kuat, yang berarti bahwa, bila hanya diberikan H, merupakan komputasi layak untuk menemukan dua yang berbeda nilai input m dan m ', sehingga H (m) = Nya').
Sifat yang mirip berlaku untuk setiap fungsi enkripsi E dan tombol yang digunakan. Selanjutnya, untuk setiap fungsi enkripsi E, itu harus komputasi tidak layak untuk menemukan kunci K ketika diberi plaintext P dan terkait ciphertext C = EK (P). Demikian juga, analog dengan resistensi tabrakan, ketika diberi plaintext P dan K kunci, itu harus mustahil untuk menemukan K kunci lain 'sehingga EK {P) = EK-(P).
Seni dan ilmu merancang algoritma untuk sistem kriptografi memiliki sejarah panjang (Kahn, 1967), dan membangun sistem yang aman sering mengejutkan sulit, atau bahkan tidak mungkin (Schneier, 2000).Hal ini di luar cakupan buku ini untuk membahas salah satu dari algoritma ini secara rinci. Namun, untuk memberikan beberapa kesan kriptografi dalam sistem komputer, kita akan secara singkat menyajikan tiga algoritma representatif. Informasi lengkap mengenai algoritma kriptografi ini dan lainnya dapat ditemukan dalam (Kaufman et al, 1995;.Menezes et al "1996, dan Schneier, 1996).Sebelum kita masuk ke rincian dari berbagai protokol, Gambar.8-7 merangkum notasi dan singkatan kita gunakan.
Notation
Description
KA, B
Secret key shared by A and B
Public key of A
Private key of A

Symmetrickriptografi: DES
Contoh pertamadarialgoritmakriptografiadalahData EncryptionStandard(DES), yang digunakan untukkriptografisimetris. DESdirancang untuk beroperasipada 64-bitblok data. Satu blokditransformasikan menjaditerenkripsi(64 bit) blokoutput dalam16 putaran, di manasetiap putaranmenggunakan kunci48-bit yang berbeda untukenkripsi. Masing-masing16kunciberasal darimaster key56-bit, seperti ditunjukkan pada Gambar. 8-8(a). Sebelumblok inputmulai16nyaputaranenkripsi, pertama-tama subjectkepermutasiawal,yangterbaliktersebutkemudianditerapkan padaoutputterenkripsiyang mengarah keblokoutput akhir.
Setiap putaranenkripsiidanaublok64-bit yang dihasilkan olehputaransebelumnya saya-1sebagai input, seperti ditunjukkan pada Gambar. 8-8(b). 64bitdibagi menjadibagiankiriL, _idanbagian kananmasing-masing berisi32 bit. Bagian kanandigunakan untukbagian kiridi babak berikutnya, yaitu, L, -=i. Kerja kerasyang dilakukandalam fungsimangier/. Fungsi ini membutuhkanblokj32-bitsebagai input, bersama dengan48-bit kunci Khdan menghasilkanblok32-bityangXOR denganmenghasilkanRt. (. XORmerupakan singkatan darioperasieksklusifatau) FungsimangierpertamamemperluasKe blok48-bit dan XORsdenganKi. Hasilnyadibagi menjadidelapanpotonganenambit masing-masing. Setiappotonganini kemudian dimasukkanke dalamS-kotak yang berbeda, yang merupakan operasiyang penggantimasing-masing dari64kemungkinaninput6-bit menjadi satudari16 kemungkinanoutput4-bit.
Delapanpotonganoutputempatbit masing-masingkemudian digabungkanmenjadi sebuahnilai 32-bit dan permutedlagi.Kunci48-bit AT, -untuk putaraniberasal darikunci master56-bit sebagai berikut. Pertama, kunci masterpermuteddandibagi menjadi dua bagian28-bit. Untuksetiap putaran, masing-masing setengahdiputarpertamasatu ataudua bitke kiri, setelah itu 24 bityang diambil. Bersamadengan 24bitdaridiputarsetengah lainnya, kunci48-bit con¬dibangun.Rinciansatu putaranenkripsiditunjukkan pada Gambar. 8-9.



Gambar 8.8. (a) prinsip DES garis besar satu putaran enkripsi
Prinsip DES cukup sederhana, namun algoritma sulit untuk istirahat menggunakan metode analisis. Menggunakan serangan brute-force dengan hanya mencari kunci yang akan melakukan pekerjaan telah menjadi mudah sebagaimana telah ditunjukkan dalam beberapa kali. Menggunakan DES tiga kali dalam mode enkripsi-dekripsi-enkripsi khusus dengan kunci yang berbeda tampaknya aman untuk saat ini.
Apa yang membuat DES sulit untuk menyerang dengan analisis adalah bahwa alasan di balik desain tidak pernah jelas. Sebagai contoh, telah menunjukkan bahwa lainnya S-box daripada yang saat ini digunakan dalam standar, membuat algoritma substansial lebih mudah untuk istirahat (lihat Pfleeger, 1997 untuk analisa singkat DES).Sebuah alasan untuk desain dan penggunaan dari S-box diterbitkan hanya setelah "baru" model serangan telah dirancang pada 1990-an. DES terbukti cukup tahan terhadap serangan ini, dan desainer yang mengungkapkan bahwa model baru dirancang sudah diketahui mereka ketika mereka mengembangkan DES pada tahun 1974 (Coppersmith, 1994).
DES telah digunakan sebagai teknik enkripsi standar selama bertahun-tahun, tapi saat ini sedang dalam proses digantikan oleh blok algoritma Rijndael 128 bit. Ada juga varian dengan tombol yang lebih besar dan blok data yang lebih besar. Algoritma telah dirancang untuk menjadi cukup cepat sehingga bahkan dapat diimplementasikan pada smart card, yang merupakan wilayah aplikasi semakin penting bagi kriptografi.







Gambar 8-9. Rincian pembangkitan kunci per-bulat dalam DES.
Kriptografi Public-Key: RSA
Contoh kedua dari algoritma kriptografi banyak digunakan untuk sistem kunci publik: RSA, dinamai penemunya Rivest, Shamir, dan Adleman (1978). Keamanan RSA berasal dari fakta bahwa tidak ada metode yang dikenal efisien menemukan faktor prima dari jumlah besar.Hal ini dapat ditunjukkan bahwa setiap bilangan bulat dapat ditulis sebagai produk dari bilangan prima. Misalnya, 2100 dapat ditulis sebagai
2100 = 2x2x3x5x5x7
membuat 2, 3, 5, dan 7 faktor prima pada tahun 2100. Di RSA, kunci pribadi dan publik yang dibangun dari bilangan prima yang sangat besar (terdiri dari ratusan digit desimal). Ternyata, melanggar RSA adalah setara dengan menemukan dua bilangan prima.Sejauh ini, ini telah menunjukkan untuk menjadi komputasi tidak layak meskipun matematika bekerja pada masalah selama berabad-abad.
Menghasilkan kunci pribadi dan publik membutuhkan empat langkah:
1.      Pilih dua bilangan prima yang sangat besar, p dan q.
2.      Hitung n = p xq dan z = ip - 1) x {q - 1).
3.      Pilih nomor d yang relatif prima terhadap z.
4.      Hitung jumlah e sehingga e x d = 1 mod z
Salah satu nomor, katakanlah d, dapat kemudian digunakan untuk dekripsi, sedangkan e digunakan untuk enkripsi. Hanya satu dari dua dibuat publik, tergantung pada apa algoritma yang digunakan untuk.
Mari kita mempertimbangkan kasus (topi Alice ingin menjaga dia mengirimkan pesan ke Bob rahasia. Dengan kata lain, dia ingin memastikan bahwa tidak ada seorang pun kecuali Bob dapat mencegat dan membaca pesan padanya. RSA menganggap setiap pesan m menjadi hanya string bit. Setiap pesan pertama dibagi menjadi panjang tetap blok, dimana setiap blok mit diartikan sebagai bilangan biner, harus berada dalam interval 0 <m, <n.
Untuk mengenkripsi pesan m, pengirim menghitung untuk setiap blok m, nilai Cj = m '(mod n), yang kemudian dikirim ke penerima. Dekripsi di sisi penerima berlangsung dengan komputasi mt = cf (mod n). Perhatikan bahwa untuk enkripsi, baik e dan n dibutuhkan, sedangkan dekripsi membutuhkan pengetahuan nilai-nilai d dan n.
Ketika membandingkan RSA kriptografi simetris seperti DES, RSA memiliki kelemahan menjadi komputasi yang lebih kompleks.Ternyata, mengenkripsi pesan menggunakan RSA adalah sekitar 100-1000 kali lebih lambat dari DES, tergantung pada teknik pelaksanaan yang digunakan. Akibatnya, banyak sistem kriptografi RSA menggunakan untuk bertukar hanya berbagi kunci dalam cara yang aman, tetapi jauh lebih sedikit untuk benar-benar mengenkripsi data "normal". Kita akan melihat contoh dari kombinasi dua teknik ini kemudian berhasil bagian.
Fungsi hash: MD5
Sebagai contoh terakhir dari algoritma kriptografi banyak digunakan, kita lihatlah MD5 (Rivest, 1992). MD5 adalah fungsi hash untuk menghitung 128-bit, panjang tetap message digest dari panjang string masukan biner sewenang-wenang. Input string pertama melangkah untuk total panjang 448 bit (modulo 512), setelah itu panjang bit string asli ditambahkan sebagai integer 64-bit. Akibatnya, input dikonversi menjadi serangkaian 512-bit blok.
Struktur algoritma ditunjukkan pada Gambar. 8-10. Dimulai dengan beberapa constant nilai 128-bit, hasil algoritma di k fase, di mana k adalah jumlah blok 512-bit yang terdiri dari pesan empuk. Pada setiap fase, 128-bit menggali dihitung dari blok 512-bit data yang berasal dari pesan empuk, dan 128-bit digest dihitung dalam fase sebelumnya. Sebuah fase di MD5 terdiri dari empat putaran perhitungan, di mana setiap putaran menggunakan salah satu dari empat fungsi berikut:
F (x, y, z) = (x DAN y) ATAU ((TIDAK x) DAN z)
G (x, y, z) = (x DAN z) ATAU (y DAN (TIDAK z))
H (x, y, z) = x XOR XOR y z
I (x, y, z) = y XOR (x OR (TIDAK z))
Masing-masing fungsi beroperasi pada variabel 32-bit x, y, dan z. Untuk menggambarkan bagaimana fungsi-fungsi ini digunakan, mempertimbangkan 512-bit blok b dari pesan empuk yang sedang diproses selama fase k. Blok b dibagi menjadi 16 subblocks 32-bit
Gambar 8-10. Struktur MD5.
b0, b; ¿) 5.Selama putaran pertama, fungsi F digunakan untuk mengubah empat variabel (dinotasikan sebagai p, q, r, dan s, masing-masing) di 16 iterasi seperti ditunjukkan pada Gambar.8-11 Variabel-variabel dibawa ke setiap putaran berikutnya, dan setelah fase suatu telah selesai, diteruskan ke tahap berikutnya. Ada total 64 standar konstanta C,. Notasi j: <ss: / t digunakan untuk menunjukkan kiri memutar: bit dalam x dialihkan «posisi ke kiri, di mana sedikit bergeser dari kiri ditempatkan di posisi paling kanan.




                         Gambar 8-11 16 iterasi selama putaran pertama dalam fase di MD5
Putaran kedua menggunakan fungsi G dengan cara yang sama, sedangkan H dan / digunakan di babak ketiga dan keempat, masing-masing. Setiap langkah demikian terdiri dari 64 iterasi, setelah tahap berikutnya dimulai, tapi sekarang dengan nilai-nilai yang p, q, r, s dan memiliki pada saat itu.
8.2 SALURAN SECURE
Dalam bab-bab sebelumnya, kita sering menggunakan model client-server sebagai cara mudah untuk mengatur sistem terdistribusi. Dalam model ini, server mungkin didistribusikan dan direplikasi, tetapi juga bertindak sebagai klien sehubungan dengan server lain. Ketika mempertimbangkan keamanan pada sistem terdistribusi, hal ini berguna untuk kembali berpikir dalam hal klien dan server.Secara khusus, membuat sistem terdistribusi mengamankan dasarnya bermuara pada dua isu utama.Masalah pertama adalah bagaimana membuat komunikasi antara klien dan server yang aman.Komunikasi yang aman memerlukan otentikasi pihak yang berkomunikasi, tetapi juga memastikan integritas pesan dan mungkin kerahasiaan juga.Sebagai bagian dari masalah ini, kita juga perlu mempertimbangkan melindungi komunikasi dalam sekelompok server.
Isu kedua adalah bahwa otorisasi: sekali server telah menerima permintaan dari klien, bagaimana bisa mengetahui apakah bahwa klien berwenang untuk memiliki permintaan yang dilakukan? Otorisasi berkaitan dengan masalah akses pengendalian terhadap sumber daya, yang akan kita bahas secara ekstensif dalam bagian berikutnya. Pada bagian ini, kami berkonsentrasi untuk melindungi komunikasi dalam sistem terdistribusi.
Masalah melindungi komunikasi antara klien dan server, dapat dianggap dalam hal menyiapkan saluran aman antara berkomunikasi ikatan (Voydock dan Kent, 1983).Sebuah saluran aman melindungi pengirim dan penerima terhadap intersepsi, modifikasi, dan fabrikasi pesan.Ini tidak pasti juga melindungi terhadap gangguan. Melindungi pesan terhadap intersepsi dilakukan dengan memastikan kerahasiaan: saluran aman memastikan bahwa pesan-pesan yang tidak bisa menguping oleh penyusup. Melindungi terhadap modifikasi dan fabrication oleh penyusup dilakukan melalui protokol untuk saling otentikasi dan integritas pesan.Pada halaman berikut, pertama kita membahas berbagai protokol yang dapat digunakan untuk otentikasi, menggunakan simetris serta sistem kriptografi kunci publik.Sebuah penjelasan rinci tentang otentikasi yang mendasari logika dapat ditemukan dalam (Lampson et al "1992).Kami mendiskusikan kerahasiaan dan integritas pesan secara terpisah.
8.2.1 Otentikasi
Sebelum pergi ke rincian berbagai protokol otentikasi, adalah berguna mencatat bahwa otentikasi dan integritas pesan tidak bisa tanpa satu sama lain. Perhatikan, misalnya, suatu sistem terdistribusi yang mendukung otentifikasi ¬ tion dari dua pihak yang berkomunikasi, tetapi tidak menyediakan mekanisme untuk memastikan integritas pesan. Dalam sistem seperti itu, Bob bisa tahu pasti bahwa Alice adalah pengirim pesan m. Namun, jika Bob tidak dapat diberikan jaminan bahwa m belum dimodifikasi selama transmisi, apa gunanya itu dia tahu bahwa Alice dikirim (versi asli) ml Demikian juga, misalkan hanya integritas pesan yang didukung, tapi tidak ada mekanisme ada untuk otentikasi. Ketika Bob menerima pesan yang menyatakan bahwa ia baru saja memenangkan $ 1.000.000 dalam lotre, betapa bahagianya dia bisa jika ia tidak dapat memverifikasi bahwa pesan itu dikirim oleh penyelenggara lotere itu?
Akibatnya, otentikasi dan integritas pesan harus pergi bersama-sama.Dalam banyak protokol, kombinasi bekerja kira-kira sebagai berikut.Sekali lagi, menganggap bahwa Alice dan Bob ingin berkomunikasi, dan bahwa Alice mengambil inisiatif dalam mendirikan saluran. Alice dimulai dengan mengirimkan pesan ke Bob, atau ke pihak ketiga terpercaya yang akan membantu mengatur saluran. Setelah saluran telah dibentuk, Alice tahu pasti bahwa dia sedang berbicara dengan Bob, dan Bob tahu pasti dia bicara ke Alice, mereka bisa bertukar pesan.
Untuk selanjutnya memastikan integritas dari pesan data yang dipertukarkan setelah otentikasi telah terjadi, itu adalah praktek umum untuk menggunakan secret-key cryptography dengan cara kunci sesi. Kunci sesi adalah kunci bersama yang digunakan untuk mengenkripsi pesan untuk integritas dan mungkin juga kerahasiaan. Key seperti itu umumnya hanya digunakan selama ada saluran. Bila saluran tertutup, kunci sesi terkait dibuang (atau sebenarnya, aman hancur).Kami kembali ke kunci sesi di bawah ini.
Otentikasi Berdasarkan Kunci Rahasia Bersama
Mari kita mulai dengan mengambil melihat protokol otentikasi berdasarkan kunci rahasia yang sudah dibagi antara Alice dan Bob. Cara kedua sebetulnya berhasil memperoleh kunci bersama dalam cara yang aman dibahas nanti dalam bab ini. Dalam deskripsi protokol, Alice dan Bob disingkat dengan A dan B, masing - masing, dan kunci mereka berbagi dilambangkan sebagai KAB. Protokol ini menggunakan pendekatan umum dimana satu pihak menantang yang lain untuk respon yang dapat benar hanya jika yang lain mengetahui kunci rahasia bersama. Solusi tersebut juga dikenal sebagai protokol challenge-response.
Dalam kasus otentikasi didasarkan pada kunci rahasia bersama, protokol berlangsung seperti ditunjukkan pada Gambar.8-12. Pertama, Alice mengirimkan identitasnya ke Bob (pesan 1), menunjukkan bahwa dia ingin mendirikan sebuah saluran komunikasi antara keduanya. Bob kemudian mengirimkan tantangan RB ke Alice, ditampilkan sebagai pesan 2. Tantangan seperti itu bisa mengambil bentuk nomor acak.Alice diperlukan untuk mengenkripsi tantangan dengan kunci rahasia KA B bahwa dia saham dengan Bob, dan kembali tantangan terenkripsi kepada Bob.Tanggapan ini ditampilkan sebagai pesan 3 pada Gambar.8-12 mengandung KAB (RB).
Gambar 8-12. Otentikasi berdasarkan kunci rahasia bersama.
Ketika Bob menerima respon KAB (RB) tantangan ia dapat mendekripsi pesan menggunakan kembali tombol berbagi untuk melihat apakah mengandung RB. Jika demikian, ia kemudian tahu bahwa Alice adalah di sisi lain, untuk siapa lagi bisa RB dienkripsi dengan KAB di tempat pertama? Dengan kata lain, Bob kini diverifikasi bahwa ia memang bicara ke Alice. Namun, perlu diketahui bahwa Alice belum diverifikasi bahwa memang Bob di sisi lain dari saluran. Oleh karena itu, dia mengirimkan tantangan RA (pesan 4), yang Bob merespon dengan kembali KA B (RA), ditampilkan sebagai pesan 5. Ketika Alice mendekripsi dengan KA B dan melihat dirinya RA, ia tahu bahwa ia sedang berbicara dengan Bob.
Salah satu masalah sulit dalam keamanan adalah merancang protokol yang benar-benar bekerja. Untuk menggambarkan betapa mudahnya hal yang bisa salah, mempertimbangkan sebuah "optimasi" dari protokol otentikasi di mana jumlah pesan telah dikurangi dari lima menjadi tiga, seperti ditunjukkan pada Gambar. 8-13. Ide dasarnya adalah bahwa jika Alice akhirnya ingin menantang Bob pula, dia mungkin juga mengirim tantangan bersama dengan identitasnya ketika mengatur saluran.Demikian juga, Bob kembali tanggapannya terhadap tantangan itu, bersama dengan tantangan sendiri dalam satu pesan.



Gambar 8-13. Otentikasi berdasarkan kunci rahasia bersama, tetapi menggunakan tiga manfaat dari lima pesan.
Sayangnya, protokol ini tidak lagi bekerja. Hal ini dapat dengan mudah dikalahkan oleh apa yang dikenal sebagai serangan refleksi. Untuk menjelaskan bagaimana serangan seperti itu bekerja, con Sider seorang penyusup yang disebut Chuck, siapa kita dilambangkan sebagai C dalam protokol kami. Tujuan Chuck adalah untuk mendirikan sebuah saluran dengan Bob sehingga Bob percaya bahwa dia sedang berbicara dengan Alice. Chuck dapat membangun ini jika ia merespon dengan benar terhadap tantangan yang dikirim oleh Bob, misalnya, dengan mengembalikan versi terenkripsi nomor yang dikirim Bob. Tanpa pengetahuan KAB, hanya Bob dapat melakukan enkripsi seperti itu, dan ini adalah tepat apa Chuck trik Bob dalam melakukan.
Serangan ini diilustrasikan pada Gambar. 8-14. Chuck dimulai dengan mengirimkan pesan yang berisi identitas Alice A, bersama dengan tantangan Rc. Bob mengembalikan tantangan nya ¬ lenge RB dan respon KA B (RC) dalam pesan tunggal. Pada saat itu, Chuck akan perlu membuktikan dia tahu kunci rahasia dengan kembali KA B (RB) ke Bob. Unfor ¬ tunately, ia tidak memiliki KAB. Sebaliknya, apa yang dia lakukan adalah upaya untuk mendirikan sebuah saluran kedua untuk membiarkan Bob melakukan enkripsi untuknya.
Oleh karena itu, Chuck mengirimkan A dan RB dalam satu pesan seperti sebelumnya, tapi sekarang cenderung bahwa dia menginginkan saluran kedua. Hal ini ditunjukkan sebagai pesan 3 pada Gambar.8-14. Bob, tidak mengakui bahwa dia sendiri telah menggunakan RB sebelumnya sebagai tantangan, merespon.Vith KA B {RB) dan tantangan lain RBshown sebagai pesan 4.Pada saat itu, Zhuck memiliki KA B (RB) dan selesai menyiapkan sesi pertama dengan kembali pesan
 

Gambar 8-14. Serangan refleksi.
5 berisi respon KA B (Rs), yang awalnya diminta dari tantangan ¬ lenge dikirim dalam pesan 2.
Sebagaimana dijelaskan dalam (Kaufman et al., 1995), salah satu kesalahan yang dibuat selama adaptasi dari protokol asli adalah bahwa kedua belah pihak dalam versi baru protokol yang menggunakan tantangan yang sama dalam dua berjalan berbeda dari protokol. Sebuah desain yang lebih baik adalah untuk selalu menggunakan tantangan yang berbeda untuk inisiator dan untuk responden. Misalnya, jika Alice selalu menggunakan angka ganjil dan Bob bahkan nomor, Bob akan telah mengakui bahwa sesuatu yang mencurigakan sedang terjadi saat menerima RB dalam pesan 3 pada Gambar. 8-14. (Sayangnya, solusi ini tunduk pada serangan lainnya, terutama yang dikenal sebagai "man-in-the-middle-attack," yang dijelaskan dalam Schneier, 1996.) Secara umum, membiarkan dua pihak yang terlibat dalam setting up saluran aman melakukan beberapa hal identik, bukanlah ide yang baik.
Prinsip lain yang dilanggar dalam protokol disesuaikan, adalah bahwa Bob menyerahkan informasi berharga dalam bentuk KAB respon (Rc) tanpa mengetahui dengan pasti kepada siapa ia memberikan. Prinsip ini tidak dilanggar dalam protokol asli, di mana Alice pertama yang dibutuhkan untuk membuktikan identitasnya, setelah Bob bersedia menyampaikan informasi terenkripsi nya.
Ada prinsip-prinsip lain yang pengembang protokol kriptografi secara bertahap datang untuk belajar selama bertahun-tahun, dan kami akan menyajikan beberapa dari mereka ketika membahas protokol lain di bawah ini. Satu pelajaran penting adalah bahwa merancang protokol keamanan yang melakukan apa yang mereka yang seharusnya mereka lakukan seringkali jauh lebih sulit daripada yang terlihat. Juga, tweaking protokol yang ada untuk meningkatkan kinerjanya, dengan mudah dapat mempengaruhi kebenarannya seperti yang kita contohkan diatas.Lebih lanjut tentang prinsip-prinsip desain untuk protokol dapat ditemukan dalam (Abadi dan Needham, 1996).
Otentikasi Menggunakan Pusat Distribusi Kunci
Salah satu masalah dengan menggunakan kunci rahasia bersama untuk otentikasi adalah scala-bility.Jika sistem terdistribusi mengandung N host, dan setiap host dibutuhkan untuk berbagi kunci rahasia dengan masing-masing lain N - 1 host, sistem secara keseluruhan kebutuhan untuk mengelola N (N - l) / 2 kunci, dan masing-masing host memiliki untuk mengelola N - 1 kunci. Untuk besar Nini akan menyebabkan masalah. Sebuah alternatif adalah dengan menggunakan pendekatan terpusat dengan cara kunci distribusi Center (KDC). Ini KDC saham kunci rahasia dengan masing-masing host, tapi tidak ada sepasang host diperlukan untuk memiliki kunci rahasia bersama juga. Dengan kata lain, menggunakan KDC yang mengharuskan kita mengelola kunci N bukan N (N - l) / 2, yang jelas perbaikan.
Jika Alice ingin mendirikan saluran aman dengan Bob, dia bisa melakukannya dengan bantuan (trusted) KDC.Seluruh ide adalah bahwa tangan KDC keluar kunci untuk kedua Alice dan Bob yang dapat mereka gunakan untuk komunikasi, ditunjukkan pada Gambar.8-15.





                                            
Gambar 8-15. Prinsip menggunakan KDC.
Alice pertama mengirimkan pesan ke KDC, mengatakan bahwa dia ingin berbicara dengan Bob.KDC mengembalikan pesan yang berisi rahasia bersama kunci KA B bahwa dia bisa menggunakan.Pesan dienkripsi dengan kunci rahasia yang KakDC saham Alice dengan KDC.Selain itu, KDC mengirimkan KAB juga untuk Bob, tapi sekarang dienkripsi dengan kunci rahasia KB KDC itu saham dengan Bob.
Kelemahan utama dari pendekatan ini adalah bahwa Alice mungkin ingin mulai menyiapkan saluran aman dengan Bob bahkan sebelum Bob telah menerima kunci bersama dari KDC.Selain itu, KDC diperlukan untuk mendapatkan Bob ke loop dengan melewati dia kunci.Masalah-masalah ini dapat dielakkan jika KDC hanya melewati Kb.kdc (K \. B) kembali ke Alice, dan membiarkan dia mengurus menghubungkan ke Bob. Hal ini menyebabkan protocol ditunjukkan pada Gambar.8-16. Pesan KB KDC (Ka B) juga dikenal sebagai tiket.Ini adalah tugas Alice untuk lulus tiket ini ke Bob. Perhatikan bahwa Bob masih satu-satunya yang dapat menggunakan masuk akal tiket, karena ia adalah satu-satunya selain KDC yang tahu bagaimana untuk mendekripsi informasi yang dikandungnya.
Protokol ditunjukkan pada Gambar.8-16 sebenarnya merupakan varian dari contoh yang terkenal dari protokol otentikasi menggunakan KDC, yang dikenal sebagai protokol otentikasi Needham-Schroeder, dinamai penemunya (Needham dan Schroeder, 1978).Sebuah varian yang berbeda dari protokol yang digunakan dalam sistem Kerberos, yang kami jelaskan nanti. Protokol Needham-Schroeder, ditunjukkan pada Gambar. 8-17, adalah protokol tantangan-respon multiway dan bekerja sebagai berikut.
Ketika Alice ingin mendirikan saluran aman dengan Bob, ia mengirimkan permintaan ke KDC mengandung tantangan RA, bersama dengan identitasnya A dan, tentu saja, bahwa Bob. KDC merespon dengan memberinya tiket Kb KDC (Ka b), bersama dengan KAB kunci rahasia bahwa dia kemudian dapat berbagi dengan Bob.




Gambar 8-17. The Needham-Schroeder protokol otentikasi.
Tantangan RA, bahwa Alice mengirim ke KDC bersama dengan permintaannya untuk mendirikan sebuah saluran untuk Bob, juga dikenal sebagai Nonce a. Nonce adalah nomor acak yang digunakan hanya sekali, seperti yang satu dipilih dari satu set yang sangat besar. Tujuan utama dari Nonce adalah untuk secara unik berhubungan dua pesan satu sama lain, dalam hal ini pesan 1 dan pesan 2. Secara khusus, dengan memasukkan RA \ lagi dalam pesan 2, Alice akan tahu pasti bahwa pesan 2 dikirim sebagai respon terhadap pesan 1, dan tiiat tidak, misalnya, pengulangan pesan yang lebih tua.
Untuk memahami masalah yang dihadapi, menganggap bahwa kita tidak menggunakan nonces, dan bahwa Chuck telah mencuri salah satu kunci tua Bob, mengatakan Kg'jcDC • Selain itu, Chuck telah dicegat respon tua-dc (#> ^ t, B> KbuKDc {A, Ka b)) yang KDC telah kembali ke permintaan sebelumnya dari Alice untuk berbicara dengan Bob. Sementara itu, Bob akan menegosiasikan kunci rahasia bersama baru dengan KDC. Namun, Chuck sabar menunggu sampai Alice lagi meminta untuk mendirikan sebuah saluran aman dengan Bob. Pada saat itu, ia replay respon tua, dan orang-orang bodoh Alice untuk membuat dia percaya dia sedang berbicara dengan Bob, karena ia dapat mendekripsi tiket dan membuktikan dia tahu kunci rahasia bersama KTJ.
Dengan termasuk Nonce a, serangan semacam ini tidak mungkin, karena mengulang pesan yang lebih tua akan segera ditemukan. Secara khusus, Nonce dalam pesan respon tidak akan cocok dengan Nonce dalam permintaan yang asli.
Pesan 2 juga mengandung B, identitas Bob.Dengan termasuk 5, KDC pro ¬ tects Alice terhadap serangan berikut.Misalkan B tersisa dari pesan 2. Dalam hal ini, Chuck bisa mengubah pesan 1 dengan mengganti identitas Bob dengan identitasnya sendiri, katakanlah C. KDC kemudian akan berpikir Alice ingin mendirikan sebuah saluran yang aman ke Chuck, dan meresponnya. Begitu Alice ingin menghubungi Bob, Chuck penyadapan pesan dan bodoh Alice menjadi percaya dia berbicara dengan Bob. Dengan menyalin identitas pihak lain dari pesan 1 pesan 2, Alice akan segera mendeteksi bahwa permintaannya telah dimodifikasi.
Setelah KDC telah berlalu tiket untuk Alice, saluran aman antara Alice dan Bob dapat diatur.Alice dimulai dengan mengirim pesan 3, yang berisi tiket ke Bob, dan tantangan RA2 dienkripsi dengan berbagi kunci KA B yang KDC itu hanya dihasilkan. Bob kemudian mendekripsi tiket untuk menemukan kunci bersama, dan mengembalikan respon RA2-1 bersama dengan tantangan RB untuk Alice.
Berikut ini komentar mengenai pesan 4 adalah dalam rangka. Secara umum, dengan kembali-ing RA2 - 1 dan bukan hanya RA2, Bob tidak hanya membuktikan dia tahu kunci rahasia bersama, tetapi juga bahwa ia telah benar-benar didekripsi tantangan. Sekali lagi, ini ikatan pesan 4 pesan 3 dengan cara yang sama bahwa Nonce RA terikat pesan 2 ke pesan 1. Protokol ini sehingga lebih dilindungi terhadap replay.
Namun, dalam kasus khusus ini, itu sudah cukup untuk kembali Ka b (RA2, Rb), karena alasan sederhana bahwa pesan ini belum digunakan mana dalam protokol sebelumnya.KA B (RA2, RB) sudah membuktikan bahwa Bob telah mampu mendekripsi tantangan dikirim dalam pesan 3.Pesan 4 seperti ditunjukkan pada Gambar.8-17 adalah karena alasan historis.
Protokol Needham-Schroeder seperti yang disajikan di sini masih memiliki titik lemah kalau Chuck pernah punya memegang sebuah kunci tua KA B, ia bisa memutar ulang pesan 3 dan Bob untuk mengatur saluran. Bob kemudian akan percaya dia sedang berbicara dengan Alice, sementara, pada kenyataannya, Chuck adalah di ujung lain. Dalam hal ini, kita perlu berhubungan pesan 3 sampai mesbijak 1, yaitu, membuat ketergantungan kunci pada permintaan awal dari Alice untuk mendirikan sebuah saluran dengan Bob.Solusinya ditunjukkan pada Gambar.8-18.
Caranya adalah dengan memasukkan Nonce dalam permintaan dikirim oleh Alice KDC. Namun, kesempatan ini harus datang dari Bob: ini menjamin Bob bahwa siapa pun yang ingin mendirikan saluran aman dengan dia, akan mendapatkan informasi yang tepat dari KDC. Oleh karena itu, Alice pertama permintaan Bob mengirimnya sebuah RBL Nonce, dienkripsi dengan kunci dibagi antara Bob dan KDC. Alice menggabungkan Nonce ini permintaannya untuk KDC, yang kemudian akan kemudian mendekripsi dan menempatkan hasil dalam tiket dihasilkan. Dengan cara ini, Bob akan tahu pasti bahwa session kunci terkait dengan permintaan asli dari Alice untuk berbicara dengan Bob.
Otentikasi Menggunakan Kriptografi Public-Key
Mari sekarang kita lihat pada otentikasi dengan kriptografi kunci publik yang tidak memerlukan KDC.Sekali lagi, mempertimbangkan situasi bahwa Alice ingin mendirikan sebuah saluran yang aman ke Bob, dan bahwa keduanya dalam kepemilikan publik masing-masing.



Gambar 8-18. Perlindungan terhadap reuse berbahaya dari kunci sesi sebelumnya dihasilkan dalam protokol Needham-Schroeder.






Gambar 8-19. Otentikasi Mutual dalam suatu cryptosystem publik-kunci.
kunci. Sebuah protokol otentikasi yang khas berdasarkan kriptografi kunci publik ditunjukkan pada Gambar.8-19, yang kita jelaskan berikutnya.
Alice dimulai dengan mengirimkan tantangan RA ke Bob dienkripsi dengan kunci publik Kb-Ini adalah tugas Bob untuk mendekripsi pesan dan kembali tantangan untuk Alice. Karena Bob adalah satu-satunya orang yang dapat mendekripsi pesan (menggunakan kunci pribadi yang berhubungan dengan kunci publik Alice digunakan), Alice akan tahu bahwa dia sedang berbicara dengan Bob. Perhatikan bahwa itu adalah penting bahwa Alice dijamin untuk akan menggunakan kunci publik Bob, dan bukan kunci publik dari seseorang meniru Bob. Bagaimana jaminan tersebut dapat diberikan dibahas nanti dalam bab ini.
Ketika Bob menerima permintaan Alice untuk mengatur saluran, ia kembali tantangan didekripsi, bersama dengan tantangan sendiri RB untuk mengotentikasi Alice. Selain itu, ia menghasilkan kunci sesi B KA yang dapat digunakan untuk komunikasi lebih lanjut. Respon Bob untuk tantangan Alice 's, tantangan sendiri, dan session key yang dimasukkan ke dalam pesan yang dienkripsi dengan kunci publik milik Alice, ditunjukkan sebagai pesan 2 pada Gambar. 8-19. Hanya Alice akan mampu mendekripsi pesan ini menggunakan IQ kunci pribadi terkait dengan KA.
Alice, akhirnya, kembali tanggapannya terhadap tantangan Bob menggunakan kunci sesi Ka b dihasilkan oleh Bob. Dengan cara itu, dia akan telah membuktikan bahwa dia bisa pesan mendekripsi 2, dan dengan demikian bahwa dia sebenarnya Alice kepada siapa Bob sedang berbicara.
8.2.2 Pesan Integritas dan Kerahasiaan
Selain otentikasi, saluran aman juga harus memberikan jaminan integritas pesan dan kerahasiaan.Integritas pesan berarti bahwa pesan yang dilindungi terhadap modifikasi, kerahasiaan memastikan bahwa pesan tidak dapat disadap dan dibaca oleh penyadap.Kerahasiaan adalah mudah didirikan dengan hanya mengenkripsi pesan sebelum mengirimkannya.Enkripsi dapat Danau tempat baik melalui kunci rahasia bersama dengan penerima atau dengan menggunakan kunci publik penerima.Namun, melindungi terhadap modifikasi pesan agak lebih komplikasi berdedikasi, seperti yang kita bahas selanjutnya.
Digital Signatures
Integritas pesan sering melampaui transfer yang sebenarnya melalui saluran aman. Pertimbangkan situasi di mana Bob baru saja menjual Alice kolektor item dari beberapa piringan hitam seharga $ 500. Seluruh transaksi dilakukan melalui e-mail. Pada akhirnya, Alice mengirimkan Bob pesan yang mengkonfirmasikan bahwa dia akan membeli rekor $ 500. Selain otentikasi, setidaknya ada dua hal yang perlu diperhatikan mengenai integritas pesan.
1.         Alice harus yakin bahwa Bob tidak akan mengubah jahat ihe $ 500 disebutkan dalam pesannya menjadi sesuatu yang lebih tinggi, dan mengklaim dia berjanji lebih dari $ 500.
2.         Bob perlu yakin bahwa Alice tidak bisa menyangkal pernah mengirim pesan, misalnya, karena dia memiliki pikiran kedua.
Kedua isu dapat ditangani dengan jika Alice digital menandatangani pesan sedemikian rupa sehingga tanda tangannya secara unik terkait dengan isinya. Hubungan yang unik antara pesan dan tanda tangan yang mencegah bahwa modifikasi pesan akan diperhatikan. Selain itu, jika tanda tangan Alice dapat diverifikasi untuk menjadi asli, dia tidak bisa kemudian menolak kenyataan bahwa ia menandatangani pesan.
Ada beberapa cara untuk menempatkan tanda tangan digital. Salah satu bentuk populer adalah dengan menggunakan kriptografi kunci publik seperti RSA, seperti ditunjukkan pada Gambar.8-20. Ketika Alice mengirim pesan m kepada Bob, dia mengenkripsi dengan IQ kunci pribadi, dan mengirimkannya pergi ke Bob.Jika dia juga ingin untuk menjaga isi pesan rahasia, dia bisa menggunakan kunci publik Bob dan mengirim yang menggabungkan m dan versi ditandatangani oleh Alice.
Ketika pesan tiba di Bob, dia bisa dekripsi menggunakan kunci publik Alice.Jika dia dapat yakin bahwa kunci publik memang dimiliki oleh Alice, kemudian mendekripsi versi ditandatangani m dan berhasil membandingkannya dengan m dapat berarti hanya itu berasal dari Alice. Alice dilindungi terhadap modifikasi berbahaya untuk m oleh Bob, karena Bob akan selalu harus membuktikan bahwa versi modifikasi dari m juga ditandatangani oleh Alice. Dengan kata lain, pesan didekripsi saja dasarnya.



Gambar 8-20. Digital menandatangani pesan menggunakan kriptografi kunci publik.
pernah dianggap sebagai bukti. Hal ini juga dalam kepentingan Bob sendiri untuk menjaga versi ditandatangani m untuk melindungi dirinya terhadap penolakan oleh Alice.
Ada sejumlah masalah dengan skema ini, meskipun protokol itu sendiri benar.Pertama, validitas tanda tangan Alice memegang hanya selama kunci privat Alice tetap rahasia.Jika Alice ingin menyelamatkan dari kesepakatan bahkan setelah mengirim Bob konfirmasi, dia bisa mengklaim bahwa kunci pribadi dicuri sebelum pesan dikirim.
Masalah lain terjadi ketika Alice memutuskan untuk mengubah kunci pribadi. Hal tersebut dapat dengan sendirinya menjadi tidak seperti ide yang buruk, seperti mengubah kunci dari waktu ke waktu gen ¬ erally membantu terhadap gangguan.Namun, setelah Alice telah berubah kuncinya, pernyataannya dikirim ke Bob menjadi tidak berharga.Apa yang mungkin diperlukan dalam kasus tersebut adalah kewenangan pusat yang melacak ketika tombol berubah, selain menggunakan cap waktu saat menandatangani pesan.
Masalah lain dengan skema ini adalah bahwa Alice mengenkripsi seluruh pesan dengan kunci pribadinya. Enkripsi semacam itu dapat menjadi mahal dalam hal persyaratan pengolahan (atau bahkan matematis tidak layak seperti yang kita asumsikan bahwa pesan ditafsirkan sebagai angka biner dibatasi oleh maksimum yang telah ditetapkan), dan sekutu yang tidak perlu.Ingatlah bahwa kita hanya perlu unik mengasosiasikan tanda tangan dengan pesan tertentu.Sebuah skema yang lebih murah dan bisa dibilang lebih elegan adalah dengan menggunakan mebijak mencerna.
Seperti yang kita dijelaskan, pesan digest adalah sedikit string tetap-panjang h yang telah dihitung dari pesan m sewenang-wenang-panjang dengan cara hash kriptografi fungsi H. Jika m diubah menjadi m ', yang H hash (m') akan berbeda dari h = H (m) sehingga dapat dengan mudah mendeteksi bahwa modifikasi telah terjadi.
Untuk digital menandatangani pesan, Alice pertama dapat menghitung message digest dan kemudian mengenkripsi mencerna dengan kunci pribadinya, seperti ditunjukkan pada Gambar. 8-21. Telah dienkripsi digest dikirim bersama dengan pesan ke Bob. Perhatikan bahwa pesan itu sendiri dikirim sebagai plaintext: setiap orang diperbolehkan untuk membacanya. Jika kerahasiaan diperlukan, maka pesan juga harus dienkripsi dengan kunci publik Bob.
Ketika Bob menerima pesan dan mencerna dienkripsi, ia hanya butuh mendekripsi mencerna dengan kunci publik Alice, dan secara terpisah menghitung message digest. Jika digest dihitung dari pesan yang diterima dan mencerna pertandingan didekripsi, Bob tahu pesan telah ditandatangani oleh Alice.





Gambar 8-21 digital menandatangani pesan menggunakan message digest.
Sesi Keys
Selama pembentukan saluran aman, setelah fase otentikasi telah selesai, pihak yang berkomunikasi umumnya menggunakan kunci sesi bersama unik untuk kerahasiaan.Kunci sesi aman dibuang bila saluran tersebut tidak lagi digunakan. Sebuah alternatif akan menggunakan kunci yang sama untuk confiden jaminan kerahasiaan seperti yang yang digunakan untuk menyiapkan saluran aman. Namun, ada sejumlah manfaat penting untuk menggunakan kunci sesi (Kaufman et al "1995).
Pertama, ketika tombol sering digunakan, menjadi lebih mudah untuk mengungkapkannya.Dalam arti, kunci cryp-tographic tunduk pada "keausan" seperti kunci biasa. Ide dasarnya adalah bahwa jika seorang penyusup dapat mencegat banyak data yang telah dienkripsi menggunakan kunci yang sama, maka ada kemungkinan untuk me-mount serangan untuk menemukan karakteristik tertentu dari tombol yang digunakan, dan mungkin mengungkapkan plaintext atau kunci itu sendiri. Untuk ini anak rea ¬, jauh lebih aman untuk menggunakan kunci otentikasi sesedikit mungkin. Selain itu, kunci tersebut sering dipertukarkan menggunakan beberapa mekanisme out-of-band yang relatif waktu-mahal seperti surat biasa atau telepon. Bertukar kunci seperti itu harus disimpan ke minimum.
Alasan lain yang penting untuk menghasilkan kunci terpisah untuk masing-masing aman channel, adalah untuk memastikan perlindungan terhadap serangan replay seperti yang kita telah menemukan previ menerus beberapa kali. Dengan menggunakan kunci sesi yang unik setiap kali aman channel sudah diatur, pihak berkomunikasi setidaknya dilindungi mengulang sesi seluruh.Untuk melindungi mengulang pesan individu dari sesi sebelumnya, langkah-langkah tambahan umumnya dibutuhkan seperti termasuk cap atau nomor urut sebagai bagian dari isi pesan.
Misalkan integritas pesan dan kerahasiaan yang dicapai dengan menggunakan tombol yang sama yang digunakan untuk pembentukan sesi. Dalam hal ini, setiap kali kuncinya adalah com dijanjikan, seorang penyusup mungkin dapat mendekripsi pesan ditransfer selama percakapan tua, jelas bukan fitur yang diinginkan.Sebaliknya, jauh lebih aman untuk menggunakan kunci per-sesi, karena jika kunci tersebut terganggu, paling buruk, hanya satu sesi dipengaruhi.Pesan yang dikirim selama sesi lainnya tetap rahasia.
Terkait dengan poin terakhir adalah bahwa Alice mungkin ingin bertukar beberapa data kerahasiaan esensial dengan Bob, tapi dia tidak percaya padanya sehingga dia akan memberinya informasi dalam bentuk data yang telah dienkripsi dengan kunci yang tahan lama. Dia mungkin ingin memesan tombol tersebut untuk pesan yang sangat rahasia bahwa ia pertukaran dengan pihak dia benar-benar percaya. Dalam kasus tersebut, dengan menggunakan kunci sesi yang relatif murah untuk berbicara dengan Bob sudah cukup.
By-dan-besar, pengesahan kunci yang sering dibentuk sedemikian rupa bahwa mengganti mereka relatif mahal.Oleh karena itu, kombinasi tombol tahan lama seperti dengan jauh lebih murah dan lebih sementara kunci sesi sering merupakan pilihan yang baik untuk menerapkan saluran aman untuk pertukaran data.
8.2.2 Message Integrity and Confidentiality(Pesan Integritas dan Kerahasiaan)
Selain otentikasi, saluran aman juga harus memberikan jaminan integritas pesan dan kerahasiaan. Integritas pesan berarti bahwa pesan yang dilindungi terhadap modifikasi, kerahasiaan memastikan bahwa pesan tidak dapat disadap dan dibaca oleh penyadap. Kerahasiaan adalah mudah didirikan dengan hanya mengenkripsi pesan sebelum mengirimkannya.
Digital Signatures
Integritas pesan sering melampaui transfer yang sebenarnya melalui saluran aman. Pertimbangkan situasi di mana Bob baru saja menjual Alice kolektor item dari beberapa piringan hitam seharga $ 500. Seluruh transaksi dilakukan melalui e-mail. Pada akhirnya, Alice mengirimkan Bob pesan yang mengkonfirmasikan bahwa dia akan membeli rekor $ 500.
Selain otentikasi, setidaknya ada dua hal yang perlu diperhatikan mengenai integritas pesan.
1. Alice harus yakin bahwa Bob tidak akan mengubah jahat ihe $ 500 disebutkan dalam pesannya menjadi sesuatu yang lebih tinggi, dan mengklaim dia berjanji lebih dari $ 500.
2. Bob perlu yakin bahwa Alice tidak bisa menyangkal pernah mengirim pesan, misalnya, karena dia memiliki pikiran kedua.
Kedua isu dapat ditangani dengan jika Alice digital menandatangani pesan sedemikian rupa sehingga tanda tangannya secara unik terkait dengan isinya. Hubungan yang unik antara pesan dan tanda tangan yang mencegah bahwa modifikasi pesan akan diperhatikan. Selain itu, jika tanda tangan Alice dapat diverifikasi untuk menjadi asli, dia tidak bisa kemudian menolak kenyataan bahwa ia menandatangani pesan.Ada beberapa cara untuk menempatkan tanda tangan digital. Salah satu bentuk populer adalah dengan menggunakan kriptografi kunci publik seperti RSA, seperti ditunjukkan pada Gambar. 8-20. Ketika Alice mengirim pesan m kepada Bob, dia mengenkripsi dengan IQ kunci pribadi, dan mengirimkannya pergi ke Bob. Jika dia juga ingin menjaga isi pesan rahasia, dia bisa menggunakan kunci publik Bob dan mengirim yang menggabungkan m dan versiditandatangani oleh Alice.Ketika pesan tiba di Bob, dia bisa dekripsi menggunakan kunci publik Alice. Jika dia dapat yakin bahwa kunci publik memang dimiliki oleh Alice, kemudian mendekripsi versi ditandatangani m dan berhasil membandingkannya dengan m dapat berarti hanya itu berasal dari Alice. Alice dilindungi terhadap modifikasi berbahaya untuk m oleh Bob, karena Bob akan selalu harus membuktikan bahwa versi modifikasi dari m juga ditandatangani oleh Alice. Dengan kata lain, pesan didekripsi sendiri pada dasarnya
pernah dianggap sebagai bukti. Hal ini juga dalam kepentingan Bob sendiri untuk menjaga versi ditandatangani m untuk melindungi dirinya terhadap penolakan oleh Alice.
Ada sejumlah masalah dengan skema ini, meskipun protokol itu sendiri benar. Pertama, validitas tanda tangan Alice memegang hanya selama kunci privat Alice tetap rahasia. Jika Alice ingin menyelamatkan dari kesepakatan bahkan setelah mengirim Bob konfirmasi, dia bisa mengklaim bahwa kunci pribadi dicuri sebelum pesan dikirim.Masalah lain dengan skema ini adalah bahwa Alice mengenkripsi seluruh pesan dengan kunci pribadinya. Enkripsi semacam itu dapat menjadi
sulit dalam hal persyaratan pengolahan (atau bahkan matematis tidak layak seperti yang kita asumsikan bahwa pesan ditafsirkan sebagai angka biner dibatasi oleh maksimum yang telah ditetapkan), dan sebenarnya tidak perlu.kita hanya perlu untuk mengasosiasikan tanda tangan dengan pesan tertentu. Sebuah skema yang lebih dan bisa dibilang lebih elegan adalah dengan menggunakan message digest.
pesan digest adalah sedikit string tetap-panjang h yang telah dihitung dari pesan m sewenang-wenang-panjang dengan cara hash kriptografi fungsi H. Jika m diubah menjadi m ', yang H hash (m') akan berbeda dari h = H (m) sehingga dapat dengan mudah mendeteksi bahwa modifikasi telah terjadi.Untuk digital menandatangani pesan, Alice pertama dapat menghitung message digest dan kemudian mengenkripsi mencerna dengan kunci pribadinya, seperti ditunjukkan pada Gambar. 8-21. Telah dienkripsi digest dikirim bersama dengan pesan ke Bob.
Perhatikan bahwa pesan itu sendiri dikirim sebagai plaintext: setiap orang diperbolehkan untuk membacanya. Jika kerahasiaan diperlukan, maka pesan juga harus dienkripsi dengan kunci publik Bob.
Ketika Bob menerima pesan dan mencerna dienkripsi, ia hanya butuh mendekripsi mencerna dengan kunci publik Alice, dan secara terpisah menghitung message digest. Jika digest dihitung dari pesan yang diterima dan mencerna pertandingan didekripsi, Bob tahu pesan telah ditandatangani oleh Alice.
Gambar 8-21. Digital menandatangani pesan menggunakan message digest.

Session keys (Sesi Keys)

            Selama pembentukan saluran aman, setelah fase otentikasi telah selesai, pihak yang berkomunikasi umumnya menggunakan kunci sesi bersama unik untuk kerahasiaan. Kunci sesi aman dibuang bila saluran tersebut tidak lagi digunakan. Sebuah alternatif akan menggunakan kunci yang sama untuk kerahasiaan seperti yang yang digunakan untuk menyiapkan saluran aman. Namun, ada sejumlah manfaat penting untuk menggunakan kunci sesi
.
Pertama, ketika tombol sering digunakan, menjadi lebih mudah untuk mengungkapkannya. Dalam arti, kunci cryp-tographic tunduk pada "keausan" seperti kunci biasa. Ide dasarnya adalah bahwa jika seorang penyusup dapat mencegat banyak data yang telah dienkripsi menggunakan kunci yang sama, maka ada kemungkinan untuk me-mount serangan untuk menemukan karakteristik tertentu dari tombol yang digunakan, dan mungkin mengungkapkan plaintext atau kunci itu sendiri. Untuk alasan ini, itu jauh lebih aman untuk menggunakan kunci otentikasi sesedikit mungkin. Selain itu, kunci tersebut sering dipertukarkan menggunakan beberapa mekanisme out-of-band yang relatif waktu-mahal seperti surat biasa atau telepon. Bertukar kunci seperti itu harus disimpan ke minimum.
Alasan lain yang penting untuk menghasilkan kunci terpisah untuk masing-masing aman saluran, adalah untuk memastikan perlindungan terhadap serangan replay seperti yang kita telah menemukan sebelumnya beberapa kali. Dengan menggunakan kunci sesi yang unik setiap kali saluran aman diatur, pihak berkomunikasi setidaknya dilindungi mengulang sesi seluruh. Untuk melindungi mengulang pesan individu dari sesi sebelumnya, langkah-langkah tambahan umumnya dibutuhkan seperti termasuk cap atau nomor urut sebagai bagian dari isi pesan.
Misalkan integritas pesan dan kerahasiaan yang dicapai dengan menggunakan tombol yang sama yang digunakan untuk pembentukan sesi. By-dan-besar, pengesahan kunci yang sering dibentuk sedemikian rupa bahwa mengganti mereka relatif mahal. Oleh karena itu, kombinasi tombol tahan lama seperti dengan jauh lebih murah dan lebih sementara kunci sesi sering merupakan pilihan yang baik untuk menerapkan saluran aman untuk pertukaran data.




.





Gambar 8-12. Otentikasi berdasarkan kunci rahasia bersama.








Tidak ada komentar:

Posting Komentar