Teknik Informatika
Sekolah Teknik Elektro dan Informatika
Institut Teknologi Bandung
Jalan Ganesha 10 Bandung 40132
Email: if13008@students.if.itb.ac.id
Abstrak
SSL merupakan protokol yang digunakan untuk browsing web secara aman. Banyak fitur yang
disediakan pada SSL merupakan bentuk dari keamanan dalam browsing Internet. Paper ini
menjelaskan mengenai keamanan yang disediakan oleh SSL untuk menciptakan web yang aman pada
saat melakukan browsing. Penjelasan yang dilakukan meliputi fitur-fitur keamanan yang disertakan
dalam setiap komponen pesan yang ada pada saat negosiasi pelayanan keamanan yang dibentuk antara
client dan server. Selain itu dijelaskan pula mengenai isu–isu serangan yang memungkinkan ada pada
Internet yang mampu diatasi oleh SSL, peluang penyerang melakukan serangan terhadap suatu web
melalui SSL, serta sub protokol yang ada pada SSL untuk menjaga keamanan web pada saat browsing.
kriptografi yang akan negosiasi SSL sudah terpenuhi. Pada titik ini,
digunakan pada kedua belah pihak sudah siap untuk
komunikasi mengguanakn pelayanan keamanan yang
CompressionMethods Mengidentifikasi sudah dinegosiasikan tersebut. Protokol SSL
metoda data kompresi mendefinisikan sebuah pesan
akan digunakan pada ChangeCipherSpec yang mengindikasikan
komunikasi bahwa pelayanan keamanan sudah dapat
dilaksanakan. Pesan ChangeCipherSpec
2.3.3 ServerKeyExchange disediakan sebagai penanda pada sebuah
sistem untuk mulai menggunakan keamanan
Pesan ini mengandung ChiperSuite field pada informasinya.
ServerHello. Ketika ChiperSuite field
mengindikasikan algoritma kriptografi dan
ukuran kunci, pesan ini mengandung informasi 2.3.7 Finished
kunci publiknya. ServerKeyExchange dikirim Segera setelah mengakhiri pesan
tanpa ada enkripsi, sehingga hanya informasi ChangeCipherSpec, setiap sistem juga
kunci publik yang dapat secara aman mengirimkan pesan Finished. Pesan Finished
dikirimkan didalamnya. membolehkan kedua belah pihak untuk
memverifiaksi bahwa negosiasi telah berhasil
2.3.4 ServerHelloDone dan keamanan belum dikompromikan. Ada
dua aspek keamanan yang dikontribusikan dari
Pesan ini menyampaikan kepada Client bahwa pesan Finished ini, yaitu:
server sudah menyelesaikan pesan inisial 1. Pesan Finished merupakan sebuah
negosiasi. Pesan ini sendiri tidak mengandung subjek yang diperlukan pada saat
informasi yang lain, tapi merupakan pesan negosiasi cipher.
yang penting bagi Client karena, jika Client Yang artinya enkripsi dan otentikasi
telah menerima pesan ini maka Client dapat bergantung padanya. Jika pihak
meneruskan ke fase berikutnya dalam penerima tidak berhasil mendekrip
membentuk komunikasi yang aman dan memverifikasi pesan, sudah tentu
ada kejanggalan pada negosiasi
keamanan.
2.3.5 ClientKeyExchange 2. Content dari pesan Finished juga
Ketika server sudah menyelesaikan bagin mengandung kemampuan untuk
inisiasi dari negosiasi SSL, Client akan melindungi keamanan pada saat
merespon dengan pesan ClientKeyExchange. negosiasi SSL. Setiap pesan Finished
Seperti fungsi ServerKeyExchange pada server mengandung kriptografi hash dari
yang membawa informasi key untuk server, informasi penting mengenai negosiasi
pesan ClientKeyExchange memberitahukan yang baru saja selesai dilakukan. Ini
server kunci informasi yang dimiliki oleh melindungi dari penyerang yang
Client. Dalam kasus ini, kunci informasi menyerang dengan memasukkan
adalah untuk algoritma enkripsi simetris yang pesan fiktif atau memindahkan pesan
akan digunakan oleh kedua belash pihak dalam yang sah dari komuniakasi.
session. Jikaseorang penyrang melakukannya,
maka perhitungan kriptografi hash
Enkripsi melindungi kunci inforamasi ketika pada Client dan server akan berbeda
berada dalam jaringan, server tidak akan maka akan mudah terdeteksi.
mungkin bisa untuk mendekripsikan pesan
tersebut. Operasi ini merupakan perlindungan 2.4 Mengakhiri Komunikasi
penting jika ada penyerang yang menahan
pesan dari server yang sah dan berpura=pura
yang Aman
menjadi server tersebut dengan meneruskan SSL mempunyai prosedur aman untuk
pesan ke Client yang tidak menyadari apapun. mengakhiri komunikasi aman yang melibatkan
dua buah pihak. Gambar 2 dibawah ini
menunjukkan bagaimana caranya.
2.3.6 ChangeCipherSpec
Setelah Client mengirimkan kunci inforamsi
pada pesan ClientKeyExchange, persiapan
5
Aksi
1 Client mengirim pesan ClienHello menawarkan
pilihan SSL
Gambar 2 Mengakhiri Komunikasi yang
2 Server merespon dengan mengirimkan pesan
Aman
ServerHello memilih pilihan SSL
3 Server mengirimkan sertifikat kunci publiknya
Kedua buah sistem bersama-sama
dalam pesan Certificate
mengirimkan ClosureAlert kepada satu sama
lain. Penutupan secara eksplisit dari sebuah 4 Server mengakhiri bagian negosiasinya dengan
session melindungi dari truncation attack, mengirim pesan ServerHelloDone
yang merupakan serangan dimana penyerang 5 Client mengirimkan kunci informasi Session
mempunyai kemampuan untuk berkompromi dalam pesan ClinetKeyExchange
dengan keamanan untuk secara prematur 6 Client mengirimkan pesan ChangeCipherSpec
menyudahi komunikasi. untuk mengaktifkan pilihan negosiasi untuk
pesan kedepannya yang akan dikirim
7 Client mengirim pesan Finished untuk
2.5 Otentitkasi Identitas membiarkan server memeriksa pilihan aktivas
Server yang terbaru
Alasan penggunaan enkripsi adalah untuk 8 Server mengirim pesan ChangeCipherSpec
menjaga kerahasiaan informasi dari pihak untuk mengaktivasi pilihan negosiasi pesan
ketiga. Namun, jika pihak ketiga berhasil yang akan dikirim nantinya
menyamar sebagai pihak yang menerima 9 Server mengirim pesan Finished untuk
informasi, maka enkripsi tidak lagi dapat membiarkan Client memeriksa pilihan aktivas
diharapkan. Data mungkin saja terenkripsi, yang terbaru
namun penyerang akan tetap saja mendapatkan
seluruh data untuk mendekrispsinya. 2.6 Otentikasi Identitas
Unutuk mencegah serangan ini, SSL
Client
menyediakan mekanisme yang membolehkan Karena SSL mempunyai mekanisme untuk
setiap pihak untuk saling mengotentikasi pihak mengotentikasi identitas server, sudah
lain. Dengan mekanisme ini, setiap pihak akan selayaknya kita mengharapkan mekanisme
yakin bahwa pihak yang satu lagi adalah pihak untuk mengotentikasi identitas Client.
yang sebenarnya dan bukan pihak penyamar. Mekanismenya hapir sama dengan otentikasi
Untuk mengotentikasi identitas server, dapat identitas server. Mekanismenya dapat dilihat
dilihat seperti Gambar 3 dibawah ini. pada Gambar 4 dibawah ini
Pada sisi penerima, TCP memastikan bahwa SSL membangun hubungan (connection) yang
suatu paket sudah sampai, menyusunnya sesuai aman antara dua socket, sehingga pengiriman
nomor urut, dan menentukan apakah paket tiba pesan antara dua entitas dapat dijamin
tanpa mengalami perubahan. Jika paket keamanannya.
mengalami perubahan atau ada data yang Perlu dicatat bahwa SSL adalah protokol
hilang, TCP meminta pengiriman ulang. Client-server, yang dalam hal ini web browser
TCP/IP tidak memiliki pengamanan adalah Client dan website adalah server. Client
komunikasi yang bagus. TCP/IP tidak dapat yang memulai komunikasi, sedangkan server
mengetahui jika pesan diubah oleh pihak memberi respon terhadap permintaan Client.
ketiga (man-in-the-middle attack).
dapat dipasang ke dalam web server untuk berkomunikasi. Protokol ini merupakan bagian
memproses transaksi SSL lebih cepat yang paling kompleks dari SSL. Melalui
sehingga mengurangi waktu pemrosesan. protocol ini, server dan Client dapat saling
melakukan otentikasi satu sama lain.
3.3 Protokol Handshake Menegosiasikan enkripsi, algoritma MAC dan
kunci kriptografi. Digunakan sebelum aplikasi
SSL handshaking, yaitu sub-protokol untuk lain dikirim.
membangun koneksi (kanal) yang aman untuk
Sampai di sini, proses pembentukan kanal sudah terbentuk, maka http:// pada URL
yang aman sudah selesai. Bila sub-protokol ini berubah menjadi https:// (http secure)
10
4.1.6 Diffie-Hellman
Jika penerapannya menetapkan untuk
menyimpan list internal dari CA yang
Trapdoors
dipercaya, maka harus sangat hat-hati Ketika implementasi SSL menggunakan
memikirkan caranya, jika tidak, penerapan metode pertukaran key Diffie-Hellman, server
tersebut akan memperbolehkan pengguna akan menspesifikasikan sekumpulan parameter
untuk mengupdate list tersebut. Diffie-Hellman. Client yang mensupport
metode ini harus memeriksa parameter yang
diterima dari server. Client harus memastikan
bahwa server telah memilih nilai yang akan
4.1.2 Tandatangan Sertifikat mendukung keamanan yang memadai.
Hal ini sangat jelas, tapi hal ini sangat mudah
ditinjau; sebuah penerapan SSL harus
memvalidasi semua sertifikat yang diterimanya
4.1.7 Algoritma Rollback
dengan memverifikasi tandatangan CA dengan Sebuah pesan ServerKeyExchange
yang dimiliki olehnya. memungkinkan server SSL untuk
mengirimkan informasi kunci publik kepada
Client. Client perlu melakukan enkripsi
terhadap rahasia premaster untuk server.
4.1.3 Waktu Valid Sertifikat Informasi kunci publik tersebut ditandatangani
Semua penerapan SSL harus juga memerikas oleh server menggunakan kunci private yang
waktu valid dari semua sertifikat. Perioda berkorespondensi dengan kunci publik yang
validitas melibatkan waktu ”not before” dan ada pada pesan sertifikat server. Algoritma
”not after”, keduanya harus di verifikasi. kunci publik yang digunakan oleh Client tidak
terspesifikasi secara eksplisit pada pesan
ServerKeyExchange. Oleh karena itu informasi
4.1.4 Penarikan Kembali tesebut tidak ditandatangani oleh server. Hal
Status Sertifikat ini dapat membuat protokol SSL rentan
terhadap algoritma rollback attack.
Penerapan SSL yang beroperasi pada
lingkungan yang mendukung penarikan Dalam algoritma rollback attack, penyerang
sertifikat harus memeriksa status penarikan memaksakan kedua belah pihak untuk
dari setiap sertifikat sebelum menerimanya. memiliki pendapat yang berbeda dalam
Sayangnya, tidak semua lingkungan menentukan algoritma kunci publik yang
mendukung penarikan kembali status dari digunakan untuk menandatangani rahasia
sertifikat secara efektif. Dalam hal seperti ini, premaster. Contohnya, Client mengira
penerapan SSL mungkin akan menyediakan menggunakan algoritma RSA, sementara
alternatif lain bagi pengguna, mungkin dengan server mengira Diffie-Hellman. David Wagner
membolehkan pengiriman list dari sertifikat dan Bruce Schneier menunjukkan bagaimana
yang sudah di tarik kembali secara manual. skenario ini dapat menghancurkan proteksi
kriptografi. Jika penyerangan ini terjadi maka
4.1.5 Subjek Sertifikat penyerang dapat membaca semua informasi
Implementasi tidak hanya memastikan bahwa yang mungkin atau membuat data palsu
sertifikat valid, namun juga memastikan bahwa dengan mengatasnamakan salah satu pihak.
sertifikat tersebut mensertifikasi pihak yang Agar terlindung dari algoritma rollback attack,
tepat. Penyerang dapat memperoleh sertifikat implementasi Client SSL harus memverifikasi
dari pihak pengeluar sertifikat yang panjang dan jumlah parameter dari pesan
berwenang, sehingga pemeriksaan apakah ServerKeyExchange. Contohnya, RSA
sertifikat yang dimiliki oleh user adalah memiliki dua parameter sementara Diffie-
sertifikat yang benar, sangat diperlukan. Hellman menggunakan tiga parameter. Jika
Cara implementasi memverifikasi sertifikat ada pesan yang diterima maka jumlah
untuk subjek yang tepat bergantung pada parameter harus diperiksa. Jika jumlah
kebijakan dari pihak yang mengeluarkan parameter tidak sama maka Client harus
sertifikat. Contoh: VeriSign Class 3 menolak session dan membangkitkan
menempatkan nama host dari website yang peringatan.
tersertifikasi pada field commonName dari
subjek sertifikat. Browser seperti Netscape
Navigator atau Internet Explorer akan
memeriksa field ini terhadap nama host yang
dimasukkan user melalui URL.
12
4.3.3 Pengkahiran yang Ada dua buah masalah yang ada pada
pseudorandom number generators yang harus
Belum Pada Waktunya dipikirkan SSL dan penerapan dari keamanan
Ancaman dari serangan pemotongan yang lain. Masalah yang pertama adalah
berdasarkan pada pengakhiran yang belum keefektifan dari algoritmanya sendiri.
pada waktunya dari sebuah session SSL Kebanyakan dari library perangkat lunak
merupakan salah satu isu keamanan umum. membangkitkan pesudorandum number
Jika seorang penyerang dapat menghapus dengan menggunakan algoritma linear
pesan pada protokol ketika sedang terkirim, congruential generator. Meskipun algoritma
penyerang itu dapat membuat skenario dimana seperti diatas dapat menjadi pseudorandom
satu atau dua pihak yang saling berkomunikasi number generators yang efektif, algoritma
hanya menerima sebagian informasi. Jika tersebut juga bisa menjadi kurang efektif.
informasi yang hilang sangat penting dalam Ditambah lagi, banyak pengembang yang
komunikasi, penyerang dapat membahayakan mencari pembuktian pada algoritma dasar
keamanan secara keseluruhan dari pertukaran. dengan cara yang diperoleh, pada kenyataanya,
Protokol SSL menyediakan pesan ClosureAlert malah menbawa malapetaka.
untuk melindungi dari serang yang bertipe
seperti ini. Sayangnya, tidak semua lingkungan Masalah yang lebih serius dengan linear
dapat bergantung pada ClosureAlert. Pengguna congruential generators adalah mereka
web browsing contohnya, hanya dengan sequential , dan dapat diprediksikan secara
mematikan komputer mereka setelah lengkap. Jika parameter dari algoritma
menyelesaikan transaksi, sebelum komputer diketahui dan satu dari nilai yang spesifik,
tersebut sempat mengirimkan pesan sangat mudah untuk memprediksikan semua
ClosureAlert. Perlindungan yang lebih baik nilai dimasa yang akan datang yang akan
jika aplikasi yang menggunakan keamanan dibangkitkan oleh algoritma. Nomer acak yang
SSL lebih teliti dalam menangani dapat diprediksi merupakan masalah yang
serius bagi sebuah protokol keamanan., seperti
14