Keamanan Lapisan Transportasi
Deskripsi

Aplikasi klien-server menggunakan protokol TLS untuk berkomunikasi melalui jaringan dengan cara yang dirancang untuk mencegah penyadapan dan gangguan.
Karena aplikasi dapat berkomunikasi dengan atau tanpa TLS (atau SSL), maka perlu bagi klien untuk menunjukkan ke server pengaturan koneksi TLS. Salah satu cara utama untuk mencapai ini adalah dengan menggunakan nomor port yang berbeda untuk koneksi TLS, misalnya port 443 untuk HTTPS. Mekanisme lain adalah bagi klien untuk membuat permintaan khusus protokol ke server untuk mengalihkan koneksi ke TLS; misalnya, dengan membuat permintaan STARTTLS saat menggunakan protokol surat dan berita.
Setelah klien dan server setuju untuk menggunakan TLS, mereka menegosiasikan koneksi stateful dengan menggunakan prosedur handshaking. Protokol menggunakan jabat tangan dengan cipher asimetris untuk membangun tidak hanya pengaturan cipher tetapi juga kunci bersama sesi khusus dengan mana komunikasi lebih lanjut dienkripsi menggunakan cipher simetris. Selama jabat tangan ini, klien dan server menyetujui berbagai parameter yang digunakan untuk membangun keamanan koneksi:
Jabat tangan dimulai ketika klien terhubung ke server yang mendukung TLS yang meminta koneksi aman dan klien menyajikan daftar suite sandi yang didukung ( enkripsi dan fungsi hash).
Dari daftar ini, server memilih fungsi cipher dan hash yang juga mendukung dan memberi tahu klien tentang keputusan tersebut.
Server biasanya kemudian memberikan identifikasi dalam bentuk sertifikat digital. Sertifikat tersebut berisi nama server, otoritas sertifikat tepercaya (CA) yang menjamin keaslian sertifikat, dan kunci enkripsi publik server.
Klien mengonfirmasi validitas sertifikat sebelum melanjutkan.
Untuk menghasilkan kunci sesi yang digunakan untuk koneksi aman, klien:
mengenkripsi nomor acak dengan kunci publik server dan mengirimkan hasilnya ke server (yang hanya server yang dapat mendekripsi dengan kunci privatnya); kedua belah pihak kemudian menggunakan nomor acak untuk menghasilkan kunci sesi unik untuk enkripsi dan dekripsi data berikutnya selama sesi.
menggunakan pertukaran kunci Diffie-Hellman untuk secara aman menghasilkan kunci sesi acak dan unik untuk enkripsi dan dekripsi yang memiliki properti tambahan kerahasiaan maju: jika kunci pribadi server diungkapkan di masa depan, itu tidak dapat digunakan untuk mendekripsi sesi saat ini, bahkan jika sesi dicegat dan direkam oleh pihak ketiga.
Ini menyimpulkan jabat tangan dan memulai koneksi aman, yang dienkripsi dan didekripsi dengan kunci sesi hingga koneksi ditutup. Jika salah satu dari langkah-langkah di atas gagal, maka jabat tangan TLS gagal dan koneksi tidak dibuat.
TLS dan SSL tidak cocok dengan lapisan tunggal model OSI atau model TCP / IP. TLS menjalankan "di atas beberapa protokol transportasi yang andal (mis., TCP)," yang akan menyiratkan bahwa protokol itu berada di atas lapisan transport. Ini melayani enkripsi ke lapisan yang lebih tinggi, yang biasanya merupakan fungsi dari lapisan presentasi. Namun, aplikasi umumnya menggunakan TLS seolah-olah itu adalah lapisan transport, meskipun aplikasi yang menggunakan TLS harus secara aktif mengontrol memulai jabat tangan TLS dan menangani sertifikat otentikasi yang dipertukarkan.