Transport Layer Security, atau TLS, adalah protokol keamanan yang berfungsi untuk memfasilitasi privasi dan keamanan data untuk komunikasi melalui Internet. Tujuan utama penggunaan TLS adalah mengenkripsi komunikasi antara aplikasi web dan server, seperti browser web yang memuat situs web. TLS juga dapat Anda gunakan untuk mengenkripsi komunikasi lain seperti email, pesan, dan voice over IP (VoIP). Pada artikel ini kita akan fokus pada peran Transport Layer Security dalam keamanan aplikasi web.
Yang mengusulkan fitur keamanan ini adalah Internet Engineering Task Force (IETF), sebuah organisasi standar internasional, dan versi pertama dari protokol tersebut terbit pada tahun 1999. Versi terbaru adalah TLS 1.3 terbit pada tahun 2018.
Apa perbedaan antara TLS dan SSL?
‘Transport Layer Security’ berkembang dari protokol enkripsi sebelumnya yang bernama Secure Sockets Layer (SSL), pengembangnya adalah Netscape. TLS versi 1.0 sebenarnya memulai pengembangan sebagai SSL versi 3.1, tetapi mereka mengubah nama protokol tersebut sebelum rilis ke publik untuk menunjukkan bahwa protokol tersebut tidak lagi terkait dengan Netscape. Karena sejarah ini, istilah TLS dan SSL terkadang orang gunakan secara bergantian.
Apa perbedaan antara TLS dan HTTPS?
HTTPS adalah implementasi enkripsi TLS di atas protokol HTTP, semua situs web menggunakannya serta beberapa layanan web lainnya. Oleh karena itu, setiap situs web yang menggunakan HTTPS menggunakan enkripsi TLS.
Mengapa bisnis dan aplikasi web harus menggunakan protokol TLS?
Enkripsi TLS dapat membantu melindungi aplikasi web dari pelanggaran data dan serangan lainnya. Selain itu, HTTPS yang terlindungi oleh TLS kini menjadi praktik standar untuk situs web. Misalnya, browser Google Chrome menindak situs non-HTTPS, dan pengguna Internet sehari-hari mulai menjadi lebih waspada terhadap situs web yang tidak menampilkan ikon gembok HTTPS.
Apa yang dilakukan TLS?
Ada tiga komponen utama yang dicapai oleh protokol Transport Layer Security: Enkripsi, Otentikasi, dan Integritas.
- Enkripsi: menyembunyikan data yang sedang ditransfer dari pihak ketiga.
- Otentikasi: memastikan bahwa pihak yang bertukar informasi adalah yang mereka klaim.
- Integritas: memverifikasi bahwa data tidak dipalsukan atau dirusak.
Bagaimana cara kerja TLS?
Agar situs web atau aplikasi dapat menggunakan Transport Layer Security, sertifikat TLS harus terinstal di server asalnya (sertifikat ini juga kita kenal sebagai “sertifikat SSL”, sebenarnya sertifikat TSL). Yang mengeluarkan sertifikat TLS adalah otoritas sertifikat kepada orang atau bisnis yang memiliki domain. Sertifikat tersebut berisi informasi penting tentang siapa yang memiliki domain, bersama dengan kunci publik server, yang keduanya penting untuk memvalidasi identitas server.
Awal koneksi Transport Layer Security menggunakan urutan yang kita kenal sebagai handshake TLS. Saat pengguna menavigasi ke situs web yang menggunakan TLS, jabat tangan TLS mulai berjalan antara perangkat pengguna (juga kita kenal sebagai perangkat klien) dan server web.
Selama jabat tangan TLS, perangkat pengguna dan server web:
- Tentukan versi TLS mana (1.0, 1.2, 1.3, dll.) yang akan mereka gunakan
- Tentukan suite sandi mana (lihat di bawah) yang akan mereka gunakan
- Otentikasi identitas server menggunakan sertifikat TLS server
- Hasilkan kunci sesi untuk mengenkripsi pesan di antara mereka setelah jabat tangan selesai
Jabat tangan Transport Layer Security menetapkan rangkaian sandi untuk setiap sesi komunikasi. Paket sandi adalah seperangkat algoritme yang menentukan detail seperti kunci enkripsi bersama mana, atau kunci sesi, yang akan digunakan untuk sesi tertentu. TLS dapat mengatur kunci sesi yang cocok melalui saluran yang tidak terenkripsi berkat teknologi yang dikenal sebagai kriptografi kunci publik.
Jabat tangan juga menangani otentikasi, yang biasanya terdiri dari server yang membuktikan identitasnya kepada klien. Ini dilakukan dengan menggunakan kunci publik. Kunci publik adalah kunci enkripsi yang menggunakan enkripsi satu arah, artinya siapa pun yang memiliki kunci publik dapat menguraikan data yang dienkripsi dengan kunci privat server untuk memastikan keasliannya, tetapi hanya pengirim asli yang dapat mengenkripsi data dengan kunci privat. Kunci publik server adalah bagian dari sertifikat TLS-nya.
Setelah data dienkripsi dan diautentikasi, itu kemudian ditandatangani dengan kode otentikasi pesan (MAC). Penerima kemudian dapat memverifikasi MAC untuk memastikan integritas data. Ini seperti kertas timah anti rusak yang ditemukan pada botol aspirin; konsumen tahu bahwa tidak ada yang mengutak-atik obat mereka karena foilnya masih utuh saat mereka membelinya.
Bagaimana TLS memengaruhi kinerja aplikasi web?
Versi terbaru Transport Layer Security hampir tidak memengaruhi kinerja aplikasi web sama sekali.
Karena proses kompleks yang terlibat dalam menyiapkan koneksi TLS, beberapa waktu buka dan daya komputasi harus dikeluarkan. Klien dan server harus berkomunikasi bolak-balik beberapa kali sebelum data apa pun ditransmisikan, dan itu menghabiskan milidetik waktu pemuatan yang berharga untuk aplikasi web, serta beberapa memori untuk klien dan server.
Namun, ada teknologi yang membantu mengurangi potensi latensi yang dibuat oleh handshake TLS. Salah satunya adalah TLS False Start, yang memungkinkan server dan klien mulai mentransmisikan data sebelum jabat tangan TLS selesai. Teknologi lain untuk mempercepat TLS adalah TLS Session Resumption, yang memungkinkan klien dan server yang sebelumnya berkomunikasi menggunakan jabat tangan yang lebih singkat.
Peningkatan ini telah membantu menjadikan TLS protokol yang sangat cepat yang seharusnya tidak terlalu memengaruhi waktu muat. Adapun biaya komputasi yang terkait dengan TLS, sebagian besar dapat diabaikan menurut standar saat ini.
TLS 1.3 (rilis pada tahun 2018) membuat TLS semakin cepat. Jabat tangan TLS di TLS 1.3 hanya memerlukan satu perjalanan bolak-balik (atau komunikasi bolak-balik) alih-alih dua, mempersingkat proses beberapa milidetik. Ketika pengguna telah terhubung ke situs web sebelumnya, jabat tangan TLS tidak memiliki perjalanan pulang pergi, mempercepatnya lebih jauh.