REPRESENTASI
WORD GRAPH
MENGGUNAKAN
XML UNTUK KATA SIFAT DALAM BAHASA INDONESIA
RIA ASTRIRATMA
DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
BOGOR
2012
PENGEMBANGAN SISTEM AUTENTIKASI
VOTER
PADA
CENTRAL LEGITIMIZATION AGENCY
MENGGUNAKAN MEDIA MIFARE
SMART CARD
®DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
BOGOR
2012
Skripsi
sebagai salah satu syarat untuk memperoleh gelar
Sarjana Komputer pada
Departemen Ilmu Komputer
PENGEMBANGAN SISTEM AUTENTIKASI
VOTER
PADA
CENTRAL LEGITIMIZATION AGENCY
MENGGUNAKAN MEDIA MIFARE
SMART CARD
®ABSTRACT
ALFIAN PRAYANTA. The Development of Voting Authentication in Central Legitimization Agency Using Mifare Smart Card® Technology. Supervised by SUGI GURITMAN and SHELVIE NIDYA NEYMAN.
Cryptography becomes one of the important things in the development of electronic voting system. The voting system using internet network technology aims to reduce considerable calculation time as well as necessary human resources. Securing lines of communication between voting machines and servers is needed to communicate securely. The identity of the voters, which is used for authentication voting process is stored in Mifare smart card called identity card. Every identity card which contains unique identification and nomor induk kependudukan will be authenticated in Central Legitimization Agency server. Card identity is hashed with SHA-2 and encrypted with session key to assure that the integrity of data is not changed by others. Session key is distributed from CLA to voting machines which are encrypted with asymmetric RSA algorithm. Only voting machines can decrypt the ciphertext to get the session key as plaintext. The list of the voters who are allowed to vote is stored in the CLA database. The decrypted plaintext must be identical to one of the voters in the voters list, for the voter to be able to vote. Only one vote for each of the voters can be casted. If the time limit is reached, CLA will distribute the vote count to the Central Tabulating Facilities. Considering the complexity in building a complete secure online election voting process, this research is only focused developing a system to authenticate the voter identity in CLA from identity card which is stored in Mifare smart card.
Judul Skripsi : Pengembangan Sistem Autentikasi Voter pada Central Legitimization Agency
Menggunakan Media Mifare Smart Card®
Nama : Alfian Prayanta
NIM : G64070087
Menyetujui:
Pembimbing I, Pembimbing II,
Dr. Sugi Guritman Shelvie N. Neyman, S.Kom, M.Si
NIP. 19620927 199203 1 004 NIP. 19770206 200501 2 002
Mengetahui:
Ketua Departemen Ilmu Komputer,
Dr. Ir. Agus Buono, M.Si, M.Kom NIP. 19660702 199302 1 001
RIWAYAT HIDUP
Alfian Prayanta, anak laki-laki dari dua bersaudara pasangan Bapak Drs. M. Salam, M.Si dan Ibu Dra. Yernida, dilahirkan di Kota Jambi, Jambi pada Selasa, 14 Maret 1989. Pada tahun 2007, penulis lulus dari Sekolah Menengah Atas (SMA) Negeri 1 Kota Jambi kemudian penulis menempuh jalur Seleksi Penerimaan Mahasiswa Baru (SPMB) di Kota Jambi untuk masuk ke Institut Pertanian Bogor sebagai mahasiswa Departemen Ilmu Komputer Angkatan 44.
Saat ini, penulis telah menyelesaikan Praktik Kerja Lapang di Balai Mesin Perkakas, Teknik Produksi dan Otomasi – Badan Pengkajian dan Penerapan Teknologi. Pada Agustus 2010, penulis tergabung ke dalam tim database dan juga tim algoritma dalam proyek Optimasi Peletakan dan Pengambilan SLAB pada Pabrik Hot Strip Mill (HSM) PT. Krakatau Steel Indonesia. Penulis pernah
menjadi pengurus Komunitas Networking dan juga menjadi Ketua Komunitas Himpunan Mahasiswa
Ilmu Komputer (Himalkom), Institut Pertanian Bogor. Penulis pernah tergabung dalam oraganisasi Badan Eksekutif Mahasiswa Keluarga Mahasiswa Institut Pertanian Bogor (BEM-KM IPB) Kabinet Generasi Insiprasi periode 2010 sebagai staf Kementerian Pengembangan Sumber Daya Manusia. Penulis juga pernah menjadi Manager Humas pada Leadership and Entrepreneurship School (LES). Di kampus, penulis aktif menjadi asisten mata kuliah Basis Data, Rekayasa Perangkat Lunak, dan Sistem Pakar pada tahun 2009 hingga 2011 di Departemen Ilmu Komputer Institut Pertanian Bogor.
PRAKATA
Rasa syukur penulis ucapkan kepada Allah subhanahu wa-ta'ala yang telah memberikan anugerah dan rahmat-Nya hingga proses pembuatan skripsi ini dapat terselesaikan dengan lancar. Skripsi
berjudul “Pengembangan Sistem Autentikasi Voter pada Central Legitimization Agency
Menggunakan Media Mifare Smart Card” ini berangkat dari keinginan penulis yang ingin membantu mewujudkan pemilu di Indonesia ke arah yang lebih baik secara elektronik menggunakan protokol keamanan yang menjamin entitas dan proses didalamnya. Penelitian ini diharapkan dapat menjadi sumbangan pemikiran yang nantinya dapat terus dikembangkan bagi penyelenggaraan pemilu secara lebih luas di masa mendatang. Seiring dengan terselesaikannya skripsi ini, penulis ingin mengucapkan terima kasih kepada:
1 Ayah dan Ibu, Muhammad Salam dan Yernida, kedua orang yang menjadi sumber kekuatan untuk
tetap maju dan melangkah. Terima kasih pula penulis ucapkan kepada kakak perempuan, Anggi Pratiwi, yang selalu mengajarkan untuk tidak cepat menyerah dan menyadarkan bahwa mempelajari ilmu pengetahuan dimulai dari mencintai ilmu pengetahuan itu sendiri.
2 Bapak Dr. Sugi Guritman selaku pembimbing pertama yang telah menumbuhkan rasa kecintaan akan ilmu kriptografi dan mencetuskan pemikiran awal untuk mengerjakan penelitian e-voting. 3 Ibu Shelvie Nidya Neyman, S.Kom, M.Si selaku pembimbing kedua yang telah memberikan
memberi arahan, bimbingan, serta motivasi untuk menyelesaikan skripsi ini.
4 Ibu Dr. Ir. Sri Nurdiati, M.Sc selaku penguji yang telah memberikan motivasi spiritual, semangat pantang menyerah, dan selaku Ibu yang dalam kesibukannya masih menyempatkan mendengarkan cerita suka duka anak didiknya yang membutuhkan arahan, bimbingan, serta memberikan dorongan moril dan perhatian kepada penulis.
5 KPU Kota Bogor dan Kominfo Kota Bogor yang telah membantu dan bekerja sama dalam mendukung proses pengerjaan e-voting serta penyelenggaraan uji coba e-voting di Desa Cipaku, Bogor pada bulan Juli 2011.
6 Teman-teman yang menemani dari awal menginjakkan kaki di IPB hingga semester akhir perkuliahan dapat terlewati dan membantu penulis dalam tugas-tugas kelompok maupun pribadi, Auzi Asfarian, Yuridis Kurniawan, Adi Gunarso, Dean Apriana Ramadhan, Laras Muatiara Diva, Rani Dwijayanti, Ni Made Febriantini. Skripsi ini penulis persembahakan bagi teman-teman seperjuangan NCC Fitrah, Erick, Aco, Trie, Gamma, Gema, dan Teguh. Tidak lupa penulis ucapkan terimakasih kepada sahabat, Fitrah SFK, dan Gema Alief Utama, rekan seperjuangan dalam usaha bersama kita CV Skylynx Tekomindo. Terima kasih untuk teman-teman yang sering menghibur dengan permainan Dotanya, Aco, Bangun, Sayed, Gamma, Rilan, Raden, dan sahabat-sahabat yang tidak bisa penulis sebutkan satu persatu, terimakasih atas segala pertolongan dan bantuannya selama ini.
7 Rekan-rekan seperjuangan HIMALKOM 2009 dan BEM KM IPB 2010 Kabinet Generasi
Inspirasi yang telah memberikan dan mengajarkan rasa kekeluargaan, kebersamaan, kepemimpinan, kemandirian, entrepreneurship, serta pelajaran berharga lainya yang tidak akan pernah didapatkan dari ruang kuliah.
8 Seluruf staf pengajar Departemen Ilmu Komputer yang telah berbagi banyak ilmu, filosofi, dan cerita-cerita luar biasa sehingga mempelajari ilmu komputer menjadi hal yang menyenangkan. Terima kasih juga penulis ucapkan kepada segenap staf administrasi dan perpustakaan Departemen Ilmu Komputer yang telah membantu hingga skripsi ini dapat terselesaikan. Terima kasih atas bantuan semua pihak.
Akhir kata semoga karya ilmiah ini dapat bermanfaat dan memberi inspirasi bagi peneliti-peneliti muda lainnya untuk terus berlomba menciptakan karya terbaik.
Bogor, Januari 2012
v
DAFTAR ISI
Halaman
DAFTAR GAMBAR ... vi
PENDAHULUAN Latar Belakang ... 1
Tujuan ... 2
Ruang Lingkup ... 2
Manfaat ... 2
TINJAUAN PUSTAKA Kriptografi ... 2
Algoritme RSA ... 2
Algoritme AES ... 3
Secure Hash Algorithm (SHA)-2 ... 3
Central Legitimization Agency (CLA) ... 3
Central Tabulating Facilities (CTF) ... 3
Mifare Smart Card dan Reader ... 3
METODE PENELITIAN Ancaman (Threats) ... 4
Kebijakan (Policy) ... 5
Spesifikasi (Specification) ... 5
Perancangan (Design) ... 5
Implementasi (Implementation) ... 5
Pengujian (Testing) ... 5
HASIL DAN PEMBAHASAN Ancaman (Threats) ... 5
Kebijakan (Policy) ... 6
Spesifikasi (Specification) ... 6
Perancangan (Design) ... 7
Implementasi ... 9
Uji Keamanan Sistem ... 13
KESIMPULAN DAN SARAN Kesimpulan ... 15
Saran ... 15
vi
DAFTAR GAMBAR
Halaman
1
Protokol
e-voting
yang disesuaikan
... 12 Enkripsi dan dekripsi ... 2
3 Mifare smart card reader tipe ACR122U NFC ... 4
4 The security life cycle ... 4
5 Diagram alir pengiriman kunci simetri AES dari CLA ... 8
6 Diagram alir pembacaan Card identity dari Mifare smart card ... 8
7 Diagram alir autentikasi Card identity pada CLA ... 9
8 Mifare smart card klasik dengan kapasistas 1 kilobyte ... 11
9 Mifare smart card klasik dengan kapasistas 4 kilobyte ... 11
PENDAHULUAN
Latar Belakang
Pemilihan umum (pemilu) merupakan bagian penting dalam sistem demokrasi Indonesia. Sejak meraih kemerdekaan pada tahun 1945, Indonesia tercatat telah 10 kali menyelenggarakan pemilu. Secara umum, terdapat 4 aspek yang dapat diamati dari pemilu sebelumnya, yaitu sumber daya manusia, biaya, waktu, dan keamanan.
Banyak kendala dan permasalahan yang timbul pada penyelenggaraan pemilu hingga tahun 2009 yang lalu. Pada tahun 2011, dialog nasional yang diprakarsai oleh KPU yang
bertema “Menuju Pemilu Elektronik di
Indonesia” menyimpulkan beberapa masalah yang ditimbulkan pemilu konvensional, yaitu: Banyak terjadi kesalahan dalam proses
pendataan dan pendaftaran pemilih. Pemilih salah dalam memberi tanda pada
kertas suara.
Proses pengumpulan kartu suara yang
berjalan lambat.
Kurang terjaminnya kerahasiaan dari
pilihan yang dibuat oleh seseorang. Keterlambatan dalam proses tabulasi hasil
perhitungan suara di daerah.
Penelitian ini mencoba menawarkan solusi
untuk memecahkan permasalahan yang
ditimbulkan pada pemilu sebelumnya dengan menggunakan sistem terotomatisasi (e-voting). Sistem e-voting yang aman, efektif, dan
efisien diperlukan demi suksesnya
penyelenggaraan pemilu sebagai tolak ukur
keberhasilan penerapan demokrasi di
Indonesia. E-voting menawarkan beberapa keunggulan dibandingkan sistem pemilu
konvensional, diantaranya mempercepat
perhitungan suara, memudahkan pengolahan suara, memudahkan verifikasi, menghemat
biaya, dan meningkatkan efektivitas
pelaksanaan pemilu.
Pada tahun 2001, DuFeu dan Harris melakukan penelitian tentangsistem e-voting,
dengan mengimplementasikan Central
Legitimization Agency (CLA) dan Central
Tabulating Facilities (CTF) untuk pemilu
yang aman. Penelitian terkait selanjutnya pada tahun 2005, Sireesha dan Chakchai melakukan penelitian dengan memodifikasi
sistem e-voting protokol Two Central
Facilities dengan menambahkan spesifikasi
pada entitas-entitas yang terlibat di dalam
protokol, dengan tujuan untuk meningkatkan keamanan sistem e-voting secara keseluruhan.
Penelitian-penelitian terdahulu
memer-lukan modifikasi dan penyesuaian jika ingin
diterapkan pada e-voting di Indonesia,
diantaranya dengan melakukan
penyempurnaan serta pengembangkan
protokol e-voting Two Central Facilities. Protokol ini dipilih karena termasuk protokol yang paling memenuhi sebagian besar
persyaratan untuk menjalankan secure
election dan memiliki tingkat keamanan yang
paling tinggi dibandingkan protokol-protokol lain yang dijelaskan oleh Schneier (1996).
Mengingat protokol Two Central Facilities tidak dapat secara langsung diterapkan pada pemilu di Indonesia, penelitian ini akan
menyesuaikan protokol tersebut dengan
kebijakan dan kebutuhan sistem e-voting di Indonesia. Secara spesifik, penelitian ini menitikberatkan kepada proses autentikasi
voter pada server CLA yang merupakan
bagian dari protokol Two Central Facilities. Ilustrasi protokol dapat dilihat pada Gambar 1 yang ditandai dengan garis berwarna merah.
Gambar 1 Protokol e-voting yang disesuaikan.
Proses autentikasi voter mengirimkan
voter identity dari mesin voting menuju CLA
yang secara tidak langsung akan
membangkitkan validation ID pada CLA.
Voter identity akan yang didapat oleh CLA
akan diautentikasi. Jika voter identiy terdaftar, sah, dan belum melakukan pemilihan, CLA akan mengirimkan validation ID untuk voter
identity tersebut sebagai legitimasi untuk
Tujuan
Tujuan utama dari penelitian ini untuk mengembangkan sistem autentikasi voter pada CLA dengan protokol Two Central Facilities serta melakukan pembacaan card identity pada Mifare smart card menggunakan Mifare smart
card reader yang dapat diterapkan pada
e-voting di Indonesia.
Ruang Lingkup
Ruang lingkup penelitian ini difokuskan kepada pembacaan data dari media Mifare
smart card yang digunakan untuk autentikasi
voter pada CLA. Penelitian ini dimulai dari
proses pembacaan voter identity dari Mifare
smart card yang kemudian dikirimkan menuju
CLA untuk dilakukan proses autentikasi dan selanjutnya pemberian legitimasi kepada mesin voting untuk melakukan pemilihan. Penelitian dilakukan bersama 2 rekan yang lain, Fitrah Fajar dan Erik Priyanggodo, untuk membuat model simulasi e-voting agar dapat diimplementasikan secara menyeluruh. Proses komunikasi antara mesin voting dan CTF
dikembangkan oleh Erik Priyanggodo,
sedangkan protokol e-voting secara
keseluruhan dikembangkan dan dianalisis oleh Fitrah Fajar.
Manfaat
Manfaat dari penelitian ini adalah
menghasilkan simulasi e-voting yang dapat dijadikan acuan dan media sosialisasi untuk
penyelenggaran pemilu dengan sistem
e-voting di Indonesia.
TINJAUAN PUSTAKA
Kriptografi
Kriptografi, menurut Schneier (1996), adalah seni dan ilmu untuk menjaga keamanan pesan. Beberapa istilah menurut Schneier yang sering digunakan dalam kriptografi, antara lain:
a) Plaintext: Semua data yang belum diproses
melalui suatu algoritme kriptografi.
Plaintext dapat berupa teks, gambar, atau
bentuk lainnya.
b) Ciphertext: Hasil proses algoritme
kriptografi dari suatu plaintext.
c) Enkripsi: Proses pengubahan pesan
sedemikian sehingga isi pesan
disembunyikan. Enkripsi juga dapat
dikatakan sebagai proses pengubahan
plaintext ke ciphertext, dengan algoritme
kriptografi tertentu.
d) Dekripsi: Proses pengubahan kembali dari
ciphertext ke plaintext dengan algoritme
kriptografi tertentu.
e) Cipher: Suatu algoritme kriptografi yang
dapat melakukan enkripsi dan dekripsi. f) Key: Parameter kunci yang digunakan oleh
cipher dalam melakukan proses enkripsi
dan dekripsi.
g) Message digest: Ukuran byte kecil yang
menunjukkan ukuran plaintext. h) Hash: Nama lain dari message digest.
Skema proses enkripsi dan dekripsi secara umum dapat dilihat pada Gambar 2.
Enkripsi Dekripsi
Plaintext Ciphertext
Original Plaintext
Gambar 2 Enkripsi dan dekripsi.
Algoritme RSA
Algoritme RSA dinamakan berdasarkan nama tiga orang penemunya yakni Ron Rivest,
Adi Shamir, dan Leonard Adleman.
Keamanan algoritme RSA didapatkan dari sulitnya memfaktorkan bilangan yang besar menjadi faktor-faktor prima. Pemfaktoran dilakukan untuk memperoleh kunci privat. Algoritme RSA memiliki besaran-besaran sebagai berikut:
1 p dan q bilangan prima (rahasia)
2 N = p. q (tidak rahasia)
3 φ (N) =(p-1)(q-1) (rahasia) 4 e (kunci enkripsi) (tidak rahasia) 5 d (kunci dekripsi) (rahasia)
6 m (plaintext) (rahasia)
7 c (ciphertext) (tidak rahasia)
Deskripsi sederhana dari algoritme RSA dijelaskan sebagai berikut, diberikan nilai N yang untuk persamaan:
Dengan p dan q adalah dua bilangan prima besar dengan ukuran yang sama. Diberikan nilai e dan d dengan ketentuan sebagai berikut:
N adalah RSA modulus, e adalah
encryption exponent, dan d adalah decryption
exponent. (N,e) adalah kunci publik yang
N = p . q
digunakan untuk enkripsi pesan. Kunci rahasia atau kunci privat yang digunakan untuk mendekripsi ciphertext atau pesan yang telah dienkripsi ke pesan sebenarnya (Boneh 1999). Pesan adalah bilangan integer M, untuk mengenkripsi M menggunakan cara C = Me
mod N. Untuk mendekripsi ciphertext
digunakan perhitungan M = Cd mod N (Boneh 1999).
Algoritme AES
AES merupakan algoritme kriptografi yang didesain untuk beroperasi pada blok pesan 128 bit dan menggunakan tiga variasi blok kunci dengan panjang 128 bit, 192 bit, atau 256 bit. Penelitian ini menggunakan algoritme AES dengan panjang kunci 128 bit. Empat proses utama algoritme AES sebagai berikut:
1. SubBytes (Transformasi Subtitusi Byte).
2. ShiftRows (Transformasi Pergeseran
Baris).
3. MixColumns (Transformasi Percampuran
Kolom).
4. AddRoundKey (Transformasi Penambahan
Kunci).
Struktur algoritme secara umum cukup sederhana. Proses enkripsi dan dekripsi
diawali proses AddRoundKey diikuti
sembilan round yang masing-masing tersusun
atas empat proses, dan diakhiri round
kesepuluh yang terdiri atas tiga proses yaitu
SubBytes, ShiftRows, dan AddRoundKey yang
menghasilkan ciphertext. (Stallings 2003).
Secure Hash Algorithm (SHA)-2
Untuk menghindari masalah keamanan yang disebabkan oleh collision pada SHA-1,
dikembangkan algoritme penggantinya.
Algoritme SHA generasi selanjutnya disebut
juga algoritme SHA-2. Penelitian ini
menggunakan salah satu dari algoritme SHA-2 yaitu SHA-256. Algoritme SHA-256 dapat digunakan untuk menghitung nilai message
digest dari sebuah pesan dengan panjang
maksimum 264 bit. Algoritme ini
menggunakan sebuah message schedule yang terdiri atas 64 elemen 32-bit word, delapan
buah variabel 32-bit, dan variabel
penyimpanan nilai hash 8 buah word 32-bit. Hasil akhir dari algoritme SHA-256 adalah sebuah message digest sepanjang 256-bit (NIST Secure Hash Standard 2008).
Central Legitimization Agency (CLA)
Central Legitimization Agency (CLA)
merupakan sebuah badan yang bertugas untuk
melakukan sertifikasi pemilih. Fungsi utama badan ini adalah untuk melakukan autentikasi dan otorisasi pemilih. CLA akan memeriksa apakah pemilih berhak atau tidak berhak melakukan pemilihan. CLA juga menyimpan daftar pemilih yang berhak melakukan pemilihan pada database CLA. Mesin voting akan mengirimkan identitas voter untuk selanjutnya dilakukan proses autentikasi.
Hanya voter yang terdaftar dan belum
melakukan pemilihan yang dapat memberikan suaranya. Pada saat pengiriman suara, CLA
akan membangkitkan Validation ID,
mendaftarkannya secara aman kepada CTF, dan mengembalikannya secara aman kepada mesin voting. Validation ID bernilai kompleks
sehingga secara komputasi tidak
dimungkinkan seorang penyerang untuk
memproduksi sebuah ID yang valid. CLA memiliki daftar sejumlah Validation ID yang
valid serta daftar identifikasi pengiriman suara
dari setiap Validation ID untuk mencegah pengiriman suara lebih dari satu kali (DuFeu dan Harris 2001).
Central Tabulating Facilities (CTF)
Central Tabulating Facilities (CTF)
merupakan suatu badan yang bertugas
melakukan penghitungan suara. CTF
menyediakan beberapa fungsionalitas sebagai berikut:
a) Menerima secure Validation ID yang telah disertifikasi oleh CLA.
b) Menerima suara dari mesin voting untuk selanjutnya dilakukan proses perhitungan. c) Mengizinkan mesin votinguntuk meminta
sertifikasi hasil perhitungan akhir.
Dalam rangka otorisasi pemilih, CTF melakukan pengecekan Validation ID dengan daftar yang diterima dari CLA. Jika Validation
ID valid, suara dari mesin voting akan
dimasukkan ke dalam kotak suara (DuFeu dan Harris 2001).
Mifare Smart Card dan Reader
Mifare card adalah salah satu perangkat penyimpanan, di mana memori dibagi menjadi segmen-segmen dan blok dengan mekanisme keamanan sederhana untuk kontrol akses. Berkat kehandalan dan biayanya yang rendah, Mifare card banyak digunakan untuk dompet elektronik, kontrol akses, kartu identitas perusahaan, transportasi, dan tiket stadion.
Salah satu varian Mifare card adalah
Mifare classic. Mifare Classic 1024 byte
menjadi 16 sektor dan masing-masing sektor dilindungi oleh dua kunci yang berbeda, yang disebut A dan B. Setiap sektor pada Mifare
classic 1024 byte terdiri dari 3 blok data dan 1
blok trailer. Mifare Classic 4096 byte dibagi menjadi empat puluh sektor, 32 sektor adalah ukuran yang sama seperti Mifare classic 1K dan delapan sektor sisanya adalah sektor yang ukurannya empat kali lipat dari sektor pada Mifare classic 1K.
Mifare smart card reader dapat
digunakan untuk melakukan proses
pembacaan UID (Unique Identity) dan nilai-nilai dari blok diagram pada Mifare card, sepertiditunjukkan pada Gambar 3.
Gambar 3 Mifare smart card reader ACR122U NFC (Advanced
Card Systems Limited 2008).
Mifare card reader ACR122U NFC
merupakan smart card reader/writer yang dikembangkan berdasarkan teknologi 13.56 MHz (RFID) contactless. Dengan kecepatan akses hingga 424 kbps dan kecepatan USB hingga 12 Mbps, ACR122U juga dapat membaca dan menulis lebih cepat dan efisien. Operasi kedekatan jarak ACR122U adalah sampai 5 cm, tergantung pada tipe contactless digunakan. Berikut adalah fitur dan spesifikasi dari ACR122U:
Fitur :
Read/write speed up to 424 kbps.
Built-in antenna for contactless tag access,
with card reading distance of up to 50 mm
(depending on tag type).
Built-in anti-collision feature (only 1 tag is
accessed at any time).
Spesifikasi:
Dimensions : 98 mm (L) x 65 mm (W) x
12.8 mm (H)
Weight : 70 g
Operating Temperature :0-50°C
Operating Frequency: 13.56 MHz
Operating System Support : Windows 98,
ME, 2000, XP, Vista, 7, Mac and Linux.
(Advanced Card Systems Limited 2008).
METODE PENELITIAN
Penelitian ini dikembangkan berdasarkan metode Security Life Cycle dari Bishop (2003). Terdapat 6 tahap utama didalamnya:
(1) Ancaman (Threats), (2) Kebijakan
(Policy), (3) Spesifikasi (Specification)(4)
Perancangan (Design), (5) Implementasi
(Implementation), serta (6) Operasi dan
Pemeliharaan (Operation and Maintenance). Metode Security Life Cycle dapat dilihat pada Gambar 4. Penelitian ini difokuskan dari tahap (1) hingga (5).
Gambar 4 The security life cycle (Bishop 2003).
Ancaman (Threats)
Sebuah ancaman (threat) adalah kekerasan potensial dalam suatu sistem keamanan. Dalam konteks pemilu, terdapat 4 kelas besar
serangan yang mengancam pertukaran
informasi yang dikirim dan diterima oleh
voter dan CLA, yakni:
a) Disclosure, yakni akses terhadap informasi
oleh pihak yang tidak berwenang.
b) Deception, yakni penerimaan data yang
salah.
c) Disruption, yakni gangguan atau
pencegahan terhadap operasi yang benar.
d) Usurpation, yakni pengaturan beberapa
Kebijakan (Policy)
Kebijakan keamanan adalah pernyataan atas apa yang diperbolehkan dan tidak diperbolehkan dalam menjalankan sebuah sistem. Metode, alat, atau prosedur untuk melaksanakan kebijakan keamanan tersebut dinamakan mekanisme keamanan. Sistem pemilu yang rentan terhadap serangan keamanan tentu membutuhkan kebijakan tentang hal-hal yang diperbolehkan dan tidak diperbolehkan dalam proses penyelenggaraan pemilu secara online. Kebijakan yang dibuat
untuk menjalankan pemilu online dalam
penelitian ini mengacu pada requirement
secure voting Schneier (1996) dan kebijakan
KPU (Komisi Pemilihan Umum) Kota Bogor dalam merancang sistem e-voting yang telah untuk diujicobakan pada pemilihan ketua RW kelurahan Cipaku, Bogor bulanMei 2011.
Spesifikasi (Specification)
Spesifikasi adalah pernyataan baik formal maupun informal mengenai fungsi sistem yang diinginkan (Bishop 2003). Setelah kebijakan pemilu dibuat, langkah selanjutnya adalah menentukan spesifikasi sistem. Agar dapat menjalankan mekanisme keamanan sesuai dengan kebijakan, sistem pemilu online membutuhkan berbagai spesifikasi keamanan
yang menjelaskan fungsi-fungsi yang
dikerjakan sistem agar dapat menjalankan kebijakan.
Perancangan (Design)
Tahap perancangan akan menerjemahkan
spesifikasi menjadi komponen-komponen
yang dapat diimplementasikan. Suatu
perancangan dikatakan sesuai dengan
spesifikasi jika dalam semua kondisi,
rancangan yang telah dibuat tidak
mengizinkan sistem untuk melanggar
spesifikasi.
Tahap perancangan sistem autentikasi
e-voting menggunakan media Mifare smart card
dimulai dari perancangan proses pengiriman kunci simetri, pembacaan card identity lalu dilakukan proses pengiriman card identity
menuju CLA untuk dilakukan proses
autentikasi. Secara garis besar perancangan sistem tersebut dapat dibagi menjadi tiga bagian, yakni:
1 Perancangan proses pengiriman kunci
simetri.
2 Perancangan pembacaan card identity dari Mifare smart card.
3 Perancangan pengiriman card identity dari mesin voting menuju CLA.
Implementasi (Implementation)
Pada tahap implementasi, hasil analisis dan perancangan akan diimplementasikan menjadi sistem dengan lingkungan implementasi sebagai berikut:
1 Platform: Web-based PHP
2 RSA (2048 bits): Enkripsi kunci publik 3 AES (128 bits): Enkripsi kunci simetri 4 SHA-2 (256 bits): Hashing
5 VPN : Pengamanan jalur komunikasi.
Implementasi e-voting menggunakan
algoritme yang telah direkomendasikan oleh
lembaga NIST (National Institute of
Standards and Technology) di Amerika.
Uji Kinerja Sistem
Tahap uji kinerja sistem melakukan pengujian terhadap serangan-serangan yang telah didefinisikan sebelumnya. Direkayasa
sebuah entitas palsu untuk melakukan
penyamaran sebagai entitas pada protokol.
HASIL DAN PEMBAHASAN
Ancaman (Threats)
Pengembangan sistem e-voting melibatkan banyak aspek teknis maupun non-teknis agar bisa diimplementasikan dan digunakan secara menyeluruh. Salah satu aspek penting yang
harus diperhitungkan adalah keamanan.
Pengembangan sistem ini dimulai dari analisis ancaman yang dapat menyerang sistem
e-voting sehingga tidak bekerja secara
semestinya dan juga dapat mengakibatkan terjadinya kebocoran data serta kecurangan oleh pihak-pihak yang tidak bertanggung jawab.
a) Pengintaian (snooping) merupakan penahanan informasi yang didapat pada saat proses komunikasi terjadi antara dua atau lebih entitas yang dilakukan oleh pihak yang tidak berwenang.Pengintaian dalam kotenks sistem e-voting berarti terdapat suatu entitas yang berhasil mendengarkan komunikasi pengiriman kunci simetri dari CLA menuju mesin
voting. Ancaman jenis ini tergolong ke
dalam kelas disclosure. Snooping
merupakan salah satu contoh serangan pasif. Pada Snooping, penyerang tidak terlibat langsung dalam komunikasi antara CLA dan mesin voting, namun menyadap pertukaran pesan antara kedua entitas. Tujuan penyerangan ini adalah untuk
mendapatkan informasi yang dapat
digunakan oleh kriptanalis atau pihak-pihak yang tidak berwenang. Untuk itu,
diperlukan layanan keamanan pesan
kerahasiaan untuk menjaga kemanan pada saat terjadi komunikasi kunci simetri antara CLA dan mesin mesin voting.
b) Modifikasi atau pengubahan (modification
oralternation) pengubahan informasi yang
dilakukan oleh pihak penyerang (attacker). Jika kunci simetri yang dibangkitkan oleh CLA telah diubah, mesin voting akan menerima kiriman kunci simetri berbeda yang dianggap benar oleh mesin voting. Ancaman ini pada akhirnya mengarah ke
dalam kelas deception. Ancaman
modifikasi yang mungkin terjadi dalam pengiriman card identity menuju CLA di antaranya kunci simertri yang sebelumnya dibangkitkan dan dikirimkan ke mesin
voting telah dirubah atau dirusak oleh
penyerang (attacker) saat kunci simetri dikirimkan dari CLA menuju mesin
voting. Hal ini menyebabkan komunikasi
antara mesin voting dan CLA tidak dapat dilakukan. Ancaman modifikasi terhadap
kunci simetri dapat menyebabkan
terjadinya peningkatan ancaman disruption
dan usurpation. Layanan keamanan
integritas (integrity) digunakan untuk menanggulangi masalah ini.
c) Penyamaran (masquerading) merupakan peniruan terhadap suatu entitas terhadap entitas yang lain. Ancaman ini akan mengumpan korban agar percaya bahwa entitas yang berkomunikasi dengannya adalah pihak yang benar, meski pada kenyataannya pihak tersebuat adalah
penyerang (attacker) yang bukan
merupakan pihak yang berwenang.
Sebagai contoh, saat CLA akan
mengirimkan kunci simetri kepada mesin
voting agar pemilih dapat melakukan vote
serta untuk keperluan komunikasi hasil vote, pihak yang menerima kunci tersebut bukanlah mesin voting melainkan entitas lain yang mengaku sebagai mesin voting. Untuk menangani ancaman ini konsep
autentikasi (authentication) dapat
digunakan untuk mencegah serangan ini.
Masquerading termasuk ancaman dalam
kelas deception dan usurpation.
Kebijakan (Policy)
Kebijakan yang diterapkan dalam
membangun sistem e-voting mengacu pada
buku Schneier (1996). Secure voting yang
dibangun secara komputerisasi dapat
digunakan jika terdapat protokol yang menjamin dua hal dibawah ini, yaitu:
1 Privasi individu.
2 Pencegahan terhadap kecurangan.
Suatu protokol yang ideal harus memiliki 6 persyaratan berikut:
1 Hanya pemilih yang berhak yang dapat memberikan suara (autentikasi);
2 Tidak ada yang dapat memberikan lebih dari satu suara;
3 Tidak ada yang dapat menentukan orang lain harus memilih untuk siapa;
4 Tidak ada yang dapat menduplikasi suara orang lain;
5 Tidak ada yang dapat mengubah pilihan orang lain;
6 Setiap pemilih dapat memastikan bahwa suara mereka sudah dikirimkan dan terhitung dalam penghitungan akhir.
Spesifikasi (Specification)
Terdapat asumsi dasar agar protokol yang didefinisikan dapat berjalan, yaitu keamanan VPN, RSA, dan realibility dari sistem. Secara umum sistem autentikasi voter pada CLA menggunakan media Mifare smart card yang dibangun dapat memenuhi spesifikasi umum sebagai berikut:
1 Hanya Mifare card yang terdaftar yang diizinkan melakukan pemilihan.
Terdapat UID dan NIK (Nomor Induk Kependudukan) pada Mifare cardyang bersifat unique
Hanya UID dan NIK yang terdapat
2 Setiap pemilih yang telah melakukan
pemilihan tidak dapat melakukan
pemilihan lagi.
UID dan NIK dari Mifare card yang telah melakukan pemilihan dicatat pada CLA.
Tidak dilakukan proses autentikasi
pada UID dan NIK yang telah berstatus
“2” yang berarti sudah melakukan
pemilihan sehingga setiap pemilih hanya dapat memberikan satu suara.
3 Tidak ada yang dapat menentukan orang lain harus memilih untuk siapa.
VPN hanya mengizinkan entitas-entitas
yang telah didaftarkan pada VPN untuk berkomunikasi dan menangkap pesan sehingga hanya mesin voter yang telah melakukan autentikasi card identity yang dapat melakukan pemilihan tanpa campur tangan entitas lain. Suara dari
voter langsung dihitung ke dalam suara
sementara tanpa dilakukan proses pencatatan pemilihan.
4 Tidak ada yang dapat menduplikasi suara orang lain.
Setiap pemilih yang telah melakukan
vote akan ditandai dan suara yang
diberikan langsung dihitung ke dalam perhitungan mesin voting tanpa melalui perekaman data. Suara yang telah diberikan untuk kandidat yang dipilih langsung bertambah satu untuk setiap pemilih yang memilih tanpa proses pencatatan siapa yang memilih untuk siapa. Tidak ada fasilitas untuk mengetahui pilihan seseorang sehingga duplikasi suara untuk kandidat tertentu tidak dapat dilakukan.
Jika Mifare card yang telah digunakan untuk pemilihan digunakan kembali pada periode pemilu yang sama, maka
mesin voting akan mengembalikan
pesan ke layar bahwa “ID voter sudah
melakukan pemilihan”.
5 Tidak ada yang dapat mengubah pilihan orang lain.
Sebelum memilih, setiap mesin voting
akan membaca card identity yang
bersifat unique dari setiap Mifare card yang digunakan. Card identity akan
diautentikasi dan dicek status
pemilihannya apakah sudah memilih atau belum. Setiap voter, mesin voting, dan CLA tidak dapat mengetahui dan mengganti pilihan setiap voter karena
hasil vote langsung dihitung ke dalam mesin voting tanpa dilakukan proses pencatatan.
6 Setiap pemilih dapat memastikan bahwa suara mereka sudah dikirimkan dan terhitung dalam penghitungan akhir. Setiap kali voter memberikan suara
kepada salah seorang kandidat, mesin
votingakan mencatat sementara hasil
voting dan menampilkan pesan “Anda
telah memilih kandidat nomor 1, 2,
atau 3”. Apabila pesan konfirmasi pemilihan telah muncul ke layar,
protokol menjamin bahwa hasil
pemilihan telah tercatat di database.
Sesuai dengan kebijakan KPU,
perhitungan suara hasil sementara tidak
diperlihatkan kepada voter karena
menyalahi peraturan yang ada.
Secara khusus terdapat spesifikasi
tambahan yang dikembangkan dalam
penelitian ini. Sistem menjamin agar voter dapat melakukan komunikasi secara lebih aman dengan CLA karena kunci simetri yang akan digunakan dibangkitkan secara acak oleh CLA. Kunci simetri dikirimkan kepada mesin
voting menggunakan algoritme RSA. Mesin
voting hanya bisa menerima kunci simetri dari
CLA yang telah diautentikasi. Kunci simetri yang diberikan hanya bisa didekripsi oleh mesin voting, karena hanya pasangan kunci publik yang diberikan kepada CLA dan pasangan kunci privat disimpan oleh mesin voting.
Perancangan (Design)
Secara umum sistem autentikasi voter pada CLA melayani 3 fungsionalitas agar CLA dapat berkomunikasi dengan mesin
voting yakni pengiriman kunci simetri AES,
pembacaan card identity dari Mifare smart card, dan autentikasi card identity. Proses pengiriman kunci simetri AES dari CLA
menuju mesin voting dilakukan melalui
langkah-langkah berikut:
1 Membangkitkan pasangan kunci publik
dan privat menggunakan algoritme RSA dengan panjang kunci 2048 bit.
2 Mengirimkan pasangan kunci publik ke
CLA.
3 Membangkitkan kunci simetri
menggunakan algoritme AES dengan panjang kunci 128 bit dan menerima pasangan kunci publik dari mesin voting.
4 Melakukan enkripsi dengan plaintext
publik RSA yang didapat dari mesin
voting.
5 Mengirimkan hasil enkripsi kunci simetri
(ciphertext) ke mesin voting.
6 Menerima ciphertext dan melakukan
proses dekripsi menggunakan pasangan kunci privat RSA yang sudah dibangkitkan sebelumnya.
Diagram alir pengiriman kunci simetri AES dari CLA dapat dilihat pada Gambar 5.
CLA Mesin Voting
Mulai
Pengiriman pasangan kunci publik ke CLA
Enkripsi (kunci simetri AES) menggunakan RSA Ciphertext Mengirimkan ciphertext
ke mesin voting
Dekripsi ciphertext menggunakan kunci privat RSA Selesai Plaintext (kunci simetri AES) Membangkitkan pasangan kunci publik Pasangan kunci publik (N, E) Membangkitkan kunci simetri AES 128 bit
Gambar 5 Diagram alir pengiriman kunci simetri AES dari CLA.
Fungsionalitas kedua yang dilayani oleh mesin voting adalah pembacaan card identity dari Mifare smart card menggunakan Mifare
smart card reader. Langkah-langkah
komunikasi yang dilakukan untuk memenuhi fungsionalitas yang kedua adalah:
1 Menjalan proses establish context.
2 Mendaftarkan Mifare smart card reader
yang telah terkoneksi dengan
komputer/mesin voting.
3 Memilih salah satu dari Mifare smart card
reader yang tersedia.
4 Mengatur waktu pengulangan pembacaan
menjadi 1 kali.
5 Memulai polling (meletakkan Mifare card di atas Mifare smart card reader).
6 Membaca UID dari Mifare smart card
yang diletakkan (unique).
7 Melakukan authentication, input key untuk mengakses block number.
8 Menentukan block number yang ingin
dibaca.
9 Membaca 32 (hexadecimal) karakter
sebagai NIK pada block number yang dipilih.
10 Menggabungkan UID dan NIK menjadi
satu string (desktop based).
11 Mengirimkan string hasil penggabungan ke mesin voting(web base).
Diagram alir pembacaan card identity pada mesin voting dari Mifare smart card dapat dilihat pada Gambar 6.
Mulai
Memilih mifare smart card Memulai polling (meletakkan mifare smart card)
Dekripsi ciphertext menggunakan kunci privat RSA Establish contex Mengatur waktu pengulangan pembacaan (1 kali) Mendaftarkan mifare smart card reader yang
tersedia
Membaca UID (unique)
Key authentication
UID (8 hex) Menentukan target block number
Membaca data dari block
number
NIK (32 hex)
String Concatenation
(UID + NIK)
String value
(40 hex)
Selesai
Key
= Key A?
Pembacaan
mifare smart card gagal Tidak Ya Pembacaan UID dan NIK berhasil Key A
Gambar 6 Diagram alir pembacaan card
identity dari Mifare smart card.
Fungsionalitas ketiga yang dilayani oleh mesin voting yaitu autentikasi card identity yang telah dibaca Mifare smart card reader. Hasil pembacaan value yang berupa string UID dan NIK akan dikirim oleh mesin voting
dilakukan pengecekan status pemilihan. Jika
card identity yang sudah pernah digunakan
memilih digunakan kembali, maka sistem
akan mengembalikan pesan “ID VOTER
SUDAH MELAKUKAN PEMILIHAN” dan
jika card identity yang digunakan untuk memilih bukan merupakan pemilih yang terdaftar, sistem akan mengembalikan pesan
“ID VOTER TIDAK TERDAFTAR”. Apabila
card identity terdaftar dan belum melakukan
pemilihan maka sistem akan mengantarkan
kepada fungsionalitas melakukan voting.
Langkah-langkah yang dilakukan untuk
memenuhi fungsionalitas autentikasi card
identity adalah:
1 Membaca string UID dan NIK yang
dikirimkan oleh Mifare smart card reader
2 Menjalankan fungsi strtolower() untuk
melakukan konversi value dari string menjadi lowercase.
3 Mengambil bit ke 0 sampai ke 7 untuk disimpan sebagai string UID.
4 Melakukan hashing pada string gabungan UID dan NIK dengan panjang 32 karakter menggunakan sha-2 dengan panjang kunci 256 bit.
5 Melakukan enkripsi menggunakan
algoritme kunci simetri AES dengan panjang kunci 128 terhadap UID dan NIK hasil hashing.
6 Mengirimkan hasil enkripsi beserta string UID menuju CLA untuk dilakukakan proses autentikasi.
7 Menangkap ciphertext dari mesin voting.
8 Melakukan dekripsi ciphertext
menggunakan kunci simetri AES 128 bit. 9 Mengambil string value hasil hash dari
database CLA untuk UID yang sesuai.
10 Melakukan perbandingan antara plaintext hasil dekripsi ciphertext yang berisi UID dan NIK yang dikirimkan oleh mesin
voting dengan nilai hash yang tersimpan
pada database CLA untuk UID yang
sedang dilakukan proses autentikasi.
11 Menampilkan pesan “ID VOTER TIDAK
TERDAFTAR” apabila plaintext dan hash
dari database CLA tidak sama.
12 Menampilkan pesan “ID VOTER SUDAH
MELAKUKAN PEMILIHAN” apabila
plaintext dan hash dari database CLA
bernilai sama/identik dan status pada
database adalah 2.
13 Melakukan proses redirecting ke halaman surat suara apabila plaintext dan hash dari
database CLA bernilai sama/identik dan
status pada database adalah 0.
Diagram alir autentikasi card identity pada CLA dapat dilihat pada Gambar 7.
CLA Mesin Voting Mulai Tidak UID dan NIK (upper case) Menjalankan fungsi strtolower()
Hash (UID + NIK) SHA-2
256 bit string hasil hash
Enkripsi hash string AES 128 bit
Ciphertext
Mengirimkan ciphertext ke
CLA Dekripsi ciphertext menggunakan
AES 128 bit NIK + UID
= hash ? Redirecting halaman “tidak berhak memilih” Tidak Cek status pemilih Ya Berhak memilih? Update status
voter Ya Redirecting halaman “surat suara” Selesai Plaintext (UID + NIK) Membaca string
(UID + NIK) dari mifare card
Hash
Gambar 7 Diagram alir autentikasi card
identity pada CLA.
Implementasi
1. Implementasi pengiriman kunci simetri
AES dari CLA menuju mesin voting
Proses awal pengiriman kunci simetri diperlukan algoritme kunci asimetri RSA yang digunakan untuk proses pengiriman kunci. Pada penelitian ini, panjang kunci RSA yang
digunakan adalah 2048 bit. Untuk
menghasilkan kunci sepanjang 2048,
diperlukan proses pembangkitan pasangan kunci dari 2 buah bilangan acak prima, yaitu p dan q yang ditunjukkan kode pemrograman berikut.
<script>
function do_genrsa() {
var rsa = new RSAKey();
var dr = document.rsatest;
rsa.generate(parseInt(dr.bits.value),dr .e.value);
}
</script>
<input name="bits" type="hidden" value="2048" size=10>
Selanjutnya, pasangan kunci publik
disebarkan. Dalam penelitian ini, pasangan kunci publik dikirimkan menuju CLA dengan
alamat menggunakan IP publik IPB
192.168.0.11 dalam Virtual Private Network (VPN). Proses pengiriman menggunakan fungsi POST pada pemrograman PHP dengan mengirimkan pasangan kunci publik N dan E
ditunjukkan dengan kode pemrograman
berikut.
<script>
dr.n.value =
linebrk(rsa.n.toString(16),64);
}
</script>
<form id='rsatest' name='rsatest' method='POST'
action='http://192.168.1.1/skrip/checkc ard'>
<input name="e" type="hidden" value="3" size=20>
<!--Modulus (hex):<br> -->
<input name="n" type="hidden">
Proses selanjutnya yaitu pembangkitan kunci simetri AES. Pada penelitian ini, panjang kunci simetri yang dibangkitkan sepanjang 128 bit. Kunci yang dibangkitkan dalam bentuk hexadecimal sehingga hanya dibutuhkan 32 karakter hexadecimal karena 1
karakter hexadecimal direpresentasikan
dengan 4 bit. Kunci simetri AES yang
dibangkitkan diperoleh dengan kode
pemrograman sebagai berikut.
<?php
function GenAesKey($length)
{
# karakter pertama huruf acak a-f
$pass = chr(mt_rand(97,102)); // a-f
# sisanya acak dari 0-9 or a-f
for($k=0; $k < $length - 1; $k++)
{
$probab = mt_rand(1,10); //bil acak 1-10
if($probab <= 8) // kemungkinan a-f : 80%
$pass .= chr(mt_rand(97,102));
else // kemungkinan 0-9 : 20%
$pass .= chr(mt_rand(48, 57));
}
return $pass;
}
$key = GenAesKey(32);
?>
Selanjutnya CLA melakukan enkripsi kunci simetri AES menggunakan algoritme RSA. CLA menggunakan pasangan kunci publik RSA yaitu N (hasil kali bilangan acak P dan Q) dan E untuk melakukan enkripsi dengan plaintext kunci simetri AES 128 bit. Hasil enkripsi berupa ciphertext dikirimkan menuju mesin voting. Proses enkripsi simetri dan pengiriman ciphertext ditunjukkan dengan kode pemrograman berikut.
<script>
function do_encrypt() {
rsa.setPublic(document.rsatest. n.value, document.rsatest.e.value);
var res =
rsa.encrypt(document.rsatest.plaintext. value);
var after = new Date();
if(res) {
window.location.href =
"http://localhost/skrip/media.php?p=" + res + "&module=deliverKey";
</script>
<form id='rsatest' name='rsatest'>
<input name="plaintext" type="text" value="<?php echo $key; ?>">
Selanjutnya, ciphertext diterima oleh
mesin voting. Mesin voting melakukan
dekripsi ciphertext menggunakan algoritme RSA dengan pasangan kunci privat N dan D yang hanya dimiliki oleh mesin voting.
Dekripsi ciphertext dengan menggunakan
kunci privat menghasilkan plaintext awal yang berupa kunci simetri AES dengan panjang 128 bit. Proses dekripsi menggunakan kunci privat algoritme RSA ditunjukkan dengan kode pemrograman berikut.
<script>
function do_decrypt() {
var dr = document.rsatest;
if(document.rsatest.ciphertext.value.le ngth == 0) {
do_status("No Ciphertext - encrypt something first");
return;
}
var res =
rsa.decrypt(document.rsatest.ciphertext .value);
if(res == null) {
document.rsatest.decrypted.value = "*** Invalid Ciphertext ***";
do_status("Decryption failed");
}
else {
//mendapatkan plaintext hasil dekripsi ciphertext
document.rsatest.decrypted.value = res;
}
}
</script>
<body onLoad="do_decrypt();">
<!-- <p>Private exponent (hex):<br> -->
<input name="d" type="text" value="<?php echo $d;?>">
<!-- <p>Modulus (hex):<br> -->
<input name="n" type="text" value="<?php echo $n;?>">
2. Implementasi pembacaan card identity dari Mifare smart card menggunakan Mifare smart card reader.
Pembacaan card identity yang meliputi UID dan NIK dari Mifare smart card melalui beberapa proses sequential dimulai dari pengenalan konteks alat baca (establish
context) hingga pembacaan kartu (polling).
Mifare card yang digunakan pada
penelitian ini adalah Mifare card jenis Mifare
classic. Mifare card klasik terdapat 2 jenis
berdasarkan ukuran dari memori penyimpanan data. Secara kasat mata tidak terdapat perbedaaan pada kedua jenis Mifare ini. Gambar 8 menunjukkan Mifare classic dengan kapasistas penyimpanan 1 kilobytes sedangkan Gambar 9 menunjukkan Mifare classic dengan kapasitas penyimpanan sebesar 4 kilobytes. Penelitian ini menggunakan 2 jenis Mifare
card klasik yang ada, yaitu Mifare classic 1
kilobytes, dan 4 kilobytes, terlihat pada
Gambar 8 dan Gambar 9.
Gambar 8 Mifare smart card klasik dengan kapasistas 1 kilobytes.
Gambar 9 Mifare smart card klasik dengan kapasistas 4 kilobytes.
Untuk melakukan proses pembacaan card
identity memerlukan Mifare smart card reader
yang dapat membaca UID dan nilai-nilai dari blok diagram dimana nilai NIK terimpan. Mifare smart card reader yang digunakan pada penelitian ini adalah Mifare smart card
reader jenis ACR122U NFC Reader. Proses
pembacaaan Mifare card yang dalam hal ini Mifare classic harus melewati beberapa tahap proses yang telah ditentukan oleh Advanced Card Systems Ltd. agar dapat melakukan pembacaan tag (tag polling).
Implementasi dari proses diatas telah dikembangkan oleh Advanced Card Systems Ltd. sebagai tools yang digunakan oleh pengembang untuk dapat mengembangkan program pembacaan Mifare smart card. Untuk
membaca Mifare classic penulis
menggunakan metode tag polling yang telah dikembangkan oleh Advanced Card Systems Ltd. dengan beberapa penyesuaian yang diperlukan untuk pengiriman card identity (UID dan NIK) ke program e-voting. Berikut adalah tampilan program dari 6 proses yang
telah disesuaikan untuk kepentingan
e-voting berbasis web ditunjukkan pada Gambar 10.
Gambar 10 Tampilan program pembacaan
card identity dari Mifareklasik.
Implementasi dari proses pembacaan UID sebagai card identity memerlukan pengaturan pengulangan pembacaan pada program yang dikembangkan. Prinsip pembacaan dari Mifare
smart card reader adalah secara terus
menurus selama kartu masih bisa terbaca yang dalam hal ini adalah posisi kartu masih dalam jarak (range) yang terjangkau oleh Mifare
smart card reader (5 cm). Jika tidak ada
proses penyesuaian, maka Mifare smart card
reader akan melakukan pembacaan tag secara
terus-menerus. Oleh karena itu, penulis menyesuikan dengan menyimpan nilai UID terakhir yang dibaca oleh Mifare smart card
reader pada buffer agar bisa dibandingkan
dengan nilai UID yang akan dibaca
selanjutnya. Jika nilai UID yang dibaca pada saat X adalah identik dengan nilai UID pada saat X-1, diasumsikan bahwa kartu yang dibaca adalah sama dan program tidak akan
melanjutkan proses selanjutnya yaitu
melakukan pembacaan NIK pada block
diagram. Apabila UID yang terbaca tidak
sama dengan UID sebelumnya, proses selanjutnya adalah pembacaan block diagram yang berisi NIK. Selanjutnya, dilakukan proses penggabungan dengan NIK untuk dikirim melalui web browser agar dapat terbaca pada localhost mesin voting. Proses
penyesuaikan pengulangan pembacaan,
pembacaan NIK dan penggabungan UID dan
NIK untuk dikirim menuju web browser
ditunjukkan dengan kode pemrograman
berikut:
Uid = "(UID kartu : " +
MyRoutine.FuncByteAsString(uidValue) + ")"; //get the UID
if (Uid_sekarang != UID_buffer)
{
if (authenticate(uidValue))
{
System.Diagnostics.Process.Start(url + MyRoutine.FuncByteAsString(uidValue) + MyRoutine.FuncByteAsString(readDataBloc kDiagram()));
}
}
UID_buffer = Uid_sekarang;
3. Implementasi autentikasi card identity yang telah dibaca Mifare smart card reader.
Proses ini melibatkan entitas mesin voting dan CLA. Proses pembacaan string UID +
NIK, menjalankan fungsi strtolower(),
hash(UID + NIK) dengan sha-2, dan proses enkripsi hasil hash menjadi ciphertext dilakukan pada mesin voting ditunjukkan dengan pemrograman berikut:
# Membaca string UID dan NIK
$isi_kartu = $_GET['p'];
# Buang white space dan convert menjadi lower case
$isi_Mifare = strtolower(preg_replace ("/\s+/", "", $isi_kartu));
# Pemisahan nilai UID dan NIK untuk diambil nilai UID
$isi_UID_str = substr($isi_Mifare, 0, 8);
$isi_VALUE_hex = substr($isi_Mifare, 8, 32);
$isi_VALUE_str =
hexToStr($isi_VALUE_hex);
# Concatenate UID(STRING) AND NIK(STRING)
$concatenate
=$isi_UID_str.$isi_VALUE_str;
# Hash UID + NIK dengan sha-2
$concat = hash('sha256', $concatenate);
# Enkripsi AES 128 bit
($concat, $key, 128);
# Pengiriman ciphertext menuju CLA
echo "
<form id=1 name='swt' id=swt method=POST
action='http://192.168.1.1/skrip/checkc ard'>
<input type='hidden' name='ciphertext' id='ciphertext' value='$ciphertext'>
<input type='hidden' name='uid' id='uid' value='$isi_UID_str'>
<input type='hidden' name='status' id='status' value=1>
</form>";
Proses selanjutnya adalah dekripsi
ciphertext yang telah dikirimkan oleh mesin
voting. Plaintext yang didapatkan adalah nilai
UID dan NIK yang telah di hashing
menggunakan sha-2. Dengan menggunakan
string UID yang juga dikirimkan bersamaan
dengan pengiriman ciphertext, CLA mencari nilai hash yang sesuai dengan nilai string UID. Terdapat nilai hash(UID+NIK) untuk setiap UID. Apabila hash(UID+NIK) yang ditemukan kembali dari database bernilai sama dengan plaintext hasil dekripsi, card
identity berhasil diautentikasi dan berhak
melakukan pemilihan. Jika nilai plaintext tidak identik dengan nilai hash yang terdapat pada database, sistem akan mengeluarkan
pesan “voter tidak berhak memilih”.
Keseluruhan proses yang autentikasi pada CLA ditunjukkan dengan kode pemrograman berikut:
<?php
# GET UID & CIPHERTEXT dari mesin voting
$encr = $_POST['encr'];
$uid= $_POST['uid'];
# Dekripsi ciphertext AES 128
$decr = AesCtr::decrypt($encr, $key, 128);
# CHECK [HASH(UID+NIK)] pada database CLA
$query = "SELECT UID_NIK FROM voterlist WHERE UID_testing='$uid' AND status=0";
$sql = mysql_query($query);
$num = mysql_num_rows($sql);
$ketemu = mysql_fetch_array($sql);
if($num!=0)
{
$hash_uid_nik = $ketemu['UID_NIK'];
if($hash_uid_nik == $decr )
{
#sama
echo "<META HTTP-EQUIV = 'Refresh' Content = '0; URL =http://localhost/skrip/suratsuara'>";
}
}
Jika nilai hash(UID + NIK) tidak identik dengan plaintext hasil dekripsi maka
voter tidak berhak melakukan pemilihan.
Apabila nilai plaintext sama dengan hash, akan dilakukan prose check pada status pemilihan. Apabila status pemilihan 2 berarti
voter telah melakukan pemilihan dan tidak
berhak memberikan suara lagi, ditunjukkan dengan kode pemrograman berikut:
$query2 = "SELECT UID_NIK FROM voterlist WHERE UID_testing='$uid' AND status=2";
$sql2 = mysql_query($query2);
$num2 = mysql_num_rows($sql2);
if($num2)
{
echo "<h5>ID voter sudah melakukan pemilihan.</h5><br />";
echo "<META HTTP-EQUIV = 'Refresh' Content = '5; URL =http://localhost/skrip/voting'>";
}
else
{
echo "<h5>ID voter tidak terdaftar di database.</h5><br />";
echo "<META HTTP-EQUIV = 'Refresh' Content = '5; URL =http://localhost/skrip/voting'>";
Setelah dilakukan proses implementasi, dilakukan pengujian dengan metode black box testing.
Pengujian pada proses pembacaan card
identity dari Mifare smart card untuk
dikirimkan kepada web browser agar bisa dibaca oleh sistem e-voting. Pada tahap ini akan dilihat apakah card identity yang berupa UID dan NIK dapat terbaca oleh sistem.
Tahap pengujian kedua terhadap
pengiriman kunci simetri dan proses
oleh mesin voting yang selanjutnya dikirimkan menuju CLA. Pada tahap ini akan diujikan apakah pengembangan sistem pengiriman dan autentikasi card identity sudah dapat berjalan dengan stabil dan cukup aman terhadap ancaman kriptanalis.
Tabel 1 Pengujian Pembacaan Card Identity
Uji Keamanan Sistem
Uji kinerja sistem dilakukan dengan merekayasa suatu entitas yang menyamar sebagai entitas pada protokol dengan tujuan mengintai dan memodifikasi pesan yang sedang dikomunikasikan.
Untuk serangan pengintaian, entitas palsu bisa membaca pesan yang dikirim tetapi tetap dalam pesan yang tersandikan sehingga
diasumsikan apabila attacker berhasil
melakukan penyerangan jenis ini, maka
attacker tersebut tidak mengetahui makna dari
pesan yang sedang dikomunikasikan.
.
Hasil pengujian pengiriman kunci simetri, autentikasi card identity, dan pembacaan card
identity dapat dilihat pada Tabel 1.
Untuk serangan modifikasi dan
penyamaran entitas, entitas palsu yang menyamar sebagai server tidak akan lolos dari proses autentikasi dikarenakan menggunakan
IP address yang berbeda dari IP address yang
telah diatur sebelumnya oleh VPN. VPN
mendaftarkan IP address setiap entitas
meliputi CLA, CTF dan mesin voting.
Serangan jenis penyamaran sulit
dilakukan karena mekanisme VPN yang sangat ketat menggunakan IP address yang terdaftar sebelumnya sehingga attacker sulit melakukan kecurangan pada sistem.
No Deskripsi Uji Kondisi Awal Skenario Uji Hasil yang diharapkan Hasil Uji
1.
Membaca UID dan NIK dari Mifare classic
menggunakan Mifare smartcard reader
Mifare classic belum diletakan pada Mifare smart card reader Voter meletakkan Mifare
classic pada
Mifare smart card reader
Sistem mengembalikan pesan string UID dan mengirimakan NIK ke sistem e-voting
Berhasil
2.
Membaca NIK dari Mifare classic yang telah sudah diletakan sebelumnya
Mifare classic belum diletakan pada Mifare smart card reader Voter meletakkan Mifare
classic pada
Mifare smart card reader
Sistem tidak membaca UID dari kartu yang berada pada buffer
Berhasil
3.
Membaca NIK dari Mifare classic yang telah digunakan untuk memilih
Mifare classic belum diletakan pada Mifare smart card reader Voter meletakkan Mifare
classic pada
Mifare smart card reader
Sistem mengembalikan pesan bawah voter telah melakukan pemilihan
Berhasil
4.
Membaca NIK dari Mifare classic yang tidak terdaftar pada database
Mifare classic belumdiletakan pada Mifare smart card reader Voter meletakkan Mifare
classic pada
Mifare smart card reader
Sistem mengembalikan pesan bawah UID voter tidak terdaftar pada database
KESIMPULAN DAN SARAN
Kesimpulan
Sistem e-voting dengan menggunakan protokol Two Central Facilities yang telah ada, dapat dikembangkan dan disesuaikan dengan lingkup implementasi di wilayah Indonesia untuk menghasilkan suatu simulasi
e-voting. Sistem juga telah memenuhi 6
spesifikasi yang dikembangkan untuk
memenuhi syarat dari secure voting.
Simulasi pembacaan card identity dan autentikasi voter dikembangkan menggunakan
media Mifare smart card dan dengan
menggunakan algoritme kunci asimetri RSA serta simetri AES pada proses komunikasinya.
Penggunaan Mifare smart card sebagai
media penyimpanan card identity aman
terhadap ancaman gangguan, duplikasi dan perusakan identitas. Card identity yang digunakan dapat dipastikan unique yang
dibuat berdasarkan UID yang selalu
berkembang panjangnya. Peletakan nilai NIK dapat diletakkan pada blok diagram tertentu yang hanya diketahui pengembang sehingga pihak-pihak yang tidak berkepentingan tidak mengetahui pada blok mana data NIK tersimpan.
Saran
Perkembangan teknologi menjadi bantuan bagi kriptanalis untuk menemukan celah pada sitem e-voting yang telah dikembangkan. Pada penelitian kali ini sistem masih memiliki kelemahan dan kekurangan yang diharapkan dapat terus dikembangkan dan diperbaiki pada penelitian selanjutnya, yaitu:
Diperlukan penyimpanan card identity
berupa data biometric sidik jari dan retina
yang bersifat unique. Peningkatan
kapasitas penyimpanan card identity menjadi 8 kilobytes juga diperlukan untuk mengakomodir penyimpanan data sidik jari dan retina untuk pengembangan selanjutnya.
Diperlukan pengembangan protokol
pemilihan umum yang dibuat sendiri dan diuji agar mudah disesuaikan pada proses implementasi di lapangan.
Dibutuhkan algoritme ECC untuk
menggantikan algoritme kunci asimetri RSA. ECC membutuhkan panjang kunci yang signifikan jauh lebih kecil dari
algoritme RSA sehingga proses
komunikasi dapat berjalan lebih cepat.
DAFTAR PUSTAKA
Advanced Card Systems. 2011. Card and
Reader Technologies.
http://www.acs.com.hk (06 Des 2011).
Bishop M. 2003. Computer Security Art and
Science. Boston: Pearson Education, Inc.
Boneh D. 1999. Twenty Years of attacks on the RSA Cryptosystem. Notices of the American Mathematical Society (AMS).
DuFeu D, Harris J. 2001. Online Election
System. 95.413 Project Report, Carleton
University.
Munir R. 2004. Bahan Kuliah IF5054 Kriptografi. Bandung: Departemen Teknik Informatika, Institut Teknologi Bandung.
NIST. 2009. Secure Hash Standard, FIPS PUB 180-3.
Sireesha J, Chakchai S. 2005. Secure Virtual
Election Booth with Two Central
Facilities. Department of Computer
Science Washington University, St. Louis, USA.
Schneier B. 1996. Applied Cryptography -Protocols, Algorithms and Source Code in C. Ed ke-2. New York: John Wiley & Sons, Inc.
Stallings W. 2003. Cryptography and Network
Security Principles and Practice. Ed ke-3.
ABSTRACT
ALFIAN PRAYANTA. The Development of Voting Authentication in Central Legitimization Agency Using Mifare Smart Card® Technology. Supervised by SUGI GURITMAN and SHELVIE NIDYA NEYMAN.
Cryptography becomes one of the important things in the development of electronic voting system. The voting system using internet network technology aims to reduce considerable calculation time as well as necessary human resources. Securing lines of communication between voting machines and servers is needed to communicate securely. The identity of the voters, which is used for authentication voting process is stored in Mifare smart card called identity card. Every identity card which contains unique identification and nomor induk kependudukan will be authenticated in Central Legitimization Agency server. Card identity is hashed with SHA-2 and encrypted with session key to assure that the integrity of data is not changed by others. Session key is distributed from CLA to voting machines which are encrypted with asymmetric RSA algorithm. Only voting machines can decrypt the ciphertext to get the session key as plaintext. The list of the voters who are allowed to vote is stored in the CLA database. The decrypted plaintext must be identical to one of the voters in the voters list, for the voter to be able to vote. Only one vote for each of the voters can be casted. If the time limit is reached, CLA will distribute the vote count to the Central Tabulating Facilities. Considering the complexity in building a complete secure online election voting process, this research is only focused developing a system to authenticate the voter identity in CLA from identity card which is stored in Mifare smart card.
PENDAHULUAN
Latar Belakang
Pemilihan umum (pemilu) merupakan bagian penting dalam sistem demokrasi Indonesia. Sejak meraih kemerdekaan pada tahun 1945, Indonesia tercatat telah 10 kali menyelenggarakan pemilu. Secara umum, terdapat 4 aspek yang dapat diamati dari pemilu sebelumnya, yaitu sumber daya manusia, biaya, waktu, dan keamanan.
Banyak kendala dan permasalahan yang timbul pada penyelenggaraan pemilu hingga tahun 2009 yang lalu. Pada tahun 2011, dialog nasional yang diprakarsai oleh KPU yang
bertema “Menuju Pemilu Elektronik di
Indonesia” menyimpulkan beberapa masalah yang ditimbulkan pemilu konvensional, yaitu: Banyak terjadi kesalahan dalam proses
pendataan dan pendaftaran pemilih. Pemilih salah dalam memberi tanda pada
kertas suara.
Proses pengumpulan kartu suara yang
berjalan lambat.
Kurang terjaminnya kerahasiaan dari
pilihan yang dibuat oleh seseorang. Keterlambatan dalam proses tabulasi hasil
perhitungan suara di daerah.
Penelitian ini mencoba menawarkan solusi
untuk memecahkan permasalahan yang
ditimbulkan pada pemilu sebelumnya dengan menggunakan sistem terotomatisasi (e-voting). Sistem e-voting yang aman, efektif, dan
efisien diperlukan demi suksesnya
penyelenggaraan pemilu sebagai tolak ukur
keberhasilan penerapan demokrasi di
Indonesia. E-voting menawarkan beberapa keunggulan dibandingkan sistem pemilu
konvensional, diantaranya mempercepat
perhitungan suara, memudahkan pengolahan suara, memudahkan verifikasi, menghemat
biaya, dan meningkatkan efektivitas
pelaksanaan pemilu.
Pada tahun 2001, DuFeu dan Harris melakukan penelitian tentangsistem e-voting,
dengan mengimplementasikan Central
Legitimization Agency (CLA) dan Central
Tabulating F