• Tidak ada hasil yang ditemukan

PENGEMBANGAN APLIKASI PENANDAAN DIGITAL PADA SMS MENGGUNAKAN ALGORITME MD5-RSA YAZRI HAFIZ

N/A
N/A
Protected

Academic year: 2021

Membagikan "PENGEMBANGAN APLIKASI PENANDAAN DIGITAL PADA SMS MENGGUNAKAN ALGORITME MD5-RSA YAZRI HAFIZ"

Copied!
25
0
0

Teks penuh

(1)

I

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

(2)

II

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

(3)

i

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.

(4)

ii Judul Skripsi : Pengembangan Aplikasi Penandaan Digital pada SMS Menggunakan Algoritme

MD5-RSA Nama : Yazri Hafiz

NRP : G64096066

Disetujui Pembimbing

Hendra Rahmawan SKom MT NIP 198205022009121004

Diketahui

Ketua Departemen Ilmu Komputer

Dr Ir Agus Buono MSi MKom NIP 196607021993021001

(5)

iii

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

(6)

iv

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.

(7)

v

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

(8)

vi

DAFTAR TABEL

Halaman

1 Pengujian fungsionalitas. ... 10

2 Kinerja pembentukan penandaan. ... 10

3 Kinerja penerimaan dan verifikasi. ... 10

DAFTAR GAMBAR

Halaman 1 Siklus hidup keamanan (Bishop 2002) ... 2

2 Penandaan digital dengan RSA (Microsoft 2011) ... 4

3 Skema pengiriman SMS (Bodic 2003) ... 4

4 Tahapan metode penelitian. ... 5

5 Alur protokol. ... 6

6 Proses pembangkitan pasangan kunci ... 7

7 Proses pembentukan penandaan... 7

8 Proses verifikasi penandaan. ... 7

9 Pembangkitan pasangan kunci RSA. ... 8

10 Source code pembangkitan pasangan kunci RSA ... 8

11 Aplikasi pengiriman SMS. ... 8

12 Source code pembentukan penandaan ... 9

13 Source code pengiriman SMS. ... 9

14 Aplikasi penerima SMS. ... 9

15 Source code penerimaan SMS. ... 9

16 Source code verifikasi penandaan. ... 10

17 Skema penyebaran kunci publik ... 11

DAFTAR LAMPIRAN

Halaman 1 Parameter-parameter pasangan kunci RSA ... 14

2 Contoh SMS beserta penandaan ... 17

(9)

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 teknik-teknik 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 langkah-langkah yang melibatkan dua entitas atau lebih dan didesain untuk menyelesaikan masalah

(10)

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 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 ancaman-ancaman tersebut.

2 Policy atau kebijakan. Kebijakan yang dibuat berdasarkan ancaman yang telah diidentifikasi. Kebijakan-kebijakan yang dibuat harus mampu mengatasi ancaman-ancaman 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 meng-hasilkan 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 hal-hal tentang pengoperasian dan pemeliharaan protokol yang telah dikembangkan.

Penandaan Digital

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).

(11)

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. Masing-masing 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 = penyangga 32 bit A, B, C, D g = salah satu fungsi F, G, H, I CLSs = circular left shift sebanyak s bit

X[k] = kelompok 32 bit ke-k dari blok 512 bit message ke-q. Nilai k = 0

sampai 15.

T[i] = 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 d  c c  b b  a 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 parameter-parameter lain. Parameter-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 = c dP 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

(12)

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

(13)

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 Spesifikasi Desain 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 kebijakan-kebijakan yang akan diterapkan pada aplikasi dikembangkan. Kebijakan ini harus dapat

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

Pada tahap ini, aplikasi telah selesai diuji. Pengujian yang dilakukan adalah pengujian fungsionalitas dan pengujian kinerja aplikasi penandaan digital pada SMS.

HASIL DAN PEMBAHASAN

Identifikasi Layanan Keamanan

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.

(14)

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.

(15)

7 Mulai Nilai p dan q n = p x q Φ = (p – 1)(q – 1) gcd(e, ϕ) = 1 d = e-1 mod ϕ dP = d mod (p-1) dQ = d mod (q-1) qInv = q-1 mod p Menulis parameter ke media penyimpanan 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

Mulai SMS Fungsi MD5 Digest Enkripsi Parameter Kunci Pribadi Penyertaan penandaan 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 SMS Fungsi MD5 Digest SMS Parameter Kunci Publik Dekripsi Sama ? SMS Valid. Pengirim berhasil diverifikasi Ya SMS tidak valid Tidak Selesai Digest dari pengirim Ekstraksi penandaan Penandaan

(16)

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.

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

dan kunci pribadi sehingga fungsi ini diganti dengan menyimpan nilai parameter-parameter tersebut (Yuan 2003). Nilai parameter-parameter 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. 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

(17)

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); }}

(18)

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 Parameter kunci pada W660i Parameter kunci pada Nokia 300 Hasil verifikasi 1 Valid Valid (Pasangan dari W660i) True 2 Valid (Pasangan dari N300) Valid True 3 Valid (Milik sendiri) Valid (Milik sendiri) False

4 Valid Invalid False

5 Invalid Valid False

6 Invalid Invalid 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 rata-ratanya. Hasil pengujian kinerja pembentukan penandaan ditunjukkan pada Tabel 2.

Tabel 2 Kinerja pembentukan penandaan Panjang SMS Sony Ericsson W660i Nokia 300 2 SMS 1.97 detik 1.37 detik 3 SMS 2.00 detik 1.40 detik 4 SMS 1.93 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 Sony Ericsson W660i Nokia 300 2 SMS 4.03 detik 11.37 detik 3 SMS 3.53 detik 12.23 detik 4 SMS 3.63 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

(19)

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

Key Server

Kunci Publik

Kunci Publik SMS

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

(20)

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.

DAFTAR PUSTAKA

Bishop M. 2002. Computer Security: Art and Science. Boston: Addison Wesley.

Bodic GL. 2003. Mobile Messaging Technologies and Services: SMS, EMS and MMS. West Sussex: John Wiley & Sons Ltd. Ireland D. 2011. Using the CRT with RSA. www.di-mgt.com.au/crt_rsa.html [25 Mei 2012].

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.

Wicaksono A. 2012. 2012 IDC Perkirakan Penjualan Ponsel Tumbuh 10%. http://industri.kontan.co.id/news/2012-idc-perkirakan-penjualan-ponsel-tumbuh-10 [23 Mei 2012].

Yuan MJ. 2003. Enterprise J2ME: Developing Mobile Java Applications. New Jersey: Prentice Hall PTR.

(21)

13

LAMPIRAN

(22)

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 00 FC 7A 2D B1 C8 C8 E6 BD 81 A7 33 CF 08 7D C6 .üz-±ÈÈæ½.§3Ï.}Æ 00000010 7C B9 1C 93 21 99 5C 82 E5 53 C7 F1 CA 7C 83 30 |¹.“!™\‚åSÇñÊ|ƒ0 00000020 7C FF C3 7C 1A 95 7B 65 24 76 A4 0C F0 35 27 0C |ÿÃ|.•{e$v¤.ð5'. 00000030 0A DE 37 3B 18 C0 9C 7D 2B A0 3D A6 15 B9 B2 ED .Þ7;.Àœ}+ =¦.¹²í 00000040 C3 à Parameter q Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 00000000 00 8C 27 B3 AF C3 B8 31 67 A5 39 30 B0 3D 4B 07 .Œ'³¯Ã¸1g¥90°=K. 00000010 E6 CA E9 3D C6 B8 FE F2 12 CE F6 D9 9D A7 18 5B æÊé=Ƹþò.ÎöÙ.§.[ 00000020 75 84 A2 42 51 CF F9 B5 51 AD D4 C5 A2 1F 02 AD u„¢BQÏùµQ.ÔÅ¢... 00000030 37 15 E9 84 AD 2B E4 F4 C7 39 8A D2 2D 1F 20 F0 7.é„.+äôÇ9ŠÒ-. ð 00000040 6B k Parameter pubExp Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 00000000 11 .

(23)

15 Lanjutan Parameter privExp Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 00000000 08 21 87 1B 59 C9 92 79 6F 3C 9B B1 AE 46 87 0A .!‡.YÉ’yo<›±®F‡. 00000010 30 BE D2 16 53 7B 25 C6 72 A5 81 D1 FA 6F 04 30 0¾Ò.S{%Ær¥.Ñúo.0 00000020 93 1F 2F F5 F5 68 8F 5C AE A2 BE 7C 75 DF 84 13 “./õõh.\®¢¾|uß„. 00000030 B7 02 D9 EA 4A A8 F9 BC AF E4 78 86 25 7B F2 28 ·.ÙêJ¨ù¼¯äx†%{ò( 00000040 AA 0F 71 38 54 36 43 36 EC 52 A0 57 4B 07 0B 14 ª.q8T6C6ìR WK... 00000050 96 02 C1 0B 4B 8F 6E 62 F9 E3 EE 82 C3 50 3E 1E –.Á.K.nbùãî‚ÃP>. 00000060 D5 0D 00 2D 1C E5 7B 20 FA C9 90 C2 C4 66 4F 60 Õ..-.å{ úÉ.ÂÄ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 .Š9øÐöbº.c.VÌ’®÷ 00000010 AD 3C AB F3 7B 8B 2D 82 2D 9C FD 9E F1 A1 5F 47 .<«ó{‹-‚-œýžñ¡_G 00000020 39 C5 12 2F 55 4B F1 85 27 98 CE A6 43 D3 D7 C5 9Å./UKñ…'˜Î¦CÓ×Å 00000030 4F 27 30 78 8E F5 38 95 87 AE 2C 00 E8 7D 3B 14 O'0xŽõ8•‡®,.è};. 00000040 B4 D3 A8 66 1F 24 1B 8E CA D8 5D 0A 4B 41 40 8A ´Ó¨f.$.ŽÊØ].KA@Š 00000050 C1 7A 34 A2 A8 56 E1 C9 8A BA E1 A2 17 1B EF AB Áz4¢¨VáÉŠºá¢..ï« 00000060 FE AA 42 C1 6B 50 B2 47 A6 CB DB 6F 81 5E F4 FE þªBÁkP²G¦ËÛo.^ôþ 00000070 A3 7F 0B 4D EB A7 20 5A 67 2B 48 6B 9B B2 10 30 £..Më§ Zg+Hk›².0 00000080 81 .

(24)

16 Lanjutan Parameter dP Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 00000000 67 F6 12 D0 BC 16 7D 20 DB 08 9C DC C7 42 D9 42 gö.м.} Û.œÜÇBÙB 00000010 6A 57 0F 68 30 17 08 B8 C8 25 27 53 60 72 41 24 jW.h0..¸È%'S`rA$ 00000020 69 50 7E 65 4C 9C 38 B4 A9 52 9B EA 70 3D 41 31 iP~eLœ8´©R›êp=A1 00000030 A6 CB 72 AF D6 D7 06 5D 41 FB 44 63 4C 76 DA 5F ¦Ër¯Ö×.]AûDcLvÚ_ Parameter dQ Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 00000000 62 EE D9 30 C6 63 E6 A3 83 AF E6 22 0D 25 E7 75 bîÙ0Æc棃¯æ".%çu 00000010 BC 68 67 D7 91 A4 E7 1C 55 DB 6C 6F 48 C5 E6 34 ¼hgב¤ç.UÛloHÅæ4 00000020 D6 18 2E D0 56 92 25 A3 11 4A E5 DB D9 A7 89 54 Ö..ÐV’%£.JåÛÙ§‰T 00000030 0F 77 A8 F2 B5 92 8E AA BF 34 D0 98 52 35 5E 69 .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 00 95 1C 74 9E CE 10 14 C4 39 C2 8A 5C 78 4C 17 .•.tžÎ..Ä9Š\xL. 00000010 94 1C B7 7D 8C E5 35 38 AE 11 65 A6 A4 F3 C8 83 ”.·}Œå58®.e¦¤óȃ 00000020 8E 36 AF BF 2D 89 C3 DF 8F F9 10 6A B6 F9 4B B7 Ž6¯¿-‰Ãß.ù.j¶ùK· 00000030 B9 DF E6 10 78 20 42 58 B3 D3 89 D1 5F F9 8D 30 ¹ßæ.x BX³Ó‰Ñ_ù.0 00000040 31 1

(25)

17 Lampiran 2 Contoh SMS beserta penandaan

Isi pesan Pembatas Penandaan

Pesan yang dikirim [-+-] 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 Nokia 300

Panjang SMS Waktu (detik) Rata-rata Panjang SMS Waktu (detik) Rata-rata

Pertama Kedua Ketiga Pertama Kedua Ketiga

2 SMS 2.1 1.9 1.9 1.97 2 SMS 1.4 1.3 1.4 1.37

3 SMS 2.0 1.9 2.1 2.00 3 SMS 1.3 1.5 1.4 1.40

4 SMS 1.9 2.0 1.9 1.93 4 SMS 1.2 1.3 1.4 1.30

Peneriman dan Verifikasi

Nokia 300 Sony Ericsson W660i

Panjang SMS Waktu (detik) Rata-rata Panjang SMS Waktu (detik) Rata-rata

Pertama Kedua Ketiga Pertama Kedua Ketiga

2 SMS 11.1 11.6 11.4 11.37 2 SMS 4.0 4.1 4.0 4.03

3 SMS 11.8 12.5 12.4 12.23 3 SMS 4.1 3.5 3.0 3.53

Referensi

Dokumen terkait

Pada penelitian ini peneliti melakukan penelitian tentang peran keluarga dalam pemberian diet pada penderita hipertensi di Desa Mamek, Propinsi Kalimantan Barat dengan

Penelitian ini bertujuan untuk menganalisis kapasitas lendutan, daktalitas dan kekakuan dari struktur balok beton bertulang yang diperkuat GFRP dengan perendaman air

This study have limitations in studying this field, where the measurements to the media exposure variable using dummy variable where a value of 1 for companies that

squamosa yang terdapat di lokasi tersebut masih layak untuk dikonsumsi, hal ini sejalan dengan penelitian terdahulu yang menyatakan bahwa semakin banyak polutan yang

FRINNA SHINTA 500644607 Magister Manajemen MM PENGARUH PELATIHAN, INTERAK.SI SOSIAL, DAN MOTIVASI KERJA TERHADAP KINERJA PENYULUH MELALUI KOMPETENSI Studi pada Kantor

とどまらずに航海を続行し,サント・ドミンゴには立ち寄らず,まっ

Tidak lupa juga kepada para responden yang terlibat dalam kajian ini iaitu pihak industri perhotelan di Malaysia, para pensyarah dan pelajar semester akhir Diploma Hotel dan

Tujuan penelitian ini adalah membandingkan pemeriksaan dokter gigi dan bukan dokter gigi dan untuk mendapatkan ketepatan pemeriksaan agar hasil survei kesehatan