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