Sistem e-Voting menurut
Election Markup Language (EML)
Specification Version 6.0
Bowo Prasetyo Universitas Gunadarma
8 Nopember 2011
Model Proses Pemilihan
●
Tahap pra-pemungutan:
– Proses nominasi kandidat. – Proses pendaftaran pemilih.
●
Tahap pemungutan:
– Proses pemungutan.
●
Tahap pasca-pemungutan:
– Proses penghitungan hasil. – Proses audit.
Proses Nominasi Kandidat
●
Adalah proses untuk menyetujui
nominator sebagai kandidat sah untuk
posisi tertentu di pemilihan.
●
Kandidat bisa individu atau partai.
Alur Nominasi Kandidat
●
Penyelenggara pemilihan membuka proses
nominasi.
●
Pihak yang berminat melakukan nominasi
kandidat (210).
– a. Nominator sendiri melakukan nominasi
dengan melampirkan daftar pendukung.
– b. Setiap pendukung menominasikan
kandidatnya dengan persetujuan sang nominator.
●
Penyelenggara pemilihan memeriksa
Alur Nominasi Kandidat
●
Mungkin juga berkomunikasi dengan
penyelenggara pemilihan di wilayah lain
(230).
●
Nominator akan diberitahu hasil
pemeriksaan (220).
●
Hasil akhir proses ini adalah daftar
kandidat (230).
Skema EML Nominasi
Kandidat
●
EML 110 – peristiwa pemilihan
– Informasi mengenai pemilihan. Biasanya
digunakan untuk mengkomunikasikan informasi dari penyelenggara pemilihan.
●
EML 210 – nominasi kandidat
– Untuk menominasikan kandidat atau partai,
persetujuan atau pengunduran diri.
●
EML 220 – jawaban terhadap nominasi
– Untuk mengkonfirmasi apakah nominasi
Skema EML Nominasi
Kandidat
●
EML 230 – daftar kandidat
– Rincian kontes dan kandidat.
Pendaftaran Pemilih
●
Adalah proses pencatatan hak pilih
seseorang pada sistem pendaftaran
pemilih.
●
Bagian penting dari proses ini adalah
identifikasi orang tersebut.
Alur Pendaftaran Pemilih
●
Dimulai dari komunikasi antara pemilih
dan penyelenggara pemilihan (310):
– Menambah pemilih.– Memodifikasi pemilih (termasuk
menghapus).
– Cara komunikasi tidak ditentukan, bisa
online maupun offline.
●
Pertukaran data dengan database lain
(penyelenggara pemilihan wilayah lain,
lembaga pemerintah dll) (330).
Alur Pendaftaran Pemilih
●
Di sini komunikasi dengan pemilih
meliputi:
– Opsi kanal pemilihan (360).
– Informasi pemungutan (150/340). – Generik (350).
●
Pada tanggal yang telah ditentukan,
subset dari database pemilih akan
ditetapkan, kemudian dari sini akan
dihasilkan daftar pemilih (330).
Skema EML Pendaftaran
Pemilih
●
EML 150 – distrik geografis
– Mengizinkan penggunaan sistem pemetaan
geografis untuk menggambarkan distrik dan batas pemilihan serta pemungutan.
●
EML 310 – pendaftaran pemilih
– Untuk mendaftarkan pemilih pada pemilihan.
●
EML 330 – daftar pemilih
Skema EML Pendaftaran
Pemilih
●
EML 340 – informasi pemungutan
– Pemberitahuan ke pemilih pada pemilihan,
keabsahan mereka dan bagaimana untuk memberikan suara.
●
EML 350 – generik
– Menyediakan struktur bersama untuk
komunikasi dari/ke pemilih dan internal.
●
EML 360 – kanal
– Menawarkan/menetapkan kanal pemungutan
dari pemilih.
Proses Pemungutan
●
Meliputi
– Otentikasi pemilih, dan – Pemberian suara.
Alur Pemungutan
●
Pemilih memberikan suara dengan pilihan:
– Cara fisik: kanal pos atau surat suara
kertas.
– Cara elektronik: berbagai kanal e-voting.
●
Setiap kanal mempunyai gateway untuk
menerjemahkan antara terminal pemilih
dan sistem pemungutan (410, 420, 430,
440, 450, 445).
●
Otentikasi memastikan pemilih yang sah
(420).
Alur Pemungutan
●
Pemilih memberikan suara secara
teramankan (440).
●
Suara disegel bersama vtoken dan
dimasukkan ke kotak suara elektronik
(460).
●
Log vtoken (470) dan log audit (480)
dikumpulkan ke sistem audit.
Skema EML Pemungutan
●
EML 410 – surat suara
– Menggambarkan surat suara aktual yang
digunakan pada pemilihan.
●
EML 420 – otentikasi pemilih
– Untuk otentikasi pemilih sepanjang proses
pemungutan.
●
EML 430 – jawaban otentikasi
– Menunjukkan apakah otentikasi sukses
atau tidak, mungkin menampilkan surat suara ke pemilih.
Skema EML Pemungutan
●
EML 440 – memberikan suara
– Catatan aktual dari pemberian suara.
●
EML 445 – mengambil suara
– Untuk sistem yang mempunyai kotak pra
surat suara dari mana suara dapat diambil dan dikonfirmasi.
●
EML 450 – mengkonfirmasi suara
– Menunjukkan apakah suara telah diterima
dan memberikan nomor referensi atau ditolak.
Skema EML Pemungutan
●
EML 460 – grup suara
– Grup dari suara yang dikirim untuk
penghitungan.
●
EML 470 – log vtoken
– Menambahkan token pemungutan ke log
audit.
●
EML 480 – log audit
– Akses dokumen ke catatan pemungutan
Proses Pelaporan Suara
Alur Pelaporan Suara
● Sistem pemungutan mengkomunikasikan suara
ke sistem penghitungan atau sistem analisa.
– Menghasilkan perhitungan suara (510). – Penghitungan ulang dapat dilakukan di sini.
● Perhitungan suara dianalisa dan diperiksa.
– Menghasilkan hasil akhir (520).
● Hasil akhir dapat dianalisa dan diperiksa lagi.
● Atau diekstrak statistiknya untuk diinput ke sistem
analisa.
Skema EML Pelaporan Suara
●
EML 510 – perhitungan
– Hasil dari kontes pemilihan dan
perhitungan.
●
EML 520 – hasil
– Mengkomunikasikan rincian hasil spesifik
atas kandidat dan pemilihan.
●
EML 530 – statistika
– Informasi statistik mengenai perhitungan
dan hasil di atas.
Sistem Pengauditan
●
Lembaga legal berisi petugas pemilihan
dan perwakilan kandidat dapat menguji
proses-proses yang digunakan untuk
mengumpulkan dan menghitung suara,
sehingga akan membuktikan keaslian
hasil akhir.
Persyaratan Pengauditan
●
Petugas pemilihan harus dapat menghitung
semua surat suara:
– yang diterbitkan = yang digunakan + yang
rusak + yang tidak digunakan.
– Masukan: 460 (suara), 470 (vtoken), 480
(audit).
– Dan log dari sistem otentikasi pemilih
(vtoken generator):
● Jumlah pemilih sah dan vtoken yang
dihasilkan.
– (460 + 470) vs (log sistem otentikasi). – 460 vs 480.
Persyaratan Pengauditan
●
Petugas pemilihan harus dapat
membuktikan bahwa suara tidak diubah:
– Suara harus disegel bersama vtokendengan digital signature.
●
Petugas pemilihan harus dapat menghitung
ulang suara ketika hasil dipermasalahkan.
– Jumlah suara dalam (460) vs audit (480).Persyaratan Pengauditan
●
Petugas pemilihan harus punya
mekanisme yang memungkinkan banyak
pemantau menyaksikan semua proses
pemungutan.
– Segel dan log audit (480) memungkinkan
pemantauan saat pemungutan
berlangsung tanpa mengungkap suara maupun identitas pemilih.
Keamanan e-Voting menurut
Election Markup Language (EML)
Specification Version 6.0
Persyaratan Keamanan Dasar
●
Otentikasi
– Pengecekan kebenaran klaim identitas
atau hak pilih.
●
Privasi/Kerahasiaan
– Informasi pemilih dan suaranya harus
dirahasiakan.
– Jumlah perolehan suara kandidat tidak
boleh diketahui sampai pemungutan selesai.
Persyaratan Keamanan Dasar
●
Integritas
– Surat suara yang ditampilkan dan suara
yang diberikan harus benar dan tidak diubah.
● Suara harus disegel dengan digital
signature.
●
Non-repudiation
– Pemilih tidak bisa menyangkal pilihannya.
● Suara harus disegel dengan digital
signature.
Persyaratan Keamanan
Spesifik
● Hanya pemilih sah yang dibolehkan memberikan
suara.
● Hanya satu set pilihan yang dibolehkan per
pemilih per kontes.
● Suara tidak dapat diubah dari maksud pemilih. ● Suara tidak boleh dipantau sampai waktunya. ● Sistem evoting harus akuntabel dan auditabel. ● Informasi otentikasi pemilih/hak pilih harus dijaga
Persyaratan Keamanan
Spesifik
●
Privasi pemilih harus dijaga sesuai hukum.
●
Opsi pemberian suara untuk pemilih harus
genuine.
●
Pembuktian bahwa semua suara genuine
telah dihitung dengan akurat.
Arsitektur Keamanan
●
Identifikasi dan pendaftaran pemilih
●
Otentikasi hak pilih
●
Validasi hak pilih dan penyegelan suara
●
Kerahasiaan suara
●
Akurasi penghitungan suara
●
Kendali keamanan sistem e-voting
Identifikasi dan Pendaftaran
Pemilih
●
Termasuk proses pra-pemungutan.
●
Otentikasi identitas seorang pemilih.
●
Otentikasi hak pilih orang tersebut.
Otentikasi Hak Pilih
●
Pada saat pemungutan pemilih sah
mendapat vtoken sebagai otentikasi hak
pilih.
●
Vtoken unik dan random.
●
Vtoken diasosiasikan dengan suara.
●
Vtoken tidak bisa diasosiasikan dengan
identitas pemilih.
Validasi Hak Pilih dan
Penyegelan Suara
●
Sebelum memberikan suara vtoken harus
divalidasi.
●
Suara harus disegel bersama vtoken
dengan digital signature, sehingga:
– Suara tidak dapat diubah dari maksud
pemilih.
– Sistem evoting menjadi akuntabel dan
Kerahasiaan Suara
●
Semua suara yang diberikan tidak bisa
dipantau sampai waktu yang ditentukan.
– Tidak ada akses ke database suara. – Tidak ada akses ke kunci dekripsi suara.●
Suara tidak bisa diasosiasikan dengan
pemilih.
– Vtoken tidak bisa diasosiasikan dengan
pemilih.
– Urutan suara di database diacak, supaya
tidak sesuai dengan urutan pemilih.
Akurasi Penghitungan Suara
●
Audit harus dapat membuktikan bahwa:
– Semua suara yang diberikan adalah
genuine.
– Semua suara genuine adalah dihitung.
●
Diperlukan penyegelan (suara + vtoken)
dengan digital signature.
– Skema 470 dan 480.Kendali Keamanan Sistem
eVoting
●
Seluruh operasi sistem evoting dan
lingkungan fisiknya harus teramankan.
●
Diperlukan kendali sistem yang tepat
terkait prosedur, fisik dan komputasi.
●
Diperlukan kebijakan keamanan tertulis
berdasar analisa resiko yang
mengidentifikasi:
– Target-target keamanan.
– Kendali keamanan yang diperlukan.
Implementasi Vtoken dan Signature
EVM versi 1.0
Memberikan Suara
Pilihan (Suara)
●
WriteInCandidateName
– Nama (gabungan) kandidat yang
ditampilkan ke pemilih, apa adanya langsung dicatat termasuk nomor, titik, spasi dan tanda baca lainnya.
– Misal: “1. Durian – Sirsak“, “2. Pisang –
Semangka”, dll.
Vtoken
●
4 byte nomor TPS.
●
128 bit (16 byte) UUID.
●
Vtoken adalah byte array dengan panjang
20:
– Posisi[0 - 3] = nomor TPS. – Posisi[4 – 19] = UUID.
Suara + Vtoken
public class SealStructure
implements Serializable {
private byte[] vtoken;
private String vote;
}
●
Diserialisasi ke byte array.
●
Dienkripsi dengan publik key sebagai
secret key menggunakan algoritma DES.
Signature
●
Obyek signature adalah:
– Pada mesin vtoken generator: vtoken. – Pada mesin EVM: (suara + vtoken).
●
Menggunakan algoritma SHA1 dengan
DSA.
●
Private key menggunakan algoritma DSA
dengan encoding PKCS8.
●
Public key menggunakan algoritma DSA
Format Penulisan File
● Byte array ditulis langsung sebagai file binari.[256 byte FVote][64 byte FSign]
● FVote[255] = panjang array (suara + vtoken) ● FVote[0 ~ …] = array (suara + vtoken)
● FSign[63] = panjang array signature ● FSign[0 ~ …] = array signature