PERANCANGAN DAN ANALISIS PROTOKOL KEAMANAN DATA PADA SISTEM UJIAN ONLINE
Oleh:
Wahyu Noviani Purwanti
PROGRAM STUDI ILMU KOMPUTER SEKOLAH PASCA SARJANA INSTITUT PERTANIAN BOGOR 2011
SURAT PERNYATAAN
Saya menyatakan dengan sebenar-benarnya, bahwa segala pernyataan dalam tesis saya yang berjudul:
PERANCANGAN DAN ANALISIS PROTOKOL KEAMANAN DATA PADA SISTEM UJIAN ONLINE merupakan gagasan atau hasil penelitian tesis saya sendiri, dengan arahan Komisi Pembimbing, kecuali yang dengan jelas ditunjukkan rujukannya. Tesis ini belum pernah diajukan untuk memperoleh gelar atau capaian akademik lainnya pada program sejenis di perguruan tinggi lain. Semua data dan informasi yang digunakan telah dinyatakan secara jelas dan dapat diperiksa kebenarannya.
Bogor,
Juli 2011
Yang Membuat Pernyataan
Wahyu Noviani Purwanti
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
© Hak Cipta Milik IPB, tahun 2011
Hak cipta dilindungi Undang-Undang 1. Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber: a. Pengutipan hanya untuk kepentingan pendidikan, penelitian, penulisan karya ilmiah, penyusunan lapiran, penulisan kritik, atau tunjauan masalah. b. Pengutipan tidak merugikan kepentingan yang wajar IPB. 2. Dilarang mengumumkan dan memperbanyak sebagian atau seluruhnya karya tulis ini dalam bentuk apapun tanpa izin IPB.
PERANCANGAN DAN ANALISIS PROTOKOL KEAMANAN DATA PADA SISTEM UJIAN ONLINE
Oleh: Wahyu Noviani Purwanti
Tesis Sebagai salah satu syarat untuk memperoleh gelar Magister Sains Pada Program Studi Ilmu Komputer
PROGRAM STUDI ILMU KOMPUTER SEKOLAH PASCA SARJANA INSTITUT PERTANIAN BOGOR 2011
Penguji Luar Komisi Ujian Tesis: Endang Purnama Giri, S.Kom, M.Kom.
Judul tesis
: Perancangan dan Analisis Protokol Keamanan Data Pada Sistem Ujian Online
Nama
: Wahyu Noviani Purwanti
NRP
: G 651060064
Disetujui, Komisi Pembimbing
Dr. Sugi Guritman Ketua
Shelvie Nidya Neyman, S.Kom, M.Si Anggota
Diketahui,
Ketua Program Studi Ilmu Komputer
Dekan Sekolah Pascasarjana
Dr. Ir. Agus Buono, M.Si., M.Kom.
Dr. Ir. Dahrul Syah, M.Sc. Agr.
Tanggal Ujian: 25 Juli 2011
Tanggal Lulus:
KATA PENGANTAR
Alhamdulillah, segala puji syukur penulis panjatkan kehadirat Allah SWT atas limpahan rahmat, karunia dan hidayah-Nya kepada penulis sehingga penulis memperoleh kekuatan untuk dapat menyelesaikan penulisan tesis dengan judul “Perancangan dan Analisis Protokol Keamanan Data Pada Sistem Ujian Online”. Penulisan tesis ini merupakan salah satu syarat untuk memperoleh gelar Magister Sains pada Program Studi Ilmu Komputer, Sekolah Pasca Sarjana, Institut Pertanian Bogor. Penulis sadar bahwa dalam penyelesaian tesis ini penulis memperoleh bantuan dari berbagai pihak. Oleh karena itu pada kesempatan ini penulis ingin mengucapkan terima kasih dan penghargaan seinggi-tingginya kepada : 1. Bapak Dr. Sugi Guritman dan Ibu Shelvie Nidya Neyman, S.Kom, M.Si selaku pembimbing, yang telah memberikan arahan dan bimbingannya selama penelitian dan penulisan tesis ini. 2. Bapak Endang Purnama Giri, S.Kom, M.Kom. selaku dosen penguji luar komisi atas tanggapan dan saran yang bermanfaat bagi tesis ini. 3. Seluruh dosen pengajar Program Pascasarjana Ilmu Komputer, IPB beserta staf administrasi pendukungnya. 4. Universitas Terbuka selaku institusi tempat penulis bekerja, atas kesempatan dan dana yang telah diberikan kepada penulis untuk menempuh pendidikan di Program Pascasarjana Ilmu Komputer, IPB. 5. Tante Minuk, Oom Sus dan putra putrinya, adikku tercinta Venti dan keluarganya serta Keluarga Besar Sapta Putra yang selalu memberikan kasih sayang, semangat dan doa yang tiada putus. 6. Rekan-rekan kerja di Jurusan Matematika, FMIPA Universitas Terbuka, khususnya Ibu Atun Ismarwati selaku Ketua Jurusan atas bantuan moril dan materiil yang diberikan.
7. Mbak Yani, Mbak Mimin, Mbak Agifah dan Mbak Amalia atas dorongan semangat dan motivasinya serta Mas Unggul dari PUSKOM atas sumbangan pemikirannya 8. Teman-teman Angkatan 6 Program Pascasarjana Ilmu Komputer, IPB atas semangat dan kebersamaan selama menempuh studi. 9. Seluruh pihak yang belum dapat penulis sebutkan, atas segala bantuannya. Penulis menyadari bahwa penulisan tesis ini masih belum sempurna. Oleh karena itu, segala kritik dan saran yang positif sangat penulis harapkan bagi kemajuan penulis di masa yang akan datang. Akhir kata, penulis berharap semoga tesis ini bermanfaat bagi pihak yang memerlukannya.
Bogor, Juli 2011
Wahyu Noviani Purwanti
RIWAYAT HIDUP Wahyu Noviani Purwanti dilahirkan di kota Solo, Jawa Tengah, pada tanggal 29 Nopember 1971 dari pasangan Ibu Sri Hartati dan Bapak Soegiarto. Penulis merupakan putri pertama dari dua bersaudara. Tahun 1990 penulis lulus dari SMA Negeri 3 Semarang dan pada tahun 1991 penulis diterima di Jurusan Matematika, Fakultas Matematika dan Ilmu Pengetahuan Alam, Universitas Diponegoro Semarang melalui jalur Ujian Masuk Perguruan Tinggi Negeri (UMPTN). Penulis lulus tahun 1997 dan pada tahun 1998 penulis diterima bekerja sebagai staf pengajar di Jurusan Matematika, Fakultas Matematika dan Ilmu Pengetahuan Alam, Universitas Terbuka sampai sekarang.
DAFTAR ISI
Halaman DAFTAR GAMBAR .........................................................................................
xiii
DAFTAR LAMPIRAN.. ....................................................................................
xiv
PENDAHULUAN .............................................................................................
1
Latar Belakang .............................................................................................
1
Tujuan ..........................................................................................................
3
Formulasi Masalah .......................................................................................
3
Ruang Lingkup .............................................................................................
3
TINJAUAN PUSTAKA .....................................................................................
5
Protokol ........................................................................................................
5
Protokol Kriptografi .....................................................................................
5
Kriptografi ....................................................................................................
6
Layanan Keamanan ......................................................................................
6
Ancaman Serangan Keamanan .....................................................................
7
Enkripsi dan Dekripsi ...................................................................................
8
Algoritma Kriptografi ...................................................................................
10
Symetric Algorithms ................................................................................
10
Asymteric Algorithms ...............................................................................
10
Algoritma Blowfish .......................................................................................
11
RSA ..............................................................................................................
11
Enkripsi ....................................................................................................
12
Tanda Tangan Digital ..............................................................................
12
Hybrid Cryptosystem ....................................................................................
12
Fungsi Satu Arah/Fungsi Hash .....................................................................
12
Otentifikasi Pesan dengan Fungsi Hash .......................................................
13
SHA ..............................................................................................................
14
Nonce.............................................................................................................
15
xi
Serangan pada Protokol Kriptografi ............................................................
15
Virtual Private Network (VPN) ....................................................................
15
Siklus Hidup Sistem Keamanan ...................................................................
17
Ancaman ..................................................................................................
18
Kebijakan .................................................................................................
18
Spesifikasi ................................................................................................
18
Disain .......................................................................................................
18
Implementasi ............................................................................................
18
METODE PENELITIAN ....................................................................................
19
HASIL DAN PEMBAHASAN ...........................................................................
22
Sistem Ujian Online (SUO) ...........................................................................
22
Pengertian Sistem Ujian Online (SUO) ....................................................
22
Arsitektur Jaringan pada Sistem Ujian Online (SUO) .............................
23
Kebutuhan Dasar Keamanan .........................................................................
24
Ancaman ..................................................................................................
26
Kebijakan .................................................................................................
28
Spesifikasi ................................................................................................
30
Disain .......................................................................................................
32
Alur Komunikasi Protokol Ujian Online .............................................
34
Implementasi ............................................................................................
40
Pengujian ............................ .........................................................................
46
Analisis Hasil Implementasi .........................................................................
47
Analisis Secara Komputasi ......................................................................
47
Analisis Keamanan Protokol.....................................................................
48
KESIMPULAN DAN SARAN ...........................................................................
52
DAFTAR PUSTAKA ..........................................................................................
54
LAMPIRAN
xii
DAFTAR GAMBAR
Gambar 1
Interruption ...................................................................................
7
Gambar 2
Interception ..................................................................................
7
Gambar 3
Modification ..................................................................................
8
Gambar 4
Fabrication ....................................................................................
8
Gambar 5
Proses enkripsi dan dekripsi sederhana ........................................
9
Gambar 6
Proses enkripsi dan dekripsi Public Key Cryptography ..............
10
Gambar 7
Penggunaan tanda tangan digital untuk validasi integritas data ...
14
Gambar 8
Ilustrasi VPN ................................................................................
16
Gambar 9
Siklus hidup sistem keamanan ....................................................
17
Gambar 10
Tahapan penelitian ........................................................................
19
Gambar 11
Arsitektur jaringan pada Sistem Ujian Online (SUO) ..................
23
Gambar 12
Skema komunikasi data pada SUO ..............................................
33
Gambar 13
Diagram alur komunikasi protokol keamanan data pada SUO.....
33
Gambar 14
Alur komunikasi proses registrasi .................................................
35
Gambar 15
Alur komunikasi proses login ujian ..............................................
37
Gambar 16
Alur komunikasi proses permintaan soal ujian .............................
38
Gambar 17
Alur komunikasi proses kirim jawaban ujian ................................ 40
Gambar 18.a Tampilan menu Request Connection .............................................
42
Gambar 18.b. Tampilan menu Connection Listener.............................................
42
Gambar 19.a Tampilan menu Request Password ...............................................
43
Gambar 19.b. Tampilan menu Password.Request Listener..................................
43
Gambar 20.a. Tampilan menu Request Connection.............................................
44
Gambar 20.b. Tampilan menu Connection Listener.............................................
44
Gambar 21.a. Tampilan menu Exam Paper Request............................................
45
Gambar 21.b. Tampilan menu Exam Generator and Scorer Connection Listener.......................................................................................... 45
xiii
DAFTAR LAMPIRAN
Lampiran 1
Tabel Rata-rata Waktu Proses ....................................................... 56
Lampiran 2
Hasil Pemrograman Implementasi Proses Registrasi (1) ................ 58
Lampiran 3
Hasil Pemrograman Implementasi Proses Registrasi (2) ................ 59
Lampiran 4
Hasil Pemrograman Implementasi Proses Registrasi (3) ................ 62
Lampiran 5
Hasil Pemrograman Implementasi Proses Login (1) ....................... 68
Lampiran 6
Hasil Pemrograman Implementasi Proses Minta Soal Ujian .......... 69
xiv
PENDAHULUAN
Latar Belakang
"Security is a chain; it's 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
2
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.
3
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.
4
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).
6
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
dapat
melalui
suatu
saluran
(channel)
seharusnya
diidentifikasikan asalnya, isinya, tanggal dan waktunya. Atas dasar ini otentikasi terbagi menjadi dua kelas besar, yaitu: otentikasi entitas dan otentikasi asal data.
7
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.
8
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
9
menjadi plaintext disebut proses dekripsi (decryption). Secara sederhana istilahistilah tersebut dapat digambarkan pada Gambar 5 berikut : Kunci
Plaintext
Kunci
Ciphertext Enkripsi
Plaintext Dekripsi
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
10
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. Kunci Umum Plaintext
Kunci Pribadi Ciphertext
Enkripsi
Plaintext Dekripsi
Gambar 6 Proses enkripsi dan dekripsi public key cryptography.
11
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 1)(q 1), yang artinya e dan (p 1)(q 1) tidak memiliki faktor bersama kecuali 1, kemudian temukan bilangan lain d sehingga (ed 1) dapat dibagi dengan (p 1)(q 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.
12
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
13
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
14
fungsi hash yang identik dengan pengirim. Jika message digest identik dengan message digest yang dikirim sebagai bagian dari tanda tangan, maka pesan tidak dimodifikasi.
Gambar 7 Penggunaan tanda tangan digital untuk validasi integritas data. (Sumber: Yolanda 2007) 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 satuarah. 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 (H(m) + x*r)) mod q 4 Kirim pesan m beserta tanda-tangan r dan s.
15
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).
16
Gambar 8 Ilustrasi VPN (Sumber: Pengertian dan Cara Kerja VPN, Dhimas Nugraha, 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.
17
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. 1. Ancaman (threats)
2. Kebijakan (policy)
3. Spesifikasi (specification)
4. Disain (design)
5. Implementasi (implementation)
6. Operasi dan Pemeliharaan (operation & maintenance)
Gambar 9 Siklus hidup sistem keamanan.
18
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 Persiapan Analisis kebutuhan
Penelitian Awal Studi literatur
Wawancara dan diskusi dengan pakar Pembatasan masalah
Perumusan masalah
Identifikasi kebutuhan dasar untuk protokol keamanan Penetapan asumsi awal yang mendukung protokol
Penetapan tujuan penelitian
Siklus hidup sistem keamanan Bishop Identifikasi ancaman keamanan
Penetapan kebijakan keamanan
Penentuan spesifikasi yang sesuai
Pembuatan rancangan protokol sesuai spesifikasi
Implementasi disain protokol
Pengujian dan analisis
Kesimpulan dan saran
Gambar 10 Diagram alur tahapan penelitian
20
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
21
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.
23
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).
Database Computer
Computer
Server Aplikasi
Client
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
24
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).
25
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 data/informasi sehingga hanya diketahui oleh pihak yang berhak menerima data/informasi 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 masingmasing 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.
26
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.
27
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
28
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.
29
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.
30
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.
31
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 masuk/log 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.
32
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.
33
Server Registrasi
Client
Server SUO
1. User request
Server Registrasi
2. Validasi data Client 3. Login 4. Otentikasi client
Server SUO
Client 5. Request ujian 6. Preparing & generate naskah
Server SUO
Client 7. Kirim Hasi Ujian 8. Otentikasi client
Server SUO
Client
Gambar 12 Skema komunikasi data pada SUO. Selanjutnya dapat dilihat hubungan client – server yang terjadi pada proses komunikasi data pada Gambar 12 diatas, melalui diagram alur pada Gambar 13 dibawah ini. 0. Mulai
Client 1. Registrasi ujian online
Server Registrasi 2. Validasi data registrasi
Client
Server SUO
Client
3. Login ujian
4. Otentikasi client
5. Permintaan soal ujian
Ya
Ya Data valid?
Data valid? Tidak
Tidak
Tidak Ya
Data valid? Ujian
9. Selesai
Server SUO
Client
Server SUO
8. Validasi hasil ujian client
7. Kirim hasil ujian
6. Preparing dan generate naskah
Gambar 13 Diagram alur komunikasi protokol keamanan data pada SUO.
34
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 masingmasing. Server Registrasi kemudian mengirimkan kunci publik (“reg.pub”) ke client, demikian pula sebaliknya.
c
Client memasukkan data NIM (user id) sebagai bukti identitas. Client mengenerate 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”).
35
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. Server Registrasi
Client Client generate kunci publik dan kunci privat
1. Kunci publik client
Server Registrasi terima kunci publik client
2. Kunci publik Server Registrasi Client membaca kunci publik server Registrasi
Client memasukkan data NIM dan generate kunci simetri Blowfish
Server Registrasi generate kunci publik dan kunci privat 3. Data NIM dan kunci simetri Blowfish + nonce yang telah dienkripsi dengan kunci publik server Registrasi
Server Registrasi mendekripsi data NIM dan kunci simetri dengan kunci privat dan membaca nonce Server Registrasi membandingkan data NIM apakah cocok dengan data yang ada di server Registrasi. Jika cocok, maka generate password
Client mendekripsi kunci simetri dengan kunci privat server Registrasi dan mendekripsi pesan dengan kunci simetri
4. Nilai hash dari NIM & password yang dienkripsi dengan kunci simetri dan kunci simetri yang dienkripsi dengan kunci publik server Registrasi
Server Registrasi mencari nilai hash dari NIM dengan SHA-1 dan nonce+1
Client memeriksa keutuhan pesan dari server Registrasi dengan membaca nilai hash dan otentikasi pesan dengan menghitung nonce+1.
Gambar 14 Alur komunikasi proses registrasi.
36
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.
37
Server SUO
Client 1. Kunci publik client (mhs.pub) 2. Kunci publik server SUO (suo.pub)
Client membaca kunci publik server SUO
3.
Client memasukkan user id (NIM) dan password
4. Client mendekripsi pesan dengan kunci simetri
Data user id (NIM) dan password yang telah dienkripsi dengan kunci simetri server SUO dan kunci simetri yang dienkripsi dengan kunci publik server SUO
ValidationID yang dienkripsi dengan kunci simetri
Server SUO mendekripsi kunci simetri dengan kunci privat RSA dan mendekripsi pesan dengan kunci simetri
Server SUO melakukan otentikasi terhadap user id dan password. Jika data valid, maka server SUO membuat validationID
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.
38
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. Server SUO
Client
Client membaca kunci publik server SUO
1.
Kunci publik server SUO (suo.pub)
2
Kunci simetri Blowfish yang telah dienkripsi dengan kunci publik server SUO
3
Pesan minta naskah soal ujian dengan symmetric cipher
4
Naskah soal ujian yang dienkripsi dengan kunci simetri
Client generate kunci simetri Blowfish
Client mendekripsi soal ujian dan memverifikasi tanda tangan digital. Jika valid, maka lanjut ke proses ujian
Server SUO mendekripsi kunci simetri dengan kunci privat RSA dan mendekripsi pesan dengan kunci simetri
Cek pesan apakah cocok. Jika ya, maka server SUO generate naskah soal ujian dan beri tanda tangan digital dengan SHA-1
Gambar 16 Alur komunikasi proses permintaan soal ujian.
39
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.
40
Server SUO
Client
Client membaca kunci publik server SUO
1. Kunci publik server SUO (suo.pub) 2
Kunci simetri Blowfish yang telah dienkripsi dengan kunci publik server SUO
3.
ValidationID dan jawaban ujian yang telah dienkripsi dengan kunci simetri Blowfish
Client generate kunci simetri Blowfish
Client memberi tanda tangan digital pada jawaban ujian dengan SHA-1 4. Client mendekripsi pesan dan memverifikasi tanda tangan. Jika valid, maka proses selesai
Pesan konfirmasi yang ditandatangani dengan SHA1 dan dienkripsi dengan kunci simetri
Server SUO mendekripsi kunci simetri dengan kunci privat RSA dan mendekripsi pesan dengan kunci simetri Server SUO memeriksa validationID. Jika valid, maka jawaban akan disimpan di server SUO
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:
41
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
42
Pertukaran kunci publik
Gambar 18.a Registration Connection Request.
Gambar 18.b Registration Connection 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 masingmasing 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:
43
-
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
44
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 Request.
Gambar 20.b Server SUO Connection 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.
45
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 Connection.
Gambar 21.b Exam Generator and scorer 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
46
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)
47
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 X8664, 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
48
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
49
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
50
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
51
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 ratarata 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.
53
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.
54
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 11th 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.
55
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 18th 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”, 3rd 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
56
Lampiran 1. Tabel Rata-rata Waktu Proses
No. 1
2
3
4
5
Menu Proses
Deskripsi Proses
Waktu Rata-rata (dlm detik)
Client_Reg generate client pairkey :
6,994
selesai terima server reg pubkey :
7,021
generate server reg pairkey :
3,578
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 : selesai membandingkan hash dari server reg dari client :
0,008
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
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
Server_Reg
Client_Reg_Pwd
0,130
Server_Reg_Pwd
Client_SUO
57
No. 6
7
8
Menu Proses
Deskripsi Proses
Waktu Rata-rata (dlm detik)
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
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
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
Client_SUO_ Ujian
Server_SUO_ Exam_Score
58
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 = FileOpen("C:\w_nsuo_client_reg.txt", LineMode!, Write!, LockWrite!, Replace!) FileWrite(li_FileNum, "mulai generate client pairkey : "+String(Now(), "hh:mm:ss:ffff")) TRY IF lnv_crypto.of_getInstance(pbcrypto) THEN ls_keys = pbcrypto.createRsaKeyPair() mle_c_prikey.text = ls_keys[2] mle_c_pubkey.text = ls_keys[1] insert into t_client(c_connid,c_pri,c_pub) values (:ll_brand, :ls_keys[2], :ls_keys[1]) using sqlca; insert into t_registrasi_proses(c_connid,clm_1_pubkey,flag) values (:ll_brand, :ls_keys[1], 0) using sqlca; END IF CATCH (NoSuchAlgorithmException nsae) MessageBox("Alert", nsae.getMessage()) END TRY FileWrite(li_FileNum, "selesai generate client pairkey : "+String(Now(), "hh:mm:ss:ffff")) commit using sqlca; ii_counter = 0 timer(1)
59
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 = trim(sle_nim.text) ll_nonce = 22222 + second(now()) 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 = FileOpen("C:\w_nsuo_client_reg_pwd.txt", LineMode!, Write!, LockWrite!, Replace!) FileWrite(li_FileNum, "mulai generate client simetrik key : "+String(Now(), "hh:mm:ss:ffff")) //create kunci simetri TRY IF lnv_crypto.of_getInstance(pbcrypto) THEN ls_simetri_seckey = pbcrypto.generateSecretKey("Blowfish") END IF CATCH (NoSuchAlgorithmException nsae1) MessageBox("Alert", nsae1.getMessage()) END TRY FileWrite(li_FileNum, "selesai generate client simetrik key : "+String(Now(), "hh:mm:ss:ffff")) FileWrite(li_FileNum, "mulai enkrip nonce dengan simetrik key - blowfish : "+String(Now(), "hh:mm:ss:ffff")) //enkrip dengan blowfish nonce with kunci simetri TRY
60
IF lnv_crypto.of_getInstance(pbcrypto) AND (Len(ls_simetri_seckey) > 0) THEN ls_nonce_enc = pbcrypto.encryptPlainTextUsingBlockCipher("Blowfish",ls_simetri_seckey,string(ll_ nonce)) ELSE MessageBox("Alert", "You must generate a secret key first!") END IF CATCH (NoSuchAlgorithmException nsae2) MessageBox("Alert", nsae2.getMessage()) END TRY FileWrite(li_FileNum, "selesai enkrip nonce dengan simetrik key - blowfish : "+String(Now(), "hh:mm:ss:ffff")) FileWrite(li_FileNum, "mulai enkrip nim dengan simetrik key - blowfish : "+String(Now(), "hh:mm:ss:ffff")) //enkrip dengan blowfish nim with kunci simetri TRY IF lnv_crypto.of_getInstance(pbcrypto) AND (Len(ls_simetri_seckey) > 0) THEN ls_nim_enc = pbcrypto.encryptPlainTextUsingBlockCipher("Blowfish",ls_simetri_seckey,ls_nim) ELSE MessageBox("Alert", "You must generate a secret key first!") END IF CATCH (NoSuchAlgorithmException nsae3) MessageBox("Alert", nsae3.getMessage()) END TRY FileWrite(li_FileNum, "selesai enkrip nim dengan simetrik key - blowfish : "+String(Now(), "hh:mm:ss:ffff")) FileWrite(li_FileNum, "mulai enkrip simetrik key - rsa - serverreg-pubkey : "+String(Now(), "hh:mm:ss:ffff")) //enkrip kunci simetri with reg.pub TRY IF lnv_crypto.of_getInstance(pbcrypto) THEN ls_simetri_seckey_enc = pbcrypto.encryptSecretKeyUsingRsaPublicKey(ls_simetri_seckey,ls_sr_pubkey) END IF CATCH (NoSuchAlgorithmException nsae4) MessageBox("Alert", nsae4.getMessage()) END TRY
61
FileWrite(li_FileNum, "selesai enkrip simetrik key - rsa - serverreg-pubkey : "+String(Now(), "hh:mm:ss:ffff")) mle_sr_pub.text = ls_sr_pubkey mle_nim.text = ls_nim mle_nonce.text = string(ll_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 = string(ll_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 timer(1)
62
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 timer(1)
Menu Server_Reg_Pwd Listening ii_counter = 0 timer(1)
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 isnull(ls_nim_enc) then
63
else n_cst_cryptography lnv_crypto PBCrypto pbcrypto FileWrite(li_FileNum, "mulai dekrip simkey dengan server reg prikey : "+String(Now(), "hh:mm:ss:ffff")) //dekrip simetri key with sr private key TRY IF lnv_crypto.of_getInstance(pbcrypto) THEN ls_simetri_seckey = pbcrypto.decryptSecretKeyUsingRsaPrivateKey(ls_simetri_seckey_enc,ls_sr_pri) END IF CATCH (NoSuchAlgorithmException nsae) MessageBox("Alert decryptSecretKeyUsingRsaPrivateKey", nsae.getMessage()) END TRY FileWrite(li_FileNum, "selesai dekrip simkey dengan server reg prikey : "+String(Now(), "hh:mm:ss:ffff")) FileWrite(li_FileNum, "mulai dekrip nonce simkey d- blowfish : "+String(Now(), "hh:mm:ss:ffff")) //dekrip dengan blowfish nonce with kunci simetri TRY IF lnv_crypto.of_getInstance(pbcrypto) AND (Len(ls_nonce_enc)>0) THEN ll_nonce = long( pbcrypto.decryptCipherTextUsingBlockCipher("Blowfish",ls_simetri_seckey, ls_nonce_enc) ) ELSE MessageBox("Alert", "You must encrypt a phrase first!") END IF CATCH (NoSuchAlgorithmException nsae1) MessageBox("Alert decryptCipherTextUsingBlockCipher Nonce", nsae1.getMessage()) END TRY FileWrite(li_FileNum, "selesai dekrip nonce simkey d- blowfish : "+String(Now(), "hh:mm:ss:ffff")) FileWrite(li_FileNum, "mulai dekrip nim simkey d- blowfish : "+String(Now(), "hh:mm:ss:ffff")) //dekrip dengan blowfish nim with kunci simetri TRY
64
IF lnv_crypto.of_getInstance(pbcrypto) AND (Len(ls_nonce_enc)>0) THEN ls_nim = pbcrypto.decryptCipherTextUsingBlockCipher("Blowfish",ls_simetri_seckey,ls_nim _enc) ELSE MessageBox("Alert", "You must encrypt a phrase first!") END IF CATCH (NoSuchAlgorithmException nsae2) MessageBox("Alert decryptCipherTextUsingBlockCipher Nim", nsae2.getMessage()) END TRY FileWrite(li_FileNum, "selesai dekrip nim simkey d- blowfish : "+String(Now(), "hh:mm:ss:ffff")) FileWrite(li_FileNum, "mulai generate hash code : "+String(Now(), "hh:mm:ss:ffff")) //generate hash code String ls_hash, ls_hash_source ls_hash_source = ls_nim + string(ll_nonce+1) TRY IF lnv_crypto.of_getInstance(pbcrypto) THEN ls_hash = pbcrypto.generateMessageDigest("SHA1",ls_hash_source) END IF CATCH (NoSuchAlgorithmException nsae3) MessageBox("Alert generateMessageDigest Hash", nsae3.getMessage()) END TRY FileWrite(li_FileNum, "selesai generate hash code : "+String(Now(), "hh:mm:ss:ffff")) //generete password string ls_pwd ls_pwd = '7006020072011' FileWrite(li_FileNum, "mulai enkrip hash code dengan simkey -blowfish : "+String(Now(), "hh:mm:ss:ffff")) //a = enkripsi hash using sim key TRY IF lnv_crypto.of_getInstance(pbcrypto) AND (Len(ls_simetri_seckey)>0) THEN
65
ls_hash_enc = pbcrypto.encryptPlainTextUsingBlockCipher("Blowfish",ls_simetri_seckey,ls_hash) ELSE MessageBox("Alert", "You must generate a secret key first!") END IF CATCH (NoSuchAlgorithmException nsae4) MessageBox("Alert encryptPlainTextUsingBlockCipher Hash", nsae4.getMessage()) END TRY FileWrite(li_FileNum, "selesai enkrip hash code dengan simkey -blowfish : "+String(Now(), "hh:mm:ss:ffff")) FileWrite(li_FileNum, "mulai enkrip password dengan simkey -blowfish : "+String(Now(), "hh:mm:ss:ffff")) //b = enkripsi password using sim key TRY IF lnv_crypto.of_getInstance(pbcrypto) AND (Len(ls_simetri_seckey) > 0) THEN ls_pwd_enc = pbcrypto.encryptPlainTextUsingBlockCipher("Blowfish",ls_simetri_seckey,ls_pwd) ELSE MessageBox("Alert", "You must generate a secret key first!") END IF CATCH (NoSuchAlgorithmException nsae5) MessageBox("Alert encryptPlainTextUsingBlockCipher Pwd", nsae5.getMessage()) END TRY FileWrite(li_FileNum, "selesai enkrip password dengan simkey -blowfish : "+String(Now(), "hh:mm:ss:ffff")) FileWrite(li_FileNum, "mulai enkrip hash-enc dengan rsa-server-reg-pubkey : "+String(Now(), "hh:mm:ss:ffff")) //enkripsi ls_hash_enc using client pubkey string ls_hash_enc_enc TRY IF lnv_crypto.of_getInstance(pbcrypto) THEN ls_hash_enc_enc = pbcrypto.encryptSecretKeyUsingRsaPublicKey(ls_hash_enc,ls_c_pubkey) END IF CATCH (NoSuchAlgorithmException nsae6) MessageBox("Alert encryptSecretKeyUsingRsaPublicKey Hash Enc", nsae6.getMessage()) END TRY
66
FileWrite(li_FileNum, "selesai enkrip hash-enc dengan rsa-server-reg-pubkey : "+String(Now(), "hh:mm:ss:ffff")) FileWrite(li_FileNum, "mulai enkrip ls_pwd_-enc dengan rsa-server-regpubkey : "+String(Now(), "hh:mm:ss:ffff")) //enkripsi ls_pwd_enc using client pubkey string ls_pwd_enc_enc TRY IF lnv_crypto.of_getInstance(pbcrypto) THEN ls_pwd_enc_enc = pbcrypto.encryptSecretKeyUsingRsaPublicKey(ls_pwd_enc,ls_c_pubkey) END IF CATCH (NoSuchAlgorithmException nsae7) MessageBox("Alert encryptSecretKeyUsingRsaPublicKey Pwd Enc", nsae7.getMessage()) END TRY FileWrite(li_FileNum, "selesai enkrip ls_pwd_-enc dengan rsa-server-regpubkey : "+String(Now(), "hh:mm:ss:ffff")) mle_nim_2.text = ls_nim mle_sim_2.text = ls_simetri_seckey mle_nonce_2.text = string(ll_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 = string(ll_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;
67
FileWrite(li_FileNum, "kirim password : "+String(Now(), "hh:mm:ss:ffff"))
end if
68
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 = FileOpen("C:\w_nsuo_client_suo.txt", LineMode!, Write!, LockWrite!, Replace!) FileWrite(li_FileNum, "mulai login : "+String(Now(), "hh:mm:ss:ffff")) insert into t_suo_proses(c_connid, clm_1_pubkey, flag) values (:ll_brand, :ls_c_pub, 0) using sqlca; commit using sqlca; il_switch = 0 ii_counter = 0 timer(1)
69
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 = long(sle_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 = FileOpen("C:\w_nsuo_client_suo_ujian.txt", LineMode!, Write!, LockWrite!, Replace!) FileWrite(li_FileNum, "mulai create kunci simetri : "+String(Now(), "hh:mm:ss:ffff")) //create kunci simetri TRY IF lnv_crypto.of_getInstance(pbcrypto) THEN ls_simetri_seckey = pbcrypto.generateSecretKey("Blowfish") END IF CATCH (NoSuchAlgorithmException nsae1) MessageBox("Alert", nsae1.getMessage()) END TRY FileWrite(li_FileNum, "selesai create kunci simetri : "+String(Now(), "hh:mm:ss:ffff")) string ls_mtk_enc FileWrite(li_FileNum, "mulai enkrip dengan blowfish nonce with kunci simetri : "+String(Now(), "hh:mm:ss:ffff")) //enkrip dengan blowfish nonce with kunci simetri TRY IF lnv_crypto.of_getInstance(pbcrypto) AND (Len(ls_simetri_seckey) >0) THEN
70
ls_mtk_enc = pbcrypto.encryptPlainTextUsingBlockCipher("Blowfish",ls_simetri_seckey,ls_mtk) ELSE MessageBox("Alert", "You must generate a secret key first!") END IF CATCH (NoSuchAlgorithmException nsae2) MessageBox("Alert", nsae2.getMessage()) END TRY FileWrite(li_FileNum, "selesai enkrip dengan blowfish nonce with kunci simetri : "+String(Now(), "hh:mm:ss:ffff")) string ls_simetri_seckey_enc FileWrite(li_FileNum, "mulai enkrip kunci simetri with ss.pub : "+String(Now(), "hh:mm:ss:ffff")) //enkrip kunci simetri with ss.pub TRY IF lnv_crypto.of_getInstance(pbcrypto) THEN ls_simetri_seckey_enc = pbcrypto.encryptSecretKeyUsingRsaPublicKey(ls_simetri_seckey,ssm_pubkey) END IF CATCH (NoSuchAlgorithmException nsae3) MessageBox("Alert", nsae3.getMessage()) END TRY FileWrite(li_FileNum, "selesai enkrip kunci simetri with ss.pub : "+String(Now(), "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; FileWrite(li_FileNum, "kirim request mtk : "+String(Now(), "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 timer(1)