Analisis dan Pengembangan GUI dan Protokol

advertisement
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…
Download