Analisis dan Pengembangan GUI dan Protokol Kriptografi voter-CLA Berbasis Two Central Facilities Hasanul Fajri Nuras G64051421 Dosen Pembimbing Dr. Sugi Guritman, MS • Latar Belakang Melaksanakan pemilu Mengeluarkan daftar pemilih KPU Menghitung hasil pemilu Mempublikasikan pemilu SEMUA DI KONTROL OLEH KPU • Latar Belakang (Con’t) Oleh karena semua di kontrol KPU Kurangnya kepercayaan masyarakat terhadap hasil pemilu, misal pemilu dilaksanakan secara jujur dan adil Kurangnya kepercayaan terhadap KPU, apakah KPU bertindak arif dan adil • Latar Belakang (Con’t) • Seiring berkembangnya teknologi, kita dapat memcoba memanfaatkan teknologi tersebut • Memanfaatkan protokol untuk pemilihan umum dan menggunakan kriptografi untuk keamanannya • Tujuan penelitian • Penelitian ini memiliki dua tujuan utama: umum • penelitian ini adalah membuat simulasi aplikasi Online Voting apakah sistem ini dapat diaplikasikan pada lingkungan IPB khusus • mengembangkan GUI untuk aplikasi Online Voting, • mengembangkan protokol kriptografi untuk voter-CLA • mengembangkan basisdata penyimpanan data akses voter. • Ruang lingkup penelitian Ruang lingkup • Ruang lingkup penelitian • Fokus dari penelitian ini adalah – menganalisa dan implementasi dari GUI untuk sistem Online Voting, – pengembangan protokol yang menghubungkan Voter dan CLA(Central Legitimization Agency)/ hubungan CLA dengan Voter hingga Voter memiliki nomor validasi untuk bisa melakukan pemilihan. – pengembangan basisdata sebagai tempat menyimpan data hak akses bagi voter • Tinjauan pustaka Kriptografi Kriptografi berasal dari gabungan kata kripto yang berarti rahasia dan grafi yang berarti tulisan kriptografi dapat diartikan sebagai studi matematika yang berkaitan dengan aspek keamanan seperti (Guritman,2003): • • • • Kerahasian (confidentiality) Konsisten (integrity) Autentik Non-repudasi Protokol Kriptografi Protokol kriptografi protokol yang menggunakan kriptgrafi (Munir, 2004). Disamping semua persyaratan dari protokol harus terpenuhi, protokol kriptografi meliputi algoritma kriptografi. Enkripsi dan Dekripsi Menurut kurniawan (2008): • Enkripsi: Proses pengubahan pesan sedemikian sehingga isi pesan disembunyikan. • Enkripsi juga dapat dikatakan sebagai proses pengubagan dari plaintext ke ciphertext, dengan algoritme kriptografi tertentu. Enkripsi dan Dekripsi (Con’t) Dekripsi : proses pengubahan kembali dari ciphertext ke plaintext dengan algoritme kriptografi tertentu. Kunci Simetri dan Kunci Publik Kunci Simetri • Kunci Simetri (Session Key) adalah kunci yang dirancang sedemikian sehingga kunci yang digunakan untuk enkripsi sama dengan kunci yang digunakan pada proses. 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. • 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) Secure Hash Algorithm (SHA)-1 SHA atau Secure Hash Algorithm adalah fungsi hash satu-arah yang dibuat oleh NIST. 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 : Penambahan bit-bit pengganjal (padding bits), Penambahan nilai panjang pesan semula, Inisialisasi penyangga (buffer) MD, Pengolahan pesan dalam blok berukuran 512 bit. (Munir 2006) 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 • Sekali pengguna mengakses, aplikasi akan terintegrasi dgn desktop pengguna (Sun Microsystem 2005) Layout Manager Layout manager berhubungan dengan tampilan Voter Interface yaitu apa yang terlihat oleh Voter di layar monitor ketika program java baik aplikasi maupun applet dijalankan Tugas dari layout manager adalah : • mengatur posisi komponen dengan tidak tergantung kepada platform, resolusi layar monitor, dan Font, • peletakan komponen secara cerdas di dalam container (ukurannya berubah-ubah secara dinamis pada saat runtime), • kemudahan translasi misalnya, jika sebuah String diubah panjangnya setelah translasi akan tetap terjaga letaknya dengan benar. ( Wijono S.H et al, 2006) Object Relational Mapping • Object-relational mapping merupakan proses transformasi antara pengembangan objek dan relasional serta sistem yang mendukung pengembangan tersebut • Idealnya terdapat suatu integrasi model yang mendekripsikan pemodelan objek dan pemodelan relasional pada pengembangan tersebut (Fussel 1997) Toplink Toplink merupakan package ORM (object relational mapping) untuk pengembang yang menggunakan bahasa java Toplink memberikan suatu kerangka kerja yang kuat dan fleksibel untuk menyimpan objek java dalam suatu basisdata relasional atau untuk konversi objek java ke dalam dokumen XML. (Oracle 2009) Metode Pengujian Blackbox Metode ini berfokus pada persyaratan fungsional perangkat lunak memungkinkan analis mendapatkan kondisi input yg menggunakan semua persyaratan fungsional suatu program Pendekatan komplementer -> kemungkinan besar mampu menemukan kesalahan • • • • • fungsi-fungsi yg tidak benar/hilang kesalahan antarmuka kesalahan dlm struktur data/akses basisdata eksternal kesalahan kinerja inisialisasi & kesalahan terminasi (Pressman 2001) • Metode penelitian Ancaman (Threat) Kebijakan (Policy) Pengujian Security life Cycle Implementasi (Implementation) Spesifikasi (Specification) Perancangan (Design) • Ancaman (Threat) Ancaman merupakan kekerasan potensial dalam suatu sistem keamanan. sistem yang dibangun perlu memperhatikan beberapa hal yang dibagi menjadi 4 kelas, yaitu : • Disclosure, pengaksesan 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 • Spesifikasi (Specification) Menurut Bishop (2003), spesifikasi adalah pernyataan baik formal maupun informal mengenai fungsi sistem yang diinginkan Spesifikasi dibuat agar dapat menentukan kebutuhan dari sistem yang akan dikerjakan dalam menjalankan kebijakan • Perancangan (Design) Perancangan dibuat tidak diizinkan keluar dari spesifikasi yang telah dibuat Tahap untuk merinci setiap kebutuhan dari spesifikasi yang telah dibuat Lingkup perancangan: • perancangan GUI untuk Voter • pengembangan alur komunikasi CLA server dengan voter • perancangan basisdata CLA dengan menggunakan Toplink Object Relational Mapping • Implementasi (Implementation) Implementasi untuk GUI menggunakan Java Swing dan Java AWT dengan menitikberatkan pada penggunaan Layout Manager. Platform : Java 1.4 (Platform independent & inbuilt security features). RSA (2048 bits) : Enkripsi kunci publik. BlowFish (56 bits) : Enkripsi kunci simetri. SHA-1 (160 bits) : signature/Hashing. CA : Transmisi kunci publik secara aman. 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. • Hasil dan pembahasan • Threats (Ancaman) Snooping (pengintaian) • ancaman ini bersifat pasif karena pengintai hanya mematamatai • pengintai berusaha mengetahui username dan password Modification or • Pengubahan username dan password pada basisdata alteration • Pengubahan kunci simetri dari CLA yang merupakan kunci untuk keamanan komunikasi antara Voter dan (modifikasi atau CLA. pengubahan) • jika voter menyangka bahwa pihak yang berkomunikasi dengannya adalah CLA server yang Masquering benar padahal tidak. Hal ini akan menyebabkan (penyamaran) suara yang voter masukkan tidak dapat dihitung oleh sistem atau terjadi sebaliknya. • Policy (Kebijakan) sistem yang dibangun secara komputerisasi akan digunakan jika terdapat protokol yang menjamin (Schneier,1996): Privasi individu Pencegahan terhadap kecurangan • Specification (Spesifikasi) Untuk GUI, sistem membutuhkan: • • • • Java swing dan java awt untuk pembuatan GUI. GUI yang dapat melakukan Log in. GUI untuk melihat hasil komunikasi antara voter dan CLA. GUI untuk memilih kandidat yang hanya diperbolehkan untuk memilih 1 kandidat. • GUI untuk verifikasi pilihan dan untuk log out. Sistem dari voter ke CLA membutuhkan: • Pengamanan data untuk pengiriman kunci simetri. • CLA memperbolehkan voter untuk masuk/log in beberapa kali, namun untuk memilih hanya boleh satu kali. • Pengamanan data untuk komunikasi dan untuk menjaga keutuhan data • Specification (Spesifikasi) Con’t Untuk Penyimpanan Data username, password, dan ValidationID membutuhkan: • ORM (Object Relational Mapping) yang berguna untuk konversi dari basisdata relasional ke object oriented. • Basisdata untuk media penyimpanannya. • Design (Perancangan) • Perancangan GUI • Bagian Sebelum Log in • Bagian Setelah Log in atau bagian untuk melakukan pemilihan • Alur komunikasi voter-CLA secara umum • Perancangan basisdata menggunakan ORM • Design (Perancangan) con’t Membangkitkan objek untuk kunci-kunci dari server mulai Mengirim CLA.cert ke voter dengan enkripsi CLA.publik, CLA.cert keluar Nounce+1, CLAIDVoterID Menerima pesan dari voter Membaca CLA.cert Membuat koneksi jaringan Menerima pesan dari voter Cek isi paket, cocok atau tidak ? KS, nilai nounce, hash CLA mendekripsi pesan Mengirim pesan ke voter dengan KS username,password ,SHA1 Dekripsi pesan dari voter CLA mengirim ValidationID ke voter selesai CLA.publik, CLA.private CLA memasukkan data log in ke data store CLA Apakah username & password benar keluar • Implementation (Implementasi) GUI Basisdata CLA • Bahasan pemrograman: java dengan IDE Netbeans 6.5 • Penggunaan kontainer pada layout • Menggunakan java Swing dan java Awt dalam pembentukan grafik • Bahasa pemrograman: Java dengan menggunakan Toplink ORM • Web server: Apache • Sistem manajemen basisdata: MySQL • Testing (pengujian) Pengujian pengembangan basisdata yang telah dibuat • Sistem akan mengenerate nilai random ke dalam berkas dan untuk berkas CLAvoters dicek apakah berhasil masuk kedalam tabel basisdata Pengujian penggunaan java web start • tahap ini akan diuji apakah sistem sudah berjalan dengan baik dan stabil jika berada dalam jaringan pengujian GUI Online Voting • Tahap ini akan diuji setiap bagian yang ada pada GUI, apakah bagian tersebut berfungsi sesuai yang diharapkan • Kesimpulan dan Saran • Kesimpulan • Sistem IPB Online Voting dengan menerapkan protokol Two Central Facilities dapat meningkatkan efektifitas dan efisiensi perhitungan suara terkait dengan sumber daya yang meliputi waktu, biaya dan tenaga • Penggunaan layout manager dalam pengembangan GUI sangat tergantung pada posisi yang ditentukan • Penggunaan Object Relaional Mapping mempermudah sistem yang berbasis objek untuk melakukan akses ke basisdata • Penggunaan teknologi Java Web Start akan membuat sistem ini menjadi lebih mudah untuk digunakan di dalam suatu jaringan • Saran • Meningkatkan cakupan jaringan yang lebih luas dalam implementasi Online Voting. • Menyimpan semua berkas dari pembentukan bilangan random ke dalam basisdata dan mengekripsi basisdata tersebut • Untuk pengujian disarankan menggunakan metoe pengujian lain yang menguji secara rinci protokol kriptografi dari sistem ini. • Terima Kasih…