Implementasi Public Key Infrastructure untuk Keamanan Sistem Pengiriman Data Pilkada Via Mobile
IMPLEMENTASI PUBLIC KEY INFRASTRUCTURE UNTUK
KEAMANAN SISTEM PENGIRIMAN DATA PILKADA
VIA MOBILE
SYAMSUL ARIFIN
DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
BOGOR
2012
i
ABSTRACT
SYAMSUL ARIFIN, Implementation of Public Key Infrastructure for Security System of
Local Elections Data Transmission Via Mobile. Supervised by SHELVIE NIDYA NEYMAN
Cryptography is a process of encrypting data into a form that can be read only by a system.
The system has a key to read the encripted data. Based on the method, cryptographic algorithms
can be divided into asymmetric key cryptography, symmetric key criptography, and public key
cryptography. This research attemps to develop Public Key Infrastructure (PKI) with integrity
service, which is implemented in the transmission of voting results in mobile election process. The
benefits of this research is to simplify and improve the efficiency of the counting process and
improving the security of the data transmission using mobile communication.
The method employed is the Life Cycle Security System in which a sequence of steps
following the life cycle of security system by eliminating the operational and maintenance step.
The algorithm used in this research are RSA and MD5 Hash Function. RSA Algorithm is used to
facilitate the distribution of keys that was used in the message encryption, and MD5 hash
functions as an authentication function. The result of this research is the security system of the
transmission of local elections vote via mobile which overcome the threat of sniffing or snooping,
camouflage, and alteration with provides security services of authentication, integrity, and
availability.
Keywords: Election of Regional Head, Java, J2ME, Public Key, RSA Algorithm.
i
IMPLEMENTASI PUBLIC KEY INFRASTRUCTURE UNTUK
KEAMANAN SISTEM PENGIRIMAN DATA PILKADA
VIA MOBILE
SYAMSUL ARIFIN
Skripsi
sebagai salah satu syarat untuk memperoleh gelar
Sarjana Komputer pada
Departemen Ilmu Komputer
DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
BOGOR
2012
i
Judul skripsi
Nama
NIM
: Implementasi Public Key Infrastructure untuk Keamanan Sistem Pengiriman
Data Pilkada Via Mobile
: Syamsul Arifin
: G64063472
Menyetujui
Pembimbing,
Shelvie Nidya Neyman, S.Kom, M.Si.
NIP 19770206 200501 2 002
Mengetahui
Ketua Departemen Ilmu Komputer,
Dr. Ir. Agus Buono, M.Si, M.Kom
NIP 19660702 199302 1 001
Tanggal lulus:
ii
RIWAYAT HIDUP
Penulis lahir di Bangkalan pada tanggal 15 Agustus 1988. Penulis merupakan anak kelima
dari lima bersaudara, pasangan Mi‟ad Ikhsan dan Sumani.
Pada tahun 2006, penulis lulus Sekolah Menengah Umum Negeri 1 Bangkalan, Kabupaten
Bangkalan, Madura, Jawa Timur. Penulis melanjutkan perkuliahan di Institut Pertanian Bogor
melalui jalur Ujian Seleksi Masuk IPB (USMI) pada tahun 2006. Penulis diterima di Program
Studi Ilmu Komputer Fakultas Matematika dan Ilmu Pengetahuan Alam pada tahun 2008. Penulis
aktif dalam organisasi Badan Eksekutif Mahasiswa Keluarga Mahasiswa IPB (BEM KM IPB) dan
menjabat sebagai staf Kementrian Pendidikan pada tahun 2006. Penulis juga menjadi asisten
praktikum Penerapan Komputer pada tahun 2008.
Penulis pernah melakukan Praktik Kerja Lapangan di Republik Citra Televisi Indonesia
(RCTI)selama 2 bulan. Penulis membuat Sistem Dokumentasi Data Perusahaan RCTI. Penulis
pernah bekerja sebagai programmer di salah satu perusahaan yang bergerak di bidang GPS
provider yaitu PT. Global Posisi Semesta. Pada saat penulisan skripsi ini, penulis bekerja di salah
satu perusahaanyang bergerak di bidang teknologi informasi yaitu PT. Jatis Mobile.
iii
PRAKATA
Alhamdulillah, segala puji dan syukur penulis panjatkan kepada Allah Subhanahuwata’ala atas
semua rahmat dan karunia-Nya, sehingga penulis dapat menyelesaikan skripsi yang berjudul
Implementasi Public Key Infrastructure untuk Keamanan Sistem Pengiriman Data Pilkada Via
Mobile yang dilaksanakan pada bulan Juli 2010 sampai dengan September 2011. Shalawat serta
salam penulis sampaikan kepada junjungan kita Nabi Muhammad Salallahualaihiwassalam.
Terima kasih kepada kedua orang tua tercinta, Ayahanda Mi‟ad Ikhsan dan Ibunda Sumani
yang sampai detik ini selalu memberikan curahan kasih sayang yang tiada terhingga, juga untuk
setiap dukungan, semangat, dan doa yang telah diberikan untuk penulis, begitu juga dengan
keempat kakak penulis yang menjadi motivasi buat penulis untuk terus melakukan yang terbaik.
Penulis mengucapkan terima kasih kepada Ibu Shelvie Nidya Neyman, S.Kom, M.Si selaku
pembimbing yang dengan sabar membimbing serta memberikan masukan kepada penulis.Terima
kasih atas saran, bantuan, perhatian, bimbingan dan masukannya kepada penulis selama
menjalankan penelitian ini. Ucapan terima kasih juga penulis sampaikan kepada pihak-pihak yang
terus memberikan dukungan dan semangat :
1 Teman-teman di PT. Global Posisi Semesta, terutama kepada Bapak Rudy Hartanto selaku
pimpinan perusahaan.
2 Seluruh staf pengajar dan karyawan Departemen Ilmu Komputer Institut Pertanian Bogor.
3 Teman-teman ILKOM angkatan 43 atas kebersamaan dan dukungannya.
4 Teman-teman GASISMA atas kebersamaan, persahabatan, semangat dan bantuannya.
Semoga karya ilmiah ini bermanfaat bagi pembaca, terutama untuk para pembaca yang
berminat untuk melanjutkan dan menyempurnakan penelitian ini.
Bogor, Juli 2012
Syamsul Arifin
iv
DAFTAR ISI
Halaman
DAFTAR GAMBAR .....................................................................................................
vi
DAFTAR LAMPIRAN ..................................................................................................
vi
PENDAHULUAN
Latar Belakang .......................................................................................................
Tujuan ...................................................................................................................
Ruang Lingkup ......................................................................................................
Manfaat Penelitian .................................................................................................
1
1
1
1
TINJAUAN PUSTAKA
Kriptografi Kunci Publik ........................................................................................
Algoritme RSA ......................................................................................................
Fungsi Hash ...........................................................................................................
Message Digest 5 (MD5) ........................................................................................
Komunikasi Perangkat Mobile................................................................................
1 Teknologi Nirkabel 1G ................................................................................
2 Teknologi Nirkabel 2G ................................................................................
3 Teknologi Nirkabel 2,5 G.............................................................................
4 Teknologi Nirkabel 3G ................................................................................
Java 2 Micro Edition (J2ME) ..................................................................................
1 Connected Limited Device Configuration (CLDC) .......................................
2 Connected Device Configuration (CDC) ......................................................
3 Mobile Information Device Profile (MIDP) ..................................................
1
1
2
2
2
2
2
3
3
3
3
4
4
METODE PENELITIAN
Ancaman (Thread) .................................................................................................
Kebijakan (Policy) .................................................................................................
Spesifikasi .............................................................................................................
Desain....................................................................................................................
Implementasi .........................................................................................................
4
4
4
4
4
HASIL DAN PEMBAHASAN
Ancaman (Thread) .................................................................................................
Kebijakan (Policy) .................................................................................................
Spesifikasi .............................................................................................................
Desain....................................................................................................................
Implementasi .........................................................................................................
5
5
5
5
8
KESIMPULAN DAN SARAN
Kesimpulan ............................................................................................................
Saran .....................................................................................................................
8
8
DAFTAR PUSTAKA ....................................................................................................
8
v
DAFTAR GAMBAR
Halaman
1
2
3
4
5
6
7
8
9
10
Algoritme MD5 (Munir 2004) ..................................................................................
Arsitektur jaringan GPRS. ........................................................................................
Perkembangan teknologi Java ...................................................................................
Siklus hidup sistem keamanan (Neyman 2007). .........................................................
Flowchart pendaftaran petugas. ................................................................................
Flowchart pendaftaran calon. ....................................................................................
Flowchart login ke sistem. ........................................................................................
Form login. ..............................................................................................................
Flowchart pengiriman data. ......................................................................................
Form generate token.................................................................................................
2
3
3
4
6
6
6
7
7
8
DAFTAR LAMPIRAN
Halaman
1
2
3
4
5
User interface aplikasi di sisi server..........................................................................
User interface aplikasi di sisi client ...........................................................................
Implementasi public key infrastructure......................................................................
Data hasil enkripsi ....................................................................................................
Proses uji pada aplikasi pengiriman data pilkada via mobile – server .........................
11
12
13
21
22
vi
1
PENDAHULUAN
Latar Belakang
Pemilihan
Kepala
Daerah
(Pilkada)
merupakan salah satu bentuk perwujudan sistem
politik demokrasi di Indonesia, sehingga
pelaksanaan pilkada yang baik menjadi tolak
ukur baik tidaknya pelaksanaan demokrasi.
Pilkada harus dilaksanakan secara langsung,
umum, bebas, dan rahasia serta dilandasi
dengan semangat jujur dan adil. Oleh karena
itu, pelaksanaan pilkada perlu dikelola dengan
baik dan benar (Budi et al. 2008).
Proses pilkada memiliki 4 tahapan utama:
1 Pendataan adalah tahap untuk mendata
penduduk dan pemilih, TPS (Tempat
Pemungutan Suara), dan peserta pilkada.
2 Persiapan adalah tahap untuk menetapkan
alokasi kursi untuk setiap daerah pemilihan,
serta untuk menetapkan calon, serta
melengkapi
pembentukan
panitia
penyelenggara pilkada.
3 Pemungutan
suara
adalah
tahapan
pengambilan dan penghitungan suara
Pilkada.
4 Pasca Pilkada adalah tahapan penetapan
hasil pilkada.
Proses yang paling krusial pada pilkada
adalah pada saat proses pengambilan suara dan
proses penghitungan hasil suara. Setelah proses
penghitungan, hasil suara dikirim ke pusat.
Sistem pengiriman data hasil suara yang
banyak
dikembangkan
belakangan
ini
menggunakan aplikasi berbasis SMS yang
diintegrasikan dengan aplikasi web. Tujuannya
untuk mempercepat hasil perhitungan suara
pilkada secara realtime dan mengurangi
indikasi kecurangan (Amborowati 2007).
Kelemahan sistem ini adalah proses pengiriman
datanya masih menggunakan sistem SMS yang
sederhana serta tidak sepenuhnya data jumlah
suara dikirim ke pusat tetapi hanya mengambil
sebagian suara sebagai sampel sehingga masih
memungkinkan kecurangan.
Penelitian ini mencoba mengembangkan
sebuah
sistem
menggunakan
algoritme
kriptografi kunci publik dalam proses
pengiriman data pilkada untuk menigkatkan
keamanan dan kerahasiaan informasi data hasil
suara yang dikirimkan ke pusat. Sistem
pengiriman data pilkada ini berguna sebagai
pengaman agar tidak terjadi kecurangan dalam
pengubahan pada saat pengiriman data ke pusat.
Tujuan
Penelitian ini bertujuan membangun sistem
Public Key Infrastruktur (PKI) dengan
keamanan layanan integritas di dalamnya.
Layanan integritas tersebut menggunakan
kriptografi sebagai autentikasi untuk memeriksa
pesan yang terkirim apakah benar berasal dari
sumber yang sah.
Ruang Lingkup
Penelitian ini mencoba mengembangkan
sistem PKI yang merupakan sistem clientserver. Sistem ini menggunakan mobile sebagai
client. Sistem diimplementasikan menggunakan
simulator. Data yang digunakan dalam
penelitian ini bersifat dummy. Bahasa
pemrograman
yang
digunakan
untuk
mengembangkan sistem ini adalah bahasa
pemograman Java yang diimplementasikan
dalam lingkungan mobile.
Manfaat Penelitian
Hasil dari penelitian ini diharapkan dapat
mempermudah dan meningkatkan efisiensi
waktu dalam perhitungan suara serta
meningkatkan keamanan pengiriman data
pilkada yang dilakukan melalui mobile. Selain
itu, metode keamanan yang dihasilkan dari
penelitian ini dapat diterapkan dalam sistem
pemilihan berbasis mobile (m-voting).
TINJAUAN PUSTAKA
Kriptografi Kunci Publik
Diberikan skema enkripsi yang teridiri atas
himpunan transformasi enkripsi dan dekripsi
{Ee : e ϵ K} dan {Dd : d ϵ K}. Metode enkripsi
disebut skema enkripsi kunci publik jika untuk
setiap pasangan (e,d). Kunci e dibuat tersedia
untuk umum (publik) dan kunci pasangan d
dibuat untuk pribadi dan dijaga kerahasiaannya.
Skema tersebut dikatakan aman, jika secara
perhitungan tak-layak menentukan d dari e
(Menezes et al. 1996).
Algoritme RSA
Algoritme RSA ditemukan oleh Ron Rivest,
Adi Shamir, dan Len Adleman. Algoritme ini
diperkenalkan pertama kali pada bulan Agustus
1977. Algoritme kriptografi ini banyak
digunakan untuk memberikan privasi dan
menjamin autentikasi data digital. Saat ini RSA
telah dikembangkan oleh banyak sistem
komersial. RSA digunakan oleh web server dan
browser untuk keamanan lalu-lintas data pada
web. RSA juga juga digunakan untuk menjamin
remote login session dan bagian utama dari
sistem pembayaran kartu kredit elektronik.
Dengan kata lain RSA, banyak digunakan untuk
2
Fungsi Hash
Fungsi hash adalah fungsi yang secara
komputasi efisien memetakan bitstring dengan
panjang sembarang ke bitstring dengan panjang
tetap yang disebut nilai-hash (hash-value).
Untuk fungsi hash dengan output nilai-hash nbit, probabilitas pemilihan string secara random
yang dipetakan ke nilai-hash n-bit adalah 2-n.
Berdasarkan definisi tersebut, ide dasar dari
fungsi hash adalah membuat string input
menjadi teratur rapat dengan panjang seragam.
Terkait dengan kegunaan kriptografi, fungsi
hash h dipilih sedemikian sehingga secara
komputasi tak-layak menentukan input berbeda
x dan y sehingga h(x) = h(y) (Menezes et al.
1996).
Message Digest5 (MD5)
Salah satu fungsi hash yang paling banyak
digunakan adalah Message Digest 5 (MD5).
MD5 adalah fungsi hash satu arah yang dibuat
oleh Ron Rivest. Satu arah yang dimaksud
adalah kita dengan mudah dapat menghitung
nilai hash pesan tetapi sangat sulit untuk
mendapatkan kembali pesan semula.
MD5 memproses masukan dengan panjang
512 bit yang dibagi ke dalam 16 blok dengan
panjang masing-masing blok 32 bit (Schneier
1996). Keluaran yang dihasilkan berupa
message digest yang panjangnya 128 bit.
Langkah-langkah pembuatan message digest
adalah sebagai berikut:
1 Penambahan bit-bit pengganjal (padding
bits).
2 Penambahan nilai panjang pesan semula.
3 Inisialisasi penyangga MD.
4 Pengolahan pesan dalam blok berukuran 512
bit.
Padding bit
K bit
K mod 264
(1-512 bit
1000…000
Pesan
512
512
Y0
Y1
128
HMD5
HMD5
512
…
512
…
Yq
128 128
Panjang
Pesan
YL = 1
128 128
HMD5
ABCD
HMD5
128
Deskripsi sederhana dari algoritme RSA
sebagai berikut:
N = pq
(1)
Dengan p dan q adalah dua buah bilangan prima
besar dengan ukuran yang sama. Berikan nilai e
dan d dengan ketentuan sebagai berikut:
ed = 1 mod φ(N)
(2)
φ(N) = (p-1)(q-1)
(3)
N adalah RSA modulus, e adalah encryption
exponent, dan d adalah decryption exponent.
(N,e) adalah kunci publik yang digunakan untuk
ekripsi pesan. (N,d) adalah kunci rahasia atau
kunci
privat
yang
digunakan
untuk
mendeskripsi chipertext atau pesan telah
dienkripsi ke pesan sebenarnya (Boneh 1999).
Gambaran pembuatan message digest
dengan algoritme MD5 dapat dilihat pada
Gambar 1.
L x 512 bit
128
aplikasi yang membutuhkan keamanan data
digital.
Message Digest
Gambar 1 Algoritme MD5 (Munir 2004).
Komunikasi Perangkat Mobile
Perkembangan teknologi perangkat mobile
telah sampai pada fase “Generations” atau
dikenal dengan akronim „G”. Perkembangan
baru dari tiap generasi perangkat mobile
memberikan reabilitas dan fleksibilitas lebih
dari generasi sebelumnya (Harte & Bowler
2004).
1 Teknologi Nirkabel 1G
Teknologi ini merupakan teknologi pertama
dari teknologi nirkabel.
Generasi ini
dikembangkan pada tahun 1980-1990 dan
hanya menggunakan layanan suara analog tanpa
layanan data. Pada generasi ini, frekuensi yang
digunakan belum standar, karena terdapat
berbagai frekuensi berbeda untuk tiap provider.
2 Teknologi Nirkabel 2G
Generasi kedua atau 2G dari teknologi
nirkabel menggunakan jaringan digital berbasis
sirkuit. Karena generasi ini menggunakan
jaringan digital, teknologi ini telah mampu
mentransmisikan data dengan kecepatan ratarata 9.6 Kbps (Kilobits per second). Teknologi
ini bekerja pada beberapa frekuensi, yaitu 900
MHz, 1800 MHz, dan 1900 MHz. Teknologi ini
memiliki tiga standar sebagai berikut:
1 Time Division Multiple Access (TDMA).
2 Code Division Multiple Access (CDMA).
3 Global Sistem for Mobile (GSM).
3
3 Teknologi Nirkabel 2.5 G
2.5G adalah akronim dari perkembangan
teknologi dari generasi teknologi nirkabel 2G.
Perkembangan pada teknologi ini adalah
meningkatnya kecepatan transmisi data menjadi
56 Kbps. Teknologi 2.5G tetap menggunakan
infrastruktur 2G dengan beberapa tambahan
teknologi perti General Packet Radio Service
(GPRS) dan Enhanced Data Rates for Global
Evolution (EDGE) yang berbasis paket data.
perangkat mobile, seperti pager, ponsel, screenphones, dan sistem navigasi kendaraan (Feng &
Zhu 2001).
Gambar 3 memperlihatkan
perangkat dan platform dari tiap edisi teknologi
Java. Java 2 Entreprise Edition (J2EE)
memberikan
solusi
untuk
lingkungan
enterprise, Java 2 Standard Edition (J2SE)
untuk lingkungan pengembangan desktop, dan
J2ME untuk perangkat mobile.
Servers
Desktop
Machine
GGSN
Other
network
Low End
Consumer
Device
Foundati
on Profile
internet
J2SE
J2EE
GPRSback
bone
Personal
Profile
GSNs
High End
Consumer
Device
MIDP
CDC
CLDC
Smart Card
Java Card
Java Virtual Machine
KVM
Card VM
Gambar 3 Perkembangan teknologi Java.
Gambar 2 Arsitektur jaringan GPRS.
Gambar 2 menunjukkan arsitektur jaringan
GPRS. Elemen dari jaringan GPRS adalah Base
Transciver Stations (BTS), Base Stations
Controller (BSC), GPRS support nodes
(GSNs), serving GSN, dan Gateway GSN
(GGSN).
Configuration
merepresentasikan
Java
library minimum yang harus dimiliki oleh suatu
perangkat elektronik untuk menjalankan suatu
aplikasi. J2ME saat ini telah mendefinisikan
dua buah configuration, yaitu CLDC dan CDC,
serta profile dari masing-masing Configuration,
yaitu MIDP.
4 Teknologi Nirkabel 3G
Generasi ini menggunakan frekuensi
transmisi yang berbeda dari generasi
sebelumnya dan membutuhkan infrastruktur
yang berbeda. Teknologi ini memberikan
peningkatan kecepatan transmisi data hingga 2
Mbps pada keadaan stabil.
Teknologi 3G dapat memberikan layanan
seperti :
Audio dan Video streaming,
Voice Over Internet Protocol (VolP),
Mengirim dan menerima gambar, suara dan
video,
Virtual Home Environments (VHE), dan
Global Positioning Sistem (GPS).
Layanan 3G masih akan terus bertambah
seiring perkembangan teknologi ini.
Java 2 Micro Edition (J2ME)
Sun Microsistem mendefinisikan Java 2
Micro Edition (J2ME) sebagai Java run-time
environment yang ditargetkan pada konsumen
1 Connected Limited Device Configuration
(CLDC)
CLDC adalah spesifikasi dasar yang berupa
library dan API yang diimplementasikan pada
J2ME dan biasa digunakan pada telepon selular
atau PDA yang memiliki karakteristik:
Prosesor 16-bit atau 32-bit.
Memory terbatas, 512 KB atau lebih rendah.
Power supply yang terbatas.
Layar monitor yang terbatas.
Kemampuan input yang terbatas.
CLDC juga tidak mendukung tipe data float
dan double. Selain itu, CLDC juga tidak
mendukung
kelas
dan
method
yang
membutuhkan tipe data tersebut atau
melibatkan operasi floating point. Java Virtual
Machine (JVM) yang biasa digunakan disebut
Kilobyte Virtual Machine (KVM). Selain itu,
terdapat VM lain, yaitu J9VM dari IBM.
4
2 Connected Device Configuration (CDC)
CDC diperuntukan bagi perangkat dengan
ketersediaan memori minimal 2MB dan 32 bit
prosesor. CDC dapat ditemukan pada high-end
PDA, smart phones, Internet TV serta mobile
TV. JVM yang digunakan disebut CVM.
Profile melengkapi configuration dengan
menambahkan
beberapa
kelas
yang
menyediakan fitur yang sesuai untuk suatu tipe
perangkat tertentu. Kedua configuration J2ME
memiliki satu atau lebih profile yang terkait,
dan beberapa di antaranya saling tergantung.
3 Mobile Information Device Profile
(MIDP)
MIDP memiliki API tambahan untuk
jaringan, daur hidup aplikasi, antarmuka, dan
penyimpanan persistensi untuk CLDC. Profile
ini ditujukan untuk perangkat mobile yang
memiliki display dan fasilitas penyimpanan
yang terbatas.
METODE PENELITIAN
Ancaman
(Thread)
Kebijakan
(Policy)
Spesifikasi
Desain
Implementasi
Operasi dan
Pemeliharaan
Gambar 4 Siklus hidup sistem keamanan
(Neyman 2007).
Metode yang digunakan untuk implementasi
sistem keamanan pengiriman data hasil suara
pilkada via mobile ini mengadopsi tahapan pada
Security Sistem Life Cycle (Bishop 2003) untuk
lebih detail dapat dilihat pada Gambar 4. Kegiatan
yang dilakukan pada setiap tahapannya adalah
sebagai berikut:
Ancaman (Thread)
Tahapan awal dari pembangunan sistem ini
adalah mengidentifikasi ancaman-ancaman yang
ingin diatasi oleh sistem, atau dalam penelitian ini
adalah penentuan aspek, atau layanan keamanan
yang ingin diberikan. Layanan keamanan
dipersiapkan untuk mengatasi serangan akibat
ancaman-ancaman yang diperkirakan akan muncul.
Bishop (2003) mengemukakan bahwa
keamanan komputer melingkupi tiga aspek utama
yaitu, kerahasiaan, integritas, dan availability.
Interpretasi setiap aspek pada lingkungan suatu
organisasi ditentukan oleh kebutuhan dari individu
yang terlibat, kebiasaan, dan hukum yang berlaku
pada organisasi tersebut.
Kebijakan (Policy)
Tahapan selanjutnya adalah penentuan
kebijakan keamanan. Kebijakan tersebut ditujukan
untuk memberikan arahan dan sasaran serta
sekaligus menjadi acuan standar keamanan dalam
sistem. Kebijakan keamanan juga harus memenuhi
layanan-layanan keamanan yang akan disajikan
oleh sistem.
Spesifikasi
Tahap spesifikasi merupakan pernyataan
fungsional dari sistem yang dapat berupa ekspresi
matematika atau bahasa lain yang mendeskripsikan
metode sistem dalam memberikan layanan
keamanan.
Desain
Tahapan
desain
dari
sistem
akan
menerjemahkan
spesifikasi
dalam
bentuk
komponen-komponen
yang
akan
diimplementasikan. Desain dikatakan memenuhi
spesifikasi jika tidak melanggar semua ketentuan
dalam spesifikasi. Pada tahap ini, dilakukan
perancangan aplikasi dengan menerjemahkan
kebutuhan sistem berdasarkan ancaman (thread),
kebijakan, dan spesifikasi. Perancangan dilakukan
dengan membuat flowchart modul dan sketsa
umum antarmuka sistem yang akan dibuat.
Implementasi
Tahapan
implementasi
menghasilkan
aplikasi yang sesuai dengan desain yang ada.
Bila desain yang ada telah memenuhi
spesifikasi sistem, secara tidak langsung
aplikasi yang dihasilkan juga memenuhi
spesifikasi tersebut. Kesulitan pada tahapan ini
biasanya terletak pada kompleksitas program
untuk mengimplementasikan desain.
HASIL DAN PEMBAHASAN
Sistem ini diawali dengan proses pengiriman
data dari aplikasi mobile melalui internet.
5
Jaringan tersebut merupakan jaringan unsecure
sehingga
diperlukan
keamanan
dalam
pengiriman data pilkada ke server. Pada
pembahasan di bawah ini, akan dijelaskan dari
setiap tahap dalam pembangunan sistem ini.
Ancaman (Thread)
Jenis ancaman yang teridentifikasi yang
dapat menimbulkan serangan keamanan dalam
sistem pengiriman data pilkada via mobile ini
adalah snooping dan modification or alteration.
Ancaman snooping atau pengintaian terjadi
dikarenakan pengiriman data melewati jaringan
komunikasi public yang semua pihak dapat
melihat aliran informasi yang lewat pada
jaringan tersebut atau biasa dikenal dengan
wiretapping, yaitu pengintaian dalam jaringan
yang terbuka. Snooping yang terjadi dalam
sistem pengiriman data pilkada adalah
mengetahui jumlah suara yang dikirim petugas
ke pusat. Modification or alteration, adanya
pengubahan data jumlah suara pilkada oleh
pihak yang tidak berhak kemudian dikirim
ulang ke server dengan harapan petugas dan
server tidak menyadari adanya perubahan.
Penyamaran, yaitu adanya pihak yang tidak
berhak mengaku sebagai petugas sehingga
dapat menggunakan sistem untuk hal yang tidak
sesuai prosedur. Salah satu cara untuk
mengatasi ancaman ini adalah dengan
memberikan layanan kerahasiaan, autentikasi
dan integritas pada sistem.
Kebijakan (Policy)
Pada tahap ini, ditentukan kebijakankebijakan yang akan berlaku dalam sistem ini.
Kebijakan keamanan tersebut meliputi:
1 User Policy
Pada sistem ini, terdapat dua pihak yaitu
pihak pengirim dan penerima. Dalam sistem
pengiriman data pilkada via mobile, penerima
sendiri adalah admin server dan pengirim
adalah petugas yang mengirimkan data jumlah
suara pilkada via mobile. Masing-masing pihak
memiliki peranan yang berbeda dalam proses
pengiriman data. Sistem ini tidak melibatkan
pihak ketiga.
2 Communication and Network Policy
Jalur komunikasi dalam sistem pengiriman
data pilkada bersifat dua arah serta
menggunakan jaringan yang unsecure dan
umum. Hal ini menyebabkan setiap orang dapat
melihat adanya pertukaran data yang mengalir
di dalam jaringan dengan ketentuan kondisi
normal. Penelitian ini menggunakan jaringan
unsecure dan umum untuk menerapkan metode
pendistribusian kunci yang sesuai sebagai
pengaman.
3 Access Policy
Sistem ini sepenuhnya mengatur hak akses
user. Dalam sistem ini, user yang sudah
diberikan hak dapat menggunakan layanan yang
disediakan oleh sistem. Untuk melakukan
proses tersebut, user harus memasukkan
username, password, dan pin. Kebijakan ini
diberikan untuk mencegah adanya ancaman
penyamaran yang sudah diidentifikasi pada
tahap sebelumnya.
4 Application and Data Policy
Aplikasi hanya bisa digunakan oleh user
yang telah mendaftarkan diri ke admin sehingga
aplikasi tersebut bisa di-install di handphone
user dan tidak bisa di-copy ke handphone yang
lain.
Data yang digunakan dalan sistem ini
merupakan data dummy. Asumsi bahwa data
yang dikirim ke server merupakan data valid
digunakan.
Spesifikasi
Pada tahap ini, dilakukan penentuan
algoritme yang akan digunakan. Algoritme yang
dipakai untuk menyajikan keamanan pada
sistem ini adalah sebagai berikut:
1 Autentikasi dan verifikasi
Fungsi hash diterapkan untuk menjaga
layanan integritas. Autentikasi digunakan untuk
mendapat nilai autentikasi dari data, sedangkan
verifikasi
digunakan
untuk
memeriksa
keautentikan data dengan nilai autentikasinya.
Metode ini digunakan untuk menyembunyikan
keautentikan data agar tidak diketahui oleh
pihak luar. Selain itu, metode ini digunakan
sebagai bentuk pencegahan penyamaran dan
modifikasi data oleh pihak yang tidak berhak.
Untuk mendukung layanan integritas, sistem
menggunakan fungsi hash yaitu MD5.
2 Kerahasiaan Data
Algoritme
kriptografi
kunci
publik
digunakan untuk menjaga kerahasiaan data
adalah RSA. Algoritme ini merupakan metode
yang digunakan dalam pembangkitan kunci
yang nantinya akan didistribusikan secara
umum. Studi kasus dalam penelitian ini adalah
petugas akan mengirimkan kunci publik ke
server agar server bisa membuka pesan yang
dikirim oleh petugas. Hal ini dilakukan untuk
layanan keautentikan dapat terealisasi. Tahap
spesifikasi dalam penelitian ini juga ditentukan
lingkungan pengembangan sistem.
Desain
Ancaman, kebijakan, dan spesifikasi yang
sudah
ditentukan
dilanjutkan
untuk
diterjemahkan ke dalam desain sistem yang
6
dibagi berdasarkan modul yang dibutuhkan
dalam sistem. Modul-modul tersebut antara lain
adalah:
Mulai
Cek status
pendaftaran
1 Modul pendaftaran petugas
Modul ini digunakan untuk pendaftaran
petugas yang nantinya akan diberi hak untuk
mengakses sistem atau dengan kata lain modul
ini dijadikan sebagai layanan jaminan hak akses
terhadap sistem. Hasil dari desain sistem
pendaftaran petugas dapat dilihat pada
flowchart pendaftaran petugas pada Gambar 5.
Antarmuka aplikasi di sisi server dapat dilihat
pada Lampiran 1, sedangkan antarmuka aplikasi
di sisi klien dapat dilihat pada Lampiran 2.
Pendaftaran
ditutup?
tidak
Ya
Input Data Diri
Pendaftaran
ditutup
Input data
lengkap?
Ya
tidak
Simpan Data
Pernyataan
salah
Mulai
Tabel
Calon dan
count
Cek status
pendaftaran
Selesai
Gambar 6 Flowchart pendaftaran calon.
tidak
Pendaftaran
ditutup?
tidak
Mulai
Pendaftaran
ditutup
Input Data Diri
Input data
lengkap?
Ya
Petugas memasukkan
Username, password
dan pin
Ya
Simpan
Data
Peringatan
kesalahan
Pernyataan
salah
Tabel penanggung
jawab, Tabel user,
dan Tabel token
pada basis data
pilkada
Input data
lengkap?
Tidak
Ya
User
Login
Selesai
Generate key(public key,
private key,modulo)
Proses login
Gambar 5 Flowchart pendaftaran petugas.
Pendaftaran hanya bisa dilakukan pada saat
pendaftaran dibuka oleh panitia. Data yang
dimasukkan adalah data diri petugas sesuai
dengan KTP petugas, username, password,
password token, serta pin yang akan digunakan
ketika login. Jika input data lengkap, sistem
akan menyimpan data tersebut ke dalam
database dengan mengambil nilai hash dari
password, password token, dan pin.
2 Modul pendaftaran calon
Modul ini digunakan untuk memberikan
referensi kepada petugas dan memberikan
jaminan agar tidak terjadi kesalahan ketika
mengirimkan data berupa jumlah suara yang
terkait dengan calon serta memberikan
standarisasi penamaan calon dalam sistem.
Desain yang dirancang dapat dilihat pada
flowchart pendaftaran calon pada Gambar 6.
Tidak
Mendeskripsi username,
password dan pin menggunakan
kunci privat petugas dengan
algoritma kunci asimetri
Login valid?
Ya
Enkripsi Username,
Password dan PIN
menggunakan kunci
publik dengan algoritma
kunci asimetri
Tabel user pada
basis data
pilkada
Gambar 7 Flowchart login ke system.
3 Modul login ke sistem
Desain pada modul ini digunakan untuk
masuk ke dalam sistem dengan username,
password, dan pin. Setelah login ini dilakukan
oleh petugas, dilakukan proses pengiriman data.
Login dilakukan oleh petugas pada saat proses
perhitungan suara, baik saat hasil perhitungan
7
belum selesai atau sudah selesai, dengan
ketentuan bahwa pengiriman data yang pertama
adalah insert data baru sesuai dengan id
petugas. Untuk yang kedua kali dan seterusnya,
yang dilakukan hanya proses update data di
dalam database berdasarkan id petugas tersebut.
Untuk lebih detail mengenai desain modul ini
dapat dilihat pada flowchart login pada Gambar
7.
Pada
modul
ini,
akan
dilakukan
pembangkitan kunci publik ketika petugas
melengkapi input data pada sistem. Kunci
publik digunakan untuk mengenkripsi data
petugas, dalam hal ini adalah username,
password, dan password token agar tidak ada
pihak luar yang mengetahui isi pesan yang
dikirimkan. Kode implementasi public key
infrastructure dapat dilihat pada Lampiran 3.
User Interface untuk modul login dapat
dilihat pada Gambar 8.
Untuk menjamin keamanan bahwa sistem
masih dipegang oleh orang yang sama, setelah
melakukan pemilihan, petugas akan diminta
untuk memasukkan password token sebagai
parameter untuk membangkitkan challenge
code yang nantinya akan divalidasi oleh system.
Challenge code hanya berlaku dalam selang
waktu tiga menit.
Proses
submit
Memilih calon dan
memasukkan Jumlah
suara, nama TPS dan
keadaan
Ya
Proses Generate respon
Code menggunakan
Tidak
password token petugas
dan challenge code
user
send
System
Proses
send
Proses Generate
Challenge Code
Password
kosong?
Memasukkan
password token
Enkripsi id petugas, challenge
code, respon code, jumlah suara,
pilihan calon, nama TPS, kondisi
pilkada menggunakan kunci
publik petugas
Password
Deskripsi id petugas,
benar?
challenge code, respon
Tidak
code, jumlah suara, pilihan
Pernyataan
Ya
calon, nama TPS, kondisi
salah
pilkada menggunakan
Respon code
kunci privat
Tidak
sesuai?
Ya
Simpan
data
Gambar 8 Form Login.
4 Modul pengiriman data
Modul ini merupakan fungsi utama dalam
penelitian ini. Desain modul ini dapat dilihat
pada flowchart pengiriman data pada Gambar 9.
Pada modul ini, petugas melakukan
pengiriman data berupa jumlah suara yang
diperoleh oleh setiap calon ke server. Pada
proses pengiriman ini, dilakukan enkripsideskripsi menggunakan algoritme kunci publik.
Contoh data yang telah dienkripsi dapat dilihat
pada Lampiran 4.
Fungsi yang sifatnya update data ini bisa
dilakukan berulang kali oleh petugas. Pada saat
petugas melakukan pengiriman data pertama
kali, sistem tidak otomatis logout, tetapi
kembali ke tampilan utama.
Tabel history
pada basis data
pilkada
selesai
Gambar 9 Flowchart pengiriman data.
User interface untuk form pengisian data
dapat dilihat pada Gambar 10.
User interface untuk generate token key
dapat di lihat pada Gambar 11.
Gambar 10 Form data pilkada.
8
flowchart atau desain sistem yang telah
ditentukan pada tahap desain. Untuk lebih
detail, hasil pengujian dapat dilihat di Lampiran
5.
KESIMPULAN DAN SARAN
Gambar 11 Form generate token.
Implementasi
Tahap implementasi dilakukan untuk
merealisasikan desain sistem yang sudah dibuat
dalam bentuk aplikasi. Beberapa komponen
yang digunakan untuk merealisasikan desain
sistem adalah sebagai berikut:
Algoritme fungsi hash yang digunakan
adalah MD5 yang menghasilkan nilai hash
dengan panjang 128 bit.
Algoritme kunci publik yang berfungsi
untuk pengamanan dalam pendistribusian
kunci menggunakan sepasang kunci dengan
fungsi tertentu, yaitu kunci publik dan kunci
privat. Algoritme yang digunakan sebagai
algoritme kunci publik yakni RSA.
Komponen dan lingkungan implementasi
desain sistem direalisasikan menjadi aplikasi
menggunakan perangkat dengan spesifikasi
sebagai berikut:
1 Perangkat lunak:
MySQL 5.0.67,
J2ME Wireless Toolkit 2.5.2,
Netbeans IDE 6.9, dan
Bahasa pemograman yang digunakan
adalah Java 2 Mobile Edition (J2ME)
2 Perangkat keras:
Processor : Intel® Dual- Core 2.00GHz,
Memory : 2GB,
Harddisk : 160GB, dan
Handphone berbasis Java, misalnya: Sony
Ericsson W205
Pada tahap ini, juga dilakukan pengujian
terhadap sistem menggunakan metode uji
blackbox testing. Berdasarkan hasil pengujian,
sistem sudah berjalan dengan baik berdasarkan
Kesimpulan
Penelitian ini berhasil menerapkan metode
public key infrastructure. Dalam prosesnya,
sistem ini sendiri bisa memberikan beberapa
layanan keamanan untuk mengatasi ancamanancaman yang mungkin terjadi pada sistem.
Ancaman yang bisa diatasi dalam penelitian ini
adalah sniffing atau snooping, penyamaran, dan
alteration. Ancaman sniffing bisa diatasi karena
pesan yang dikirimkan pada jaringan publik
berupa karakter-karakter yang aneh sehingga
untuk bisa membaca pesan tersebut dibutuhkan
sistem
bantuan,
sedangkan
ancaman
penyamaran dan alteration dapat diatasi dengan
layanan autentikasi-verifikasi data yang
dikirimkan.
Saran
Saran untuk penelitian selanjutnya adalah:
1 Penelitian ini dapat dikembangkan menjadi
pemilihan
secara
mobile
(m-voting)
sehingga mempermudah pemilihan, dan
perhitungan suara serta meningkatkan
efisiensi waktu yang digunakan serta
meningkatkan keamanan dari m-voting.
2 Aplikasi perlu dikembangkan agar dapat
diimplementasikan untuk semua platform
mobile karena tidak semua handphone
menggunakan aplikasi berbasis Java.
DAFTAR PUSTAKA
Amborowati A. 2007. Aplikasi Sistem Quick
Count (SI-Q-CUP) Pilkada Pemilihan
Kepala Daerah Studi Kasus Pilkada
Propinsi
DIY.
Yogyakarta:
STMIK
AMIKOM Yogyakarta.
Bishop M. 2003. Computer Security. Boston:
Addison-Wesley.
Boneh D. 1999. Twenty years of attacks on the
RSA cryptosystem. Notices of the American
Mathematical Society (AMS) 46(2):203123.
Budi EM, Nuryanto HD, Rahman MZ, Yuwono
A, Noor S. 2008. Solusi e-demokrasi untuk
meningkatkan kualitas pemilu dan pilkada di
Indonesia. Di dalam: Konferensi dan Temu
Nasional
Teknologi
Informasi
dan
Komunikasi untuk Indonesia; Jakarta, 21-23
Mei 2008. Bandung: IGOS Center.
9
Y, Zhu J. 2001. Wireless Java
Programming with J2ME. New York:
Sams.
Harte L, Bowler D. 2004. Introduction to
Mobile Telephone System – 1G, 2G, 2.5
G, and 3G Wireless Technologies and
Services. New York: ALTHOS.
Menezes A, Oorschot PV, Vanstone S. 1996.
Handbook of Applied Cryptography.
London: CRC Press.
Feng
Munir R. 2004. Fungsi Hash Satu Arah dan
MD5. Bandung: Institut Teknologi
Bandung.
Neyman SN. 2007. Perancangan Protokol
Penyembunyian Informasi Terotentikasi
[tesis]. Bogor: Fakultas Matematika dan
Ilmu Pengetahuan Alam. Bogor: Institut
Pertanian Bogor.
Schneier B. 1996. Applied Cryptography. Ed
ke-2. New York: John Wiley & Sons.
10
LAMPIRAN
11
Lampiran 1 User interface aplikasi di sisi server
12
Lanjutan
Lampiran 2 User interface aplikasi di sisi client
13
Lanjutan
Lampiran 3 Implementasi public key infrastructure
package com.arifin.odp.RSA.main;
import com.arifin.odp.RSA.cipher.AsymmetricBlockCipher;
import com.arifin.odp.RSA.cipher.AsymmetricCipherKeyPair;
import com.arifin.odp.RSA.cipher.exception.CryptoException;
import com.arifin.odp.RSA.cipher.exception.DataLengthException;
import com.arifin.odp.RSA.cipher.exception.InvalidCipherTextException;
import com.arifin.odp.RSA.digest.MD5Digest;
import com.arifin.odp.RSA.encoding.PKCS1Encoding;
import com.arifin.odp.RSA.modul.BigInteger;
import com.arifin.odp.RSA.modul.RSAKeyPairGenerator;
import com.arifin.odp.RSA.modul.SecureRandom;
import com.arifin.odp.RSA.parameter.RSAKeyGenerationParameters;
import com.arifin.odp.RSA.parameter.RSAKeyParameters;
import com.arifin.odp.RSA.privat.RSAPrivateCrtKeyParameters;
import com.arifin.odp.RSA.sign.PSSSigner;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
/**
* @author Arifin
*/
public class RSAMidlet {
public String Encrypt(String str) {
try {
System.out.println(“generator on”);
byte[] keypair = generator();
String keyp = byteArraytoHex(keypair);
14
Lanjutan
byte[] plain = str.getBytes();
// input stream pasangan kunci
ByteArrayInputStream bais = new ByteArrayInputStream(keypair);
DataInputStream dis = new DataInputStream(bais);
int modLen = dis.readInt();
int pubLen = dis.readInt();
int privLen = dis.readInt();
int pLen = dis.readInt();
int qLen = dis.readInt();
int dPLen = dis.readInt();
int dQLen = dis.readInt();
int qInvLen = dis.readInt();
byte[] modulo = new byte[modLen];
bais.read(modulo, 0, modLen);
byte[] pubExp = new byte[pubLen];
bais.read(pubExp, 0, pubLen);
byte[] privExp = new byte[privLen];
bais.read(privExp, 0, privLen);
byte[] p = new byte[pLen];
bais.read(p, 0, pLen);
byte[] q = new byte[qLen];
bais.read(q, 0, qLen);
byte[] dP = new byte[dPLen];
bais.read(dP, 0, dPLen);
byte[] dQ = new byte[dQLen];
bais.read(dQ, 0, dQLen);
byte[] qInv = new byte[qInvLen];
bais.read(qInv, 0, qInvLen);
dis.close();
bais.close();
//
qInv);
// construct private key
RSAPrivateCrtKeyParameters privKey = constructPrivateKey(modulo, pubExp, privExp, p, q, dP, dQ,
// construct public key
RSAKeyParameters pubKey = constructPublicKey(modulo, pubExp);
byte[] cipher = rsaEncrypt(plain, pubKey);
String tss = byteArraytoHex(cipher);
String encrypt = tss+”+”+keyp;
return encrypt;
} catch (IOException ex) {
return ex.toString();
}
}
public String Decrypt(String hexa,byte[] pair) {
try {
System.out.println(“generator on”);
ByteArrayInputStream bais = new ByteArrayInputStream(pair);
DataInputStream dis = new DataInputStream(bais);
int modLen = dis.readInt();
int pubLen = dis.readInt();
int privLen = dis.readInt();
15
Lanjutan
int pLen = dis.readInt();
int qLen = dis.readInt();
int dPLen = dis.readInt();
int dQLen = dis.readInt();
int qInvLen = dis.readInt();
byte[] modulo = new byte[modLen];
bais.read(modulo, 0, modLen);
byte[] pubExp = new byte[pubLen];
bais.read(pubExp, 0, pubLen);
byte[] privExp = new byte[privLen];
bais.read(privExp, 0, privLen);
byte[] p = new byte[pLen];
bais.read(p, 0, pLen);
byte[] q = new byte[qLen];
bais.read(q, 0, qLen);
byte[] dP = new byte[dPLen];
bais.read(dP, 0, dPLen);
byte[] dQ = new byte[dQLen];
bais.read(dQ, 0, dQLen);
byte[] qInv = new byte[qInvLen];
bais.read(qInv, 0, qInvLen);
dis.close();
bais.close();
//
qInv);
// construct private key
RSAPrivateCrtKeyParameters privKey = constructPrivateKey(modulo, pubExp, privExp, p, q, dP, dQ,
// construct public key
RSAKeyParameters pubKey = constructPublicKey(modulo, pubExp);
String ok = convertHexToString(hexa);
byte[] cip = StringToByteArray(ok);
byte[] recovery = rsaDecrypt(cip, pubKey);
return new String(recovery);
} catch (IOException ex) {
return ex.toString();
}
}
public static final char[] kDigits ={„0‟,‟1‟,‟2‟,‟3‟,‟4‟,‟5‟,‟6‟,‟7‟,‟8‟,‟9‟,‟a‟,‟b‟,‟c‟,‟d‟,‟e‟,‟f‟};
/* byte array ke Hexa */
public static String byteArraytoHex(byte[] str){
StringBuffer sb = new StringBuffer(str.length * 2);
for(int i=0;i
KEAMANAN SISTEM PENGIRIMAN DATA PILKADA
VIA MOBILE
SYAMSUL ARIFIN
DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
BOGOR
2012
i
ABSTRACT
SYAMSUL ARIFIN, Implementation of Public Key Infrastructure for Security System of
Local Elections Data Transmission Via Mobile. Supervised by SHELVIE NIDYA NEYMAN
Cryptography is a process of encrypting data into a form that can be read only by a system.
The system has a key to read the encripted data. Based on the method, cryptographic algorithms
can be divided into asymmetric key cryptography, symmetric key criptography, and public key
cryptography. This research attemps to develop Public Key Infrastructure (PKI) with integrity
service, which is implemented in the transmission of voting results in mobile election process. The
benefits of this research is to simplify and improve the efficiency of the counting process and
improving the security of the data transmission using mobile communication.
The method employed is the Life Cycle Security System in which a sequence of steps
following the life cycle of security system by eliminating the operational and maintenance step.
The algorithm used in this research are RSA and MD5 Hash Function. RSA Algorithm is used to
facilitate the distribution of keys that was used in the message encryption, and MD5 hash
functions as an authentication function. The result of this research is the security system of the
transmission of local elections vote via mobile which overcome the threat of sniffing or snooping,
camouflage, and alteration with provides security services of authentication, integrity, and
availability.
Keywords: Election of Regional Head, Java, J2ME, Public Key, RSA Algorithm.
i
IMPLEMENTASI PUBLIC KEY INFRASTRUCTURE UNTUK
KEAMANAN SISTEM PENGIRIMAN DATA PILKADA
VIA MOBILE
SYAMSUL ARIFIN
Skripsi
sebagai salah satu syarat untuk memperoleh gelar
Sarjana Komputer pada
Departemen Ilmu Komputer
DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
BOGOR
2012
i
Judul skripsi
Nama
NIM
: Implementasi Public Key Infrastructure untuk Keamanan Sistem Pengiriman
Data Pilkada Via Mobile
: Syamsul Arifin
: G64063472
Menyetujui
Pembimbing,
Shelvie Nidya Neyman, S.Kom, M.Si.
NIP 19770206 200501 2 002
Mengetahui
Ketua Departemen Ilmu Komputer,
Dr. Ir. Agus Buono, M.Si, M.Kom
NIP 19660702 199302 1 001
Tanggal lulus:
ii
RIWAYAT HIDUP
Penulis lahir di Bangkalan pada tanggal 15 Agustus 1988. Penulis merupakan anak kelima
dari lima bersaudara, pasangan Mi‟ad Ikhsan dan Sumani.
Pada tahun 2006, penulis lulus Sekolah Menengah Umum Negeri 1 Bangkalan, Kabupaten
Bangkalan, Madura, Jawa Timur. Penulis melanjutkan perkuliahan di Institut Pertanian Bogor
melalui jalur Ujian Seleksi Masuk IPB (USMI) pada tahun 2006. Penulis diterima di Program
Studi Ilmu Komputer Fakultas Matematika dan Ilmu Pengetahuan Alam pada tahun 2008. Penulis
aktif dalam organisasi Badan Eksekutif Mahasiswa Keluarga Mahasiswa IPB (BEM KM IPB) dan
menjabat sebagai staf Kementrian Pendidikan pada tahun 2006. Penulis juga menjadi asisten
praktikum Penerapan Komputer pada tahun 2008.
Penulis pernah melakukan Praktik Kerja Lapangan di Republik Citra Televisi Indonesia
(RCTI)selama 2 bulan. Penulis membuat Sistem Dokumentasi Data Perusahaan RCTI. Penulis
pernah bekerja sebagai programmer di salah satu perusahaan yang bergerak di bidang GPS
provider yaitu PT. Global Posisi Semesta. Pada saat penulisan skripsi ini, penulis bekerja di salah
satu perusahaanyang bergerak di bidang teknologi informasi yaitu PT. Jatis Mobile.
iii
PRAKATA
Alhamdulillah, segala puji dan syukur penulis panjatkan kepada Allah Subhanahuwata’ala atas
semua rahmat dan karunia-Nya, sehingga penulis dapat menyelesaikan skripsi yang berjudul
Implementasi Public Key Infrastructure untuk Keamanan Sistem Pengiriman Data Pilkada Via
Mobile yang dilaksanakan pada bulan Juli 2010 sampai dengan September 2011. Shalawat serta
salam penulis sampaikan kepada junjungan kita Nabi Muhammad Salallahualaihiwassalam.
Terima kasih kepada kedua orang tua tercinta, Ayahanda Mi‟ad Ikhsan dan Ibunda Sumani
yang sampai detik ini selalu memberikan curahan kasih sayang yang tiada terhingga, juga untuk
setiap dukungan, semangat, dan doa yang telah diberikan untuk penulis, begitu juga dengan
keempat kakak penulis yang menjadi motivasi buat penulis untuk terus melakukan yang terbaik.
Penulis mengucapkan terima kasih kepada Ibu Shelvie Nidya Neyman, S.Kom, M.Si selaku
pembimbing yang dengan sabar membimbing serta memberikan masukan kepada penulis.Terima
kasih atas saran, bantuan, perhatian, bimbingan dan masukannya kepada penulis selama
menjalankan penelitian ini. Ucapan terima kasih juga penulis sampaikan kepada pihak-pihak yang
terus memberikan dukungan dan semangat :
1 Teman-teman di PT. Global Posisi Semesta, terutama kepada Bapak Rudy Hartanto selaku
pimpinan perusahaan.
2 Seluruh staf pengajar dan karyawan Departemen Ilmu Komputer Institut Pertanian Bogor.
3 Teman-teman ILKOM angkatan 43 atas kebersamaan dan dukungannya.
4 Teman-teman GASISMA atas kebersamaan, persahabatan, semangat dan bantuannya.
Semoga karya ilmiah ini bermanfaat bagi pembaca, terutama untuk para pembaca yang
berminat untuk melanjutkan dan menyempurnakan penelitian ini.
Bogor, Juli 2012
Syamsul Arifin
iv
DAFTAR ISI
Halaman
DAFTAR GAMBAR .....................................................................................................
vi
DAFTAR LAMPIRAN ..................................................................................................
vi
PENDAHULUAN
Latar Belakang .......................................................................................................
Tujuan ...................................................................................................................
Ruang Lingkup ......................................................................................................
Manfaat Penelitian .................................................................................................
1
1
1
1
TINJAUAN PUSTAKA
Kriptografi Kunci Publik ........................................................................................
Algoritme RSA ......................................................................................................
Fungsi Hash ...........................................................................................................
Message Digest 5 (MD5) ........................................................................................
Komunikasi Perangkat Mobile................................................................................
1 Teknologi Nirkabel 1G ................................................................................
2 Teknologi Nirkabel 2G ................................................................................
3 Teknologi Nirkabel 2,5 G.............................................................................
4 Teknologi Nirkabel 3G ................................................................................
Java 2 Micro Edition (J2ME) ..................................................................................
1 Connected Limited Device Configuration (CLDC) .......................................
2 Connected Device Configuration (CDC) ......................................................
3 Mobile Information Device Profile (MIDP) ..................................................
1
1
2
2
2
2
2
3
3
3
3
4
4
METODE PENELITIAN
Ancaman (Thread) .................................................................................................
Kebijakan (Policy) .................................................................................................
Spesifikasi .............................................................................................................
Desain....................................................................................................................
Implementasi .........................................................................................................
4
4
4
4
4
HASIL DAN PEMBAHASAN
Ancaman (Thread) .................................................................................................
Kebijakan (Policy) .................................................................................................
Spesifikasi .............................................................................................................
Desain....................................................................................................................
Implementasi .........................................................................................................
5
5
5
5
8
KESIMPULAN DAN SARAN
Kesimpulan ............................................................................................................
Saran .....................................................................................................................
8
8
DAFTAR PUSTAKA ....................................................................................................
8
v
DAFTAR GAMBAR
Halaman
1
2
3
4
5
6
7
8
9
10
Algoritme MD5 (Munir 2004) ..................................................................................
Arsitektur jaringan GPRS. ........................................................................................
Perkembangan teknologi Java ...................................................................................
Siklus hidup sistem keamanan (Neyman 2007). .........................................................
Flowchart pendaftaran petugas. ................................................................................
Flowchart pendaftaran calon. ....................................................................................
Flowchart login ke sistem. ........................................................................................
Form login. ..............................................................................................................
Flowchart pengiriman data. ......................................................................................
Form generate token.................................................................................................
2
3
3
4
6
6
6
7
7
8
DAFTAR LAMPIRAN
Halaman
1
2
3
4
5
User interface aplikasi di sisi server..........................................................................
User interface aplikasi di sisi client ...........................................................................
Implementasi public key infrastructure......................................................................
Data hasil enkripsi ....................................................................................................
Proses uji pada aplikasi pengiriman data pilkada via mobile – server .........................
11
12
13
21
22
vi
1
PENDAHULUAN
Latar Belakang
Pemilihan
Kepala
Daerah
(Pilkada)
merupakan salah satu bentuk perwujudan sistem
politik demokrasi di Indonesia, sehingga
pelaksanaan pilkada yang baik menjadi tolak
ukur baik tidaknya pelaksanaan demokrasi.
Pilkada harus dilaksanakan secara langsung,
umum, bebas, dan rahasia serta dilandasi
dengan semangat jujur dan adil. Oleh karena
itu, pelaksanaan pilkada perlu dikelola dengan
baik dan benar (Budi et al. 2008).
Proses pilkada memiliki 4 tahapan utama:
1 Pendataan adalah tahap untuk mendata
penduduk dan pemilih, TPS (Tempat
Pemungutan Suara), dan peserta pilkada.
2 Persiapan adalah tahap untuk menetapkan
alokasi kursi untuk setiap daerah pemilihan,
serta untuk menetapkan calon, serta
melengkapi
pembentukan
panitia
penyelenggara pilkada.
3 Pemungutan
suara
adalah
tahapan
pengambilan dan penghitungan suara
Pilkada.
4 Pasca Pilkada adalah tahapan penetapan
hasil pilkada.
Proses yang paling krusial pada pilkada
adalah pada saat proses pengambilan suara dan
proses penghitungan hasil suara. Setelah proses
penghitungan, hasil suara dikirim ke pusat.
Sistem pengiriman data hasil suara yang
banyak
dikembangkan
belakangan
ini
menggunakan aplikasi berbasis SMS yang
diintegrasikan dengan aplikasi web. Tujuannya
untuk mempercepat hasil perhitungan suara
pilkada secara realtime dan mengurangi
indikasi kecurangan (Amborowati 2007).
Kelemahan sistem ini adalah proses pengiriman
datanya masih menggunakan sistem SMS yang
sederhana serta tidak sepenuhnya data jumlah
suara dikirim ke pusat tetapi hanya mengambil
sebagian suara sebagai sampel sehingga masih
memungkinkan kecurangan.
Penelitian ini mencoba mengembangkan
sebuah
sistem
menggunakan
algoritme
kriptografi kunci publik dalam proses
pengiriman data pilkada untuk menigkatkan
keamanan dan kerahasiaan informasi data hasil
suara yang dikirimkan ke pusat. Sistem
pengiriman data pilkada ini berguna sebagai
pengaman agar tidak terjadi kecurangan dalam
pengubahan pada saat pengiriman data ke pusat.
Tujuan
Penelitian ini bertujuan membangun sistem
Public Key Infrastruktur (PKI) dengan
keamanan layanan integritas di dalamnya.
Layanan integritas tersebut menggunakan
kriptografi sebagai autentikasi untuk memeriksa
pesan yang terkirim apakah benar berasal dari
sumber yang sah.
Ruang Lingkup
Penelitian ini mencoba mengembangkan
sistem PKI yang merupakan sistem clientserver. Sistem ini menggunakan mobile sebagai
client. Sistem diimplementasikan menggunakan
simulator. Data yang digunakan dalam
penelitian ini bersifat dummy. Bahasa
pemrograman
yang
digunakan
untuk
mengembangkan sistem ini adalah bahasa
pemograman Java yang diimplementasikan
dalam lingkungan mobile.
Manfaat Penelitian
Hasil dari penelitian ini diharapkan dapat
mempermudah dan meningkatkan efisiensi
waktu dalam perhitungan suara serta
meningkatkan keamanan pengiriman data
pilkada yang dilakukan melalui mobile. Selain
itu, metode keamanan yang dihasilkan dari
penelitian ini dapat diterapkan dalam sistem
pemilihan berbasis mobile (m-voting).
TINJAUAN PUSTAKA
Kriptografi Kunci Publik
Diberikan skema enkripsi yang teridiri atas
himpunan transformasi enkripsi dan dekripsi
{Ee : e ϵ K} dan {Dd : d ϵ K}. Metode enkripsi
disebut skema enkripsi kunci publik jika untuk
setiap pasangan (e,d). Kunci e dibuat tersedia
untuk umum (publik) dan kunci pasangan d
dibuat untuk pribadi dan dijaga kerahasiaannya.
Skema tersebut dikatakan aman, jika secara
perhitungan tak-layak menentukan d dari e
(Menezes et al. 1996).
Algoritme RSA
Algoritme RSA ditemukan oleh Ron Rivest,
Adi Shamir, dan Len Adleman. Algoritme ini
diperkenalkan pertama kali pada bulan Agustus
1977. Algoritme kriptografi ini banyak
digunakan untuk memberikan privasi dan
menjamin autentikasi data digital. Saat ini RSA
telah dikembangkan oleh banyak sistem
komersial. RSA digunakan oleh web server dan
browser untuk keamanan lalu-lintas data pada
web. RSA juga juga digunakan untuk menjamin
remote login session dan bagian utama dari
sistem pembayaran kartu kredit elektronik.
Dengan kata lain RSA, banyak digunakan untuk
2
Fungsi Hash
Fungsi hash adalah fungsi yang secara
komputasi efisien memetakan bitstring dengan
panjang sembarang ke bitstring dengan panjang
tetap yang disebut nilai-hash (hash-value).
Untuk fungsi hash dengan output nilai-hash nbit, probabilitas pemilihan string secara random
yang dipetakan ke nilai-hash n-bit adalah 2-n.
Berdasarkan definisi tersebut, ide dasar dari
fungsi hash adalah membuat string input
menjadi teratur rapat dengan panjang seragam.
Terkait dengan kegunaan kriptografi, fungsi
hash h dipilih sedemikian sehingga secara
komputasi tak-layak menentukan input berbeda
x dan y sehingga h(x) = h(y) (Menezes et al.
1996).
Message Digest5 (MD5)
Salah satu fungsi hash yang paling banyak
digunakan adalah Message Digest 5 (MD5).
MD5 adalah fungsi hash satu arah yang dibuat
oleh Ron Rivest. Satu arah yang dimaksud
adalah kita dengan mudah dapat menghitung
nilai hash pesan tetapi sangat sulit untuk
mendapatkan kembali pesan semula.
MD5 memproses masukan dengan panjang
512 bit yang dibagi ke dalam 16 blok dengan
panjang masing-masing blok 32 bit (Schneier
1996). Keluaran yang dihasilkan berupa
message digest yang panjangnya 128 bit.
Langkah-langkah pembuatan message digest
adalah sebagai berikut:
1 Penambahan bit-bit pengganjal (padding
bits).
2 Penambahan nilai panjang pesan semula.
3 Inisialisasi penyangga MD.
4 Pengolahan pesan dalam blok berukuran 512
bit.
Padding bit
K bit
K mod 264
(1-512 bit
1000…000
Pesan
512
512
Y0
Y1
128
HMD5
HMD5
512
…
512
…
Yq
128 128
Panjang
Pesan
YL = 1
128 128
HMD5
ABCD
HMD5
128
Deskripsi sederhana dari algoritme RSA
sebagai berikut:
N = pq
(1)
Dengan p dan q adalah dua buah bilangan prima
besar dengan ukuran yang sama. Berikan nilai e
dan d dengan ketentuan sebagai berikut:
ed = 1 mod φ(N)
(2)
φ(N) = (p-1)(q-1)
(3)
N adalah RSA modulus, e adalah encryption
exponent, dan d adalah decryption exponent.
(N,e) adalah kunci publik yang digunakan untuk
ekripsi pesan. (N,d) adalah kunci rahasia atau
kunci
privat
yang
digunakan
untuk
mendeskripsi chipertext atau pesan telah
dienkripsi ke pesan sebenarnya (Boneh 1999).
Gambaran pembuatan message digest
dengan algoritme MD5 dapat dilihat pada
Gambar 1.
L x 512 bit
128
aplikasi yang membutuhkan keamanan data
digital.
Message Digest
Gambar 1 Algoritme MD5 (Munir 2004).
Komunikasi Perangkat Mobile
Perkembangan teknologi perangkat mobile
telah sampai pada fase “Generations” atau
dikenal dengan akronim „G”. Perkembangan
baru dari tiap generasi perangkat mobile
memberikan reabilitas dan fleksibilitas lebih
dari generasi sebelumnya (Harte & Bowler
2004).
1 Teknologi Nirkabel 1G
Teknologi ini merupakan teknologi pertama
dari teknologi nirkabel.
Generasi ini
dikembangkan pada tahun 1980-1990 dan
hanya menggunakan layanan suara analog tanpa
layanan data. Pada generasi ini, frekuensi yang
digunakan belum standar, karena terdapat
berbagai frekuensi berbeda untuk tiap provider.
2 Teknologi Nirkabel 2G
Generasi kedua atau 2G dari teknologi
nirkabel menggunakan jaringan digital berbasis
sirkuit. Karena generasi ini menggunakan
jaringan digital, teknologi ini telah mampu
mentransmisikan data dengan kecepatan ratarata 9.6 Kbps (Kilobits per second). Teknologi
ini bekerja pada beberapa frekuensi, yaitu 900
MHz, 1800 MHz, dan 1900 MHz. Teknologi ini
memiliki tiga standar sebagai berikut:
1 Time Division Multiple Access (TDMA).
2 Code Division Multiple Access (CDMA).
3 Global Sistem for Mobile (GSM).
3
3 Teknologi Nirkabel 2.5 G
2.5G adalah akronim dari perkembangan
teknologi dari generasi teknologi nirkabel 2G.
Perkembangan pada teknologi ini adalah
meningkatnya kecepatan transmisi data menjadi
56 Kbps. Teknologi 2.5G tetap menggunakan
infrastruktur 2G dengan beberapa tambahan
teknologi perti General Packet Radio Service
(GPRS) dan Enhanced Data Rates for Global
Evolution (EDGE) yang berbasis paket data.
perangkat mobile, seperti pager, ponsel, screenphones, dan sistem navigasi kendaraan (Feng &
Zhu 2001).
Gambar 3 memperlihatkan
perangkat dan platform dari tiap edisi teknologi
Java. Java 2 Entreprise Edition (J2EE)
memberikan
solusi
untuk
lingkungan
enterprise, Java 2 Standard Edition (J2SE)
untuk lingkungan pengembangan desktop, dan
J2ME untuk perangkat mobile.
Servers
Desktop
Machine
GGSN
Other
network
Low End
Consumer
Device
Foundati
on Profile
internet
J2SE
J2EE
GPRSback
bone
Personal
Profile
GSNs
High End
Consumer
Device
MIDP
CDC
CLDC
Smart Card
Java Card
Java Virtual Machine
KVM
Card VM
Gambar 3 Perkembangan teknologi Java.
Gambar 2 Arsitektur jaringan GPRS.
Gambar 2 menunjukkan arsitektur jaringan
GPRS. Elemen dari jaringan GPRS adalah Base
Transciver Stations (BTS), Base Stations
Controller (BSC), GPRS support nodes
(GSNs), serving GSN, dan Gateway GSN
(GGSN).
Configuration
merepresentasikan
Java
library minimum yang harus dimiliki oleh suatu
perangkat elektronik untuk menjalankan suatu
aplikasi. J2ME saat ini telah mendefinisikan
dua buah configuration, yaitu CLDC dan CDC,
serta profile dari masing-masing Configuration,
yaitu MIDP.
4 Teknologi Nirkabel 3G
Generasi ini menggunakan frekuensi
transmisi yang berbeda dari generasi
sebelumnya dan membutuhkan infrastruktur
yang berbeda. Teknologi ini memberikan
peningkatan kecepatan transmisi data hingga 2
Mbps pada keadaan stabil.
Teknologi 3G dapat memberikan layanan
seperti :
Audio dan Video streaming,
Voice Over Internet Protocol (VolP),
Mengirim dan menerima gambar, suara dan
video,
Virtual Home Environments (VHE), dan
Global Positioning Sistem (GPS).
Layanan 3G masih akan terus bertambah
seiring perkembangan teknologi ini.
Java 2 Micro Edition (J2ME)
Sun Microsistem mendefinisikan Java 2
Micro Edition (J2ME) sebagai Java run-time
environment yang ditargetkan pada konsumen
1 Connected Limited Device Configuration
(CLDC)
CLDC adalah spesifikasi dasar yang berupa
library dan API yang diimplementasikan pada
J2ME dan biasa digunakan pada telepon selular
atau PDA yang memiliki karakteristik:
Prosesor 16-bit atau 32-bit.
Memory terbatas, 512 KB atau lebih rendah.
Power supply yang terbatas.
Layar monitor yang terbatas.
Kemampuan input yang terbatas.
CLDC juga tidak mendukung tipe data float
dan double. Selain itu, CLDC juga tidak
mendukung
kelas
dan
method
yang
membutuhkan tipe data tersebut atau
melibatkan operasi floating point. Java Virtual
Machine (JVM) yang biasa digunakan disebut
Kilobyte Virtual Machine (KVM). Selain itu,
terdapat VM lain, yaitu J9VM dari IBM.
4
2 Connected Device Configuration (CDC)
CDC diperuntukan bagi perangkat dengan
ketersediaan memori minimal 2MB dan 32 bit
prosesor. CDC dapat ditemukan pada high-end
PDA, smart phones, Internet TV serta mobile
TV. JVM yang digunakan disebut CVM.
Profile melengkapi configuration dengan
menambahkan
beberapa
kelas
yang
menyediakan fitur yang sesuai untuk suatu tipe
perangkat tertentu. Kedua configuration J2ME
memiliki satu atau lebih profile yang terkait,
dan beberapa di antaranya saling tergantung.
3 Mobile Information Device Profile
(MIDP)
MIDP memiliki API tambahan untuk
jaringan, daur hidup aplikasi, antarmuka, dan
penyimpanan persistensi untuk CLDC. Profile
ini ditujukan untuk perangkat mobile yang
memiliki display dan fasilitas penyimpanan
yang terbatas.
METODE PENELITIAN
Ancaman
(Thread)
Kebijakan
(Policy)
Spesifikasi
Desain
Implementasi
Operasi dan
Pemeliharaan
Gambar 4 Siklus hidup sistem keamanan
(Neyman 2007).
Metode yang digunakan untuk implementasi
sistem keamanan pengiriman data hasil suara
pilkada via mobile ini mengadopsi tahapan pada
Security Sistem Life Cycle (Bishop 2003) untuk
lebih detail dapat dilihat pada Gambar 4. Kegiatan
yang dilakukan pada setiap tahapannya adalah
sebagai berikut:
Ancaman (Thread)
Tahapan awal dari pembangunan sistem ini
adalah mengidentifikasi ancaman-ancaman yang
ingin diatasi oleh sistem, atau dalam penelitian ini
adalah penentuan aspek, atau layanan keamanan
yang ingin diberikan. Layanan keamanan
dipersiapkan untuk mengatasi serangan akibat
ancaman-ancaman yang diperkirakan akan muncul.
Bishop (2003) mengemukakan bahwa
keamanan komputer melingkupi tiga aspek utama
yaitu, kerahasiaan, integritas, dan availability.
Interpretasi setiap aspek pada lingkungan suatu
organisasi ditentukan oleh kebutuhan dari individu
yang terlibat, kebiasaan, dan hukum yang berlaku
pada organisasi tersebut.
Kebijakan (Policy)
Tahapan selanjutnya adalah penentuan
kebijakan keamanan. Kebijakan tersebut ditujukan
untuk memberikan arahan dan sasaran serta
sekaligus menjadi acuan standar keamanan dalam
sistem. Kebijakan keamanan juga harus memenuhi
layanan-layanan keamanan yang akan disajikan
oleh sistem.
Spesifikasi
Tahap spesifikasi merupakan pernyataan
fungsional dari sistem yang dapat berupa ekspresi
matematika atau bahasa lain yang mendeskripsikan
metode sistem dalam memberikan layanan
keamanan.
Desain
Tahapan
desain
dari
sistem
akan
menerjemahkan
spesifikasi
dalam
bentuk
komponen-komponen
yang
akan
diimplementasikan. Desain dikatakan memenuhi
spesifikasi jika tidak melanggar semua ketentuan
dalam spesifikasi. Pada tahap ini, dilakukan
perancangan aplikasi dengan menerjemahkan
kebutuhan sistem berdasarkan ancaman (thread),
kebijakan, dan spesifikasi. Perancangan dilakukan
dengan membuat flowchart modul dan sketsa
umum antarmuka sistem yang akan dibuat.
Implementasi
Tahapan
implementasi
menghasilkan
aplikasi yang sesuai dengan desain yang ada.
Bila desain yang ada telah memenuhi
spesifikasi sistem, secara tidak langsung
aplikasi yang dihasilkan juga memenuhi
spesifikasi tersebut. Kesulitan pada tahapan ini
biasanya terletak pada kompleksitas program
untuk mengimplementasikan desain.
HASIL DAN PEMBAHASAN
Sistem ini diawali dengan proses pengiriman
data dari aplikasi mobile melalui internet.
5
Jaringan tersebut merupakan jaringan unsecure
sehingga
diperlukan
keamanan
dalam
pengiriman data pilkada ke server. Pada
pembahasan di bawah ini, akan dijelaskan dari
setiap tahap dalam pembangunan sistem ini.
Ancaman (Thread)
Jenis ancaman yang teridentifikasi yang
dapat menimbulkan serangan keamanan dalam
sistem pengiriman data pilkada via mobile ini
adalah snooping dan modification or alteration.
Ancaman snooping atau pengintaian terjadi
dikarenakan pengiriman data melewati jaringan
komunikasi public yang semua pihak dapat
melihat aliran informasi yang lewat pada
jaringan tersebut atau biasa dikenal dengan
wiretapping, yaitu pengintaian dalam jaringan
yang terbuka. Snooping yang terjadi dalam
sistem pengiriman data pilkada adalah
mengetahui jumlah suara yang dikirim petugas
ke pusat. Modification or alteration, adanya
pengubahan data jumlah suara pilkada oleh
pihak yang tidak berhak kemudian dikirim
ulang ke server dengan harapan petugas dan
server tidak menyadari adanya perubahan.
Penyamaran, yaitu adanya pihak yang tidak
berhak mengaku sebagai petugas sehingga
dapat menggunakan sistem untuk hal yang tidak
sesuai prosedur. Salah satu cara untuk
mengatasi ancaman ini adalah dengan
memberikan layanan kerahasiaan, autentikasi
dan integritas pada sistem.
Kebijakan (Policy)
Pada tahap ini, ditentukan kebijakankebijakan yang akan berlaku dalam sistem ini.
Kebijakan keamanan tersebut meliputi:
1 User Policy
Pada sistem ini, terdapat dua pihak yaitu
pihak pengirim dan penerima. Dalam sistem
pengiriman data pilkada via mobile, penerima
sendiri adalah admin server dan pengirim
adalah petugas yang mengirimkan data jumlah
suara pilkada via mobile. Masing-masing pihak
memiliki peranan yang berbeda dalam proses
pengiriman data. Sistem ini tidak melibatkan
pihak ketiga.
2 Communication and Network Policy
Jalur komunikasi dalam sistem pengiriman
data pilkada bersifat dua arah serta
menggunakan jaringan yang unsecure dan
umum. Hal ini menyebabkan setiap orang dapat
melihat adanya pertukaran data yang mengalir
di dalam jaringan dengan ketentuan kondisi
normal. Penelitian ini menggunakan jaringan
unsecure dan umum untuk menerapkan metode
pendistribusian kunci yang sesuai sebagai
pengaman.
3 Access Policy
Sistem ini sepenuhnya mengatur hak akses
user. Dalam sistem ini, user yang sudah
diberikan hak dapat menggunakan layanan yang
disediakan oleh sistem. Untuk melakukan
proses tersebut, user harus memasukkan
username, password, dan pin. Kebijakan ini
diberikan untuk mencegah adanya ancaman
penyamaran yang sudah diidentifikasi pada
tahap sebelumnya.
4 Application and Data Policy
Aplikasi hanya bisa digunakan oleh user
yang telah mendaftarkan diri ke admin sehingga
aplikasi tersebut bisa di-install di handphone
user dan tidak bisa di-copy ke handphone yang
lain.
Data yang digunakan dalan sistem ini
merupakan data dummy. Asumsi bahwa data
yang dikirim ke server merupakan data valid
digunakan.
Spesifikasi
Pada tahap ini, dilakukan penentuan
algoritme yang akan digunakan. Algoritme yang
dipakai untuk menyajikan keamanan pada
sistem ini adalah sebagai berikut:
1 Autentikasi dan verifikasi
Fungsi hash diterapkan untuk menjaga
layanan integritas. Autentikasi digunakan untuk
mendapat nilai autentikasi dari data, sedangkan
verifikasi
digunakan
untuk
memeriksa
keautentikan data dengan nilai autentikasinya.
Metode ini digunakan untuk menyembunyikan
keautentikan data agar tidak diketahui oleh
pihak luar. Selain itu, metode ini digunakan
sebagai bentuk pencegahan penyamaran dan
modifikasi data oleh pihak yang tidak berhak.
Untuk mendukung layanan integritas, sistem
menggunakan fungsi hash yaitu MD5.
2 Kerahasiaan Data
Algoritme
kriptografi
kunci
publik
digunakan untuk menjaga kerahasiaan data
adalah RSA. Algoritme ini merupakan metode
yang digunakan dalam pembangkitan kunci
yang nantinya akan didistribusikan secara
umum. Studi kasus dalam penelitian ini adalah
petugas akan mengirimkan kunci publik ke
server agar server bisa membuka pesan yang
dikirim oleh petugas. Hal ini dilakukan untuk
layanan keautentikan dapat terealisasi. Tahap
spesifikasi dalam penelitian ini juga ditentukan
lingkungan pengembangan sistem.
Desain
Ancaman, kebijakan, dan spesifikasi yang
sudah
ditentukan
dilanjutkan
untuk
diterjemahkan ke dalam desain sistem yang
6
dibagi berdasarkan modul yang dibutuhkan
dalam sistem. Modul-modul tersebut antara lain
adalah:
Mulai
Cek status
pendaftaran
1 Modul pendaftaran petugas
Modul ini digunakan untuk pendaftaran
petugas yang nantinya akan diberi hak untuk
mengakses sistem atau dengan kata lain modul
ini dijadikan sebagai layanan jaminan hak akses
terhadap sistem. Hasil dari desain sistem
pendaftaran petugas dapat dilihat pada
flowchart pendaftaran petugas pada Gambar 5.
Antarmuka aplikasi di sisi server dapat dilihat
pada Lampiran 1, sedangkan antarmuka aplikasi
di sisi klien dapat dilihat pada Lampiran 2.
Pendaftaran
ditutup?
tidak
Ya
Input Data Diri
Pendaftaran
ditutup
Input data
lengkap?
Ya
tidak
Simpan Data
Pernyataan
salah
Mulai
Tabel
Calon dan
count
Cek status
pendaftaran
Selesai
Gambar 6 Flowchart pendaftaran calon.
tidak
Pendaftaran
ditutup?
tidak
Mulai
Pendaftaran
ditutup
Input Data Diri
Input data
lengkap?
Ya
Petugas memasukkan
Username, password
dan pin
Ya
Simpan
Data
Peringatan
kesalahan
Pernyataan
salah
Tabel penanggung
jawab, Tabel user,
dan Tabel token
pada basis data
pilkada
Input data
lengkap?
Tidak
Ya
User
Login
Selesai
Generate key(public key,
private key,modulo)
Proses login
Gambar 5 Flowchart pendaftaran petugas.
Pendaftaran hanya bisa dilakukan pada saat
pendaftaran dibuka oleh panitia. Data yang
dimasukkan adalah data diri petugas sesuai
dengan KTP petugas, username, password,
password token, serta pin yang akan digunakan
ketika login. Jika input data lengkap, sistem
akan menyimpan data tersebut ke dalam
database dengan mengambil nilai hash dari
password, password token, dan pin.
2 Modul pendaftaran calon
Modul ini digunakan untuk memberikan
referensi kepada petugas dan memberikan
jaminan agar tidak terjadi kesalahan ketika
mengirimkan data berupa jumlah suara yang
terkait dengan calon serta memberikan
standarisasi penamaan calon dalam sistem.
Desain yang dirancang dapat dilihat pada
flowchart pendaftaran calon pada Gambar 6.
Tidak
Mendeskripsi username,
password dan pin menggunakan
kunci privat petugas dengan
algoritma kunci asimetri
Login valid?
Ya
Enkripsi Username,
Password dan PIN
menggunakan kunci
publik dengan algoritma
kunci asimetri
Tabel user pada
basis data
pilkada
Gambar 7 Flowchart login ke system.
3 Modul login ke sistem
Desain pada modul ini digunakan untuk
masuk ke dalam sistem dengan username,
password, dan pin. Setelah login ini dilakukan
oleh petugas, dilakukan proses pengiriman data.
Login dilakukan oleh petugas pada saat proses
perhitungan suara, baik saat hasil perhitungan
7
belum selesai atau sudah selesai, dengan
ketentuan bahwa pengiriman data yang pertama
adalah insert data baru sesuai dengan id
petugas. Untuk yang kedua kali dan seterusnya,
yang dilakukan hanya proses update data di
dalam database berdasarkan id petugas tersebut.
Untuk lebih detail mengenai desain modul ini
dapat dilihat pada flowchart login pada Gambar
7.
Pada
modul
ini,
akan
dilakukan
pembangkitan kunci publik ketika petugas
melengkapi input data pada sistem. Kunci
publik digunakan untuk mengenkripsi data
petugas, dalam hal ini adalah username,
password, dan password token agar tidak ada
pihak luar yang mengetahui isi pesan yang
dikirimkan. Kode implementasi public key
infrastructure dapat dilihat pada Lampiran 3.
User Interface untuk modul login dapat
dilihat pada Gambar 8.
Untuk menjamin keamanan bahwa sistem
masih dipegang oleh orang yang sama, setelah
melakukan pemilihan, petugas akan diminta
untuk memasukkan password token sebagai
parameter untuk membangkitkan challenge
code yang nantinya akan divalidasi oleh system.
Challenge code hanya berlaku dalam selang
waktu tiga menit.
Proses
submit
Memilih calon dan
memasukkan Jumlah
suara, nama TPS dan
keadaan
Ya
Proses Generate respon
Code menggunakan
Tidak
password token petugas
dan challenge code
user
send
System
Proses
send
Proses Generate
Challenge Code
Password
kosong?
Memasukkan
password token
Enkripsi id petugas, challenge
code, respon code, jumlah suara,
pilihan calon, nama TPS, kondisi
pilkada menggunakan kunci
publik petugas
Password
Deskripsi id petugas,
benar?
challenge code, respon
Tidak
code, jumlah suara, pilihan
Pernyataan
Ya
calon, nama TPS, kondisi
salah
pilkada menggunakan
Respon code
kunci privat
Tidak
sesuai?
Ya
Simpan
data
Gambar 8 Form Login.
4 Modul pengiriman data
Modul ini merupakan fungsi utama dalam
penelitian ini. Desain modul ini dapat dilihat
pada flowchart pengiriman data pada Gambar 9.
Pada modul ini, petugas melakukan
pengiriman data berupa jumlah suara yang
diperoleh oleh setiap calon ke server. Pada
proses pengiriman ini, dilakukan enkripsideskripsi menggunakan algoritme kunci publik.
Contoh data yang telah dienkripsi dapat dilihat
pada Lampiran 4.
Fungsi yang sifatnya update data ini bisa
dilakukan berulang kali oleh petugas. Pada saat
petugas melakukan pengiriman data pertama
kali, sistem tidak otomatis logout, tetapi
kembali ke tampilan utama.
Tabel history
pada basis data
pilkada
selesai
Gambar 9 Flowchart pengiriman data.
User interface untuk form pengisian data
dapat dilihat pada Gambar 10.
User interface untuk generate token key
dapat di lihat pada Gambar 11.
Gambar 10 Form data pilkada.
8
flowchart atau desain sistem yang telah
ditentukan pada tahap desain. Untuk lebih
detail, hasil pengujian dapat dilihat di Lampiran
5.
KESIMPULAN DAN SARAN
Gambar 11 Form generate token.
Implementasi
Tahap implementasi dilakukan untuk
merealisasikan desain sistem yang sudah dibuat
dalam bentuk aplikasi. Beberapa komponen
yang digunakan untuk merealisasikan desain
sistem adalah sebagai berikut:
Algoritme fungsi hash yang digunakan
adalah MD5 yang menghasilkan nilai hash
dengan panjang 128 bit.
Algoritme kunci publik yang berfungsi
untuk pengamanan dalam pendistribusian
kunci menggunakan sepasang kunci dengan
fungsi tertentu, yaitu kunci publik dan kunci
privat. Algoritme yang digunakan sebagai
algoritme kunci publik yakni RSA.
Komponen dan lingkungan implementasi
desain sistem direalisasikan menjadi aplikasi
menggunakan perangkat dengan spesifikasi
sebagai berikut:
1 Perangkat lunak:
MySQL 5.0.67,
J2ME Wireless Toolkit 2.5.2,
Netbeans IDE 6.9, dan
Bahasa pemograman yang digunakan
adalah Java 2 Mobile Edition (J2ME)
2 Perangkat keras:
Processor : Intel® Dual- Core 2.00GHz,
Memory : 2GB,
Harddisk : 160GB, dan
Handphone berbasis Java, misalnya: Sony
Ericsson W205
Pada tahap ini, juga dilakukan pengujian
terhadap sistem menggunakan metode uji
blackbox testing. Berdasarkan hasil pengujian,
sistem sudah berjalan dengan baik berdasarkan
Kesimpulan
Penelitian ini berhasil menerapkan metode
public key infrastructure. Dalam prosesnya,
sistem ini sendiri bisa memberikan beberapa
layanan keamanan untuk mengatasi ancamanancaman yang mungkin terjadi pada sistem.
Ancaman yang bisa diatasi dalam penelitian ini
adalah sniffing atau snooping, penyamaran, dan
alteration. Ancaman sniffing bisa diatasi karena
pesan yang dikirimkan pada jaringan publik
berupa karakter-karakter yang aneh sehingga
untuk bisa membaca pesan tersebut dibutuhkan
sistem
bantuan,
sedangkan
ancaman
penyamaran dan alteration dapat diatasi dengan
layanan autentikasi-verifikasi data yang
dikirimkan.
Saran
Saran untuk penelitian selanjutnya adalah:
1 Penelitian ini dapat dikembangkan menjadi
pemilihan
secara
mobile
(m-voting)
sehingga mempermudah pemilihan, dan
perhitungan suara serta meningkatkan
efisiensi waktu yang digunakan serta
meningkatkan keamanan dari m-voting.
2 Aplikasi perlu dikembangkan agar dapat
diimplementasikan untuk semua platform
mobile karena tidak semua handphone
menggunakan aplikasi berbasis Java.
DAFTAR PUSTAKA
Amborowati A. 2007. Aplikasi Sistem Quick
Count (SI-Q-CUP) Pilkada Pemilihan
Kepala Daerah Studi Kasus Pilkada
Propinsi
DIY.
Yogyakarta:
STMIK
AMIKOM Yogyakarta.
Bishop M. 2003. Computer Security. Boston:
Addison-Wesley.
Boneh D. 1999. Twenty years of attacks on the
RSA cryptosystem. Notices of the American
Mathematical Society (AMS) 46(2):203123.
Budi EM, Nuryanto HD, Rahman MZ, Yuwono
A, Noor S. 2008. Solusi e-demokrasi untuk
meningkatkan kualitas pemilu dan pilkada di
Indonesia. Di dalam: Konferensi dan Temu
Nasional
Teknologi
Informasi
dan
Komunikasi untuk Indonesia; Jakarta, 21-23
Mei 2008. Bandung: IGOS Center.
9
Y, Zhu J. 2001. Wireless Java
Programming with J2ME. New York:
Sams.
Harte L, Bowler D. 2004. Introduction to
Mobile Telephone System – 1G, 2G, 2.5
G, and 3G Wireless Technologies and
Services. New York: ALTHOS.
Menezes A, Oorschot PV, Vanstone S. 1996.
Handbook of Applied Cryptography.
London: CRC Press.
Feng
Munir R. 2004. Fungsi Hash Satu Arah dan
MD5. Bandung: Institut Teknologi
Bandung.
Neyman SN. 2007. Perancangan Protokol
Penyembunyian Informasi Terotentikasi
[tesis]. Bogor: Fakultas Matematika dan
Ilmu Pengetahuan Alam. Bogor: Institut
Pertanian Bogor.
Schneier B. 1996. Applied Cryptography. Ed
ke-2. New York: John Wiley & Sons.
10
LAMPIRAN
11
Lampiran 1 User interface aplikasi di sisi server
12
Lanjutan
Lampiran 2 User interface aplikasi di sisi client
13
Lanjutan
Lampiran 3 Implementasi public key infrastructure
package com.arifin.odp.RSA.main;
import com.arifin.odp.RSA.cipher.AsymmetricBlockCipher;
import com.arifin.odp.RSA.cipher.AsymmetricCipherKeyPair;
import com.arifin.odp.RSA.cipher.exception.CryptoException;
import com.arifin.odp.RSA.cipher.exception.DataLengthException;
import com.arifin.odp.RSA.cipher.exception.InvalidCipherTextException;
import com.arifin.odp.RSA.digest.MD5Digest;
import com.arifin.odp.RSA.encoding.PKCS1Encoding;
import com.arifin.odp.RSA.modul.BigInteger;
import com.arifin.odp.RSA.modul.RSAKeyPairGenerator;
import com.arifin.odp.RSA.modul.SecureRandom;
import com.arifin.odp.RSA.parameter.RSAKeyGenerationParameters;
import com.arifin.odp.RSA.parameter.RSAKeyParameters;
import com.arifin.odp.RSA.privat.RSAPrivateCrtKeyParameters;
import com.arifin.odp.RSA.sign.PSSSigner;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
/**
* @author Arifin
*/
public class RSAMidlet {
public String Encrypt(String str) {
try {
System.out.println(“generator on”);
byte[] keypair = generator();
String keyp = byteArraytoHex(keypair);
14
Lanjutan
byte[] plain = str.getBytes();
// input stream pasangan kunci
ByteArrayInputStream bais = new ByteArrayInputStream(keypair);
DataInputStream dis = new DataInputStream(bais);
int modLen = dis.readInt();
int pubLen = dis.readInt();
int privLen = dis.readInt();
int pLen = dis.readInt();
int qLen = dis.readInt();
int dPLen = dis.readInt();
int dQLen = dis.readInt();
int qInvLen = dis.readInt();
byte[] modulo = new byte[modLen];
bais.read(modulo, 0, modLen);
byte[] pubExp = new byte[pubLen];
bais.read(pubExp, 0, pubLen);
byte[] privExp = new byte[privLen];
bais.read(privExp, 0, privLen);
byte[] p = new byte[pLen];
bais.read(p, 0, pLen);
byte[] q = new byte[qLen];
bais.read(q, 0, qLen);
byte[] dP = new byte[dPLen];
bais.read(dP, 0, dPLen);
byte[] dQ = new byte[dQLen];
bais.read(dQ, 0, dQLen);
byte[] qInv = new byte[qInvLen];
bais.read(qInv, 0, qInvLen);
dis.close();
bais.close();
//
qInv);
// construct private key
RSAPrivateCrtKeyParameters privKey = constructPrivateKey(modulo, pubExp, privExp, p, q, dP, dQ,
// construct public key
RSAKeyParameters pubKey = constructPublicKey(modulo, pubExp);
byte[] cipher = rsaEncrypt(plain, pubKey);
String tss = byteArraytoHex(cipher);
String encrypt = tss+”+”+keyp;
return encrypt;
} catch (IOException ex) {
return ex.toString();
}
}
public String Decrypt(String hexa,byte[] pair) {
try {
System.out.println(“generator on”);
ByteArrayInputStream bais = new ByteArrayInputStream(pair);
DataInputStream dis = new DataInputStream(bais);
int modLen = dis.readInt();
int pubLen = dis.readInt();
int privLen = dis.readInt();
15
Lanjutan
int pLen = dis.readInt();
int qLen = dis.readInt();
int dPLen = dis.readInt();
int dQLen = dis.readInt();
int qInvLen = dis.readInt();
byte[] modulo = new byte[modLen];
bais.read(modulo, 0, modLen);
byte[] pubExp = new byte[pubLen];
bais.read(pubExp, 0, pubLen);
byte[] privExp = new byte[privLen];
bais.read(privExp, 0, privLen);
byte[] p = new byte[pLen];
bais.read(p, 0, pLen);
byte[] q = new byte[qLen];
bais.read(q, 0, qLen);
byte[] dP = new byte[dPLen];
bais.read(dP, 0, dPLen);
byte[] dQ = new byte[dQLen];
bais.read(dQ, 0, dQLen);
byte[] qInv = new byte[qInvLen];
bais.read(qInv, 0, qInvLen);
dis.close();
bais.close();
//
qInv);
// construct private key
RSAPrivateCrtKeyParameters privKey = constructPrivateKey(modulo, pubExp, privExp, p, q, dP, dQ,
// construct public key
RSAKeyParameters pubKey = constructPublicKey(modulo, pubExp);
String ok = convertHexToString(hexa);
byte[] cip = StringToByteArray(ok);
byte[] recovery = rsaDecrypt(cip, pubKey);
return new String(recovery);
} catch (IOException ex) {
return ex.toString();
}
}
public static final char[] kDigits ={„0‟,‟1‟,‟2‟,‟3‟,‟4‟,‟5‟,‟6‟,‟7‟,‟8‟,‟9‟,‟a‟,‟b‟,‟c‟,‟d‟,‟e‟,‟f‟};
/* byte array ke Hexa */
public static String byteArraytoHex(byte[] str){
StringBuffer sb = new StringBuffer(str.length * 2);
for(int i=0;i