• Tidak ada hasil yang ditemukan

Ancaman merupakan hal yang sangat perlu untuk diperhatikan karena ancaman adalah suatu tindakan yang berpotensi untuk merusak sistem keamanan. Pada penelitian ini CLA server membutuhkan suatu analisis ancaman dalam hubungannya dengan komunikasi data ke voter atau sebaliknya.

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)

Berdasarkan ruang lingkup penelitian yang dijelaskan sebelumnya. Sistem membutuhkan spesifikasi sebagai berikut. Sistem protokol kriptografi untuk CLA server, GUI untuk voter dan database untuk menyimpan data hak

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.

3 Melakukan otentikasi terhadap voter yang valid.

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, CLA.private Membuat koneksi jaringan Mengirim CLA.cert ke voter dengan enkripsi CLA mendekripsi pesan Mengirim pesan ke voter dengan KS Membaca CLA.cert Menerima pesan dari voter mulai Membangkitkan objek untuk kunci-kunci dari server CLA.publik, CLA.cert KS, nilai nounce, hash Apakah username & password benar

Cek isi paket, cocok atau tidak ? Kembali ke mulai Dekripsi pesan dari voter username, password, SHA1 Menerima pesan dari voter Kembali ke mulai CLA mengirim ValidationID ke voter CLA memasukkan data log in ke data store CLA Alur selesai Nounce+1, CLAID-VoterID Tidak Ya Ya Tidak

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 nomor, username, password, validationid Informasi user access 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

dibutuhkan dalam protokol sistem online voting, dan mengecek apakah data untuk CLAvoters masuk ke dalam database

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 sudah berjalan dengan baik dengan

protokol Two Central Facilities dan

apakah sistem sudah cukup stabil jika digunakan di dalam jaringan. Tahap ini berhasil.

3 Tahap pengujian GUI Online Voting.

Tahap ini menguji setiap bagian yang ada

pada GUI apakah bagian tersebut

berfungsi sesuai yang diharapkan. Tahap ini berhasil untuk setiap bagian GUI. Hasil pengujian secara lengkap dapat dilihat pada Lampiran 3.

Dokumen terkait