Protocol SSL Record Protocol SSL Handshake
Berfungsi membangun parameter keamanan sebelum terjadinya pertukaran data antara dua sistem. Berikut tipe tipe pesan yang dikirimkan antara klien dan server :
Gambar 2.19
Handshake Protocol
Sumber :
http:www.cisco.comwebaboutac123ac147archived_issuesipj_1-1ssl.html
1. Client Hello Message
Untuk memulai komunikasi antara klien dan server, sisi klien terlebih dahulu harus mengirimkan pesan client hello ke server. Isi dari pesan ini akan
memberitahukan versi, nilai acak, ID sesi, cipher yang didukung dan metode kompresi data yang dapat digunakandiproses oleh klien. Sebuah pesan client hello
berisikan informasi berikut: a. Client_version. Bagian ini menginformasikan versi SSL paling tinggi yang dapat
dimengerti oleh klien.
b. Random. Bagian ini berisi rangkaiankombinasi acak yang dihasilkan oleh klien, dimana kombinasi ini nantinya akan digunakan untuk proses komputasi
kriptografi pada protokol SSL. Keseluruhan 32-byte struktur bagian ini sebenarnya tidak sepenuhnya acak. Melainkan, 4-byte diambil dari informasi
tanggalwaktu yang berguna untuk menghindari replay attacks. c. Session_id. Bagian ini berisikan identifier suatu sesi SSL. Bagian ini seharusnya
tidak memiliki nilai atau kosong apabila klien ingin menghasilkan parameter keamanan yang baru. Apabila terdapat identifier suatu sesi, maka nilai dari bagian
ini seharusnya berisi informasi dari sesi sebelumnya. d. Cipher_suites. Bagian ini berisi daftar kombinasi algoritma kriptografi yang
didukung oleh klien. Hal ini memberikan kemudahan pada sisi klien, tetapi sisi server tetap menjadi penentu akan algoritma kriptografi yang akan digunakan.
Apabila server tidak menemukan suatu pilihan dari daftar kombinasi yang diberikan oleh klien, maka server akan memberikan respons berupa pesan
handshake failure alert dan kemudian mengakhiri koneksi tersebut. e. Compression_methods. Sama seperti bagian cipher_suites, bagian ini berisikan
daftar kombinasi metode kompresi yang didukung oleh klien. Daftar ini disusun menurut kebutuhankonfigurasi dari klien, tetapi sisi server yang akan
memutuskan metode kompresi yang akan digunakan. Bagian jarang digunakan pada SSLv3 dan merupakan fitur pengembangan untuk TLSv1.
2. Server Hello Message
Setelah server menerima dan memroses pesan client hello, maka server memiliki dua pilihan pesan yang dapat dikirim ke klien, yaitu pesan handshake failure
alert dan server hello. Isi dari pesan server hello kurang lebih sama dengan pesan client hello. Perbedaannya adalah pada pesan client hello berisikan daftar dukungan
protokol pada sisi klien, sedangkan pesan server hello memutuskanmemberitahukan protokol yang akan digunakan kepada klien. Adapun isi dari pesan server hello, yaitu:
a. Server_version. Bagian ini berisi versi protokol yang dipilih oleh server, dimana versi ini akan digunakan seterusnya untuk komunikasi dengan klien. Server
memutuskan hal ini berdasarkan dukungan tertinggi pada kedua pihak. Sebagai contoh, apabila klien mendukung hingga versi SSLv3 dan server mendukung
hingga versi TLSv1, maka server akan memilih SSLv3. b. Random. Bagian ini sama seperti yang terdapat pada sisi klien, yang berfungsi
untuk proses komputasi kriptografi pada SSL. Nilai dari bagian ini harus bersifat independen dan berbeda dari apa yang dihasilkan pada sisi klien.
c. Session_id. Bagian ini menyediakan informasi pengenalidentitas dari sesi yang sedang berjalan. Jika nilai dari session identifier adalah tidak kosong, maka server
akan memeriksa dan mencocokan dengan yang terdapat pada session cache. Jika ditemukan nilai yang sama, maka server dapat membentuk sebuah koneksi baru
dan melanjutkan status dari sesi yang dimaksud. d. Cipher_suite. Bagian ini mengindikasikan sebuah cipher suite yang dipilih oleh
server berdasarkan daftar yang diberikan oleh klien. e. Compression_method. Sama seperti bagian cipher suite, bagian ini
mengindikasikan sebuah metode kompresi yang dipilih oleh server berdasarkan daftar dukungan yang diberikan oleh klien
3. Server Certivicate Message
Bersamaan dengan pengiriman pesan server hello, server juga mengirimkan sertifikat untuk proses otentikasi. Jenis sertifikat yang umum digunakan adalah
x.509v3. sertifikat ini juga digunakan sebagai peertukaran kunci. Algoritma enkripsi yang digunakan berasal dari pemilihan cipher dari client. Nantinya pesan ini yang
akan digunakan sebagai public key oleh client saat untuk mengencrypt pesan ke server.
4. Server Key Exchange
Pesan ini berisi efek dari pendistribusian kunci server dan algoritma enkripsi yang akan digunakan antara server dan client.
5. Certificate Request Message
Pesan ini bertujuan untuk meminta sertifikat dari pihak client. Pengiriman pesan ini menandakan dua indicator : 1. mengindikasikan tipe algoritma yang
digunakan pada sertifikat. 2. sertifikat yang diterima adalah sertifikat yang telah diakui oleh Certivicate Authority CA.
6. Server Hello Done Message
Pesan ini menandakan bahwa pesan server hello telah dikirim ke pihak client. Dan server menunggu respon dari client
7. Client Certificate Message
Pesan ini adalah pesan pertama yang dikirimkan oleh client setelah server hello done message diterima client. Dalam pesan ini client mengirimakn sertifikat
client ke server. Jika client tidak dapat mengirimkan sertifikat yang diminta server makan server akan memutuskan komunikasi dengan client.
8. Client Key Exchange
Pesan ini membawa kunci untuk server. Tipe algoritma kunci yang digunakan dapat berupa RSA, atau yang lainnya.
9. Certificate Verify Message
Pesan ini dikirimkan oleh client bertujuan agar server dapat melakukan verifikasi sertifikat client.
10. Finished Message
Pada fase selanjutnya client mengirimkan pesan yang berisi perubahan spesifikasi cipher dibarengi dengan pengiriman pesan finished message. Apabila
server menerima pesan finished message dari client. Server mengirimkan change cipher spec message dan mengirimkan finished message. Pada fase ini handshake
protocol telah sempurna dan jalur ini selanjutnya dapat digunakan untuk transfer pesan atau data secara aman. Steve Burnett at all, 2004.