PENGEMBANGAN APLIKASI PENANDAAN DIGITAL PADA SMS MENGGUNAKAN ALGORITME MD5-RSA
YAZRI HAFIZ
DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR BOGOR 2012
I
PENGEMBANGAN APLIKASI PENANDAAN DIGITAL PADA SMS MENGGUNAKAN ALGORITME MD5-RSA
YAZRI HAFIZ
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
II
ABSTRACT YAZRI HAFIZ. The Development of Digital Signature Application for SMS Using MD5-RSA Algorithm. Supervised by HENDRA RAHMAWAN. Cellular phone is one of the most popular communication device. Unfortunately, this popularity also increases number of crime using cellular phone. SMS fraud is one kind of crime using cellular phone. Another method of sender verification is required to avoid this kind of crime. Digital signatures can be used to verify the sender. The sender is sending SMS with digital signature and the receiver will verify the signature. This application is developed using J2ME and MD5-RSA algorithm as the signature method. This application also uses Bouncy Castle lightweight cryptography API for J2ME as cryptography library. Key pair parameters can be generated in 15 seconds to 4 minutes depends on the cellular phone technology. The digital signature can be formed with an average time of 1.35 seconds to 1.97 seconds. Digital signature verification can be done with an average time of 3.73 seconds to 12.09 seconds. The digital signature is generated using private key parameters and verified using public key parameters. Only the correct key pair will provide a valid result. Time to send signed-SMS depends on the network capability. There is no difference compared to sending normal SMS.
Keywords: Bouncy Castle, Digital signature, J2ME, MD5-RSA, SMS
i
Judul Skripsi Nama NRP
: Pengembangan Aplikasi Penandaan Digital pada SMS Menggunakan Algoritme MD5-RSA : Yazri Hafiz : G64096066
Disetujui Pembimbing
Hendra Rahmawan SKom MT NIP 198205022009121004
Diketahui Ketua Departemen Ilmu Komputer
Dr Ir Agus Buono MSi MKom NIP 196607021993021001
Tanggal Lulus:
ii
PRAKATA Alhamdulillahirobbil’alamin, segala puji bagi Allah Subhanahu Wa Ta'ala untuk semua rahmat dan karunia yang selalu dicurahkan oleh-Nya. Selawat beserta salam agar selalu tercurahkan kepada Nabi Muhammad Shallallahu ‘Alaihi Wa Sallam. Dengan petunjuk dan bimbingan-Nya, akhirnya penelitian tugas akhir ini berhasil diselesaikan. Tugas akhir yang berjudul Pengembangan Aplikasi Penandaan Digital pada SMS Menggunakan Algoritme MD5-RSA. Tentunya penyelesaian tugas akhir ini tidak luput dari berbagai bantuan pihak lain. Bantuan yang dilakukan langsung maupun tidak. Pada kesempatan ini, rasa terima kasih Saya ucapkan kepada mereka semua yang di antaranya: 1 Ayahanda Azhelmi, Ibunda Yarmi Fitriza, dan Adinda Khairina Mirza beserta semua keluarga besar atas semua doa dan dukungan yang senantiasa diberikan. 2 Bapak Hendra Rahmawan SKom MT selaku dosen pembimbing yang senantiasa mencurahkan waktu, tenaga, dan pikiran untuk penyelesaian tugas akhir ini. 3 Bapak Endang Purnama Giri SKom MKom dan Ibu Karlina Khiyarin Nisa SKom MT sebagai dosen penguji atas segala masukan yang diberikan. 4 Seluruh dosen pengajar Departemen Ilmu Komputer FMIPA IPB untuk semua yang telah mereka berikan selama penulis mengikuti proses pembelajaran. 5 Seluruh staf yang telah membantu proses pembelajaran hingga selesai. 6 Lina, Yuni, Dura, Laila, Nela, Hasrul, Anis, Debby, Mono, Icha, Rany, Mamet, dan semua teman-teman seangkatan Ilkom X4 atas persahabatan dan kebersamaan selama ini. Semoga kebersamaan kita akan terus berjalan untuk selamanya. 7 Pihak-pihak lain yang tidak mungkin disebutkan satu persatu untuk bantuannya dalam penyelesaian tugas akhir ini. Akhir kata, penelitian tugas akhir ini tentu masih jauh dari sempurna. Masukan dari berbagai pihak tentu amat diharapkan untuk membangun apa yang telah dicapai penelitian ini hingga menjadi lebih baik lagi. Semoga penelitian ini memberikan manfaat untuk dunia terlebih lagi di akhirat. Aamiin...
Bogor, Juli 2012
Yazri Hafiz
iii
RIWAYAT HIDUP Penulis dilahirkan di kota Medan, Sumatera Utara pada tanggal 4 Maret 1987. Penulis dilahirkan dari pasangan Azhelmi dan Yarmi Fitriza. Penulis merupakan anak pertama dari dua bersaudara. Penulis lulus dari SMA Negeri 1 Medan pada tahun 2005. Pada tahun yang sama, penulis melanjutkan pendidikan di Program Diploma Universitas Gadjah Mada, Program Studi Komputer dan Sistem Informasi. Penulis lulus dari program diploma pada tahun 2008. Pada tahun 2009, penulis melanjutkan pendidikan di program Alih Jenis Ilmu Komputer, Institut Pertanian Bogor untuk mendapatkan gelar sarjana.
iv
DAFTAR ISI Halaman DAFTAR TABEL .............................................................................................................................. vi DAFTAR GAMBAR ......................................................................................................................... vi DAFTAR LAMPIRAN ...................................................................................................................... vi PENDAHULUAN Latar Belakang................................................................................................................................ 1 Tujuan ............................................................................................................................................ 1 Ruang Lingkup ............................................................................................................................... 1 TINJAUAN PUSTAKA Kriptografi ...................................................................................................................................... 1 Protokol .......................................................................................................................................... 1 Siklus Hidup Keamanan.................................................................................................................. 2 Penandaan Digital ........................................................................................................................... 2 Message Digest 5 (MD5) ................................................................................................................ 2 Algoritme RSA ............................................................................................................................... 3 Penandaan Digital dengan RSA ...................................................................................................... 3 Short Message Service (SMS) ......................................................................................................... 4 Java 2 Micro Edition (J2ME) .......................................................................................................... 4 METODE PENELITIAN Identifikasi Layanan Keamanan ...................................................................................................... 5 Penentuan Kebijakan ...................................................................................................................... 5 Spesifikasi ...................................................................................................................................... 5 Desain ............................................................................................................................................ 5 Implementasi .................................................................................................................................. 5 Pengujian ........................................................................................................................................ 5 HASIL DAN PEMBAHASAN Identifikasi Layanan Keamanan ...................................................................................................... 5 Penentuan Kebijakan ...................................................................................................................... 6 Spesifikasi ...................................................................................................................................... 6 Desain ............................................................................................................................................ 6 Implementasi .................................................................................................................................. 8 Pengujian ...................................................................................................................................... 10 Analisis Keamanan Aplikasi ......................................................................................................... 11 KESIMPULAN DAN SARAN Kesimpulan................................................................................................................................... 11 Saran ............................................................................................................................................ 12 DAFTAR PUSTAKA ....................................................................................................................... 12 LAMPIRAN ..................................................................................................................................... 13
v
DAFTAR TABEL Halaman 1 Pengujian fungsionalitas. ............................................................................................................. 10 2 Kinerja pembentukan penandaan. ................................................................................................ 10 3 Kinerja penerimaan dan verifikasi. .............................................................................................. 10
DAFTAR GAMBAR Halaman 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
Siklus hidup keamanan (Bishop 2002) ........................................................................................... 2 Penandaan digital dengan RSA (Microsoft 2011) .......................................................................... 4 Skema pengiriman SMS (Bodic 2003) ........................................................................................... 4 Tahapan metode penelitian. ........................................................................................................... 5 Alur protokol. ................................................................................................................................ 6 Proses pembangkitan pasangan kunci ............................................................................................ 7 Proses pembentukan penandaan..................................................................................................... 7 Proses verifikasi penandaan. .......................................................................................................... 7 Pembangkitan pasangan kunci RSA. ............................................................................................. 8 Source code pembangkitan pasangan kunci RSA ........................................................................... 8 Aplikasi pengiriman SMS. ............................................................................................................ 8 Source code pembentukan penandaan............................................................................................ 9 Source code pengiriman SMS. ....................................................................................................... 9 Aplikasi penerima SMS. ................................................................................................................ 9 Source code penerimaan SMS. ...................................................................................................... 9 Source code verifikasi penandaan. ............................................................................................... 10 Skema penyebaran kunci publik .................................................................................................. 11
DAFTAR LAMPIRAN Halaman 1 Parameter-parameter pasangan kunci RSA .................................................................................. 14 2 Contoh SMS beserta penandaan .................................................................................................. 17 3 Tabel hasil pengujian kinerja ....................................................................................................... 17
vi
1
PENDAHULUAN Latar Belakang Telepon seluler atau yang lebih dikenal sebagai ponsel merupakan salah satu perangkat komunikasi populer yang ada di Indonesia. Pada masa sekarang, hampir semua lapisan masyarakat bisa memilikinya. Tingkat penjualan ponsel pun semakin meningkat. International Data Corporation (IDC) memperkirakan, penjualan ponsel akan tumbuh sekitar 9% hingga 10% atau setara dengan 48,8 juta unit pada tahun 2012 ini (Wicaksono 2012). Tingginya angka penjualan ponsel tentu tidak lepas dari perannya dalam memudahkan komunikasi. Akan tetapi, tindak kejahatan menggunakan ponsel juga meningkat. Salah satu yang marak akhir-akhir ini adalah SMS penipuan transfer pulsa atau SMS penipuan transfer sejumlah uang. Pelaku penipuan mengaku sebagai kerabat korban. Tidak sedikit ternyata orang-orang yang tertipu dengan modus penipuan seperti ini. Penipuan seperti ini tentu meresahkan. Korban tidak tahu apakah pengirim pesan benar-benar kerabatnya atau bukan. Pembuktian yang dilakukan selama ini adalah dengan menggunakan nomor telepon. Cara ini tidak lagi bisa dipakai bila pengirim SMS telah mengganti nomornya dan penerima SMS belum memperbaharui data di dalam ponselnya. Kasus terbaru bahkan lebih maju lagi. Pengirim pesan dapat menggunakan nomor palsu dalam mengirim pesannya. Untuk mengatasi permasalahan tersebut, diperlukan suatu cara agar pengirim asli dari SMS tersebut dapat diverifikasi kebenarannya. Cara lain adalah dengan penggunaan penandaan digital. Kunci untuk membentuk penandaan digital disimpan dalam media penyimpanan pada ponsel. Penandaan digital kemudian disertakan pada setiap pengiriman SMS. Penerima kemudian akan memeriksa apakah penandaan digital tersebut benar atau tidak. Jika benar, penerima bisa semakin yakin bahwa pengirim SMS tersebut benar-benar orang yang dikenalnya. Khosiawan (2011) dalam penelitiannya telah berhasil mengembangkan sebuah aplikasi pengiriman SMS dengan penandaan digital. Aplikasi ini dibuat untuk sistem operasi android versi 2.2. Algoritme penandaan digital yang digunakan adalah Elliptic Curve Digital Signature Algorithm (ECDSA). Penelitian ini akan mengembangkan aplikasi penandaan digital pada SMS menggunakan J2ME. Algoritme penandaan digital yang digunakan adalah MD5-RSA. Aplikasi yang
dikembangkan akan diujikan pada perangkat telepon seluler yang mendukung J2ME. Hasil yang didapat dari penelitian ini adalah penerapan penandaan digital untuk SMS. Penandaan digital ini bermanfaat sebagai tanda pengenal pihak pengirim pesan. Dengan adanya penandaan digital ini, diharapkan penipuan menggunakan SMS bisa dihindari. Tujuan Tujuan dari penelitian ini adalah mengembangkan aplikasi pengiriman SMS dengan menyertakan penandaan digital pada SMS yang dikirimkan. Aplikasi ini juga dapat melakukan verifikasi penandaan digital yang disertakan. Ruang Lingkup Ruang lingkup yang digunakan dalam penelitian ini adalah sebagai berikut: 1 Penggunaan penandaan digital untuk SMS. 2 Perangkat pengirim dan penerima harus memakai aplikasi yang dikembangkan. 3 Penerima SMS diasumsikan sudah memiliki kunci publik yang sesuai dengan kunci pribadi pengirim. 4 Kunci publik yang digunakan diasumsikan sudah disebar. 5 Hanya untuk satu pengirim dan satu penerima.
TINJAUAN PUSTAKA Kriptografi Kriptografi adalah sebuah studi teknikteknik matematika yang berhubungan dengan aspek keamanan informasi seperti kerahasiaan data, keabsahan data, integritas data, serta autentikasi asal data (Menezes et al 1997). Tujuan dari kriptografi adalah: 1 Kerahasiaan, layanan yang digunakan untuk menjaga isi informasi dari semua yang tidak berwenang memilikinya. 2 Integritas data, layanan yang berkaitan dengan pengubahan data dari pihak-pihak yang tidak berwenang 3 Autentikasi, layanan yang berhubungan dengan identifikasi entitas dan informasi itu sendiri. 4 Non-repudiation, layanan untuk anti penyangkalan sehingga dapat mencegah terjadinya pelanggaran kesepakatan. Protokol Protokol merupakan rangkaian langkahlangkah yang melibatkan dua entitas atau lebih dan didesain untuk menyelesaikan masalah
2
(Schneier 1996). Karakteristik protokol adalah sebagai berikut: 1 Semua pihak yang terlibat dalam protokol harus mengetahui keberadaan protokol dan mengikuti keseluruhan langkah-langkah yang terdapat di dalam protokol. 2 Semua pihak yang terlibat harus menyetujui penggunaan protokol tersebut. 3 Setiap langkah yang ada di dalam protokol harus jelas dan tidak membingungkan. 4 Protokol yang digunakan harus lengkap menjelaskan tindakan yang dilakukan untuk semua kemungkinan yang terjadi. Siklus Hidup Keamanan Salah satu metode pembangunan protokol adalah berdasarkan siklus hidup keamanan (security life cycle). Siklus ini terdiri atas rangkaian tahap. Setiap tahap dapat kembali lagi ke tahap sebelumnya walau belum menyelesaikan satu siklus. Gambar 1 menunjukkan siklus hidup keamanan (Bishop 2002). Threats
2 Policy atau kebijakan. Kebijakan yang dibuat berdasarkan ancaman yang telah diidentifikasi. Kebijakan-kebijakan yang dibuat harus mampu mengatasi ancamanancaman pada layanan yang dibuat. 3 Specification atau spesifikasi. Spesifikasi merupakan pernyataan fungsional. Spesifikasi mendeskripsikan metode sistem dalam memberikan layanan keamanan. Spesifikasi juga menentukan kebutuhan yang relevan dengan layanan yang dibuat. 4 Design atau desain. Pada tahap ini, apa yang telah ada di tahap spesifikasi diterjemahkan ke dalam komponen-komponen yang siap untuk diimplementasikan. 5 Implementation atau implementasi. Pada tahap ini, apa yang ada di tahap desain diimplementasikan. Tahap ini menghasilkan aplikasi protokol yang sesuai dengan tahap desain. Aplikasi yang memenuhi desain berarti memenuhi spesifikasi. 6 Operation and maintenance atau operasi dan pemeliharaan. Pada tahap ini, dijelaskan halhal tentang pengoperasian dan pemeliharaan protokol yang telah dikembangkan. Penandaan Digital
Policy
Specification
Design
Implementation
Operation and Maintenance
Gambar 1 Siklus hidup keamanan (Bishop 2002). 1 Threat atau ancaman. Pada tahap ini, dilakukan analisis ancaman-ancaman yang berpotensi menyerang protokol. Identifikasi ini bertujuan agar layanan yang dibuat nantinya mampu mengatasi ancamanancaman tersebut.
Penandaan telah digunakan manusia sebagai pembuktian mengenai sahnya dokumen atau sebagai bukti kepunyaan. Konsep penandaan yang unik antarindividu menjadi bukti autentik suatu dokumen atau pesan. Konsep penandaan fisik seperti itu juga digunakan pada penandaan digital. Menurut Schneier (1996), Penandaan digital harus memenuhi persyaratan berikut: 1 Penandaan adalah bukti yang autentik (authentic). 2 Penandaan tidak dapat dipalsukan (unforgeable). 3 Penandaan tidak dapat dipindah dan digunakan lagi (not reusable). 4 Dokumen yang terdapat penandaan tidak dapat diubah (unalterable). 5 Penandaan tidak dapat disangkal (non repudiation). Message Digest 5 (MD5) Message Digest 5 atau yang dikenal dengan MD5 merupakan salah satu fungsi hash satu arah yang populer. MD5 akan memroses teks masukan sebesar 512 bit tiap bloknya. Masukan ini dibagi menjadi 16 subblok yang terdiri atas 32 bit. Keluaran dari fungsi ini adalah empat blok yang terdiri atas 32 bit. Keempat blok tersebut kemudian digabungkan sehingga menghasilkan satu nilai hash sepanjang 128 bit (Schneier 1996).
3
Proses pembentukan MD5 dimulai dengan penambahan bit-bit pengganjal (padding) sehingga pesan kongruen dengan 448 mod 512. Bit-bit pengganjal terdiri atas sebuah bit dengan nilai 1 dan diikuti sederet bit dengan nilai 0. Selanjutnya, pesan tersebut kembali ditambah 64 bit yang menyatakan panjang pesan semula yang telah dimodulo 264. Pesan kemudian dibagi ke dalam blok-blok sepanjang 512 bit. Sebelum masuk ke proses pembentukan MD5, dibentuk empat buah variabel sepanjang 32 bit. Variabel-variabel ini dikenal dengan nama variabel penyangga MD. Keempat variabel ini adalah: A = 01234567 B = 89ABCDEF C = FEDCBA98 D = 76543210 Blok-blok sepanjang 512 bit tadi diproses dengan variabel penyangga MD. Proses ini terdiri atas empat buah putaran dengan menggunakan fungsi F, G, H, dan I. Masingmasing fungsi terdiri atas 16 kali operasi dasar. Pada MD5, terdapat sebuah tabel T yang satu elemennya digunakan dalam setiap operasi dasar. Operasi dasar MD5 dapat dituliskan dengan persamaan berikut: a b + CLSs(a + g(b, c, d) + X[k] + T[i]) a, b, c, d g CLSs X[k]
T[i] +
= penyangga 32 bit A, B, C, D = salah satu fungsi F, G, H, I = circular left shift sebanyak s bit = kelompok 32 bit ke-k dari blok 512 bit message ke-q. Nilai k = 0 sampai 15. = elemen Tabel T ke-i (32 bit) = operasi penjumlahan modulo 232
Setiap kali selesai satu operasi, penyangga tersebut digeser sirkuler ke kanan. Pertukaran penyangga tersebut mengikuti alur sebagai berikut: temp d dc cb ba a temp Fungsi-fungsi MD5 yang terdiri atas F, G, H, dan I adalah sebagai berikut: F(b,c,d) (b c) (~b d) G(b,c,d) (b d) (c ~d) H(b,c,d) b c d I(b,c,d) c (b ~ d) Setelah putaran keempat, nilai a, b, c, dan d ditambahkan ke A, B, C, dan D. Proses kemudian berlanjut ke blok berikutnya. Nilai
MD5 yang didapat adalah hasil penyambungan bit-bit A, B, C, dan D. Algoritme RSA RSA merupakan salah satu algoritme enskripsi kunci publik. Algoritme ini dinamakan RSA sesuai dengan penemunya Ron Rivest, Adi Shamir, dan Leonard Adleman. Keamanan algoritme RSA terletak pada sulitnya memfaktorkan bilangan bulat yang berukuran besar (Schneier 1996). Langkah-langkah algoritme RSA untuk membangkitkan kunci adalah sebagai berikut: 1 Membangkitkan dua bilangan acak prima p dan q dengan jumlah bit yang sama. 2 Hitung nilai n = pq. 3 Hitung nilai ϕ = (p – 1)(q – 1). 4 Memilih bilangan bulat e. Nilai e merupakan bilangan prima relatif dari ϕ dan tidak memiliki faktor bersama kecuali 1. Persamaan untuk nilai e dapat dituliskan dengan gcd(e, ϕ) = 1. 5 Menghitung nilai d. Nilai d didapat dari perhitungan ed ≡ 1 mod ϕ sehingga d = e-1 mod ϕ. Yang menjadi kunci publik adalah pasangan (n, e) dan yang menjadi kunci pribadi adalah d. Pesan yang akan dikirim dianggap sebagai bilangan integer m. Enkripsi dilakukan dengan melakukan perhitungan c = me(mod n). C merupakan pesan yang sudah dienkripsi. Proses dekripsi dilakukan dengan melakukan perhitungan m = cd(mod n). Nilai m merupakan pesan asli. Teknik lain perhitungan RSA dikenal dengan Chinese Remainder Theorem (CRT). Perhitungan dengan teknik ini bisa dilakukan lebih cepat daripada perhitungan biasa (Ireland 2011). Pada teknik ini, proses dekripsi dilakukan dengan tambahan parameterparameter lain. Parameter-parameter tersebut antara lain: 1 dP = e-1 mod (p-1) = d mod (p-1). 2 dQ = e-1 mod (q-1) = d mod (q-1). 3 qInv = q-1 mod p. Ketiganya dikenal sebagai CRT exponents. Untuk mendapatkan kembali nilai m, dilakukan perhitungan sebagai berikut: 1 m1 = cdP mod p. 2 m2 = cdQ mod q. 3 h = qInv.(m1 - m2) mod p. 4 m = m2 + h.q. Penandaan Digital dengan RSA Dalam penandaan digital menggunakan RSA, pesan yang akan dikirim dicari nilai digest-nya terlebih dahulu. Digest yang didapat kemudian dienkripsi menggunakan kunci
4
pribadi. Hasil enkripsi digest ini akan menjadi penandaan yang kemudian disertakan bersama dengan pesan aslinya. Pesan beserta penandaan ini yang kemudian dikirimkan. Verifikasi penandaan dibuktikan bersamaan dengan integritas data. Untuk mendekripsi penandaan, dibutuhkan kunci publik. Hasil dekripsi ini merupakan nilai digest yang dihasilkan pengirim. Pesan yang diterima juga dicari nilai digest-nya. Kedua digest yang didapat kemudian dibandingkan. Digest yang sama akan memverifikasi penandaan sekaligus membuktikan integritas data. Bila kedua digest berbeda, ada kemungkinan terjadi pengubahan pesan atau kesalahan kunci. Skema pembentukan penandaan dan verifikasi penandaan ditunjukkan pada Gambar 2 (Microsoft 2011).
Gambar 2 Penandaan digital dengan RSA (Microsoft 2011). Penandaan digital menggunakan kunci pribadi untuk enkripsi dan kunci publik untuk dekripsi. Konsep ini berbeda dengan kriptografi biasa. Perbedaan ini terjadi karena perbedaan konsep di antara keduanya. Pada penandaan digital, pihak yang memiliki kunci sekaligus pembentuk penandaan mengharapkan sebanyak mungkin pihak yang bisa melakukan verifikasi terhadap dirinya. Pada kriptografi biasa, pihak pemilik kunci mengharapkan hanya dirinya sendiri yang bisa membaca pesan yang dikirimkan kepadanya. Short Message Service (SMS) Layanan Short Message Service, atau yang lebih dikenal dengan nama SMS, merupakan salah satu layanan pengiriman pesan. Layanan SMS terdapat di hampir semua perangkat telepon seluler. Layanan SMS memungkinkan pengiriman pesan pendek berbasis teks melalui jalur komunikasi. Pengiriman dilakukan dari satu pengguna ke pengguna lain atau dari satu pengguna ke suatu aplikasi. Satu pesan SMS
memiliki panjang 140 Bytes. (Martinez et al 2007). Layanan SMS awalnya dirancang sebagai bagian dari jaringan Global System for Mobile Communication (GSM). Seiring dengan berkembangnya teknologi, layanan ini juga dibawa ke jaringan lain seperti General Packet Radio Service (GPRS) dan Code Division Multiple Access (CDMA). Skema pengiriman SMS ditunjukkan pada Gambar 3 (Bodic 2003).
Gambar 3 Skema pengiriman SMS (Bodic 2003). SMS yang dikirim oleh pengirim akan diterima oleh operator telekomunikasi yang digunakan pengirim. Operator ini akan mengirimkan SMS tersebut ke operator yang digunakan penerima. Bila pengirim dan penerima masih satu operator, proses ini tidak terjadi. Operator penerima kemudian mengirimkan SMS tersebut ke penerima yang dituju oleh pengirim. Penerima secara otomatis akan mengirim status report ke pengirim. Status report ini akan melalui proses yang sama dengan pesan yang dikirim. Saat ini, pengiriman SMS sudah dapat melintasi teknologi baik itu GSM ke CDMA atau sebaliknya. Proses lintas teknologi ini dilakukan antaroperator telekomunikasi. Java 2 Micro Edition (J2ME) Java 2 Micro Edition atau yang lebih dikenal dengan J2ME merupakan platform Java yang dikhususkan untuk perangkat kecil. Pada J2ME terdapat java virtual machine yang didesain khusus dengan library pengganti yang berukuran lebih kecil. Keterbatasan jumlah memory dan media penyimpanan pada telepon seluler mengharuskan ukuran aplikasi yang kecil. Optimisasi dapat dilakukan menggunakan obfuscator yang terdapat pada J2ME. Proses obfuscating akan membuat package, class, variable, dan method menjadi lebih ringkas dan membuat ukuran aplikasi menyusut. Semua itu dibuat agar J2ME menjadi platform yang cocok untuk PDA atau telepon seluler. J2ME juga memiliki library kriptografi untuk menangani permasalahan keamanan (Yuan 2003). Salah satu library kriptografi yang dapat digunakan di J2ME adalah Bouncy Castle lightweight cryptography API. Bouncy Castle merupakan library kriptografi yang bersifat open-source sehingga dapat diperoleh secara
5
gratis bahkan free. Bouncy Castle mendukung berbagai operasi kriptografi seperti enkripsi, dekripsi, penandaan digital, berbagai bentuk fungsi hash, dan lain-lain. Bouncy Castle juga mendukung skema pengkodean Base64. Base64 merupakan skema pengkodean untuk merepresentasikan data biner kedalam format teks.
METODE PENELITIAN Penelitian ini melalui serangkaian tahap. Ada lima tahap yang digunakan dalam penelitian ini. Metode penelitian ini didapat berdasarkan siklus hidup keamanan. Tahapan tersebut meliputi identifikasi layanan keamanan, penentuan kebijakan, spesifikasi, desain, dan implementasi. Tahapan metode penelitian ditunjukkan pada Gambar 4. Identifikasi Layanan Keamanan
Penentuan Kebijakan
diterapkan di aplikasi penandaan digital pada SMS yang dikembangkan agar dapat mengatasi ancaman keamanan yang ada. Spesifikasi Pada tahap ini, ditentukan berbagai elemen yang ingin diterapkan pada aplikasi penandaan digital pada SMS. Elemen-elemen tersebut seperti hal-hal yang dilakukan oleh aplikasi penandaan digital pada kondisi-kondisi tertentu. Desain Pada tahap ini, dilakukan perancangan aplikasi penandaan digital pada SMS. Perancangan dilakukan berupa perancangan protokol, perancangan proses, dan cara kerja aplikasi penandaan digital pada SMS. Implementasi Pada tahap ini, dilakukan implementasi sesuai dengan desain yang telah dilakukan. Implementasi dilakukan dengan menggunakan J2ME karena aplikasi dikembangkan untuk digunakan di telepon seluler. Implementasi penandaan digital dilakukan dengan memanfaatkan library kriptografi yang ada di J2ME. Pengujian
Spesifikasi
Pada tahap ini, aplikasi telah selesai diuji. Pengujian yang dilakukan adalah pengujian fungsionalitas dan pengujian kinerja aplikasi penandaan digital pada SMS.
Desain
HASIL DAN PEMBAHASAN Identifikasi Layanan Keamanan Implementasi
Pengujian
Gambar 4 Tahapan metode penelitian. Identifikasi Layanan Keamanan Pada tahap ini, dilakukan identifikasi layanan keamanan penandaan digital pada SMS yang akan digunakan. Layanan ini diharapkan dapat mengatasi ancaman keamanan berupa penipuan yang diperkirakan akan muncul. Penentuan Kebijakan Pada tahap ini, ditentukan kebijakankebijakan yang akan diterapkan pada aplikasi dikembangkan. Kebijakan ini harus dapat
Masalah keamanan terkait pengembangan sistem ini adalah tentang penipuan dengan SMS. Penipuan dilakukan dengan melakukan pemalsuan identitas pengirim. Pengirim mengaku sebagai orang yang dikenal korban lalu melakukan penipuan. Masalah lainnya adalah modifikasi isi pesan yang dikirim. Modifikasi pesan bisa terjadi jika pesan berhasil disadap lalu diubah untuk kemudian dikirim kembali. Masalah pemalsuan terkait dengan autentikasi pesan. Masalah modifikasi terkait integritas data. Layanan penandaan digital pada SMS didesain untuk dapat memberikan layanan autentikasi dan integritas data untuk mengatasi masalah penipuan. Layanan ini juga dapat memberikan fungsi anti penyangkalan. Layanan anti penyangkalan memungkinkan pihak pengirim tidak dapat menyangkal sebagai pemilik pesan yang diterima oleh penerima.
6
Penentuan Kebijakan Kebijakan keamanan yang diterapkan adalah sebagai berikut: 1 User policy Terdapat dua pengguna yaitu pengirim dan penerima. Pengirim bertindak juga sebagai penanda. Hak dari pengirim adalah: Membangkitkan pasangan kunci RSA. Memberikan penandaan pada SMS yang dikirimkan. Penerima bertindak juga sebagai pihak yang melakukan verifikasi. Hak dari penerima adalah: Menerima kunci publik dari pasangan kunci pribadi pembentuk penandaan. Melakukan verifikasi penandaan dan memeriksa status verifikasi 2 IT policy Pasangan kunci RSA akan disimpan di media penyimpanan pada telepon seluler. Pengirim sebagai pihak penanda akan menyimpan kedua pasangan kunci RSA, kunci publik dan kunci pribadi. Penerima sebagai pihak yang melakukan verifikasi hanya meyimpan kunci publik. 3 General policy Kebijakan lain yang diterapkan adalah sebagai berikut: Pengirim tidak diijinkan untuk menyebarkan atau mempertukarkan kunci pribadi yang dimilikinya. Lokasi penyimpanan pasangan kunci RSA tidak boleh diubah. Nama file pasangan kunci RSA tidak boleh diubah. Jika pengirim membangkitkan kunci lagi, kunci yang lama akan dianggap tidak valid dan akan ditulis-ulang dengan kunci yang baru. Pengirim diasumsikan memiliki kunci yang unik untuk dirinya sendiri. Spesifikasi Aplikasi penandaan digital pada SMS yang dikembangkan dapat dibagi menjadi 3 bagian. Ketiga bagian itu adalah pembangkitan pasangan kunci, pembentukan penandaan pada SMS yang dikirimkan, dan verifikasi penandaan. Pembangkitan pasangan kunci dilakukan dengan algoritme RSA. Penandaan yang digunakan didapat dengan menggunakan teknik MD5-RSA. Pengiriman SMS dilakukan melalui jaringan telekomunikasi yang ada. SMS dapat dikirimkan ke semua operator dengan tarif yang sesuai dengan peraturan yang berlaku. SMS yang terdapat penandaan dapat diverifikasi oleh aplikasi penerima. Hasil verifikasi akan
menunjukkan apakah SMS tersebut valid atau tidak. Hasil dari verifikasi penandaan dapat dijadikan sebagai cara untuk menjamin autentikasi SMS dan integritas SMS. Desain Tahapan desain merupakan proses yang dilakukan untuk merancang pembuatan sistem. Aplikasi yang dikembangkan terdiri atas tiga bagian. Ketiga bagian itu adalah pembangkitan pasangan kunci RSA, penyertaan penandaan pada SMS, dan verifikasi penandaan pada SMS. Ketiga bagian tersebut mengikuti protokol yang ditunjukkan pada Gambar 5. Mulai
Pembangkitan Pasangan Kunci RSA
Penyertaan penandaan digital pada SMS
Verifikasi penandaan digital pada SMS
Selesai
Gambar 5 Alur protokol. Proses pembangkitan pasangan kunci mengikuti algoritme RSA yang telah ada. Mulanya, dibangkitkan dua bilangan prima p dan q. Hitung hasil perkaliannya dan didapat nilai n = pq. Pilih sebuah bilangan e yang didapat dari gcd (e, ϕ) = 1. Nilai ϕ didapat dari ϕ = (p – 1)(q – 1). Hitung nilai d = e-1 mod ϕ. Berikutnya, dihitung nilai Chinese Remainder Theorem (CRT). Nilai ini terdiri atas dP = d mod (p-1), dQ = d mod (q-1), dan qInv = q-1 mod p. Nilai-nilai yang sudah didapat akan menjadi parameter kunci publik dan kunci pribadi. Nilai-nilai ini kemudian ditulis dan disimpan dalam media penyimpanan. Pembangkitan pasangan kunci RSA ditunjukkan pada Gambar 6. Desain proses pembentukan penandaan ditunjukkan pada Gambar 7. Tahap-tahap yang dilakukan pada proses pembentukan penandaan adalah sebagai berikut: 1 Masukan adalah SMS yang akan dikirim. Pada tahap ini, pembangkitan pasangan kunci RSA sudah dilakukan dan disimpan di dalam media penyimpanan telepon seluler.
7
Mulai
Mulai
Nilai p dan q SMS
n=pxq Φ = (p – 1)(q – 1) gcd(e, ϕ) = 1
Fungsi MD5
d = e-1 mod ϕ dP = d mod (p-1) dQ = d mod (q-1) qInv = q-1 mod p
Parameter Kunci Pribadi
Digest
Enkripsi
Menulis parameter ke media penyimpanan
Penyertaan penandaan
Selesai
Gambar 6 Proses pembangkitan pasangan kunci. 2 Pada SMS dilakukan penghitungan nilai hash menggunakan fungsi MD5. Nilai hash ini dikenal juga dengan digest. 3 Digest yang didapat kemudian dienkripsi menggunakan parameter kunci pribadi yang didapat dari pembangkitan pasangan kunci RSA. 4 Hasil enkripsi digest dijadikan penandaan untuk SMS yang akan dikirim. Penandaan digital ikut disertakan dengan SMS untuk dikirim ke penerima. Parameter kunci publik yang didapat dari pembangkitan pasangan kunci RSA akan digunakan untuk melakukan dekripsi di pihak penerima. Parameter kunci publik diasumsikan sudah dikirim dan diterima oleh pihak penerima pesan. Desain proses verifikasi penandaan ditunjukkan pada Gambar 8. Tahap-tahap verifikasi penandaan adalah sebagai berikut: 1 Masukan pada penerima adalah SMS yang telah terdapat penandaan dan kunci publik yang didapat dari proses pembangkitan pasangan kunci RSA. Penanda diekstraksi terlebih dahulu dari SMS. Ekstraksi ini akan memisahkan SMS dengan penandaan. 2 Penandaan didekripsi menggunakan parameter kunci publik. Dari hasil dekripsi ini akan didapat digest dari pengirim. 3 Pada SMS yang diterima juga dilakukan penghitungan nilai hash untuk mendapat digest SMS di sisi penerima. 4 Digest yang didapat penerima kemudian dibandingkan dengan digest yang didapat dari pengirim. Bila digest cocok, dapat
Selesai
Gambar 7 Proses pembentukan penandaan. dijamin SMS tersebut valid dan pengirim juga berhasil diverifikasi. 5 Bila digest yang dibandingkan tidak cocok, SMS tersebut tidak valid. Ada kemungkinan kalau kunci yang digunakan untuk dekripsi tidak cocok atau terjadi pengubahan pesan oleh pihak-pihak yang tidak diinginkan. Mulai
Ekstraksi penandaan
SMS
Parameter Kunci Publik
Penandaan
Fungsi MD5
Dekripsi
Digest SMS
Digest dari pengirim
Tidak Sama ?
SMS tidak valid
Ya SMS Valid. Pengirim berhasil diverifikasi
Selesai
Gambar 8 Proses verifikasi penandaan.
8
Implementasi Implementasi dilakukan sesuai dengan desain yang telah dibuat. Perangkat yang digunakan terdiri atas perangkat keras, perangkat lunak, dan perangkat uji. Perangkat keras yang digunakan adalah sebagai berikut: 1 Processor AMD APU A6-3400 1.40 GHz. 2 RAM 8 GB (7.48 GB Usable). 3 Harddisk kapasitas 750 GB. Perangkat lunak yang digunakan adalah sebagai berikut: 1 Sistem operasi Microsoft Windows 7 Ultimate 64 bit. 2 JDK 7 Update 1 32 bit. 3 Netbeans IDE 7.0.1. 4 Bouncy Castle lightweight cryptography API 1.46 untuk J2ME. Perangkat uji untuk mencoba aplikasi ini adalah telepon seluler. Telepon seluler yang digunakan adalah Sony Ericsson W660i. Ponsel ini menggunakan sistem operasi proprietary milik Sony Ericsson. Perangkat uji lain adalah Nokia 300. Ponsel ini dilengkapi dengan processor berkecepatan 1 GHz dan layar sentuh. Ponsel ini menggunakan sistem operasi Nokia S40 milik Nokia. Kedua ponsel mendukung J2ME. Pembangkitan pasangan kunci RSA dilakukan di awal dan hanya dilakukan sekali. Bila terjadi pembangkitan kunci lagi, kunci yang lama akan dianggap tidak valid. Kunci yang lama tersebut ditulis ulang dengan kunci yang baru. Kunci yang sudah dibentuk akan disimpan pada media penyimpanan telepon seluler. Pembangkitan pasangan kunci RSA ditunjukkan pada Gambar 9.
dan kunci pribadi sehingga fungsi ini diganti dengan menyimpan nilai parameter-parameter tersebut (Yuan 2003). Nilai parameterparameter tersebut ditunjukkan pada Lampiran 1. Source code untuk pembangkitan pasangan kunci RSA ditunjukkan pada Gambar 10. BigInteger exp = new BigInteger("11", 16); SecureRandom srand = new SecureRandom(); RSAKeyGenerationParameters params = new RSAKeyGenerationParameters(exp, srand, 1024, 80); RSAKeyPairGenerator rsaKeyPairGen = new RSAKeyPairGenerator(); rsaKeyPairGen.init(params); AsymmetricCipherKeyPair keyPair = rsaKeyPairGen.generateKeyPair(); RSAPrivateCrtKeyParameters rsaPrivateKey = (RSAPrivateCrtKeyParameters) keyPair.getPrivate();
Gambar 10 Source code pembangkitan pasangan kunci RSA. Parameter yang sudah disimpan dapat digunakan untuk pembangkitan penandaan dan verifikasi. Pada penandaan digital, enkripsi digest dilakukan oleh kunci pribadi. Kunci pribadi dibentuk oleh semua parameter yang disimpan (modulus, pubExp, privExp, p, q, dP, dQ, dan qInv). Aplikasi pengiriman SMS ditunjukkan pada Gambar 11.
Gambar 11 Aplikasi pengiriman SMS.
Gambar 9 Pembangkitan pasangan kunci RSA. Hasil dari pembangkitan pasangan kunci ini berupa nilai parameter modulus, pubExp, privExp, p, q, dP, dQ, dan qInv. Bouncy Castle tidak dapat langsung menyimpan kunci publik
Destination merupakan nomor tujuan pengiriman. Port merupakan nomor port spesifik yang digunakan untuk penerimaan SMS. Nomor port ini perlu dituliskan karena port default untuk menerima SMS ditutup dari pabrikan telepon seluler. Port default ini hanya bisa diakses oleh aplikasi SMS bawaan dari telepon seluler. Message merupakan bagian tempat menuliskan pesan yang akan dikirim. Proses pembentukan penandaan dilakukan setelah perintah pengiriman pesan (send) diberikan ke telepon seluler. Penandaan yang didapat masih dalam bentuk byte string. Bentuk ini dipenuhi dengan karakter yang tidak dikenali
9
telepon seluler. Penandaan akan di-encode dengan base64 untuk mendapatkan bentuk teksnya. Proses ini juga akan memperpendek penandaan. Pesan dikirim setelah penyertaan penandaan selesai dilakukan. Source code pembentukan penandaan ditunjukkan pada Gambar 12. Source code untuk pengiriman pesan ditunjukkan pada Gambar 13. private static byte[] getSignature(byte[] plain, RSAPrivateCrtKeyParameters privateKey){ byte[] signatureByte = null; try { MD5Digest md5Engine = new MD5Digest(); RSAEngine rsaEngine = new RSAEngine(); PSSSigner signer = new PSSSigner(rsaEngine, md5Engine, 64); signer.init(true, privateKey); signer.update(plain, 0, plain.length); signatureByte = signer.generateSignature(); }catch (org.bouncycastle.crypto.CryptoException ex){System.out.println("CryptoException error: "+ex); } catch (DataLengthException ex) {System.out.println("DataLengthException error: "+ex); } return signatureByte; }
Gambar 12 Source code pembentukan penandaan. Thread thread = new Thread(new Runnable() { public void run() { MessageConnection msgConnection; try { msgConnection = (MessageConnection)Connector.open("sms:/ /"+destination+":" + port); TextMessage textMessage = (TextMessage)msgConnection.newMessage (MessageConnection.TEXT_MESSAGE); textMessage.setPayloadText(message+delim iter+sign); msgConnection.send(textMessage); Alert a = new Alert("Success!","Message sent successfully", null,AlertType.INFO); a.setTimeout(2000); display.setCurrent(a); msgConnection.close(); } catch (IOException ex) {System.out.println("Send Message error "+ ex); } } }); thread.start();
Gambar 13 Source code pengiriman SMS. Proses verifikasi penandaan dilakukan pada bagian penerima. Kunci publik yang digunakan untuk dekripsi dibentuk oleh parameter modulo dan pubExp. Kedua parameter ini harus berupa parameter yang sama dari bagian pengirim agar
hasil verifikasi benar (true). Aplikasi penerimaan SMS ditunjukkan pada Gambar 14.
Gambar 14 Aplikasi penerima SMS. Aplikasi ini tidak dapat menerima SMS secara otomatis karena tidak ada akses ke registry sistem. SMS baru dapat diterima jika perintah listen diberikan. Perintah listen akan menjalankan fungsi untuk mendengarkan port tertentu yang telah ditentukan. Port penerima ini harus sama dengan nomor port yang ditentukan pada pengirim. Saat SMS diterima, aplikasi ini akan memisahkan bagian pesan dengan bagian penandaan. Bagian pesan akan ditampilkan sementara bagian penandaan diverifikasi. Bagian penandaan ini sebelumnya di-decode terlebih dahulu dengan base64 untuk mendapatkan kembali bentuk byte string. Source code untuk menerima SMS ditunjukkan pada Gambar 15. Source code untuk verifikasi penandaan ditunjukkan pada Gambar 16. public void notifyIncomingMessage(MessageConnection conn) { Message message; try { message = conn.receive(); senderAddress = message.getAddress(); formReceiver.append(senderAddress+"\n"); if (message instanceof TextMessage) { TextMessage tMessage = (TextMessage)message; String strMessage = ((TextMessage)tMessage).getPayloadText() ; split(strMessage); } else { formReceiver.append("Unknown Message received\n"); } } catch (InterruptedIOException e) {formReceiver.append("InterruptedIOExcep tion: "+e); } catch (IOException e) {formReceiver.append("IOException: "+e); }}
Gambar 15 Source code penerimaan SMS.
10
public boolean verifySignature(byte[] inputByte, byte[] signature, RSAKeyParameters publicKey) { MD5Digest md5Engine = new MD5Digest(); RSAEngine rsaEngine = new RSAEngine(); PSSSigner signer = new PSSSigner(rsaEngine, md5Engine, 64); signer.init(false, publicKey); signer.update(inputByte, 0, inputByte.length); return signer.verifySignature(signature); }
Gambar 16 Source code verifikasi penandaan. Pengujian Pengujian awal dilakukan dengan cara pembangkitan pasangan kunci RSA. Ponsel Sony Ericsson W660i membutuhkan waktu hingga 4 menit untuk pembangkitan kunci. Ponsel Nokia 300 membutuhkan waktu yang jauh lebih singkat, sekitar 15 detik. Perbedaan waktu tersebut kemungkinan karena ponsel Nokia memiliki kemampuan processor yang lebih baik dari ponsel Sony Ericsson. Ponsel Nokia juga memiliki teknologi yang lebih baik. Waktu yang dibutuhkan untuk pembentukan penandaan dan verifikasi berjalan cepat. Lama pengiriman SMS bergantung pada kemampuan jaringan dan tidak ada perbedaan dengan pengiriman SMS biasa. Pengujian fungsionalitas yang dilakukan terdiri atas 6 pengujian. Pengujian ditunjukkan pada Tabel 1. Tabel 1 Pengujian fungsionalitas Kasus
1
2
3 4 5 6
Parameter kunci pada W660i Valid
Valid (Pasangan dari N300) Valid (Milik sendiri) Valid Invalid Invalid
Parameter kunci pada Nokia 300 Valid (Pasangan dari W660i) Valid
Valid (Milik sendiri) Invalid Valid Invalid
Hasil verifikasi True
True
False False False False
Pengujian pertama dan kedua merupakan pengujian yang memberikan verifikasi benar (true). Pada pengujian ini, ponsel penerima menyimpan parameter kunci publik yang sesuai dengan parameter kunci pribadi yang membentuk penandaan. Pengujian ketiga dilakukan dengan cara kedua ponsel memiliki kuncinya masing-masing. Pengujian keempat, kelima, dan keenam melibatkan parameter kunci Invalid. Maksud dari parameter kunci Invalid adalah ada satu atau lebih parameter
yang bukan pasangan parameter yang lainnya. Pasangan parameter invalid tidak menghalangi pembentukan penandaan. Penandaan yang dihasilkan menjadi bagian dari SMS dan menghasilkan overhead sepanjang 172 karakter. Ini berarti penandaan tersebut sudah menghabiskan lebih dari satu bagian SMS. Overhead sepanjang itu kemungkinan berasal dari bentuk penandaan yang awalnya berupa byte string. Contoh SMS beserta overhead penandaan ditunjukkan pada Lampiran 2. Pengujian kinerja dilakukan untuk mengetahui kecepatan pembentukan penandaan dan verifikasi. Pengujian ini dilakukan dengan bantuan stopwatch. Pengujian dengan stopwatch tentu menghasilkan bias antara penekanan tombol dengan waktu aslinya. Pengujian dilakukan tiga kali dan dihitung waktu rataratanya. Hasil pengujian kinerja pembentukan penandaan ditunjukkan pada Tabel 2. Tabel 2 Kinerja pembentukan penandaan Panjang SMS 2 SMS 3 SMS 4 SMS
Sony Ericsson W660i 1.97 detik 2.00 detik 1.93 detik
Nokia 300 1.37 detik 1.40 detik 1.30 detik
Hasil pengujian ini menunjukkan waktu pembentukan penandaan tidak dipengaruhi panjang pesan. Pengujian menunjukkan perbedaan waktu yang sangat kecil. Nokia 300 dengan teknologi yang lebih baik mampu menghasilkan penandaan dengan waktu yang lebih singkat. Penghitungan waktu verifikasi dilakukan setelah pesan berhasil dikirim. Cara ini tentu menghasilkan bias yang diakibatkan waktu pengiriman. Bias pada pengujian ini menjadi semakin besar karena ditambah bias penggunaan stopwatch. Untuk memperkecil pengaruh kapasitas jaringan, digunakan produk yang sama dari satu operator. Hasil pengujian kinerja penerimaan SMS beserta verifikasi penandaan ditunjukkan pada Tabel 3. Tabel 3 Kinerja penerimaan dan verifikasi Panjang SMS 2 SMS 3 SMS 4 SMS
Sony Ericsson W660i 4.03 detik 3.53 detik 3.63 detik
Nokia 300 11.37 detik 12.23 detik 12.67 detik
Pada ponsel Sony Ericsson W660i, penerimaan dan verifikasi tidak terlalu dipengaruhi panjang pesan. Pengujian pada ponsel Nokia 300 menghasilkan waktu yang termasuk lama. Kemungkinan lamanya waktu
11
ini disebabkan oleh lamanya penerimaan pesan, bukan karena verifikasi. Lamanya penerimaan pesan ini kemungkinan karena adanya skema proteksi tertentu pada ponsel Nokia 300. Proteksi tersebut menghambat pesan yang masuk melalui aplikasi yang dikembangkan. Hasil pengujian kinerja ini secara lengkap ditunjukkan pada Lampiran 3. File jar (Java Archive) yang didapat dari penggunaan library Bouncy Castle ini berukuran lebih besar dari file jar tanpa Bouncy Castle. Ini merupakan hal yang wajar karena ada tambahan library yang digunakan. Ukuran file jar sebelum tambahan library berkisar 4 KB sementara besar file jar sesudah tambahan library berkisar 25 KB. Ukuran file jar ini masih dalam tahap wajar karena ada proses obfuscating pada saat proses build application di Netbeans. Tanpa proses obfuscating, ukuran file dengan tambahan library akan membengkak hingga 1 MB. Proses obfuscating ini juga berfungsi untuk menghindari security exception karena ada kelas Java core language dalam Bouncy Castle yang tidak didukung oleh J2ME (Yuan 2003). Analisis Keamanan Aplikasi Aplikasi yang sudah selesai juga perlu dianalisis keamanannya. Beberapa di antaranya adalah: 1 Penyadapan parameter kunci melalui man in the middle attack. Bila kunci berhasil disadap dan ditukar dengan kunci palsu, verifikasi yang seharusnya benar akan menjadi salah. Solusi penyerangan ini adalah dengan menggunakan sertifikasi kunci dari pihak ketiga. 2 Media penyimpanan tempat menyimpan parameter kunci hilang. Penanganannya dengan pembangkitan kunci baru yang akan menjadikan kunci lama tidak valid. Parameter kunci ini juga perlu diberi masa kadaluarsa. Penanganan seperti ini tentu memerlukan sertifikasi kunci yang dikeluarkan pihak ketiga. Solusi lainnya dengan melakukan enkripsi pada tempat penyimpanan parameter kunci. 3 Penyebaran kunci publik memerlukan pihak ketiga sebagai tempat menyimpan kunci. Pihak ketiga ini bisa juga sebagai penerbit sertifikat kunci. Kunci publik yang telah dibangkitkan diunggah ke server tempat penyimpanan kunci. Kunci-kunci ini dapat diunduh oleh pihak-pihak yang memerlukan kunci publik tersebut. Skema penyebaran kunci ditunjukkan pada Gambar 17. 4 Terjadi modifikasi parameter pasangan kunci dengan memasangkan parameter yang
Kunci Publik
Key Server
SMS
Kunci Publik
Gambar 17 Skema penyebaran kunci publik bukan pasangannya. Library Bouncy Castle yang digunakan, sudah memberikan ketahanan terhadap ancaman modifikasi parameter kunci ini. Pasangan parameter yang salah tidak menghalangi proses pembentukan penandaan namun verifikasi yang didapat tetap salah (false). 5 Dari segi kriptografi, aplikasi sudah dapat melayani integritas data, autentikasi, dan non-repudiation. Aplikasi tidak dapat melayani kerahasiaan data karena tidak ada layanan enkripsi SMS.
KESIMPULAN DAN SARAN Kesimpulan Berdasarkan penelitian yang dilakukan diperoleh kesimpulan sebagai berikut: 1 Penandaan digital dapat diterapkan pada SMS menggunakan J2ME. Algoritme yang digunakan untuk penandaan digital adalah MD5-RSA. Bouncy Castle lightweight cryptography API sebagai library kriptografi yang digunakan telah menyediakan sarana untuk menerapkan penandaan digital. Penandaan digital yang diterapkan memiliki ketahanan dari modifikasi pasangan kunci. 2 Pembangkitan pasangan kunci RSA pada telepon seluler membutuhkan waktu yang beragam sesuai dengan kecepatan proses dan teknologi telepon seluler. Ponsel Sony Ericsson W660i membutuhkan waktu hingga 4 menit. Ponsel Nokia 300 dengan teknologi yang lebih baik hanya membutuhkan waktu 15 detik. Pembentukan penandaan dapat berlangsung cepat dengan waktu rata-rata 1.35 detik sampai 1.97 detik. Verifikasi penandaan juga berlangsung cepat walau masih ada pengaruh dari lamanya
12
penerimaan pesan. Verifikasi dilakukan dengan waktu rata-rata 3.73 detik hingga 12.09 detik. 3 Selisih waktu pengujian kinerja yang sangat kecil menunjukkan waktu yang dibutuhkan untuk penandaan dan verifikasi tidak dipengaruhi oleh panjang pesan. Saran Saran yang dapat digunakan untuk penelitian selanjutnya antara lain: 1 Menerima SMS yang masuk secara otomatis. 2 Memasukkan port spesifik penerimaan SMS ke dalam registry sehingga tidak perlu menentukan nomor port lagi. 3 Menggunakan metode penandaan digital lain ataupun menggunakan library kriptografi yang lain. 4 Mencari cara untuk mengurangi overhead karena penandaan digital. 5 Mengembangkan aplikasi agar dapat melakukan verifikasi dari beberapa pengirim.
Khosiawan Y. 2011. Penggunaan digital signature pada SMS menggunakan elliptic curve digital signature algorithm. [skripsi]. Surabaya: Fakultas Teknik Informatika, Institut Teknologi Sepuluh November. Martinez AR, Martinez DS, Montesinos MM, Skarmeta AF. 2007. A survey electronic signature solutions in mobile devices. Journal of Theoretical and Applied Electronic Commerce Research 2(3):94-109. Menezes A, Oorschot PV, Vanstone S. 1996. Handbook of Applied Cryptography. London: CRC Press. Microsoft. 2011. Digital signatures. http://technet.microsoft.com/en-us/library/ cc962021.aspx [17 Okt 2011]. Schneier B. 1996. Applied cryptography. Second Edition: Protocols, Algorithms, and Source Code in C. New Jersey: John Wiley & Sons, Inc.
Bishop M. 2002. Computer Security: Art and Science. Boston: Addison Wesley.
Wicaksono A. 2012. 2012 IDC Perkirakan Penjualan Ponsel Tumbuh 10%. http://industri.kontan.co.id/news/2012-idcperkirakan-penjualan-ponsel-tumbuh-10 [23 Mei 2012].
Bodic GL. 2003. Mobile Messaging Technologies and Services: SMS, EMS and MMS. West Sussex: John Wiley & Sons Ltd.
Yuan MJ. 2003. Enterprise J2ME: Developing Mobile Java Applications. New Jersey: Prentice Hall PTR.
DAFTAR PUSTAKA
Ireland D. 2011. Using the CRT with RSA. www.di-mgt.com.au/crt_rsa.html [25 Mei 2012].
LAMPIRAN
13
14 Lampiran 1 Parameter-parameter pasangan kunci RSA Parameter p Offset(h)
00
01
02
03
04
05
06
07
08
09
0A
0B
0C
0D
0E
0F
00000000 00000010
00 7C
FC B9
7A 1C
2D 93
B1 21
C8 99
C8 5C
E6 82
BD E5
81 53
A7 C7
33 F1
CF CA
08 7C
7D 83
C6 30
.üz-±ÈÈæ½.§3Ï.}Æ |¹.“!™\‚åSÇñÊ|ƒ0
00000020 00000030 00000040
7C 0A C3
FF DE
C3 37
7C 3B
1A 18
95 C0
7B 9C
65 7D
24 2B
76 A0
A4 3D
0C A6
F0 15
35 B9
27 B2
0C ED
|ÿÃ|.•{e$v¤.ð5'. .Þ7;.Àœ}+ =¦.¹²í Ã
Parameter q Offset(h)
00
01
02
03
04
05
06
07
08
09
0A
0B
0C
0D
0E
0F
00000000 00000010 00000020 00000030
00 E6 75 37
8C CA 84 15
27 E9 A2 E9
B3 3D 42 84
AF C6 51 AD
C3 B8 CF 2B
B8 FE F9 E4
31 F2 B5 F4
67 12 51 C7
A5 CE AD 39
39 F6 D4 8A
30 D9 C5 D2
B0 9D A2 2D
3D A7 1F 1F
4B 18 02 20
07 5B AD F0
00000040
6B
.Œ'³¯Ã¸1g¥90°=K. æÊé=Ƹþò.ÎöÙ.§.[ u„¢BQÏùµQ.ÔÅ¢... 7.é„.+äôÇ9ŠÒ-. ð k
Parameter pubExp Offset(h) 00000000
00 11
01
02
03
04
05
06
07
08
09
0A
0B
0C
0D
0E
0F .
15 Lanjutan Parameter privExp Offset(h)
00
01
02
03
04
05
06
07
08
09
0A
0B
0C
0D
0E
0F
00000000 00000010
08 30
21 BE
87 D2
1B 16
59 53
C9 7B
92 25
79 C6
6F 72
3C A5
9B 81
B1 D1
AE FA
46 6F
87 04
0A 30
.!‡.YÉ’yo<›±®F‡. 0¾Ò.S{%Ær¥.Ñúo.0
00000020 00000030 00000040 00000050 00000060
93 B7 AA 96 D5
1F 02 0F 02 0D
2F D9 71 C1 00
F5 EA 38 0B 2D
F5 4A 54 4B 1C
68 A8 36 8F E5
8F F9 43 6E 7B
5C BC 36 62 20
AE AF EC F9 FA
A2 E4 52 E3 C9
BE 78 A0 EE 90
7C 86 57 82 C2
75 25 4B C3 C4
DF 7B 07 50 66
84 F2 0B 3E 4F
13 28 14 1E 60
“./õõh.\®¢¾|uß„. ·.ÙêJ¨ù¼¯äx†%{ò( ª.q8T6C6ìR WK... –.Á.K.nbùãî‚ÃP>. Õ..-.å{ úÉ.ÂÄfO`
00000070
17
3A
F9
4D
83
72
C2
61
31
F8
77
B9
EE
A9
32
05
.:ùMƒrÂa1øw¹î©2.
Parameter modulo Offset(h)
00
01
02
03
04
05
06
07
08
09
0A
0B
0C
0D
0E
0F
00000000
00
8A
39
F8
D0
F6
62
BA
10
63
06
56
CC
92
AE
F7
00000010 00000020 00000030 00000040 00000050
AD 39 4F B4 C1
3C C5 27 D3 7A
AB 12 30 A8 34
F3 2F 78 66 A2
7B 55 8E 1F A8
8B 4B F5 24 56
2D F1 38 1B E1
82 85 95 8E C9
2D 27 87 CA 8A
9C 98 AE D8 BA
FD CE 2C 5D E1
9E A6 00 0A A2
F1 43 E8 4B 17
A1 D3 7D 41 1B
5F D7 3B 40 EF
47 C5 14 8A AB
.<«ó{‹-‚-œýžñ¡_G 9Å./UKñ…'˜Î¦CÓ×Å O'0xŽõ8•‡®,.è};. ´Ó¨f.$.ŽÊØ].KA@Š Áz4¢¨VáÉŠºá¢..ï«
00000060 00000070 00000080
FE A3 81
AA 7F
42 0B
C1 4D
6B EB
50 A7
B2 20
47 5A
A6 67
CB 2B
DB 48
6F 6B
81 9B
5E B2
F4 10
FE 30
þªBÁkP²G¦ËÛo.^ôþ £..Më§ Zg+Hk›².0 .
.Š9øÐöbº.c.VÌ’®÷
16 Lanjutan Parameter dP Offset(h)
00
01
02
03
04
05
06
07
08
09
0A
0B
0C
0D
0E
0F
00000000 00000010
67 6A
F6 57
12 0F
D0 68
BC 30
16 17
7D 08
20 B8
DB C8
08 25
9C 27
DC 53
C7 60
42 72
D9 41
42 24
gö.м.} Û.œÜÇBÙB jW.h0..¸È%'S`rA$
00000020 00000030
69 A6
50 CB
7E 72
65 AF
4C D6
9C D7
38 06
B4 5D
A9 41
52 FB
9B 44
EA 63
70 4C
3D 76
41 DA
31 5F
iP~eLœ8´©R›êp=A1 ¦Ër¯Ö×.]AûDcLvÚ_
Parameter dQ Offset(h) 00000000 00000010 00000020 00000030
00
01
02
03
04
05
06
07
08
09
0A
0B
0C
0D
0E
0F
62 BC D6 0F
EE 68 18 77
D9 67 2E A8
30 D7 D0 F2
C6 91 56 B5
63 A4 92 92
E6 E7 25 8E
A3 1C A3 AA
83 55 11 BF
AF DB 4A 34
E6 6C E5 D0
22 6F DB 98
0D 48 D9 52
25 C5 A7 35
E7 E6 89 5E
75 34 54 69
bîÙ0Æc棃¯æ".%çu ¼hgב¤ç.UÛloHÅæ4 Ö..ÐV’%£.JåÛÙ§‰T .w¨òµ’Žª¿4ИR5^i
Parameter qInv Offset(h)
00
01
02
03
04
05
06
07
08
09
0A
0B
0C
0D
0E
0F
00000000 00000010 00000020
00 94 8E
95 1C 36
1C B7 AF
74 7D BF
9E 8C 2D
CE E5 89
10 35 C3
14 38 DF
C4 AE 8F
39 11 F9
C2 65 10
8A A6 6A
5C A4 B6
78 F3 F9
4C C8 4B
17 83 B7
.•.tžÎ..Ä9Š\xL. ”.·}Œå58®.e¦¤óȃ Ž6¯¿-‰Ãß.ù.j¶ùK·
00000030 00000040
B9 31
DF
E6
10
78
20
42
58
B3
D3
89
D1
5F
F9
8D
30
¹ßæ.x BX³Ó‰Ñ_ù.0 1
17 Lampiran 2 Contoh SMS beserta penandaan Isi pesan Pesan yang dikirim
Pembatas [-+-]
Penandaan TKP/5A9apU1wjD+ya5tXOBL1ci2ufZV+yQX8cRyzMDBcWKLjVrJE2WVB00gxejSewSgxs6nS+NfDl3/8b/tqRluv8eqI8Feh E5FYQMM3p57vnHcDFo9JgpG0hRg94gV+UYe42emXMltwiSYjclYLMhPk+p9mFljc07xRP2024DU=
Pesan yang dikirim [-+-] TKP/5A9apU1wjD+ya5tXOBL1ci2ufZV+yQX8cRyzMDBcWKLjVrJE2WVB00gxejSewSgxs6nS+NfDl3/8b/tqRluv8eqI8FehE5FYQMM3p 57vnHcDFo9JgpG0hRg94gV+UYe42emXMltwiSYjclYLMhPk+p9mFljc07xRP2024DU= Lampiran 3 Tabel hasil pengujian kinerja Penandaan Sony Ericsson W660i Panjang SMS
Waktu (detik) Pertama
2 SMS 3 SMS 4 SMS
Nokia 300
Kedua
2.1 2.0 1.9
1.9 1.9 2.0
Rata-rata
Panjang SMS
Ketiga 1.9 2.1 1.9
Waktu (detik) Pertama
1.97 2.00 1.93
2 SMS 3 SMS 4 SMS
1.4 1.3 1.2
Kedua 1.3 1.5 1.3
Rata-rata Ketiga 1.4 1.4 1.4
1.37 1.40 1.30
Peneriman dan Verifikasi Nokia 300 Panjang SMS
Sony Ericsson W660i
Waktu (detik) Pertama
Kedua
Rata-rata
Panjang SMS
Ketiga
Waktu (detik) Pertama
Kedua
Rata-rata Ketiga
2 SMS 3 SMS
11.1 11.8
11.6 12.5
11.4 12.4
11.37 12.23
2 SMS 3 SMS
4.0 4.1
4.1 3.5
4.0 3.0
4.03 3.53
4 SMS
12.5
12.9
12.6
12.67
4 SMS
3.3
3.4
4.2
3.63