• Tidak ada hasil yang ditemukan

The Analysis and Development of GUI and Voter-CLA Cryptography Protocol based on Two Central Facilities Protocol.

N/A
N/A
Protected

Academic year: 2017

Membagikan "The Analysis and Development of GUI and Voter-CLA Cryptography Protocol based on Two Central Facilities Protocol."

Copied!
45
0
0

Teks penuh

(1)

Protocol based on Two Central Facilities Protocol. Under the direction of Sugi Guritman.

General election is a democratic party for each democracy country. Each country has rules in it. However, every country wants the general election surely implemented in a fair, equitable and confidential way. At the time of this community also wants the election results can be announced quickly. Along with technology development, some countries continue to try to create a system to conduct elections and made the system seeks to meet the rules. and can do calculations quickly and securely. Online voting is one of the solutions of the system. Online voting is trying to implement cryptography protocol. that made protocol seeks to make work flow of the election while the cryptography used to secure the data that is on a protocol. This research base on two central facilities protocol to implement online voting system. This research focuses on the protocol of voter-CLA, from the GUI for the voter, voter-CLA protocols and data storage access for the voter in the voting this online application.

(2)

FACILITIES PROTOCOL

HASANUL FAJRI NURAS

DEPARTEMEN ILMU KOMPUTER

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

INSTITUT PERTANIAN BOGOR

(3)

FACILITIES PROTOCOL

HASANUL FAJRI NURAS

DEPARTEMEN ILMU KOMPUTER

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

INSTITUT PERTANIAN BOGOR

(4)

FACILITIES PROTOCOL

HASANUL FAJRI NURAS

Skripsi

sebagai salah satu syarat untuk memperoleh gelar Sarjana Komputer

pada Departemen Ilmu Komputer

Fakultas Matematika dan Ilmu Pengetahuan Alam

DEPARTEMEN ILMU KOMPUTER

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

INSTITUT PERTANIAN BOGOR

(5)

Protocol based on Two Central Facilities Protocol. Under the direction of Sugi Guritman.

General election is a democratic party for each democracy country. Each country has rules in it. However, every country wants the general election surely implemented in a fair, equitable and confidential way. At the time of this community also wants the election results can be announced quickly. Along with technology development, some countries continue to try to create a system to conduct elections and made the system seeks to meet the rules. and can do calculations quickly and securely. Online voting is one of the solutions of the system. Online voting is trying to implement cryptography protocol. that made protocol seeks to make work flow of the election while the cryptography used to secure the data that is on a protocol. This research base on two central facilities protocol to implement online voting system. This research focuses on the protocol of voter-CLA, from the GUI for the voter, voter-CLA protocols and data storage access for the voter in the voting this online application.

(6)

NRP : G64051421

Menyetujui:

Pembimbing

Dr. Sugi Guritman NIP. 196209271992031004

Mengetahui:

Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam

Institut Pertanian Bogor

Dr. drh. Hasim, DEA NIP 196103281986011002

(7)

Ayahanda bernama Drs.Nurlah Jamil dan Ibunda bernama Asnayanti. Penulis merupakan anak kedua dari empat bersaudara (kak Rima, Ami, Fadhlan).

Pada tahun 2002 penulis menempuh pendidikan di SMA Negeri 1 Muara bungo hingga tahun 2005. Pada tahun yang sama penulis diterima sebagai mahasiswa di Departemen Ilmu Komputer Institut Pertanian Bogor melalui jalur USMI (Undangan Seleksi Masuk IPB).

(8)

karunia dan hidayah-Nya kepada penulis sehingga penulis memperoleh kekuatan untuk dapat menyelesaikan tugas akhir ini. Shalawat beserta salam penulis sampaikan kepada Nabi Besar Muhammad SAW, kepada keluarga dan para sahabatnya yang telah menjadi panutan bagi hidup penulis, semoga penulis tergolong dalam kaumnya yang beriman dan beramal saleh. Penulis sadar bahwa tugas akhir ini tidak akan terwujud bila tidak ada bantuan dari berbagai pihak. Oleh karena itu pada kesempatan ini penulis ingin mengucapkan terima kasih dan penghargaan seinggi-tingginya kepada :

1 Kedua orang tua tercinta : ayahanda Drs. Nurlah Jamil dan ibunda Asnayanti atas limpahan doa, kasih sayang, cinta, semangat, dan kebahagiaan selama hidup penulis.

2 Saudara tersayang Kak Rima, Dek Ami,Dek Fadhlan atas doa dan dukungannya.

3 Yth. Bapak Dr. Sugi Guritman, MS selaku dosen pembimbing tugas akhir.

4 Yth. Ibu Dr. Sri Nurdiati, MSc, bapak Ir. Julio Adisantoso, M.Kom, bapak Firman Ardiansyah, S.Kom, M.Si, bapak Hari Agung, S.Kom, M.Kom, bapak Hendra Hermawan, S.Kom, M.Kom, Ibu Yeni Herdiyeni, S.Si, M.Kom, bapak Toto Haryanto, S.Kom, Pak Soleh, dan Pak Pendi atas nasehat, dukungan, dan keramahan yang senantiasa mengisi hari-hari penulis di Departemen Ilmu Komputer FMIPA.

5 Teman-teman wisma orange Miun, Oji, Wahyu, Heri yang sudah memberikan tempat berteduh sementara di kala lelah

6 Pute, Sinta, Nunuk, Yogi, Imam dan teman penulis lainnya yang telah membarikan semangat dan bantuan baik secara langsung atau tidak dalam penulisan tugas akhir ini.

7 Uud, Medri, Dina teman satu bimbingan atas masukan dan sarannya.

8 Auriza, Tanto, teman-teman Ilmu Komputer angkatan 42, serta seluruh pihak yang turut membantu baik secara langsung maupun tidak langsung.

Penulis menyadari sepenuhnya bahwa dalam penulisan tugas akhir ini masih terdapat banyak kekurangan dan kelemahan dalam berbagai hal karena keterbatas 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

(9)

Halaman

DAFTAR GAMBAR ...viii

DAFTAR LAMPIRAN ...viii

PENDAHULUAN Latar Belakang ... 1

Tujuan Penelitian ... 1

Ruang Lingkup Penelitian ... 1

TINJAUAN PUSTAKA Kriptografi ... 1

Protokol Kriptografi ... 2

Enkripsi dan Dekripsi ... 2

Kunci Simetri ... 2

Kunci Publik ... 2

Central Legitimization Agency (CLA) ... 2

Certificate Authority (CA) ... 2

Protokol Two Central Facilities ... 2

Secure Hash Algorithm (SHA)-1 ... 3

Java Web Start ... 3

Layout Manager ... 3

Object Relational Mapping (ORM) ... 4

Toplink ... 4

Metode Pengujian Blackbox ... 4

METODOLOGI PENELITIAN Ancaman (Threat) ... 4

Kebijakan (Policy) ... 5

Spesifikasi (Specification) ... 5

Perancangan (Design) ... 5

Implementasi (Implementation) ... 5

Pengujian (Testing) ... 5

Lingkungan Pengembangan ... 5

HASIL DAN PEMBAHASAN Threats (Ancaman) ... 5

Policy (Kebijakan) ... 6

Specification (Spesifikasi) ... 6

Design (Perancangan) ... 7

Implementation (implementasi)... 9

Testing (Pengujian) ... 9

KESIMPULAN DAN SARAN Kesimpulan ... 10

Saran... 10

DAFTAR PUSTAKA ... 10

(10)

viii DAFTAR GAMBAR

Halaman

1 Model Enkripsi ... 2

2 Model Dekripsi ... 2

3 Skema pengujian Blackbox ... 4

4 The Security Life Cycle ... 4

5 Flowchart secara umum Alur voter CLA ... 8

DAFTAR LAMPIRAN Halaman 1 Skema pemilihan dengan Two Central Facilities dan ruang lingkup penelitian ... 13

2 Hasil pengembangan GUI untuk sistem Online Voting ... 13

(11)

1 PENDAHULUAN

Latar Belakang

Perkembangan dunia politik di Indonesia saat ini mengacu pada pergerakan demokrasi yang sebenarnya. Walaupun saat ini masih banyak masyarakat yang salah mengartikan demokrasi tersebut atau bisa disebut demokrasi yang kebablasan.

Namun demikian, masih ada bukti yang mengacu pada upaya untuk menegakkan demokrasi secara benar. Seperti adanya pemilihan langsung terhadap kepala daerah, anggota DPR dan pemilihan presiden beserta wakilnya yang memberikan kesempatan pada

pemilih agar tidak memilih “kucing dalam

karung”. Selama ini pemilihan tersebut

dilakukan secara manual dan dikontrol sepenuhnya oleh Komisi Pemilihan Umum (KPU).

KPU bertindak seperti mesin yang digunakan untuk mengontrol, melaksanakan, menghitung, dan memublikasikan hasil dari pemilihan umum yang dilaksanakan. Namun akhir-akhir ini KPU sering kali dituding melakukan tindakan kecurangan dengan memalsukan suara kepada pihak tertentu. Hal ini tentu memberikan nilai negatif bagi KPU sendiri karena tidak dapat memperoleh kepercayaan bagi masyarakat. Dengan demikian dibutuhkan suatu hal yang dapat memberikan keyakinan kepada masyarakat bahwa hasil dari pemilihan yang dilakukan adalah benar dan valid.

Ada banyak faktor yang menentukan tingkat kepercayaan masyarakat terhadap hasil pemilihan umum. Namum demikian, sebagai negara yang sedang berkembang serta didukung kemajuan teknologi dunia yang cukup pesat, negara ini memanfaatkan teknologi tersebut untuk menyelesaikan permasalahan di atas.

Salah satu pemanfaatan teknologi yang ada untuk pemilihan umum adalah protokol pemilihan umum. Protokol ini berfungsi sebagai media untuk melakukan pemilihan umum sesuai dengan ketentuan-ketentuan dari pemilihan umum yang berlaku. Protokol ini melakukan pekerjaan KPU seperti mengontrol, menghitung dan memublikasikan hasil pemilihan secara adil dan tidak memihak.

Protokol yang dibangun harus memerhatikan hal-hal yang berkaitan dengan kerahasiaan, sedangkan untuk jujur dan adil

telah tepenuhi karena sebagai suatu sistem, secara logika tidak bisa memihak kepada siapapun.

Tujuan Penelitian

Penelitian ini memiliki dua tujuan utama yaitu, tujuan umum dan tujuan khusus. Tujuan umum dari penelitian ini adalah membuat simulasi aplikasi Online Voting apakah sistem ini dapat diaplikasikan pada lingkungan IPB dan tujuan khusus dari penelitian ini yaitu, mengembangkan GUI untuk aplikasi Online Voting, kemudian mengembangkan protokol kriptografi untuk voter-CLA serta untuk mengembangkan database penyimpanan data akses voter di CLA.

Ruang Lingkup Penelitian

Ruang lingkup dari penelitian ini mencakup bagian dari sistem Online Voting yaitu membahas yang berhubungan dari voter ke CLA. Skema ruang lingkup dapat dilihat pada Lampiran 1. Secara rinci yaitu menganalisis dan mengimplementasi dari GUI untuk sistem Online Voting, pembentukan protokol yang menghubungkan Voter dan CLA(Central Legitimization Agency/ hubungan CLA dengan Voter hingga Voter memiliki nomor validasi untuk bisa melakukan pemilihan). Kemudian, penelitian mencakup pembuatan database sebagai tempat menyimpan data hak akses bagi voter dan data ini selanjutnya akan dikirim ke voter sebagai bentuk verifikasi dari registrasi. Penelitian ini berusaha mencakup ketentuan-ketentuan dari pemilihan umum yang berlaku di Indonesia.

TINJAUAN PUSTAKA Kriptografi

Kriptografi berasal dari gabungan kata kripto yang berarti rahasia dan grafi yang berarti tulisan. Secara umum dapat diartikan sebagai seni dan ilmu dengan menerapkan perhitungan matematis, yang digunakan untuk menjaga suatu data atau informasi agar tetap aman.

Selain itu kriptografi dapat diartikan sebagai studi matematika yang berkaitan dengan aspek keamanan seperti (Guritman 2003):

(12)

2 Konsisten (integrity) adalah suatu layanan

yang berkaitan dengan keutuhan informasi sehingga informasi tersebut tidak dapat diubah kecuali oleh orang yang berwenang untuk melakukan hal tersebut.

Autentik merupakan suatu layanan yang berkaitan dengan pengidentifikasian entitas atau informasi itu sendiri.

Non-repudasi merupakan suatu layanan yang ditujukan untuk mencegah terjadinya pelanggaran kesepakatan yang telah dibuat sebelumya.

Protokol Kriptografi

Protokol kriptografi protokol yang menggunakan kriptografi (Munir 2004). Disamping semua persyaratan dari protokol harus terpenuhi, protokol kriptografi meliputi algoritme kriptografi. Namun secara umum tujuan protokol ini lebih dari sekedar kerahasiaan.

Enkripsi dan Dekripsi Menurut Kurniawan (2008):

a Enkripsi: Proses pengubahan pesan

sedemikian sehingga isi pesan

disembunyikan. Enkripsi juga dapat

dikatakan sebagai proses pengubahan dari plaintext atau data jelas/ asli ke ciphertext

atau data tersamar dengan menggunakan

algoritme kriptografi tertentu.

b Dekripsi : proses pengubahan kembali dari

ciphertext ke plaintext dengan

menggunakan algoritme kriptografi

tertentu.

Model secara umum proses Enkripsi dan Dekripsi dapat dilihat pada Gambar 1 dan Gambar 2.

Gambar 1 Model Enkripsi

Gambar 2 Model Dekripsi

Kunci Simetri

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

Kunci Publik (Publik Key) adalah kunci yang dirancang sedemikian sehingga kunci yang digunakan untuk enkripsi berbeda dengan kunci yang digunakan pada proses dekripsi (Schneier 1996).

Central Legitimization Agency (CLA) CLA memiliki tugas utama untuk otentikasi dan otorisasi pemilih. Setiap pemilih akan mengirim pesan kepada CLA yang berisi permintaan validationID. CLA akan membangkitkan validationID yang terjamin keamanannya dan mengirimkannya pada pemilih. CLA menyimpan dengan aman daftar validationID dan mencegah pemilih menerima lebih dari satu validationID atau melakukan lebih dari satu kali pemilihan (DuFue dan Harris 2001).

Certificate Authority (CA)

Fungsi Utama dari Certificate Authority

(CA) yaitu menghasilkan, memublikasikan

dan menghapus certificate public key dari user identity, bisa personal maupun lembaga.

Contoh CA, yaitu Verisign (Kurniawan

2008).

Protokol Two Central Facilities

Pemilihan menggunakan protokol Two Central Facilities dilakukan dengan membagi CTF dan CLA menjadi dua badan yang terpisah.

Menurut Janga Sireesha dan So-In 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.

(13)

3 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 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, maka 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 dan 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, maka 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.

Secure Hash Algorithm (SHA)-1

SHA atau Secure Hash Algorithm adalah fungsi hash satu-arah yang dibuat oleh NIST.

Biasanya Fungsi hash SHA yang paling umum digunakan adalah SHA-1 yang telah diimplementasikan di dalam berbagai aplikasi dan protokol keamanan. SHA-1 menerima masukan berupa pesan dengan ukuran maksimum 64 bit dan menghasilkan message digest yang panjangnya 160 bit. Langkah-langkah pembuatan message digest dengan SHA-1 secara garis besar adalah sebagai berikut (Munir 2006):

1 Penambahan bit-bit pengganjal (padding bits).

2 Penambahan nilai panjang pesan semula. 3 Inisialisasi penyangga (buffer) MD. 4 Pengolahan pesan dalam blok berukuran

512 bit.

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 program 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 langsung melakukan update versi aplikasi (Sun Microsystem 2005).

Layout Manager

Layout manager berhubungan dengan tampilan Voter Interface yaitu apa yang komponen-komponen yang ada dalam tampilan. Pengaturan dilakukan dengan layout manager. Tugas dari layout manager adalah (Wijono S.H et al 2006):

mengatur posisi komponen dengan tidak tergantung kepada platform, resolusi layar monitor dan Font,

(14)

4 Object Relational Mapping (ORM)

Object-relational mapping merupakan proses transformasi antara pengembangan objek dan relasional serta sistem yang mendukung pengembangan tersebut. Untuk melakukannya dengan baik pada saat memetakan objek relasional membutuhkan pemahaman yang baik terhadap object modeling dan relational modeling persamaan serta perbedaannya. Idealnya terdapat suatu integrasi model yang mendeskripsikan kedua pengembangan tersebut (Fussel 1997).

Toplink

Toplink merupakan package ORM (object relational mapping) untuk pengembang yang menggunakan bahasa pemrograman Java. Toplink memberikan suatu kerangka kerja yang kuat dan fleksibel untuk menyimpan objek Java dalam suatu database relasional atau untuk konversi objek Java ke dalam dokumen XML(Oracle 2009).

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 program. Pengujian blackbox merupakan pendekatan komplementer yang kemungkinan besar mampu menemukan kesalahan dalam kategori sebagai berikut (Pressman 2001):

fungsi-fungsi yang tidak benar atau hilang, kesalahan antarmuka,

kesalahan dalam struktur data atau akses database eksternal,

kesalahan kinerja, dan

inisialisasi dan kesalahan terminasi.

Metode pengujian perangkat lunak ini diilustrasikan pada Gambar 3 berikut:

Input data Ic

Gambar 3 Skema pengujian blackbox

METODOLOGI PENELITIAN Pada penelitian ini, metode yang digunakan adalah Security Life Cycle Method. Metode ini terdiri atas 6 tahap utama, yaitu (Bishop,2003): (1) Ancaman (Threats), (2) Kebijakan (Policy), (3) Spesifikasi (Specification) (4) Perancangan (Design) (5) Implementasi (Implementation) serta (6) Operasi dan Pemeliharaan (Operation and Maintenance).

Pada penelitian ini, metode yang digunakan adalah dari tahap (1) sampai (5), hal ini disebabkan oleh keterbatasan waktu yang tidak memungkinkan untuk melakukan tahap pemeliharaan. Akan tetapi penelitian diakhiri dengan tahap pengujian sistem. Metode Security Life Cicle yang telah disesuaikan dapat dilihat pada Gambar 4.

Gambar 4 The Security Life Cycle

Ancaman (Threat)

(15)

5 Disclosure, merupakan akses terhadap

informasi dari pihak yang tidak berhak. Deception, merupakan penerimaan dari data yang salah.

Disruption, merupakan gangguan atau pencegahan dari operasi yang benar. Usurpation, merupakan pengaturan dari beberapa bagian sistem oleh pihak yang tidak berhak.

Kebijakan (Policy)

Kebijakan merupakan suatu pernyataan yang dibutuhkan untuk membatasi sesuatu yang diperbolehkan dan tidak dalam pembuatan sistem pemilu. Banyak hal yang harus diberi kebijakan seperti contoh kebijakan atau aturan yang diterapkan oleh KPU dalam melaksanakan pemilu secara manual. Dalam hal ini dapat berupa suatu prosedur, metode, alat, ruang lingkup akses dan lain-lain.

Spesifikasi (Specification)

Setelah kebijakan dibuat, maka akan dilakukan spesifikasi dari kebijakan tersebut. Spesifikasi dibuat agar dapat menentukan kebutuhan dari sistem yang akan dikerjakan. Menurut Bishop (2003), spesifikasi adalah pernyataan baik formal maupun informal mengenai fungsi sistem yang diinginkan. Spesifikasi dapat berupa bagian low-level, kombinasi kode program dengan logika dan hubungan kewaktuan untuk menetapkan tugas yang dikerjakan.

Perancangan (Design)

Perancangan merupakan hal yang sangat penting dalam pembuatan suatu sistem. Tahap ini merupakan tahap untuk merinci kebutuhan-kebutuhan dari spesifikasi yang telah dibuat. Dengan demikian perancangan tersebut tidak diizinkan keluar dari spesifikasi yang telah dibuat.

Perancangan dibuat secara detail, mulai dari fungsi-fungsi yang dibutuhkan hingga alur kerja sistem. Pada penelitian ini dibuat perancangan dalam beberapa kelompok yaitu: perancangan GUI untuk Voter, pengembangan alur komunikasi CLA server dengan voter dari penerimaan Username dan Password hingga pengecekan (otentikasi Voter), serta perancangan penyimpanan username dan password dengan menggunakan Toplink Object Relational Mapping.

Implementasi (Implementation)

Pada tahap ini hasil analisis dan perancangan akan diimplementasikan menjadi suatu sistem dengan lingkungan implementasi sebagai berikut:

1 Implementasi untuk GUI menggunakan Java Swing dan Java AWT dengan menitikberatkan pada penggunaan Layout Manager.

2 Platform : Java 1.4 (Platform independent & inbuilt security features).

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 Implemetasi untuk penyimpanan username dan password menggunakan object relational mapping yaitu Toplink. Pengujian (Testing)

Tahap pengujian dilakukan untuk menguji apakah sistem yang dibangun memberi hasil keluaran seperti yang diharapkan. Pengujian pada penelitian ini dilakukan dengan Metode Black Box dan simulasi.

Lingkungan Pengembangan

Perangkat keras dan perangkat lunak yang digunakan dalam penelitian ini berupa notebook dengan spesifikasi sebagai berikut:

Perangkat keras:

Processor Intel Pentium® Core TM Duo

Memori 1 GB

Harddisk 160 GB Perangkat Lunak:

Sistem operasi: Windows XP SP2

Netbeans IDE 6.5

XAMPP-win32-1.6.8

HASIL DAN PEMBAHASAN Threats (Ancaman)

(16)

6 CLA server sebagai salah satu server yang

bertugas untuk otentikasi dan validasi voter, sehingga ada beberapa hal kemungkinan ancaman yang timbul, yaitu:

a Snooping (pengintaian), ancaman ini bersifat pasif karena pengintai hanya memata-matai. Ancaman ini merupakan bagian dari disclosure/ akses informasi bagi yang tidak berwenang. Di dalam kaitannya dengan CLA server pengintai berusaha mengetahui username dan password. Untuk mengatasi hal ini dilakukan pengiriman username dan password kepada voter melalui email dengan terlebih dahulu voter melakukan registrasi pada sistem.

b Modification or alteration (modifikasi atau pengubahan), ancaman ini bersifat aktif karena melakukan perubahan terhadap sistem yang ada. Ancaman ini merupakan bagian dari disruption dan usurpation/ pengaturan dan perubahan terhadap bagian sistem oleh pihak yang tidak berwenang . Pada CLA server pengubahan berbahaya jika terjadi di beberapa bagian berikut:

Pada Voter database. Database ini merupakan tempat menyimpan data dari CLA server yang kemudian dikirim kepada voter melalui e-mail. Pengubahan kunci simetri dari CLA yang merupakan kunci untuk keamanan komunikasi antara Voter dan CLA. Hal ini mungkin terjadi pada saat voter mengirimkan pesan enkripsi “CLAID-VoterID” bersama kunci simetri blowfish dengan kunci publik CLA. Namun kunci publik yang digunakan menggunakan kunci publik dengan 2048 bit yang saat ini kemungkinan untuk diprediksi masih sulit.

c Masquering (penyamaran) yaitu peniruan terhadap suatu entitas terhadap entitas yang lain. Ancaman ini akan memancing korban (voter) agar memercayai yang melakukan komunikasi dengannya adalah entitas/ pihak yang benar. Akan tetapi, sebenarnya yang berkomunikasi adalah entitas yang lain atau disebut attacker (penyerang). Ancaman ini merupakan bentuk dari deceptio(penerimaan dari data yang salah) dan usuraption Dalam konteks CLA server hal ini terjadi jika voter menyangka bahwa pihak yang berkomunikasi dengannya adalah CLA server yang benar padahal tidak. Hal ini

akan menyebabkan suara yang voter pilih tidak dapat dihitung oleh sistem.

Sebaliknya jika CLA server menyangka ia sedang berkomunikasi dengan voter yang benar maka hasil perhitungan suara tidak akan valid. Untuk menangani masalah ini diperlukan otentikasi dari CLA server dan voter.

Untuk mengatasi hal ini, CLA dan voter memiliki bukti untuk memastikan bahwa masing-masing mereka merupakan pihak yang benar. Bukti tersebut berupa CA atau Certificate Authority. CA merupakan identitas dari CLA dan voter.

Alur pembuktian dari masing-masing entitas adalah ketika CLA mengirimkan paket yang dienkripsi oleh kunci private CLA dan didekripsi oleh voter menggunakan kunci publik. Jika voter tidak dapat melakukan dekripasi terhadap paket tersebut maka CLA bukanlah entitas yang benar.

Policy (Kebijakan)

Kebijakan keamanan adalah pernyataan atas apa yang diperbolehkan dan tidak diperbolehkan dalam menjalankan sebuah

sistem. Dengan demikian sistem yang

dibangun secara komputerisasi akan

digunakan jika terdapat protokol yang menjamin (Schneier 1996):

1 Privasi individu

2 Pencegahan terhadap kecurangan

Berdasarkan pemilu yang sesungguhnya, suatu protokol yang ideal harus memiliki 6 persyaratan sebagai berikut :

1 Hanya pemilih yang berhak yang dapat

memberikan suara (Otentifikasi)

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.

Specification (Spesifikasi)

(17)

7 akses untuk CLA membutuhkan spesifikasi

sebagai berikut:

a Sistem dari voter ke CLA membutuhkan: 1 Pengamanan data untuk pengiriman

kunci simetri. Pengiriman ini menggunakan kunci publik.

2 CLA memperbolehkan voter untuk masuk/log in beberapa kali, namun untuk memilih hanya boleh satu kali. 3 Pengamanan data untuk menjaga

keutuhan data dengan menggunakan fungsi hash.

4 Otentikasi dan verifikasi voter dan CLA dengan menggunakan CA. b Untuk GUI sistem membutuhkan:

1 Java swing dan Java awt untuk pembuatan GUI.

2 GUI untuk voter dapat melakukan log in.

3 GUI untuk voter melihat hasil komunikasi antara voter dan CLA. 4 GUI untuk voter memilih kandidat

yang hanya diperbolehkan untuk memilih satu kandidat.

5 GUI untuk verifikasi pilihan dan untuk log out.

c Untuk menyimpan data username, password, dan ValidationID membutuhkan:

1 ORM (Object Relational Mapping) yang berguna untuk konversi dari database relasional ke object oriented.

2 Database untuk tempat menyimpan datanya.

Design (Perancangan)

Pada penelitian ini dilakukan beberapa bagian perancangan sistem pemilu online. Sebelumnya program pemilu online dibangun oleh Sireesha, Janga dan So-In Chakchai, akan tetapi akan dilakukan pengembangan lebih lanjut dari sistem tersebut. Perancangan secara umum dari sistem online voting ini menggunakan protocol two central facilities. Berdasarkan ruang lingkup yang dijelaskan sebelumnya, perancangan yang dikembangkan pada penelitian ini berfokus pada komunikasi antara voter dan CLA hingga voter mendapatkan nilai validationID. Perancangan yang akan dilakukan meliputi tiga rancangan utama yaitu: perancangan GUI untuk voter, perancangan alur komunikasi voter dan CLA, perancangan database menggunakan ORM.

Hasil perancangan untuk ketiga bagian tersebut sebagai berikut:

a Perancangan GUI

Perancangan GUI yang dibutuhkan untuk aplikasi Online Voting cukup sederhana. Berdasarkan spesifikasi yang telah dibuat, GUI akan dibangun dengan berbasiskan pada container dari layout manager yang berguna mengatur posisi dari bagian-bagian GUI. Di samping itu, penelitian ini menggunakan package dari Java Swing dan Java AWT untuk pemrograman GUI.

Adapun perancangan dari GUI yang akan dibangun adalah:

Perancangan susunan bagian-bagian dengan menggunakan layout manager sehingga posisinya dapat disesuaikan. Perancangan bagian untuk voter dapat melakukan log in (masuk ke sistem). Bagian ini terdiri atas field untuk username dan password serta tombol submit agar sistem dapat menerima username dan password dari voter. Perancangan GUI setelah log in yaitu perancangan bagian daftar kandidat yang akan dipilih. Bagian ini akan dirancang menggunakan Radio Button agar voter hanya dapat memilih satu kandidat. Perancangan tombol untuk melakukan pilihan dan verifikasi pilihan.

Perancangan Result Area atau area hasil yang berfungsi untuk menampilkan alur dari sistem. Misalnya kesalahan memasukkan username dan password, pengiriman data ke CLA dan lain sebagainya yang berhubungan dengan alur sistem secara umum.

Perancangan tombol untuk keluar dari sistem. Bagian ini dirancang pada sistem setelah voter melakukan log in.

b Alur komunikasi voter-CLA

Pada penelitian ini, perancangan proses dari alur komunikasi voter ke CLA Server dibahas secara umum.

Secara umum CLA berfungsi sebagai salah satu server yang memiliki beberapa fungsi utama yaitu:

1 Memberikan Certificate kepada masing-masing voter.

2 Melakukan pertukaran kunci simetri blowfish dengan menggunakan kunci publik CLA.

(18)

8 Berdasarkan fungsi utama di atas, berikut

alur secara keseluruhan dari protokol voter ke CLA. Mula-mula CLA mengirim CA kepada voter. Setelah voter menerima CA kemudian voter mendekripsi CA dengan menggunakan berkas CA.publik. Hasil dari dekripsi voter mendapatkan CLA publik.

Voter mengirimkan pesan ke CLA yang sudah dienkripsi dengan kunci publik CLA. Pesan tersebut berisi CLAID-VoterID, blowfish symmetric key, dan nilai Nounce(number used once). Nilai Nounce atau nomor yang digunakan hanya sekali berfungsi untuk menghindari ancaman penyerangan kembali (reply attack). CLA menerima pesan dari voter dan mendekripsinya. Setelah didekripsi maka CLA mendapatkan kunci simetri. Kunci ini berfungsi untuk komunikasi dengan voter. Kemudian CLA mengirim CLAID dan VoterID dengan menggunakan SHA-1 unuk menjaga keutuhan pesan. Kemudian CLA mengirim pesan ke voter CLAID-VoterID beserta nilai nounce+1.

Kemudian voter mengirimkan username dan password kepada CLA dengan enkripsi dan SHA-1. CLA server akan mendekripsi pesan dari voter tersebut dan memeriksa fungsi hashnya. Setelah dilakukan pengecekan keutuhan pesan maka CLA akan melakukan otentikasi username dan password dari voter.

Setelah melakukan otentikasi dan jika dianggap valid maka CLA mengirimkan validationID ke voter dan akan digunakan oleh voter untuk melakukan pilihan. Disamping itu CLA juga menambahkan jumlah bagi voter yang sama melakukan log in dan disimpan dalam CLA.voters-count.

Flowchart dari komunikasi CLA-voter

hingga voters mendapatkan validationID

dapat dilihat pada Gambar 5. Gambar 5. Flowchart secara umum Alur

voter CLA

c Perancangan database menggunakan ORM

Pada penelitian ini database berfungsi sebagai tempat menyimpan data dari CLA.voters. Data ini kemudian akan dikirim ke email voter yang telah melakukan registrasi sebagai suatu verifikasi.

Database pada penelitian dirancang menggunakan database relasional. Namun, dikarenakan pada penelitian ini menggunakan bahasa pemrograman Java yang berbasis

CLA.publik,

Menerima pesan dari voter mulai

Membangkitkan objek untuk kunci-kunci dari

server

password benar

Cek isi paket,

ValidationID ke voter

(19)

9 orientasi objek maka dibutuhkan suatu ORM/

object relational mapping untuk mengonversinya. ORM merupakan suatu pemetaan database yang bersifat relasional ke orientasi objek. Perancangan database pada penelitian ini menggunakan Toplink sebagai ORM.

Tabel yang terdapat pada database dibentuk menjadi objek yang dapat diakses dari suatu model kelas tertentu. Hasil analisis perancangan konseptual database CLA ini hanya memiliki satu entitas, yaitu claserver yang merepresentasikan tabel pada database relasional. Hasil perancangan konseptual dari database CLA ini dapat dilihat pada Tabel 1 berikut:

Tabel 1 Perancangan konseptual database CLA

Nama

Entitas Atribut Deskripsi claserver

Implementation (implementasi)

Implementasi untuk pengembangan sistem ini menggunakan bahasa pemrograman Java dengan menggunakan IDE Netbeans 6.5.

Implementasi dari pembuatan GUI dimulai dari menetukan posisi dari masing-masing blok dengan mengggunakan kontainer pada layout manager. Setiap bagian didefinisikan dalam satu blok. Masing-masing blok juga didefiniskan ukurannya, pengaturan posisi, dan isi dari blok tersebut.

Pendefinisian ukuran dan posisi dilakukan memanfaatkan fungsi dari layout manager yaitu GridBagLayout. Pertama, dibuat objek dari GridBagLayout. Kemudian, akan digunakan fungsi yang ada untuk menentukan rincian dari pengaturan masing-masing blok yang akan dibuat.

Java Swing dan Java Awt digunakan untuk membuat graphic seperti warna, font, tombol, radio button untuk daftar kandidat, field dan lain-lain.

Secara umum, hasil dari pengembangan User Interface ada 3 bagian. Pertama, bagian sebelum log in, kedua, bagian setelah log in dan monitoring pada area hasil. Di lain pihak untuk log out, voter hanya menekan tombol log out ketika sistem berada dalam kondisi log in.

Bagian pertama, voter akan disediakan blok untuk melakukan log in, terdiri atas tempat masukan username dan password. Kedua, bagian setalah log in, sistem menyediakan daftar pemilih dalam bentuk radio button, tombol pilihan, tombol verifikasi pilihan dan tombol log out. Ketiga, bagian area hasil yang merupakan implementasi dari TextArea dan merupakan tempat monitoring komunikasi antara voter dan sistem. Hasil dari pegembangan GUI dapat dilihat pada Lampiran 2.

Pada penelitian ini, untuk CLA server tidak dilakukan pengembangan lebih lanjut dari sistem yang sudah ada. CLA server yang ada hanya dianalisis dan dilakukan monitoring stabilitas server. Secara umum CLA server memiliki memiliki fungsi yaitu membaca meesage digest, membaca array byte dalam basis format 64, memisahkan ValidationID yang kemudian dikirim ke voter dan fungsi untuk media kontrol perhitungan bagi setiap voter melakukan log in.

Implementasi dari pembuatan database menggunakan bahasa pemrograman Java dan database MySQL. Seperti yang diuraikan pada metode penelitian, untuk menghubungkan database relasional ke bahasa pemrograman berorientasi objek menggunakan Toplink Object Relational Mapping. Toplink akan memetakan suatu tabel ke dalam suatu kelas model agar dapat diakses dalam bentuk objek. Dengan demikian untuk mengakses tabel pada database tidak dalam bentuk query biasa seperti query SQL tapi mengakses model yang telah dibentuk menjadi objek.

Database CLA hanya terdiri atas satu tabel yaitu tabel dari CLAvoters. Tabel ini menyimpan data berupa username, password dan ValidationID. Database ini bertujuan untuk data yang akan dikirim kepada voter melalui email. Voter yang akan dikirimkan adalah voter yang telah melakukan registrasi. Proses ini merupakan proses verifikasi voter.

Testing (Pengujian)

Metode terakhir adalah tahap pengujian

terhadap sistem Online Voting. Pengujian

dilakukan menggunakan black-box testing.

Pengujian dibagi ke dalam beberapa tahap, yaitu:

1 Tahap menjalankan berkas generate

random key yang berfungsi untuk

membentuk berkas-berkas yang

(20)

10 sesuai dengan yang diharapkan. Tahap ini

berhasil sesuai dengan yang diharapkan.

2 Tahap pengujian terhadap penggunaan

Java Web Start pada sistem Online Voting. Pada tahap ini akan diuji apakah sistem

berfungsi sesuai yang diharapkan. Tahap ini berhasil untuk setiap bagian GUI.

Hasil pengujian secara lengkap dapat dilihat pada Lampiran 3.

KESIMPULAN DAN SARAN Kesimpulan

Penelitian ini mendapatkan suatu kesimpulan bahwa telah dibangun suatu prototype dari sistem IPB Online Voting dengan menerapkan protokol Two Central Facilities. Sistem ini dapat meningkatkan efektifitas dan efisiensi perhitungan suara terkait dengan sumber daya yang meliputi waktu, biaya dan tenaga. Hal ini terlihat sitem dapat melakukan perhitungaan dengan cepat dan pemilih bisa melihat perkembangannya. Penggunaan teknologi Java Web Start akan membuat sistem ini menjadi lebih mudah untuk digunakan di dalam suatu jaringan. Hal ini akan membuat setiap pemilih dapat lebih mudah mengakses sistem ini.

Penggunaan layout manager dalam pengembangan GUI sangat tergantung pada posisi yang ditentukan dan juga untuk penggunaan Java Swing dan Java Awt memudahkan dalam pembuatan fitur-fitur aplikasi di dalam bahasa pemrograman java. Untuk mengakses database yang bersifat relasional, bahasa pemrograman yang berorientasi objek membutuhkan suatu pemetaan suatu objek dari databasenya. Di lain pihak penggunaan protokol kriptografi untuk hubungan antara CLA dan voter menentukan aman atau tidak komunikasi sistem yang telah dibuat.

Saran

Perkembangan teknologi kriptanalis pada saat ini cukup pesat. Dengan demikian secara

umum selalu dibutuhkan peningkatan

keamanan dari sistem Online Voting ini.

Rekomendasi yang dapat dilakukan untuk penelitian selanjutnya diantaranya :

Sistem Online Voting yang kini

dikembangkan masih menggunakan

wireless acces point intern departemen dalam fakultas MIPA IPB. Hal ini

mengakibatkan sistem Online Voting

hanya dapat diimplementasikan sebatas

cakupan satu departemen. Pada

penelitian selanjutnya akan lebih baik

jika sistem Online Voting dapat

diimplementasikan dalam cakupan yang lebih luas seperti dalam jaringan seluruh kampus IPB.

Menyimpan seluruh hasil dari berkas Generate Randomkey ke dalam database sesuai dengan masing-masing server dan mengenkripsi database tersebut.

Untuk pengujian disarankan

menggunakan metoe pengujian lain yang menguji secara rinci protokol kriptografi dari sistem ini.

Untuk GUI akan lebih baik jika dibuat dengan tampilan yang lebih user friendly seperti penambahan foto kandidat dan lain-lain.

DAFTAR PUSTAKA

Bishop M. 2003. Computer Security: Art and Science. Pearson Education, Inc. Boston. Bruce S.1996. Applied Cryptography, Second

Edition, Jon Wiley & Sons.

DuFeu D, Harris J, Online Election System,

95.413 Project Report, Carleton

University, April 2001.

Fussel ML, 1997 Foundations of Object

Relational Mapping. Sunnyvale,California

Guritman S. 2003. Handout Mata Kuliah Pengantar Kriptografi/ Data Security. Fakultas Matematika dan IPA. Institut Pertanian Bogor. Bogor.

Kurniawan A. 2008. Konsep dan Implementasi Cryptography dengan .Net. Jakarta: PT.Dian Rakyat.

(21)

11 Oracle. 2009. http://www.oracle.com/

technology/products/ias/toplink/jpa/tutorial s/.[14 Juli 2009].

Pressman R. S. 2001. Software Engineering: A Practitioner’s Approach. 5th Ed. McGraw-Hill International Edition, Singapore.

Sireesha J, Chakchai SI. 2005. Secure Virtual Election Booth with Two Central Facilities. Department of Computer Science Washington University in St. Louis, USA.

Sun Microsystem. 2009. Java web start technology. http://Java.sun.com/ Javase/technologies/desktop/Javawebstart/i ndex.jsp.[15 juli 2009].

(22)
(23)

13 Lampiran 1 Skema pemilihan dengan Two Central Facilities dan ruang lingkup penelitian

Lampiran 2 Hasil pengembangan GUI untuk sistem Online Voting

Tampilan awal terdapat blok untuk voter melakukan log in, result area akan selalu aktif sampai voter keluar dari sistem.

Ruang lingkup

Blok log in

(24)

14 Tampilan setelah login

Daftar kandidat

Tombol pilihan dan verifikasi pilihan

(25)

15 Lampiran 3 Pengujian Blackbox sistem Online Voting

Tabel Pengujian Situs IPB Online Voting

No. Deskripsi Uji Kondisi Awal Skenario Uji Hasil yang diharapkan

Hasil Uji

1 Membuka halaman utama

4 Membuka halaman profil kandidat

5 Membuka halaman pemilihan umum

(26)

16 Tabel Pengujian Database CLA dan GUI Online Voting

No. Deskripsi Uji Kondisi Awal Skenario Uji Hasil yang Diharapkan

2 Melakukan pemilihan kandidat

Pilihan voter masuk ke sistem

Berhasil

3 Melakukan logout Voter dalam kondisi log in

Voter mengklik tombol log out

Voter keluar sistem

Berhasil

4 Membangkitkan bilangan random key

Database dan

Tabel Pengujian Java Web Start

No. Deskripsi Uji Kondisi Awal Skenario Uji Hasil yang diharapkan

Hasil Uji

1 Voter mengunduh Voter.rar dari situs Online Voting

Voter belum memiliki kunci simetri

Voter membuka

2 Voter mencoba menjalankan aplikasi Online Voting Java Web Start

(27)

17 No. Deskripsi Uji Kondisi Awal Skenario Uji Hasil yang

diharapkan

Hasil Uji

kandidat

4 Voter mencoba untuk menverifikasi apakah hasil pilihannya telah dihitung oleh CTF

Voter telah button verify Vote

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 Voter.Java

Voter belum memiliki kunci simetri

(28)

18 No. Deskripsi Uji Kondisi Awal Skenario Uji Hasil yang

diharapkan

Hasil Uji

simetri+Nonce+ni lai Hash (paket 2) yang telah dienkripsi dari voter menuju CTF

kunci simetri +Nonce+Hash (paket 2) dari voter

paket 2 dan mengirimkannya kepada CTF

kunci simetri voter

7 7

.

CTF mengirimkan Nonce balasan kepada Voter

Voter belum menerima Nonce balasan

CTF

mengirimkan Nonce balasan

Voter menerima Nonce balasan dari CTF

Berhasil

Tabel Pengujian Koneksi CTF ke Database

No. Deskripsi Uji Keadaan Awal Skenario Uji Hasil yang Diharapkan

Hasil Uji

1

Pengiriman hasil pemilihan kandidat ke database CTF

Jumlah suara kandidat di database belum bertambah

Pemilih memilih salah satu kandidat

Jumlah suara kandidat terpilih di database 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

(29)

5 Disclosure, merupakan akses terhadap

informasi dari pihak yang tidak berhak. Deception, merupakan penerimaan dari data yang salah.

Disruption, merupakan gangguan atau pencegahan dari operasi yang benar. Usurpation, merupakan pengaturan dari beberapa bagian sistem oleh pihak yang tidak berhak.

Kebijakan (Policy)

Kebijakan merupakan suatu pernyataan yang dibutuhkan untuk membatasi sesuatu yang diperbolehkan dan tidak dalam pembuatan sistem pemilu. Banyak hal yang harus diberi kebijakan seperti contoh kebijakan atau aturan yang diterapkan oleh KPU dalam melaksanakan pemilu secara manual. Dalam hal ini dapat berupa suatu prosedur, metode, alat, ruang lingkup akses dan lain-lain.

Spesifikasi (Specification)

Setelah kebijakan dibuat, maka akan dilakukan spesifikasi dari kebijakan tersebut. Spesifikasi dibuat agar dapat menentukan kebutuhan dari sistem yang akan dikerjakan. Menurut Bishop (2003), spesifikasi adalah pernyataan baik formal maupun informal mengenai fungsi sistem yang diinginkan. Spesifikasi dapat berupa bagian low-level, kombinasi kode program dengan logika dan hubungan kewaktuan untuk menetapkan tugas yang dikerjakan.

Perancangan (Design)

Perancangan merupakan hal yang sangat penting dalam pembuatan suatu sistem. Tahap ini merupakan tahap untuk merinci kebutuhan-kebutuhan dari spesifikasi yang telah dibuat. Dengan demikian perancangan tersebut tidak diizinkan keluar dari spesifikasi yang telah dibuat.

Perancangan dibuat secara detail, mulai dari fungsi-fungsi yang dibutuhkan hingga alur kerja sistem. Pada penelitian ini dibuat perancangan dalam beberapa kelompok yaitu: perancangan GUI untuk Voter, pengembangan alur komunikasi CLA server dengan voter dari penerimaan Username dan Password hingga pengecekan (otentikasi Voter), serta perancangan penyimpanan username dan password dengan menggunakan Toplink Object Relational Mapping.

Implementasi (Implementation)

Pada tahap ini hasil analisis dan perancangan akan diimplementasikan menjadi suatu sistem dengan lingkungan implementasi sebagai berikut:

1 Implementasi untuk GUI menggunakan Java Swing dan Java AWT dengan menitikberatkan pada penggunaan Layout Manager.

2 Platform : Java 1.4 (Platform independent & inbuilt security features).

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 Implemetasi untuk penyimpanan username dan password menggunakan object relational mapping yaitu Toplink. Pengujian (Testing)

Tahap pengujian dilakukan untuk menguji apakah sistem yang dibangun memberi hasil keluaran seperti yang diharapkan. Pengujian pada penelitian ini dilakukan dengan Metode Black Box dan simulasi.

Lingkungan Pengembangan

Perangkat keras dan perangkat lunak yang digunakan dalam penelitian ini berupa notebook dengan spesifikasi sebagai berikut:

Perangkat keras:

Processor Intel Pentium® Core TM Duo

Memori 1 GB

Harddisk 160 GB Perangkat Lunak:

Sistem operasi: Windows XP SP2

Netbeans IDE 6.5

XAMPP-win32-1.6.8

HASIL DAN PEMBAHASAN Threats (Ancaman)

(30)

6 CLA server sebagai salah satu server yang

bertugas untuk otentikasi dan validasi voter, sehingga ada beberapa hal kemungkinan ancaman yang timbul, yaitu:

a Snooping (pengintaian), ancaman ini bersifat pasif karena pengintai hanya memata-matai. Ancaman ini merupakan bagian dari disclosure/ akses informasi bagi yang tidak berwenang. Di dalam kaitannya dengan CLA server pengintai berusaha mengetahui username dan password. Untuk mengatasi hal ini dilakukan pengiriman username dan password kepada voter melalui email dengan terlebih dahulu voter melakukan registrasi pada sistem.

b Modification or alteration (modifikasi atau pengubahan), ancaman ini bersifat aktif karena melakukan perubahan terhadap sistem yang ada. Ancaman ini merupakan bagian dari disruption dan usurpation/ pengaturan dan perubahan terhadap bagian sistem oleh pihak yang tidak berwenang . Pada CLA server pengubahan berbahaya jika terjadi di beberapa bagian berikut:

Pada Voter database. Database ini merupakan tempat menyimpan data dari CLA server yang kemudian dikirim kepada voter melalui e-mail. Pengubahan kunci simetri dari CLA yang merupakan kunci untuk keamanan komunikasi antara Voter dan CLA. Hal ini mungkin terjadi pada saat voter mengirimkan pesan enkripsi “CLAID-VoterID” bersama kunci simetri blowfish dengan kunci publik CLA. Namun kunci publik yang digunakan menggunakan kunci publik dengan 2048 bit yang saat ini kemungkinan untuk diprediksi masih sulit.

c Masquering (penyamaran) yaitu peniruan terhadap suatu entitas terhadap entitas yang lain. Ancaman ini akan memancing korban (voter) agar memercayai yang melakukan komunikasi dengannya adalah entitas/ pihak yang benar. Akan tetapi, sebenarnya yang berkomunikasi adalah entitas yang lain atau disebut attacker (penyerang). Ancaman ini merupakan bentuk dari deceptio(penerimaan dari data yang salah) dan usuraption Dalam konteks CLA server hal ini terjadi jika voter menyangka bahwa pihak yang berkomunikasi dengannya adalah CLA server yang benar padahal tidak. Hal ini

akan menyebabkan suara yang voter pilih tidak dapat dihitung oleh sistem.

Sebaliknya jika CLA server menyangka ia sedang berkomunikasi dengan voter yang benar maka hasil perhitungan suara tidak akan valid. Untuk menangani masalah ini diperlukan otentikasi dari CLA server dan voter.

Untuk mengatasi hal ini, CLA dan voter memiliki bukti untuk memastikan bahwa masing-masing mereka merupakan pihak yang benar. Bukti tersebut berupa CA atau Certificate Authority. CA merupakan identitas dari CLA dan voter.

Alur pembuktian dari masing-masing entitas adalah ketika CLA mengirimkan paket yang dienkripsi oleh kunci private CLA dan didekripsi oleh voter menggunakan kunci publik. Jika voter tidak dapat melakukan dekripasi terhadap paket tersebut maka CLA bukanlah entitas yang benar.

Policy (Kebijakan)

Kebijakan keamanan adalah pernyataan atas apa yang diperbolehkan dan tidak diperbolehkan dalam menjalankan sebuah

sistem. Dengan demikian sistem yang

dibangun secara komputerisasi akan

digunakan jika terdapat protokol yang menjamin (Schneier 1996):

1 Privasi individu

2 Pencegahan terhadap kecurangan

Berdasarkan pemilu yang sesungguhnya, suatu protokol yang ideal harus memiliki 6 persyaratan sebagai berikut :

1 Hanya pemilih yang berhak yang dapat

memberikan suara (Otentifikasi)

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.

Specification (Spesifikasi)

(31)

7 akses untuk CLA membutuhkan spesifikasi

sebagai berikut:

a Sistem dari voter ke CLA membutuhkan: 1 Pengamanan data untuk pengiriman

kunci simetri. Pengiriman ini menggunakan kunci publik.

2 CLA memperbolehkan voter untuk masuk/log in beberapa kali, namun untuk memilih hanya boleh satu kali. 3 Pengamanan data untuk menjaga

keutuhan data dengan menggunakan fungsi hash.

4 Otentikasi dan verifikasi voter dan CLA dengan menggunakan CA. b Untuk GUI sistem membutuhkan:

1 Java swing dan Java awt untuk pembuatan GUI.

2 GUI untuk voter dapat melakukan log in.

3 GUI untuk voter melihat hasil komunikasi antara voter dan CLA. 4 GUI untuk voter memilih kandidat

yang hanya diperbolehkan untuk memilih satu kandidat.

5 GUI untuk verifikasi pilihan dan untuk log out.

c Untuk menyimpan data username, password, dan ValidationID membutuhkan:

1 ORM (Object Relational Mapping) yang berguna untuk konversi dari database relasional ke object oriented.

2 Database untuk tempat menyimpan datanya.

Design (Perancangan)

Pada penelitian ini dilakukan beberapa bagian perancangan sistem pemilu online. Sebelumnya program pemilu online dibangun oleh Sireesha, Janga dan So-In Chakchai, akan tetapi akan dilakukan pengembangan lebih lanjut dari sistem tersebut. Perancangan secara umum dari sistem online voting ini menggunakan protocol two central facilities. Berdasarkan ruang lingkup yang dijelaskan sebelumnya, perancangan yang dikembangkan pada penelitian ini berfokus pada komunikasi antara voter dan CLA hingga voter mendapatkan nilai validationID. Perancangan yang akan dilakukan meliputi tiga rancangan utama yaitu: perancangan GUI untuk voter, perancangan alur komunikasi voter dan CLA, perancangan database menggunakan ORM.

Hasil perancangan untuk ketiga bagian tersebut sebagai berikut:

a Perancangan GUI

Perancangan GUI yang dibutuhkan untuk aplikasi Online Voting cukup sederhana. Berdasarkan spesifikasi yang telah dibuat, GUI akan dibangun dengan berbasiskan pada container dari layout manager yang berguna mengatur posisi dari bagian-bagian GUI. Di samping itu, penelitian ini menggunakan package dari Java Swing dan Java AWT untuk pemrograman GUI.

Adapun perancangan dari GUI yang akan dibangun adalah:

Perancangan susunan bagian-bagian dengan menggunakan layout manager sehingga posisinya dapat disesuaikan. Perancangan bagian untuk voter dapat melakukan log in (masuk ke sistem). Bagian ini terdiri atas field untuk username dan password serta tombol submit agar sistem dapat menerima username dan password dari voter. Perancangan GUI setelah log in yaitu perancangan bagian daftar kandidat yang akan dipilih. Bagian ini akan dirancang menggunakan Radio Button agar voter hanya dapat memilih satu kandidat. Perancangan tombol untuk melakukan pilihan dan verifikasi pilihan.

Perancangan Result Area atau area hasil yang berfungsi untuk menampilkan alur dari sistem. Misalnya kesalahan memasukkan username dan password, pengiriman data ke CLA dan lain sebagainya yang berhubungan dengan alur sistem secara umum.

Perancangan tombol untuk keluar dari sistem. Bagian ini dirancang pada sistem setelah voter melakukan log in.

b Alur komunikasi voter-CLA

Pada penelitian ini, perancangan proses dari alur komunikasi voter ke CLA Server dibahas secara umum.

Secara umum CLA berfungsi sebagai salah satu server yang memiliki beberapa fungsi utama yaitu:

1 Memberikan Certificate kepada masing-masing voter.

2 Melakukan pertukaran kunci simetri blowfish dengan menggunakan kunci publik CLA.

(32)

8 Berdasarkan fungsi utama di atas, berikut

alur secara keseluruhan dari protokol voter ke CLA. Mula-mula CLA mengirim CA kepada voter. Setelah voter menerima CA kemudian voter mendekripsi CA dengan menggunakan berkas CA.publik. Hasil dari dekripsi voter mendapatkan CLA publik.

Voter mengirimkan pesan ke CLA yang sudah dienkripsi dengan kunci publik CLA. Pesan tersebut berisi CLAID-VoterID, blowfish symmetric key, dan nilai Nounce(number used once). Nilai Nounce atau nomor yang digunakan hanya sekali berfungsi untuk menghindari ancaman penyerangan kembali (reply attack). CLA menerima pesan dari voter dan mendekripsinya. Setelah didekripsi maka CLA mendapatkan kunci simetri. Kunci ini berfungsi untuk komunikasi dengan voter. Kemudian CLA mengirim CLAID dan VoterID dengan menggunakan SHA-1 unuk menjaga keutuhan pesan. Kemudian CLA mengirim pesan ke voter CLAID-VoterID beserta nilai nounce+1.

Kemudian voter mengirimkan username dan password kepada CLA dengan enkripsi dan SHA-1. CLA server akan mendekripsi pesan dari voter tersebut dan memeriksa fungsi hashnya. Setelah dilakukan pengecekan keutuhan pesan maka CLA akan melakukan otentikasi username dan password dari voter.

Setelah melakukan otentikasi dan jika dianggap valid maka CLA mengirimkan validationID ke voter dan akan digunakan oleh voter untuk melakukan pilihan. Disamping itu CLA juga menambahkan jumlah bagi voter yang sama melakukan log in dan disimpan dalam CLA.voters-count.

Flowchart dari komunikasi CLA-voter

hingga voters mendapatkan validationID

dapat dilihat pada Gambar 5. Gambar 5. Flowchart secara umum Alur

voter CLA

c Perancangan database menggunakan ORM

Pada penelitian ini database berfungsi sebagai tempat menyimpan data dari CLA.voters. Data ini kemudian akan dikirim ke email voter yang telah melakukan registrasi sebagai suatu verifikasi.

Database pada penelitian dirancang menggunakan database relasional. Namun, dikarenakan pada penelitian ini menggunakan bahasa pemrograman Java yang berbasis

CLA.publik,

Menerima pesan dari voter mulai

Membangkitkan objek untuk kunci-kunci dari

server

password benar

Cek isi paket,

ValidationID ke voter

(33)

9 orientasi objek maka dibutuhkan suatu ORM/

object relational mapping untuk mengonversinya. ORM merupakan suatu pemetaan database yang bersifat relasional ke orientasi objek. Perancangan database pada penelitian ini menggunakan Toplink sebagai ORM.

Tabel yang terdapat pada database dibentuk menjadi objek yang dapat diakses dari suatu model kelas tertentu. Hasil analisis perancangan konseptual database CLA ini hanya memiliki satu entitas, yaitu claserver yang merepresentasikan tabel pada database relasional. Hasil perancangan konseptual dari database CLA ini dapat dilihat pada Tabel 1 berikut:

Tabel 1 Perancangan konseptual database CLA

Nama

Entitas Atribut Deskripsi claserver

Implementation (implementasi)

Implementasi untuk pengembangan sistem ini menggunakan bahasa pemrograman Java dengan menggunakan IDE Netbeans 6.5.

Implementasi dari pembuatan GUI dimulai dari menetukan posisi dari masing-masing blok dengan mengggunakan kontainer pada layout manager. Setiap bagian didefinisikan dalam satu blok. Masing-masing blok juga didefiniskan ukurannya, pengaturan posisi, dan isi dari blok tersebut.

Pendefinisian ukuran dan posisi dilakukan memanfaatkan fungsi dari layout manager yaitu GridBagLayout. Pertama, dibuat objek dari GridBagLayout. Kemudian, akan digunakan fungsi yang ada untuk menentukan rincian dari pengaturan masing-masing blok yang akan dibuat.

Java Swing dan Java Awt digunakan untuk membuat graphic seperti warna, font, tombol, radio button untuk daftar kandidat, field dan lain-lain.

Secara umum, hasil dari pengembangan User Interface ada 3 bagian. Pertama, bagian sebelum log in, kedua, bagian setelah log in dan monitoring pada area hasil. Di lain pihak untuk log out, voter hanya menekan tombol log out ketika sistem berada dalam kondisi log in.

Bagian pertama, voter akan disediakan blok untuk melakukan log in, terdiri atas tempat masukan username dan password. Kedua, bagian setalah log in, sistem menyediakan daftar pemilih dalam bentuk radio button, tombol pilihan, tombol verifikasi pilihan dan tombol log out. Ketiga, bagian area hasil yang merupakan implementasi dari TextArea dan merupakan tempat monitoring komunikasi antara voter dan sistem. Hasil dari pegembangan GUI dapat dilihat pada Lampiran 2.

Pada penelitian ini, untuk CLA server tidak dilakukan pengembangan lebih lanjut dari sistem yang sudah ada. CLA server yang ada hanya dianalisis dan dilakukan monitoring stabilitas server. Secara umum CLA server memiliki memiliki fungsi yaitu membaca meesage digest, membaca array byte dalam basis format 64, memisahkan ValidationID yang kemudian dikirim ke voter dan fungsi untuk media kontrol perhitungan bagi setiap voter melakukan log in.

Implementasi dari pembuatan database menggunakan bahasa pemrograman Java dan database MySQL. Seperti yang diuraikan pada metode penelitian, untuk menghubungkan database relasional ke bahasa pemrograman berorientasi objek menggunakan Toplink Object Relational Mapping. Toplink akan memetakan suatu tabel ke dalam suatu kelas model agar dapat diakses dalam bentuk objek. Dengan demikian untuk mengakses tabel pada database tidak dalam bentuk query biasa seperti query SQL tapi mengakses model yang telah dibentuk menjadi objek.

Database CLA hanya terdiri atas satu tabel yaitu tabel dari CLAvoters. Tabel ini menyimpan data berupa username, password dan ValidationID. Database ini bertujuan untuk data yang akan dikirim kepada voter melalui email. Voter yang akan dikirimkan adalah voter yang telah melakukan registrasi. Proses ini merupakan proses verifikasi voter.

Testing (Pengujian)

Metode terakhir adalah tahap pengujian

terhadap sistem Online Voting. Pengujian

dilakukan menggunakan black-box testing.

Pengujian dibagi ke dalam beberapa tahap, yaitu:

1 Tahap menjalankan berkas generate

random key yang berfungsi untuk

membentuk berkas-berkas yang

Gambar

Gambar 4 The Security Life Cycle
Gambar 5. Flowchart secara umum Alur
Tabel 1 Perancangan konseptual database
Tabel Pengujian Situs IPB Online Voting
+7

Referensi

Dokumen terkait

A set of IFRS financial statements includes an income statement, balance sheet, statement of changes in equity, cash flow statement, accounting policies and notes to the

Berdasarkan latar belakang masalah yang telah diuraikan di atas, maka perlu dilakukan kajian lebih lanjut tentang Penggantian Biaya Kepada Saksi Atau Ahli Dalam

Tujuan yang ingin dicapai dalam penelitian tindakan kelas ini adalah Untuk mengetahui efektifitas penggunaan model pembelajaran Demonstrasi dan Presentasi dalam

Sistem pencahayaan pada setiap ruang sudah sesuai dengan Feng Shui aliran bentuk, dari segi pencahayaan alami (lampu) dan buatan (matahari), khususnya cahaya matahari

Sedangkan kondisi ultimit (116.643,400 N (89% x total berat bangunan)) pola retak geser dinding bata terjadi pada diagonal kolom tepi ke kolom tengah dan menjalar naik pada tepi

variabel bebas secara bersama-sama terhadap variabel terikat. Untuk mengetahui pengaruh gabungan variabel bebas terhadap. variabel terikat dilakukan dengan

(2007a) melaporkan bahwa proses SSF lebih toleran terhadap senyawa inhibitor yang terbentuk atau yang berasal dari proses perlakuan penda- huluan, yang biasanya terdapat

Hasil penelitian menunjukkan film Bulu Mata pada tahap pra produksi yaitu melakukan perencanaan ide dengan pegiat film lain serta pihak Suara Kita, bagaimana memfokuskan