Minggu, 14 November 2010

Implementasi Kriptografi : SSL Web Security



Implementasi kriptografi membutuhkan pengetahuan teknis yang komprehensif terhadap teknologi yang menjadi inangnya. Sama halnya dengan kriptografi, implementasi kriptanalisis pun membutuhkan pengetahuan teknis yang komprehensif pula. Bahkan beberapa algoritma kriptografis diciptakan khusus untuk suatu arsitektur perangkat keras atau perangkat lunak tertentu agar implementasinya dapat optimal. Begitu pula sebaliknya beberapa arsitektur perangkat keras atau perangkat lunak dibuat untuk memudahkan perancangan dan implementasi suatu algoritma kriptografis ke dalamnya. Bahkan produsen-produsen mikroprosesor membuat suatu chip yang khusus memberikan pelayanan kriptografis.

Penciptaan suatu mesin kriptanalisis yang dapat berfungsi sebagai code breaker membutuhkan nilai investasi yang sangat besar. Namun seiring dengan perkembangan teknik manufaktur prosesor, harga prosesor-prosesor dengan kecepatan lebih tinggi dapat diproduksi dengan lebih murah dari waktu ke waktu.

Pada dasarnya SSL didesain untuk selalu bekerja di mana salah satu host akan menjadi client dan yang lainnya akan menjadi server.

Protokol SSL terdiri atas 3 (tiga) elemen utama, yaitu:
a. Protokol record
Mengindikasi bahwa enkripsi yang menjamin confidentiality dan pengamanan integritas data telah digunakan.
b. Protokol handshake
Menyamakan penggunaan algoritma enkripsi dan kunci yang baru antara client dan server.
c. Protokol alert
Mengetahui ketika ada kesalahan yang terjadi atau ketika komunikasi antara keduanya sudah selesai.

SSL memiliki 2 (dua) definisi, yaitu:
a. SSL session
Langkah-langkahnya sebagai berikut:
• Session identifier: proses generate oleh server yang mengidentifikasi atau dapat menyimpulkan langkah session.
• Peer certificate: sertifikat X.509 v3 client. Langkah ini mungkin juga tidak ada.
• Compression method: algoritma yang digunakan untuk mengkompres data utama untuk dienkripsi.
• Cipher spec: data algoritma enkripsi dan algoritma hash. Mendefinisikan juga aspek kriptografis seperti nilai hash.
• Master secret: kunci rahasia 48-byte antara client dan server. Menunjukkan keamanan data rahasia untuk membangkitkan kunci penyandian, MAC dan IV.
• Is resumable: pemilihan bendera yang mengindikasikan jika session dapat digunakan untuk membangun hubungan/koneksi yang baru.

b. SSL connection
Didefinisikan menjadi elemen-elemen sebagai berikut:
• Server and client random: rangkaian byte yang dipilih oleh server dan client untuk masing-masing koneksinya.
• Server write MAC secret: mengindikasi kunci yang digunakan dalam proses MAC pada pengiriman data oleh server.
• Client write MAC secret: mendefinisikan kunci yang digunakan dalam proses MAC pada pengiriman data oleh client .
• Server write key: kunci penyandian konvensional untuk menyandi data oleh server dan nantinya akan dibuka oleh client .
• Client write key: kunci penyandian konvensional untuk menyandi data oleh client dan nantinya akan dibuka oleh server.
• Initialization vectors: menggunakan mode CBC, IV hanya digunakan sekali. Bagian ini diinisialisasi pertama kali oleh protokol handshake. Setelah itu blok ciphertext yang telah selesai digunakan sebagai IV berikutnya. IV di-XOR dengan blok pertama plaintext untuk penyandian selanjutnya.
• Number sequences: masing-masing pihak mengelola number sequences yang terpisah untuk kirim terima berita di setiap koneksinya. Ketika salah satu pihak mengirim atau menerima sebuah berita perubahan spec penyandian, rangkaian angka tersebut diset kembali menjadi nol. Rangkaian angka tersebut tidak dapat lebih besar dari 264 – 1.
Selain menggunakan IPSec, SSL mengelola bentuk pengamanannya berdasarkan apa yang dilakukan dengan menggunakan pengalamatan TCP/IP dan korespondensi nomor port server.

SSL versi 3 merupakan protokol yang amat rumit tetapi masih setipe dengan versi sebelumnya yaitu SSL versi 2 yang disebarluaskan oleh Netscape Navigator. SSL versi 3 mendukung pertukaran kunci antara client dan server dengan menggunakan:
a. RSA menggunakan anonymous public key.
b. Diffie-Hellman menggunakan anonymous atau nilai public key yang ditandatangani.
c. Fortezza key exchange menggunakan algoritma Skipjack.

Protokol TLS adalah pengembangan dari SSL versi 3 yang dipublikasikan oleh Netscape. Perbedaannya tidak terlalu banyak hanya pada struktur data algoritma-dependent dan aturannya saja. Proses dalam TLS ditujukan untuk menghasilkan versi inisial sebagai suatu standar internet. Penggunaan elemen-elemen berikut ini yang membuat perbedaan anatara TLS dengan SSL versi 3.
a. Algoritma HMAC.
b. Fungsi pseudo-random untuk men-genarate kunci.
c. Peringatan kesalahan (error alerts) – mengambil dan mendeskripsikan kesalahan.
d. Certificate verify message – handshake menggunakan MD5 dan SHA-1.
e. Finished message – kirim finished message segera setelah berita perubahan spec penyandian untuk verifikasi bahwa pertukaran kunci dan proses otentikasi telah berhasil.

Tidak ada komentar:

Posting Komentar