Kata PengantarTeks ini akan menjadi salah satu bab yang ditulis ulang untuk manual tentang perlindungan informasi dari Departemen Teknik Radio dan Sistem Kontrol, serta, dari kode pelatihan ini, Departemen Perlindungan Informasi MIPT (GU). Tutorial lengkap tersedia di github (lihat juga draft rilis ). Pada Habrir saya berencana untuk mengunggah potongan-potongan "besar" yang baru, pertama, untuk mengumpulkan komentar dan pengamatan yang bermanfaat, dan kedua, untuk memberi masyarakat lebih banyak bahan ikhtisar tentang topik yang berguna dan menarik. Bagian sebelumnya dari bab "Protokol Kriptografi": 1 , 2 , 3 , 4 , 5 ; urutan berikutnya: 7 .
Protokol asimetris, atau protokol yang didasarkan pada cryptosystems dengan kunci publik, dapat melemahkan persyaratan untuk tahap awal protokol. Alih-alih kunci rahasia bersama yang harus dimiliki dua pihak (baik masing-masing pihak dan pusat tepercaya), dalam protokol yang dipertimbangkan di bawah ini, para pihak harus bertukar kunci publik terlebih dahulu (antara mereka sendiri atau dengan pusat tepercaya). Pertukaran pendahuluan semacam itu dapat terjadi pada saluran komunikasi terbuka, dengan asumsi bahwa cryptanalyst tidak dapat mempengaruhi isi saluran komunikasi pada tahap ini.
Protokol Penolakan - Sacco
Protokol ini diusulkan oleh Dorothy Denning dan Giovanni Sacco pada tahun 1981 (Bahasa Inggris
Dorothy E. Denning, Giovanni Maria Sacco ). Dalam protokol ini, inisiator (Alice) beralih ke pusat tepercaya (Trent) untuk sertifikat kedua peserta sekaligus. Peserta yang sama juga bertanggung jawab untuk pembentukan kunci sesi baru.
.
- Alice \ ke \ left \ {A, B \ right \} \ ke Trent
- Trent \ ke \ left \ {S_T (A, K_A, T_T), S_T (B, K_B, T_T) \ right \} \ ke Alice
- Alice menghasilkan kunci sesi baru
\ begin {array} {lll} Alice \ to \ {& E_B (S_A (K, T_A)), & \\ & S_T (A, K_A, T_T), & \\ & S_T (B, K_B, T_T) & \} \ to Bob \ end {array} - Bob memverifikasi tanda tangan pusat kepercayaan pada sertifikat mendekripsi kunci sesi dan memverifikasi tanda tangan Alice.
Pesan Tidak Ada
pengidentifikasi apa pun membuat protokol rentan diserang dengan kunci sesi yang diketahui dan memungkinkan pihak kedua (Bob) menyamar sebagai penggagas (Alice) dalam sesi dengan pihak ketiga (Clara).

- Alice dan Bob memiliki sesi protokol, menghasilkan kunci sesi baru .
- Bob \ ke \ kiri \ {B, C \ right \} \ ke Trent
- Trent \ ke \ kiri \ {S_T (B, K_B, T_T), S_T (C, K_C, T_T) \ kanan \} \ ke Bob
- Bob memutar pesan dan dari Alice dalam satu sesi dengan Clara:
\ begin {array} {lll} Bob ~ (Alice) \ to \ {& E_C (S_A (K, T_A)), & \\ & S_T (A, K_A, T_T), & \\ & S_T (C, K_C, T_T) & \} \ to Clara \ end {array} - Clara berhasil memverifikasi tanda tangan pusat tepercaya pada sertifikat mendekripsi kunci sesi dan memverifikasi tanda tangan Alice.
Akibatnya, Clara yakin bahwa dia menerima kunci sesi baru dari Alice.
.
Protokol DASS
Protokol DASS adalah bagian integral dari
Layanan Keamanan Otentikasi Terdistribusi (DASS), yang dikembangkan oleh DEC dan dijelaskan dalam RFC 1507 pada September 1993.
Dalam protokol DASS, dengan analogi dengan protokol Wide-Mouth Frog dan Denning - Sacco, inisiator (Alice) menghasilkan kunci sesi baru dan, untuk setiap sesi protokol, pasangan kunci publik dan kunci pribadi pengirim baru. Pusat Tepercaya (Trent) digunakan sebagai tempat penyimpanan sertifikat kunci publik peserta. Tetapi tidak seperti Denning-Sacco, kedua peserta beralih ke pusat tepercaya secara bergantian.

- Alice \ ke \ left \ {B \ right \} \ ke Trent
- Trent \ to \ left \ {S_T \ left (B, K_B \ right) \ right \} \ ke Alice
- Alice \ ke \ kiri \ {E_K \ kiri (T_A \ kanan), S_A \ kiri (L, A, K_P \ kanan), S_ {K_P} \ kiri (E_B \ kiri (K \ kanan) \ kanan) \ kanan) \} \ to Bob
- Bob \ ke \ kiri \ {A \ right \} \ ke Trent
- Trent \ to \ left \ {S_T \ left (A, K_A \ right) \ right \} \ to Bob
- Bob \ ke \ left \ {E_K \ left \ {T_B \ right \} \ right \} \ ke Alice
Menggunakan sertifikat kunci publik
\ left \ {S_T \ left (B, K_B \ right) \ right \} dan
\ left \ {S_T \ left (A, K_A \ right) \ right \} yang dikirim Trent, dan konfirmasi lebih lanjut tentang kepemilikan kunci yang sesuai, peserta dapat saling mengautentikasi. Berhasil mendekripsi stempel waktu dari pesan
dan
E_K \ kiri \ {T_B \ kanan \} memberikan bukti kepemilikan kunci sesi.
Protokol menggunakan seumur hidup (
) kunci sesi
tetapi cap waktu tidak termasuk dalam pesan. Akibatnya, protokol tetap rentan terhadap serangan dengan kunci sesi yang dikenal. Misalkan Mellory dapat merekam sesi komunikasi yang sepenuhnya telah lewat antara Alice dan Bob, dan kemudian dapat mengakses kunci sesi
. Ini memungkinkan Mellory untuk membuktikan dirinya sebagai Alice di depan Bob.
- Mellory ~ (Alice) \ ke \ kiri \ {E_K \ kiri (T_M \ kanan), S_A \ kiri (L, A, K_P \ kanan), S_ {K_P} \ kiri (E_B \ kiri (K \ kanan) \ kanan) \ kanan \} \ ke Bob
- Bob \ ke \ kiri \ {A \ right \} \ ke Trent
- Trent \ to \ left \ {S_T \ left (A, K_A \ right) \ right \} \ to Bob
- Bob \ ke \ left \ {E_K \ left \ {T_B \ right \} \ right \} \ ke Alice
Pada pass pertama, Mellory hanya mengubah pesan pertama yang berisi cap waktu
. Mellory menyalin sisanya dari sesi rekaman. Jika Bob tidak merekam kunci yang digunakan, ia tidak akan melihat spoofing. Perbaikan paling sederhana untuk kerentanan ini adalah dengan menyertakan stempel waktu dalam pesan.
.
Karena kunci sesi ada di protokol
dienkripsi oleh kunci "master" Bob
, maka kompromi yang terakhir akan mengarah pada kompromi dari semua kunci sesi yang digunakan sebelumnya. Artinya, protokol tidak memberikan kerahasiaan langsung yang sempurna (tujuan G9).
Baik Trent maupun Bob tidak terlibat dalam pembentukan kunci sesi baru. Oleh karena itu, Alice dapat memaksa Bob untuk menggunakan kunci sesi lama, seperti pada protokol Wide-Mouth Frog dan Yahalom.
Protokol Wu Lama
Protokol Wu-Lama, yang diusulkan pada tahun 1992 (
Thomas YC Woo, Simon S. Lam ), menambahkan jumlah peserta secara acak ke pesan, yang melindungi protokol, termasuk dari serangan berulang, dan juga memberikan konfirmasi kepemilikan kunci. Ini juga satu-satunya protokol yang dipertimbangkan dalam bagian ini di mana kunci baru dihasilkan oleh pihak tepercaya (Trent).

- Alice \ ke \ left \ {A, B \ right \} \ ke Trent
- Trent \ ke \ left \ {S_T (K_B) \ right \} \ ke Alice
- Alice \ to \ left \ {E_B (A, R_A) \ right \} \ to Bob
- Bob \ ke \ kiri \ {A, B, E_T (R_A) \ kanan \} \ ke Trent
- Trent \ ke \ kiri \ {S_T (K_A), E_B (S_T (R_A, K, A, B)) \ kanan \} \ untuk Bob
- Bob \ ke \ kiri \ {E_A (S_T (R_A, K, A, B), R_B) \ right \} \ to Alice
- Alice \ to \ left \ {E_K (R_B) \ right \} \ to Bob
Sejak dalam sertifikat kunci sesi
Nomor acak Alice ada
, penyerang tidak akan dapat menggunakan sertifikat lama di sesi baru atas nama Bob. Oleh karena itu, pass 6 protokol memungkinkan Alice untuk memastikan bahwa Bob mengetahui kunci sesi baru
, dan karena itu memiliki kunci "tuannya"
(karena ini adalah satu-satunya cara untuk mendapatkan sertifikat dari pesan tersebut
)
Pesan
dari Alice ke Bob pada bagian ketujuh memungkinkan kita untuk menjamin pada saat yang sama bahwa Alice tahu kunci "tuannya"
(karena dapat mendekripsi
), dan kunci sesi baru
karena mampu mengenkripsi dengan benar
kunci ini.
Kata penutupBagian terakhir dari bab tentang distribusi kunci adalah materi yang sudah diterbitkan pada protokol kuantum BB84 . Jadi artikel saat ini benar-benar menyelesaikan serangkaian bagian tentang protokol kriptografi untuk Habr. Penulis akan berterima kasih atas komentar faktual dan lainnya pada teks.