9
batasan, dan tujuan sistem. Pada tahap ini, spesifikasi sistem telah ditetapkan.
2 Perangkat keras: Prosesor AMD Athlon II 245 2,9 GHz;
Perancangan Sistem dan Perangkat Lunak
Memori 2046 MB;
Pada tahap ini, representasi sistem Perancangan meliputi perancangan alir antarmuka, dan keamanan.
HDD 160 GB.
akan dirancang suatu yang akan dibuat. perancangan basis data, aplikasi, perancangan perancangan protokol
Client: 1 Sony Ericsson W660i; 2 Samsung C6625.
Implementasi dan Pengujian Unit Implementasi algoritme RSA dan AES dilakukan di tahap ini. Implementasi dilakukan di bagian client dan server Polimat Mobile. Implementasi tidak dilakukan pada Polimat Mobile TE. Integrasi dan Pengujian Sistem Pengujian dilakukan terhadap sistem penilangan keseluruhan dengan menggunakan metode pengujian black box. Sistem diuji dengan menjalankan simulasi penilangan kendaraan bermotor. Sistem dinyatakan sukses apabila simulasi berjalan tanpa ada kendala. Jika ada proses yang belum berjalan, aplikasi kembali diperbaiki sampai tahap uji mencapai sukses. Operasi dan Pengelolaan Operasi dan pengelolaan adalah tahapan pengoperasian dan pengelolaan sistem yang telah dibuat. Analisis Perbandingan Analisis perbandingan dilakukan antara sistem yang menggunakan enkripsi dan sistem tanpa enkripsi. Data perbandingan merupakan uji waktu pada setiap fungsi pengiriman dan penerimaan data antara Polimat Mobile dan server Polimat. Analisis perbandingan dilakukan dengan menggunakan Analysis of Variance (ANOVA). Lingkungan Pengembangan Lingkungan pengembangan yang digunakan dalam penelitian ini adalah sebagai berikut: Server: 1 Perangkat lunak: Windows XP Professional SP 3; Netbeans IDE 7.0; Apache Tomcat 6.0.20; Oracle 10g Express Edition; Java version 1.6.0_14.
HASIL DAN PEMBAHASAN Peraturan lalu lintas di Indonesia menerapkan bahwa tindakan penilangan dikenakan terhadap pengemudi selaku pelaku pelanggaran bukan terhadap pemilik kendaraan. Penilangan kendaraan bermotor dilakukan menggunakan surat bukti pelanggaran (tilang) berbentuk kertas yang berisi data pelanggar dan data pelanggaran. Riwayat pelanggar terkait pelanggaran lalu lintas perlu diketahui terlebih dahulu sebelum melakukan penilangan. Hal ini akan menentukan langkah apa yang harus diambil oleh polisi dalam menindak pelanggar. Saat ini, belum ada sistem penilangan kendaraan bermotor yang terhubung secara online, untuk itulah diperlukan aplikasi penilangan digital yang memudahkan penilangan. Polimat merupakan aplikasi penilangan digital yang dimaksudkan untuk memudahkan petugas dalam melakukan proses tilang. Petugas dapat mengambil tindakan yang sesuai berdasarkan informasi riwayat pelanggaran. Analisis Kebutuhan Sistem Analisis yang dilakukan berdasarkan hasil dari wawancara, prosedur penilangan, dan studi literatur. Hal yang perlu dianalisis pada tahap ini adalah sebagai berikut: a Deskripsi Umum Sistem Polimat Mobile adalah sistem perangkat lunak pada telepon genggam yang digunakan sebagai alat bantu untuk melakukan penilangan kendaraan bermotor di Polres Bogor. Polimat Mobile membantu petugas dalam menampilkan riwayat pelanggar dan mengirimkan data terkait pelanggaran yang dilakukan ke server Polimat melalui koneksi internet. Pertukaran data antara Polimat Mobile dan server Polimat dilakukan secara rahasia dengan menggunakan enkripsi. b Analisis Kebutuhan Pengguna Berdasarkan hasil wawancara, didapat kebutuhan pengguna Polimat Mobile, yaitu:
10
Menampilkan lima riwayat pelanggaran terakhir. Menampilkan detail dari pelanggaran yang telah dilakukan pelanggar. Input data terkait pelanggaran yang dilakukan untuk dikirimkan ke server Polimat. Lampiran 4 menunjukkan use case diagram Polimat Mobile. c Analisis Kebutuhan Sistem Polimat Mobile bertujuan membantu polisi melakukan proses penilangan secara cepat dan aman. Tujuan tersebut dipenuhi dengan melakukan analisis kebutuhan yang terdapat pada sistem. Kebutuhan sistem diterjemahkan menjadi fungsi-fungsi yang meliputi keamanan data dan kebutuhan pengguna. Daftar fungsi-fungsi yang dapat dikerjakan Polimat Mobile dapat dilihat pada Lampiran 5. d Analisis Pengguna Pengguna Polimat Mobile merupakan polisi yang telah terdaftar pada server Polimat. Pengguna dapat mencari data pelanggar berdasarkan Single Identity Number (SIN), melihat riwayat pelanggaran, dan melakukan input data pelanggaran. Pengguna tidak dapat mengubah data pelanggar maupun data pelanggaran. e Analisis Keamanan Polimat Mobile terhubung dengan server menggunakan internet. Informasi yang dikirim maupun yang diterima tentunya rentan terhadap serangan apabila tidak dilakukan pengamanan. Keamanan informasi Polimat Mobile dilandasi pada empat tujuan kriptografi yaitu: 1 Kerahasiaan Data surat tilang bersifat rahasia terjaga dari pihak-pihak yang tidak berwenang. 2 Integritas data Data surat tilang harus dijamin integritasnya tanpa ada manipulasi dari pihak-pihak yang tidak berwenang. 3 Autentikasi Server Polimat dan Polimat Mobile harus saling mengidentikasi dirinya satu sama lain sehingga informasi dapat teridentifikasi. Sistem juga harus mengautentikasi pengguna Polimat Mobile untuk keperluan lebih lanjut.
4 Non-repudiasi Non-repudiasi mencegah polisi untuk mengingkari penilangan yang dilakukannya. Perancangan Sistem dan Perangkat Lunak Proses perancangan dilakukan untuk menerjemahkan hasil analisis kebutuhan menjadi rancangan abstrak atau visual dari Polimat Mobile. a Perancangan Input Polimat Mobile dirancang pada telepon genggam yang memiliki keyboard fisik namun beberapa telepon genggam yang memiliki layar sentuh juga dapat menggunakannya. Segala bentuk interaksi dilakukan dengan cara menekan tombol atau mengisi form melalui keyboard atau layar sentuh. b Perancangan Output Output Polimat Mobile ditampilkan dalam bentuk form dan dialog. Polimat Mobile mendukung semua resolusi layar untuk mengantisipasi resolusi layar telepon genggam yang berbeda-beda. Hal ini dimungkinkan dengan digunakannya LWUIT. c Perancangan Basis Data Basis data pada server Polimat (Irwana 2011) dikembangkan tanpa adanya tabel untuk telepon genggam. Oleh karena itu, perlu ditambahkan untuk menyimpan daftar telepon genggam dan kunci RSA yang telah didaftarkan. d Perancangan Proses Alur proses Polimat Mobile yang menggunakan enkripsi dan tanpa enkripsi sedikit berbeda. Perbedaannya terletak pada fungsi handshake yang tidak dimiliki Polimat Mobile TE. Fungsi handshake bertujuan mengautentikasi kedua belah pihak yang melakukan komunikasi. Handshake juga berfungsi mengirimkan kunci AES yang digunakan untuk mengenkripsi semua informasi yang ditukar selama proses penilangan berlangsung. Jika handshake gagal, maka aplikasi akan langsung keluar. Halaman login akan tampil jika handshake berhasil. Pada Polimat Mobile tanpa enkripsi, login langsung tampil pada saat aplikasi dijalankan. Halaman login memuat textfield username, password, dan lokasi penilangan dilakukan. Halaman login juga memuat halaman bantuan bagi pengguna.
11
Username dan password yang dimasukkan pada halaman login kemudian akan dicari dan dicocokkan pada database server Polimat. Apabila sesuai, pengguna akan dihadapkan dengan menu utama Polimat Mobile. Menu utama terdiri atas Pencarian SIN, Bantuan, Tentang Aplikasi, Logout, dan Exit. Pencarian SIN digunakan untuk mencari riwayat penilangan yang dilakukan pelanggar berdasarkan nomor SIN.
Mulai
Handshake
Handshake Berhasil
Gagal
Selesai
Setelah melihat riwayat, barulah pembuatan surat tilang dapat dilakukan dengan mengisi form pemrosesan. Halaman pemrosesan merupakan halaman tempat pengguna memasukkan data pelanggar. Pelanggar dapat memilih antara slip biru atau slip merah. Pada slip biru, perlu dilakukan input alamat bank yang digunakan pelanggar untuk membayar denda, sementara pada slip merah pengguna perlu melakukan input data terkait sidang.
Berhasil
Login
Tidak
Logout
Username dan Password Ditemukan
Nomor tilang didapatkan dari server Polimat ketika penilangan selesai dilakukan dan secara otomatis data pelanggaran akan tersimpan di server. Diagram alir proses Polimat Mobile menggunakan enkripsi dapat dilihat pada Gambar 12.
Keluar Aplikasi Ya
Menu Utama
e Perancangan Antarmuka Perancangan antarmuka pada Polimat Mobile cukup sederhana. Antarmuka terbagi menjadi dua bagian, yaitu judul halaman dan isi halaman. Gambar 13 merupakan bentuk rancangan antarmuka.
Pencarian SIN
History Pelanggar
TIdak
Nomor Tilang
Judul
Apakah akan diproses?
Isi Halaman
Ya
Gambar 13 Rancangan antarmuka.
Input Data Pelanggar
Merah
Input Data Terkait Sidang
f
Pemrosesan Data Pelanggar
Slip Merah atau Biru
Biru Input Bank
Gambar 12 Diagram alir proses Polimat Mobile menggunakan enkripsi.
Perancangan Protokol Keamanan
Pertukaran informasi antara server dan Polimat Mobile bersifat rahasia. Informasi yang dikirimkan haruslah aman dari pihak-pihak yang tidak berwenang. Oleh sebab itu, perlu dirancang protokol untuk mengamankan komunikasi data. Server dan setiap aplikasi Polimat Mobile mempunyai kunci RSA. Kunci RSA dan nomor identifikasi (ID) Polimat Mobile tersimpan di server sementara di setiap aplikasi Polimat Mobile tersimpan kunci publik server. Nomor
12
ID diperlukan untuk mengidentifikasi aplikasi Polimat Mobile yang melakukan input data penilangan sementara kunci RSA digunakan pada proses handshake. Handshake merupakan proses distribusi kunci AES antara Polimat Mobile dan server. AES digunakan sebagai algoritme penyandian pesan selama proses penilangan berlangsung. Langkah-langkah dari handshake diproyeksikan pada Gambar 14. Tiap langkah dapat dijelaskan sebagai berikut: 1 E(PUb,[N1||IDA]) Polimat Mobile (client) menggunakan kunci publik server untuk mengirimkan pesan yang berisikan identitas aplikasi (IDA) dan nonce 1 (N1) ke server yang menandakan transaksi. Nonce 1 (N1) merupakan angka acak yang dibangkitkan oleh client. Server kemudian mendekripsinya dengan menggunakan kunci private server lalu mendapatkan N1 dan ID client. Server memerlukan ID dari client untuk mengetahui kunci RSA client. Kunci tersebut digunakan untuk mengenkripsi data yang akan dikirimkan ke client. 2 E(PUa,[N1||N2]) Server membangkitkan nonce 2 (N2) secara acak lalu mengirimkan bersama N1 yang sebelumnya dienkripsi menggunakan kunci publik client. Setelah client menerima, dilakukan enkripsi untuk mendapatkan N1 lalu client akan langsung membandingkan N1 miliknya. Apabila sama, server terautentikasi oleh client, namun jika tidak sama, komunikasi tidak akan dilanjutkan. 3 E(PUb,N2) Client mengembalikan N2 yang telah dienkripsi dengan kunci publik server dengan tujuan untuk mengautentikasi dirinya. Server mendekripsinya, kemudian membandingkan dengan N2 miliknya. Jika sesuai, server akan mengirimkan respons berhasil. Jika tidak sesuai, server akan mengirimkan respons gagal. 4 E(PUb,E(PRa,KunciAES)) Setelah mendapatkan respons berhasil, client akan membangkitkan kunci AES lalu mengenkripsinya menggunakan kunci privat client kemudian mengenkripsinya lagi dengan menggunakan kunci publik server. Penggunaan kunci privat client yaitu sebagai tanda tangan digital client sementara penggunaan kunci publik server
dimaksudkan agar hanya server yang mampu mendekripsinya. Server mendekripsi pesan menggunakan kunci privatnya lalu mendekripsinya kembali dengan menggunakan kunci publik Polimat Mobile. Setelah kunci AES diperoleh, server akan mengirimkan respons yang menyatakan handshake berhasil. Respons tersebut dienkripsi menggunakan kunci AES yang didistribusikan. Jika berhasil, seharusnya client dapat mendekripsinya dan jika gagal, client menyatakan handshake gagal dan aplikasi akan keluar. Setiap komunikasi data yang terjadi selanjutnya terlebih dahulu dienkripsi menggunakan algoritme AES 128 bit. 1. E(PUb,[N1||IDA]) 2. E(PUa,[N1||N2])
Telepon Telepon Genggam Genggam
Server Server
3. E(PUb,N2) 4. E(PUb,E(PRa,KunciAES))
Gambar 14 Proses handshake. Implementasi dan Pengujian Unit Polimat Mobile dikembangkan menggunakan platform Java 2 Micro Edition (J2ME). Oleh karena itu, aplikasi ini hanya dapat dijalankan pada telepon genggam yang mendukung J2ME. Pada tahap ini, dilakukan proses implementasi terhadap semua perancangan yang dilakukan pada tahap sebelumnya, dan kemudian dilakukan pengujian dari hasil implementasi tersebut. Tahap implementasi untuk Polimat Mobile terdiri atas: a Implementasi Basis Data Penambahan tabel mobile yang dirancang dari tahap sebelumnya di implementasikan ke dalam Database Management Sistem (DBMS) Oracle. Terdapat field mobile_id merupakan primary key dan bersifat unik. Field mobile_id memuat nomor identifikasi aplikasi Polimat Mobile yang telah dibuat dan telah terpasang pada telepon genggam yang nantinya akan digunakan untuk keperluan autentikasi. Struktur
13
tabel yang ditambahkan untuk Polimat Mobile terlihat pada Tabel 1.
Field
Tipe
Keterangan
server. Pol.serialize() merupakan method yang akan menserialisasi objek tersebut menjadi aliran byte, sementara aes.Encrypt(data) merupakan method penyandian pesan menggunakan AES.
mobile_id
Varchar2(4000)
ID telepon genggam
Saat data diterima, server melakukan dekripsi dan deserialisasi menggunakan method:
pu_k
Varchar2(4000)
Kunci publik
modulus
Varchar2(4000)
modulus
pr_k
Varchar2(4000)
Kunci privat
hash
Varchar2(4000)
Hash kunci privat
Tabel 1 Struktur tabel T_MOBILE
b Implementasi Protokol Keamanan Terlebih dahulu dilakukan Handshake antara Client dan Server
User
Server
Memasukkan username dan password
Pengiriman Username dan Password
Telepon genggam
Pencocokan username dan password
Konfirmasi login
data = aes.Decrypt(data); pol.deserialize(data); Method aes.Decrypt(data) akan mendekripsi data menjadi aliran byte lalu akan diubah kembali menjadi objek menggunakan method pol.deserialize(data). Secara umum, komunikasi antara client dan server terlihat pada Gambar 15. Implementasi dilakukan di kedua belah pihak baik client maupun server. Pada client, terdapat package com.tilang.kripto yang memuat kelas untuk algoritme RSA dan AES dan kelas untuk menyimpan kunci. Kelas-kelas yang difungsikan sebagai informasi yang akan dikirimkan ke server disimpan pada package com.tilang.koneksi. Gambar 16 menunjukkan struktur dari package com.tilang.kripto dan com.tilang.koneksi.
Database
Pengiriman No. SIN
Riwayat Pelanggar
Database
Telepon genggam
Nomor tilang dari riwayat pelanggar
Telepon genggam
Detail dari penilangan
Database
Data terkait penilangan Nomor tilang
Telepon genggam
Database
Gambar 16 Struktur package pada client. Gambar 15 Komunikasi antara Polimat Mobile dengan server. Informasi yang dikirim antara server dan client berbentuk objek. Objek informasi ini diserialisasi menjadi aliran byte, lalu dienkripsi menggunakan algoritme AES pada bagian client dengan method: byte[] data = pol.serialize(); data = aes.Encrypt(data); Objek Pol merupakan informasi berisi NIP, sandi, dan lokasi tilang yang akan dikirimkan ke
Pada server, ditambahkan package polimatPackage.mobileConnect yang memuat kelas-kelas untuk melakukan koneksi ke client dan package polimatPackage.kripto untuk kelas yang berisi algoritme RSA dan AES. Package package polimatPackage.mobileConnect juga memuat kelas untuk menangani permintaan client Polimat Mobile TE. Gambar 17 menunjukkan struktur dari dua package tersebut.
14
Bagian kiri merupakan tombol bantuan penggunaan aplikasi dan bagian kanan merupakan tombol keluar dari aplikasi. Lampiran 6 memuat antarmuka Polimat Mobile. Integrasi dan Pengujian Sistem Server Polimat terlebih dahulu dilakukan deploy untuk melakukan pengujian. Pengujian dilakukan programmer Polimat Mobile menggunakan telepon genggam dengan menyimulasikan penilangan. Penilangan dilakukan dengan beberapa perubahan variabel input untuk melihat hasil output yang mungkin akan tampil. Operasi dan Pengelolaan Operasi dan pengelolaan dilakukan saat sistem telah digunakan. Pada tahap ini dilakukan pemeliharaan, perbaikan ataupun pengembangan sistem. Analisis Keamanan a Kerahasiaan
Gambar 17 Struktur package pada server. c Implementasi Antarmuka Rancangan antarmuka Polimat Mobile diimplementasikan menggunakan bahasa pemrograman Java ME dengan menggunakan LWUIT. Adanya LWUIT memudahkan pembuatan antarmuka untuk berbagai resolusi layar telepon genggam.
Kerahasiaan merupakan salah satu tujuan penting dalam kriptografi. Tentunya, pihak yang tertilang tidak menginginkan data kesalahannya diketahui oleh pihak lain. Untuk memenuhi tujuan ini, Polimat Mobile mengimplementasikan algoritme AES yang mampu mengenkripsi data sehingga terjamin kerahasiaannya. Pada aplikasi ini algoritme AES menggunakan kunci 128 bit yang diganti setiap kali pengguna melakukan login. Distribusi kunci tersebut dilakukan dengan menggunakan algoritme kunci publik RSA. b Integritas data Dengan digunakannya kunci simetris AES, integritas data terjaga. Hal ini dikarenakan hanya pihak yang memiliki kunci yang dapat bertukar pesan. Jika ada manipulasi data, baik penambahan, penghapusan, atau penyisipan, sistem akan terjadi error dalam penerimaan pesan sehingga komunikasi tidak akan dilanjutkan. c Autentikasi
Gambar 18
Tampilan antarmuka login pada Polimat Mobile.
Gambar 18 merupakan antarmuka saat pengguna melakukan login. Judul terletak pada bagian paling atas sementara isi halaman di bawahnya. Tombol aksi diletakan paling bawah.
Setiap aplikasi yang dibuat akan memiliki kunci privat yang disimpan di server. Kunci privat ini bersifat unik dan memudahkan server untuk mengidentifikasi objek yang sedang berkomunikasi dengannya. Aplikasi ini juga membutuhkan Nomor Induk Polisi (NIP) dan Password yang sudah terdaftar di server termasuk data-data lengkap mengenai pengguna.
15
Sehingga hanya pengguna yang sudah terdaftar yang dapat menggunakan aplikasi ini. d Non-repudiasi Non-repudiasi adalah prinsip kriptografi yang tujuannya adalah untuk mencegah terjadinya penyangkalan terhadap komitmen yang telah disepakati oleh pihak yang berkomunikasi. Setiap kali pengguna akan melakukan penilangan, server akan mencatat Nomor Induk Polisi (NIP) sehingga mencegah penyangkalan penilangan yang dilakukan oleh polisi. Analisis Perbandingan Pengujian running time dalam komunikasi data antara Polimat Mobile dan server dilakukan untuk mengetahui perbedaan waktu antara aplikasi Polimat Mobile dan Polimat Mobile TE. Pengujian dilakukan pada telepon genggam dengan memasukkan baris kode sebagai penghitung running time. Pengujian dimulai saat enkripsi dilakukan dan berakhir pada saat data telah diterima dan didekripsi oleh Polimat Mobile. Perangkat keras yang digunakan pada pengujian yaitu telepon genggam Sony Ericsson w660i dengan koneksi 3G yang telah dipasang aplikasi Polimat Mobile dan Polimat Mobile TE. Pengujian dilakukan pada setiap modul fungsi koneksi dan diulang sebanyak sepuluh kali. Lampiran 7 memuat hasil uji running time Polimat Mobile sementara Lampiran 8 memuat hasil uji running time Polimat Mobile TE. Dari hasil uji, diambil tiga nilai tengah dari sampel running time. Lampiran 9 memuat tiga sampel running time dan besar data untuk setiap proses pengiriman data pada Polimat Mobile. Polimat Mobile
Lampiran 10 memuat tiga sampel running time dan besar data untuk Polimat Mobile TE. Grafik perbandingan rata-rata antara Polimat Mobile dengan Polimat Mobile TE dapat dilihat pada Gambar 19. Perbedaan besar yang terjadi pada penggunaan enkripsi atau tidak adalah adanya handshake. Polimat Mobile terlebih dahulu melakukan handshake dengan maksud mendapatkan kunci AES. Berdasarkan hasil uji, running time handshake berkisar antara 22764 ms dan 24094 ms. Besar data yang dikirimkan bervariasi antara 709 sampai 712 byte. Hal ini tidak dimasukkan dalam perhitungan ANOVA karena handshake dilakukan hanya sekali pada saat aplikasi dijalankan dan tidak dilakukan pada Polimat Mobile TE. Simulasi tilang dilakukan menggunakan username admin pada Polimat Mobile. Besar data yang dikirimkan Polimat Mobile saat melakukan login adalah 44 byte sementara pada Polimat Mobile TE sebesar 69 byte. Perbedaan besar data terjadi karena pengiriman session dilakukan pada saat login di Polimat Mobile TE sementara session dikirim pada saat melakukan handshake pada Polimat Mobile. Fungsi melihat riwayat, detail riwayat, dan input pelanggaran dilakukan berdasarkan kemungkinan yang ada yaitu masing-masing lima untuk melihat perbedaan running time dan besar data koneksi. Laju pertumbuhan besar data pada Polimat Mobile dan Polimat Mobile TE mengalami kenaikan namun laju petumbuhan running time tidak linear. Hal ini disebabkan oleh variabel tak terkontrol seperti kekuatan sinyal, beban prosesor telepon genggam, beban server, dan beban jaringan. Koneksi GPRS yang tidak stabil sering Polimat Mobile TE
4.500 4.000
Running time (ms)
3.500 3.000 2.500 2.000 1.500 1.000 500 0 0 History Login
1 History
2 History
3 History
History
4 History
5 History
1 Pasal
2 Pasal
3 Pasal
Detail History Modul Fungsi Polimat Mobile
4 Pasal
5 Pasal
1 Pasal
2 Pasal
3 Pasal
4 Pasal
Input Data
Gambar 19 Diagram waktu pengujian setiap fungsi menggunakan enkripsi dan tanpa enkripsi.
5 Pasal