ANALISIS DAN PENGEMBANGAN SISTEM TABULASI CTF BERBASIS PROTOKOL TWO CENTRAL FACILITIES
BOYKE FADHLIY
DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR 2009
ANALISIS DAN PENGEMBANGAN SISTEM TABULASI CTF BERBASIS PROTOKOL TWO CENTRAL FACILITIES
BOYKE FADHLIY
Skripsi Sebagai salah satu syarat untuk memperoleh gelar Sarjana Komputer pada Departemen Ilmu Komputer Fakultas Matematika dan Ilmu Pengetahuan Alam Institut Pertanian Bogor
DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR 2009
ii
ABSTRACT
BOYKE FADHLIY. Analysis and Development of Tabulation System Two Based on Central Facilities Protocol. Under the supervision of SUGI GURITMAN An Elections is a form of democracy by which a society appreciate freedom to vote. In many countries such as Indonesia elections are still held conventionally. The Elections that Indonesia has just held to choose a leaders of state and nation are still requiring a very large cost and other strategic resources such as human resources, place, and time. One solution that can reduce this problem is by holding online voting. However, as the conventional election, this online voting system cannot be completely free from all forms of cheating threats that may occur. Therefore, the system which will be built should fulfill secure voting requirements in order to ensure every threats can be prevented. One protocol that can fulfill most secure voting requirements and have very good security level is the Two Central Facilities Protocol. This protocol has two facilities, one of it is the Central Tabulating Facilities (CTF). CTF is the central tabulation of electoral votes which play a very important role in elections. CTF is also responsible for publishing the election results to the audience. A Good and interesting publication by CTF may also attract attention and help the audiences to understand the published message easier. Keywords: online voting, cryptographic, cryptographic protocol, Central Tabulating Facilities, Central Legitimization Agency, Two Central Facilities protocol.
Judul : Analisis dan Pengembangan Sistem Tabulasi CTF Pada Protokol Two Central Facilites Nama : Boyke Fadhliy NRP : G64050946
Menyetujui:
Pembimbing
Dr. Sugi Guritman NIP 196209271992031004
Mengetahui:
Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam Institut Pertanian Bogor
Dr. drh. Hasim, DEA NIP 196103281986011002
Tanggal Lulus:
RIWAYAT HIDUP
Penulis lahir di Lhokseumawe, Nanggroe Aceh Darussalam pada tanggal 27 Juli 1987 dari pasangan ayahanda Asra Dinata Syukur dan ibunda Amna Djasinar, SH. Penulis merupakan anak pertama dari tiga besaudara (Dek Jasmine dan Dek Ajeng). Pada tahun 2005 penulis menyelesaikan pendidikan menengah atas di SMA Swasta Yapena Lhokseumawe dan pada tahun yang sama penulis lulus seleksi masuk IPB melalui jalur Undangan Masuk Seleksi IPB (USMI). Penulis diterima sebagai mahasiswa di Departemen Ilmu Komputer Fakultas Matematika dan Ilmu Pengetahuan Alam pada tahun berikutnya. Selama mengikuti perkulian, penulis aktif di berbagai organisasi ekstra kampus di antaranya kepengurusan Himpunan Mahasiswa Ilmu Komputer Staf Divisi Programming (2006-2007) dan Unit Kegiatan Mahasiswa Catur (2006). Penulis juga aktif menjadi asisten praktikum Algoritme dan Pemrograman (2008) dan Pemrosesan Paralel (2009) Departemen Ilmu Komputer IPB. Penulis melakukan praktik kerja lapangan di Pusat Statistik Data dan Informasi Departemen Kelautan dan Perikanan. Penulis terpilih menjadi salah satu wakil IPB pada PIMNAS XXI untuk lomba Applied Programming. Penulis juga terpilih menjadi salah satu wakil pada Kejurnas Catur Mahasiswa SeIndonesia II pada bulan Juni 2009 di Jakarta.
PRAKATA Alhamdulillahirobbil’alamin, segala puji syukur penulis panjatkan ke hadirat Allah SWT atas limpahan ramat, karunia, dan hidayah-Nya sehingga penulis memperoleh kekuatan untuk menyelesaikan tugas akhir ini. Shalawat serta salam penulis haturkan kepada Nabi Besar Muhammad saw, kepada keluarga, dan sahabat-sahabatnya, semoga penulis tergolong dalam kaumnya yang akan mendapatkan syafaatnya di hari akhirat kelak. Penulis sadar bahwa tugas akhir ini tidak akan pernah terwujud bila tidak ada bantuan dari berbagai pihak. Oleh karena itu, pada kesempatan ini penulis ingin menucapkan terima kasih dan penghargaan yang setinggi-tingginya kepada: 1
Kedua orang tua tercinta: ayahanda Asra Dinata dan ibunda Amna Djasinar, SH atas limpahan doa, kasih sayang, semangat, dan pengorbanannya selama hidup penulis.
2
Saudara tersayang Dek Jasmine dan Dek Ajeng atas doa dan dukungannya.
3
Yth. Bapak Dr. Sugi Guritman selaku dosen pembimbing tugas akhir.
4
Yth. Ibu Dr. Sri Nurdiati, MSc, Bapak Ir. Julio Adisantoso, M.Kom, Ibu Yeni Herdiyeni, S.Si, M.Kom, Sony H. Wijaya, S.Kom, M.Kom, Bapak Hari Agung, S.Kom, M.Kom, Bapak Toto Haryanto, S.Kom, Mas Irvan, Pak Soleh, Pak Pendi,serta bapak dan ibu dosen lainnya atas nasehat, dukungan, dan keramahan yang senantiasa mengisi hari-hari penulis di Departemen Ilmu Komputer FMIPA.
5
Orang tua kedua: Oom Mursyid Lubis dan Tante Ade Mina Karmina serta putra-putranya Fariz dan Rifki atas dukungan, perhatian, dan kasih sayang yang diberikan kepada penulis.
6
Pratiwi Retno atas doa, dukungan, dan keceriaan yang senantiasa mengisi hari-hari penulis.
7
Fajri, Medri, dan Dina teman satu bimbingan atas dukungan, masukan, dan sarannya.
8
Teman-teman di Pondok Aa yang selalu senantiasa mengajak penulis menuju jalan yang lurus.
9
Auriza, Tanto, dan teman-teman Ilmu Komputer angkatan 42 lainnya, serta seluruh pihak yang turut membantu baik secara langsung maupun tidak langsung.
Penulis sangat menyadari bahwa dalam penulisan tugas akhir ini masih terdapat banyak kekurangan dan kelemahan dalam berbagai hal karena keterbatasan kemampuan penulis. Oleh karena itu, dengan segala kerendahan hati penulis menerima masukan berupa saran atau kritik yang bersifat membangun dari pembaca demi kesempurnaan tugas akhir ini. Penulis berharap semoga tulisan ini dapat bermanfaat bagi siapapun yang membaca.
Bogor, Agustus 2009
Boyke Fadhliy
DAFTAR ISI
Halaman DAFTAR GAMBAR .......................................................................................................................... v DAFTAR LAMPIRAN ....................................................................................................................... v PENDAHULUAN .............................................................................................................................. 1 Latar Belakang .............................................................................................................................. 1 Tujuan ........................................................................................................................................... 1 Ruang Lingkup .............................................................................................................................. 1 TINJAUAN PUSTAKA ...................................................................................................................... 1 Kriptografi (Cryptography)............................................................................................................ 1 Algoritme Kriptografi .................................................................................................................... 2 Protokol Kriptografi ...................................................................................................................... 2 Kunci Simetri (Session Key) .......................................................................................................... 3 Kunci Publik (Public Key) ............................................................................................................. 3 Certificate Authority (CA) ............................................................................................................. 3 Algoritme RSA .............................................................................................................................. 3 Blowfish ........................................................................................................................................ 3 Secure Hash Algorithm (SHA)....................................................................................................... 3 Secure Voting Requirements .......................................................................................................... 4 Central Legitimization Agency (CLA) ........................................................................................... 4 Central Tabulating Facilities (CTF) ............................................................................................. 4 Protokol Two Central Facilities ..................................................................................................... 4 Java Web Start .............................................................................................................................. 5 Object Relational Map (ORM) ...................................................................................................... 5 Metode Pengujian Blackbox........................................................................................................... 5 METODE PENELITIAN .................................................................................................................... 5 Ancaman (Threat) ......................................................................................................................... 6 Kebijakan (Policy) ......................................................................................................................... 6 Spesifikasi (Specification) ............................................................................................................. 6 Perancangan (Design) .................................................................................................................... 6 Implementasi (Implementation) ..................................................................................................... 6 Pengujian....................................................................................................................................... 7 HASIL DAN PEMBAHASAN ........................................................................................................... 7 Ancaman (Threat) ......................................................................................................................... 7 Kebijakan (Policy) ......................................................................................................................... 7 Spesifikasi (Specification) ............................................................................................................. 7 Perancangan (Design) .................................................................................................................... 8 Perancangan pemilihan online dengan Java Web Start ............................................................. 8 Perancangan basis data CTF dan sistem visualisasi hasil perolehan suara ................................. 8 Implementasi (Implementation) ..................................................................................................... 9 Implementeasi pemilihan online dengan Java Web Start .......................................................... 9 Implementasi basis data CTF dan sistem visualisasi hasil perolehan suara ................................ 9 Pengujian....................................................................................................................................... 9 KESIMPULAN DAN SARAN ........................................................................................................... 9 Kesimpulan ................................................................................................................................... 9 Saran ........................................................................................................................................... 10 DAFTAR PUSTAKA ....................................................................................................................... 10 LAMPIRAN ..................................................................................................................................... 11
DAFTAR GAMBAR
Halaman
1 2 3 4 5 6 7
Skema umum enkripsi dan dekripsi. .............................................................................................. 2 Skema enkripsi dan dekripsi dengan kunci ................................................................................. 2 Skema pengujian blackbox............................................................................................................. 5 Skema Security Life Cycle. ............................................................................................................ 6 Arsitektur infrastrukur jaringan wireless pemilihan online. ............................................................ 8 ERD Sistem IPB Online Voting. .................................................................................................... 8 Visualisasi hasil pemilihan terkini pada sistem IPB Online Voting. ................................................ 9
DAFTAR LAMPIRAN
Halaman 1 Skema pemilihan dengan Two Central Facilities ............................................................................ 12 2 Tabel basis data CTF ...................................................................................................................... 12 3 Hasil pengujian sistem IPB Online Voting dengan metode blackbox testing ................................... 12
v
PENDAHULUAN Latar Belakang Pemilihan umum (pemilu) merupakan suatu bentuk demokrasi yang mencerminkan masyarakat yang menghargai kebebasan untuk memilih. Pemilu yang baru saja kita laksanakan untuk memilih pemimpin bangsa dan negara kita, masih diadakan dengan cara konvensional. 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. Salah satu solusi agar dapat menekan sumber daya yang sangat besar tersebut yaitu dengan mengadakan pemilu secara online. Pemilu secara online sudah dilakukan di sebagian negara maju di dunia. 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 pemilihan suaranya. Seperti halnya pemilu konvensional, pemilu yang diadakan secara online pun tidak akan lepas dari berbagai ancaman kecurangan yang dapat terjadi. Oleh karena itu, sistem yang dibuat pun harus memenuhi secure voting requirements yang dipaparkan oleh Schneier (1996) agar dapat mengatasi dan menjamin bahwa setiap ancaman yang ada tidak dapat terjadi. Salah satu protokol yang dapat memenuhi sebagian besar kriteria secure voting requirements dan memiliki tingkat keamanan yang sangat baik adalah protokol Two Central Facilities. Seiring dengan kemajuan teknologi dan teknik kriptografi penyelenggaraan pemilu secara online di Indonesia, khususnya pada lingkup instansi pendidikan seperti kampus, sangat mungkin untuk diwujudkan. Pada protokol Two Central Facilities ini terdapat dua badan yang salah satunya adalah CTF. CTF berfungsi sebagai pusat tabulasi perolehan suara pada pemilu yang merupakan salah satu aspek penting pada pemilu. CTF juga bertanggung jawab untuk mempublikasikan hasil pemilu pada khalayak. Publikasi yang baik dan menarik dapat menarik perhatian serta memudahkan khalayak untuk memahami pesan yang dipublikasikan. Hal inilah yang melatarbelakangi penelitian ini untuk membangun sebuah sistem publikasi hasil perolehan suara yang baik, menarik, dan aman dari segala bentuk ancaman yang dapat terjadi.
Tujuan Tujuan umum dari penelitian ini adalah untuk mengembangkan sistem pemilihan online dengan menerapkan protokol Two Central Facilities serta menyempurnakan beberapa kekurangan pada protokol tersebut sesuai rekomendasi dari penelitian sebelumnya. Penelitian ini juga bertujuan untuk menganalisis kemungkinan penerapannya pada pemilu yang diadakan di ruang lingkup Institut Pertanian Bogor (IPB). Adapun tujuan utama dari penelitian ini adalah mengembangkan sistem publikasi hasil perolehan suara yang baik dan aman . Ruang Lingkup Ruang lingkup penelitian ini secara umum adalah mengembangkan sebuah sistem pemilihan online dengan menerapakan protokol Two Central Facilities serta menyempurnakan protokol tersebut. Ruang lingkup secara khusus yaitu difokuskan pada pengembangan basis data CTF yang aman serta membangun sistem untuk memublikasikan hasil perolehan suara.
TINJAUAN PUSTAKA Kriptografi (Cryptography) Menurut Schneier (1996), kriptografi adalah seni dan ilmu untuk menjaga kerahasiaan pesan. Empat tujuan utama dari kriptografi, yaitu: 1 Kerahasiaan (confidentiality) Kerahasiaan adalah layanan yang digunakan untuk menjaga informasi dari setiap pihak yang tidak berwenang untuk mengaksesnya. Dengan demikian informasi hanya akan dapat diakses oleh pihak-pihak yang berhak saja. 2 Keutuhan (integrity) Integritas data merupakan layanan yang bertujuan untuk mencegah terjadinya pengubahan informasi oleh pihak-pihak yang tidak berwenang. Untuk meyakinkan integritas data ini harus dipastikan agar sistem informasi mampu mendeteksi terjadinya manipulasi data. Manipulasi data yang dimaksud di sini meliputi penyisipan, penghapusan, maupun penggantian data. 3 Otentikasi (authentication) Otentikasi merupakan layanan yang terkait dengan identifikasi terhadap pihak-pihak yang ingin mengakses sistem informasi (entity authentication) maupun keaslian data dari
sistem informasi itu sendiri (data origin authentication).
digunakan. Dengan menggunakan kunci maka fungsi enkripsi dan dekripsi menjadi:
,
4 Nir-penyangkalan (non-repudiation) Nir-penyangkalan adalah usaha untuk mencegah terjadinya penyangkalan terhadap pengiriman/terciptanya suatu informasi oleh yang mengirimkan/membuat.
dan kedua persamaan:
fungsi
tersebut .
Algoritme Kriptografi Suatu pesan yang tidak disandikan disebut sebagai plaintext atau cleartext, sedangkan suatu pesan yang disandikan disebut chipertext. Proses yang dilakukan untuk mengubah plaintext ke dalam ciphertext disebut encryption atau enciphering, sedangkan proses untuk mengubah ciphertext kembali ke plaintext disebut decryption atau deciphering. Algoritme kriptografi merupakan aturan untuk enchipering dan dechipering dan dapat ditulis dalam suatu bentuk fungsi matematika yang digunakan untuk enkripsi dan dekripsi. Dasar matematis yang mendasari proses enkripsi dan dekripsi adalah relasi antara dua himpunan, yaitu yang berisi elemen teks terang/plaintext dan yang berisi elemen teks sandi/ciphertext. Enkripsi dan dekripsi merupakan fungsi transformasi antara himpunan-himpunan tersebut. Apabila elemenelemen plaintext dinotasikan dengan , elemenelemen ciphertext dinotasikan dengan , enkripsi dinotasikan dengan , dan dekripsi dengan notasi , maka rumus matematis untuk enchipering dan dechipering dapat ditulis sebagai berikut:
Dekripsi: atau . Skema proses enkripsi dan dekripsi secara umum dapat dilihat pada Gambar 1. plaintexts semula
chipertext Enkripsi
Skema proses enkripsi dan dekripsi dengan menggunakan kunci K dapat dilihat pada Gambar 2. K plaintext
K chipertext
Enkripsi
plaintexts semula
Dekripsi
Gambar 2 Skema enkripsi dan dekripsi dengan kunci Dengan demikian keamanan suatu pesan tergantung pada kunci ataupun kunci-kunci yang digunakan, dan tidak tergantung pada algoritmenya. Oleh karena itu, algoritme yang digunakan tersebut dapat dipublikasikan dan dianalisis, serta produk yang menggunakan algoritme tersebut dapat diproduksi massal. Tidaklah menjadi masalah apabila seseorang mengetahui algoritme yang kita gunakan. Selama ia tidak mengetahui kunci yang dipakai, ia tetap tidak dapat membaca pesan. Agar dapat digunakan untuk mengamankan pesan, algoritme kriptografi harus memiliki kekuatan untuk melakukan: Konfusi/pembingungan (confusion) plaintext, sehingga sulit untuk direkonstruksikan secara langsung tanpa menggunakan algoritme dekripsinya.
Enkripsi:
plaintext
memenuhi
Dekripsi
Gambar 1 Skema umum enkripsi dan dekripsi. Kunci adalah parameter yang digunakan untuk transformasi enciphering dan dechipering. 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
Difusi/peleburan (difusion) plaintext. Karakteristik dari plaintext tersebut hilang sehingga dapat digunakan untuk mengamankan informasi. Pada implementasinya, sebuah algoritme kriptografi harus memperhatikan kualitas layanan dari keseluruhan sistem dimana algoritme kriptografi tersebut diimplementasikan. Algoritme kriptografi yang handal adalah algoritme yang kekuatannya terletak pada kunci, bukan pada kerahasiaan algoritme itu sendiri (Adriana 2007). Protokol Kriptografi Suatu protokol adalah serangkaian langkah yang melibatkan dua pihak atau lebih dan dirancang untuk menyelesaikan suatu tugas 2
(Schneier 1996). Protokol memiliki beberapa karakteristik sebagai berikut: protokol memiliki urutan dari awal hingga akhir setiap langkah harus dilaksanakan secara bergiliran suatu langkah tidak dapat dikerjakan bila langkah sebelumnya belum selesai diperlukan dua pihak atau lebih untuk melaksanakan protokol protokol harus mencapai suatu hasil Selain itu, suatu protokol pun memiliki karakteristik yang lain, yaitu: setiap orang yang terlibat dalam protokol harus mengetahui terlebih dahulu mengenai protokol dan seluruh langkah yang akan dilaksanakan setiap orang yang terlibat dalam protokol harus menyetujui untuk mengikutinya protokol tidak kerancuan
boleh
menimbulkan
protokol harus lengkap Protokol kriptografi adalah suatu protokol yang menggunakan kriptografi. Protokol ini melibatkan sejumlah algoritme kriptografi, namun secara umum tujuan protokol lebih dari sekedar kerahasiaan. Pihak-pihak yang berpartisipasi mungkin saja ingin membagi sebagian rahasianya untuk menghitung sebuah nilai, menghasilkan urutan random, atau pun menandatangani kontrak secara bersamaan. Penggunaan kriptografi dalam sebuah protokol terutama ditujukan untuk mencegah atau pun mendeteksi adanya eavesdropping dan cheating. Kunci Simetri (Session Key)
Certificate Authority (CA) Fungsi utama dari Certificate Authority (CA) adalah menghasilkan, memublikasikan, dan menghapus certificate public key dari user identity, bisa personal maupun lembaga (Kurniawan 2008). Algoritme RSA Di bidang kriptografi, RSA adalah sebuah algoritme pada enkripsi public key. RSA merupakan algoritme pertama yang cocok untuk digital signature seperti halnya enkripsi, dan salah satu yang paling maju dalam bidang kriptografi public key. RSA masih digunakan secara luas dalam protokol electronic commerce, dan dipercaya dalam mengamankan informasi dengan menggunakan kunci yang cukup panjang (Adriana 2007). Blowfish Menurut Schneier (1996) Blowfish merupakan 64-bit blok sandi rahasia dengan sebuah kunci panjang variabel. Blowfish terdiri atas dua bagian: ekspansi kunci dan enkripsi data. Ekspansi kunci mengubah kunci hingga 448 bit menjadi beberapa array subkunci (subkey) dengan total 4168 byte. Blowfish dikembangkan untuk memenuhi kriteria perancangan sebagai berikut: 1 Cepat. Pada implementasi yang optimal Blowfish dapat mencapai kecepatan 26 clock cycle per byte. 2 Kompak. Blowfish dapat berjalan pada memori kurang dari 5 KB. 3 Sederhana. Blowfish hanya menggunakan operasi yang sederhana: penambahan (addition), XOR, dan penelusuran tabel (table lookup) pada operand 32 bit. Desainnya mudah untuk dianalisis yang membuatnya resisten terhadap kesalahan implementasi.
Kunci simetri (session key) adalah kunci yang dirancang sedemikian sehingga kunci yang digunakan untuk enkripsi sama dengan kunci yang digunakan pada proses dekripsi (Schneier 1996).
4 Keamanan yang variabel. Panjang kunci Blowfish dapat bervariasi dan dapat mencapai 448 bit (56 byte).
Kunci Publik (Public Key)
SHA adalah salah satu algoritme fungsi hash kriptografi. Fungsi hash adalah fungsi yang secara efisien mengubah string input dengan panjang berhingga menjadi string output dengan panjang tetap yang disebut nilai hash.
Kunci publik adalah kunci yang dirancang sedemikian sehingga kunci yang digunakan untuk enkripsi berbeda dengan kunci yang digunakan pada proses dekripsi (Schneier 1996).
Secure Hash Algorithm (SHA)
Fungsi hash kriptografis adalah fungsi hash yang memiliki beberapa sifat keamanan tambahan sehingga dapat dipakai untuk tujuan 3
keamanan data. Umumnya digunakan untuk keperluan otentikasi dan integritas data (Adriana 2007). Secure Voting Requirements Menurut Schneier (1996), pemilihan yang dilakukan secara komputerisasi dapat digunakan jika terdapat protokol yang menjamin: 1 Privasi individu
c Menerima permintaan secure vote dari pemilih yang berwenang (dengan validation ID). d Secara aman mengembalikan nama kandidat terpilih sebagai verifikasi atas permintaan pemilih. e Mengizinkan pemilih untuk sertifikasi hasil pemilihan.
2 Pencegahan terhadap kecurangan Suatu protokol yang ideal memiliki enam persyaratan sebagai berikut: 1 Hanya pemilih yang berhak yang dapat memberikan suara 2 Tidak boleh memberikan lebih dari satu suara 3 Tidak boleh menentukan orang lain harus memilih untuk siapa 4 Tidak ada yang bisa menduplikasi suara orang lain 5 Tidak boleh mengubah pilihan orang lain 6 Setiap pemilih dapat memastikan bahwa suara mereka sudah dikirimkan dan terhitung dalam penghitungan akhir. Central Legitimization Agency (CLA) CLA merupakan sebuah badan yang bertugas untuk melakukan sertifikasi pemilih. Fungsi utama CLA adalah untuk melakukan otentikasi dan otorisasi pemilih. Setiap pemilih akan mengirim sebuah pesan aman kepada CLA untuk meminta sebuah validation ID. CLA akan membangkitkan validation ID, kemudian mendaftarkannya secara aman kepada Central Tabulating Facilities, lalu mengembalikannya secara aman kepada pemilih. Validation ID bernilai kompleks sehingga secara komputasi tidak dimungkinkan seorang penyerang untuk memproduksi sebuah ID yang valid. CLA memiliki daftar sejumlah validation ID yang valid serta daftar identifikasi pemilih dari setiap validation ID untuk mencegah seseorang memiliki lebih dari satu validation ID (DuFeu & Harris 2001). Central Tabulating Facilities (CTF) CTF merupakan suatu badan yang bertugas melakukan penghitungan suara. CTF menyediakan beberapa fungsionalitas sebagai berikut: a Mengizinkan pengguna untuk sertifikasi daftar kandidat.
b Menerima secure validation ID yang telah disertifikasi dan ditandatangani dari CLA.
meminta
meminta
Dalam rangka otorisasi pemilih, CTF melakukan pengecekan validation ID dengan daftar yang diterima dari CLA. Jika validation ID valid maka suara pemilih akan dimasukkan ke dalam kotak suara (DuFeu & Harris 2001). Protokol Two Central Facilities Pemilihan menggunakan protokol Two Central Facilities dilakukan dengan membagi CTF dan CLA menjadi dua badan yang terpisah. Menurut Sireesha dan Chakchai (2005) pemilihan dengan protokol Two Central Facilities adalah sebagai berikut: 1 Setiap pemilih mengirimkan pesan kepada CLA dan meminta nomor validasi. 2 CLA mengirim nomor validasi acak kepada pemilih dan menyimpan daftar setiap nomor validasi. CLA juga menyimpan sebuah daftar dari nomor validasi penerima, mengantisipasi seseorang memilih dua kali. 3 CLA mengirimkan daftar nomor validasi kepada CTF. 4 Setiap pemilih memilih nomor identifikasi secara acak lalu membuat pesan dengan nomor tersebut, yaitu nomor validasi yang diperoleh dari CLA dan suaranya. Pesan ini kemudian dikirimkan kepada CTF. 5 CTF memeriksa dan membandingkan nomor validasi dengan daftar yang diterima dari CLA. Jika nomor validasi terdapat pada daftar maka nomor tersebut akan disilang untuk menghindari pemilih memilih dua kali. CTF menambahkan nomor identifikasi pada daftar pemilih yang telah memberikan suara pada kandidat tertentu dan menambahkan satu suara pada kandidat tersebut. 6 Setelah semua suara diterima, CTF memublikasikan keluaran seperti daftar nomor identifikasi dan untuk siapa suara tersebut diberikan. Skema pemilihan dengan 4
Two Central Facilities dapat dilihat pada Lampiran 1. Pada sistem ini setiap pemilih dapat melihat daftar nomor identifikasi dan mencari nomor miliknya untuk membuktikan bahwa pilihannya telah dihitung. Tentu saja semua pesan yang keluar/masuk telah dienkripsi dan ditandatangani untuk menghindari peniruan terhadap identitas orang lain atau menghindari adanya penangkapan transmisi. CTF tidak dapat memodifikasi suara karena setiap pemilih akan melihat nomor identifikasi yang dimilikinya. Jika seorang pemilih tidak berhasil menemukan nomor identifikasinya atau ditemukan nomor identifikasi pada kandidat yang tidak dipilih, pemilih akan menyadari bahwa telah terjadi kecurangan. CTF tidak dapat memanipulasi kotak penghitungan suara karena kegiatan tersebut berada dalam pengawasan CLA. CLA mengetahui berapa banyak pemilih yang telah terdaftar serta nomor validasinya, dan akan mendeteksi jika terdapat modifikasi. CLA dapat menyatakan pemilih yang tidak memiliki hak pilih. CLA juga dapat mengawasi pemilih yang melakukan kecurangan seperti memilih lebih dari satu kali. Hal ini dapat diantisipasi dengan cara menerbitkan daftar pemilih yang telah disertifikasi. Jika nomor pemilih dalam daftar tidak sama dengan jumlah suara, dicurigai telah terjadi kesalahan atau kecurangan. Sebaliknya jika jumlah peserta yang ada pada daftar lebih banyak dari hasil tabulasi artinya beberapa pemilih tidak menggunakan hak suaranya. Java Web Start Java Web Start menyediakan kekuatan dalam menampilkan fitur lengkap aplikasi Java dalam satu kali klik. Pengguna dapat mengunduh dan menampilkan aplikasi, seperti tampilan sistem yang lengkap atau komunikasi klien dalam internet tanpa prosedur instalasi yang rumit. Sekali pengguna mengakses Java Web Start, aplikasi akan terintegrasi dengan desktop pengguna. Sebagai tambahan, Java Web Start juga dapat melayani pengguna dengan mengatur versi Java Runtime Environment dan secara otomatis melakukan pembaharuan versi aplikasi (Sun Microsystem 2005). Object Relational Map (ORM)
kode aplikasi maupun daerah objek dari yang mendasari model data dan rincian akses data (Wesley 2003). Metode Pengujian Blackbox Pengujian blackbox berfokus pada persyaratan fungsional perangkat lunak yang memungkinkan perekayasa perangkat lunak (analis) mendapatkan serangkaian kondisi input yang sepenuhnya menggunakan semua persyaratan fungsional untuk suatu aplikasi. Pengujian blackbox merupakan pendekatan komplementer yang kemungkinan besar mampu menemukan kesalahan dalam kategori sebagai berikut: fungsi-fungsi yang tidak benar atau hilang, kesalahan antarmuka, kesalahan dalam struktur data atau akses basis data eksternal, kesalahan kinerja, dan inisialisasi dan (Pressman 2001).
kesalahan
Ilustrasi dari metode pengujian diilustrasikan pada Gambar 3. Input data Ic
terminasi blackbox
Input yang menyebabkan hasil yang menyimpang
Sistem
Keluaran Oc hasil tes
Hasil keluaran
Gambar 3 Skema pengujian blackbox.
METODE PENELITIAN Penelitian ini dikembangkan dengan metode Security Life Cycle yang diperkenalkan oleh Bishop (2003). Metode penelitian ini terdiri atas beberapa tahap, yaitu: (1) ancaman, (2) kebijakan, (3) spesifikasi, (4) perancangan, (5) implementasi, serta (6) operasi dan pemeliharaan seperti yang ditunjukkan pada Gambar 4. Pada penelitian ini tahap akhir atau tahap operasi dan pemeliharaan tidak dilakukan karena keterbatasan waktu penelitian.
ORM merupakan enkapsulasi pemetaan antara domain objek dan data yang berhubungan dalam satu komponen. Sebuah objek atau peta hubungan memisahkan baik
5
Threats
Policy
Spesification
Design
Implementation
Operation and Maintenance
Gambar 4 Skema Security Life Cycle. Ancaman (Threat) Sebuah ancaman (threats) adalah kekerasan potensial dalam suatu sistem keamanan. Pada sistem ini, banyak serangan yang dapat mengancam pertukaran informasi yang dikirim dan atau diterima oleh pemilih dari dan server. Peran kriptografi dalam hal ini sangat dibutuhkan untuk melindungi sistem, termasuk pada saat hasil suara pemilih dikirim dan disimpan ke server CTF. Oleh karena itu, sistem dikembangkan dipersiapkan agar mampu mengatasi setiap ancaman yang dapat terjadi. Pada penelitian ini, ancaman-ancaman yang dapat terjadi dibagi ke dalam empat kelas, yaitu: 1 Disclosure, yakni pengaksesan informasi oleh pihak yang tidak berwenang. 2 Deception, yakni penerimaan data yang tidak benar. 3 Disruption, yakni gangguan atau pencegahan terhadap operasi yang benar. 4 Usurpation, yakni pengaturan beberapa bagian dari sistem oleh pihak-pihak yang tidak berwenang. Kebijakan (Policy) Kebijakan keamanan adalah pernyataan atas apa yang diperbolehkan dan tidak diperbolehkan dalam menjalankan sebuah sistem. Metode, alat, atau prosedur untuk melaksanakan kebijakan keamanan tersebut dinamakan mekanisme keamanan. Sistem pemilu yang rentan terhadap serangan keamanan tentu membutuhkan kebijakan tentang hal-hal yang diperbolehkan dan tidak diperbolehkan dalam proses penyelenggaraan pemilu secara online.
Spesifikasi (Specification) Spesifikasi merupakan pernyataan baik formal maupun informal mengenai fungsi sistem yang diinginkan (Bishop 2003). Setelah kebijakan terbentuk, langkah selanjutnya adalah menentukan spesifikasi sistem. Sistem ini membutuhkan berbagai macam spesifikasi keamanan agar dapat menjalankan mekanisme keamanannya dengan baik sesuai dengan kebijakan yang telah dibentuk. Spesifikasi yang digunakan pada penelitian ini merupakan spesifikasi informal yang menjelaskan setiap fungsi yang dikerjakan sistem agar dapat menjalankan kebijakan. Perancangan (Design) Pada tahap ini setiap spesifikasi akan diterjemahkan menjadi komponen-komponen yang dapat diimplementasikan. Perancangan dikatakan sesuai dengan spesifikasi jika dalam setiap kondisi, rancangan yang telah dibuat tidak mengizinkan sistem untuk melanggar spesifikasi. Perancangan sistem ini mencakup pengembangan sistem komunikasi antara pemilih dan CTF, dari mulai perancangan proses pengiriman kunci hingga proses pengiriman suara pemilih menuju CTF agar lebih aman. Oleh karena sistem ini semula dikembangkan berbasis desktop, maka pada penelitian ini juga dirancang perubahan sistem dari basis desktop ke basis web dengan menggunakan teknologi Java Web Start. Perancangan sistem juga mencakup pembuatan visualisasi atau publikasi hasil pemilihan suara pada CTF. Implementasi (Implementation) Pada tahap ini hasil analisis dan perancangan akan diimplementasikan menjadi sistem dengan lingkungan implementasi sebagai berikut: 1 Platform: Java 1.4 (platform independent and inbuilt security features). 2 GUI: Java Swing. 3 RSA (2048 bits): enkripsi kunci publik. 4 BlowFish (56 bits): enkripsi kunci simetri. 5 SHA-1 (160 bits): signature/hashing. 6 CA: transmisi kunci publik secara aman. 7 TopLink: pemodelan ORM yang digunakan untuk komunikasi data antara sistem dan basis data CTF.
6
Pengujian Tahap ini ditujukan agar dapat mendeteksi kesalahan serta memastikan hasil keluaran apakah sesuai dengan yang diharapkan. Pengujian pada penelitian ini dilakukan dengan menerapkan metode blackbox dan simulasi yang dilakukan di lingkungan kampus IPB.
HASIL DAN PEMBAHASAN Ancaman (Threat) Sebuah sistem keamanan dipersiapkan agar mampu melindungi sistem dari segala ancaman yang mungkin terjadi. Pada penelitian ini, beberapa ancaman yang mungkin terjadi di antaranya: 1 Modifikasi atau pergantian merupakan pengubahan informasi yang dilakukan oleh pihak yang tidak berwenang. Ancaman ini pada ahirnya mengarah ke dalam kelas deception. Ancaman modifikasi yang mungkin terjadi dalam sistem tabulasi CTF adalah: Hasil pilihan yang dikirimkan oleh pemilih diganti oleh pihak yang tidak berwenang sehingga pilihan pemilih tidak lagi sama. Nama ataupun jumlah suara kandidat pada basis data diubah oleh pihak yang tidak berwenang. Ancaman ini dapat terjadi jika penyerang dapat masuk atau mendapatkan akses penuh untuk mengubah basis data. 2 Penyamaran (masquering) yaitu peniruan terhadap suatu entitas terhadap entitas yang lain. Ancaman ini akan mengumpan korban agar percaya bahwa entitas yang berkomunikasi dengannya adalah pihak yang benar, meski pada kenyataannya pihak tersebut adalah penyerang (attacker) yang bukan merupakan pihak yang berwenang. Sebagai contoh saat pemilih akan mengirimkan hasil pilihan ke sitem untuk disimpan pada basis data CTF, pihak yang menerima kunci tersebut bukanlah CTF melainkan server lain yang mengaku sebagai CTF. Konsep otentikasi dapat digunakan untuk mencegah serangan ini. Penyamaran termasuk ancaman dalam kelas deception dan usurpation. Kebijakan (Policy) Kebijakan untuk menjalankan pemilihan online dalam penelitian ini mengacu pada
secure voting requirements yang dipaparkan oleh Schneier (1996). Kebijakan tersebut merupakan kebijakan yang memiliki protokol yang dapat menjamin privasi individu serta pencegahan terhadap segala bentuk kecurangan pada pemilihan online. Spesifikasi (Specification) Sistem pengiriman suara pemilih menuju CTF yang dikembangkan diharapkan dapat memenuhi spesifikasi umum sebagai berikut: Hanya pemilih yang sah yang dapat memberikan suara (otentikasi). » Terdapat validation ID yang acak dan unik untuk setiap pemilih. » Secara komputasional infeasible untuk seorang penyerang untuk menebak pasangan kunci dan validation ID yang valid. » Hanya CTF yang dapat memasukkan hasil pilihan. Tidak boleh menentukan orang lain harus memilih untuk siapa. » Semua transaksi aman dan ditandatangani agar mencegah orang lain dapat menangkap pesan. Tidak boleh memberikan lebih dari satu suara. » Jika pemilih telah melakukan pemilihan dan kembali melakukan pemilihan, maka CTF akan mengembalikan pesan “Telah terjadi duplikasi suara”. CTF tidak mengetahui validation ID pemilih namun hanya nilai hash yang dihasilkan oleh validation ID tersebut. Hal ini menyebabkan CTF dapat mengetahui jika terjadi duplikasi. Tidak ada yang bisa menduplikasi suara orang lain. » Diasumsikan bahwa terdapat saluran aman lain untuk mengirim pengguna dan password secara langsung untuk setiap pemilih, sehingga orang lain selain pemilih yang dimaksud tidak dapat mengetahui password pemilih lain. Tidak boleh mengubah pilihan orang lain » Diberikan validation ID yang unik dan aman sehingga orang lain tidak dapat mengganti pilihan pemilih lain termasuk CTF.
7
Setiap pemilih dapat memastikan bahwa suara mereka sudah dikirimkan dan terhitung dalam penghitungan akhir. » Jika seorang pemilih memasukkan pilihan, CTF akan menghitung kandidat yang telah dipilih oleh pemilih dan mengembalikan hasil penghitungan sementara. Hal ini menyebabkan pemilih dapat memastikan bahwa pilihannya benar telah dihitung oleh CTF. Secara khusus spesifikasi tambahan yang dikembangkan dalam penelitian ini adalah bahwa pemilih dapat melihat hasil perhitungan suara terkini dari setiap kandidat. Perancangan (Design) Perancangan pemilihan online dengan Java Web Start Sistem dirancang dengan topologi jaringan star dimana komunikasi antara pemilih, CLA, dan CTF dijembatani oleh wireless acces point seperti yang ditunjukkan oleh Gambar 5. Perancangan Java Web Start dimulai dengan memisahkan CLA dan CTF menjadi dua server yang berbeda dan mendistribusian kunci-kunci kepada pemilih, CLA, dan CTF. Pada penelitian sebelumnya sistem diimplementasikan untuk single host sehingga kunci-kunci milik pemilih, CLA, dan CTF berada pada satu berkas yang sama. Pada penelitian ini, sistem dikembangkan agar dapat diimplementasikan menjadi multiple host. Oleh karena itu, sistem dikonversi dari sistem berbasis desktop menjadi basis web dengan menggunakan teknologi Java Web Start agar dapat mempermudah pemilih dalam menjalankan sistem ini. CLA yang berfungsi untuk memverifikasi pemilih bertindak sebagai server pertama sehingga file sistem pemilihan online yang harus diunduh oleh pemilih ditempatkan di server CLA.
CLA
CTF
Wireless Access Point
voter
voter
voter
Gambar 5 Arsitektur infrastrukur jaringan wireless pemilihan online.
Perancangan basis data CTF dan sistem visualisasi hasil perolehan suara Basis data CTF berfungsi untuk menyimpan data dari file CTF.candidate-vote yang akan digunakan untuk menampilkan hasil perolehan suara terkini pada halaman utama IPB Online Voting Centre. Basis data CTF dirancang dengan menggunakan basis data relational dan menerapkan design pattern object relational map (ORM) untuk mengaksesnya. Tabel yang terdapat pada basis data dibentuk menjadi objek yang dapat diakses dari suatu model kelas tertentu. Hasil analisis perancangan konseptual basis data CTF ini hanya memiliki satu entitas, yaitu candidatevote yang merepresentasikan jumlah suara suatu kandidat seperti yang terlihat pada Tabel 1. Selanjutnya ERD dari basis data CTF dapat dilihat pada Gambar 6. Tabel 1 Perancangan konseptual basis data CTF Nama Entitas candidatevote
IPB Online Voting
Atribut
Deskripsi
ID, candidate, vote
Informasi mengenai jumlah suara kandidat N
Memiliki
candidatevote
1
Gambar 6 ERD Sistem IPB Online Voting. Perancangan model fisik dilakukan dengan mengimplementasikan ERD pada model logik ke dalam tabel yang bersesuaian. Tabel basis data CTF dapat dilihat pada Lampiran 2. Basis data CTF juga dirancang agar hanya entitas tertentu saja yang dapat mengaksesnya, dalam hal ini hanya situs IPB Online Voting Centre, serta akses ke basis datanya juga dibatasi hanya untuk perintah select dan update saja. Hal ini ditujukan agar pihak yang tidak berwenang (attacker) tidak dapat masuk ke basis datanya. Kalaupun attacker berhasil mengakses basis data CTF ini, untuk menanggulangi ancaman modifikasi ia juga dirancang sedemikian sehingga seluruh isi tabel akan diperbaharui berdasarkan file CTF.candidate-vote ketika sistem akan memperbaharui hasil perolehan suara. File CTF.candidate-vote ini digunakan untuk menyimpan hasil perolehan suara dan berada di dalam sistem CTF sehingga aman dari segala ancaman oleh pihak yang tidak berwenang. Oleh karena itu, jika pun ada yang merubah isi dari basis data CTF, baik nama kandidat ataupun hasil perolehan suaranya, ia 8
akan digantikan kembali dengan data yang sebenarnya berdasarkan file tersebut.
Implementasi basis data CTF dan sistem visualisasi hasil perolehan suara
Sistem CTF ini dikembangkan dengan menggunakan teknik otentikasi dengan menambahkan nounce dan nilai hash pada kunci simetri dari setiap pengguna. Hal ini bertujuan agar dapat melindungi sistem dari ancaman penyamaran oleh pihak yang tidak berhak. Oleh karena itu, hanya pengguna yang valid yang dapat mengkases server CTF.
Implementasi dari pembuatan basis data CTF menggunakan bahasa pemrograman Java dan MySQL sebagai sistem manajemen basis datanya. Visualisasi hasil pemilihan suara diimplementasikan dengan menggunakan bahasa pemrograman PHP dan untuk menampilkan diagram dari hasil pemilihan suara dibutuhkan aplikasi tambahan pada browser yaitu Adobe Flash Player.
Visualisasi hasil pemilihan suara dirancang dengan menggunakan aplikasi FusionCharts. Visualisasi hasil pemilihan terkini ditunjukkan oleh diagram pai seperti yang terlihat pada Gambar 7.
Pengujian Pengujian terhadap sistem dilakukan dengan menerapkan metode blackbox testing. Pengujian sistem dibagi ke dalam dua tahap, yaitu: 1 Tahap pengujian terhadap penggunaan Java Web Start pada sistem IPB Online Voting. Pada tahap ini sistem diuji apakah sudah berjalan dengan baik dengan protokol Two Central Facilities dan cukup stabil jika digunakan dalam suatu jaringan.
Gambar 7 Visualisasi hasil pemilihan terkini pada sistem IPB Online Voting. Implementasi (Implementation) Implementeasi pemilihan online dengan Java Web Start Sistem pemilihan online ini dikonversi dari basis desktop menjadi basis web dengan menggunakan teknologi Java Web Start dan Netbeans 6.5 sebagai IDE-nya. Pengaturan dilakukan pada properties proyek pemilihan online. Pada window tersebut dipilih menu Run dan pada field Main Class dipilih kelas utamanya yaitu Voter.java. Kelas ini dipilih karena kelas Voter mengandung semua fungsi utama yang diperlukan oleh voter untuk menjalankan sistem pemilihan online dari komputer pemilih. Selanjutnya pengaturan konfigurasi diubah menjadi Web Start. Pada saat dilakukan build pada proyek OnlineVoting, Java Web Start akan menghasilkan tiga file, yaitu file sistem bertipe jar, serta file launch bertipe html dan jnlp. File sistem bertipe jar berisi kelas UserInterface.java, Voter.java, serta keseluruhan kelas yang dibutuhkan oleh kelas Voter.java. File launch.html berisi perintah untuk menjalankan file launch.jnlp yang kemudian oleh file launch.jlnp tersebut akan menjalankan kelas Voter yang terdapat pada file Voter.jar.
2 Tahap pengujian terhadap penambahan hasil pilihan setelah pemilih melakukan pemilihan. Pada tahap ini sistem diuji apakah jumlah suara pada basis data CTF dan visualisasi hasil pemilihan ikut bertambah setelah pemilih melakukan pemilihan. Hasil pengujian selengkapnya dapat dilihat pada Lampiran 3.
KESIMPULAN DAN SARAN Kesimpulan Sistem IPB Online Voting dengan menerapkan protokol Two Central Facilities dapat memenuhi kriteria secure voting requirements serta meningkatkan efisiensi dan efektifitas perhitungan suara terkait dengan sumber daya waktu, biaya, dan manusia. Penggunaan sistem di dalam suatu jaringan juga menjadi lebih mudah dengan menggunakan teknologi Java Web Start. Sistem publikasi hasil perolehan suara yang dikembangkan cukup menarik dan informatif sehingga memudahkan pemilih untuk melihat perkembangan hasil perolehan suara. Sistem ini juga cukup aman dari ancaman-ancaman yang dapat terjadi, seperti ancaman modifikasi dan penyamaran.
9
Saran Seiring dengan berkembangnya teknologi kriptanalis maka peluang terjadinya ancaman terhadap sistem keamanan IPB Online Voting terus meningkat. Pada penelitian kali ini sistem masih memiliki kelemahan dan kekurangan yang diharapkan dapat terus dikembangkan dan diperbaiki pada penelitian selanjutnya. Rekomendasi yang dapat dilakukan untuk penelitian selanjutnya adalah: Sistem IPB Online Voting yang kini dikembangkan masih menggunakan wireless access point intern departemen dalam fakultas MIPA IPB. Hal ini mengakibatkan sistem ini hanya dapat diimplementasikan sebatas cakupan satu departemen. Pada penelitian selanjutnya akan lebih baik jika sistem ini dapat diimplementasikan dalam cakupan yang lebih luas seperti dalam jaringan seluruh kampus IPB. Perancangan basis data dan visualisasi hasil perolehan suara ini dirancang sedemikian sehingga mereka cukup aman dari segala ancaman yang mungkin terjadi saat ini. Pada penelitian selanjutnya diharapkan keamanan sistem dapat lebih ditingkatkan dengan mengeksplorasi ancaman-ancaman lainnya yang mungkin terjadi dan mengembangkan sistem agar dapat menangkal setiap ancaman tersebut. Visualisasi hasil pemilu pada penelitian ini hanya menunjukkan hasil akhir perolehan suara pada saat pemilih mengakses situs IPB Online Voting Center. Untuk penelitian selanjutnya visualisasi hasil perolehan suara akan lebih baik jika penambahan perolehan suara dari waktu ke waktu juga dapat divisualisasikan agar pemilih dapat mengetahui hasil perolehan suara dari waktu-waktu sebelumnya. Visualisasi hasil perolehan suara juga dapat dikembangkan dengan menambahkan hasil perolehan
suara dari kriteria-kriteria tertentu, misalnya: pemilih dengan jenis kelamin tertentu lebih cenderung memilih kandidat tertentu, ataupun dengan turut memublikasikan jumlah pemilih yang telah dan yang belum memilih. DAFTAR PUSTAKA [SM] Sun Microsystems. 2009. JavaTM Web Start version 1.5.0 - Frequently Asked Questions (FAQ). http://java.sun.com/j2se/ 1.5.0/docs/guide/javaws/developersguide/fa q.html#101 [3 Ags 2009]. Adriana T. 2007. Kriptografi dan Pemanfaatannya Pada RSA dan MD5. Bandung: Sekolah Teknik Elektro dan Informatika, Institut Teknologi Bandung. Bishop M. 2003. Computer Security: Art and Science. Boston: Pearson Education, Inc. DuFeu D, Harris J. 2001. Online Election System: 95.413 Project Report. Carleton University. Kurniawan A. 2008. Konsep dan Implementasi Cryptography dengan .Net. Jakarta: PT. Dian Rakyat. Pressman RS. 2001. Software Engineering: A Practitioner’s Approach. 5th Ed. New York: McGraw-Hill Companies, Inc. Schneier B. 1996. Applied Cryptography, Second Edition: Protocols, Algorithms, and Source Code in C. Wiley Computer Publishing, John Wiley & Sons, Inc. Sireesha J, Chakchai SI. 2005. Secure Virtual Election Booth with Two Central Facilities. St. Louis, USA: Department of Computer Science Washington University. Wesley A. 2003. Data Access Patterns: Database Interactions in Object-Oriented Applications. Boston: Pearson Education, Inc.
10
LAMPIRAN
Lampiran 1 Skema pemilihan dengan Two Central Facilities
Lampiran 2 Tabel basis data CTF Data objek pada tabel candidatevote Nama Kolom ID candidate vote
Tipe Data Integer(2) Varchar(50) Integer(2)
Keterangan Tambahan Primary key, not null, auto increment Not null
Lampiran 3 Hasil pengujian sistem IPB Online Voting dengan metode blackbox testing Tabel Pengujian situs IPB Online Voting Center No.
Deskripsi Uji
1
Membuka halaman utama
2
Menampilkan diagram hasil pemilu
Kondisi Awal Halaman utama belum diakses oleh user Halaman utama belum diakses oleh user
Hasil yang diharapkan
Hasil Uji
User membuka halaman utama
Halaman utama dapat ditampilkan
Berhasil
User membuka halaman utama
Tampil diagram hasil pemilu
Berhasil
Skenario Uji
12
3
Melakukan registrasi sebagai pemilih (user)
4
Mendapatkan konfirmasi dari proses registrasi
5
Membuka halaman profil kandidat
6
Membuka halaman pemilihan umum
7
Membuka halaman tentang kami
Form registrasi masih dalam keadaan kosong
User menginputkan data sebagai berikut: Nama depan Nama belakang NRP Nama ibu kandung Email
Data tersimpan dalam database CLA
Berhasil
Registrasi sudah dilakukan user
User membuka email dari sistem.
Halaman profil kandidat belum diakses oleh user Halaman pemilihan umum belum diakses oleh user Halaman tentang kami belum diakses oleh user
User membuka halaman profil kandidat
User mendapatkan akun login (username dan password) serta nilai hash-nya Halaman profil kandidat dapat ditampilkan
User membuka halaman pemilihan umum
Halaman pemilihan umum dapat ditampilkan
Berhasil
User membuka halaman tentang kami
Halaman tentang kami dapat ditampilkan
Berhasil
Tidak berhasil
Berhasil
Tabel Pengujian basis data CLA dan GUI online voting No.
Deskripsi Uji
Kondisi Awal
1
Melakukan login
Field username dan password masih kosong
2
Melakukan pemilihan kandidat
User sudah melakukan login
3
Melakukan logout
User dalam kondisi log in
Membangkitkan random key
Basis data dan file yang akan dibangkitkan belum tersedia
4
Skenario Uji Memasukkan username dan password User Memilih kandidat pada daftar yang telah disediakan User mengklik tombol log out Menjalankan kelas Generate Randomkeys
Hasil yang Diharapkan User dapat memasukkan username dan password, user masuk ke sistem
Hasil Uji
Berhasil
Pilihan user masuk ke sistem
Berhasil
User keluar sistem
Berhasil
Semua file yang dibutuhkan telah tersedia dan file CLA.Users tersimpan pada basis data
Berhasil
Tabel Pengujian Java Web Start No.
Deskripsi Uji
Kondisi Awal
1
User mengunduh Voter.rar dari situs online voting
User belum memiliki kunci simetri
2
User mencoba menjalankan sistem online
User telah mengunduh Voter.rar namun
Skenario Uji User membuka situs Online voting dan mengunduh Voter.rar User menjalankan sistem online voting
Hasil yang diharapkan User dapat mengunduh dan menyimpan file Voter.rar Sistem online voting dapat ditampilkan di
Hasil Uji Berhasil
Berhasil
13
No.
Deskripsi Uji
Kondisi Awal
voting Java Web Start
belum membuka sistem Java Web Start User membuka sistem online voting dan sudah log in namun belum memilih kandidat
3
User mencoba untuk memilih dan mengirim hasil pilihan kandidat kepada CTF
4
User mencoba untuk memverifikasi apakah hasil pilihannya telah dihitung oleh CTF
User telah memilih namun belum melakukan verifikasi pilihan
Skenario Uji
Hasil yang diharapkan layar user
Hasil Uji
User menekan button submit Vote
Hasil pilihan kandidat berhasil dikirimkan dan diterima oleh CTF
Berhasil
User menekan button verify Vote
CTF mengirimkan konfirmasi kepada User bahwa benar hasil pilihannya telah dihitung oleh CTF
Berhasil
Tabel Pengujian pengiriman kunci simetri No.
1
2
3
4
5
6
7
Deskripsi Uji Membangkitkan kunci simetri dengan algoritme Blowfish di kelas User.java Mengirimkan kunci simetri (paket 1) yang telah dienkripsi dari user menuju CLA Mengirimkan kunci simetri+Nonce+nilai Hash (paket 2) yang telah dienkripsi dari user menuju CLA CLA mengirimkan Nonce balasan kepada User Mengirimkan kunci simetri (paket 1) yang telah dienkripsi dari user menuju CTF Mengirimkan kunci simetri+Nonce+nilai Hash (paket 2) yang telah dienkripsi dari user menuju CTF CTF mengirimkan Nonce balasan kepada User
Kondisi Awal
Skenario Uji
Hasil yang diharapkan
Hasil Uji
User belum memiliki kunci simetri
Melakukan running pada kelas User.java
User memiliki kunci simetri
Berhasil
CLA belum menerima kunci simetri (paket 1) dari user
User mengenkripsi kunci simetri dan mengirimkannya kepada CLA
CLA memiliki kunci simetri user
Berhasil
User mengenkripsi paket 2 dan mengirimkannya kepada CLA
CLA menerima kunci simetri user
Berhasil
CLA mengirimkan Nonce balasan
User menerima Nonce balasan dari CLA
Berhasil
User mengenkripsi kunci simetri dan mengirimkannya kepada CTF
CTF memiliki kunci simetri user
Berhasil
User mengenkripsi paket 2 dan mengirimkannya kepada CTF
CTF menerima kunci simetri user
Berhasil
CTF mengirimkan Nonce balasan
User menerima Nonce balasan dari CTF
Berhasil
CLA belum menerima kunci simetri + Nonce + Hash (paket 2) dari user User belum menerima Nonce balasan CTF belum menerima kunci simetri (paket 1) dari user CTF belum menerima kunci simetri + Nonce + Hash (paket 2) dari user User belum menerima Nonce balasan
14
Tabel Pengujian koneksi antara sistem dan basis data CTF dan visualisasi hasil pemilihan suara No.
Deskripsi Uji
1.
Pengiriman hasil pemilihan kandidat ke basis data CTF
2.
Menampilkan diagram hasil pemilihan suara
Keadaan Awal Jumlah suara kandidat di basis data belum bertambah Jumlah suara kandidat pada diagram belum bertambah
Skenario Uji Pemilih memilih salah satu kandidat
Pemilih memilih salah satu kandidat
Hasil yang Diharapkan Jumlah suara kandidat terpilih di basis data bertambah Jumlah suara kandidat terpilih pada diagram bertambah
Hasil Uji Berhasil
Berhasil
15