ENKRIPSI SMS MENGGUNAKAN ADVANCED ENCRYPTION STANDARD PADA J2ME DENGAN BANTUAN BOUNCY CASTLE CRYPTOGRAPHY API
NASKAH PUBLIKASI
diajukan oleh Eli Pujastuti 07.11.1620
kepada JURUSAN TEKNIK INFORMATIKA SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER AMIKOM YOGYAKARTA 2011
SMS ENCRYPTION USING ADVANCED ENCRYPTION STANDARD IN J2ME WITH BOUNCY CASTLE CRYPTOGRAPHY API
ENKRIPSI SMS MENGGUNAKAN ADVANCED ENCRYPTION STANDARD PADA J2ME DENGAN BANTUAN BOUNCY CASTLE CRYPTOGRAPHY API Eli Pujastuti Jurusan Teknik Informatika STMIK AMIKOM YOGYAKARTA
ABSTRACT Security of communication for some people is a vital matter. With the development of communication means communication security is growing hand in hand. Email technology security, https, ssl appears secure communications in the Internet network. In fact, various security threats on sms occur. The important thing to note, especially for users who use SMS for business activities is that the sms is not a safe environment. Java ME standard library is designed to fit on mobile devices with its limitations, so it does not have encryption capabilities. Some developers have developed APIs for encryption purposes. The most famous and widely used is Bouncy Castle Cryptography APIs, which provide much support for various encryption methods, including Advanced Encryption Standard (AES). The author tries to create mobile applications for securing the contents of SMS uses the AES algorithm and with the help of Bouncy Castle Cryptography APIs. The result is that this SMS encryption application give a secure communications, the sent message is difficult to understand for people who have no password to decrypt, so it can be a safe alternative communications for sending short messages. Keywords: Encryption, AES, SMS, J2ME.
1. Pendahuluan Keamanan komunikasi bagi sebagian orang merupakan hal yang sangat vital. Dengan berkembangnya sarana komunikasi pengamanan komunikasi pun berkembang beriringan. Teknologi email security, https, ssl pun muncul mengamankan komunikasi di jaringan internet. Kenyataannya, berbagai ancaman keamanan pada sms terjadi. Hal yang perlu dicatat terutama bagi user yang menggunakan sms untuk aktivitas bisnis adalah bahwa sms bukan merupakan environment yang aman. Java ME standard library didesain agar sesuai pada mobile device dengan keterbatasannya, sehingga tidak memiliki kemampuan enkripsi. Beberapa developer telah mengembangkan API untuk tujuan enkripsi. Yang paling terkenal dan banyak digunakan adalah Bouncy Castle Cryptography API, yang menyediakan banyak dukungan untuk berbagai metode enkripsi termasuk Advance Encryption Standard (AES). Pada skripsi ini penulis mencoba membuat aplikasi mobile untuk mengamankan isi SMS menggunakan algoritma AES dan dengan bantuan Bouncy Castle Cryptography API. 2. Landasan Teori 2.1 Short Message Service (SMS) SMS (Short Message Service) secara umum dapat diartikan sebagai sebuah service yang memungkinkan ditransmisikannya pesan text pendek karena pesan yang dikirimkan hanya berupa karakter text dan tidak lebih dari 160 karakter. Penstransmisian SMS menggunakan kanal singnalling, bukan kanal suara, sehingga kita dapat saja menerima SMS walaupun kita sedang melakukan komunikasi suara. Kemudahan dan kepraktisan yang ditawarkan oleh fasilitas seperti polling, kuis, SMS aduan, SMS saran, SMS banking, dan sebagainya. 2.2 Java 2 Micro Edition J2ME merupakan bagian dari J2SE yang dirancang untuk menjalankan program Java pada perangkat kecil seperti handphone dan PDA, yang memiliki karakteristik yang berbeda dengan komputer biasa, misalnya kecilnya jumlah memori pada handphone dan PDA. J2ME terdiri dari komponen-komponen sebagai berikut: 1. Java Virtual Machine (JVM) Komponen ini untuk menjalankan program Java pada emulator atau handled devices. 2. Java API (Application Programming Interface) Komponen
ini
merupakan
library
untuk
menjalankan
mengembangkan program Java pada handled devices.
dan
3. Tools lain untuk pengambangan aplikasi Java semacam emulator Java Phone, emulator Motorolla. 2.3 Kriptografi Kriptografi berasal dari bahasa yunani, crypto dan graphia. Crypto berarti secret (rahasia) dan graphia berarti writing (tulisan). Menurut terminologinya, kriptografi adalah ilmu dan seni untuk menjaga keamanan pesan ketika pesan dikirim dari suatu tempat ke tempat lain (Dony Ariyus, 2008). Dalam ilmu kriptografi suatu
pesan yang akan dirahasiakan atau disandikan
disebut dengan plaintext, sedangkan pesan yang telah disandikan sehingga tidak memiliki nilai dan arti dengan tujuan agar pesan tidak dapat dibaca oleh pihak yang tidak berhak disebut ciphertext. Dalam ilmu kriptografi juga terdapat istilah enkripsi dan dekripsi. Enkripsi merupakan proses menyandikan plaintext menjadi ciphertext dengan menggunakan algoritma tertentu. Sedangkan proses mengembalikan ciphertext menjadi plaintext disebut sebagai dekripsi. 3. Analisis 3.1 Analisis Kebutuhan Analisis kebutuhan disesuaikan dengan apa yang dibutuhkan oleh pengguna. Analisis ini dihasilkan dari hasil wawancara secara langsung kepada beberapa pengguna. Mewakili kebutuhan mereka pada perangkat lunak enkripsi SMS. 3.1.1 Kebutuhan Awal Dari penjelasan informasi yang terdapat pada area aplikasi maka akan didapatkan informasi-informasi lain, salah satunya adanya kondisi yang akan terjadi dari seseorang yang akan mengirim maupun menerima pesan SMS yaitu: 1. Pada masing-masing ponsel pengirim dan penerima pesan SMS harus sudah terinstall aplikasi ini. 2. Pengirim dan penerima pesan SMS harus mempunyai kunci simetri yang sama, sesuai dengan kesepakatan pengirim dan penerima sebelum dapat melakukan pengiriman dan penerimaan pesan SMS terenkripsi. Dalam operasinya aplikasi ini membutuhkan data-data yang digunakan untuk pengiriman dan penerimaan pesan yaitu data yang akan dipakai pada ponsel pengirim dari data yang akan dipakai pada ponsel penerima: 1. Data yang digunakan pada ponsel pengirim antara lain: a. Nomor port yang digunakan dalam pengiriman. b. Nomor telepon penerima yang tersimpan dalam memori. c. Kunci simetri yang akan digunakan. d. Pesan singkat yang sudah ditulis pengguna dalam bentuk string.
2. Data yang digunakan pada ponsel penerima antara lain: a. Nomor telepon pengirim yang dimasukkan ke dalam record b. Kunci simetri yang digunakan c. Pesan singkat yang diterima oleh penerima d. Nomor port. 3.2 Perancangan Sistem Perancangan sistem dibagi menjadi beberapa tahap perancangan, yaitu pembuatan arsitektur sistem, UML, dan rancangan record store, yaitu suatu penyimpanan pada MIDlet yang menyerupai database. 3.2.1
Arsitektur Sistem
Operator Pesan didekripsi menggunakan kunci dari kontak
Pesan terenkripsi menggunakan kunci dari kontak
Gambar 3.1 Arsitektur sistem umum Pengguna memasukkan sms, maka aplikasi secara otomatis mengambil kunci pada tabel kontak dan mengenkripsi pesan tersebut. Pesan terenkripsi itu kemudian dikirim melalui operator seluler. Pesan terenkripsi kemudian diterima oleh penerima. Aplikasi secara otomatis mengambil kunci dari tabel kontak dan mendekrip pesan. Pesan yang telah didekrip disimpan pada tabel inbox. Untuk membacanya, pengguna harus memasukkan password terlebih dahulu. 3.2.2
Perancangan Proses Perancangan proses dari aplikasi mobile yang akan dibangun disajikan dalam
bentuk logic model dengan mengunakan UML (Unified Modeling Language). UML adalah seperangkat aturan dan notasi untuk spesifikasi sistem perangkat lunak, dikelola dan dibuat oleh Object Management Group. Notasi ini menyediakan satu set elemen grafis untuk permodelan sistem. 3.2.2.1. Use Case Diagram Use case diagram merupakan alat komunikasi tingkat tinggi untuk mewakili persyaratan sistem. Diagram menunjukkan interaksi antara pengguna dan entitas
eksternal lainnya dengan sistem yang sedang dikembangkan. Use case digunakan untuk melihat antara sistem dengan pengguna atau disebut juga sebagai aktor. Pada use case ini terdiri dari satu aktor yaitu user, yang dapat sebagai pengirim pesan yang sekaligus dapat menjadi penerima pesan. Pada aplikasi ini pengirim dapat melakukan penulisan pesan, pengiriman pesan, sedangkan penerima pesan dapat menerima pesan, menyimpan pesan yang diterima atau menghapusnya.
Gambar 3.2 Use case diagram enkripsi sms 3.2.2.2. Activity Diagram Dalam bagian ini akan dibahas activity diagram yang merefleksikan semua operasi yang menuju atau ada di sistem dan mengindikasikan semua kejadian yang menyebabkan transisi dari satu state ke state lainnya. Activity diagram tidak menggambarkan behavior internal sebuah sistem (interaksi antar subsistem) secara detail, tetapi lebih menggambarkan peruses dan jalur aktivitas dari level atas secara umum. 3.2.2.3. Class Diagram Pada tahap ini menentukan kelas entitas, atribut dan operasinya. Kemudian
menentukan hubungan dan interaksi antar kelas.
3.2.2.1. Sequence Diagram Sequence diagram mempresentasikan interaksi antar objek di dalam dan disekitar sistem termasuk user dan antarmuka user. Sequence diagram terdiri atas dimensi vertical yang mempresentasikan waktu dan dimensi horizontal yang mempresentasikan objek-objek terkait. Aspek penting dari sequence diagram adalah keterurutan waktu. Yang mengindikasikan bahwa interaksi direpresentasikan tahap demi tahap. 3.1 Perancangan Record Store Record Store merupakan tempat penyimpanan pada MIDlet. Berdasarkan kebutuhan yang telah dianalisa dan dirancang pada subbab sebelumnya, dibutuhkan tiga buah record store, yaitu untuk menyimpan kontak, pesan terkirim dan pesan masuk. Pada record store, data disimpan pada array berindeks, dimana indeksnya disebut sebagai recorded. Meskipun tidak sama dengan database, namun record store dapat dianalisis dan didokumentasikan sebagaimana merancang database. Berikut adalah tabel record Store. 1. Record store untuk dbSent Tabel 3.1 Record store untuk dbSent No
Nama Field
Fungsi
1
id
Mengidentifikasi id pesan keluar
Sender
Mengidentifikasi nama tujuan yang akan dikirim
3
Message
Isi pesan text yang dikirimkan pada tujuan
4
Status
Mengidentifikasi
status pesan
apakah
sudah
dibuka atau belum
4. Implementasi dan Pembahasan 4.1
Implementasi Antarmuka Aplikasi ini menggunakan media telepon selular sehingga tampilan akan berbeda
antara satu merk dengan yang lainnya. Disini penulis menggunakan emulator wtk 2.5.2 untuk menjalankan program. 4.2
Lingkungan pengujian Pengujian terhadap aplikasi enkripsi SMS ini dilakukan guna mengetahui sejauh
mana fungsi-fungsi aplikasi dapat berjalan sesuai dengan tujuan perancangan aplikasi tersebut. Adapun ruang lingkup pengujian seperti yang tertera pada tabel berikut.
Tabel 4.1 Lingkungan Pengujian No 1
Pengujian Aplikasi
dapat
menampilkan
SAMSUNG S5620 Monte
LG Cookie
√
√
√
√
√
√
√
√
√
√
√
√
√
√
√
√
√
√
√
√
√
√
menu
utama 2
Aplikasi
dapat
memodifikasi
contact
(menambah, mengedit, menghapus) 3
Aplikasi
dapat
menampilkan
daftar
kontak dalam bentuk List 4
Aplikasi dapat menampilkan icon-icon baik yang disertakan pada menu utama maupun pada alert
5
Aplikasi
mampu
menghandle
pesan
yang ditulis oleh pengguna beserta tujuan yang telah ditentukan pengguna. 6
Aplikasi dapat memberikan notifikasi pengguna saat pesan berhasil dikirim atau diterima.
7
Aplikasi
mampu
menyimpan
secara
otomatis pesan yang telah dikirim ke dalam record store Sent. 8
Aplikasi
dapat menerima SMS
dan
menyimpan SMS tersebut ke dalam Inbox 9
Aplikasi dapat mengidentifikasi pengirim berdasarkan nomor pengirim
10
Aplikasi mampu mengenkripsi pesan yang dikirim
11
Aplikasi mampu mendekripsi pesan yang diterima
Tabel 4.1 diatas membuktikan bahwa sebagian besar fungsi aplikasi yang telah dibangun dapat berjalan sesuai yang diharapkan. 5. Penutup 5.1
Kesimpulan
Dari skripsi ini dapat ditarik beberapa kesimpulan, yaitu:
1. Sistem enkripsi SMS berhasil diterapkan menggunakan bahasa pemrograman J2ME dan metode advance encryption Standard (AES) dengan bantuan Bouncy Castle Cryptography API. 2. Bouncy Castle Cryptography API mendukung salah satu penggunaan algoritma simetri yaitu AES. 3. Dengan aplikasi enkripsi SMS, pesan yang terkirim menjadi sulit dipahami sehingga dapat menjadi alternatif media komunikasi yang aman untuk pengiriman pesan singkat. 4. Kata yang dimasukkan sebagai plaintext hasilnya sama dengan keluaran, hal ini menunjukkan bahwa proses dekripsi terlaksana dengan baik. 5.2
Saran
Beberapa saran yang dapat dikemukakan setelah penyelesaian skripsi ini, yaitu: 1. Diharapkan untuk pengembangannya, aplikasi enkripsi SMS ini nantinya bisa mengenali huruf-huruf selain alphabet. Seperti: huruf kanji, arab. 2. Minimnya penjelasan tentang Bouncy Castle Cryptography API 3. Diharapkan untuk pengembangan berikutnya agar menggunakan alghoritma asimetrik, sehingga user tidak perlu menyepakati password kontak.
DAFTAR PUSTAKA Arius, Dony. 2008. Pengantar Ilmu Kriptografi Teori, Analisis, dan Implementasi, Yogyakarta, Andi Offset Knudsen, J.,Li, S., 2005, Beginning J2ME: From Novice to Professional, Third Edition, Apress, New York. reeshtea.wordpress.com/.../howto-setting-library-bouncycastle Shalahuddin, M, Rosa, A.S., 2008, Pemrograman J2ME, Informatika, Bandung. Sutejo, B., Handoko, Y., 2003, Teleakses: Database Pendidikan Berbasis Ponsel, Andi Offset, Yogyakarta.