Design and Analysis of Data Security Protocol in Online Examination System

(1)

PERANCANGAN DAN ANALISIS PROTOKOL KEAMANAN

DATA PADA SISTEM UJIAN

ONLINE

Oleh:

Wahyu Noviani Purwanti

PROGRAM STUDI ILMU KOMPUTER

SEKOLAH PASCA SARJANA

INSTITUT PERTANIAN BOGOR


(2)

(3)

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


(4)

(5)

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.


(6)

(7)

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


(8)

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.


(9)

© 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.


(10)

(11)

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


(12)

(13)

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 Shelvie Nidya Neyman, S.Kom, M.Si

Ketua 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.


(14)

(15)

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.


(16)

(17)

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


(18)

(19)

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.


(20)

(21)

xi

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


(22)

xii 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


(23)

xiii 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 RequestPassword ... 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


(24)

xiv 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


(25)

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


(26)

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.


(27)

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.


(28)

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.


(29)

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).


(30)

Kriptografi

Menurut beberapa sumber referensi, pengertian dari Kriptografi antara lain:

Kriptografi (Cryptography) adalah ilmu yang mempelajari teknik-teknik matematika yang berhubungan dengan aspek keamanan informasi seperti kerahasiaan, integritas data dan otentifikasi (Menezes et.al. 1996)

Kriptografi (cryptography) merupakan ilmu dan seni penyimpanan pesan, data, atau informasi secara aman. Kriptografi merupakan bagian dari suatu cabang ilmu matematika yang disebut Cryptology. Kriptografi bertujuan menjaga kerahasiaan informasi yang terkandung dalam data sehingga informasi tersebut tidak dapat diketahui oleh pihak yang tidak sah. (Schneier 1996)

Layanan Keamanan

Pada dasarnya layanan keamanan yang terdapat pada sistem keamanan data adalah sebagai berikut (Menezes et.al. 1996).

1 Kerahasiaan merupakan suatu layanan yang digunakan untuk menjaga isi informasi dari semua yang tidak berwenang memilikinya.

2 Integritas data merupakan suatu layanan yang berkaitan pengubahan data dari pihak-pihak yang tidak berwenang. Integritas data dijamin dengan cara mendeteksi manipulasi data dari pihak-pihak yang tidak berwenang. Manipulasi data diartikan sebagai hal-hal yang berkaitan dengan penghapusan, penyisipan, dan penggantian data.

3 Otentikasi merupakan suatu layanan yang berhubungan dengan identifikasi entitas dan informasi itu sendiri. Dua pihak terlibat dalam komunikasi seharusnya mengidentikasi dirinya satu sama lain. Informasi yang disampaikan melalui suatu saluran (channel) seharusnya dapat diidentifikasikan asalnya, isinya, tanggal dan waktunya. Atas dasar ini otentikasi terbagi menjadi dua kelas besar, yaitu: otentikasi entitas dan otentikasi asal data.


(31)

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).


(32)

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


(33)

9

menjadi plaintext disebut proses dekripsi (decryption). Secara sederhana istilah-istilah tersebut dapat digambarkan pada Gambar 5 berikut :

Gambar 5 Proses enkripsi dan dekripsi sederhana.

Untuk mengenkripsi dan mendekripsi data, kriptografi menggunakan suatu algoritma (cipher) dan kunci (key). Cipher adalah fungsi matematika yang digunakan untuk mengenkripsi dan mendekripsi. Sedangkan kunci merupakan sederetan bit yang diperlukan untuk mengenkripsi dan mendekripsi data.

Cryptographic system atau cryptosystem adalah suatu fasilitas untuk mengkonversikan plaintext ke ciphertext dan sebaliknya. Dalam sistem ini, seperangkat parameter yang menentukan transformasi pencipheran tertentu disebut suatu set kunci. Proses enkripsi dan dekripsi diatur oleh satu atau beberapa kunci kriptografi. Secara umum, kunci-kunci yang digunakan untuk proses pengenkripsian dan pendekripsian tidak perlu identik, tergantung pada sistem yang digunakan.

Secara umum operasi enkripsi dan dekripsi dapat diterangkan secara matematis sebagai berikut :

EK (M) = C (Proses Enkripsi)

DK (C) = M (Proses Dekripsi)

Pada saat proses enkripsi kita menyandikan pesan M dengan suatu kunci K

lalu dihasilkan pesan C. Sedangkan pada proses dekripsi, pesan C tersebut diuraikan dengan menggunakan kunci K sehingga dihasilkan pesan M yang sama seperti pesan sebelumny.

Dengan demikian keamanan suatu pesan tergantung pada kunci ataupun kunci-kunci yang digunakan, dan tidak tergantung pada algoritma yang digunakan. Sehingga algoritma-algoritma yang digunakan tersebut dapat dipublikasikan dan dianalisis, serta produk-produk yang menggunakan algoritma

Enkripsi Dekripsi

Plaintext Ciphertext Plaintext


(34)

tersebut dapat diproduksi massal. Tidaklah menjadi masalah apabila seseorang mengetahui algoritma yang kita gunakan. Selama ia tidak mengetahui kunci yang dipakai, ia tetap tidak dapat membaca pesan.

Algoritma Kriptografi

Berdasarkan kunci yang dipakai, algoritma kriptografi dapat dibedakan atas dua golongan, yaitu :

a. Symmetric Algorithms

Algoritma kriptografi simetris atau disebut juga algoritma kriptografi konvensional adalah algoritma yang menggunakan kunci untuk proses enkripsi sama dengan kunci untuk proses dekripsi.

Algoritma kriptografi simetris dibagi menajdi 2 kategori yaitu algoritma aliran (Stream Ciphers) dan algoritma blok (Block Ciphers). Proses penyandiannya pada algoritma aliran berorientasi pada satu bit atau satu byte

data. Adapun proses penyandiannya pada algoritma blok, berorientasi pada sekumpulan bit atau byte data (per blok). Contoh algoritma kunci simetris yang terkenal adalah DES (Data Encryption Standard) dan AES (Advanced Encryption Standard).

b. Asymmetric Algorithms

Algoritma kriptografi asimetris adalah algoritma yang menggunakan kunci yang berbeda untuk proses enkripsi dan dekripsinya (Gambar 6). Algoritma ini disebut juga algoritma kunci umum (public key algorithm) karena kunci untuk enkripsi dibuat umum (public key) atau dapat diketahui oleh setiap orang, tapi kunci untuk dekripsi hanya diketahui oleh orang yang berwenang mengetahui data yang disandikan atau sering disebut kunci pribadi (private key). Contoh algoritma terkenal yang menggunakan kunci asimetris adalah RSA, SHA dan ECC.

Gambar 6 Proses enkripsi dan dekripsi public key cryptography.

Enkripsi Dekripsi

Plaintext Ciphertext Plaintext


(35)

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.


(36)

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


(37)

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


(38)

fungsi hash yang identik dengan pengirim. Jika message digest identik dengan

message digest yang dikirim sebagai bagian dari tanda tangan, maka pesan tidak dimodifikasi.

SHA

Menurut Munir (2004), Secure Hash Algorithm (SHA) adalah fungsi hash

satu-arah yang dibuat oleh NIST dan digunakan bersama Digital Signature Standard (DSS). Oleh NSA, SHA dinyatakan sebagai standar fungsi hash satu-arah. SHA didasarkan pada MD4 yang dibuat oleh Ronald L. Rivest dari MIT. Fungsi hash yang paling umum digunakan adalah SHA-1. SHA 1 adalah revisi terhadap SHA yang dipublikasikan pada tahun 1994. Revisi ini mengkoreksi cacat SHA yang tidak dipublikasikan. Desainnya mirip dengan keluarga fungsi hash

MD4 yang dikembangkan oleh Rivest. Algoritmanya mengambil pesan yang panjangnya kurang dari 64-bit dan menghasilkan message digest 160-bit. Algoritma ini lebih lambat daripada MD5, namun message digest yang lebih besar membuatnya semakin aman dari brute-force collision dan serangan inversi.

Langkah-langkah pembuatan message digest dengan SHA-1adalah 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.

Gambar 7 Penggunaan tanda tangan digital untuk validasi integritas data. (Sumber: Yolanda 2007)


(39)

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).


(40)

Menurut Talin (2010), teknologi VPN menyediakan tiga fungsi utama untuk penggunaannya. Ketiga fungsi utama tersebut antara lain sebagai berikut. 1. Confidentially (Kerahasiaan)

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

2. Data Integrity (Keutuhan data)

Ketika melewati jaringan internet, sebenarnya data telah berjalan sangat jauh melintasi berbagai negara. Pada saat perjalanan tersebut, berbagai gangguan dapat terjadi terhadap isinya, baik hilang, rusak, ataupun dimanipulasi oleh orang yang tidak seharusnya. Pada VPN terdapat teknologi yang dapat menjaga keutuhan data mulai dari data dikirim hingga data sampai di tempat tujuan.

Gambar 8 Ilustrasi VPN


(41)

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.

Gambar 9 Siklus hidup sistem keamanan.

1. Ancaman (threats)

2. Kebijakan (policy)

5. Implementasi (implementation) 4. Disain

(design) 3. Spesifikasi (specification)

6. Operasi dan Pemeliharaan (operation &


(42)

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.


(43)

METODE PENELITIAN

Penelitian dilakukan dengan pendekatan sistem yang mengikuti tahapan penelitian seperti tersaji pada diagram (Gambar 10) berikut ini.

Tahapan Penelitian

Pengujian dan analisis

Kesimpulan dan saran Analisis

kebutuhan

Perumusan masalah

Penetapan tujuan penelitian

Persiapan

Penetapan asumsi awal yang mendukung protokol

Studi literatur Wawancara dan diskusi dengan pakar Pembatasan

masalah

Penelitian Awal

Identifikasi kebutuhan dasar untuk protokol keamanan

Penentuan spesifikasi yang sesuai Identifikasi ancaman keamanan

Penetapan kebijakan keamanan

Implementasi disain protokol Pembuatan rancangan protokol

sesuai spesifikasi

Siklus hidup sistem keamanan Bishop

Gambar 10 Diagram alur tahapan penelitian


(44)

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


(45)

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.


(46)

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


(47)

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).

Gambar 11 Arsitektur jaringan pada Sistem Ujian Online (SUO).

Setiap proses komunikasi melibatkan data-data penting yang harus dijaga keamanannya, yaitu:

- Data Registrasi Ujian Online

Data registrasi awal yaitu NIM (Nomor Induk Mahasiswa), akan digunakan sebagai user id. Kemudian pada saat melakukan proses registrasi, seorang mahasiswa peserta ujian akan mendapat password tertentu. Data registrasi tersebut (user id dan password), selanjutnya digunakan sebagai identitas untuk

Computer Computer

Database


(48)

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).


(49)

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 masing-masing pihak harus merupakan data yang benar, yang berasal dari pihak pengirim yang benar.

Oleh karena itu, hanya pengguna yang valid yang dapat mengakses SUO ini. Kebutuhan otentikasi dipenuhi dengan diberikan dengan menambahkan nonce

dan nilai hash pada kunci simetri dari setiap entitas. Penambahan nonce untuk memastikan bahwa komunikasi hanya dilakukan pada entitas yang benar dan komunikasi lama tidak dapat digunakan ulang dalam serangan balasan (replay attacks).Dalam hal ini akan dapat dideteksi pula jika muncul entitas ganda.


(50)

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.


(51)

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


(52)

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.


(53)

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.


(54)

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, SUOmembutuhkan 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.


(55)

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.


(56)

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.


(57)

33

Selanjutnya dapat dilihat hubungan clientserver yang terjadi pada proses komunikasi data pada Gambar 12 diatas, melalui diagram alur pada Gambar 13 dibawah ini.

Client

1. Registrasi ujian online

Server

Registrasi

2. Validasi data registrasi

Client

3. Login ujian

Server SUO

4. Otentikasi client

Client

5. Permintaan soal ujian

Server SUO

6. Preparing dan generate

naskah

Client

7. Kirim hasil ujian

Server SUO

8. Validasi hasil ujian client

Data valid? Data valid?

Data valid? 0. Mulai 9. Selesai Ya Ya Ya Tidak Tidak Tidak Ujian

Gambar 13 Diagram alur komunikasi protokol keamanan data pada SUO. Gambar 12 Skema komunikasi data pada SUO.

1. User request

2. Validasi data

Client Server Registrasi 3. Login Server SUO Client 4. Otentikasi client

7. Kirim Hasi Ujian

Server SUO Client

8. Otentikasi client 5. Request ujian

Server SUO Client

6. Preparing & generate naskah


(58)

Alur Komunikasi Protokol Ujian Online

Alur komunikasi protokol untuk ujian online berdasarkan Gambar 13 memiliki deskripsi langkah-langkah komunikasi seperti berikut:

1 Proses Registrasi

Langkah-langkah komunikasi yang dilakukan untuk memenuhi protokol pada proses registrasi adalah:

a Mahasiswa (client) meminta untuk melakukan proses registrasi melalui server

Registrasi.

b Client dan server Registrasi generate kunci publik dan kunci privat masing-masing. ServerRegistrasi kemudian mengirimkan kunci publik (“reg.pub”) ke client, demikian pula sebaliknya.

c Client memasukkan data NIM (user id) sebagai bukti identitas. Client

men-generate kunci simetri sebagai session key.

d Client mengirim data NIM dan kunci simetri yang ditambah dengan nilai

nonce dan dienkripsi dengan kunci publik server Registrasi (“reg.pub”) ke

server Registrasi untuk divalidasi.

e Server Registrasi melakukan validasi terhadap data registrasi (NIM) yang dikirim oleh client.

f Server Registrasi akan mendekripsi pesan dari client sehingga didapat NIM dan kunci simetri serta membaca nilai nonce, kemudian mencari data NIM yang telah tersimpan di server Registrasi dan membandingkan dengan data NIM yang dikirim oleh client.

g Jika datanya ada dan cocok, maka server Registrasi akan men-generate password secara random. Jika datanya tidak ada atau tidak cocok, maka proses registrasi akan dihentikan.

h Selanjutnya dicari nilai hash dari NIM, beserta nilai nonce+1 dengan SHA-1, kemudian nilai hash dan password dienkripsi dengan kunci simetri untuk dikirim ke client.

i Server Registrasi mengirim kunci simetri ke client setelah dienkripsi dengan kunci publik client(”mhs.pub”).


(59)

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.

Gambar 14 Alur komunikasi proses registrasi. Client membaca kunci

publik server Registrasi

Client memasukkan data NIM dan generate kunci

simetri Blowfish

Server Registrasi mendekripsi data NIM dan kunci simetri dengan kunci privat dan membaca nonce

Server Registrasi mencari nilai hash dari NIM dengan

SHA-1 dan nonce+1 Client mendekripsi kunci

simetri dengan kunci privat server Registrasi dan mendekripsi pesan dengan kunci simetri

1. Kunci publik client

2. Kunci publik Server Registrasi

3. Data NIM dan kunci simetri Blowfish + nonce yang telah dienkripsi dengan kunci publik server Registrasi

Client Server Registrasi

Server Registrasi membandingkan data NIM apakah cocok dengan data

yang ada di server Registrasi. Jika cocok, maka generate password 4. Nilai hash dari NIM & password

yang dienkripsi dengan kunci simetri dan kunci simetri yang dienkripsi dengan kunci publik server Registrasi

Client generate kunci publik dan kunci privat

Server Registrasi generate kunci publik dan kunci privat

Server Registrasi terima kunci publik client

Client memeriksa keutuhan pesan dari server Registrasi dengan membaca nilai hash dan otentikasi pesan dengan


(60)

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


(1)

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())


(2)

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-reg-pubkey : "+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-reg-pubkey : "+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;


(3)

FileWrite(li_FileNum, "kirim password : "+String(Now(), "hh:mm:ss:ffff"))


(4)

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)


(5)

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


(6)

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)