Post on 25-Mar-2019
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
ii
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
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 Se-
Indonesia 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
v
DAFTAR GAMBAR
Halaman
1 Skema umum enkripsi dan dekripsi. .............................................................................................. 2 2 Skema enkripsi dan dekripsi dengan kunci ................................................................................. 2 3 Skema pengujian blackbox............................................................................................................. 5 4 Skema Security Life Cycle. ............................................................................................................ 6 5 Arsitektur infrastrukur jaringan wireless pemilihan online. ............................................................ 8 6 ERD Sistem IPB Online Voting. .................................................................................................... 8 7 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
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
2
sistem informasi itu sendiri (data origin
authentication).
4 Nir-penyangkalan (non-repudiation)
Nir-penyangkalan adalah usaha untuk
mencegah terjadinya penyangkalan terhadap
pengiriman/terciptanya suatu informasi oleh
yang mengirimkan/membuat.
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 elemen-
elemen plaintext dinotasikan dengan , elemen-
elemen ciphertext dinotasikan dengan ,
enkripsi dinotasikan dengan , dan dekripsi
dengan notasi , maka rumus matematis untuk
enchipering dan dechipering dapat ditulis
sebagai berikut:
Enkripsi:
Dekripsi:
atau
.
Skema proses enkripsi dan dekripsi secara
umum dapat dilihat pada Gambar 1.
Enkripsi Dekripsiplaintext
chipertextplaintexts
semula
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
digunakan. Dengan menggunakan kunci ,
maka fungsi enkripsi dan dekripsi menjadi:
dan kedua fungsi tersebut memenuhi
persamaan:
.
Skema proses enkripsi dan dekripsi dengan
menggunakan kunci K dapat dilihat pada
Gambar 2.
Enkripsi Dekripsiplaintext
chipertextplaintexts
semula
K K
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.
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 diimplementasi-
kan. 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
3
(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 boleh menimbulkan
kerancuan
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)
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).
Kunci Publik (Public Key)
Kunci publik adalah kunci yang dirancang
sedemikian sehingga kunci yang digunakan
untuk enkripsi berbeda dengan kunci yang
digunakan pada proses dekripsi (Schneier
1996).
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.
4 Keamanan yang variabel. Panjang kunci
Blowfish dapat bervariasi dan dapat
mencapai 448 bit (56 byte).
Secure Hash Algorithm (SHA)
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.
Fungsi hash kriptografis adalah fungsi hash
yang memiliki beberapa sifat keamanan
tambahan sehingga dapat dipakai untuk tujuan
4
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
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 meminta
sertifikasi daftar kandidat.
b Menerima secure validation ID yang telah
disertifikasi dan ditandatangani dari CLA.
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 meminta
sertifikasi hasil pemilihan.
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
5
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)
ORM merupakan enkapsulasi pemetaan
antara domain objek dan data yang
berhubungan dalam satu komponen. Sebuah
objek atau peta hubungan memisahkan baik
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 kesalahan terminasi
(Pressman 2001).
Ilustrasi dari metode pengujian blackbox
diilustrasikan pada Gambar 3.
Input data Ic
Keluaran
hasil tes
Sistem
Oc
Input yang
menyebabkan
hasil yang
menyimpang
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.
6
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.
7
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.
8
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
voter
voter
voter
Wireless Access
Point
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 Atribut Deskripsi
candidatevote
ID,
candidate,
vote
Informasi
mengenai
jumlah suara
kandidat
IPB Online
VotingcandidatevoteMemiliki
1
N
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
9
akan digantikan kembali dengan data yang
sebenarnya berdasarkan file tersebut.
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.
Visualisasi hasil pemilihan suara dirancang
dengan menggunakan aplikasi FusionCharts.
Visualisasi hasil pemilihan terkini ditunjukkan
oleh diagram pai seperti yang terlihat pada
Gambar 7.
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.
Implementasi basis data CTF dan sistem
visualisasi hasil perolehan suara
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.
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.
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.
10
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.
LAMPIRAN
12
Lampiran 1 Skema pemilihan dengan Two Central Facilities
Lampiran 2 Tabel basis data CTF
Data objek pada tabel candidatevote
Nama Kolom Tipe Data Keterangan Tambahan
ID Integer(2) Primary key, not null, auto increment
candidate Varchar(50)
vote Integer(2) Not null
Lampiran 3 Hasil pengujian sistem IPB Online Voting dengan metode blackbox testing
Tabel Pengujian situs IPB Online Voting Center
No. Deskripsi Uji Kondisi Awal Skenario Uji Hasil yang
diharapkan
Hasil
Uji
1 Membuka halaman
utama
Halaman utama
belum diakses oleh
user
User membuka
halaman utama
Halaman utama
dapat ditampilkan Berhasil
2
Menampilkan
diagram hasil
pemilu
Halaman utama
belum diakses oleh
user
User membuka
halaman utama
Tampil diagram
hasil pemilu Berhasil
13
Tabel Pengujian basis data CLA dan GUI online voting
No. Deskripsi Uji Kondisi Awal Skenario Uji Hasil yang
Diharapkan
Hasil
Uji
1 Melakukan login
Field username
dan password
masih kosong
Memasukkan
username dan
password
User dapat
memasukkan
username dan
password, user
masuk ke sistem
Berhasil
2 Melakukan
pemilihan kandidat
User sudah
melakukan login
User Memilih
kandidat pada
daftar yang telah
disediakan
Pilihan user
masuk ke sistem Berhasil
3 Melakukan logout User dalam
kondisi log in
User mengklik
tombol log out User keluar sistem Berhasil
4 Membangkitkan
random key
Basis data dan file
yang akan
dibangkitkan
belum tersedia
Menjalankan kelas
Generate
Randomkeys
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 Skenario Uji Hasil yang
diharapkan
Hasil
Uji
1
User mengunduh
Voter.rar dari situs
online voting
User belum
memiliki kunci
simetri
User membuka
situs Online voting
dan mengunduh
Voter.rar
User dapat
mengunduh dan
menyimpan file
Voter.rar
Berhasil
2
User mencoba
menjalankan
sistem online
User telah
mengunduh
Voter.rar namun
User menjalankan
sistem online
voting
Sistem online
voting dapat
ditampilkan di
Berhasil
3
Melakukan
registrasi sebagai
pemilih (user)
Form registrasi
masih dalam
keadaan kosong
User
menginputkan data
sebagai berikut:
Nama depan
Nama belakang
NRP
Nama ibu kandung
Data tersimpan
dalam database
CLA
Berhasil
4
Mendapatkan
konfirmasi dari
proses registrasi
Registrasi sudah
dilakukan user
User membuka
email dari sistem.
User mendapatkan
akun login
(username dan
password) serta
nilai hash-nya
Tidak
berhasil
5 Membuka halaman
profil kandidat
Halaman profil
kandidat belum
diakses oleh user
User membuka
halaman profil
kandidat
Halaman profil
kandidat dapat
ditampilkan
Berhasil
6 Membuka halaman
pemilihan umum
Halaman
pemilihan umum
belum diakses oleh
user
User membuka
halaman pemilihan
umum
Halaman
pemilihan umum
dapat ditampilkan
Berhasil
7 Membuka halaman
tentang kami
Halaman tentang
kami belum
diakses oleh user
User membuka
halaman tentang
kami
Halaman tentang
kami dapat
ditampilkan
Berhasil
14
No. Deskripsi Uji Kondisi Awal Skenario Uji Hasil yang
diharapkan
Hasil
Uji
voting Java Web
Start
belum membuka
sistem Java Web
Start
layar user
3
User mencoba
untuk memilih dan
mengirim hasil
pilihan kandidat
kepada CTF
User membuka
sistem online
voting dan sudah
log in namun
belum memilih
kandidat
User menekan
button submit Vote
Hasil pilihan
kandidat berhasil
dikirimkan dan
diterima oleh CTF
Berhasil
4
User mencoba
untuk
memverifikasi
apakah hasil
pilihannya telah
dihitung oleh CTF
User telah
memilih namun
belum melakukan
verifikasi pilihan
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. Deskripsi Uji Kondisi Awal Skenario Uji Hasil yang
diharapkan
Hasil
Uji
1
Membangkitkan
kunci simetri dengan
algoritme Blowfish di
kelas User.java
User belum
memiliki kunci
simetri
Melakukan running
pada kelas
User.java
User memiliki
kunci simetri Berhasil
2
Mengirimkan kunci
simetri (paket 1)
yang telah dienkripsi
dari user menuju
CLA
CLA belum
menerima kunci
simetri (paket 1)
dari user
User mengenkripsi
kunci simetri dan
mengirimkannya
kepada CLA
CLA memiliki
kunci simetri
user
Berhasil
3
Mengirimkan kunci
simetri+Nonce+nilai
Hash (paket 2) yang
telah dienkripsi dari
user menuju CLA
CLA belum
menerima kunci
simetri + Nonce
+ Hash (paket 2)
dari user
User mengenkripsi
paket 2 dan
mengirimkannya
kepada CLA
CLA menerima
kunci simetri
user
Berhasil
4
CLA mengirimkan
Nonce balasan
kepada User
User belum
menerima Nonce
balasan
CLA mengirimkan
Nonce balasan
User menerima
Nonce balasan
dari CLA
Berhasil
5
Mengirimkan kunci
simetri (paket 1)
yang telah dienkripsi
dari user menuju
CTF
CTF belum
menerima kunci
simetri (paket 1)
dari user
User mengenkripsi
kunci simetri dan
mengirimkannya
kepada CTF
CTF memiliki
kunci simetri
user
Berhasil
6
Mengirimkan kunci
simetri+Nonce+nilai
Hash (paket 2) yang
telah dienkripsi dari
user menuju CTF
CTF belum
menerima kunci
simetri + Nonce
+ Hash (paket 2)
dari user
User mengenkripsi
paket 2 dan
mengirimkannya
kepada CTF
CTF menerima
kunci simetri
user
Berhasil
7
CTF mengirimkan
Nonce balasan
kepada User
User belum
menerima Nonce
balasan
CTF mengirimkan
Nonce balasan
User menerima
Nonce balasan
dari CTF
Berhasil
15
Tabel Pengujian koneksi antara sistem dan basis data CTF dan visualisasi hasil pemilihan suara
No. Deskripsi Uji Keadaan Awal Skenario Uji Hasil yang
Diharapkan
Hasil
Uji
1.
Pengiriman hasil
pemilihan kandidat
ke basis data CTF
Jumlah suara
kandidat di basis
data belum
bertambah
Pemilih memilih
salah satu kandidat
Jumlah suara
kandidat terpilih di
basis data
bertambah
Berhasil
2.
Menampilkan
diagram hasil
pemilihan suara
Jumlah suara
kandidat pada
diagram belum
bertambah
Pemilih memilih
salah satu kandidat
Jumlah suara
kandidat terpilih
pada diagram
bertambah
Berhasil