Symmetric Algorithms Symmetric Algorithms

1. Ancaman

Threats Ancaman adalah kekerasan potensial dalam suatu sistem keamanan. Pada tahapan ini dilakukan identifkasi terhadap ancaman-ancaman meliputi objek yang berpotensi menjadi target serangan dan celah-celah keamanan yang dapat menimbulkan ancaman terhadap protokol yang ingin diatasi. Kemudian dilanjutkan dengan penentuan kebutuhan layanan keamanan yang menjadi fokus dari protokol. Hal ini dimaksudkan untuk persiapan mengatasi serangan akibat ancaman-ancaman yang diperkirakan akan muncul.

2. Kebijakan

Policy Kebijakan keamanan merupakan pernyataan tentang apa saja yang diperbolehkan dan tidak diperbolehkan dalam protokol. Tujuannya untuk memberikan arahan dan menjadi acuan standar keamanan dalam protokol. Selain itu, kebijakan keamanan tersebut juga harus memenuhi layanan-layanan keamanan yang terdapat dalam protokol.

3. Spesifikasi

Specification Spesifikasi merupakan deskripsi dari metode yang digunakan protokol dalam menyajikan keamanannya, yang berupa pernyataan fungsional dari sistem. Bentuknya bisa berupa ekspresi matematika atau bahasa lain yang digunakan, meliputi model protokol kriptografi atau teknik kriptografi yang mendukung.

4. Disain

Design Pada tahapan desain ini akan dilakukan penterjemahan spesifikasi dalam bentuk komponen-komponen yang akan diimplementasikan. Disain tidak boleh melanggar ketentuan yang telah diberikan dalam spesifikasi.

5. Implementasi

Implemetation Tahapan implementasi digunakan untuk menghasilkan protokol berdasarkan disain yang telah ada. Pembuatan disain yang telah memenuhi spesifikasi akan menghasilkan aplikasi yang juga memenuhi spesifikasi tersebut. METODE PENELITIAN Penelitian dilakukan dengan pendekatan sistem yang mengikuti tahapan penelitian seperti tersaji pada diagram Gambar 10 berikut ini. Tahapan Penelitian Pengujian dan analisis Kesimpulan dan saran Analisis kebutuhan Perumusan masalah Penetapan tujuan penelitian Persiapan Penetapan asumsi awal yang mendukung protokol Studi literatur Wawancara dan diskusi dengan pakar Pembatasan masalah Penelitian Awal Identifikasi kebutuhan dasar untuk protokol keamanan Penentuan spesifikasi yang sesuai Identifikasi ancaman keamanan Penetapan kebijakan keamanan Implementasi disain protokol Pembuatan rancangan protokol sesuai spesifikasi Siklus hidup sistem keamanan Bishop Gambar 10 Diagram alur tahapan penelitian Penelitian diawali dengan analisis kebutuhan tentang adanya protokol keamanan untuk pengiriman data yang aman. Dalam hal ini, prosesnya bersamaan dengan studi pustaka dari berbagai buku referensi, tesis, dan skripsi serta riset jurnal hasil-hasil penelitian untuk mempelajar teori-teori yang mendasari penelitian ini. Selain itu juga untuk mengetahui perkembangan penelitian di bidang security protocols. Wawancara dan diskusi dengan pakar dilakukan untuk mendapatkan informasi tentang kebijakan yang dapat diterapkan pada protokol. Berdasarkan kebutuhan-kebutuhan dasar yang harus dipenuhi, selanjutnya akan dilakukan tahapan penelitian sesuai dengan siklus hidup sistem keamanan, yaitu: Identifikasi ancaman keamanan Pada tahapan ini dilakukan identifkasi terhadap ancaman-ancaman meliputi objek yang berpotensi menjadi target serangan dan celah-celah keamanan yang dapat menimbulkan ancaman terhadap protokol yang ingin diatasi. Kemudian dilanjutkan dengan penentuan kebutuhan layanan keamanan yang menjadi fokus dari protokol. Hal ini dimaksudkan untuk persiapan mengatasi serangan akibat ancaman-ancaman yang diperkirakan akan muncul. Penetapan Kebijakan Keamanan Kebijakan keamanan merupakan pernyataan tentang apa saja yang diperbolehkan dan tidak diperbolehkan dalam protokol. Tahapan kebijakan ini bertujuan untuk memberikan arahan dan menjadi acuan standar keamanan dalam protokol. Kebijakan keamanan juga harus memenuhi layanan-layanan keamanan yang terdapat dalam protokol. SUO yang rentan terhadap serangan keamanan tentunya sangat membutuhkan kebijakan yang mendukung protokol. Penentuan Spesifikasi Spesifikasi merupakan deskripsi dari metode yang digunakan protokol dalam menyajikan keamanannya, yang berupa pernyataan fungsional dari sistem. Bentuknya bisa berupa ekspresi matematika atau bahasa lain yang digunakan, meliputi model protokol kriptografi atau teknik kriptografi yang mendukung. Pada konteks penelitian kali ini spesifikasi yang digunakan adalah spesifikasi informal yang menjelaskan fungsi-fungsi yang dikerjakan sistem agar dapat menjalankan kebijakan. Pembuatan Rancangan Protokol Disain Pada tahapan disain ini akan dilakukan penterjemahan spesifikasi dalam bentuk komponen-komponen yang akan diimplementasikan. Disain harus sesuai dengan ketentuan yang telah diberikan dalam spesifikasi. Implementasi Disain Protokol Tahapan implementasi digunakan untuk mengimplementasikan disain yang telah dibuat menjadi sebuah aplikasi komputer yang sesuai dengan disain protokol keamanan data tersebut. Hasil implementasi akan digunakan untuk melakukan pengujian. Pengujian dan Analisis Tahap pengujian dilakukan untuk menguji apakah sistem yang dibangun memberi hasil keluaran seperti yang diharapkan. Pengujian pada penelitian ini dilakukan dengan simulasi. Berdasarkan hasil implementasi dan pengujian, dilakukan analisis terhadap disain protokol. Analisis terhadap hasil pengujian keamanan protokol dilakukan melalui analisis komponen metode keamanan informasi yang terlibat dalam protokol. HASIL DAN PEMBAHASAN Sistem Ujian Online SUO 1 Pengertian Sistem Ujian Online SUO Sistem Ujian Online SUO dikembangkan sebagai suatu metode alternatif untuk sistem pelaksanaan ujian, selain sistem ujian konvensional secara paper based dengan media kertas. SUO dikembangkan dengan memanfaatkan teknologi internet untuk proses komunikasi datanya. SUO didukung oleh Sistem Informasi Bank Soal yang menyediakan data soal valid dengan format pilihan ganda obyektif yang telah tersimpan dalam basis data bank soal. Pelaksanaan ujian melibatkan unit-unit sentra ICT Centre dengan lokasi yang tersebar di seluruh Indonesia, dimana proses pelaksanaannya diawasi oleh seorang administrator dan pengawas ujian dari setiap unit sentra pelaksana. Beberapa asumsi dasar yang digunakan sebagai persyaratan awal untuk mengikuti ujian ujian, diantaranya adalah: a Peserta ujian sudah melakukan registrasi awal dengan mengisi data pribadi nama, tanggal lahir dan nama ibu kandung sebelum melakukan registrsi ujian online. b Untuk dapat mengikuti ujian, mahasiswa peserta ujian client harus memiliki bukti registrasi mata kuliah yang diregistrasikan untuk semester yang sedang berjalan. c Ujian hanya dilakukan pada waktu-waktu tertentu, sesuai dengan jadwal yang telah ditentukan oleh institusi penyelenggara dan diberitahukan kepada mahasiswa peserta ujian client melalui website institusi penyelenggara ujian. d Manajemen pengelolaan sistem hanya boleh diberikan kepada administrator pusat. e Mahasiswa peserta ujian client tidak boleh memberitahukan user id dan password yang telah diperoleh pada saat registrasi kepada siapapun juga, termasuk kepada administrator ICT Centre. f Sistem secara fisik berada di tempat yang aman secure, yaitu dilokasi tertentu ICT Centre yang hanya digunakan pada saat ujian berlangsung. 2 Arsitektur jaringan pada Sistem Ujian Online SUO Secara umum, komunilkasi data yang terjadi dalam SUO merupakan hubungan client-server, karena hanya melibatkan komputer dari sisi mahasiswa peserta ujian sebagai client dan komputer dari sisi institusi sebagai komputer server penyedia layanan dan aplikasi yang dihubungkan oleh suatu jaringan internet Gambar 11. Gambar 11 Arsitektur jaringan pada Sistem Ujian Online SUO. Setiap proses komunikasi melibatkan data-data penting yang harus dijaga keamanannya, yaitu: - Data Registrasi Ujian Online Data registrasi awal yaitu NIM Nomor Induk Mahasiswa, akan digunakan sebagai user id. Kemudian pada saat melakukan proses registrasi, seorang mahasiswa peserta ujian akan mendapat password tertentu. Data registrasi tersebut user id dan password, selanjutnya digunakan sebagai identitas untuk Computer Computer Database Server Aplikasi melakukan aktivasi SUO. Pengiriman data registrasi menjadi titik kritis pertama pada protokol ini. - Data Soal Ujian Soal ujian merupakan data yang menjadi fokus dari SUO ini. Pengamanan terhadap data soal ujian baik dalam hal penyimpanan maupun pengirimannya, merupakan titik kritis kedua dalam protokol keamanan yang harus diperhatikan dengan seksama, sehingga data tidak dapat dirusak, diubah, dimodifikasi ataupun dicuri. - Data Jawaban Hasil Ujian Pelaksanaan ujian online menghasilkan data berupa jawaban hasil ujian yang harus dikirim kembali untuk proses penilaian. Pengiriman jawaban hasil ujian tersebut merupakan titik kritis lain yang menjadi celah keamanan pada protokol. Kebutuhan Dasar Keamanan Suatu protokol keamanan harus memenuhi kebutuhan dasar keamanan sesuai dengan aspek-aspek kriptografi yang dibutuhkan. Aspek-aspek kriptografi tersebut menjadi kebutuhan yang tidak terelakkan dalam sebuah transaksi elektronik. Untuk transaksi non-elektronik, dalam hal ini adalah sistem ujian secara paper based, beberapa solusi yang dapat diambil untuk masing-masing aspek, antara lain: - Kerahasiaan data, dengan menggunakan amplop yang tersegel. - Otentikasi entitas, dengan kehadiran fisik peserta ujian - Integritas data, dengan tanda tangan peserta ujian - Nir-penyangkalan, dengan tanda tangan peserta ujian, atau bukti tertulis. Seperti yang dapat dilihat, langkah-langkah tersebut merupakan bagian dari penerapan ilmu kriptografi. Selain langkah-langkah di atas, kriptografi juga memiliki sesuatu yang juga dapat menjadi solusi keamanan transaksi elektronik yaitu protokol kriptografi Yolanda 2007. Protokol keamanan data pada SUO tentunya harus memenuhi kebutuhan dasar dari SUO, yang juga memenuhi aspek-aspek kriptografi seperti berikut: 1 Kerahasiaan. Semua data yang terkait dengan SUO yang meliputi data registrasi, soal ujian dan jawaban hasil ujian harus dijaga kerahasiaannya. Dalam hal ini, layanan kerahasiaan pada protokol keamanan diberikan dengan tujuan untuk menjaga kerahasiaan datainformasi sehingga hanya diketahui oleh pihak yang berhak menerima datainformasi tersebut dan tidak dapat diketahui oleh pihak lain yang tidak berhak. Layanan kerahasiaan dilakukan dengan menerapkan protokol kriptografi yaitu enkripsi atau penyandian. 2 Otentikasi. Dalam hal ini, kebutuhan untuk dapat melakukan otentikasi merupakan hal yang sangat penting. Kebutuhan otentikasi pada SUO antara lain: a Otentikasi entitas Pada protokol keamanan ini, baik mahasiswa peserta ujian client maupun masing-masing server server Registrasi dan server SUO harus yakin bahwa masing-masing dari mereka merupakan pihak tujuan entitas yang benar. b Otentikasi data Data registrasi, soal ujian dan jawaban hasil ujian yang diterima oleh masing- masing pihak harus merupakan data yang benar, yang berasal dari pihak pengirim yang benar. Oleh karena itu, hanya pengguna yang valid yang dapat mengakses SUO ini. Kebutuhan otentikasi dipenuhi dengan diberikan dengan menambahkan nonce dan nilai hash pada kunci simetri dari setiap entitas. Penambahan nonce untuk memastikan bahwa komunikasi hanya dilakukan pada entitas yang benar dan komunikasi lama tidak dapat digunakan ulang dalam serangan balasan replay attacks. Dalam hal ini akan dapat dideteksi pula jika muncul entitas ganda. 3 Integritas data Data registrasi yang diterima oleh server Registrasi, soal ujian yang diterima oleh mahasiswa peserta ujian dan jawaban hasil ujian yang diterima oleh server SUO harus dalam kondisi utuh dan tidak mengalami perubahan. Integritas data dijamin dengan menggunakan metode kriptografi fungsi hash untuk setiap data yang terkait dengan protokol. 4 Nir-penyangkalan Baik client maupun server tidak dapat menyangkal telah mengirim data yang dimaksud. Kebutuhan dasar ini dijamin dengan penggunaan tandatangan digital, dimana masing-masing pihak memiliki pasangan kunci yang bersesuaian. 5 Ketersediaan. Koneksi ke jaringan internet harus berjalan dengan baik, soal ujian harus selalu tersedia dan jawaban hasil ujian selama ujian online berlangsung. Hal ini dijamin dengan pemanfaatan jaringan khusus atau privat VPN Talin 2010. Ancaman Threats Sebuah ancaman threats adalah kekerasan potensial dalam suatu sistem keamanan. Di dalam konteks ujian, terdapat banyak sekali serangan yang mengancam. Oleh karenanya, sistem ujian yang akan dibangun harus dipersiapkan agar mampu melindungi sistem dari ancaman-ancaman yang mungkin terjadi. Ancaman yang mungkin terjadi pada ujian konvensional diantaranya adalah soal yang diterima oleh peserta ujian salah, kebocoran soal, atau penggunaan identitas oleh orang lain. Ancaman kesalahan dan kebocoran soal dapat terjadi akibat dari proses penyiapan, pencetakan hingga distribusi soal yang memerlukan waktu lama. Ancaman tersebut mungkin terjadi karena adanya penyusupan oleh orang yang tidak berhak atau adanya pengubahan soal oleh penyusup. Ancaman penggunaan identitas oleh orang lain muncul akibat proses identifikasi dan pengawasan yang kurang baik. Serangan yang mengancam pada ujian secara konvensional paper based berbeda dengan serangan ujian secara online computer based. Ancaman yang mungkin terjadi pada ujian secara online dapat terjadi pada proses pertukaran informasi yang terkirim dan diterima oleh client dan server. Protokol keamanan pengiriman data pada SUO ini sangat berpotensi untuk mendapat ancaman. Analisis terhadap berbagai ancaman yang mungkin muncul dan menyerang keamanan protokol sangat diperlukan. Dalam SUO, terdapat beberapa objek yang berpotensi menjadi target serangan, antara lain: kunci sesi, data registrasi NIM dan password, soal ujian dan juga hasil jawaban ujian. Ancaman-ancaman yang diperkirakan akan muncul, diantaranya adalah: a Penyamaran spoofing yang dapat terjadi pada saat berlangsungnya proses komunikasi antara client dengan server, seperti pada saat client melakukan registrasi, login atau aktivasi untuk mengikuti ujian atau juga pada saat mengirim jawaban hasil ujian. Hal yang mungkin terjadi adalah client mengirimkan data registrasi atau kunci sesi ke server yang salah, yang telah menyamar menggunakan identitas server Registrasi atau server SUO, demikian pula sebaliknya. Penyamaran juga memungkinkan terjadinya penyangkalan terhadap data yang dikirim oleh pihak tertentu. Dalam hal ini, salah satu pihak bisa menyangkal telah mengirimkan data kepada pihak lain karena identitasnya telah diganti atau diubah oleh pihak penyerang. Ancaman ini akan diatasi dengan layanan otentikasi. b Interception penyusupan, dalam hal ini yang mungkin terjadi penyusup berhasil membaca data registrasi, kunci sesi atau soal ujian. Ancaman ini akan diatasi dengan layanan privasi atau kerahasiaan. c Modifikasi modification, dalam hal ini, ancaman modifikasi yang mungkin terjadi adalah penyerang mengubah kunci simetri atau kunci sesi yang digunakan dalam proses komunikasi antara client dengan server. Hal ini dapat menyebabkan komunikasi menjadi terganggu atau bahkan tidak dapat dilakukan. Ancaman lain yang mungkin terjadi adalah penyerang mengubah data soal atau jawaban hasil ujian yang terkirim. Ancaman ini akan diatasi dengan layanan integritas. Kebijakan Kebijakan keamanan adalah pernyataan atas apa yang diperbolehkan dan tidak diperbolehkan dalam menjalankan sebuah sistem. Sistem ujian online yang rentan terhadap serangan keamanan tentu membutuhkan kebijakan tentang hal-hal yang diperbolehkan dan tidak diperbolehkan dalam proses penyelenggaraan ujian secara online. Kebijakan untuk protokol ujian online ini mengacu pada secure voting requreiments yang dipaparkan oleh Schneier 1996. Dalam hal ini sistem pemilihan online merupakan sistem yang dianggap paling mirip dengan SUO. Kebijakan tersebut saat ini merupakan kebijakan yang memiliki protokol yang dapat menjamin privasi individu dan pencegahan terhadap berbagai bentuk kecurangan pada pelaksanaan ujian online. Menurut Schneier 1996, secure voting yang dibangun secara komputerisasi akan dapat digunakan jika terdapat protokol yang menjamin: 1 Privasi individu 2 Pencegahan terhadap kecurangan Adapun hasil adaptasi kebijakan pada secure voting requreiments yang akan diterapkan pada protokol keamanan data untuk SUO meliputi 5 persyaratan berikut. 1 Hanya peserta ujian yang sah yang boleh mengikuti ujian Dalam hal ini, hanya peserta ujian yang berhak yang dapat mengerjakan soal ujian otentifikasi yang dipenuhi dengan adanya proses registrasi. Setiap peserta ujian terlebih dahulu harus mendaftarkan dirinya agar dapat mengikuti ujian. Setelah itu paserta ujian akan mendapatkan akun user id dan password yang digunakan dalam proses ujian. User id dan password inilah yang menjadi bukti bahwa orang tersebut merupakan peserta ujian yang sah dan dapat mengerjakan soal ujian. 2 Peserta ujian tidak boleh mengikuti ujian lebih dari 1 satu kali Hal ini dapat pula diartikan pencegahan peserta ujian ganda. Peserta ujian ganda dapat dicegah jika terlebih dahulu dilakukan pengecekan apakah seseorang yang mendaftar sebagai peserta ujian sudah pernah mendaftarkan dirinya. Pengecekan ini dapat dilakukan pada ID peserta ujian. 3 Tidak ada peserta ujian yang dapat mengisi jawaban ujian peserta lain Dalam hal ini digunakan saluran aman untuk mengirim username dan password secara langsung untuk setiap peserta ujian, sehingga orang lain selain peserta ujian yang dimaksud tidak akan dapat mengetahui password peserta ujian lain 4 Tidak boleh mengubah jawaban hasil ujian peserta lain Peserta ujian tidak boleh mengubah jawaban hasil ujian peserta lain. Hal ini dapat dilakukan dengan cara memberikan validation ID yang unik dan aman sehingga orang lain tidak dapat mengganti jawaban hasil ujian peserta lain, termasuk server SUO. 5 Setiap peserta dapat memastikan bahwa jawaban hasil ujian sudah terkirim dan nilainya sudah terhitung dengan benar Setiap peserta ujian dapat memastikan bahwa jawaban hasil ujian sudah masuk ke sistem dan nilainya sudah terhitung dengan benar dalam perhitungan akhir. Peserta ujian dapat memastikan hal tersebut jika terdapat tabel yang menampilkan hasil jawaban ujian beserta nilainya yang berupa jumlah jawaban benar. Hal ini merupakan sebuah bukti bahwa jawaban hasil ujian sudah masuk dan terhitung oleh sistem. Spesifikasi Spesifikasi adalah pernyataan baik formal maupun informal mengenai fungsi sistem yang diinginkan Bishop 2003. Setelah kebijakan ujian dibuat, langkah selanjutnya adalah menentukan spesifikasi keamanan system Sesuai dengan kebijakan, SUO membutuhkan berbagai spesifikasi keamanan. Protokol keamanan data pada ujian online ini menggunakan 2 server yaitu server Registrasi dan server SUO. Masing-masing server memiliki tugas dan fungsi utama, sebagai berikut. Server Registrasi Server Registrasi merupakan server yang memiliki tugas utama mengotentikasi dan mengotorisasi peserta ujian client. Setiap client akan mengirim pesan kepada server Registrasi yang berisi permintaan registrasi dan password. Server Registrasi akan membangkitkan password, mendaftarkannya secara aman kepada server SUO, dan mengirimkannya pada client. Server Registrasi juga berfungsi sebagai salah satu server yang memiliki fungsi utama melakukan pertukaran kunci simetri Blowfish dengan menggunakan kunci publik server Registrasi. Server SUO Server SUO memiliki fungsi utama untuk melayani permintaan login ujian, permintaan naskah soal, dan pengiriman hasil jawaban ujian. Sedangkan beberapa fungsi-fungsi utama yang dimiliki oleh server SUO yaitu: 1 Melakukan pertukaran kunci simetri Blowfish dengan menggunakan kunci publik server SUO. 2 Membuat secure validationID dan dikirimkan ke client yang akan digunakan sebagai identitas client dalam pelaksanaan ujian 3 Melakukan otentikasi terhadap client yang valid. 4 Menerima permintaan soal ujian dari client yang sah. 5 Memberikan tanda tangan digital pada data naskah ujian yang dikirim ke client. 6 Menerima hasil jawaban ujian yang aman dari client yang sah melalui permintaan verifikasi secara aman. 7 Mengijinkan client untuk meminta nilai hasil jawaban ujian yang sah Secara umum sistem yang dibangun haruslah memberikan jaminan bahwa informasi yang diakses peserta ujian client adalah informasi yang benar dan akurat dan terjamin keamannya. Oleh karena itu, sistem protokol kriptografi pada SUO membutuhkan spesifikasi sebagai berikut. 1 Pengamanan data ke server Registrasi dan server SUO dengan enkripsi kunci simetri Blowfish. 2 Pengamanan data untuk pengiriman kunci simetri menggunakan kunci publik RSA. 3 Server SUO memperbolehkan peserta ujian untuk masuklog in dan menjawab soal hanya boleh satu kali dengan memberikan validation ID untuk setiap peserta ujian. 4 Pengamanan data untuk menjaga keutuhan data dilakukan dengan menggunakan fungsi hash SHA-1. 5 Otentikasi dan verifikasi peserta ujian dengan penambahan nilai nonce pada kunci simetri. Berdasarkan persyaratan yang harus dipenuhi oleh sebuah sistem ujian online, maka diperlukan spesifikasi yang dapat menunjang kebutuhan sistem tersebut, yaitu. 1 Hanya peserta ujian yang sah yang boleh mengikuti ujian otentikasi.  Terdapat validation ID yang acak dan unik untuk setiap peserta ujian.  Secara komputasional tidak memungkinkan seorang penyerang untuk menebak pasangan kunci dan validation ID yang valid.  Hanya server SUO yang dapat memasukkan dan menghitung hasil jawaban soal. 2 Peserta ujian tidak boleh menjawab soal ujian lebih dari 1 satu kali membuat duplikasi jawaban soal.  Jika peserta ujian telah melakukan proses menjawab soal dan kembali melakukan proses menjawab soal tersebut, maka server SUO akan membuat pesan adanya duplikasi jawaban soal ujian. Server SUO mengetahui validation ID peserta ujian sehingga dapat mengetahui jika telah terjadi duplikasi. 3 Tidak ada peserta ujian yang dapat mengisi jawaban ujian peserta lain.  Terdapat saluran aman untuk mengirim username dan password secara langsung untuk setiap peserta ujian, sehingga orang lain selain peserta ujian yang dimaksud tidak dapat mengetahui password peserta ujian lain. 4 Tidak boleh mengubah jawaban hasil ujian peserta lain.  Diberikan validation ID yang unik dan aman sehingga orang lain tidak dapat mengganti jawaban soal dari peserta ujian lain termasuk server SUO. 5 Setiap peserta dapat memastikan bahwa jawaban hasil ujian sudah terkirim dan nilainya sudah terhitung dengan benar.  Jika seorang peserta ujian memasukkan pilihan jawaban soal, server SUO akan menyimpan pilihan jawaban dan menghitung jumlah jawaban yang benar dan salah. Kemudian akan mengembalikan hasil penghitungan sementara. Hal ini menyebabkan peserta dapat memastikan bahwa pilihan jawabannya benar telah dihitung oleh server SUO. Disain Disain protokol terbagi menjadi 4 bagian utama, yaitu: protokol untuk proses registrasi, protokol untuk login ujian, protokol untuk generate dan pengiriman naskah soal ujian serta protokol untuk pengiriman jawaban hasil ujian. Tahapan disain diawali dengan mengidentifikasi proses komunikasi data pada SUO yang dapat dilihat pada Gambar 12 berikut. Selanjutnya dapat dilihat hubungan client – server yang terjadi pada proses komunikasi data pada Gambar 12 diatas, melalui diagram alur pada Gambar 13 dibawah ini. Client 1. Registrasi ujian online Server Registrasi 2. Validasi data registrasi Client 3. Login ujian Server SUO 4. Otentikasi client Client 5. Permintaan soal ujian Server SUO 6. Preparing dan generate naskah Client 7. Kirim hasil ujian Server SUO 8. Validasi hasil ujian client Data valid? Data valid? Data valid? 0. Mulai 9. Selesai Ya Ya Ya Tidak Tidak Tidak Ujian Gambar 13 Diagram alur komunikasi protokol keamanan data pada SUO. Gambar 12 Skema komunikasi data pada SUO. 1. User request 2. Validasi data Client Server Registrasi 3. Login Server SUO Client 4. Otentikasi client 7. Kirim Hasi Ujian Server SUO Client 8. Otentikasi client 5. Request ujian Server SUO Client 6. Preparing generate naskah Server Registrasi Server SUO Client Alur Komunikasi Protokol Ujian Online Alur komunikasi protokol untuk ujian online berdasarkan Gambar 13 memiliki deskripsi langkah-langkah komunikasi seperti berikut: 1 Proses Registrasi Langkah-langkah komunikasi yang dilakukan untuk memenuhi protokol pada proses registrasi adalah: a Mahasiswa client meminta untuk melakukan proses registrasi melalui server Registrasi. b Client dan server Registrasi generate kunci publik dan kunci privat masing- masing. Server Registrasi kemudian mengirimkan kunci publik “reg.pub” ke client, demikian pula sebaliknya. c Client memasukkan data NIM user id sebagai bukti identitas. Client men- generate kunci simetri sebagai session key. d Client mengirim data NIM dan kunci simetri yang ditambah dengan nilai nonce dan dienkripsi dengan kunci publik server Registrasi “reg.pub” ke server Registrasi untuk divalidasi. e Server Registrasi melakukan validasi terhadap data registrasi NIM yang dikirim oleh client. f Server Registrasi akan mendekripsi pesan dari client sehingga didapat NIM dan kunci simetri serta membaca nilai nonce, kemudian mencari data NIM yang telah tersimpan di server Registrasi dan membandingkan dengan data NIM yang dikirim oleh client. g Jika datanya ada dan cocok, maka server Registrasi akan men-generate password secara random. Jika datanya tidak ada atau tidak cocok, maka proses registrasi akan dihentikan. h Selanjutnya dicari nilai hash dari NIM, beserta nilai nonce+1 dengan SHA-1, kemudian nilai hash dan password dienkripsi dengan kunci simetri untuk dikirim ke client. i Server Registrasi mengirim kunci simetri ke client setelah dienkripsi dengan kunci publik client ”mhs.pub”. j Client mendekripsi kunci simetri dengan berkas kunci privat client “mhs.prv”, dan mendekripsi pesan dengan kunci simetri. k Client memeriksa keutuhan pesan dengan membaca nilai hash dan otentikasi pesan dengan menghitung nonce+1, sehingga didapat NIM user name dan password yang akan digunakan sebagai identitas client. Secara umum proses komunikasi pada proses registrasi antara client dengan server Registrasi dapat dilihat pada Gambar 14. Gambar 14 Alur komunikasi proses registrasi. Client membaca kunci publik server Registrasi Client memasukkan data NIM dan generate kunci simetri Blowfish Server Registrasi mendekripsi data NIM dan kunci simetri dengan kunci privat dan membaca nonce Server Registrasi mencari nilai hash dari NIM dengan SHA-1 dan nonce+1 Client mendekripsi kunci simetri dengan kunci privat server Registrasi dan mendekripsi pesan dengan kunci simetri 1. Kunci publik client 2. Kunci publik Server Registrasi 3. Data NIM dan kunci simetri Blowfish + nonce yang telah dienkripsi dengan kunci publik server Registrasi Client Server Registrasi Server Registrasi membandingkan data NIM apakah cocok dengan data yang ada di server Registrasi. Jika cocok, maka generate password 4. Nilai hash dari NIM password yang dienkripsi dengan kunci simetri dan kunci simetri yang dienkripsi dengan kunci publik server Registrasi Client generate kunci publik dan kunci privat Server Registrasi generate kunci publik dan kunci privat Server Registrasi terima kunci publik client Client memeriksa keutuhan pesan dari server Registrasi dengan membaca nilai hash dan otentikasi pesan dengan menghitung nonce+1. 2 Login Ujian Langkah-langkah komunikasi yang dilakukan untuk memenuhi protokol pada proses login ujian adalah: a Client memohon hubungan aman untuk melakukan proses login ujian ke Server SUO dengan menyertakan kunci publik client “mhs.pub”. b Server SUO juga mengirimkan kunci publiknya “suo.pub” yang akan digunakan untuk mengenkripsi session key. c Client masuk ke sistem dengan memasukkan user id NIM dan password. d User id dan password dienkripsi dengan session key dan session key dienkripsi dengan kunci publik server SUO ”suo.pub”. e User id, password + session key dan session key + ”suo.pub” dikirim ke server SUO. f Server SUO melakukan autentikasi terhadap client dengan mendekripsi session key dengan kunci privat server SUO “suo.prv” dan mendekripsi pesan dengan session key sehingga didapat user id NIM dan password. Jika user id NIM dan password tersebut valid, maka server SUO akan membuat validation ID. g Server SUO mengirimkan validation ID yang dienkripsi dengan session key ke client. h Client mendekripsi pesan yang berisi validation ID dengan session key. Jika valid, kemudian client bisa membuat permintaan request naskah soal ujian exam paper ke server SUO. Secara umum proses komunikasi pada proses login ujian antara client dengan server SUO dapat dilihat pada Gambar 15. Gambar 15 Alur komunikasi proses login. 3 Permintaan Naskah Soal Ujian Request Exam Paper Langkah-langkah komunikasi yang dilakukan untuk memenuhi protokol pada proses permintaan naskah soal ujian adalah: a Client membuat permintaan request naskah soal ujian exam paper ke server SUO. b Server SUO mengirimkan kunci publik server SUO ”suo.pub” ke client. c Client membaca kunci publik server SUO kemudian membangkitkan kunci simetri Blowfish. d Client mengenkripsi kunci simetri dengan kunci publik server SUO “suo.pub” kemudian dikirim kembali ke server SUO. Client mengirimkan pesan yang berisi permintaan naskah soal ujian exam paper kepada server SUO dengan symmetric chipper. Client membaca kunci publik server SUO Client memasukkan user id NIM dan password Server SUO mendekripsi kunci simetri dengan kunci privat RSA dan mendekripsi pesan dengan kunci simetri Client mendekripsi pesan dengan kunci simetri 1. Kunci publik client mhs.pub 2. Kunci publik server SUO suo.pub 3. Data user id NIM dan password yang telah dienkripsi dengan kunci simetri server SUO dan kunci simetri yang dienkripsi dengan kunci publik server SUO 4. ValidationID yang dienkripsi dengan kunci simetri Client Server SUO Server SUO melakukan otentikasi terhadap user id dan password. Jika data valid, maka server SUO membuat validationID e Server SUO mendekripsi kunci simetri dengan kunci privat “suo.prv” dan mendekripsi pesan dengan kunci simetri. f Server SUO men-generate naskah soal ujian exam paper dan menandatangani dengan SHA-1. g Server SUO mengenkripsi naskah soal ujian exam paper dengan kunci simetri dan mengirimkan kepada client. h Client mendekripsi exam paper dan memverifikasi tanda tangan digital dari server SUO dengan membaca nilai hash yang disertakan. Jika tanda tangan valid, client dapat melakukan proses ujian melalui Aplikasi Ujian Online pada client. Secara umum proses komunikasi pada proses permintaan naskah soal ujian antara client dengan server SUO dapat dilihat pada Gambar 16. Gambar 16 Alur komunikasi proses permintaan soal ujian. Client membaca kunci publik server SUO Server SUO mendekripsi kunci simetri dengan kunci privat RSA dan mendekripsi pesan dengan kunci simetri Client mendekripsi soal ujian dan memverifikasi tanda tangan digital. Jika valid, maka lanjut ke proses ujian 1. Kunci publik server SUO suo.pub 3 Pesan minta naskah soal ujian dengan symmetric cipher 4 Naskah soal ujian yang dienkripsi dengan kunci simetri Client Server SUO Cek pesan apakah cocok. Jika ya, maka server SUO generate naskah soal ujian dan beri tanda tangan digital dengan SHA-1 Client generate kunci simetri Blowfish 2 Kunci simetri Blowfish yang telah dienkripsi dengan kunci publik server SUO 4 Kirim Jawaban Ujian Langkah-langkah komunikasi yang dilakukan untuk memenuhi protokol pada proses kirim jawaban ujian adalah: a Client mengirimkan pesan akan mengirimkan jawaban hasil ujian ke server SUO, setelah ujian selesai. b Server SUO mengirim kunci publik “suo.pub” melalui saluran aman. c Client membaca kunci publik yang dikirim oleh server SUO, kemudian membangkitkan kunci simetri dengan algoritma Blowfish. d Kunci simetri dienkripsi dengan kunci publik server SUO “suo.pub” kemudian dikirim kembali ke server SUO. e Client menandatangani hasil jawaban ujian dengan SHA-1. f Client mengirim pesan yang terdiri dari validationID dan jawaban hasil ujian dengan enkripsi kunci simetri ke server SUO. g Server SUO mendekripsi kunci simetri dengan kunci privat server SUO “suo.prv”, kemudian mendekripsi pesan dengan kunci simetri. h Server SUO memeriksa validationID. Jika valid, maka jawaban hasil ujian akan disimpan di server SUO. i Server SUO mengirim pesan kepada client yang berisi konfirmasi “OK SIMPAN” yang ditandatangani dengan SHA-1 dan dienkripsi dengan kunci simetri. j Client mendekripsi pesan dengan kunci simetri, kemudian memverifikasi tanda tangan digital dengan membaca nilai hash yang disertakan pada pesan. Jika valid, maka proses dinyatakan selesai. Secara umum proses komunikasi pada proses kirim jawaban ujian antara client dengan server SUO dapat dilihat pada Gambar 17. Gambar 17 Alur komunikasi proses kirim jawaban ujian. Implementasi Implementasi dari setiap spesifikasi yang telah dibuat, dilakukan untuk mengimplementasikan disain protokol menjadi aplikasi komputer. Dalam penelitian ini digunakan batasan-batasan dan beberapa alat bantu, yaitu: 1 Tipe data Tipe data yang digunakan pada implementasi berbentuk text. 2 Perangkat Keras dan Perangkat Lunak - Perangkat keras berupa laptop dengan spesifikasi: Processor Intel Core i5, monitor 14.1 inch, memori 4GB DDR3 RAM. - Perangkat Lunak yang terdiri dari: Server SUO Client membaca kunci publik server SUO Client generate kunci simetri Blowfish Server SUO mendekripsi kunci simetri dengan kunci privat RSA dan mendekripsi pesan dengan kunci simetri Client mendekripsi pesan dan memverifikasi tanda tangan. Jika valid, maka proses selesai 1. Kunci publik server SUO suo.pub 3. ValidationID dan jawaban ujian yang telah dienkripsi dengan kunci simetri Blowfish 4. Pesan konfirmasi yang ditandatangani dengan SHA- 1 dan dienkripsi dengan kunci simetri Client Server SUO memeriksa validationID. Jika valid, maka jawaban akan disimpan di server SUO Client memberi tanda tangan digital pada jawaban ujian dengan SHA-1 2 Kunci simetri Blowfish yang telah dienkripsi dengan kunci publik server SUO a OS Host: Linux Cent OS Release 5.5 Final, Kernel 2.6.18-194.32.1 el5.on an X86-64. b OS Guest : Microsoft Windows XP Profesional Versi 2002 Service Pack 3. c Tools Bahasa Pemrograman : Power Builder 10.0 Build 4500 d Library java: - bcprov-jdk14-119.jar - jce.jar - pbcrypto-1_0.jar Hasil Implementasi Implementasi dari disain protokol yang dibangun, dibuat dalam suatu aplikasi kecil yang menggambarkan proses-proses dari alur komunikasi pada protokol. Aplikasi tersebut terdiri dari 8 menu tampilan yaitu: Registration Connection Request, Registration Connection Listener, Password Request, Password Request Listener, Examination Connection Request, Server SUO Connection and Validation ID Generator, Exam Paper Request Connection, Exam Generator and scorer Connection Listener yang merupakan gambaran dari proses-proses berikut: Registrasi, Login Ujian, Permintaan Mengikuti Ujian Permintaan Soal Ujian dan Pengiriman Hasil Jawaban Ujian Setiap proses memiliki menu tampilan sesuai dengan proses komunikasinya, seperti berikut. User Interface Proses Registrasi Proses registrasi yang terdapat pada protokol meliputi proses komunikasi yang terjadi antara client dengan server Registrasi, yaitu: - Permintaan koneksi dari client ke server Registrasi - Pertukaran kunci publik Pertukaran kunci publik Gambar 18.a Registration Connection Gambar 18.b Registration Connection Request. Listener. Gambar 18.a menunjukkan menu Registration Connection Request yang berada pada sisi client yang menampilkan kunci publik dan kunci privat yang dibangkitkan oleh client dan kunci publik server Registrasi hasil proses pertukaran kunci publik. Gambar 18.b menunjukkan menu Registration Connection Listener pada server Registrasi yang menampilkan kunci publik dan kunci privat yang dibangkitkan oleh server Registrasi dan kunci publik client hasil proses pertukaran kunci publik. Connection Listener selalu dalam posisi aktif, menunggu jika ada permintaan koneksi dari client. Jika ada client yang meminta koneksi, maka client membangkitkan kunci publik dan kunci privat. Selanjutnya kunci publik dikirim ke server Registrasi. Setelah server Registrasi menerima kunci publik client, maka siap membangkitkan kunci publik dan kunci privat. Kemudian terjadilah proses pertukaran kunci publik sebagai bukti identitas dari masing- masing pihak. Hasil pemrograman untuk implementasi proses registrasi dapat dilihat pada Lampiran 2. User Interface Proses Login Ujian Proses Login Ujian yang terdapat pada protokol meliputi proses komunikasi untuk melakukan login yang terjadi antara client dengan server Registrasi, yaitu: - Client login - Otentikasi client - Generate password oleh server Registrasi - Kirim password ke client Gambar 19.a Password Request. Gambar 19.b Password Request Listener. Proses login ujian yang terdapat pada implementasi ditampilkan secara simultan pada menu Password Request pada sisi client dan Password Request Listener pada server Registrasi, dimana fungsi utamanya adalah untuk melihat proses otentikasi dan pembangkitan password. Proses dimulai dengan memasukkan data NIM yang unik yang dimiliki oleh setiap client. Password Request Listener juga dalam kondisi aktif menunggu permintaan login ujian. Gambar 19.a menggambarkan proses yang terjadi pada menu Request Password pada sisi client yang menampilkan NIM, kunci simetri dan nonce, beserta hasil enkripsinya dalam 2 kolom yang berdampingan. Selain itu ditampilkan pula perbandingan nilai hash dari client dan server Registrasi dan password yang diperoleh dari server Registrasi. Sedangkan Gambar 19.b adalah Password Request Listener yang menampilkan NIM, kunci simetri dan nonce, yang telah dienkripsi beserta hasil dekripsinya. Kolom yang lain menampilkan nilai hash dan password yang akan dikirim ke client. Hasil pemrograman untuk implementasi proses registrasi dapat dilihat pada Lampiran 3 dan Lampiran 4. User Interface Proses Permintaan Mengikuti Ujian Proses Permintaan Ujian yang terdapat pada protokol meliputi proses komunikasi yang terjadi antara client dengan server SUO, yaitu: - Permintaan koneksi dari client ke server SUO - Pertukaran kunci publik - Otentikasi client - Generate validation ID oleh server SUO - Kirim validation ID ke client Gambar 20.a Examination Connection Gambar 20.b Server SUO Connection Request. and Validation ID Generator. Gambar 20.a menampilkan menu Examination Request Connection pada pihak client dan Gambar 20.b menampilkan menu Connection and Validation_ID Generator pada pihak server SUO. Masing-masing menu menampilkan kunci publik dan kunci privatnya dan juga hasil proses pertukaran kunci publik yang terjadi. Selain itu, pada menu Connection Request ditampilkan pula validation ID yang diperoleh dari server SUO. Hasil pemrograman untuk implementasi proses registrasi dapat dilihat pada Lampiran 5. User Interface Proses Permintaan Soal Ujian dan Pengiriman Jawaban Hasil Ujian Proses permintaan soal ujian dan pengiriman jawaban hasil ujian yang terdapat pada protokol meliputi proses komunikasi yang terjadi antara client dengan server SUO, yang terdiri dari proses-proses: - Client memasukkan permintaan soal - Otentikasi client oleh server SUO - Generate soal oleh server SUO dan kirim ke client - Client terima soal dan validasi soal - Client kirim hasil jawaban ke server SUO Gambar 21.a Exam Paper Request Gambar 21.b Exam Generator and scorer Connection. Connection Listener. Gambar 21.a adalah menu Exam Paper Request Connection yang menampilkan kunci publik dari server SUO dan kunci simetri yang dibangkitkan oleh client sebagai kunci sesi. Selain itu, ditampilkan pula hasil enkripsi dari kode mata kuliah sebagai pesan permintaan soal, contoh soal ujian yang diperoleh dari server SUO, hasil jawaban serta skornya. Terdapat pula tombol Kirim Jawaban yang harus ditekan jika pihak client selesai menjawab soal dan akan mengirim jawaban hasil ujiannya ke server SUO. Gambar 21.b adalah menu Exam Generator and Scorer Connection Listener yang berada dalam kondisi aktif menunggu permintaa koneksi. Menu tersebut memuat tampilan contoh soal yang dibangkitkan oleh server SUO, jawaban hasil ujian yang dikirim oleh client serta skornya. Hasil pemrograman untuk implementasi proses permintaan naskah soal dapat dilihat pada Lampiran 6. Pengujian Tahap selanjutnya adalah pengujian terhadap implementasi dari disain protokol keamanan yang telah dibuat. Pengujian secara komputasi dilakukan dengan uji coba terhadap aplikasi simulasi dengan satu input peserta client. Uji coba dilakukan dengan pengulangan sebanyak 25 kali, pada rentang waktu antara pukul 8.00-17.00 pada selama 3 hari. Hasil simulasi berupa timer yang menunjukkan waktu sebuah proses dimulai atau berakhir. Kemudian dari data timer tersebut, dilakukan penghitungan secara manual untuk mendapatkan data berupa waktu rata-rata dari setiap proses tersebut. Adapun proses yang dihitung datanya antara lain: proses generate pasangan kunci publik dan privat dari client dan server Registrasi, pertukaran kunci publik antara client dengan server Registrasi, generate kunci simetri pada client, dan juga enkripsi dan dekripsi. Hasil perhitungan waktu rata-rata dari setiap proses perhitungannya, tersaji pada Lampiran 1. Berdasarkan batasan ruang lingkup penelitian, bahwa disain protokol keamanan pengiriman data yang dibuat bersifat framework, karena beberapa keuntungan dari sifat tersebut, yaitu: 1 Menggunakan algoritma yang sudah ada, tanpa perlu melakukan modifikasi terhadap algoritma tersebut. 2 Kemudahan untuk mengganti algoritma yang telah digunakan. 3 Tidak mengurangi kinerja algoritma yang digunakan. 4 Analisis keamanan protokol berdasarkan pada kekuatan algoritma yang digunakan oleh metode keamanan informasi pada protokol tersebut. Neyman 2007 Analisis Hasil Implementasi Berdasarkan hasil implementasi, dilakukan analisis terhadap disain protokol yang dibuat melalui analisis secara komputasi dan analisis keamanan protokol. Analisis secara komputasi dilihat dari kinerja protokol sedangkan analisis keamanan dilihat dari algoritma kriptografi yang digunakan dan kemampuannya untuk mengamankan sistem. Analisis Secara Komputasi Secara komputasi, disain protokol dapat diimplementasikan ke dalam aplikasi komputer. Aplikasi berjalan dengan stabil pada lingkungan pengembangan dengan OS Host: Linux Cent OS Release 5.5 Final, Kernel 2.6.18-194.32.1 el5.on an X86- 64, OS Guest : Microsoft Windows XP Profesional Versi 2002 Service Pack 3, bahasa pemrograman Power Builder 10.0 Build 4500 dan library java dari Java Cryptographic Extension Weiss 2003. Berdasarkan hasil ujicoba simulasi yang dilakukan sebanyak 25 kali, diperoleh hasil bahwa proses pembangkitan kunci publik dan kunci privat untuk masing-masing pihak, antara client degnan server Registrai dapat dilakukan dengan rata-rata waktu 5-7 detik. Proses pertukaran kunci publik antara client dengan server Registrasi juga dapat dilakukan dengan rata-rata waktu 5-7 detik. Hal ini karena implementasi dari proses pembangkitan kunci tersebut, dilakukan secara simultan bersamaan dengan proses pertukaran kunci publik antara client dengan server, sehingga perhitungan waktu kecepatannya juga dilakukan untuk kedua proses tersebut secara bersamaan. Pembangkitan kunci simetri dan proses otentikasi, juga dapat dilakukan dalam hitungan detik dengan rata-rata waktu 0.5 detik. Proses enkripsi dan dekripsi dapat dilakukan dengan rata-rata waktu 0,02-0,03 detik. Hasil perhitungan pada simulasi dapat memberikan gambaran mengenai waktu yang diperlukan untuk melaksanakan setiap bagian proses pada protokol. Dalam hal ini diperoleh gambaran bahwa waktu untuk proses pembangkitan kunci publik dan kunci privat berpengaruh terhadap kecepatan proses pertukaran kunci publik antara client dengan server, karena prosesnya dilakukan secara simultan. Pada protokol, tidak terlihat hubungan antara proses pembangkitan kunci publik dan kunci privat dengan pembangkitan kunci simetri. Waktu yang dibutuhkan untuk proses enkripsi dan dekripsi mempengaruhi kinerja protokol, karena semakin cepat proses enkripsi dan dekripsi kinerja protokol akan semakin baik. Analisis Keamanan Protokol Protokol keamanan pengiriman data pada SUO dirancang berdasarkan kebutuhan dasar keamanan SUO dan memenuhi aspek-aspek kriptografi. - Aspek kerahasiaan Dipenuhi dengan penerapan protokol kriptografi dalam bentuk enkripsi. Penerapan enkripsi dilakukan dengan algoritma Blowfish untuk pengamanan data pada proses pengiriman data. Kunci simetri Blowfish digunakan sebagai kunci sesi dan untuk mengenkripsi data, baik data registrasi, data soal maupun data jawaban ujian. Menurut Marcel 2010 Algoritma Blowfish memiliki kelebihan antara lain: 1 Desain algoritma Blowfish mudah untuk dipahami dan digunakan, 2 Ketika diimpelementasikan, algoritma Blowfish tidak menggunakan ruang memori dalam jumlah besar, 3 Pembangkitan subkunci benar-benar acak karena menggunakan digit konstanta pi dalam heksadesimal, 4 Sekuritas cukup tinggi karena menggunakan P-array untuk membangkitkan subkunci dan 4 buah S-box untuk operasi substitusi, 5 Free license. Sampai saat ini algoritma Blowfish belum ditemukan kelemahan yang berarti hanya adanya weak key dimana dua entri dari S-box mempunyai nilai yang sama. Belum ada cara untuk mengecek weak key sebelum melakukan key expansion, tetapi hal ini tidak berpengaruh terhadap hasil enkripsi. Hasil enkripsi dengan algoritma Blowfish sangat tidak mungkin dan tidak praktis untuk di terjemahkan tanpa bantuan kunci. Sampai kini belum ada cryptanalysis yang dapat membongkar pesan tanpa kunci yang enkripsi oleh Blowfish. Algoritma Blowfish pun dapat digabungkan dengan algoritma-algoritma enkripsi yang lain dalam pengkripsian sebuah pesan untuk lebih menjamin isi dari pesan tersebut. John Kelsey pada tahun 1995 mengembangkan sebuah metode serangan yang dapat memecahkan Blowfish dengan tiga putaran, tetapi tidak dapat mengembangkan lebih dari itu. Penyerangan ini mengeksploitasi fungsi F. Vikramjit Singh Chabra juga telah mencari cara yang efisien untuk mengimplementasikan mesin pencarian kunci dengan cara lempang brute force. Serge Vaudenay melakukan pemeriksaan terhadap Blowfish dengan kotak-S diketahui dan putaran sebanyak r Guritman dkk 2003. Dalam beberapa implementasi, Blowfish memerlukan memori yang relatif besar, yaitu sekitar 4 kilobyte. Hal ini tidak menjadi masalah bahkan untuk komputer desktop dan laptop yang sudah berumur tua. Tetapi hal ini juga membuat implementasi Blowfish pada embedded system terkecil seperti pada smartcard pada awal kemunculannya tidak mungkin untuk dilakukan. Pemilihan Blowfish sebagai algoritma enkripsi kunci simetri, berdasarkan keamanan algoritma yang belum dapat diserang dengan kecepatan dan keuntungan yang memadai. Kunci simetri yang digunakan sebagai kunci sesi, selanjutnya diamankan dengan enkripsi kunci publik. Metode ini dikenal sebagai hybrid cryptosystem, yang menggabungkan teknik enkripsi kunci simetri dengan enkripsi kunci publik. Penerapan metode ini menjadikan data lebih aman. - Aspek Otentikasi dan Integritas data Merupakan hal yang sangat penting karena hanya pengguna yang valid yang dapat mengakses SUO ini. Kebutuhan otentikasi dipenuhi dengan diberikan dengan menambahkan nonce dan nilai hash pada kunci simetri dari setiap entitas. Nilai hash diperoleh dengan menerapkan algoritma SHA-1. Algoritma SHA-1 masih dianggap sebagai fungsi hash yang kuat, karena belum ada yang mampu melakukan penyerangan dengan waktu yang cepat. Selain itu setiap client akan diberikan validationID yang bernilai kompleks sehingga secara komputasi tidak dimungkinkan seorang penyerang untuk memproduksi sebuah ID yang valid. Server SUO memiliki daftar validationID serta daftar identifikasi client dari setiap validationID untuk mencegah client menerima lebih dari satu validationID dan melakukan lebih dari satu kali ujian. - Aspek Nir-penyangkalan Hal ini dijamin dengan penggunaan tanda tangan digital. Pemilihan tanda tangan digital dilakukan berdasarkan sifat-sifat yang dimilikinya, yaitu: 1 Otentik, tak bisa atau sulit ditulis atau ditiru oleh orang lain. Pesan dan tanda tangan pesan tersebut juga dapat menjadi barang bukti, sehingga penandatangan tak bisa menyangkal bahwa dulu ia tidak pernah menandatanganinya. 2 Hanya sah untuk dokumen pesan itu saja atau salinannya yang sama persis. Tanda tangan itu tidak bisa dipindahkan ke dokumen lainnya, meskipun dokumen lain itu hanya berbeda sedikit. Ini juga berarti bahwa jika dokumen itu diubah, tanda tangan digital dari pesan tersebut tidak lagi sah. 3 Dapat diperiksa dengan mudah, termasuk oleh pihak-pihak yang belum pernah bertatap muka langsung dengan penandatangan. - Ketersediaan Hal ini dijamin dengan pemanfaatan jaringan khusus atau privat VPN. Pemanfaatan VPN akan menangkal serangan dari pihak luar yang dapat mengganggu koneksi dan lalulintas jalur data dalam jaringan. Koneksi ke jaringan internet diharapkan dapat berjalan dengan baik, dan aman, sehingga soal ujian harus selalu tersedia selama ujian online berlangsung dan jawaban hasil ujian dapat dapat dikirim dengan baik dan aman. Berdasarkan persyaratan pada asumsi awal, resiko keamanan dari protokol muncul jika peserta dan administrator melakukan tindakan kecurangan, baik secara sendiri-sendiri ataupun dengan bekerjasama. Dalam hal ini, resiko keamanan yang muncul dari pihak dalam protocol dapat diatasi dengan menerapkan aturan ujian yang ketat ataupun dengan membuat protokol untuk proses pelaksanaan ujian yang aman. KESIMPULAN DAN SARAN Berdasarkan hasil pembahasan dan analisis yang diperoleh, maka dapat diambil kesimpulan. 1 Dalam penelitian ini telah dihasilkan framework protokol keamanan data pada SUO. 2 Protokol keamanan pengiriman data untuk ujian online yang dirancang dengan menerapkan layanan keamanan dan aspek-aspek kriptografi yang meliputi aspek kerahasiaan, otentikasi, integritas data dan nir penyangkalan, mampu memenuhi kebutuhan keamanan dari SUO 3 Protokol keamanan pengiriman data untuk ujian online dapat digunakan untuk menghasilkan suatu sistem ujian online yang terjamin keamanannya, terutama keamanan pada saat melakukan proses pengiriman data-data yang terkait dalam sistem tersebut. 4 Berdasarkan hasil simulasi pada aplikasi implementasi, protokol memiliki kinerja yang stabil. Proses pertukaran kunci publik antara client dengan server dan proses pertukaran kunci publik antara client dengan server dapat dilakukan dengan rata- rata waktu 5-7 detik. Hal ini karena implementasi dari proses pembangkitan kunci tersebut, dilakukan secara simultan bersamaan dengan proses pertukaran kunci publik. Pembangkitan kunci simetri dan proses otentikasi, dapat dilakukan dengan rata-rata waktu 0.5 detik. 5 Keamanan protokol sangat tergantung pada algoritma kriptografi yang digunakan. Beberapa saran yang dapat diberikan untuk pengembangan penelitian lebih lanjut adalah: 1 Perancangan protokol masih bersifat framework yang menggunakan algoritma kriptografi yang telah ada, untuk itu dikembangkan penelitian dengan menggunakan algoritma protokol yang lebih baru dan terjamin keamanannya. 2 Perlu dikembangkan simulasi dengan penggunaan kunci yang lebih panjang agar lebih sulit untuk dipecahkan. 3 Perlu pengembangan penelitian yang lebih lengkap dengan menyertakan aplikasi untuk proses ujian, agar dapat mengatasi masalah keamanan yang ditimbulkan oleh pihak dalam protokol yang terjadi pada proses awal sebelum ujian online. DAFTAR PUSTAKA Abadi M. 2000. Security Protocols and their Properties. Foundations of Secure Computation F.L. Bauer and R. Steinbrueggen, eds.. NATO Science Series, Marktoberdorf, page 39 –60. Germany: IOS Press. Abadi M. 2003. Private Authentication. In: Proc. of the Workshop on Privacy Enhancing Technologies PET 2002, Vol. 2482 of LNCS, page 27-40. London. Springer. Aprilia S. 2007. Penyerangan Cryptographic Protocol Menggunakan Basic Cryptanalytic Attacks. Makalah. Bandung: Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung. Bishop M. 2003. Computer Security. Boston: Addisson-Wesley. DuFeu D, Harris J. 2001. Online Election System. Carleton University Durgin NA, JC Mitchell. 1999. “Analysis of Security Protocol”. Proc. FLOC Workshop on Formal Methods in Security Protocols. Guritman S, Rachmaniah M, Mardian D. 2003. “Algoritma Blowfish untuk Penyandian Pesan”. Artikel. Majalah Ilmiah- Ilmu Komputer, Vol.1, No.1. Marcel JT. 2010. Studi Perbandingan Cipher Blok Algoritma Blowfish dan Algoritma Camellia. www.informatika.org~rinaldi...2009...Makalah1_IF3058_2010_021.pdf diakses pada tanggal 18 Juni 2011 Menezes A, Oorshot PC, Vanstone SA. 1996. Handbook of Applied Cryptography, [s.l] : CRC Press. Monahan B. 2003. “From Security Protocols to Systems Security”. In: Proc. of 11 th International Cambridge Workshop on Security Protocols. LNCS. Springer. Neyman SN. 2007. Perancangan Protokol Penyembunyian Informasi Terotentikasi. Thesis. Bogor: Program Magister Ilmu Komputer Institiut Pertanian Bogor. Ross A. 2001. Security Engineering: A Guide to Building Dependable Distributed Systems. Willey. Sariasih C. 1999. Rancangan Keamanan Data Sistem Smartcard Kesehatan Sesuai Kebutuhan di Indonesia. Skripsi. Jakarta: Fakutas Ilmu Komputer - UI. Schneier B. 1996. Applied Cryptography, Second Edition: Protocols, Algorithms, and Source Code in C. Wiley Computer Publishing. Jon Wiley Sons. Sharif M, Wijesekera D. 2003. Providing Voice Privacy Over Public Switched Telephone Networks. In: Proc. of 18 th International Conference on Information Security SEC 2003, May 26-28. Athens. Greece. Sireesha J, Chakchai S. 2005. Secure Virtual Election Booth with Two Central Facilities. Department of Computer Science Washington University in St. Louis. USA. Stallings W. 2003. Cryptography and Network Security: Principles and Practices ”, 3 rd edition, Pearson Education International. Sybase Inc. 2004. Using Cryptography in Power Builder 10.0. White Paper, Power Builder Engineering, Information Technology and Solutions Group, Dublin, California. Weiss J. 2004. Java Cryptography Extensions: Practical Guide for Programmers, Morgan Kaufmahn. Yolanda S. Elfira, 2007. Studi dan Perbandingan Penerapan Protokol Kriptografi Kunci Publik pada Transaksi Elektronik. Tugas Akhir. Bandung: Program Studi Teknik Informatika Institut Teknologi Bandung. LAMPIRAN Lampiran 1. Tabel Rata-rata Waktu Proses No. Menu Proses Deskripsi Proses Waktu Rata-rata dlm detik 1 Client_Reg generate client pairkey : 6,994 selesai terima server reg pubkey : 7,021 2 Server_Reg generate server reg pairkey : 3,578 3 Client_Reg_Pwd generate client simetrik key : 1,021 enkrip nonce dengan simetrik key - blowfish : 0,045 enkrip nim dengan simetrik key - blowfish : 0,008 enkrip simetrik key - rsa – server reg-pubkey : 0,030 generate hash code : 0,000 dekrip pwd dari server reg dengan sim key blowfish : 0,008 selesai membandingkan hash dari server reg dari client : 0,130 4 Server_Reg_Pwd dekrip simkey dengan server reg prikey : 0,065 dekrip nonce simkey d- blowfish : 0,008 dekrip nim simkey d- blowfish : 0,002 generate hash code : 0,015 enkrip hash code dengan simkey -blowfish : 0,008 enkrip password dengan simkey -blowfish : 0,002 enkrip hash-enc dengan rsa-server-reg-pubkey : 0,010 enkrip ls_pwd_-enc dengan rsa-server-reg-pubkey : 0,002 kirim password : 0,591 5 Client_SUO enkrip dengan blowfish nonce with kunci simetri : 0,009 enkrip dengan blowfish nim with kunci simetri : 0,005 enkrip dengan rsa kunci simetri with kunci publik : 0,007 dekripsi validationid trus stop - blowfish : 0,007 No. Menu Proses Deskripsi Proses Waktu Rata-rata dlm detik 6 Server_SUO generate rsa pair key : 1,652 dekrip simetri key with sr private key - rsa : 0,064 dekrip dengan ls_nim with kunci simetri - blowfish : 0,005 dekrip dengan pwd with kunci simetri - blowfish : 0,010 dekrip validationid with kunci simetri - blowfish : 0,008 7 Client_SUO_ Ujian create kunci simetri : 0,007 enkrip dengan blowfish nonce with kunci simetri : 0,015 enkrip kunci simetri with ss.pub : 0,010 kirim request mtk : 3,094 dekripsi soal - blowfish : 0,010 generate hash code soal : 0,005 selesai membandingkan hash code skor dengan hashcode skor dari server suo : 0,015 8 Server_SUO_ Exam_Score dekrip simetri key with sr private key - rsa : 0,063 dekrip mtk dengan simetri key - blowfish : 0,005 enkrip dengan blowfish soal with kunci simetri - blowfish : 0,012 generate hash code soal : 0,005 Lampiran 2. Hasil Pemrograman Implementasi Proses Registrasi 1 Client_ Reg n_cst_cryptography lnv_crypto PBCrypto pbcrypto String ls_keys[2] mle_c_pubkey.text = mle_c_prikey.text = mle_sr_pubkey.text = ll_brand = 1 select count into :ll_brand from t_client using sqlca; ll_brand = ll_brand + 1 li_FileNum = FileOpenC:\w_nsuo_client_reg.txt, LineMode, Write, LockWrite, Replace FileWriteli_FileNum, mulai generate client pairkey : +StringNow, hh:mm:ss:ffff TRY IF lnv_crypto.of_getInstancepbcrypto THEN ls_keys = pbcrypto.createRsaKeyPair mle_c_prikey.text = ls_keys[2] mle_c_pubkey.text = ls_keys[1] insert into t_clientc_connid,c_pri,c_pub values :ll_brand, :ls_keys[2], :ls_keys[1] using sqlca; insert into t_registrasi_prosesc_connid,clm_1_pubkey,flag values :ll_brand, :ls_keys[1], 0 using sqlca; END IF CATCH NoSuchAlgorithmException nsae MessageBoxAlert, nsae.getMessage END TRY FileWriteli_FileNum, selesai generate client pairkey : +StringNow, hh:mm:ss:ffff commit using sqlca; ii_counter = 0 timer1 Lampiran 3. Hasil Pemrograman Implementasi Proses Registrasi 2 Client_ Reg_ Pwd string ls_simetri_seckey, ls_sr_pubkey string ls_nim_enc, ls_nonce_enc, ls_simetri_seckey_enc ls_nim = trimsle_nim.text ll_nonce = 22222 + secondnow ll_nonce = f_bigrand ll_nonce ll_brand = w_nsuo_client_reg.ll_brand select srm_1_pubkey into :ls_sr_pubkey from t_registrasi_proses where c_connid = :ll_brand using sqlca; n_cst_cryptography lnv_crypto PBCrypto pbcrypto li_FileNum = FileOpenC:\w_nsuo_client_reg_pwd.txt, LineMode, Write, LockWrite, Replace FileWriteli_FileNum, mulai generate client simetrik key : +StringNow, hh:mm:ss:ffff create kunci simetri TRY IF lnv_crypto.of_getInstancepbcrypto THEN ls_simetri_seckey = pbcrypto.generateSecretKeyBlowfish END IF CATCH NoSuchAlgorithmException nsae1 MessageBoxAlert, nsae1.getMessage END TRY FileWriteli_FileNum, selesai generate client simetrik key : +StringNow, hh:mm:ss:ffff FileWriteli_FileNum, mulai enkrip nonce dengan simetrik key - blowfish : +StringNow, hh:mm:ss:ffff enkrip dengan blowfish nonce with kunci simetri TRY IF lnv_crypto.of_getInstancepbcrypto AND Lenls_simetri_seckey 0 THEN ls_nonce_enc = pbcrypto.encryptPlainTextUsingBlockCipherBlowfish,ls_simetri_seckey,stringll_ nonce ELSE MessageBoxAlert, You must generate a secret key first END IF CATCH NoSuchAlgorithmException nsae2 MessageBoxAlert, nsae2.getMessage END TRY FileWriteli_FileNum, selesai enkrip nonce dengan simetrik key - blowfish : +StringNow, hh:mm:ss:ffff FileWriteli_FileNum, mulai enkrip nim dengan simetrik key - blowfish : +StringNow, hh:mm:ss:ffff enkrip dengan blowfish nim with kunci simetri TRY IF lnv_crypto.of_getInstancepbcrypto AND Lenls_simetri_seckey 0 THEN ls_nim_enc = pbcrypto.encryptPlainTextUsingBlockCipherBlowfish,ls_simetri_seckey,ls_nim ELSE MessageBoxAlert, You must generate a secret key first END IF CATCH NoSuchAlgorithmException nsae3 MessageBoxAlert, nsae3.getMessage END TRY FileWriteli_FileNum, selesai enkrip nim dengan simetrik key - blowfish : +StringNow, hh:mm:ss:ffff FileWriteli_FileNum, mulai enkrip simetrik key - rsa - serverreg-pubkey : +StringNow, hh:mm:ss:ffff enkrip kunci simetri with reg.pub TRY IF lnv_crypto.of_getInstancepbcrypto THEN ls_simetri_seckey_enc = pbcrypto.encryptSecretKeyUsingRsaPublicKeyls_simetri_seckey,ls_sr_pubkey END IF CATCH NoSuchAlgorithmException nsae4 MessageBoxAlert, nsae4.getMessage END TRY FileWriteli_FileNum, selesai enkrip simetrik key - rsa - serverreg-pubkey : +StringNow, hh:mm:ss:ffff mle_sr_pub.text = ls_sr_pubkey mle_nim.text = ls_nim mle_nonce.text = stringll_nonce mle_sim.text = ls_simetri_seckey mle_nim_2.text = ls_nim_enc mle_nonce_2.text = ls_nonce_enc mle_sim_2.text = ls_simetri_seckey_enc ls_nonce = stringll_nonce update t_client set c_nim = :ls_nim, c_nonce = :ls_nonce, c_simetri = :ls_simetri_seckey where c_connid = :ll_brand using sqlca; update t_registrasi_proses set clm_21_enc_data = :ls_nim_enc, clm_22_enc_data = :ls_simetri_seckey_enc, clm_23_enc_data = :ls_nonce_enc where c_connid = :ll_brand using sqlca; commit using sqlca; ii_counter = 0 timer1 Lampiran 4. Hasil Pemrograman Implementasi Proses Registrasi 3 Menu Server_ Reg Listening and Sending Public Key to Client mle_c_pubkey.text = mle_sr_prikey.text = mle_sr_pubkey.text = ii_counter = 0 timer1 Menu Server_Reg_Pwd Listening ii_counter = 0 timer1 Sending [Hash,Pwd] to client string ls_nim, ls_simetri_seckey, ls_c_pubkey, ls_sr_pri long ll_nonce string ls_nim_enc, ls_nonce_enc, ls_simetri_seckey_enc string ls_hash_enc, ls_pwd_enc ll_brand = w_nsuo_client_reg.ll_brand select clm_1_pubkey, clm_21_enc_data, clm_22_enc_data,clm_23_enc_data into :ls_c_pubkey, :ls_nim_enc, :ls_simetri_seckey_enc, :ls_nonce_enc from t_registrasi_proses where c_connid = :ll_brand using sqlca; select sr_pri into :ls_sr_pri from t_registrasi_server where c_connid = :ll_brand using sqlca; if ls_nim_enc = or isnullls_nim_enc then else n_cst_cryptography lnv_crypto PBCrypto pbcrypto FileWriteli_FileNum, mulai dekrip simkey dengan server reg prikey : +StringNow, hh:mm:ss:ffff dekrip simetri key with sr private key TRY IF lnv_crypto.of_getInstancepbcrypto THEN ls_simetri_seckey = pbcrypto.decryptSecretKeyUsingRsaPrivateKeyls_simetri_seckey_enc,ls_sr_pri END IF CATCH NoSuchAlgorithmException nsae MessageBoxAlert decryptSecretKeyUsingRsaPrivateKey, nsae.getMessage END TRY FileWriteli_FileNum, selesai dekrip simkey dengan server reg prikey : +StringNow, hh:mm:ss:ffff FileWriteli_FileNum, mulai dekrip nonce simkey d- blowfish : +StringNow, hh:mm:ss:ffff dekrip dengan blowfish nonce with kunci simetri TRY IF lnv_crypto.of_getInstancepbcrypto AND Lenls_nonce_enc0 THEN ll_nonce = long pbcrypto.decryptCipherTextUsingBlockCipherBlowfish,ls_simetri_seckey, ls_nonce_enc ELSE MessageBoxAlert, You must encrypt a phrase first END IF CATCH NoSuchAlgorithmException nsae1 MessageBoxAlert decryptCipherTextUsingBlockCipher Nonce, nsae1.getMessage END TRY FileWriteli_FileNum, selesai dekrip nonce simkey d- blowfish : +StringNow, hh:mm:ss:ffff FileWriteli_FileNum, mulai dekrip nim simkey d- blowfish : +StringNow, hh:mm:ss:ffff dekrip dengan blowfish nim with kunci simetri TRY IF lnv_crypto.of_getInstancepbcrypto AND Lenls_nonce_enc0 THEN ls_nim = pbcrypto.decryptCipherTextUsingBlockCipherBlowfish,ls_simetri_seckey,ls_nim _enc ELSE MessageBoxAlert, You must encrypt a phrase first END IF CATCH NoSuchAlgorithmException nsae2 MessageBoxAlert decryptCipherTextUsingBlockCipher Nim, nsae2.getMessage END TRY FileWriteli_FileNum, selesai dekrip nim simkey d- blowfish : +StringNow, hh:mm:ss:ffff FileWriteli_FileNum, mulai generate hash code : +StringNow, hh:mm:ss:ffff generate hash code String ls_hash, ls_hash_source ls_hash_source = ls_nim + stringll_nonce+1 TRY IF lnv_crypto.of_getInstancepbcrypto THEN ls_hash = pbcrypto.generateMessageDigestSHA- 1,ls_hash_source END IF CATCH NoSuchAlgorithmException nsae3 MessageBoxAlert generateMessageDigest Hash, nsae3.getMessage END TRY FileWriteli_FileNum, selesai generate hash code : +StringNow, hh:mm:ss:ffff generete password string ls_pwd ls_pwd = 7006020072011 FileWriteli_FileNum, mulai enkrip hash code dengan simkey -blowfish : +StringNow, hh:mm:ss:ffff a = enkripsi hash using sim key TRY IF lnv_crypto.of_getInstancepbcrypto AND Lenls_simetri_seckey0 THEN ls_hash_enc = pbcrypto.encryptPlainTextUsingBlockCipherBlowfish,ls_simetri_seckey,ls_hash ELSE MessageBoxAlert, You must generate a secret key first END IF CATCH NoSuchAlgorithmException nsae4 MessageBoxAlert encryptPlainTextUsingBlockCipher Hash, nsae4.getMessage END TRY FileWriteli_FileNum, selesai enkrip hash code dengan simkey -blowfish : +StringNow, hh:mm:ss:ffff FileWriteli_FileNum, mulai enkrip password dengan simkey -blowfish : +StringNow, hh:mm:ss:ffff b = enkripsi password using sim key TRY IF lnv_crypto.of_getInstancepbcrypto AND Lenls_simetri_seckey 0 THEN ls_pwd_enc = pbcrypto.encryptPlainTextUsingBlockCipherBlowfish,ls_simetri_seckey,ls_pwd ELSE MessageBoxAlert, You must generate a secret key first END IF CATCH NoSuchAlgorithmException nsae5 MessageBoxAlert encryptPlainTextUsingBlockCipher Pwd, nsae5.getMessage END TRY FileWriteli_FileNum, selesai enkrip password dengan simkey -blowfish : +StringNow, hh:mm:ss:ffff FileWriteli_FileNum, mulai enkrip hash-enc dengan rsa-server-reg-pubkey : +StringNow, hh:mm:ss:ffff enkripsi ls_hash_enc using client pubkey string ls_hash_enc_enc TRY IF lnv_crypto.of_getInstancepbcrypto THEN ls_hash_enc_enc = pbcrypto.encryptSecretKeyUsingRsaPublicKeyls_hash_enc,ls_c_pubkey END IF CATCH NoSuchAlgorithmException nsae6 MessageBoxAlert encryptSecretKeyUsingRsaPublicKey Hash Enc, nsae6.getMessage END TRY FileWriteli_FileNum, selesai enkrip hash-enc dengan rsa-server-reg-pubkey : +StringNow, hh:mm:ss:ffff FileWriteli_FileNum, mulai enkrip ls_pwd_-enc dengan rsa-server-reg- pubkey : +StringNow, hh:mm:ss:ffff enkripsi ls_pwd_enc using client pubkey string ls_pwd_enc_enc TRY IF lnv_crypto.of_getInstancepbcrypto THEN ls_pwd_enc_enc = pbcrypto.encryptSecretKeyUsingRsaPublicKeyls_pwd_enc,ls_c_pubkey END IF CATCH NoSuchAlgorithmException nsae7 MessageBoxAlert encryptSecretKeyUsingRsaPublicKey Pwd Enc, nsae7.getMessage END TRY FileWriteli_FileNum, selesai enkrip ls_pwd_-enc dengan rsa-server-reg- pubkey : +StringNow, hh:mm:ss:ffff mle_nim_2.text = ls_nim mle_sim_2.text = ls_simetri_seckey mle_nonce_2.text = stringll_nonce mle_hash.text = ls_hash mle_pwd.text = ls_pwd mle_hash_2.text = ls_hash_enc mle_pwd_2.text = ls_pwd_enc string ls_nonce ls_nonce = stringll_nonce update t_registrasi_proses set c_nim = :ls_nim, srm_31_hash = :ls_hash_enc_enc, srm_32_pwd = :ls_pwd_enc_enc where c_connid = :ll_brand using sqlca; update t_registrasi_server set c_nonce = :ls_nonce, c_simetri = :ls_simetri_seckey, sr_pwd = :ls_pwd where c_connid = :ll_brand using sqlca; commit using sqlca; FileWriteli_FileNum, kirim password : +StringNow, hh:mm:ss:ffff end if Lampiran 5. Hasil Pemrograman Implementasi Proses Login 1 Menu Client_SUO n_cst_cryptography lnv_crypto PBCrypto pbcrypto String ls_keys[2] mle_c_pubkey.text = mle_c_prikey.text = mle_ss_pubkey.text = string ls_nonce, ls_simetri ls_nim = sle_nim.text ls_pwd = sle_pwd.text select c_connid, c_nonce, c_simetri, c_pri, c_pub into :ll_brand, :ls_nonce, :ls_simetri, :ls_c_pri, :ls_c_pub from t_client where c_nim = :ls_nim using sqlca; mle_c_prikey.text = ls_c_pri mle_c_pubkey.text = ls_c_pub li_FileNum = FileOpenC:\w_nsuo_client_suo.txt, LineMode, Write, LockWrite, Replace FileWriteli_FileNum, mulai login : +StringNow, hh:mm:ss:ffff insert into t_suo_prosesc_connid, clm_1_pubkey, flag values :ll_brand, :ls_c_pub, 0 using sqlca; commit using sqlca; il_switch = 0 ii_counter = 0 timer1 Lampiran 6. Hasil Pemrograman Implementasi Proses Minta Soal Ujian Menu Client_SUO_Ujian n_cst_cryptography lnv_crypto PBCrypto pbcrypto mle_s_pubkey.text = ls_mtk = sle_mtk.text ss_valid_nya = longsle_vid.text ss_valid_nya = w_nsuo_client_suo.ss_valid_nya select ssm_1_pubkey into :ssm_pubkey from t_suo_proses where ss_valid = :ss_valid_nya using sqlca; mle_s_pubkey.text = ssm_pubkey li_FileNum = FileOpenC:\w_nsuo_client_suo_ujian.txt, LineMode, Write, LockWrite, Replace FileWriteli_FileNum, mulai create kunci simetri : +StringNow, hh:mm:ss:ffff create kunci simetri TRY IF lnv_crypto.of_getInstancepbcrypto THEN ls_simetri_seckey = pbcrypto.generateSecretKeyBlowfish END IF CATCH NoSuchAlgorithmException nsae1 MessageBoxAlert, nsae1.getMessage END TRY FileWriteli_FileNum, selesai create kunci simetri : +StringNow, hh:mm:ss:ffff string ls_mtk_enc FileWriteli_FileNum, mulai enkrip dengan blowfish nonce with kunci simetri : +StringNow, hh:mm:ss:ffff enkrip dengan blowfish nonce with kunci simetri TRY IF lnv_crypto.of_getInstancepbcrypto AND Lenls_simetri_seckey 0 THEN ls_mtk_enc = pbcrypto.encryptPlainTextUsingBlockCipherBlowfish,ls_simetri_seckey,ls_mtk ELSE MessageBoxAlert, You must generate a secret key first END IF CATCH NoSuchAlgorithmException nsae2 MessageBoxAlert, nsae2.getMessage END TRY FileWriteli_FileNum, selesai enkrip dengan blowfish nonce with kunci simetri : +StringNow, hh:mm:ss:ffff string ls_simetri_seckey_enc FileWriteli_FileNum, mulai enkrip kunci simetri with ss.pub : +StringNow, hh:mm:ss:ffff enkrip kunci simetri with ss.pub TRY IF lnv_crypto.of_getInstancepbcrypto THEN ls_simetri_seckey_enc = pbcrypto.encryptSecretKeyUsingRsaPublicKeyls_simetri_seckey,ssm_pubkey END IF CATCH NoSuchAlgorithmException nsae3 MessageBoxAlert, nsae3.getMessage END TRY FileWriteli_FileNum, selesai enkrip kunci simetri with ss.pub : +StringNow, hh:mm:ss:ffff update t_suo_proses set clm_31_enc_data_mtk = :ls_mtk_enc, clm_32_enc_data_sim = :ls_simetri_seckey_enc where ss_valid = :ss_valid_nya using sqlca; FileWriteli_FileNum, kirim request mtk : +StringNow, hh:mm:ss:ffff commit using sqlca; mle_c_simkey.text = ls_simetri_seckey mle_c_mtk.text = ls_mtk_enc mle_s_pubkey.text = ssm_pubkey il_switch = 0 ii_counter = 0 timer1 ABSTRACT WAHYU NOVIANI PURWANTI. Design and Analysis of Data Security Protocol in Online Examination System. Under the direction of SUGI GURITMAN and SHELVIE NIDYA NEYMAN. Examination is an evaluation step of learning process, aimed at measuring level of success of the process. Conventional examination system with paper media is effective and efficient with few test participants, centralized location and flexible time. However, it is not effective with a large number of participants, scattered locations, and simultaneous time, like the National Final Examination Ujian Akhir Nasional – UAN and Public University Entrance National Selection Seleksi Nasional Masuk Perguruan Tinggi Negeri – SNMPTN. Therefore, a reliable, fast and accurate examination system, utilizing Internet is required. The alternative method is an online examination system using computer and internet connection. The system requires availability of clear and accurate data which can only be accessed by authorized person. The common technique to secure data within internet media is cryptography. It is used to keep the information security of the data, so that unauthorized person cannot access it. The research is conducted to produce a protocol design that can be used to secure data relevant to the online examination system. The research method used security basic need analysis and Security Life Cycle Bishop 2003. The data security protocol design is implemented by Power Builder 10.0 Build 4500 programming language and library java of Java Cryptographic Extension Weiss 2003. The result is data security protocol framework that conform to the security requirement of the online examination system. Keyword: cryptography, security protocol, online examination system RINGKASAN WAHYU NOVIANI PURWANTI. Perancangan dan Analisis Protokol Keamanan Data Pada Sistem Ujian Online. Dibimbing oleh SUGI GURITMAN dan SHELVIE NIDYA NEYMAN. Ujian merupakan salah satu tahapan evaluasi dalam proses belajar mengajar, yang digunakan untuk mengetahui tingkat keberhasilan dari proses tersebut. Sistem ujian konvensional dengan media kertas akan efektif dan efisien jika digunakan pada ujian dengan jumlah peserta sedikit, lokasi terpusat dan waktu yang fleksibel, namun tidak efektif untuk ujian dengan jumlah peserta sangat banyak, lokasi tersebar dan waktu yang bersamaan seperti Ujian Akhir Nasional UAN dan Seleksi Nasional Masuk Perguruan Tinggi Negeri SNMPTN. Oleh karena itu, kebutuhan akan metode alternatif untuk melakukan ujian dengan baik, cepat dan akurat sangat mendorong pemanfaatan teknologi informasi yang sedang berkembang saat ini. Salah satu metode alternatif agar dapat menekan sumber daya yang sangat besar tersebut yaitu dengan mengadakan adalah sistem ujian yang dilakukan secara online dengan menggunakan media komputer dan koneksi internet. Ujian secara online sudah banyak dilakukan di berbagai institusi dinegara maju di dunia, untuk berbagai jenis ujian antara lain ujian akhir semester, ujian seleksi masuk perguruan tinggi, ataupun sertifikasi profesi tertentu. Dengan cara ini selain sumber daya yang dibutuhkan menjadi jauh lebih sedikit, waktu yang diperlukan pun tentu menjadi jauh lebih singkat untuk pengumpulan serta perhitungan hasil jawaban ujiannya. Sistem ujian secara online tersebut menuntut ketersediaan data yang jelas dan akurat serta hanya dapat diakses oleh orang-orang yang berhak atau sah. Teknik yang banyak digunakan untuk menjaga keamanan data yang tersimpan dalam sebuah sistem yang menggunakan media internet adalah kriptografi. Tujuannya untuk menjaga kerahasiaan informasi yang terkandung dalam data sehingga tidak dapat diketahui oleh pihak yang tidak sah. Penelitian ini dilakukan dengan tujuan untuk menghasilkan rancangan protokol yang dapat digunakan untuk mengamankan data yang terkait dengan sistem ujian online tersebut. Metode penelitiannya dengan melakukan analisis kebutuhan dasar keamanan dan menggunakan metode Security Life Cycle Bishop 2003. Rancangan protokol keamanan data diimplementasikan dengan bahasa pemrograman Power Builder 10.0 Build 4500 dan library java dari Java Cryptographic Extension Weiss 2003. Hasilnya berupa framework protokol keamanan data yang memenuhi kebutuhan keamanan dari Sistem Ujian Online. Kata Kunci: Kriptografi, Protokol Keamanan, Sistem Ujian Online PENDAHULUAN Latar Belakang Security is a chain; its only as secure as the weakest link. Security is a process, not a product. Schneier Ujian sebagai salah satu tahapan evaluasi dalam proses belajar mengajar, memiliki peran yang sangat penting. Melalui ujian akan dapat diketahui tingkat keberhasilan dari proses belajar mengajar yang telah dilakukan tersebut. Sistem ujian konvensional masih menggunakan media kertas akan efektif dan efisien jika digunakan pada ujian dengan jumlah peserta sedikit, lokasi terpusat dan waktu yang fleksibel, namun tidak efektif untuk ujian dengan jumlah peserta sangat banyak, lokasi tersebar dan waktu yang bersamaan seperti Ujian Akhir Nasional UAN dan Seleksi Nasional Masuk Perguruan Tinggi Negeri SNMPTN. Hal ini selain memerlukan biaya yang sangat besar, juga memerlukan sumber daya strategis lainnya yang besar pula. Seperti halnya sumber daya manusia, tempat, waktu, dan lain sebagainya. Oleh karena itu, kebutuhan akan metode alternatif untuk melakukan ujian dengan baik, cepat dan akurat sangat mendorong pemanfaatan teknologi informasi yang sedang berkembang saat ini. Salah satu metode alternatif agar dapat menekan sumber daya yang sangat besar tersebut yaitu dengan mengadakan adalah sistem ujian yang dilakukan secara online dengan menggunakan media komputer dan koneksi internet. Ujian secara online sudah banyak dilakukan di berbagai institusi dinegara maju di dunia, untuk berbagai jenis ujian antara lain ujian akhir semester, ujian seleksi masuk perguruan tinggi, ataupun sertifikasi profesi tertentu. Dengan cara ini selain sumber daya yang dibutuhkan menjadi jauh lebih sedikit, waktu yang diperlukan pun tentu menjadi jauh lebih singkat untuk pengumpulan serta perhitungan hasil jawaban ujiannya. Seperti halnya ujian secara konvensional, ujian yang diadakan secara online pun tidak akan lepas dari berbagai ancaman kecurangan yang dapat terjadi. Oleh karena itu, sistem yang dibuat pun harus memenuhi kebutuhan keamanan seperti yang dipaparkan oleh Schneier 1996 agar dapat mengatasi dan menjamin bahwa setiap ancaman yang ada tidak dapat terjadi. Sistem untuk ujian secara online tersebut menuntut ketersediaan data yang jelas dan akurat dan akan menimbulkan resiko bilamana informasi yang sensitif dan berharga tersebut diakses oleh orang-orang yang tidak berhak. Teknik yang banyak digunakan untuk menjaga keamanan data yang tersimpan dalam sebuah sistem yang menggunakan media internet adalah kriptografi. Teknologi kriptografi sangat berperan dalam proses komunikasi, yang digunakan untuk melakukan enkripsi pengacakan data yang ditransaksikan selama perjalanan dari sumber ke tujuan dan dekripsi menyusun kembali data yang telah teracak tersebut. Keamanan jalur lalu lintas data dijaga dengan menggunakan protokol kriptografi yaitu suatu protokol yang melibatkan algoritma kriptografi. Menurut Scheneier 1996, penggunaan kriptografi pada protokol ini terutama ditujukan untuk mencegah maupun mendeteksi adanya suatu eavesdropping penyadapan dan cheating kecurangan. Pencurian data bisa terjadi karena ada pihak yang bisa mendapatkan akses langsung ke komputer yang memuat data atau akses tidak langsung melalui jaringan dimana komputer tersebut terhubung. Penelitian oleh Martin Abadi 2003 menunjukkan bahwa security protocol dapat menyediakan otentifikasi yang dapat mencegah masuknya pihak ketiga pada saat proses komunikasi berlangsung. Berbagai protokol yang didasarkan pada primitif cryptographic digunakan untuk melindungi akses ke sistem komputer dan transaksi yang dilakukan secara online. Diantaranya adalah Secure Sockets Layer [SSL] yang digunakan oleh internet browsers dan server untuk menyelesaikan transaksi internet yang aman Monahan 2003. Handshake atau inisialisasi protokol sering digunakan untuk menetapkan kunci rahasia untuk komunikasi yang telah dienkripsi. Menurut M. Abadi 2000 protokol yang digunakan pada awal suatu transaksi atau interaksi dapat mentransmisikan kunci rahasia ke jaringan. Oleh karena itu perlu dilakukan analisa terhadap protokol-protokol tersebut, untuk menjamin keamanan operasi dari sistem yang mereka lindungi. Analisa terhadap berbagai protokol yang telah dilakukan oleh Durgin 1999, memberikan gambaran bahwa masalah terpenting dalam menganalisis protokol keamanan adalah membuat pemodelan yang akurat dari bermacam-macam penyusup intruder. Beberapa penelitian tentang protokol keamanan data pada sistem secara online yang telah dilakukan, diantaranya adalah tentang keamanan data sistem smartcard untuk layanan kesehatan healthcare smartcard Sariasih 1999, sistem jaringan telepon publik Sharif 2003, serta keamanan pada pada sistem pemilu online DuFeu Harris 2001 dan Sireesha Chakchai 2005. Dalam penelitian kali ini fokusnya adalah keamanan data pada transaksi elektronik untuk sistem ujian secara online, yang menggunakan data soal ujian sebagai basis datanya. Tujuan Tujuan dari penelitian ini adalah menghasilkan suatu rancangan protokol untuk keamanan data yang terkait dengan Sistem Ujian Online SUO antara lain data registrasi, data soal ujian dan data jawaban hasil ujian. Rancangan protokol keamanan ini diharapkan dapat digunakan untuk mengatasi masalah-masalah keamanan yang mungkin timbul, antara lain tentang kerahasiaan data, otentikasi pihak yang terlibat dalam protokol, dan kerusakan atau pencurian data. Formulasi Masalah Dalam hal ini, permasalahan yang timbul diantaranya adalah : - Bagaimana mengetahui bahwa pihak-pihak yang terlibat adalah benar-benar pihak yang berwenang. - Bagaimana agar data yang tersimpan tidak dapat dicuri, dirusak atau disalahgunakan oleh pihak lain yang tidak berwenang. - Bagaimana agar protokol untuk ujian secara online dapat berjalan dengan aman, dalam arti memiliki tingkat keamanan yang baik. Ruang Lingkup Ruang lingkup penelitian ini meliputi perancangan protokol keamanan data ujian online yang terdiri dari protokol keamanan data untuk proses registrasi, login ujian, permintaan dan pengiriman soal ujian serta pengiriman jawaban ujian. Penelitian yang dilakukan tidak termasuk dengan perancangan protokol keamanan data untuk proses pelaksanaan ujian online beserta pengembangan aplikasinya. Perancangan protokol dilakukan untuk ujian online yang memerlukan pengawasan dan berada dalam lingkungan ujian tertentu, misalnya ICT Centre. Protokol yang dihasilkan bersifat framework dimana untuk pemilihan algoritma yang digunakan tidak menunjuk secara spesifik pada suatu algoritma tertentu dan implementasinya akan memanfaatkan algoritma yang telah ada. Pemanfaatan algoritma kriptografi dimaksudkan untuk mengamankan data dari serangan yang dilakukan oleh pihak yang berada dalam lingkup protokol. Protokol akan dirancang untuk berjalan dalam saluran aman dengan memanfaatkan teknologi VPN Virtual Privat Network untuk menangkal adanya serangan dari pihak luar. Beberapa asumsi awal digunakan sebagai persyaratan untuk mendukung protokol ini, antara lain: peserta ujian sudah melakukan registrasi awal dengan mengisi data pribadi, manajemen pengelolaan sistem hanya boleh diberikan kepada administrator pusat, dan sistem secara fisik berada di tempat yang aman secure, yaitu dilokasi tertentu ICT Centre yang hanya digunakan pada saat ujian berlangsung. Mekanisme keamanan menggunakan kriptografi yang merupakan mekanisme keamanan yang telah digunakan secara luas ke dalam model protokol kriptografi. Analisis keamanan protokol dinilai melalui analisis komponen metode keamanan informasi yang terlibat dalam protokol. TINJAUAN PUSTAKA Protokol Protokol adalah aturan yang berisi rangkaian langkah-langkah, yang melibatkan dua atau lebih orang, yang dibuat untuk menyelesaikan suatu kegiatan Schneier 1996. Menurut Aprilia 2007, protokol memiliki berbagai karakteristik seperti: 1 Protokol memiliki urutan dari awal hingga akhir. 2 Setiap langkah harus dilaksanakan secara bergiliran. 3 Suatu langkah tidak dapat dikerjakan bila langkah sebelumnya belum selesai. 4 Diperlukan dua pihak atau lebih untuk melaksanakan protokol. 5 Protokol harus mencapai suatu hasil. 6 Setiap orang yang terlibat dalam protokol harus mengetahui terlebih dahulu mengenai protokol dan seluruh langkah yang akan dilaksanakan. 7 Setiap orang yang terlibat dalam protokol harus menyetujui untuk mengikutinya. 8 Protokol tidak boleh menimbulkan kerancuan ambigu dan tidak boleh timbul kesalahpahaman. 9 Protokol harus lengkap, harus terdapat aksi yang spesifik untuk setiap kemungkinan situasi Protokol Kriptografi Menurut Schneier 1996, protokol kriptografi adalah protokol yang menggunakan kriptografi. Orang yang berpartisipasi dalam protokol kriptografi memerlukan protokol tersebut misalnya untuk berbagi komponen rahasia untuk menghitung sebuah nilai, membangkitkan rangkaian bilangan acak, meyakinkan identitas orang lainnya otentikasi, dan lain sebagainya. Protokol kriptografi dibangun dengan melibatkan beberapa algoritma kriptografi. Sebagian besar protokol kriptografi dirancang untuk dipakai oleh kelompok yang terdiri dari 2 orang pemakai, tetapi ada juga beberapa protokol yang dirancang untuk dipakai oleh kelompok yang terdiri dari lebih dari dua orang pemakai misalnya pada aplikasi teleconferencing. Kriptografi Menurut beberapa sumber referensi, pengertian dari Kriptografi antara lain: Kriptografi Cryptography adalah ilmu yang mempelajari teknik-teknik matematika yang berhubungan dengan aspek keamanan informasi seperti kerahasiaan, integritas data dan otentifikasi Menezes et.al. 1996 Kriptografi cryptography merupakan ilmu dan seni penyimpanan pesan, data, atau informasi secara aman. Kriptografi merupakan bagian dari suatu cabang ilmu matematika yang disebut Cryptology. Kriptografi bertujuan menjaga kerahasiaan informasi yang terkandung dalam data sehingga informasi tersebut tidak dapat diketahui oleh pihak yang tidak sah. Schneier 1996 Layanan Keamanan Pada dasarnya layanan keamanan yang terdapat pada sistem keamanan data adalah sebagai berikut Menezes et.al. 1996. 1 Kerahasiaan merupakan suatu layanan yang digunakan untuk menjaga isi informasi dari semua yang tidak berwenang memilikinya. 2 Integritas data merupakan suatu layanan yang berkaitan pengubahan data dari pihak-pihak yang tidak berwenang. Integritas data dijamin dengan cara mendeteksi manipulasi data dari pihak-pihak yang tidak berwenang. Manipulasi data diartikan sebagai hal-hal yang berkaitan dengan penghapusan, penyisipan, dan penggantian data. 3 Otentikasi merupakan suatu layanan yang berhubungan dengan identifikasi entitas dan informasi itu sendiri. Dua pihak terlibat dalam komunikasi seharusnya mengidentikasi dirinya satu sama lain. Informasi yang disampaikan melalui suatu saluran channel seharusnya dapat diidentifikasikan asalnya, isinya, tanggal dan waktunya. Atas dasar ini otentikasi terbagi menjadi dua kelas besar, yaitu: otentikasi entitas dan otentikasi asal data. 4 Non-repudiasi yang berupa suatu layanan yang ditujukan untuk mencegah terjadinya pelanggaran kesepakatan yang telah dibuat sebelumnya oleh entitas. Apabila sengketa muncul ketika suatu entitas mengelak telah melakukan komitmen tertentu, maka suatu alat untuk menangani situasi tersebut diperlukan. Misalnya, suatu entitas mendapatkan wewenang dari entitas lainnya untuk melakukan aksi tertentu, kemudian dia mengingkari wewenang yang diberikan, maka suatu prosedur yang melibatkan pihak ketiga yang terpercaya diperlukan untuk menyelesaikan sengketa itu. Ancaman Serangan Keamanan Proteksi data dan informasi dalam komunikasi komputer menjadi penting karena nilai informasi itu sendiri dan meningkatnya penggunaan komputer di berbagai sektor. Melihat kenyataan semakin banyak data yang diproses dengan komputer dan dikirim melalui perangkat komunikasi elektronik maka ancaman terhadap pengamanan data akan semakin meningkat. Menurut Stallings 2003 terdapat beberapa pola ancaman terhadap komunikasi data dalam komputer sebagai berikut: 1 Interruption Interruption terjadi bila data yang dikirimkan dari A tidak sampai pada orang yang berhak B Gambar 1. Interruption merupakan pola penyerangan terhadap sifat availability ketersediaan data. Gambar 1 Interruption. 2 Interception Serangan ini terjadi bila pihak ketiga C berhasil membaca data yang dikirimkan Gambar 2. Interception merupakan pola penyerangan terhadap sifat confidentiality kerahasiaan data. Gambar 2 Interception. 3 Modification Pada serangan ini pihak ketiga C berhasil merubah pesan yang dikirimkan Gambar 3. Modification merupakan pola penyerangan terhadap sifat integrity keaslian data. Gambar 3 Modification. 4 Fabrication Pada serangan ini, penyerang berhasil mengirimkan data ke tujuan dengan memanfaatkan identitas orang lain Gambar 4. Fabrication merupakan pola penyerangan terhadap sifat authenticity. Gambar 4 Fabrication. Ancaman-ancaman tersebut di atas menjadi masalah terutama dengan semakin meningkatnya komunikasi data yang bersifat rahasia seperti: pemindahan dana secara elektronik kepada dunia perbankan atau pengiriman dokumen rahasia pada instansi pemerintah. Untuk mengantisipasi ancaman-ancaman tersebut perlu dilakukan usaha untuk melindungi data yang dikirim melalui saluran komunikasi salah satunya adalah dengan teknik enkripsi. Masalah kekuatan pengamanannya tergantung pada algoritma metode enkripsi tersebut dan juga kunci yang digunakan di dalamnya. Enkripsi dan Dekripsi Menurut Schneier 1996, dalam menjaga kerahasiaan data, kriptografi mentransformasikan data jelas plaintext ke dalam bentuk data sandi ciphertext yang tidak dapat dikenali. Ciphertext inilah yang kemudian dikirimkan oleh pengirim sender kepada penerima receiver. Penerima mentransformasikan kembali ciphertext tersebut ke dalam bentuk plaintext agar dapat dikenali. Proses tranformasi dari plaintext menjadi ciphertext disebut proses encipherment atau enkripsi encryption, sedangkan proses mentransformasikan kembali ciphertext menjadi plaintext disebut proses dekripsi decryption. Secara sederhana istilah- istilah tersebut dapat digambarkan pada Gambar 5 berikut : Gambar 5 Proses enkripsi dan dekripsi sederhana. Untuk mengenkripsi dan mendekripsi data, kriptografi menggunakan suatu algoritma cipher dan kunci key. Cipher adalah fungsi matematika yang digunakan untuk mengenkripsi dan mendekripsi. Sedangkan kunci merupakan sederetan bit yang diperlukan untuk mengenkripsi dan mendekripsi data. Cryptographic system atau cryptosystem adalah suatu fasilitas untuk mengkonversikan plaintext ke ciphertext dan sebaliknya. Dalam sistem ini, seperangkat parameter yang menentukan transformasi pencipheran tertentu disebut suatu set kunci. Proses enkripsi dan dekripsi diatur oleh satu atau beberapa kunci kriptografi. Secara umum, kunci-kunci yang digunakan untuk proses pengenkripsian dan pendekripsian tidak perlu identik, tergantung pada sistem yang digunakan. Secara umum operasi enkripsi dan dekripsi dapat diterangkan secara matematis sebagai berikut : EK M = C Proses Enkripsi DK C = M Proses Dekripsi Pada saat proses enkripsi kita menyandikan pesan M dengan suatu kunci K lalu dihasilkan pesan C. Sedangkan pada proses dekripsi, pesan C tersebut diuraikan dengan menggunakan kunci K sehingga dihasilkan pesan M yang sama seperti pesan sebelumny. Dengan demikian keamanan suatu pesan tergantung pada kunci ataupun kunci-kunci yang digunakan, dan tidak tergantung pada algoritma yang digunakan. Sehingga algoritma-algoritma yang digunakan tersebut dapat dipublikasikan dan dianalisis, serta produk-produk yang menggunakan algoritma Enkripsi Dekripsi Plaintext Plaintext Ciphertext Kunci Kunci tersebut dapat diproduksi massal. Tidaklah menjadi masalah apabila seseorang mengetahui algoritma yang kita gunakan. Selama ia tidak mengetahui kunci yang dipakai, ia tetap tidak dapat membaca pesan. Algoritma Kriptografi Berdasarkan kunci yang dipakai, algoritma kriptografi dapat dibedakan atas dua golongan, yaitu :

a. Symmetric Algorithms

Algoritma kriptografi simetris atau disebut juga algoritma kriptografi konvensional adalah algoritma yang menggunakan kunci untuk proses enkripsi sama dengan kunci untuk proses dekripsi. Algoritma kriptografi simetris dibagi menajdi 2 kategori yaitu algoritma aliran Stream Ciphers dan algoritma blok Block Ciphers. Proses penyandiannya pada algoritma aliran berorientasi pada satu bit atau satu byte data. Adapun proses penyandiannya pada algoritma blok, berorientasi pada sekumpulan bit atau byte data per blok. Contoh algoritma kunci simetris yang terkenal adalah DES Data Encryption Standard dan AES Advanced Encryption Standard.

b. Asymmetric Algorithms

Algoritma kriptografi asimetris adalah algoritma yang menggunakan kunci yang berbeda untuk proses enkripsi dan dekripsinya Gambar 6. Algoritma ini disebut juga algoritma kunci umum public key algorithm karena kunci untuk enkripsi dibuat umum public key atau dapat diketahui oleh setiap orang, tapi kunci untuk dekripsi hanya diketahui oleh orang yang berwenang mengetahui data yang disandikan atau sering disebut kunci pribadi private key. Contoh algoritma terkenal yang menggunakan kunci asimetris adalah RSA, SHA dan ECC. Gambar 6 Proses enkripsi dan dekripsi public key cryptography. Enkripsi Dekripsi Plaintext Plaintext Ciphertext Kunci Umum Kunci Pribadi Algoritma Blowfish Menurut Schneier 1996 Blowfish merupakan block cipher 64-bit dengan panjang kunci variabel. Algoritme ini terdiri atas dua bagian: key expansion dan enkripsi data. Key expansion mengubah kunci yang dapat mencapai 448-bit menjadi beberapa array subkunci subkey dengan total 4168-byte. Blowfish dikembangkan untuk memenuhi kriteria disain sebagai berikut: a Cepat, pada implementasi yang optimal Blowfish dapat mencapai kecepatan 26 clock cycle per byte. b Kompak, Blowfish dapat berjalan pada memori kurang dari 5 KB. c Sederhana, Blowfish hanya menggunakan operasi yang simpel: penambahan addition, XOR, dan penelusuran table table lookup pada operand 32-bit. d Desainnya mudah untuk dianalisis yang membuatnya resisten terhadap kesalahan implementasi. e Keamanan yang variabel, panjang kunci Blowfish dapat bervariasi dan dapat mencapai 448-bit 56-byte. RSA RSA cryptosystem adalah public-key cryptosystem yang menawarkan baik enkripsi dan tanda tangan digital otentikasi. Ronald Rivest, Adi Shamir, dan Leonard Adleman mengembangkan sistem RSA cryptosystem pada tahun 1977. Algoritma RSA bekerja seperti berikut: ambil dua bilangan prima besar, p dan q, dan hitung hasil kalinya n = pq; n disebut dengan modulus. Pilih sebuah bilangan, e, yang lebih kecil dari n dan merupakan bilangan prima secara relatif dari p 1q 1, yang artinya e dan p 1q 1 tidak memiliki faktor bersama kecuali 1, kemudian temukan bilangan lain d sehingga ed 1 dapat dibagi dengan p 1q 1. Nilai-nilai e dan d masing-masing disebut eksponen publik dan privat. Kunci publik adalah pasangan n, e; kunci privat adalah n, d. Faktor p dan q dapat dihancurkan atau disimpan dengan kunci privat. Sulit untuk mendapatkan kunci privat d dari kunci publik n, e. Jika seseorang dapat memfaktorkan n menjadi p dan q, maka ia bisa mendapatkan kunci privat d. Sehingga keamanan sistem RSA berdasar pada asumsi bahwa pemfaktoran sulit dilakukan. Contoh bagaimana sistem RSA dapat digunakan untuk enkripsi dan tanda tangan digital dalam prakteknya, penggunaan aktualnya sedikit berbeda dijelaskan seperti berikut: Enkripsi: Anggap Alice ingin mengirim pesan m kepada Bob. Alice membuat ciphertext c dengan mengeksponenkan: c = me mod n, dimana e dan n adalah kunci publik Bob. Alice mengirim c kepada Bob. Untuk mendekripnya, Bob juga mengeksponenkan: m = cd mod n; hubungan antara e dan d meyakinkan bahwa Bob mendapatkan m dengan benar. Karena hanya Bob yang mengetahui d, hanya Bob yang dapat mendekrip pesan ini. Tanda Tangan Digital: Anggap Alice ingin mengirim pesan m kepada Bob sehingga Bob yakin bahwa pesannya otentik, tidak dimodifikasi, dan dari Alice. Alice membuat tanda tangan digital s dengan mengeksponenkan: s = md mod n, dimana d dan n adalah kunci privat Alice. Alice mengirim m dan s kepada Bob. Untuk memverifikasi tandatangan, Bob mengeksponenkan dan mengecek bahwa pesan m didapatkan: m = se mod n, dimana e dan n adalah kunci publik Alice. Hybrid Cryptosystem Munculnya algoritma kunci publik public-key algorithms merupakan suatu algoritma yang baik untuk digunakan dalam mengenkripsi kunci, namun bukan untuk mengenkripsi pesan. Hybrid cryptosystem merupakan implementasi dari algoritma simetri dan algoritma kunci publik secara bersamaan, dimana sebuah kunci sesi yang telah dienkripsi dengan algoritma simetri akan diamankan dan didistribusikan dengan menggunakan algoritma kunci publik. Fungsi Satu Arah Fungsi Hash One-way function fungsi hash adalah fungsi matematika yang secara signifikan mudah untuk dihitung pada satu arah arah maju daripada dengan arah sebaliknya inverse. Untuk menghitung fungsi dengan arah maju pada beberapa detik namun untuk menghitung dapat memakan waktu berbulan-bulan atau bertahun-tahun, jika semua dimungkinkan. Trapdoor one-way function adalah fungsi satu arah dimana arah inversnya mudah diberikan sebuah informasi trapdoor, tetapi sulit untuk melakukan hal sebaliknya. Public-key cryptosystems berdasar pada dianggap trapdoor one-way functions. Kunci publik memberikan informasi tentang instance tertentu dari fungsi, kunci privat memberikan informasi tentang trapdoor. Siapapun yang mengetahui trapdoor dapat menghitung fungsi dengan mudah dalam dua arah, tetapi siapapun yang tidak memiliki trapdoor hanya dapat menjalankan fungsi dengan mudah pada arah maju. Arah maju digunakan untuk enkripsi dan verifikasi tandatangan, arah invers digunakan untuk dekripsi dan pembuatan tandatangan. Fungsi hash adalah fungsi yang memproduksi output dengan panjang tetap dari input yang berukuran variabel. Output dari fungsi hash disebut dengan message digest. Fungsi hash memiliki karakteristik fungsi satu arah karena file asli tidak dapat dibuat dari message digest. Otentikasi Pesan dengan Fungsi Hash Otentikasi pesan dengan fungsi hash biasanya berupa tanda tangan digital. Tujuannya untuk mendeteksi modifikasi data yang tidak diotorisasi dan untuk mengotentikasi identitas dari penandatangan, Selain itu juga untuk memberikan layanan non-repudiasi. Fungsi-fungsi ini dicapai dengan meng-generate blok data yang biasanya ukurannya lebih kecil dari data asli. Blok data yang lebih kecil ini dibubuhkan pada data asli dan pada identitas pengirim. Pembubuhan ini untuk memverifikasi integritas data dan mendukung non-repudiasi. Tanda tangan digital dihasilkan dengan cara, program sinyal digital melewatkan file untuk dikirimkan melalui fungsi hash satu arah Gambar 7. Setelah message digest dihitung, kemudian dienkripsi dengan kunci privat pengirim. Penerima kemudian mendekripsi message digest dengan menggunakan kunci publik pengirim. Jika kunci publik ini membuka message digest dan benar bahwa ia merupakan kunci publik pengirim, verifikasi pengirim telah tercapai. Verifikasi terjadi karena hanya kunci publik pengirim yang dapat mendekrip message digest yang dienkripsi dengan kunci privat pengirim. Kemudian, penerima dapat menghitung message digest dari file yang diterima menggunakan fungsi hash yang identik dengan pengirim. Jika message digest identik dengan message digest yang dikirim sebagai bagian dari tanda tangan, maka pesan tidak dimodifikasi. SHA Menurut Munir 2004, Secure Hash Algorithm SHA adalah fungsi hash satu-arah yang dibuat oleh NIST dan digunakan bersama Digital Signature Standard DSS. Oleh NSA, SHA dinyatakan sebagai standar fungsi hash satu- arah. SHA didasarkan pada MD4 yang dibuat oleh Ronald L. Rivest dari MIT. Fungsi hash yang paling umum digunakan adalah SHA-1. SHA 1 adalah revisi terhadap SHA yang dipublikasikan pada tahun 1994. Revisi ini mengkoreksi cacat SHA yang tidak dipublikasikan. Desainnya mirip dengan keluarga fungsi hash MD4 yang dikembangkan oleh Rivest. Algoritmanya mengambil pesan yang panjangnya kurang dari 64-bit dan menghasilkan message digest 160-bit. Algoritma ini lebih lambat daripada MD5, namun message digest yang lebih besar membuatnya semakin aman dari brute-force collision dan serangan inversi. Langkah-langkah pembuatan message digest dengan SHA-1 adalah sebagai berikut: 1 Ubah pesan m menjadi message digest dengan fungsi hash SHA-1, H, 2 Tentukan bilangan acak k q, 3 Tanda-tangan dari pesan m adalah bilangan r dan s. Hitung r dan s sebagai berikut: r = gk mod p mod q s = k-1 Hm + xr mod q 4 Kirim pesan m beserta tanda-tangan r dan s. Gambar 7 Penggunaan tanda tangan digital untuk validasi integritas data. Sumber: Yolanda 2007 Nonce Dalam bidang teknik keamanan, nonce merupakan kepanjangan dari number used once nomor yang digunakan hanya sekali. Umumnya bilangan ini berupa bilangan acak atau semi-acak yang digunakan dalam protokol otentikasi untuk memastikan bahwa komunikasi lama tidak dapat digunakan ulang dalam serangan balasan replay attacks Ross 2001. Serangan pada Protokol Kriptografi Pada dasarnya serangan terhadap primitif dan protokol kriptografi dapat dibedakan menjadi dua jenis yaitu: • Serangan pasif passive attack adalah serangan dimana penyerang hanya memonitor saluran komunikasi. Penyerang pasif hanya mengancam kerahasiaan data. • Serangan aktif active attack adalah serangan dimana penyerang mencoba untuk menghapus, menambahkan, atau dengan cara yang lain mengubah transmisi pada saluran. Penyerang aktif mengancam integritas data dan otentikasi, juga kerahasiaan. Virtual Private Network VPN Virtual Private Network VPN adalah sebuah teknologi komunikasi yang memungkinkan untuk dapat terkoneksi ke jaringan publik dan menggunakannya untuk dapat bergabung dengan jaringan lokal. Dengan cara tersebut maka akan didapatkan hak dan pengaturan yang sama seperti halnya berada di dalam kantor atau LAN itu sendiri, walaupun sebenarnya menggunakan jaringan milik publik. VPN dapat terjadi antara dua end-system atau dua komputer atau antara dua atau lebih jaringan yang berbeda. VPN dapat dibentuk dengan menggunakan teknologi tunneling dan enkripsi. Koneksi VPN juga dapat terjadi pada semua layer pada protokol OSI, sehingga komunikasi menggunakan VPN dapat digunakan untuk berbagai keperluan. Dengan demikian, VPN juga dapat dikategorikan sebagai infrastruktur WAN alternatif untuk mendapatkan koneksi point-to-point pribadi antara pengirim dan penerima. Dan dapat dilakukan dengan menggunakan media apa saja, tanpa perlu media leased line atau frame relay Talin 2010. Menurut Talin 2010, teknologi VPN menyediakan tiga fungsi utama untuk penggunaannya. Ketiga fungsi utama tersebut antara lain sebagai berikut.

1. Confidentially Kerahasiaan

Dengan digunakannnya jaringan publik yang rawan pencurian data, maka teknologi VPN menggunakan sistem kerja dengan cara mengenkripsi semua data yang lewat melauinya. Dengan adanya teknologi enkripsi tersebut, maka kerahasiaan data dapat lebih terjaga. Walaupun ada pihak yang dapat menyadap data yang melewati internet bahkan jalur VPN itu sendiri, namun belum tentu dapat membaca data tersebut, karena data tersebut telah teracak. Dengan menerapkan sistem enkripsi ini, tidak ada satupun orang yang dapat mengakses dan membaca isi jaringan data dengan mudah.

2. Data Integrity Keutuhan data

Ketika melewati jaringan internet, sebenarnya data telah berjalan sangat jauh melintasi berbagai negara. Pada saat perjalanan tersebut, berbagai gangguan dapat terjadi terhadap isinya, baik hilang, rusak, ataupun dimanipulasi oleh orang yang tidak seharusnya. Pada VPN terdapat teknologi yang dapat menjaga keutuhan data mulai dari data dikirim hingga data sampai di tempat tujuan. Gambar 8 Ilustrasi VPN Sumber: Pengertian dan Cara Kerja VPN, Dhimas Nugraha, 2010.

3. Origin Authentication Otentikasi sumber

Teknologi VPN memiliki kemampuan untuk melakukan autentikasi terhadap sumber-sumber pengirim data yang akan diterimanya. VPN akan melakukan pemeriksaan terhadap semua data yang masuk dan mengambil informasi dari sumber datanya. Kemudian, alamat sumber data tersebut akan disetujui apabila proses autentikasinya berhasil. Dengan demikian, VPN menjamin semua data yang dikirim dan diterima berasal dari sumber yang seharusnya. Tidak ada data yang dipalsukan atau dikirim oleh pihak-pihak lain.

4. Non-repudiation

Yaitu mencegah dua perusahaan dari menyangkal bahwa mereka telah mengirim atau menerima sebuah file mengakomodasi Perubahan.

5. Kendali akses

Menentukan siapa yang diberikan akses ke sebuah sistem atau jaringan, sebagaimana informasi apa dan seberapa banyak seseorang dapat menerima. Siklus Hidup Sistem Keamanan Siklus hidup sistem keamanan yang dikemukakan oleh Bishop 2003 terdiri dari 6 tahap utama dimana setiap tahap dari siklus dapat mundur feedback ke tahap sebelumnya bahkan tahap awal, yang dapat digambarkan pada Gambar 9 berikut. Gambar 9 Siklus hidup sistem keamanan. 1. Ancaman threats 2. Kebijakan policy 5. Implementasi implementation 4. Disain design 3. Spesifikasi specification 6. Operasi dan Pemeliharaan operation maintenance

1. Ancaman

Threats Ancaman adalah kekerasan potensial dalam suatu sistem keamanan. Pada tahapan ini dilakukan identifkasi terhadap ancaman-ancaman meliputi objek yang berpotensi menjadi target serangan dan celah-celah keamanan yang dapat menimbulkan ancaman terhadap protokol yang ingin diatasi. Kemudian dilanjutkan dengan penentuan kebutuhan layanan keamanan yang menjadi fokus dari protokol. Hal ini dimaksudkan untuk persiapan mengatasi serangan akibat ancaman-ancaman yang diperkirakan akan muncul.

2. Kebijakan

Policy Kebijakan keamanan merupakan pernyataan tentang apa saja yang diperbolehkan dan tidak diperbolehkan dalam protokol. Tujuannya untuk memberikan arahan dan menjadi acuan standar keamanan dalam protokol. Selain itu, kebijakan keamanan tersebut juga harus memenuhi layanan-layanan keamanan yang terdapat dalam protokol.

3. Spesifikasi

Specification Spesifikasi merupakan deskripsi dari metode yang digunakan protokol dalam menyajikan keamanannya, yang berupa pernyataan fungsional dari sistem. Bentuknya bisa berupa ekspresi matematika atau bahasa lain yang digunakan, meliputi model protokol kriptografi atau teknik kriptografi yang mendukung.

4. Disain

Design Pada tahapan desain ini akan dilakukan penterjemahan spesifikasi dalam bentuk komponen-komponen yang akan diimplementasikan. Disain tidak boleh melanggar ketentuan yang telah diberikan dalam spesifikasi.

5. Implementasi

Implemetation Tahapan implementasi digunakan untuk menghasilkan protokol berdasarkan disain yang telah ada. Pembuatan disain yang telah memenuhi spesifikasi akan menghasilkan aplikasi yang juga memenuhi spesifikasi tersebut. METODE PENELITIAN Penelitian dilakukan dengan pendekatan sistem yang mengikuti tahapan penelitian seperti tersaji pada diagram Gambar 10 berikut ini. Tahapan Penelitian Pengujian dan analisis Kesimpulan dan saran Analisis kebutuhan Perumusan masalah Penetapan tujuan penelitian Persiapan Penetapan asumsi awal yang mendukung protokol Studi literatur Wawancara dan diskusi dengan pakar Pembatasan masalah Penelitian Awal Identifikasi kebutuhan dasar untuk protokol keamanan Penentuan spesifikasi yang sesuai Identifikasi ancaman keamanan Penetapan kebijakan keamanan Implementasi disain protokol Pembuatan rancangan protokol sesuai spesifikasi Siklus hidup sistem keamanan Bishop Gambar 10 Diagram alur tahapan penelitian