1. Pendahuluan Perkembangan teknologi informasi saat ini khususnya pada bidang transaksi online sebuah e-commerce sangat pesat. Hal ini terbukti dengan adanya riset yang telah dilakukan oleh DailySocial yaitu bahwa nilai transaksi perdagangan online atau e-commerce di Indonesia tahun 2012 mencapai 0,9 miliar Dollar Amerika Serikat (AS) atau sekitar 8,5 triliun Rupiah. Diprediksi pada tahun 2015, nilai ecommerce akan melonjak ke angka 10 miliar Dolar AS atau 95 triliun Rupiah. Pengguna internet di Indonesia sudah menyentuh angka sekitar 61 juta, sementara dari pengguna seluler mencapai 230 juta, dengan 20% menggunakan smartphone[1]. Hal tersebut diperkuat dengan pernyataan Kementrian Komunikasi dan Informatika bahwa pada tahun 2013 pasar e-commerce di Indonesia diprediksi mencapai Rp 130 triliun (kurang lebih 1 persen pendapatan dunia), setelah sebelumnya pada 2012 mencapai Rp 69 triliun. Pertumbuhan belanja e-commerce di Indonesia juga diperkirakan naik mencapai 71 persen, terbesar di dunia dengan nilai US$ 1,8 milar atau setara Rp 18 triliun pada tahun ini[2]. Berdasarkan faktafakta tersebut, maka dapat dikatakan bahwa pasar e-commerce sudah menjadi trend digunakan oleh penduduk Indonesia selain pasar konvensional. Salah satu e-commerce di Indonesia yang telah dibangun adalah Sistem Jejaring Klaster dengan domain iklaster.com. Sistem Jejaring Klaster merupakan sistem jejaring usaha bagi UMKM dan Koperasi berbasis Klaster, dimana aplikasi tersebut dipergunakan sebagai pusat promosi, informasi dan transaksi bisnis bagi UMKM dan Klaster di Indonesia. Sistem Jejaring Klaster tersebut dikembangkan menggunakan teknologi web yaitu framework CodeIgniter dan database MySql[3]. Pada saat ini, Sistem Jejaring Klaster juga telah dikembangkan menjadi mobile commerce (m-commerce) menggunakan teknologi mobile Android. Hal ini menuntut adanya fasilitas keamanan data untuk mengamankan data-data transaksi, antara lain transaksi pemesanan dan konfirmasi pembayaran oleh Pembeli pada aplikasi m-commerce tersebut, supaya dapat meningkatkan nilai kepercayaan para Pembeli sebagai pengguna Sistem Jejaring Klaster. Selain hal tersebut, fasilitas keamanan data pada transaksi online wajib perlu disediakan, sebagai contoh: transaksi penjualan online, transaksi keuangan, e-mail, file transfer, tanda tangan suatu kontrak dalam bentuk digital, informasi dari perusahaan untuk publik (sehingga tidak bisa diubah-ubah orang lain), dan transaksi bisnis lainnya. Teknologi dasar yang dipergunakan dalam pengamanan data untuk e-commerce, yakni cryptography[4]. Berdasarkan latar belakang tersebut, maka rumusan masalah penelitian ini antara lain pertama, bagaimana merancang sistem keamanan guna transmisi data transaksi bisnis pada aplikasi m-commerce berbasis client-server?. Kedua, bagaimana menerapkan algoritma AES pada sistem keamanan guna transmisi data pada aplikasi m-commerce berbasis client-server?. Ketiga, bagaimana mengimplementasikan sistem keamanan guna transmisi data dengan algoritma AES menggunakan bahasa pemrograman JAVA Android? Berdasarkan permasalahan tersebut, maka pada penelitian ini telah dirancang dan diimplementasikan algoritma AES (Advanced Encryption Standard) guna keamanan transmisi data pada aplikasi client-server studi kasus Sistem Jejaring Klaster. Aplikasi client diimplementasikan menggunakan teknologi mobile
Android, sedangkan aplikasi server diimplementasikan menggunakan bahasa pemrograman PHP. Basis Data yang digunakan adalah database MySQL Server. Algortima AES yang dipergunakan adalah AES 128 bit data masukkan dan 128 bit chipper key, supaya tidak banyak membutuhkan waktu proses enkripsi dan dekripsi yang dipergunakan untuk mengamankan data-data transaksi bisnis pada mcommerce Sistem Jejaring Klaster. Mengingat luasnya masalah yang akan dibahas, maka penelitian ini memiliki ruang lingkup, yaitu pertama, tidak membahas secara detil aplikasi mcommerce, tetapi penelitian berfokus pada pengamanan data menggunakan algoritma AES pada aplikasi m-commerce tersebut. Kedua, keamanan data pada aplikasi m-commerce hanya untuk transaksi pembelian atau pemesanan produk dan transaksi konfirmasi pembayaran yang dilakukan oleh pengguna yaitu Pembeli. Ketiga, proses bisnis pada aplikasi m-commerce berdasarkan aturan pada Sistem Jejaring Bisnis UMKM dan Koperasi Berbasis Klaster, dengan domain iklaster.com. Keempat, penelitian ini menggunakan aplikasi m-commerce berbasis client-server menggunakan teknologi mobile Android. Kelima, tidak membahas secara detail bahasa pemrograman JAVA Android dan database MySQL. Sedangkan manfaat yang diperoleh dari hasil penelitian ini antara lain pertama, bagi Pembeli, yaitu mendapatkan jaminan bahwa data-data transaksi bisnis tidak dapat diketahui oleh pihak-pihak lain yang tidak memiliki kepentingan. Kedua, bagi Pengelola, yaitu dapat mengamankan data-data transaksi bisnis pada aplikasi jual beli berbasis client server mengunakan Android. Ketiga, bagi Akademik, sebagai sarana pembelajaran yang dapat digunakan untuk penelitian lebih lanjut. 2. Tinjauan Pustaka Penelitian sebelumnya yang pernah dilakukan dengan judul Rancang Bangun Sistem Jejaring Klaster Berbasis Web Dengan Pendekatan Model ECommerce: Marketplace Concentrator[3]. Penelitian tersebut bertujuan merancang dan membangun sebuah e-commerce berbasis web bagi Klaster. Manfaat penelitian tersebut adalah bahwa telah tersedia basis data menggunakan MySQL Server yang menyimpan semua informasi pengguna, transaksi bisnis dan data-data produk milik Klaster, sehingga pada penelitian ini tidak perlu melakukan desain basis data. Sedangkan perbedaan dengan penelitian ini adalah pada sistem pengamanan data menggunakan AES 128 bit pada aplikasi m-commerce Sistem Jejaring Klaster yang telah dibangun menggunakan teknologi Java Android. Penelitian lain yang pernah dilakukan sebelumnya adalah Perancangan dan Implementasi Sistem Notifikasi Bisnis Pada Sistem Jejaring Klaster Berbasis Android[5]. Penelitian tersebut bertujuan untuk membangun sebuah aplikasi mobile berbasis Android untuk notifikasi bisnis yang mampu menampilkan informasi pemesanan produk dan pembayaran secara cepat kepada Pengguna yaitu Admin dan Anggota Klaster serta Pembeli. Dalam membangun sistem tersebut digunakan metode prototype sebagai metode pengembangan sistem notifikasi bisnis dengan teknologi push message notification. Pengembangan aplikasi ini menggunakan framework Phonegap dalam proses menampilkan notifikasi. Manfaat yang diperoleh dari penelitian tersebut adalah bahwa telah diperoleh tabel notifikasi pada
database server serta isi pesan dari notifikasi yaitu berupa kode order. Sedangkan perbedaannya adalah penelitian tersebut belum memiliki sistem keamanan data. Konsep dasar pengamanan data pada penelitian ini adalah algoritma kriptografi, disebut juga cipher yaitu aturan untuk enciphering dan deciphering, atau fungsi matematika yang digunakan untuk enkripsi dan dekripsi. Beberapa cipher memerlukan algoritma yang berbeda untuk enciphering dan deciphering. Keamanan algoritma kriptografi sering diukur dari banyaknya kerja yang dibutuhkan untuk memecahkan ciphertext menjadi plaintext tanpa mengetahui kunci yang digunakan. Apabila semakin banyak proses yang diperlukan berarti juga semakin lama waktu yang dibutuhkan, maka semakin kuat algoritma tersebut dan semakin aman digunakan untuk menyandikan pesan. Algoritma kriptografi terdiri dari fungsi dasar, yaitu pertama adalah Enkripsi, merupakan hal yang sangat penting dalam kriptografi yang merupakan pengamanan data yang dikirimkan terjaga rahasianya, pesan asli disebut plaintext yang dirubah menjadi kode-kode yang tidak dimengerti. Kedua, Dekripsi, merupakan kebalikan dari enkripsi, pesan yang telah dienkripsi dikembalikan ke bentuk asalnya (plaintext) disebut dengan dekripsi pesan. Ketiga, Kunci, yang dimaksud di sini adalah kunci yang dipakai untuk melakukan enkripsi dan dekripsi, kunci terbagi jadi 2 (dua) bagian yaitu kunci pribadi (private key) dan kunci umum (public key). Secara umum, proses enkripsi dan dekripsi dapat ditunjukkan pada Gambar 1.
Gambar 1 Proses Enkripsi dan Dekripsi[6]
Pada dasarnya terdapat dua jenis algoritma kriptografi berdasarkan kunci yang digunakan. Yang pertama adalah kriptografi dengan menggunakan secret key dan yang kedua adalah kriptografi yang menggunakan public key. Kriptografi public key menggunakan dua kunci yang berbeda dimana satu kunci digunakan untuk melakukan enkripsi dan kunci yang lain digunakan untuk melakukan dekripsi. Ada empat tujuan mendasar dari ilmu kriptografi yang merupakan aspek keamanan informasi atau data, yaitu pertama, Kerahasiaan (Confidentiality) yang berarti pesan (plaintext) hanya dapat dibaca oleh pihak yang memliki kewenangan. Kedua, Autentikasi (Authentication), artinya yaitu pengirim pesan harus dapat diidentifikasi dengan pasti, penyusup harus dipastikan tidak bisa berpura-pura menjadi orang lain. Ketiga, Integritas (Integrity), yaitu penerima pesan harus dapat memastikan bahwa pesan yang dia terima tidak dimodifikasi ketika sedang dalam proses transmisi data. Keempat, Nir-penyangkalan (Non-Repudiation) berarti pengirim pesan harus tidak bisa menyangkal pesan yang dia kirimkan[6]. Algoritma yang dipergunakan pada penelitian ini adalah algoritma AES. Algoritma AES merupakan algoritma kriptografi yang menggunakan kriptografi simetris atau block chiper simetris untuk proses enkripsi dan dekripsi. Proses enkripsi dan dekripsi algoritma AES memproses data masukan berukuran 128 bit menggunakan cipher key berukuran 128, 192 dan 256 bit. Algoritma AES bekerja
menggunakan substitusi, permutasi dan sejumlah putaran yang dikenakan pada tiap blok yang akan dienkripsi dan dekripsi. Penelitian ini menggunakan AES 128 bit yang beroperasi pada blok masukan data dengan ukuran 128 bit. Panjang kuncinya berukuran 4 word dan untuk tiap word-nya berukuran 32 bit, sehingga total kuncinya 128 bit. Untuk proses transformasinya sebanyak 10 putaran. Algoritma AES mempunyai 3 fungsi utama, yaitu pertama, Plaintext adalah array yang berukuran 16-byte, yang berisi data masukan. Kedua, Ciphertext adalah array state yang berisi hasil enkripsi. Ketiga, Kunci adalah array yang berukuran 16-byte, yang berisi kunci cipher (disebut juga cipher key)[7]. Garis besar algoritma AES ditunjukkan pada Gambar 2.
Gambar 2 Diagram Proses Enkripsi dan Dekripsi[7]
Gambar 2 menjelaskan bahwa garis besar algoritma AES yang beroperasi pada blok 128 bit dengan kunci 128 bit adalah sebagai berikut: Transformasi AddRoundKey, melakukan XOR antara state awal (plaintext) dengan cipher key. Tahap ini disebut juga initial round. Putaran sebanyak Nr–1 kali. Proses yang dilakukan pada setiap putaran adalah: a. Transformasi SubBytes adalah substitusi byte dengan menggunakan Tabel substitusi (S-Box). b. Transformasi ShiftRows adalah pergeseran baris-baris array state secara wrapping. c. Transformasi MixColumns adalah mengalikan setiap kolom array state dengan polinomial. d. Transformasi AddRoundKey adalah melakukan XOR antara state sekarang dengan round key. Final round, proses untuk putaran terakhir: Transformasi SubBytes, Transformasi ShiftRows dan Transformasi AddRoundKey Aplikasi yang dibangun pada penelitian menggunakan arsitektur clientserver. Arsitektur client-server dibangun untuk memenuhi lingkungan komputing dimana sejumlah PC, workstation, file server, printer, database server, web server, serta peralatan lainnya dapat saling terhubung via network[8]. Komponen dasar client-server dibentuk oleh tiga komponen dasar, yaitu client, middleware dan server. Hubungan antara ketiga komponen tersebut dapat dilihat pada Gambar 3.
Gambar 3 Komponen Dasar Client Server[9]
Aplikasi client-server memiliki ciri-ciri mendasar yang membedakannya dengan perangkat lunak terdistribusi lain[10], yaitu pertama berbasis layanan, yang berarti adalah server memberikan sejumlah layanan yang dibutuhkan dan diminta oleh client, antara lain: berbagi pakai berkas, data, peralatan pendukung dan lainlain. Kedua, sumber daya yang digunakan bersama, artinya server mengelola sejumlah sumber daya yang dimilikinya agar dapat diakses dan digunakan secara bersama-sama oleh terminal-terminal client yang terhubung pada server. Ketiga, hubungan dan interaksi antara client-server, artinya bahwa hubungan yang terjadi antara server dan client adalah one-to-many, yang berarti bahwa satu server melayani banyak client. Client selalu memulai interaksi dengan meminta layanan, sedangkan server menanti permintaan layanan secara pasif. Keempat, client tidak perlu mengetahui lokasi fisik server, sehingga server dapat terletak di berbagai tempat yang belum tentu diketahui oleh client. Walaupun demikian, client tetap dapat mengakses server untuk mendapatkan layanan sesuai kebutuhannya. Kelima, interoperabilitas perangkat lunak dan perangkat keras, berarti perangkat keras dan perangkat lunak yang digunakan oleh masing-masinhg client tidak harus sama dengan yang digunakan server, namun masih dapat saling terkoneksi antara satu dan yang lain. Keenam, pertukaran berbasis pesan, yang artinya adalah mekanisme dari client-server berdasar pada pertukaran pesan. Pesan yang dipertukarkan ialah permintaan layanan dan umpan balik dari permintaan layanan. Ketujuh, enkapsulasi layanan. Hal ini client tidak perlu mengetahui proses pengolahan permintaan yang terjadi dalam server sehingga client tidak dapat mengontrol proses pengolahan permintaan. Kedepalan, Skalabilitas, yaitu ukuran sistem client-server dapat diubah secara horisontal maupun vertikal. Pengubahan vertikal berarti berpindah ke server yang lebih besar atau lebih cepat mendistribusikan tugas melayani client ke beberapa server. Pengubahan horisontal berarti menambah atau mengurangi jumlah client. Kesembilan, konsistensi data, yaitu data hanya dikelola pada server pusat sehingga konsistensi dan data lebih terjamin dan biaya pemeliharaan menjadi lebih murah. Arsitektur client-server memiliki 2 (dua) jenis model, yaitu model two-tier dan model Three Tier. Model two-tier merupakan lingkungan client / server secara tradisional. Pada model ini suatu aplikasi dibagi menjadi dua entitas, yaitu aplikasi client dan aplikasi server. Dalam konfigurasi yang tipikal, pembagian ini juga meliputi pembagian perangkat lunak dan perangkat keras. Aplikasi client umumnya diletakkan pada workstation yang digunakan oleh user, sedangkan server merupakan suatu komputer yang diletakkan di bagian lain pada jaringan[11]. Model arsitektur dari two-tier terdiri dari dua bagian, yaitu pertama, Layanan Presentasi (Client Tier). Layanan presentasi atau logika antarmuka pengguna ditempatkan pada mesin client. Lapisan ini berfungsi untuk menangani interaksi user dengan
aplikasi. Kedua, Layanan Data (Data Source Tier). Layanan data merupakan sebuah database server atau DBMS (Database Management Systems) yang menyediakan data bagi lapisan layanan client atau presentasi. Skema model two tier dapat dilihat pada Gambar 4.
Gambar 4 Model Two Tier Client Server[11]
Model kedua yaitu model three-tier atau disebut juga multi-tier, dimana model ini merupakan langkah pengembangan dari two-tier client/server. Hal ini berarti, setiap aplikasi three-tier adalah client/server, namun tidak semua aplikasi client/server adalah three-tier. Model three-tier menambahkan komponen ketiga diantara aplikasi client dengan aplikasi server yang disebut middle tier atau layanan bisnis. Oleh karena itu, dalam model ini pemrosesan disebarkan di antara tiga lapisan atau lebih[11]. Layanan Presentasi (Client Tier), yaitu sebagaimana dalam two-tier, layanan ini berfungsi untuk menangani semua interaksi user dengan aplikasi. Namun demikian, layanan ini tidak langsung mengakses database server. Layanan Bisnis (Business Tier), merupakan layanan bisnis atau disebut dengan middle tier merupakan sebuah aplikasi yang memberlakukan aturan-aturan bisnis, memproses data, dan mengelola transaksi. Logika yang semula ditempatkan pada client dipindahkan ke dalam komponen lapisan bisnis ini. Layanan Data (Data Source Tier). Layanan data merupakan sebuah DBMS yang mewakili satu atau lebih penyimpanan data. Lapisan ini menyediakan permintaan data bagi aplikasi client dengan melalui lapisan layanan bisnis. Skema model three tier dapat dilihat pada Gambar 5..
Gambar 5 Model Three Tier Client Server[11]
Untuk menunjang fasilitas notifikasi pesan, maka pada penelitian ini menggunakan layanan Google Cloud Messaging (GCM). Google Cloud Messaging (GCM) adalah suatu layanan yang digunakan untuk mengirimkan data pesan singkat dari server ke pengguna pada perangkat Android. GCM dapat mengirimkan pesan singkat untuk memberitahu aplikasi bahwa terdapat data baru yang akan diambil dari server, seperti file film yang diunggah oleh seorang teman atau pesan yang berisi data sampai dengan 4 KB. Layanan GCM menangani semua aspek antrian pesan dan pengiriman ke aplikasi pengguna Android pada perangkat pengguna. GCM tidak peduli seberapa besar pesan yang dibutuhkan oleh pengguna dan tidak ada kuota[12].
3. Metode Perancangan Sistem Didalam melaksanakan penelitian, diperlukan beberapa tahapan seperti terlihat pada Gambar 6. Analisis Situasi
Perumusan Masalah
Pengumpulan Data
Analisis Kebutuhan
Pengembangan Sistem
Uji Sistem
Penulisan Laporan Akhir
Gambar 6 Tahapan Penelitian
Berdasarkan Gambar 6, tahapan pertama adalah analisis situasi, yaitu tahap yang menghasilkan sebuah latar belakang masalah yang dianggap layak untuk dilakukan penelitian, yaitu para pengurus dan anggota Klaster, pemilik Sistem Jejaring Klaster, serta Pengelola Aplikasi Sistem Jejaring KLaster membutuhkan sistem pengamanan untuk data-data transaksi yaitu pemesanan barang, konfirmasi pembayaran dan proses notifikasi pada aplikasi m-commerce Sistem Jejaring Klaster berbasis Android. Tahap kedua, perumusan masalah menghasilkan pemetaan masalah berdasarkan analisis situasi, antara lain bagaimana menerapkan algoritma AES sebagai sistem keamanan transmisi data pada proses transaksi pemesanan barang, proses konfirmasi pembayaran dan proses notifikasi transaksi. Tahap ketiga, pengumpulan data menghasilkan data-data yang terkait dengan transaksi pemesanan barang, konfirmasi pembayaran dan pesan notifikasi menggunakan layanan push message Google Cloud Messaging (GCM). Tahap keempat analisis kebutuhan, menghasilkan kebutuhan fungsionalitas dari sistem keamanan transmisi data menggunakan algoritma AES 128 bit pada aplikasi clientserver m-commerce Sistem Jejaring Klaster. Tahap kelima, pengembangan sistem, yaitu sistem keamanan data pada aplikasi client-server m-commerce Sistem Jejaring Klaster menggunakan metode Prototype Model. Tahap keenam, uji sistem. Setelah dilakukan pengembangan sistem, berikutnya adalah melakukan pengujian sistem. Pengujian sistem dilakukan untuk mengetahui performa dari penerapan algoritma AES pada aplikasi client-server m-commerce Sistem Jejaring Klaster. Tahap ketujuh, penulisan laporan akhir. Setelah dilakukan pengembangan dan pengujian sistem, tahap berikutnya adalah menarik kesimpulan yang dituangkan dalam bentuk laporan skripsi. Pada bagian ini juga diberikan saran-saran pengembangan untuk penelitian selanjutnya. Metode pengembangan sistem yang digunakan pada pembuatan aplikasi ini adalah model prototype. Model prototype merupakan suatu teknik untuk mengumpulkan informasi tertentu mengenai kebutuhan-kebutuhan informasi pengguna secara cepat. Dengan metode prototype ini pengembang dan pihak
pengelola Sistem Jejaring Klaster dapat saling berinteraksi selama proses pembuatan sistem. Secara lengkap, alur model prototype akan digambarkan seperti pada Gambar 7.
Gambar 7 Prototype Model[13]
Gambar 7, merupakan gambaran tahapan umum dari prototype model. Berikut adalah penjelasan dari tahap-tahap prototype model. Pada tahapan pertama, yaitu listen to customer atau information gathering tentang kebutuhan aplikasi yang akan dibangun. Pada tahap ini dilakukan wawancara dengan seorang pemilik dan 6 (enam) pengelola Sistem Jejaring Klaster. Pada tahap wawancara diperoleh informasi aplikasi m-commerce Sistem Jejaring Klaster membutuhkan sistem keamanan data pada proses-proses transaksi, antara lain transaksi pemesanan, konfirmasi pembayaran dan proses notifikasi transaksi bagi member Pembeli. Sistem keamanan pada transmisi data khususnya di dalam proses transaksi bisnis m-commerce dibutuhkan untuk meningkatkan kepercayaan publik atau masyarakat khususnya kepada member Pembeli Sistem Jejaring Klaster yang sudah mencapai 36 (tigapuluh enam) orang. Tahapan selanjutnya dalam metode prototype yaitu build/revise mock-up atau membangun aplikasi secara cepat. Pada tahap ini dilakukan pembuatan aplikasi secara cepat, lebih memfokuskan pada input output aplikasi sesuai dengan kebutuhan umum yang diketahui pada tahap pertama. Tahap ini menghasilkan 3 (tiga) prototipe. Hasil uji fungsionalitas prototipe I adalah bahwa data-data yang diamankan hanya pada proses transaksi pemesanan barang dan konfirmasi pembayaran oleh aktor Pembeli, sedangkan proses notifikasi pesan transaksi bagi Pembeli belum dilakukan. Pada Prototipe II, sistem keamanan data sudah dapat melakukan enkripsi dan dekripsi untuk isi pesan proses notifikasi transaksi bisnis bagi Pembeli. Tetapi pada prototype II penggunaan private key untuk fungsi algoritma AES 128 bit menggunakan data tetap berupa kata statis bertipe string. Hal ini tidak disetujui oleh pemilik Sistem Jejaring Klaster dimana mengusulkan private key diambil dari Id Registration GCM. Hasil penelitian berakhir pada prototype III dimana private key sudah menggunakan Id Registration GCM. Untuk dapat memastikan bahwa private key berukuran 128 bit, maka private key tersebut berupa hasil proses Hash MD5 Id Registration GCM. Tahap Customer Test-Drives Mock-Up. Pada tahap ini dilakukan uji dan evaluasi prototype oleh pengelola seperti tahap wawancara. Uji dan evaluasi prototype digunakan untuk mendapatkan umpan balik apakah aplikasi sudah sesuai dengan kebutuhan user. Sebelum dilakukan uji dan evaluasi oleh user, maka dilakukan pengujian menggunakan Blackbox model untuk mengetahui validitas
proses enkripsi dan dekripsi. Untuk mengetahui apakah sistem keamanan data pada level transmisi data melalui protocol http berhasil, maka dibutuhkan sebuah aplikasi spyware berupa wireshark. Evaluasi dilakukan dengan cara wawancara. Jika evaluasi prototype belum sesuai dengan kebutuhan user, maka dilakukan proses perbaikan dimulai kembali ke tahap awal dan dilanjutkan ke tahap berikutnya. Arsitektur aplikasi sistem keamanan pada transmisi data apliksai clientserver Sistem Jejaring Klaster menggunakan arsitektur three-tier. Dengan demikian dalam arsitektur ini terdapat tiga layer yaitu layer client, layer middle, dan layer server. Pada layer client disini terdapat aplikasi mobile berupa m-commerce yang digunakan oleh pembeli atau public (guest), Layer middle berupa layanan push message yang disediakan oleh GCM (google cloud messaging), sedangkan di dalam layer server berupa aplikasi yang dibangun menggunakan bahasa pemrograman php dengan framework CodeIgniter. Web Server Application Server
DBMS iKlaster
Request / Respon SQL
Chiper(Data Order)
Chiper(Data Chiper(Data Transaksi) Transaksi)
Chiper(Data Order)
Application Client
Gambar 8 Arsitektur Client-Server Sistem Keamanan Transmisi Data Pada Aplikasi Client Server Sistem Jejaring Klaster
Untuk mewujudkan keamanan pada transmisi data aplikasi client-server mcommerce Sistem Jejaring Klaster seperti pada Gambar 8, maka pada aplikasi client dan aplikasi server dibangun fungsi enkripsi dan fungsi dekripsi menggunakan algoritma AES 128 bit untuk proses transaksi pemesanan barang, proses konfirmasi pembayaran dan notifikasi transaksi. Pada proses notifikasi transaksi bisnis antara lain notifikasi Terima konfirmasi pembayaran Pembeli oleh Admin Klaster dan notifikasi Status Pengiriman dari Anggota Klaster kepada Pembeli, isi pesan notifikasi berupa chipertext hasil encode dari aplikasi server yang dikirim ke GCM dan diteruskan ke mobile device pembeli. Oleh aplikasi client isi pesan tersebut diproses decode menggunakan fungsi dekripsi untuk menjadi plaintext, sehingga aplikasi client dapat membaca data yang diterima dari GCM, yang kemudian melakukan request ke aplikasi server. Data request berupa chipertext dari aplikasi client tersebut kemudian dilakukan proses decode untuk dapat dibaca oleh aplikasi server sehingga aplikasi server dapat memberikan respon kepada aplikasi client. Pada prinsipnya, semua data dilakukan proses encode dan decode pada aplikasi server maupun client supaya data yang dikirimkan melalui media protocol http berupa data chipertext. Untuk dapat memperjelas proses keamanan transmisi data menggunakan algoritma AES pada aplikasi client-server m-commerce Sistem Jejaring Klaster, maka dapat dilihat pada Gambar 9 dan Gambar 10. Gambar 9 memperlihatkan bahwa saat proses request untuk transaksi pemesanan barang dan konfirmasi
pembayaran, maka data-data transaksi tersebut oleh aplikasi client dilakukan proses enkripsi sebelum di-posting ke server. Dengan demikian, data-data transaksi pada layer transmisi yaitu protocol http sudah berupa chipertext. Kemudian, chipertext tersebut didalam layer server oleh aplikasi server dilakukan proses dekripsi, sehingga aplikasi server dapat membaca data transaksi tersebut untuk dapat dilakukan proses selanjutnya. Client Application
Mulai
Data Transaksi
Enkripsi(Data Transaksi)
Chipertext
Transmission Layer
Selesai
Data Transaksi
Dekripsi(Chipertext)
Server Application
Gambar 9 Diagram Alir Enkripsi Dekripsi Data Transaksi Proses Request
Hal serupa juga dilakukan pada saat proses response yang dilakukan oleh aplikasi server seperti terlihat pada Gambar 10. Sebelum diambil oleh client, maka data-data transaksi diproses oleh fungsi enkripsi sehingga menjadi chipertext. Berdasarkan kedua diagram alir tersebut, maka algoritma AES diimplementasikan kedalam aplikasi server maupun aplikasi client pada fungsi enkripsi dan dekripsi. Server Layer
Mulai
Data Transaksi
Enkripsi(Data Transaksi)
Chipertext
Transmission Layer
Selesai
Data Transaksi
Dekripsi(Chipertext)
Client Layer
Gambar 10 Diagram Alir Enkripsi Dekripsi Data Transaksi Proses Response
Sistem keamanan pada transmisi data berbasis client-server dirancang menggunakan Unified Modelling Language (UML) sebagai pemodelan sistem. UML menyediakan beberapa diagram dalam proses perancangan sistem. Dalam sistem yang dibuat digunakan beberapa diagram, yaitu: use case diagram, activity diagram, sequence diagram dan class diagram. Use Case Diagram menggambarkan pola dari interkasi dan hubungan antara actor dengan use case. Terdapat tiga komponen di dalam use case diagram yaitu use case, package, dan relationship. Use case diagram yang dibuat pada penelitian ini meliputi Use Case Diagram aplikasi m-commerce dan aplikasi e-commerce. Use Case Diagram aplikasi m-commerce dapat dilihat pada Gambar 11.
Gambar 11 Use Case Diagram Aplikasi M-Commerce
Pada Gambar 11 menggambarkan aplikasi m-commerce memiliki dua actor yaitu Guest dan Pembeli. Guest memiliki kemampuan untuk register, masuk beranda portal, lihat daftar klater, lihat daftar produk, dan lihat detail produk. Sedangkan Pembeli memiliki kemampuan meliputi masuk beranda portal, lihat daftar klater, lihat daftar produk, lihat detail produk, beli produk, lihat keranjang, lihat daftar tagihan, lihat daftar konfirmasi, dan lihat daftar riwayat. Pada lihat keranjang, Pembeli secara langsung dapat melihat daftar order item, serta dapat memperbaharui jumlah pesanan pada order item dan menghapus order item. Disamping itu, pada keranjang terdapat fungsi checkout yang dapat digunakan pembeli untuk mengakhiri proses pemesanan dan membuat tagihan ke Pembeli. Pada daftar tagihan, Pembeli dapat melihat detail order, serta melakukan konfirmasi pembayaran dan pada daftar konfirmasi pembelian, dapat melihat daftar transaksi yang telah ditolak Admin Klaster, serta detail order. Sedangkan, jika transaksi diterima oleh Admin Klaster, maka order akan masuk pada daftar riwayat yang berisi status packaging/kirim yang dilengkapi menu lihat detail order dan set status order telah Diterima atau Belum Diterima. Untuk memperjelas case-case yang dimiliki oleh Admin Klaster pada proses konfirmasi pembayaran oleh Pembeli, dapat dilihat use case diagram pada Gambar 12. <<extend>> Terima <
> <<extend>> Admin Klaster
Konfirmasi Pembayaran
Daftar KOnfirmasi Pembayaran Tolak
<<extend>> <>
Anggota Klaster
Konfirmasi Packaging/Kirim
Set Status Dapat Diambil
<<extend>>
Daftar Order
<<extend>>
Set Status Packing
Set Status Kirim
Gambar 12 Use Case Diagram pada E-Commerce Proses Konfirmasi Pembayaran
Gambar 12 memperlihatkan bahwa konfirmasi pembayaran yang dilakukan Pembeli akan masuk kedalam Daftar Konfirmasi Pembayaran pada Admin Klaster. Oleh Admin Klaster, konfirmasi pembayaran Pembeli tersebut dapat diterima atau ditolak. Jika diterima, maka akan mengirim notifikasi berita ke Anggota Klaster. Berita tersebut berisi perintah packaging atau kirim tergantung dari jenis delivery produk yang ditentukan oleh Pembeli saat proses checkout. Isi berita berupa
perintah packaging, maka set status Dapat Diambil dilakukan oleh Anggota Klaster jika jenis delivery adalah COD (Cash On Delivery). Isi berita berupa perintah Kirim, maka set status Packaging dan Kirim dilakukan oleh Anggota Klaster jika jenis delivery adalah Kirim. Activity diagram menggambarkan aliran aktivitas dalam sistem yang sedang dirancang, aliran masing-masing case, decision yang mungkin terjadi, dan bagaimana aliran tersebut berakhir. Activity diagram yang digunakan pada penelitian ini meliputi proses konfirmasi pembayaran oleh Admin Klaster pada ecommerce dan konfirmasi pembayaran oleh Pembeli pada m-commerce. Activity diagram konfirmasi pembayaran oleh Pembeli pada m-commerce dapat dilihat pada Gambar 13.
Gambar 13 Activity Diagram Proses Konfirmasi Pembayaran pada M-Commerce
Pada Gambar 13 memperlihatkan bahwa proses konfirmasi pembayaran oleh Pembeli, diawali dengan adanya proses login. Jika login benar, maka actor Pembeli dapat memilih menu tagihan untuk dapat menampilkan daftar tagihan yang belum akan dikonfirmasi. Setelah memilih salah satu tagihan, maka proses konfirmasi pembayaran diawali dengan memasukkan data pembayaran. Setelah dianggap data pembayaran benar oleh Pembeli, maka dapat dilanjutkan ke proses posting data pembayaran ke server. Sebelum di-posting ke server, terlebih dahulu data pembayaran tersebut diproses enkripsi sehingga menjadi data chipertext. Data pembayaran berbentuk chipertext tersebut, lalu dikirim ke server. Oleh aplikasi server, data pembayaran berbentuk chipertext diproses dekripsi untuk mengembalikan menjadi plaintext data pembayaran, setelah itu disimpan kedalam basis data. Setelah tersimpan, aplikasi server akan merubah status konfirmasi pembayaran tagihan tersebut menjadi 1 untuk dapat melakukan proses pengiriman notifikasi konfirmasi pembayaran Pembeli kepada Admin Klaster. Selanjutnya, Activity diagram konfirmasi pembayaran oleh Admin Klaster pada e-commerce dapat dilihat pada Gambar 14. Fokus penelitian ini adalah beberapa aktivitas proses setelah even proses Diterima atau Ditolak, yaitu pada proses enkripsi data pesan notifikasi yang berupa id_order. Id_order diproses enkripsi karena data tersebut yang akan dikirim ke client melalui layanan GCM. Setelah pesan notifikasi tersebut sampai pada client, maka aplikasi client
melakukan proses dekripsi chipertext pesan, sehingga aplikasi client dapat mengetahui id_order yang akan dipergunakan untuk melakukan request detil data id_order kepada aplikasi server. Untuk menjamin kerahasiaan data, id_order juga di-encode oleh aplikasi client dalam proses request detil data order. Begitu juga data detil order, oleh aplikasi server di-encode sebelum dikirim ke client.
Gambar 14 Activity Diagram Konfirmasi Pembayaran pada E-Commerce
Sequence diagram menggambarkan interaksi antar obyek di dalam dan di sekitar sistem (termasuk pengguna, display, dan sebagainya) berupa message yang digambarkan terhadap waktu. Sequence diagram terdiri antar dimensi vertikal (waktu) dan dimensi horizontal (objek-objek yang terkait). Sequence diagram yang digunakan pada penelitian ini meliputi konfirmasi pembayaran oleh Admin Klaster pada e-commerce dan Pembeli pada m-commerce.
Gambar 15 Sequence Diagram Konfirmasi Pembayaran oleh Pembeli pada Aplikasi MCommerce
Sequence Diagram konfirmasi pembayaran oleh Pembeli pada m-commerce dapat dilihat pada Gambar 15, dimana menggambarkan aliran proses dan interaksi antar class program yang terjadi, yaitu sebagi berikut:
1. Pada langkah pertama yang dilakukan saat proses konfirmasi pembayaran, pembeli memasukkan data pembayaran pada halaman konfirmasi yang ditampilkan oleh class ConfirmationActivity. 2. Kemudian class ConfirmationActivity menjalankan fungsi encrypt() yang berada di class MCrypt untuk mendapatkan hasil encode dari data pembayaran. 3. Setelah data pembayaran berhasil di-encode, maka aplikasi client akan mengirimkan data ke aplikasi server dengan mengirimkan request HTTP POST. 4. Request tersebut akan menjalankan fungsi yang ada di class controller, yaitu kelas Order() pada aplikasi server. 5. Data yang diterima aplikasi server berupa data yang telah di-encrypt, maka supaya data dapat dibaca, maka class Order memanggil fungsi decrypt() yang ada di class Mod_Order. 6. Fungsi decrypt() akan mengembalikan hasil kembalian berupa data yang telah di-decode dalam bentuk String. 7. Setelah data berhasil didapatkan maka class Order akan memanggil fungsi updateKonfirmasiPembayaran() di class Mod_Order untuk memasukkan data pembayaran ke database. 8. Setelah data berhasil dimasukkan ke database, maka Pembeli akan mendapatkan pesan pemberitahuan atau notifikasi bahwa proses tersebut berhasil. Class diagram menggambarkan interaksi antar class serta atribut-atribut yang melekat pada class tersebut. Pada penelitian ini, memiliki 2 (dua) class diagram, yaitu class diagram aplikasi server dan class diagram aplikasi client. Aplikasi server berfungsi untuk melakukan layanan kepada aplikasi client guna proses transaksi pengambilan maupun pengiriman data dengan DBMS Server, dimana DBMS Server yang digunakan adalah MySql. Class yang bertugas melakukan kelola data ke DBMS Server tersebut adalah class Order dan class Mod_Order. Selain hal itu, juga memiliki fungsi untuk proses enkripsi dan dekripsi data, yaitu pada class Mod_Mcrypt berdasarkan perintah dari class Order. Untuk dapat memperjelas relasi antar class pada aplikasi server, maka dapat dilihat pada Gambar 16.
Gambar 16 Class Diagram Aplikasi Server
Sedangkan relasi antar class pada aplikasi client, dapat dilihat pada Gambar 17. Hal utama dari penelitian ini adalah merancang sistem pengamanan transmisi data-data transaksi pada aplikasi client yaitu m-commerce. Sebagai contoh, pada
Gambar 17 terlihat bahwa untuk dapat mengamankan data berupa pesan notifikasi melalui GCM, maka disediakan class MCrypt yang bertugas melakukan proses enkripsi dan dekripsi isi pesan notifikasi. Dengan demikian, client dapat melakukan proses dekripsi pesan notifikasi sebelum pesan ditampilkan kepada actor. Untuk semua transaksi pada m-commerce, khususnya proses checkout dan konfirmasi pembayaran, dirancang beberapa class untuk melakukan transaksi tersebut, yaitu class ConfirmationActivity, class PostSecureTask dan class NetworkUtility.
Gambar 17 Class Diagram Aplikasi Client
4. Hasil dan Pembahasan Aplikasi yang dibangun pada penelitian ini diimplementasikan pada aplikasi Android sebagai aplikasi client, dan aplikasi Web sebagai aplikasi server. Kedua aplikasi tersebut memiliki peranan penting yang saling terkait, yang digunakan oleh user yang berbeda. Pada aplikasi Android akan digunakan oleh Pembeli untuk melakukan proses pemesanan dan konfirmasi pembayaran, sedangkan pada aplikasi Web digunakan Admin Klaster untuk menyetujui konfirmasi pembayaran dari Pembeli. Aplikasi client yaitu aplikasi berbasis Android yang dibangun pada penelitian ini, dikembangkan menggunakan bahasa pemrograman Java, serta memanfaatkan framework Android SDK yang didapat melalui situs resmi pengembang Android. Aplikasi Android dibangun menggunakan Eclipse Juno sebagai alat untuk menulis kode hingga men-deploy kode menjadi sebuah file berekstensi apk, yang nantinya dapat digunakan untuk memasang aplikasi pada perangkat Android. Pada project Android Application yang dibangun dengan Eclipse Juno menggunakan tiga pustaka yaitu Android Support v7, Google Play Service, dan Jackson untuk mendukung pengembangan aplikasi ini. Pustaka Android Support v7 digunakan supaya aplikasi dapat menampilkan actionBar pada sistem operasi Android 2.3.3, pustaka Google Play Service digunakan supaya aplikasi dapat memanfaatkan layanan Google Cloud Messaging, sedangkan pustaka Jackson digunakan supaya aplikasi dapat mengkonversi data yang diterima server dalam bentuk JSON. Untuk membangun aplikasi client berupa m-commerce dengan bahasa pemrograman Java pada aplikasi mobile Android, maka IDE yang digunakan pada penelitian ini yaitu eclipse Juno, harus memiliki plugin Android Development Tools
(ADT) untuk menghubungkan dengan Android SDK. Pada Android SDK tersebut, algoritma AES 128 bit dapat diimpelementasikan, dengan cara mengimport class yang berada pada package javax.crypto. Aplikasi client pada penelitian ini pada prinsipnya merupakan aplikasi mcommerce Sistem Jejaring Klaster. Penerapan algoritma AES 128 bit, hanya dipergunakan untuk mengamankan data-data transaksi antara lain checkout, konfirmasi pembayaran oleh Pembeli, dan pengiriman pesan notifikasi Diterima atau Ditolak konfirmasi pembayaran Pembeli dari Admin Klaster. Tampilan keranjang belanja actor Pembeli dapat dilihat pada Gambar 18, dan transaksi checkout pada Gambar 19.
Gambar 18 Tampilan Keranjang Belanja Gambar 19 Tampilan Transaksi Checkout
Sedangkan, tampilan transaksi konfirmasi pembayaran oleh actor Pembeli dapat dilihat pada Gambar 20, dan Gambar 21 merupakan tampilan notifikasi pesan konfirmasi pembayaran pada actor Pembeli dari Admin Klaster.
Gambar 20 Tampilan Transaksi Konfirmasi Pembayaran oleh Pembeli
Gambar 21 Tampilan Pesan Notifikasi Konfirmasi Pembayaran Pembeli
Aplikasi server yang dibangun pada penelitian ini berbasis Web, dikembangkan menggunakan Bahasa pemrograman PHP, dan menggunakan framework CodeIgnitier. Pada bagian ini menjelaskan bahwa hasil penelitian ini, berdasarkan hasil perancangan dan pengembangan pada prototipe ketiga atau terakhir dari metode pengembangan sistem, yang sesuai dengan kebutuhan. Pada
bagian ini, pembahasan hanya berfokus pada proses enkripsi dan dekripsi menggunakan algoritma AES, guna keamanan pada transmisi data melalui protokol http atau pada port 80. Pembahasan implementasi enkripsi dan dekripsi pada Konfirmasi Pembayaran oleh Pembeli pada Aplikasi Client. Data yang berada di jaringan selama proses transmisi dari aplikasi client menuju aplikasi server, saat melakukan melakukan konfirmasi pembayaran diubah menjadi sebuah pesan chiper yang dienkripsi menggunakan algoritma AES, dengan kunci public yang bersifat statis yang disimpan dalam aplikasi server maupun client, dan kunci private yang diambil dari id GCM pengguna yang telah di hash dalam format MD5. Id GCM dari setiap pembeli dapat diperoleh melalui proses request ke layanan Google Cloud Messaging yang dilakukan oleh aplikasi Android, yang nantinya akan disimpan pada perangkat Android dan server. Perintah yang digunakan untuk mendapatkan id GCM dapat dilihat pada kode program 1. Kode Program 1 Request ID GCM 1. 2. 3. 4.
if (gcm == null) { gcm = GoogleCloudMessaging.getInstance(context); } regid = gcm.register(SENDER_ID);
Pada kode program 1 pada baris kode ke-1 menunjukkan aplikasi pertamatama memeriksa kondisi objek bernama gcm yang merupakan objek dari kelas GoogleCloudMessaging. Jika objek tersebut bernilai null maka aplikasi akan menginisialisasi objek tersebut sebagai sebuah objek baru yang dapat dilihat pada baris kode ke-2. Kemudian objek tersebut memanggil fungsi bernama register dengan memasukkan parameter bernama SENDER_ID berupa id project yang didapat dari Google API Console yang nantinya akan mengembalikan nilai berupa id gcm yang akan disimpan pada variabel bernama regid bertipe String yang dapat dilihat pada baris kode ke-4. Proses tersebut berjalan ketika aplikasi tidak menemukan id gcm pada shared preference maupun pada basis data di server serta ditempatkan pada proses login maupun register sebagai pembeli pada aplikasi Android. Setelah id gcm berhasil didapatkan dan disimpan pada perangkat Android maupun basis data di server, maka proses enkripsi dan dekripsi dapat dilakukan karena kunci private telah dimiliki. Proses enkripsi pada aplikasi client digunakan saat mengirimkan parameter pada request HTTP POST ke aplikasi server ketika melakukan konfirmasi pembayaran. Perintah yang digunakan untuk melakukan enkripsi pada aplikasi client dapat dilihat pada kode program 2. Kode Program 2 Fungsi Enkripsi Pada Aplikasi Client 1. cipher.init(Cipher.ENCRYPT_MODE, keyspec, ivspec); 2. return bytesToHex(cipher.doFinal(padString(text).getBytes()));
Pada kode program 2, pada baris kode ke-1 menunjukkan objek bernama cipher yang merupakan objek dari kelas Cipher memanggil fungsi yaitu init() dengan parameter berupa mode enkripsi, kunci private, dan kunci public untuk menginisialisasi spesifikasi kunci yang dibutuhkan untuk memulai proses enkripsi.
Kemudian pada baris kode ke-2 objek chipper memanggil fungsi doFinal() dengan parameter teks yang akan dienkripsi untuk mendapatkan hasil enkripsi yang akan menghasilkan data yang bertipe byte. Data dalam bentuk byte tersebut akan dikembalikan berupa String dengan memanggil fungsi bytesToHex() .Setelah hasil enkripsi diperoleh maka aplikasi akan mengirimkan pesan chipper tersebut ke aplikasi server melalui request HTTP POST. Setelah aplikasi menerima pesan chiper dari aplikasi client, maka aplikasi server harus mendekripsi pesan tersebut supaya dapat membaca parameter yang didapat dari request HTTP POST dari aplikasi client. Perintah yang digunakan untuk melakukan dekripsi pada aplikasi server dapat dilihat pada kode program 3. Kode Program 3 Fungsi Dekripsi Pada Aplikasi Server 1. 2. 3. 4. 5. 6. 7. 8.
function decrypt($iv,$key,$code) { $code = $this->hex2bin($code); $td = mcrypt_module_open('rijndael-128', '', 'cbc', $iv); mcrypt_generic_init($td, $key, $iv); $decrypted = mdecrypt_generic($td, $code); mcrypt_generic_deinit($td); mcrypt_module_close($td); return utf8_encode(trim($decrypted));}
Pada kode program 3, pada baris kode ke-1 menunjukkan fungsi dekripsi berada pada fungsi decrypt dengan parameter kunci public, kunci private, dan teks yang akan didekripsi. Parameter teks terebut kemudian diubah menjadi sebuah data binary dengan memanfaatkan fungsi hex2bin() yang nantinya hasilnya akan disimpan pada suatu variable bernama $code yang ditunjukkan pada baris kode ke2. Setelah data tersebut diperoleh maka module dari suatu alogaritma yaitu “rijndael-128” dengan menggunakan mode “cbc” akan dibuka dengan fungsi mcrypt_module_open yang nantinya akan menghasilkan kembalian berupa encryption descriptor untuk objek td. Kemudian pada baris kode ke-3, aplikasi menginisialisasi setiap buffer yang akan digunakan untuk proses dekripsi dengan fungsi mcrypt_generic_init sebelum melakukan proses dekripsi dengan fungsi mdecrypt_generic yang ditunjukkan pada baris kode ke-4. Pada fungsi mcrypt_generic, hasil dekripsi dapat dihasilkan dalam bentuk String, dengan memasukkan parameter berupa encryption descriptor, dan data yang akan didekripsi seperti yang dapat dilihat dari baris kode ke-5. Setelah proses dekripsi selesai dilakukan, maka hasil dekripsi akan ditampung pada variabel bernama decrypted bertipe String dan aplikasi akan menutup setiap buffer dan module yang digunakan untuk proses dekripsi yang ditunjukkan pada baris kode ke-6 sampai baris kode ke-7. Setelah buffer dan module berhasil ditutup maka hasil dekripsi yang didapat dikembalikan. Implementasi enkripsi dan dekripsi pada Konfirmasi Pembayaran oleh Admin Klaster, yaitu data yang berada di jaringan selama proses mengirim pesan notifikasi dari aplikasi server ke Google Cloud Messaging, maupun dari Google Cloud Messaging ke aplikasi client berupa pesan chiper. Pesan notifikasi akan dikirim ketika admin klaster telah menyetujui atau menolak konfirmasi pembayaran dari pembeli. Perintah yang digunakan untuk melakukan dekripsi pada aplikasi server dapat dilihat pada kode program 4. Kode Program 4 Fungsi Enkripsi Pada Aplikasi Server
1. 2. 3. 4. 5. 6. 7.
function encrypt($iv,$key,$str) { $td = mcrypt_module_open('rijndael-128', '', 'cbc', $iv); mcrypt_generic_init($td, $key, $iv); $encrypted = mcrypt_generic($td, $str); mcrypt_generic_deinit($td); mcrypt_module_close($td); return bin2hex($encrypted);}
Pada kode program 4, pada baris kode ke-1 menunjukkan fungsi dekripsi berada pada fungsi encrypt dengan parameter kunci public, kunci private, dan teks yang akan dienkripsi. Kemudian module dari suatu alogaritma yaitu “rijndael-128” dengan menggunakan mode “cbc” akan dibuka dengan fungsi mcrypt_module_open yang nantinya akan menghasilkan kembalian berupa encryption descriptor untuk objek td seperti yang dapat dilihat pada baris kode ke2. Kemudian aplikasi menginisialisasi setiap buffer yang akan digunakan untuk proses dekripsi dengan fungsi mcrypt_generic_init sebelum melakukan proses dekripsi dengan fungsi mdecrypt_generic yang ditunjukkan pada baris kode ke-3. Pada fungsi mcrypt_generic, hasil enkripsi dapat dihasilkan dalam bentuk String, dengan memasukkan parameter berupa encryption descriptor, dan data yang akan dienkripsi. Setelah proses enkripsi selesai dilakukan, maka hasil dekripsi akan ditampung pada variabel bernama encrypted bertipe String pada baris kode ke-4 dan aplikasi akan menutup setiap buffer dan module yang digunakan untuk proses dekripsi yang ditunjukkan pada baris kode ke-5 sampai baris kode ke-6. Setelah buffer dan module berhasil ditutup maka hasil dekripsi yang didapat dikembalikan. Setelah pesan untuk notifikasi sudah terenkripsi, maka aplikasi server akan mengirimkan request PUSH ke layanan Google Cloud Messaging. Pesan yang dikirimkan ke layanan Google Cloud Messaging berupa pesan chipper, hingga nantinya akan diterima aplikasi client. Maka, pesan tersebut harus didekripsi supaya aplikasi client dapat membaca pesan notifikasi dari layanan Google Cloud Messaging. Perintah yang digunakan untuk melakukan dekripsi pada aplikasi client dapat dilihat pada kode program 5. Kode Program 5 Fungsi Dekripsi Pada Aplikasi Client 1 2 3 4 5 6 7 8 9 10 11 12 13
cipher.init(Cipher.DECRYPT_MODE, keyspec, ivspec); byte[] decrypted = cipher.doFinal(hexToBytes(code)); if (decrypted.length > 0) { int trim = 0; for (int i = decrypted.length - 1; i >= 0; i--) if (decrypted[i] == 0) { trim++;} if (trim > 0) { byte[] newArray = new byte[decrypted.length - trim]; System.arraycopy(decrypted, 0, newArray, 0, decrypted.length-trim); decrypted = newArray;} } return decrypted;
Pada kode program 5, pada baris kode ke-1, menunjukkan objek bernama cipher yang merupakan objek dari kelas Cipher memanggil fungsi yaitu init() dengan parameter berupa mode enkripsi, kunci private, dan kunci public, untuk menginisialisasi spesifikasi kunci yang dibutuhkan untuk memulai proses dekripsi. Kemudian pada baris kode ke-2, objek chipper memanggil fungsi doFinal(), dengan parameter teks yang akan didekripsi untuk mendapatkan hasil enkripsi yang akan disimpan pada variabel dc yang bertipe byte. Kemudian pada baris kode ke-3
sampai baris kode ke-12, aplikasi menghapus spasi yang ditemukan pada hasil dekripsi tersebut. 5. Uji Sistem Pengujian yang pertama dengan menggunakan metode black-box, dengan hasil yang dapat dilihat pada Tabel 1.
No. 1. 2. 3. 4. 5. 6. 7.
8.
Tabel 1 Hasil Pengujian Black-box Hasil yang Proses Hasil yang Muncul diharapkan Enkripsi data checkout Data terenkripsi Data terenkripsi Dekripsi data checkout Data terdekripsi Data terdekripsi Enkripsi data konfirmasi Data terenkripsi Data terenkripsi pembayaran Dekripsi data konfirmasi Data terdekripsi Data terdekripsi pembayaran Enkripsi pesan notifikasi Data terenkripsi Data terenkripsi konfirmasi pembayaran diterima Dekripsi pesan notifikasi Data terdekripsi Data terdekripsi konfirmasi pembayaran diterima Enkripsi pesan notifikasi Data terenkripsi Data terenkripsi konfirmasi status packaging / kirim Dekripsi pesan notifikasi Data terdekripsi Data terdekripsi konfirmasi status packaging / kirim
Simpulan Valid Valid Valid Valid Valid Valid Valid
Valid
Pengujian yang kedua digunakan untuk membuktikan bahwa data yang melalui media transmisi yaitu protocol http pada aplikasi client-server, merupakan data hasil proses enkripsi menggunakan algoritma AES. Pengujian ini menggunakan aplikasi spyware bernama tPacketCapture karena diinstall pada aplikasi mobile Android. Hasil capture proses checkout, dapat dilihat pada Gambar 22. Sedangkan, capture hasil posting data transaksi konfirmasi pembayaran Pembeli dapat dilihat pada Gambar 23.
Gambar 22 Hasil Capture Proses Checkout Gambar 23 Hasil Capture Proses Konfirmasi Pada Aplikasi Client Pembayaran Pada Aplikasi Client
Kedua gambar tersebut membuktikan bahwa penerapan algoritma AES 128 bit sudah dapat diimpelemntasikan. Algoritma AES tersebut, sudah dapat mengamankan data-data yang melalui media transmisi pada transaksi-transaksi bisnis aplikasi client-server m-commerce Sistem Jejaring Klaster. 6.
Simpulan Berdasarkan hasil dari perancangan dan implementasi penerapan algoritma AES 128 bit guna keamanan transmisi data pada aplikasi client-server, maka diperoleh kesimpulan yaitu pertama, didalam menjaga kerahasiaan data dilakukan dengan membangun fungsi-fungsi enkripsi dan dekripsi di sisi server maupun di sisi client, sehingga tercapai konsep kerahasiaan data (confidenciallity). Kedua, dengan menggunakan id GCM sebagai privat key pada algoritma AES, digunakan untuk otentikasi transaksi bisnis pada aplikasi client. Ketiga, Untuk menjamin panjang kunci hingga 128 bit, maka id GCM terlebih dahulu dikenai proses hash md5. Saran pengembangan pada sistem keamanan data, privat key dapat diperpanjang hingga 256 bit agar lebih aman. Untuk pengamanan pada transmisi data, algoritma dapat diganti dengan menggunakana algoritma yang terbaru, dengan cara hanya mengubah fungsi enkripsi dan dekripsi di sisi client maupun di sisi server. 7. [1]
[2]
[3]
[4]
[5]
Pustaka Perdana, J. 2013. Transaksi Online Indonesia 2015 Diprediksi Rp 95 triliun Waktunya Brand Besar Geluti E-Commerce. http://themarketeers.com/archives/transaksi-online-indonesia-2015-diprediksirp95-triliun-waktunya-brand-besar-geluti-e-commerce.html. Diakses tanggal 24 Maret 2014. Tobing, D. 2014. Pertumbuhan Internet Banking dan e-Commerce di Indonesia : ATM dan CoD Mendominasi. http://startupbisnis.com/pertumbuhan-internet-banking-dan-e-commercedi-indonesia-atm-dan-cod-mendominasi/. Diakses tanggal 24 Maret 2014 Suprihadi, Hudiono, R., Sinatra, L. 2013. Rancang Bangun Sistem Jejaring Klaster Berbasis Web Dengan Pendekatan Model E-Commerce: Marketplace Concentrator. Jurnal Aiti: Vol. 10 No. 1 Februari 2013. FTIUKSW. Salatiga. Widayanti, R. 2012, Konsep Keamanan E-Commerce. http://www.esaunggul.ac.id/article/konsep-keamanan-e-commerce-2/. Diakses tanggal 24 Maret 2014 Kristanto, R., Suprihadi, Tanone, R. 2013. Perancangan dan Implementasi Sistem Notifikasi Bisnis Pada Sistem Jejaring Klaster Berbasis Android, Skripsi FTI UKSW. Salatiga.
[6] [7]
[8]
[9] [10]
[11]
[12]
[13]
Kurniawan, Yusuf. 2004. Kriptografi Keamanan Internet dan Jaringan Telekomunikasi. Bandung : Informatika. Munir, Rinaldi. 2004. Advanced Encryption Standard (AES). www.informatika.org/~rinaldi/.../MakalahIF505430708089.pdf. Diakses tanggal 7 Maret 2014. Basofi, A. 2013. Database Client / Server. http://lecturer.eepisits.edu/~ariv/Database%202/Pertemuan-10%20(Database%20ClientServer).pdf. Diakses tanggal 25 Maret 2014. Budi, S. 2006. Client Server dan Sistem Terdistribusi. Yogyakarta: Penerbit Andi. Siagian, FA. 2007. Perancangan Komunikasi Client Server dan Sistem Database. http://repository.usu.ac.id/ bitstream/123456789/ 11859/1/09E00061.pdf. Diakses tanggal 21 Maret 2014. Pujiyono, dkk, 2004, Perbandingan Model Two-Tier dengan Three-Tier dalam Asritektur Client/Server untuk Mengolah Perintah Query pada Aplikasi Database. http://journal.uii.ac.id/index.php/Snati/article/viewFile/1810/1589. Diakses tanggal 26 Maret 2014. Anonim. 2012. Bab 2 Landasan Teori. http://library.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00346IF%20Bab2001.pdf. Diakses tanggal 25 Maret 2014. Pressman, 2001, Software Enginering: A Practicioner’s Approach 5th Edition, America: Mc. Graw Hill.