IMPLEMENTASI ALGORITMA KRIPTOGRAFI RIJNDAEL UNTUK PENGAMANAN SISTEM SMS BANKING DAN INTERNET BANKING I Wayan Ordiyasa Abstraksi Sistem Keamanan pengiriman SMS Banking dan Internet Banking dibangun untuk meningkatkan keamanan transaksi nasabah menggunakan SMS Banking dan Internet Banking. Tujuan penelitian ini adalah untuk merancang aplikasi berbasis Java 2 Micro Edition (J2ME) yang digunakan untuk melakukan transaksi secara aman dengan penerapan metode autentifikasi nasabah dan kriptografi pesan dengan algoritma Rijndeal.. Metodologi yang digunakan dalam penelitian ini adalah dengan melakukan studi literature dan melakukan uji coba sistem. Hasil yang dicapai dalam penelitian ini adalah terciptanya suatu aplikasi client berbasis Java 2 Micro Edition yang digunakan untuk melakukan transaksi oleh nasabah dan aplikasi server berbasis PHP dan menggunakan database MySQL untuk melakukan administrasi transaksi. Dari uji coba sistem menunjukkan bahwa aplikasi ini sangat efektif dan memiliki aspek keamanan yang cukup baik. Kata Kunci : Algoritma Rijndeal, Kriptografi, SMS Banking dan Internet Banking A.PENDAHULUAN Latar Belakang Teknologi bergerak saat ini sudah menjadi tren perkembangan teknologi informasi masa kini. Teknologi ini juga diperkirakan akan mengalami perkembangan yang pesat di masa mendatang Dengan semakin banyaknya perangkat
mobile
yang
bisa
berfungsi
seperti
sebuah
komputer,
ini
mengindikasikan bahwa perkembangan teknologi ke arah Mobile Technology semakin nyata. Java merupakan salah satu bahasa pemrograman yang banyak digunakan untuk perangkat bergerak maupun pada desktop yang saat ini banyak diimplementasikan pada teknologi modern. Dengan fitur-fitur baru yang mendukung untuk perangkat Mobile serta keunggulan yang dimilikinya, Java dapat menjadi salah satu solusi yang cocok untuk pembangunan sebuah aplikasi baik pada perangkat bergerak seperti sebuah ponsel ataupun sebuah dekstop. 97
Seiring dengan berkembangnya internet banking berbasis ponsel, maka penggunaannya juga menjadi semakin beragam tentu penggunaanya yang semakin pesat ini membutuhkan keamanan yang bagus dalam melakukan proses tersebut. Secara khusus juga, pada SMS Banking adalah aspek keamanan data pada sisi pengguna maupun proses pengiriman pesan menjadi salah satu aspek yang sangat penting. Sebuah kasus yang berhubungan dengan sistek keamanan misalnya: tahun 1996, U.S. Federal Computer Incident Response Capability (FedCIRC) melaporkan bahwa lebih dari 2500 insiden di sistem komputer atau jaringan komputer yang disebabkan oleh gagalnya sistem keamanan atau adanya usaha untuk membobol sistem keamanan Oleh karena itu, Penelitian ini akan mengangkat tema: ” Implementasi Algoritma Kriptografi Rijndael Untuk Pengamanan Sistem SMS Banking”
Rumusan Masalah Adapun rumusan masalah yang akan dibahas pada penelitian ini meliputi: a. Bagaimana mengimplementasikan Algoritma Kriptografi Rijndael untuk membangun keamanan yang baik pada aplikasi pengguna SMS Banking dan Internet Banking ? b. Bagaimana membangun sebuah aplikasi berbasis Java untuk melakukan pengiriman Short Message Service (SMS) Banking dan menjalankan internet banking ? c. Bagaimana membangun pengamanan pada proses pengiriman data untuk SMS Banking dan Internet Banking ?
Metodologi Penelitian Untuk mendukung dan mempercepat proses penelitian, diperlukan sebuah metode. Adapun metode yang digunakan dalam penelitian sebagai berikut: a. Wawancara 98
Wawancara dilakukan untuk mengetahui informasi mengenai sistem yang sedang digunakan saat ini untuk melakukan evaluasi terhadap sistem tersebut. b. Studi pustaka Studi pustaka dilakukan dengan mencari berbagai referensi seperti buku, jurnal maupun informasi dari internet seperti e-book, jurnal online, blog, website dan sumber-sumber internet yang berkaitan dengan tema yang dibahas. c. Studi Laboraturium Studi laboraturium dilakukan dengan melakukan uji coba sistem yang sudah dibangun dengan menggunakan perangkat-perangkat yang diperlukan.
B. LANDASAN TEORI Algoritma Kriptografi Rijndael Advanced Encryption Standard (AES) merupakan standar baru yang dipakai dalam
melakukan
enkripsi
data
digital
pada
saat
ini. AES
menggantikan pendahulunya yaitu DES karena sudah dianggap terlalu tua. Algoritma yang menjadi standar bagi AES ditentukan melalui kompetisi yang diadakan oleh National Institute of Standards and Technology (NIST). Pada kompetisi tersebut, finalis yang terpilih adalah algoritma Twofish, Rijndael, MARS, RC6, dan Serpent. Kompetisi tersebut akhirnya menyatakan bahwa algoritma Rijndael sebagai algoritma kriptogtafi terbaru atau AES. Nama Rijndael berasal dari gabungan nama penemunya yaitu Dr. Vincent Rijmen dari Katholieke Universiteit Leuven dan Dr. Joan Daemen dari Proton World International Algoritma Rijndael merupakan algoritma yang terpilih pada tanggal 2 Oktober
2010 sebagai Algoritma kriptografi
Advanced Encryption Standar
(AES) setelah menjalani berbagai seleksi yang amat ketat serta pernyaratan yang
99
sangat sulit. Rijndael merupakan sebuah algoritma kriptografi yang handal sehingga tidak ada serangan yang diketahui bisa memecahkan Rijndael.1 Algoritma
Rijndael
menggunakan teknik substitusi, permutasi, dan
sejumlah putaran yang dilakukan pada setiap blok yang akan dienkripsi/dekripsi. Untuk setiap putarannya, Rijndael menggunakan kunci yang berbeda. Kunci setiap putaran disebut round key. Tetapi tidak seperti DES yang berorientasi bit, Rijndael beroperasi untuk implementasi
dalam orientasi byte sehingga
algoritma
yang
efisien
ke
memungkinkan
dalam software dan
hardware . Algoritma Rijndael diyakini lebih cepat dibandingkan algoritma Data Encryption Standar (DES)2 Rijndael mendukung berbagai variasi
ukuran blok dan kunci. Namun
Rijndael mempunyai ukuran blok dan kunci yang tetap yaitu ukuran 128, 192, dan 256 bit Algoritma Rijndael dapat mendukung
panjang kunci 128 bit sampai
256 bit dengan step 32 bit. Panjang kunci berpengaruh pada jumlah putaran yang dikenakan pada tiap blok. Pemilihan ukuran blok data dan kunci akan menentukan jumlah proses yang harus dilalui untuk proses enkripsi dan dekripsi. Perbandingan jumlah proses yang harus dilalui untuk masing-masing masukan ditunjukkan pada tabel 2.3. Tabel 2.3. Jumlah proses berdasarkan bit blok dan kunc Panjang Kunci (Nk)
Ukuran Blok \(Nb)
Jumlah Proses (Nr)
Dalam words
Dalam words
4
4
10
6
4
12
8
4
14
Blok-blok data masukan dan kunci dioperasikan dalam bentuk array. Setiap anggota array sebelum menghasilkan keluaran ciphertext dinamakan dengan state. Setiap state akan mengalami proses yang secara garis besar terdiri 1
Aryus Dony, Pengantar Ilmu Kriptografi, Penerbit Andi, Yogyakarta, 2008
2
Munir Rinaldi, Kriptografi, Penerbit Informatika, Bandung, 2006
100
dari empat tahap yaitu AddRoundKey, SubBytes, ShiftRows, dan MixColumns. Selain tahap MixColumns, ketiga tahap lainnya akan diulang pada setiap proses sedangkan tahap MixColumns tidak akan dilakukan pada tahap terakhir. Proses enkripsi adalah kebalikan dari dekripsi. Karena terjadi beberapa tahap dalam proses enkripsi, maka diperlukan subkey subkey yang akan dipakai pada tiap tahap..Pengembangan jumlah kunci yang akan dipakai diperlukan karena kebutuhan subkey yang akan dipakai dapat mencapai ribuan bit, sedangkan kunci yang disediakan secara default hanya 128256 bit. Sehingga jumlah total kunci yang diperlukan sebagai subkey dituliskan dengan rumus di bawah ini: Nb(Nr+1)
Pada rumus diatas Nb adalah besarnya blok data dalam satuan word dan Nr adalah jumlah ronde ( putaran ) yang harus dilalui dalam satuan word. Sebagai contoh, jika blok data yang digunakan 128 bit (4 word) dan kunci yang digunakan sebesar 128 bit (4 word) maka akan dilakukan 10 kali proses (Tabel 2.3).
Dengan demikian dari rumus didapatkan jumlah total kunci
yang diperlukan adalah Nb ( Nr+1 ) = 4(10+1) = 44 word = 1408 bit kunci..
.
Rijndael termasuk dalam jenis algoritma kriptografi yang sifatnya simetri dan cipher block. Dengan demikian algoritma ini mempergunakan kunci yang sama saat enkripsi dan dekripsi serta masukan dan keluarannya berupa blok dengan jumlah bit tertentu. Algoritma Rijndael mempunyai 3 parameter dalam proses enkripsi dan dekripsinya antara lain: 1.
Plaintext yaitu array yang berukuran 16 byte, yang berisi data
masukan. 2.
Ciphertext yaitu array yang berukuran 16 byte, yang berisi hasil
3.
Key yaitu
enkripsi. array yang berukuran 16 byte yang berisi kunci
chipper (cipher key). 101
SMS Banking SMS Banking merupakan salah satu di antara banyak fasilitas yang dapat digunakan oleh nasabah berbagai Bank. Melalui fasilitas ini nasabah dapat melakukan transfer, cek saldo, pembayaran tagihan dan proses adminsitrasi lainnya sesuai dengan disediakan oleh Bank. SMS Banking merupakan salah satu bagian dari Mobile Banking yang disediakan oleh Bank untuk melakukan tansaksi keuangan dan permintaan informasi keuangan misalnya cek saldo, mutasi rekening dan sebagainya Hampir semua bank di Indonesia telah menyediakan fasilitas MBanking baik berupa SIMtolkit ( Menu Layanan Data ) maupun SMS Plain (SMS manual) atau dikenal dengan SMS Banking. Ini menunjukkan bahwa perkembangan teknologi perbankan saat semakin pesat. 3
B. ANALISA DAN PERANCANGAN 3.1 Analisa Sistem Analisa sistem adalah gambaran umum tentang sistem yang akan digunakan untuk menerapkan sistem keamanan pengiriman SMS Banking dan Internet Banking yang akan dibangun. 3.2 Perancangan Sistem 3.2.2 Rancangan Cara Kerja Sistem Sistem yang dibangun pada penelitian ini menekankan pada aspek keamanan data pengguna yang dikirimkan atau diterima. Data yang akan dikirim oleh seorang nasabah harus terlebih dahulu dilakukan enkripsi data menggunakan algoritma Rijndael dan informasi yang diterima oleh pengguna juga berbentuk chipertext yang harus didekripsi terlebih dahulu agar bisa ditampilkan dalam bentuk yang sebenarnya. Prosesnya adalah nasabah mengirim sebuah SMS yang berisi pesan terenkripsi yang di dalamnya terdapat kode request yang diinginkan sesuai 3
Wiji Nurastuti , Teknologi Perbankan, Penerbit Graha Ilmu, Yogyakarta, . 2011.
102
dengan format yang telah ditentukan. SMS tersebut kemudian dikirim melalui ponsel nasabah, yang mana nomor ponselnya sesuai dengan nomor ponsel pada saat pembukaan rekening. Kemudian SMS tersebut dikirim ke nomor ponsel server dan diproses sesuai dengan request. Jenis Request dari client terdiri dari 3 buah request antara lain: CS (Cek Saldo), TRF ( Transfer ) dan BT ( Bayar Tagihan). Jika format benar maka proses akan berjalan dengan baik. Pada sisi client aplikasi dibangun dengan menggunakan Java 2 Micro Edition yang dijalankan pada sebuah Handphone yang mendukung akses fitur Java. Aplikasi yang dibangun memiliki kemampuan untuk mengirimkan data berupa SMS yang aka ditujukan ke sebuah server. Pada proses pengiriman data pada sisi client, data yang akan dikirim sebelumnya dilakukan enkripsi dan pada saat menerima pesan dari server maka MIDlet harus melakukan dekripsi terlebih dahulu agar data dapat dibaca dalam bentuk plaintext. Pada sisi server aplikasi dibangun menggunakan bahasa PHP dan memanfaatkan database server MySQL untuk menyimpan data yang berasal dari komunikasi client dengan server . Data yang diterima pada sisi server berbentuk chipertext sehingga diperlukan sebuah kunci tertentu yang sama dengan kunci enkripsi pada client untuk menampilkan (mendekripsi) pesan yang dikirim oleh client tersebut. Pada sisi server, sebelum melakukan pengiriman pesan ke aplikasi client diperlukan sebuah proses enkripsi agar data yang dikirim ke client bisa menjadi lebih aman dan terjamin kerahasiaan data tersebut. Pada sistem keamanan yang dibangun terdapat beberapa langkah yang harus dijalankan agar sistem dapat bekerja sesuai dengan yang diharapkan. Langkah-langkah tersebut bisa digambarkan pada flowchart sistem seperti pada gambar 1.
103
Mulai
Masukkan Username & Password
Kirim Data Login Tidak
Login Berhasl ?
Ya
Transaksi SMS Banking & Internet Banking
Tampil Peringatan GAGAL
Kirim Data chipertext ke server
Simpan hasil transaksi pada server
Proses Dekripsi Data Pada Server
Tampil Berhasil Ya
Selesai Tidak
Transaksi Berhasil ?
Gambar 1 : Flowcart sistem keamanan pada client dan server Pada gambar di atas dapat dijelaskan bahwa client yang berbasis J2ME harus melakukan login terlebih dahulu agar dapat menggunakan aplikasi yaitu dengan memasukkan username dan password yang benar dan sudah terdaftar lebih dahulu pada server. Jika data yang dimasukkan oleh user salah maka 104
aplikasi akan menampilkan peringatan untuk melakukan proses ulang dengan dengan data yang valid. Setelah user berhasil masuk ke aplikasi J2ME maka user dapat memanfaatkan berbagai fitur yang disediakan pada menu utama aplikasi client mulai dari menulis pesan, melihat kotak masuk hingga melihat pesan terkirim yang ada pada aplikasi yang sedang digunakan. Pada aplikasi client, diperlukan sebuah proses enkripsi dan sebuah kunci untuk dapat melakukan sebuah transaksi perbankan. Proses enkripsi akan dilakukan sebelum data dikirim ke server sehingga pesan yang
baru akan
berbentuk sebuah chipertext yang tidak bisa terbaca. Data yang masuk ke server akan dilakukan pemeriksaan terlebih dahulu mulai dari pengirim, nomor, hingga pesan yang dikirim apakah sudah benar atau masih terdapat kesalahan misalnya format penulisan atau data yang dikirim merupakan sebuah data palsu yang tidak sesuai dengan data yang ada pada server tidak memenuhi standar. Jika pengirim dan data yang dikirim sudah benar maka server aka menjalankan proses transaksi dan mengirimkan informasi transaksi ke MIDlet client yang digunakan.
D. IMPLEMENTASI DAN PENGUJIAN Implementasi Aplikasi pada Client Aplikasi pada client dibangun dengan menggunakan bahasa yang berbasis Java yaitu Java 2 Micro Edition yang khusus digunakan pada sebuah perangkat bergerak seperti ponsel atau PDA. Aplikasi di sisi client digunakan untuk melakukan transaksi SMS Banking sesuai dengan kode yang sudah ditentukan. Nasabah yang bisa melakukan transaksi menggunakan aplikasi MIDlet merupakan nasabah yang sudah memiliki account pada server dan sudah memperoleh username dan password untuk melakukan login pada aplikasi.
105
Menu Tulis SMS Menu Tulis SMS merupakan menu yang digunakan untuk membuat sebuah pesan transaksi SMS Banking sesuai dengan format yang sudah ditentukan dan memasukkan nomor pin yang benar. Pesan yang sudah dienkripsi pada client kemudian siap untuk dikirim sesuai dengan nomor tujuan server. Nasabah haru memperhatikan format pesan dan memasukkan nomor pin dengan benar agar pesan yang dikirim dapat didekrip dan dibaca dengan benar pada sisi server. Tampilan sub menu Buat SMS terlihat seperti seperti gambar 2.
Gambar 2 : Tampilan Buat SMS pada Aplikasi Client untuk nasabah Jika nasabah ingin melakukan transaksi menggunakan MIDlet, maka nasabah harus menulis sebuah pesan dan nasabah harus memasukkan pin sebagai kunci untuk melakukan enkripsi pesan sebelum dikirim. Cuplikan kode program untuk proses enkripsi pesan di atas
sebagai
berikut:
106
private void encoder(byte[] plain, byte[] key) throws Exception { KeyParameter param = new KeyParameter(key); PaddedBufferedBlockCipher cipher = new PaddedBufferedBlockCipher(new CBCBlockCipher(new AESEngine())); cipher.init(true, param); byte[] cipherText = new byte [cipher.getOutputSize(plain.length)]; int cipherLength = cipher.processBytes plain, 0, plain.length, cipherText, 0); try { cipher.doFinal(cipherText, cipherLength); } catch (CryptoException ce) { ce.printStackTrace(); } }
Pada script di atas terlihat bahwa MIDlet yang terdapat pada client menggunakan algoritma AES untuk melakukan enkripsi pesan sebelum dikirim ke server. Kata kunci yang digunakan untuk melakukan enkripsi adalah pin yang dimiliki masing-masing nasabah pada Bank
Hasil Pengujian Sistem Hasil Pengujian Sistem Keamanan Transaksi SMS Banking Proses transaksi pada MIDlet dimulai dengan melakukan instalasi perangkat lunak yang akan digunakan untuk melakukan transaksi SMS Banking. Pada sistem yang dibangun nasabah yang ingin melakukan transaksi harus sudah terdaftar pada server SMS Banking sehingga proses autentifikasi nasabah berjalan dengan baik. Pada sistem ini, dilakukan sebuah pengujian untuk melakukan transaksi menggunakan SMS Banking yang sudah disediakan pada MIDlet dan hanya dapat dilakukan oleh nasabah yang terdaftar. Untuk langkah pertama nasabah harus memasukkan username dan password yang valid dan sudah terdaftar sebelumnya. Tampilan login seorang nasabah terlihat seperti gambar 3.
107
Gambar 3 : Tampilan Login Nasabah pada Aplikasi Client Nasabah yang ingin melakukan transaksi menggunakan MIDlet harus menuliskan pesan transaksi yang meliputi: CS (Cek Saldo), TRF (Transfer Bank), BT (Bayar Tagihan). Misalnya nasabah dengan nama ahmad ingin melakukan cek saldo pada rekeningnya dengan kode rekening 01 maka format yang harus ditulis CS 01 kemudian pin diisi dengan pin SMS Banking yang telah terdaftar. Tampilan format transaksi cek saldo terlihat seperti gambar 4.
Gambar 4 : Tampilan Format Transaksi SMS Banking pada Aplikasi. 108
Setelah pesan ditulis sesuai dengan format yang sudah diberikan maka pesan tersebut harus di enkrip untuk melindungi pesan yang dikirim melalui jaringan. Pesan yang sudah dienkripsi akan berbentuk chipertext. Tampilan pesan chipertext terlihat seperti gambar 5.
Gambar 5 : Tampilan Pesan chipertext pada Aplikasi Client Pesan chipertext kemudian dikirim sebagai pesan request ke server dan akan diproses. Jika pesan valid maka proses akan dilanjutkan tetapi jika pesan salah maka akan diberikan peringatan tertentu. Jika proses transaksi pada server berhasil maka server akan mengirim pesan chipertext ke aplikasi client yang digunakan untuk melakukan transaksi. Pesan chipertext akan didekripsi oleh client dengan menggunakan fitur yang disediakan oleh MIDlet yang digunakan. Pesan yang dikirim oleh server akan masuk ke kotak masuk pada MIDlet dalam bentuk chipertext. Tampilan pesan chipertext yang berasal dari server terlihat seperti gambar 6.
109
Gambar 6 : Tampilan Pesan chipertext yang berasal dari server Untuk melihat pesan plaintext yang dikirim oleh server maka nasabah harus melakukan dekrip pesan dengan memasukkan nomor pin SMS Banking yang dimilikinya. Tampilan pesan plaintext terlihat seperti gambar 7.
Gambar 7 : Tampilan Pesan Plaintext yang berasal dari server
E. KESIMPULAN Dari hasil perancangan dan pengujian sistem yang telah dilakukan dan dibahas pada penelitian ini maka dapat disimpulkan sebagai berikut: 1. Aplikasi client dibangun menggunakan bahasa Java 2 Micro Edition yang dapat digunakan untuk melakukan transaksi SMS banking dengan cara mengirimkan pesan request ke server dan aplikasi client juga dapat
110
menjalankan Internet Banking untuk mengakses informasi terbaru yang berasal dari server.. 2. Sistem keamanan pada pengguna dibangun dengan menerapkan proses autentifikasi nasabah berupa username dan password serta penggunaan metode kriptografi Advanced Encryption Standard (AES) pada proses transaksi yaitu pada saat nasabah melakukan transaksi menggunakan MIDlet. 3. Pengamanan transaksi pada MIDlet dilakukan dengan melakukan enkripsi pesan request yang berisi kode transaksi dan kode rekening pengguna dan pesan akan dienkripsi menggunakan kunci yang berasal dari nomor pin setiap nasabah Bank. Dengan metode pengamanan pengiriman pesan SMS Banking ini sehingga
transaksi yang dilakukan nasabah
Bank dapat
menjadi lebih aman .
DAFTAR PUSTAKA Anhar, 2010, Menguasai PHP dan MySQL secara Autodidak, Jakarta: Penerbit MediaKita. Apostolis K, Saltkinzis, 2004, CRC Press. Aryus Dony, 2008, Pengantar Ilmu Kriptografi, Yogyakarta: Penerbit Andi. Hadinoto Soetanto, 2008, Bank Strategy on Funding Liability Management, Jakarta: Hariyanto Bambang, 2008, Dasar Informatika dan Ilmu Komputer, Yogyakarta: Penerbit Graha Ilmu. Kasiman Peranginangin, 2006, Aplikasi Web dengan PHP dan MySQL, Yogyakarta : Penerbit Andi. Ladjamudin Al Bahra, 2005. Analisis dan Desain Sistem Informasi, Yogyakarta: Penerbit Graha Ilmu, Marimin, Tanjung, 2006, Prabowo, Sistem Informasi Manajemen, Jakarta : Grasindo, Munir Rinaldi, 2006, Kriptografi, Bandung : Penerbit Informatika. 111
Nugroho Bunafit, 2004: PHP dan MySQL Dengan Editor Dreamweaver MX. Yogyakarta: Penerbit Andi Poltak Tommi M, 2006, Tuntunan Praktis Menguasai Jaringan Komputer, Yogyakarta: Penerbit Ardana Media. Salahuddin, Rosa, 2008. Pemrograman J2ME, Bandung: Penerbit Informatika. Stiawan Deris, 2005, Sistem Keamanan Komputer, Jakarta: Elex Media Komputindo Syafi’i, M, 2006. Membangun Aplikasi Berbasis PHP dan MySQL. Yogyakarta: Penerbit Andi Syafrizal Melwin, 2005, Pengantar Jaringan Komputer, Yogyakarta : Penerbit Andi. Tittel Ed, 2004, Schaum’s Outlines of Computer Networking, Yogyakarta: Penerbit Erlangga Wahana Komputer, 2009. PHP Programming, Yogyakarta: Penerbit Andi Wiji Nurastuti , 2011, Teknologi Perbankan, Yogyakarta: Penerbit Graha Ilmu. Endre Bangerter, David Gullasch dan Stephan Krenn . Cache Games, Bringing Access, Based Cache Attecks on AES to Practice.http://eprint.iacr.org diakses tanggal 3 Maret 2011 Membuat Website dengan PHP. http://www.ilmukomputer.com, diakses tanggal 3 Februari 2011. Tutorial Singkat MySQL.http://www.ilmukomputer.com, diakses tanggal 3 Februari 2011. Vincent Rijmen . "Practical-Titled Attack on AES-128 Using Chosen-Text Relations". http://eprint.iacr.org. diakses tanggal 3 Maret 2011
112