Website yang menggunakan HTTPS sebenarnya sudah menggunakan SSL/TLS, yaitu protokol yang mengenkripsi koneksi web browser (pengguna) dan situs web. Pada tulisan kali ini saya mau coba sharing gimana sih cara kerja SSL ini. Tentu dalam bentuk yang disederhanakan.
Cara Kerja SSL
Ada serangkaian tahapan yang dinamakan handshake dimana browser dan web server saling melakukan verifikasi dan “mengamankan” koneksi.
Client Hello
Web browser mengirim pesan ke server. Proses ini dinamakan “Client Hello”. Pada pesan yang dikirim ke server berisi beberapa informasi seperti versi SSL/TLS yang digunakan, daftar cipher suites (metode enkripsi), data acak/random, dan juga nama domain.
Server Hello
Merupakan respons dari server. Isi responsnya terdiri dari versi SSL/TLS dan cipher suite yang dipilih, sertifikat SSL-nya, dan juga data acak/random dari server.
Verifikasi Sertifikat
Web browser akan melakukan beberapa pengecekan. Antara lain memeriksa apakah SSL yang diberikan oleh server sah/valid atau tidak, memeriksa kecocokan domain, dan juga memastikan SSL yang digunakan oleh server tidak kadaluarsa.
Apabila verifikasi ini gagal, biasanya web browser akan memunculkan kalimat/pemberitahuan seperti “Your connection is not private”.
Key Exchange
Klien (web browser) dan server sepakat untuk membuat kunci sesi (session key) yang fungsinya adalah sebagai kunci rahasia untuk melakukan enkripsi pada komunikasi yang dilakukan. Terdapat beberapa metode, antara lain ada RSA, Diffie-Hellman (DH) dan juga Elliptic Curve Diffie Hellman (ECDH).
Client Finished & Server Finished
Kalau sudah berada di tahap ini, artinya klien dan server sudah memberi sinyal bahwa koneksi yang aman sudah siap dan bisa digunakan. Lalu lintas data antara keduanya akan dienkripsi menggunakan session key tadi.
Itulah cara kerja SSL secara sederhana. SSL bisa dibilang sudah menjadi hal yang penting apabila kita punya suatu situs web atau domain. SSL dapat membantu mengamankan lalu lintas data termasuk data yang kita masukkan di situs web. Sebagai langkah preventif, jangan pernah memasukkan kode rahasia ataupun data sensitif pada situs yang tidak menerapkan/menggunakan SSL/TLS.
Leave a Reply