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.

2.5.3. Protocol SSL Alert

Protokol ini akan memberikan tanda kondisi sudah tidak terkoneksi lagi jika pengirim mengirimkan pesan dan yang akan menerima sedang offline maka pesan akan dipending sampai penerima terkoneksi lagi. SSL alert error message bisa dilihat pada tabel 2.x berikut ini : Tabel 2.7 Alert Error Message Sumber : http:msdn.microsoft.comen-uslibrarydd72188628VS.8529.aspx TLS or SSL alert Schannel error code SSL3_ALERT_UNEXPECTED_MESSAGE SEC_E_ILLEGAL_MESSAGE TLS1_ALERT_BAD_RECORD_MAC SEC_E_MESSAGE_ALTERED TLS1_ALERT_DECRYPTION_FAILED SEC_E_DECRYPT_FAILURE TLS1_ALERT_RECORD_OVERFLOW SEC_E_ILLEGAL_MESSAGE SSL3_ALERT_DECOMPRESSION_FAIL SEC_E_MESSAGE_ALTERED SSL3_ALERT_HANDSHAKE_FAILURE SEC_E_ILLEGAL_MESSAGE TLS1_ALERT_BAD_CERTIFICATE SEC_E_CERT_UNKNOWN TLS1_ALERT_UNSUPPORTED_CERT SEC_E_CERT_UNKNOWN TLS1_ALERT_CERTIFICATE_REVOKED CRYPT_E_REVOKED TLS1_ALERT_CERTIFICATE_EXPIRED SEC_E_CERT_EXPIRED TLS1_ALERT_CERTIFICATE_UNKNOWN SEC_E_CERT_UNKNOWN SSL3_ALERT_ILLEGAL_PARAMETER SEC_E_ILLEGAL_MESSAGE TLS1_ALERT_UNKNOWN_CA SEC_E_UNTRUSTED_ROOT TLS1_ALERT_ACCESS_DENIED SEC_E_LOGON_DENIED TLS1_ALERT_DECODE_ERROR SEC_E_ILLEGAL_MESSAGE TLS1_ALERT_DECRYPT_ERROR SEC_E_DECRYPT_FAILURE TLS1_ALERT_EXPORT_RESTRICTION SEC_E_ILLEGAL_MESSAGE TLS1_ALERT_PROTOCOL_VERSION SEC_E_UNSUPPORTED_FUNCTION TLS1_ALERT_INSUFFIENT_SECURITY SEC_E_ALGORITHM_MISMATCH TLS1_ALERT_INTERNAL_ERROR SEC_E_INTERNAL_ERROR Default SEC_E_ILLEGAL_MESSAGE

2.5.4. Arsitektur SSL TLS

Protokol SSL didesain untuk bisa digunakan pada provider TCP yang dapat dipercaya layanan keamanannya. SSL tidak hanya menggunakan satu protokol, tetapi dua layer lapis protokol. SSL record protocol merupakan layanan keamanan dasar kelapisan protokol yang lebih tinggi. EAP bisa beroperasi dengan SSLTLS. Arsitektur dari SSL dapat dilihat pada gambar 2.22 dbawah ini : Gambar 2.20 Arsitektur Protokol SSL Sumber : http:technet.microsoft.comen-uslibraryCc767139.f14-2_big28en- us,TechNet.1029.gif

2.5.5. Sertifikat Digital

Sertifikat digital adalah kunci publik dan informasi penting mengenai jati diri pemilik kunci tersebut, seperti misalnya nama, alamat, pekerjaan, jabatan, perusahaan, dan bahkan hash dari suatu informasi rahasia ysng ditandatangani oleh suatu pihak terpercaya. Sertifikat