Protokol Jabat Tangan TLS
Protokol Jabat Tangan Transport Layer Security (TLS) bertanggung jawab atas autentikasi dan pertukaran kunci yang diperlukan untuk membuat atau melanjutkan sesi aman. Saat membuat sesi yang aman, Protokol Jabat Tangan mengelola hal berikut:
- Negosiasi cipher suite
- Autentikasi server dan secara opsional, klien
- Pertukaran informasi kunci sesi.
Negosiasi Cipher Suite
Klien dan server melakukan kontak dan memilih cipher suite yang akan digunakan di seluruh pertukaran pesan mereka.
Autentikasi
Di TLS, server membuktikan identitasnya kepada klien. Klien mungkin juga perlu membuktikan identitasnya ke server. PKI, penggunaan pasangan kunci publik/privat, adalah dasar dari autentikasi ini. Metode yang tepat yang digunakan untuk autentikasi ditentukan oleh cipher suite yang dinegosiasikan.
Pertukaran Kunci
Klien dan server bertukar nomor acak dan nomor khusus yang disebut Rahasia Pra-Master. Angka-angka ini dikombinasikan dengan data tambahan yang mengizinkan klien dan server untuk membuat rahasia bersama mereka, yang disebut Rahasia Master. Rahasia Master digunakan oleh klien dan server untuk menghasilkan rahasia TULIS MAC, yang merupakan kunci sesi yang digunakan untuk hashing, dan kunci tulis, yang merupakan kunci sesi yang digunakan untuk enkripsi.
Membuat Sesi Aman dengan Menggunakan TLS
Protokol Jabat Tangan TLS melibatkan langkah-langkah berikut:
- Klien mengirim pesan "Halo Klien" ke server, bersama dengan nilai acak klien dan suite sandi yang didukung.
- Server merespons dengan mengirim pesan "Server hello" ke klien, bersama dengan nilai acak server.
- Server mengirimkan sertifikatnya ke klien untuk autentikasi dan dapat meminta sertifikat dari klien. Server mengirimkan pesan "Halo server selesai".
- Jika server telah meminta sertifikat dari klien, klien akan mengirimkannya.
- Klien membuat Rahasia Pra-Master acak dan mengenkripsinya dengan kunci publik dari sertifikat server, mengirim Rahasia Pra-Master terenkripsi ke server.
- Server menerima Rahasia Pra-Master. Server dan klien masing-masing menghasilkan Rahasia Master dan kunci sesi berdasarkan Rahasia Pra-Master.
- Klien mengirim pemberitahuan "Ubah spesifikasi sandi" ke server untuk menunjukkan bahwa klien akan mulai menggunakan kunci sesi baru untuk hash dan mengenkripsi pesan. Klien juga mengirim pesan "Klien selesai".
- Server menerima "Ubah spesifikasi sandi" dan mengalihkan status keamanan lapisan rekamannya ke enkripsi simetris menggunakan kunci sesi. Server mengirim pesan "Server selesai" ke klien.
- Klien dan server sekarang dapat bertukar data aplikasi melalui saluran aman yang telah mereka tetapkan. Semua pesan yang dikirim dari klien ke server dan dari server ke klien dienkripsi menggunakan kunci sesi.
Melanjutkan Sesi Aman dengan Menggunakan TLS
Klien mengirim pesan "Halo Klien" menggunakan ID Sesi sesi yang akan dilanjutkan.
Server memeriksa cache sesinya untuk ID Sesi yang cocok. Jika kecocokan ditemukan, dan server dapat melanjutkan sesi, server akan mengirim pesan "Halo Server" dengan ID Sesi.
Catatan
Jika kecocokan ID sesi tidak ditemukan, server menghasilkan ID sesi baru dan klien dan server TLS melakukan jabat tangan penuh.
Klien dan server harus bertukar pesan "Ubah spesifikasi sandi" dan kirim pesan "Klien selesai" dan "Server selesai".
Klien dan server sekarang dapat melanjutkan pertukaran data aplikasi melalui saluran aman.