(0275) 2974 127
Ketika mengakses website menggunakan HTTPS, browser tidak langsung mengirimkan data secara aman ke server. Sebelum proses tersebut berlangsung, browser dan server perlu melakukan serangkaian komunikasi untuk menentukan bagaimana koneksi akan diamankan.
SSL handshake merupakan tahap awal dalam pembentukan koneksi aman antara client dan server. Pada proses ini, kedua pihak melakukan negosiasi parameter keamanan, melakukan autentikasi server, serta membentuk material kunci yang nantinya digunakan untuk melindungi pertukaran data.
Meskipun istilah SSL handshake masih sangat umum digunakan, teknologi keamanan web modern sebenarnya menggunakan TLS (Transport Layer Security). SSL merupakan pendahulu TLS dan sudah tidak digunakan sebagai protokol keamanan modern.
SSL handshake adalah proses negosiasi antara client dan server untuk membangun koneksi terenkripsi sebelum data dikirimkan melalui HTTPS. Client biasanya merupakan browser atau aplikasi yang mengakses suatu server, sedangkan server merupakan sistem yang menyediakan website atau layanan.
Dalam proses handshake, client dan server menentukan beberapa hal penting, seperti:
Setelah proses handshake berhasil, client dan server memiliki kunci yang dapat digunakan untuk mengenkripsi dan memverifikasi data selama sesi komunikasi.
Dengan demikian, SSL handshake bukanlah proses mengenkripsi seluruh komunikasi secara langsung. Handshake bertugas menyiapkan parameter keamanan dan kunci yang dibutuhkan sebelum komunikasi terenkripsi berlangsung.
Istilah SSL handshake sebenarnya masih banyak digunakan karena SSL lebih dahulu dikenal sebagai teknologi yang mengamankan website. Berikut Perbedaannya:
| Istilah | Penjelasan |
|---|---|
| SSL | Protokol keamanan generasi lama yang menjadi pendahulu TLS |
| TLS | Protokol keamanan modern untuk melindungi komunikasi melalui jaringan |
| SSL Handshake | Istilah umum untuk proses pembentukan koneksi aman |
| TLS Handshake | Istilah teknis yang lebih tepat untuk implementasi modern |
Jadi, ketika seseorang mengatakan SSL handshake, biasanya yang dimaksud adalah TLS handshake.
Komunikasi melalui internet berlangsung melalui jaringan yang tidak sepenuhnya dapat dipercaya. Data yang dikirim tanpa perlindungan dapat berisiko disadap atau dimodifikasi.
SSL handshake dibutuhkan karena client dan server harus terlebih dahulu memiliki kesepakatan mengenai mekanisme keamanan yang digunakan. Beberapa fungsi utamanya adalah:
Client dan server perlu menentukan versi TLS serta algoritma kriptografi yang dapat digunakan bersama.
Server dapat memberikan sertifikat digital kepada client. Sertifikat tersebut digunakan untuk membantu client memastikan bahwa server memang memiliki identitas yang sesuai dengan domain yang diakses.
Client dan server melakukan proses pertukaran kunci untuk menghasilkan material rahasia yang sama-sama dapat digunakan dalam sesi komunikasi.
Proses handshake juga memiliki mekanisme untuk memastikan bahwa pesan-pesan negosiasi tidak dimodifikasi oleh pihak lain.
Setelah handshake selesai, kunci sesi yang telah terbentuk digunakan untuk melindungi data aplikasi yang dikirim antara client dan server.
Cara kerja SSL handshake dapat berbeda tergantung versi TLS yang digunakan. TLS 1.2 dan TLS 1.3 memiliki alur handshake yang berbeda, sehingga tidak tepat jika semua koneksi HTTPS dianggap menggunakan urutan pesan yang sama.
Secara sederhana, alurnya dapat digambarkan seperti berikut:
Pada TLS 1.3, proses handshake dirancang lebih ringkas dibandingkan TLS versi sebelumnya.
Untuk memahami proses modern, berikut gambaran sederhananya.
1. Client Mengirim ClientHello
Proses dimulai ketika client ingin membuat koneksi aman dengan server. Client mengirimkan ClientHello yang berisi informasi seperti:
Pada TLS 1.3, ClientHello dapat membawa key share, sehingga informasi yang dibutuhkan untuk pertukaran kunci dapat dikirim sejak awal.
2. Server Mengirim ServerHello
Server kemudian memilih parameter yang sesuai dari pilihan yang diberikan client. Server mengirimkan ServerHello yang berisi pilihan protokol dan parameter kriptografi yang akan digunakan.
Server juga memberikan informasi key exchange yang diperlukan untuk membentuk shared secret. Pada tahap ini, client dan server mulai memiliki dasar untuk menghasilkan material kunci yang sama.
3. Server Mengirim Sertifikat
Server biasanya mengirimkan sertifikat digital sebagai bagian dari proses autentikasi. Sertifikat tersebut dapat berisi informasi seperti:
Browser kemudian dapat memvalidasi sertifikat tersebut berdasarkan aturan validasi sertifikat yang berlaku.
4. Server Melakukan Autentikasi
Sertifikat saja tidak cukup. Server juga perlu membuktikan bahwa ia memiliki private key yang terkait dengan identitas dalam sertifikat.
Pada TLS 1.3, mekanisme seperti CertificateVerify digunakan untuk membuktikan kepemilikan private key melalui digital signature.
Dengan demikian, pihak lain yang hanya memiliki salinan sertifikat tidak dapat dengan mudah menyamar sebagai server yang sebenarnya.
5. Client dan Server Membentuk Kunci Sesi
Client dan server kemudian menghasilkan material kunci yang sama berdasarkan parameter pertukaran kunci.
TLS 1.3 menggunakan mekanisme seperti (EC)DHE dan HKDF untuk menghasilkan material kunci yang diperlukan.
Yang penting dipahami, proses ini memungkinkan client dan server memperoleh kunci yang sama tanpa harus mengirimkan kunci rahasia tersebut secara langsung melalui jaringan.
6. Pesan Finished Dipertukarkan
Setelah parameter keamanan dan kunci tersedia, masing-masing pihak mengirimkan pesan Finished.
Pesan ini digunakan untuk mengonfirmasi bahwa proses handshake telah berlangsung sesuai dengan yang diharapkan dan memberikan perlindungan terhadap perubahan pada rangkaian pesan handshake. Jika validasi berhasil, handshake dapat dianggap selesai.
7. Data Aplikasi Mulai Dikirim
Setelah handshake selesai, koneksi dapat digunakan untuk mengirim data aplikasi secara terlindungi. Misalnya ketika membuka website:
Perbedaan versi TLS penting karena alur handshake tidak selalu sama.
| Aspek | TLS 1.2 | TLS 1.3 |
|---|---|---|
| Jumlah komunikasi | Umumnya lebih banyak | Lebih ringkas |
| Pertukaran kunci | Dapat menggunakan beberapa mekanisme lama | Menggunakan mekanisme modern seperti (EC)DHE atau PSK |
| Keamanan | Masih lebih baik dibanding SSL lama | Lebih modern |
| Struktur handshake | Lebih kompleks | Lebih sederhana |
| Enkripsi pesan handshake | Lebih banyak bagian awal yang masih terbuka | Lebih banyak pesan setelah ServerHello dilindungi |
| Forward secrecy | Bergantung pada mekanisme key exchange | Key exchange modern memberikan forward secrecy |
| Tujuan | Negosiasi keamanan dan pembentukan kunci | Sama, tetapi dengan desain yang lebih sederhana dan aman |
Sertifikat digital merupakan salah satu komponen penting dalam proses autentikasi server. Sederhananya, sertifikat dapat dianggap sebagai identitas digital server. Misalnya seseorang mengakses:
https://contohwebsite.com
Browser perlu memastikan bahwa koneksi tersebut memang menuju server yang memiliki identitas untuk domain tersebut, bukan server palsu yang mencoba menyamar.
Sertifikat membantu proses tersebut dengan membawa informasi identitas dan public key yang kemudian diverifikasi berdasarkan rantai kepercayaan sertifikat.
Namun, sertifikat bukanlah “kunci untuk mengenkripsi semua data website”. Dalam TLS modern, sertifikat terutama berperan dalam autentikasi, sementara kunci sesi yang dihasilkan selama handshake digunakan untuk melindungi komunikasi setelahnya.
Cipher suite adalah sekumpulan algoritma kriptografi yang digunakan untuk mengamankan komunikasi. Pada TLS versi tertentu, cipher suite dapat menentukan kombinasi algoritma yang digunakan untuk:
Client biasanya mengirimkan daftar kemampuan kriptografinya, kemudian server memilih parameter yang sesuai.
Jika client dan server tidak dapat menyepakati parameter keamanan atau terjadi masalah saat autentikasi, koneksi TLS dapat dihentikan. Beberapa penyebab yang umum antara lain:
| Penyebab | Penjelasan |
|---|---|
| Sertifikat tidak valid | Sertifikat tidak dapat divalidasi oleh client |
| Sertifikat kedaluwarsa | Masa berlaku sertifikat sudah berakhir |
| Domain tidak sesuai | Nama domain pada sertifikat tidak cocok dengan website |
| TLS tidak kompatibel | Client dan server tidak memiliki versi TLS yang kompatibel |
| Cipher tidak kompatibel | Tidak ditemukan algoritma yang dapat digunakan bersama |
| Sertifikat tidak dipercaya | Rantai sertifikat tidak dapat divalidasi |
| Masalah konfigurasi server | Konfigurasi TLS pada server mengalami kesalahan |
| Gangguan jaringan | Proses handshake tidak dapat diselesaikan |
Misalnya Anda membuka website:
https://www.contoh.com
Secara sederhana, prosesnya dapat dibayangkan seperti berikut:
Setelah tahap tersebut, browser dapat mulai bertukar data dengan server menggunakan perlindungan TLS.
SSL/TLS handshake merupakan bagian penting dari keamanan koneksi, tetapi keberadaan HTTPS tidak otomatis membuat seluruh website aman.
TLS terutama melindungi komunikasi antara client dan server. Keamanan website secara keseluruhan juga bergantung pada berbagai aspek lain, seperti:
Dengan kata lain, TLS dapat membantu memastikan bahwa komunikasi antara browser dan server terlindungi, tetapi tidak menjamin bahwa aplikasi di balik koneksi tersebut bebas dari kerentanan.
Tidak selalu. Dalam kondisi tertentu, koneksi yang sudah ada dapat digunakan kembali atau sesi sebelumnya dapat dimanfaatkan untuk mengurangi proses negosiasi yang harus dilakukan.
TLS 1.2, misalnya, memiliki mekanisme session resumption untuk menghindari full handshake ketika sesi sebelumnya dapat dilanjutkan. TLS 1.3 juga memiliki mekanisme resumption dan pre-shared key yang memungkinkan koneksi berikutnya dibuat dengan overhead yang lebih rendah.
Hal ini penting karena proses handshake membutuhkan komunikasi tambahan antara client dan server. Semakin efisien proses tersebut, semakin kecil overhead yang harus ditanggung sebelum data aplikasi dapat dikirim.
Hubungan antara HTTPS dan SSL handshake dapat dipahami dengan sederhana: HTTPS = HTTP yang berjalan melalui TLS
Sementara itu: TLS Handshake = proses awal untuk membangun parameter keamanan koneksi TLS
Jadi, SSL/TLS handshake merupakan salah satu bagian penting yang memungkinkan komunikasi HTTPS berlangsung secara aman.
Alurnya secara sederhana:
TLS sendiri bersifat independen terhadap protokol aplikasi sehingga dapat digunakan untuk melindungi berbagai protokol di atasnya, bukan hanya HTTP.
Bagi pemilik website, memahami proses ini penting karena koneksi HTTPS menjadi bagian dari infrastruktur keamanan website.
Dengan TLS yang dikonfigurasi dengan baik, komunikasi antara browser dan server dapat memperoleh perlindungan terhadap berbagai risiko pada jaringan, termasuk penyadapan dan manipulasi komunikasi.
Beberapa manfaatnya antara lain:
Bagi pengguna biasa, tanda paling mudah adalah ketika website dapat dibuka menggunakan HTTPS tanpa peringatan keamanan dari browser. Bagi administrator atau developer, proses handshake dapat diperiksa menggunakan berbagai alat seperti:
Pemeriksaan tersebut dapat membantu mengetahui versi TLS, sertifikat, cipher, serta kemungkinan masalah dalam proses negosiasi koneksi.
SSL handshake adalah proses awal yang dilakukan client dan server untuk membangun koneksi yang aman menggunakan TLS. Proses ini mencakup negosiasi parameter keamanan, autentikasi server, pertukaran informasi kriptografi, pembentukan kunci sesi, hingga konfirmasi bahwa handshake berhasil.
Memahami SSL handshake membantu pemilik website, developer, maupun administrator server mengetahui apa yang sebenarnya terjadi ketika browser menampilkan koneksi HTTPS. Proses yang berlangsung hanya dalam waktu singkat tersebut menjadi fondasi penting sebelum data website dapat dikirim melalui koneksi yang terlindungi.
Untuk memahami lebih banyak tentang website, hosting, cloud, cybersecurity, dan perkembangan teknologi digital, simak berbagai artikel informatif lainnya di Blog Hosteko.
Jumlah akun digital yang dimiliki seseorang terus bertambah. Mulai dari email, media sosial, marketplace, perbankan,…
Setelah memahami pengertian petty cash, hal berikutnya yang perlu diketahui adalah fungsi dan tujuan kas…
Dulu, memindai dokumen membutuhkan perangkat scanner yang tidak selalu tersedia di rumah, kantor, atau tempat…
Dalam kegiatan operasional perusahaan, tidak semua pembayaran harus diproses dengan mekanisme pembayaran utama. Ada berbagai…
Mengatur berbagai aktivitas sehari-hari terkadang menjadi tantangan, terutama ketika jumlah pekerjaan, tugas, janji, dan kebutuhan…
Menjadi influencer bukan sekadar memiliki banyak followers, tetapi tentang membangun hubungan, kepercayaan, dan pengaruh terhadap…