Konferensi Nasional Sistem & Informasi 2016
1
STT Ibnu Sina Batam , 11 – 13 Agustus 2016
Implementasi TOTP (Time-Based One-Time Password) Untuk Meningkatkan Keamanan Transaksi E-Commerce Ibnu Daqiqil Id, Sukamto, Evfi Mahdiyah Universitas Riau Kampus Binawidya Jl. HR. Soebrantas Km 12.5 km Panam Pekanbaru 28293 Telp (+62) 761-63273, Fax (+62) 761-63273 e-mail:
[email protected] Abstrak Penelitian ini bertujuan untuk meningkatkan keamanan transaksi e-commerce menggunakan metode TOTP (Time-Based One-Time Password). Sebagian besar website atau aplikasi e-commerce hanya mengandalkan username dan password untuk melindungi akun dan transaksi mereka. Jika username dan password tersebut dapat dicuri oleh pihak lain, maka dengan mudah pihak tersebut dapat menggunakan username dan password tersebut untuk bertransaksi. Salah satu solusi yang ditawarkan adalah menggunakan metode two-factor authentication. Dengan metode tersebut, Sistem e-commerce tidak hanya bergantung pada apa yang diketahui pengguna (username dan password) tetapi juga membutuhkan apa yang dimiliki pengguna (token). TOTP adalah sebuah mekanisme two-factor authentication dimana password hanya dapat digunakan satu kali dalam kurun waktu tertentu. Pengguna harus menginstall aplikasi TOTP client di ponsel mereka sebagai token untuk bertransaksi. Kata kunci: Time-Based One-Time Password, two-factor authentication, Security, Google Authenticate, E-commerce 1. Pendahuluan E-Commerce dapat diartikan sebagai sebuah kegiatan menjual-belikan barang atau jasa melalui internet [1] [2]. Onno W. Purbo mendefinisikan E-Commerce sebagai satu set dinamis teknologi, aplikasi, dan proses bisnis yang menghubungkan perusahaan, konsumen, dan komunitas tertentu melalui transaksi elektronik dan perdagangan barang, pelayanan, dan informasi yang dilakukan secara elektronik [3]. Perkembangan aktifitas perdagangan melalui internet ini telah berkembang pesat dalam beberapa tahun terakhir. Salah satu keuntungan dalam e-commerce adalah informasi yang beragam dan mendetail yang dapat diperoleh konsumen dibandingkan dengan perdagangan konvensional tanpa harus bersusah payah pergi ke banyak tempat, cukup menggunakan internet [4]. Melalui internet konsumen dapat memperoleh aneka informasi barang dan jasa dari berbagai situs yang beriklan dalam berbagai variasi merek lengkap dengan spesifikasi harga, cara pembayaran, cara pengiriman, bahkan fasilitas pelayanan track and trace yang memungkinkan konsumen melacak tahap pengiriman barang yang dipesannya [5]. Berdasarkan penelitian yang dilakukan oleh BMI Research tentang Online Shopping Outlook 2015 mengungkapkan bahwa peluang pertumbuhan pasar online di Indonesia masih sangat besar seiring dengan meningkatnya jumlah pengguna internet. Pada tahun 2014, pengguna belanja online mencapai 24 % dari jumlah pengguna internet di Indonesia [6]. Riset tersebut di lakukan di 10 kota besar di Indonesia terhadap 1.213 orang dengan usia antara 18-45 tahun melalui metode phone survey. Selain itu, Kementrian Komunikasi dan Informatika (Kemkominfo) memprediksi bahwa pengguna internet di Indonesia akan terus meningkat. Pada tahun 2015 jumlah pengguna internet sekitar 150 juta pengguna [7]. Besarnya jumlah penguuna internet tentunya akan meningkatkan jumlah transaksi e-commerce. Semakin bersarnya pengguna e-commerce tersebut, maka perlu adanya sebuah perlindungan terhadap pengguna e-commerce di Indonesia. Metode transaksi e-commerce tidak mempertemukan pelaku usaha dan konsumen secara langsung serta konsumen juga tidak dapat melihat barang yang dipesan berpotensi menimbulkan permasalahan yang merugikan konsumen. Faktor keamanan transaksi seperti keamanan metode pembayaran merupakan salah satu hal urgen bagi konsumen. Masalah ini penting sekali diperhatikan karena terbukti mulai bermunculan kasus-kasus dalam e-commerce yang berkaitan dengan keamanan transaksi, mulai dari pembajakan kartu kredit, stock exchange fraud, banking fraud, akses ilegal ke sistem informasi (hacking) perusakan web site sampai dengan pencurian data [8] [9]. Keamanan E-Commerce harus meliputi sejumlah peraturan, perangkat dan mekanisme autentikasi sumber data dan informasi serta penjaminan proses transaksi [10]. Saat ini sebagian besar website atau
L-2
2 aplikasi e-commerce menggunakan username dan password merupakan satu-satunya elemen yang digunakan untuk meng-autorisasi pengguna [2]. Apabila username dan password berhasil dicuri maka hal tersebut akan menjadi bencana kepada pengguna. Oleh karena itu diperlukan sebuah upaya untuk meningkatkan keamanan pengguna. Salah satunya dengan menggunakan teknik two-factor authentication [10]. Dengan metode tersebut, Sistem e-commerce tidak hanya bergantung pada apa yang diketahui pengguna (username dan password) tetapi juga membutuhkan apa yang dimiliki pengguna (token). TOTP adalah sebuah mekanisme two-factor authentication dimana password hanya dapat digunakan satu kali dalam kurun waktu tertentu [11]. Pengguna harus menginstall aplikasi TOTP client di ponsel mereka sebagai token untuk bertransaksi. 2. Dasar Teori 2.1. OTP (One Time Password) One Time Password (OTP) adalah sebuah algoritma yang menghasilkan password yang hanya dapat digunakan satu kali [12]. Dibandingkan dengan password biasa OTP dianggap lebih aman karena password terus berubah, yang berarti bahwa itu tidak rentan terhadap serangan ulangan atau password yang dicuri. Dalam konteks autentikasi, OTP biasanya digunakan sebagai mekanisme otentikasi tambahan makanya OTP sering disebut sebagai dua faktor otentikasi (two-factor authentication/second factor authentication) [12]. Metode otentikasi utama tetap menggunakan username dan password, tetapi untuk membuat dapat bertransaksi anda membutukan otentikasi tambahan, disitulah peran OTP. Kombinasi password OTP hanya dapat digunakan sekali. Ada dua cara utama untuk memperoleh One-Time Password ini: Token hardware: misalnya perangkat token, yang dapat Anda plug ke port USB Anda dan akan secara otomatis ketik kode OTP untuk Anda. Token perangkat lunak: seperti Google Authenticator, dalam hal ini aplikasi Android sederhana menampilkan Anda kode OTP yang dapat Anda masukkan pada form login Anda. Password OTP dibuat secara acak atau semi-acak. Hal tersebut penyerang sulit untuk menebak nilai yang dihasilkan. Selain itu OTP juga menggunakan fungsi hash yang dapat digunakan untuk menghasilkan nilai tetapi sulit untuk ditebak dan dibalikkan. 2.2. HOTP (Hmac-based One-Time Password algorithm) Algoritma HOTP (Hmac-based One-Time Password algorithm) bergantung kepada dua hal: kunci rahasia bersama dan faktor bergerak (moving factor). Kunci rahasia bersama adalah sebuah string yang diketahui oleh kedua belah pihak, sedangkan faktor bergerak adalah sebuah bilangan penghitung yang selalu bertambah apabila sebuah transaksi dilakukan [13]. Algoritma ini bersifat event-based, artinya setiap kali OTP baru dihasilkan, faktor bergerak akan bertambah, maka password kemudian dihasilkan harus berbeda setiap kali. Algoritma ini menggunakan algoritma HMAC-SHA-1. HMAC adalah salah satu tipe dari Message Authentication Code (MAC) yang berbasis fungsi kriptografi hash satu arah [14]. MAC sendiri adalah fungsi satu-arah yang menggunakan kunci privat dalam pembangkitan nilai hash. Seperti fungsi MAC yang lain, HMAC ini digunakan untuk memeriksa integritas data dan autentifikasi dari sebuah pesan yang dikirimkan, tapi di lain pihak tidak mendukung prinsip non-repudiation. Hal ini dikarenakan pemilikan kunci privat yang bisa diketahui oleh beberapa orang, sehingga tidak memungkinkan untuk mengetahui orang yang membangkitkan nilai hash yang sebenarnya. Adapun bentuk umum dari HOTP adalah HOTP(K,C) = Truncate(HMAC-SHA-1(K,C)) Dimana Truncate merupakan fungsi untuk mengkonversi nilai HMAC-SHA-1 menjadi nilai HOTP dan K adalah Kunci rahasia bersama dan C adalah faktor bergerak. Nilai HOTP akan diperlakukan sebagai big-endian. Berikut ini adalah contoh ekstraksi dari the HMAC-SHA-1 berupa array byte. int offset = hmac_result[19] & 0xf ; int bin_code = (hmac_result[offset] & 0x7f) << 24 | (hmac_result[offset+1] & 0xff) << 16 | (hmac_result[offset+2] & 0xff) << 8 | (hmac_result[offset+3] & 0xff) ; ------------------------------------------------------------ L-2
3 | Byte Number | ------------------------------------------------------------|00|01|02|03|04|05|06|07|08|09|10|11|12|13|14|15|16|17|18|19| ------------------------------------------------------------| Byte Value | ------------------------------------------------------------|1f|86|98|69|0e|02|ca|16|61|85|50|ef|7f|19|da|8e|94|5b|55|5a| 2.3. TOTP (Time-based One-Time Password algorithm) Algoritma TOTP mirip dengan HOTP. Algoritma ini juga bergangtung kepada kunci rahasia bersama dan faktor bergerak (moving factor), tetapi proses generate moving factor berbeda [11]. Pada TOTP moving factor akan terus berganti tergantung pada waktu generate. Proses penghitungannya sama dengan HOTP. Adapun bentuk umum dari TOTP adalah TOTP = HOTP (K, T) Dimana K adalah Kunci rahasia bersama dan T adalah sebuah nilai integer yang merepresentasikan waktu. T dihitung menggun akan fungsi: =
− 0
Tcurrent adalah waktu saat ini dalam detik sedangkan T0 disepakati pada saat inisialiasi awal, biasanya nilainya diset nol (T0=0). Parameter X menentukan berapa lama sebuah TOTP valid. Standar yang digunakan adalah 30. Jadi dengan mengisi X=30, kita mengizinkan sebuah OTP hanya valid selama 30 detik. 3. Metodelogi Penelitian Dalam Pengembangan sistem, akan digunakan pendekatan berorientasi objek dengan Unified Approach (UA). UA adalah suatu metodologi pengembangan sistem berbasis objek yang menggabungkan proses dan metodologi yang telah ada sebelumnya dan menggunakan UML sebagai standar pemodelannya. Proses dan tahapan yang ada dalam UA merupakan proses-proses terbaik yang diambil dari metode objek yang telah diperkenalkan oleh Booch, Rumbaugh, dan Jacobson. Selain itu, langkah-langkah yang ada dalam UA sangat iteratif dan memudahkan pengembang sistem dalam memahami sistem sehingga UA dijadikan sebagai metodologi pengembangan sistem dalam penelitian ini. 4. Hasil dan Pembahasan 4. 1. Analisis Ada dua aktifitas utama yang dilakukan pengguna yaitu melakukan aktivasi perangkat token dan proses verifikasi token. Aktifitas tersebut dituangkan dalam use case diagram pada gambar 1. Aktivasi perangkat token dapat dilakukan dilakukan dengan dua cara yaitu pemindaian terhadap QRCode atau memasukkan kunci bersama secara langsung.
Gambar 1. Use Case Diagram L-2 Implementasi TOTP (Time-Based One-Time Password) Untuk Meningkatkan Keamanan Transaksi E-Commerce (Ibnu Daqiqil Id)
4 Pengguna dapat menggunakan aplikasi Google Authenticator, freeOTP atau TOTP Authenticator sebagai token. Pengguna dapat menginstall salah satu aplikasi tersebut pada smartphone mereka dan smartphone tersebut berubah menjadi perangkat token yang dapat menghasilkan password untuk bertransaksi. 4. 2. Desain Berdasarkan hasil analisis maka disusunlah class diagram pada gambar 2. Ada dua kelas yang diperlukan agar semua proses yang dibutuhkan dapat berjalan. Adapun kelas tersebut adalah TOTPAuthenticator dan Base32Static. Kelas TOTPAuthenticator berfungsi untuk menggenerate kunci rahasia bersama, mendapatkan URL QRCode, dan memvalidasi TOTP password.
Gambar 2. Class Diagram Fungsi validasi memiliki sebuah parameter yaitu toleransi. Sebuah password TOTP hanya berlaku selama 30 detik jadi parameter konfigurasi digunakan untuk membantu pengguna yang “lambat”. Artinya jika nilai konfigurasi berisi satu maka sistem akan membuatkan dua password TOTP. Password yang pertama sesuai waktu sekarang, password yang kedua adalah password TOTP sebelumnya. Dengan kata lain maka sebuah TOTP dapat bertahan selaman 30 detik. 4. 3. Implementasi Berikut ini adalah implementasi dari class yang telah dirancang. Gambar 3 menunjukkan halaman registrasi pin TOTP. Halaman ini berfungsi untuk memasukkan kunci bersama kedalam Google Authenticate dengan cara melakukan pemindaian terhadap QRCode di sebelah kanan. Apabila QRCode telah dimasukkan maka masukkanlah password TOTP yang ada dilayar anda dan tekan tombol aktivasi token (gambar 3).
Gambar 3. Registrasi Token TOTP Setelah pin berhasil diregistrasikan maka sistem akan mengirim SMS untuk melakukan aktivasi terhadap token yang telah didaftarkan (gambar 4).
L-2
5
Gambar 4. Aktivasi Token TOTP Untuk melakukan transaksi maka pengguna harus memasukkan password yang telah dibuat oleh Google Authenticate untuk melanjutkan transaksi (Gambar 5).
Gambar 5. Validasi TOTP pada transaksi E-Commerce 5. Kesimpulan Untuk meningkatkan keamanan harus disemua aspek, mulai dari peraturan, pengguna hingga teknologi. Dengan mengimplementasikan TOTP di sistem E-commerce, keamanan transaksi dapat ditingkatkan. Titik kelemahan dari mekanisme TOTP adalah pada proses registrasi dan aktivasi Token TOTP sehingga diperu mekanisme tambahan untuk membuktikan bahwa pengguna tersebut valid. Salah satu cara yang dapat dilakukan adalah menggunakan SMS ataupun konfirmasi melalui E-mail. Selain itu resiko serangan lainnya adala media penyimpanan kunci bersama haruslah aman dan terenkripsi. Dengan TOTP, kita juga dapat mengurangi resiko serangan phising dan eavesdropping. Daftar Pustaka [1] N. M. A. Al-Slamy, "E-Commerce security," International Journal of Computer Science and Network Security, vol. VIII, no. 5, pp. 340-344, 2008. [2] Y. Wen and C. Zhou, "Research on E-Commerce Security Issues," International Seminar on Business and Information Management, 2008. [3] O. W. Purbo and A. A. Wahyudi, Mengenal eCommerce, Jakarta: Elex Media Komputindo, 2001. [4] O. Hartono, "Undang-undang ITE sebagai Sarana Pencegahan Bisnis Curang Melalui Sarana eCommerce dalam Era Globalisasi," Zenit, vol. 1, no. 2, pp. 147-159, 2012. L-2 Implementasi TOTP (Time-Based One-Time Password) Untuk Meningkatkan Keamanan Transaksi E-Commerce (Ibnu Daqiqil Id)
6 [5] P. Sen and R. A. Ahmed, "A Study on E-Commerce Security Issues and Solutions," International Journal of Computer and Communication System Engineering (IJCCSE), vol. II, no. 3, pp. 425430, 2015. [6] D. M. Outlook, "eCommerce in Indonesia," 2016. [Online]. Available: https://www.statista.com/outlook/243/120/ecommerce/indonesia#. [Accessed 29 May 2016]. [7] "Statistik Kementrian Komunikasi dan Informatika," Kementrian Komunikasi dan Informatika, 2016. [Online]. Available: http://statistik.kemenkominfo.go.id. [Accessed 30 May 2016]. [8] S. Mubeen, S. N. and S. K. , "Double Securing from Hackers in B2B E-commerce," I.J. Information Technology and Computer Science, vol. I, pp. 67-73, 2016. [9] R. Damodaram, "Study On Phishing Attacks And Antiphishing Tools," International Research Journal of Engineering and Technology (IRJET), vol. III, no. 1, pp. 700-705, 2016. [10] B. Schneier, "Two-Factor Authentication: Too Little, Too Late," Communication OF THE ACM, vol. 48, no. 2, p. 27, 2005. [11] D. M'Raihi, S. Machani, M. Pei and J. Rydell, "TOTP: Time-Based One-Time Password Algorithm," Internet Request for Comments , May 2011. [12] N. Haller, "The S/KEY one-time password system," 1995. [13] D. M'Raihi, M. Bellare, F. Hoornaert, D. Naccache and O. Ranen, "HOTP: An HMAC-Based OneTime Password Algorithm," The Internet Society, Network Working Group. RFC4226, December 2005. [14] H. Krawczyk and M. Bellare, "HMAC: Keyed-Hashing for Message Authentication," February 1997. [Online]. Available: https://tools.ietf.org/html/rfc2104. [Accessed 28 May 2016].
L-2