Implementasi Sistem Pengamanan E-Commerce menggunakan Schnorr Digital Signature Samsul Huda, Amang Sudarsono, Mike Yuliana Politeknik Elektronika Negeri Surabaya Kampus PENS, Jalan Raya ITS Sukolilo, Surabaya 60111 Tel: (031) 594 7280; Fax: (031) 594 6114 Email:
[email protected],
[email protected],
[email protected]
Abstrak
Keamanan infrastruktur e-commerce menjadi masalah penting dalam keberlangsungan e-commerce, khususnya di indonesia. Cryptography menyediakan aspek keamanan kerahasian, integritas, otentikasi dan nirpenyangkalan dalam proses transaksi. Pada penelitian ini didesain sebuah aplikasi e-commerce dengan sistem keamanan pada layer trnsport dan layer aplikasi. Keamanan pada layer transport diimplementasikan protokol SSL(Secure Socket Layer) sedangkan di sisi layer aplikasi untuk keabsahan pengguna diimplementasikan proses digital signature yang merupakan salah satu metode public key cryptography dimana kunci yang digunakan untuk proses enkripsi dan dekripsi berbeda nilai, salah satunya adalah metode hash dan cryptography dengan algoritma Schnorr. Hasil yang didapatkan pada penelitian ini adalah sebuah sistem transaksi online yang aman dengan penerapan digital signature Schnorr pada layer aplikasi untuk validasi keabsahan pengguna dan keamanan data transaksi. Dengan level security 2048 bit dan SHA-256, rata-rata waktu eksekusi yang dibutuhkan dalam pembangkitan kunci 89,24 menit, tanda tangan 36,7 mili detik dan verifikasi 72,3 mili detik. Total waktu yang dibutuhkan untuk satu kali transaksi penjualan adalah 224 mili detik. Kata kunci:e-commerce, cryptography, digital signature, schnorr.
1. Pendahuluan E-commerce mulai diminati masyarakat. Masyarakat dapat dengan mudah memilih serta membeli barang secara online melalui layanan e-commerce, bahkan pembayarannya pun dapat dilakukan secara elektronik. Keamanan infrastruktur e-commerce menjadi masalah penting dalam keberlangsungan e-commerce, khususnya di indonesia. Kriptografi menjadi solusi sistem keamanan kerahasian, integritas, otentikasi dan nirpenyangkalan dalam proses transaksi[1]. Kriptografi kunci simetri adalah salah satu teknik kriptografi yang yang menggunakan kunci rahasia yang sama untuk mengenkripsi dan mendekripsi pesan, dua pihak yang saling berkomunikasi harus saling mempercayai dan merahasiakan kunci. Hal ini mengakibatkan timbulnya permasalahan bagaimana cara mendistribusikan kunci. Untuk mengatasi permasalahan distribusi kunci tersebut, berkembanglah teknik kriptografi kunci publik yang memungkinkan pengguna berkomunikasi secara aman tanpa perlu berbagi kunci rahasia. Pada teknik ini setiap user atau setiap perangkat dalam berkomunikasi memiliki sepasang kunci, yakni kunci publik dan kunci privat, dan satu set operasi. Kunci publik tidak bersifat rahasia dan digunakan untuk mengenkripsi pesan, sedangkan kunci privat bersifat rahasia dan digunakan untuk mendekripsi pesan. Aplikasi lain dari kriptografi kunci publik, yang dapat memberikan aspek keamanan adalah tanda tangan digital(digital signature)[2]. Penandatanganan pesan dapat dilakukan dengan dua cara, yaitu dengan mengenkripsi pesan atau dengan cara menggunakan fungsi hash dan kriptografi kunci publik. Penandatanganan pesan dengan cara mengenkripsi menggunakan kriptografi kunci publik dapat memberikan fungsi kerahasian pesan, otentikasi, dan nirpenyangkalan. Kerahasian pesan terjamin, karena sebelum dilakukan penandatanganan, pesan telah dienkripsi. Pada penelitian sebelumya Ashvini a/p subramaniam,[3] “A Study on Elliptic Curve Digital Signature Algorithm(ECDSA) for Reliable E-Commerce Applications.” Pada penelitian ini dilakukan studi mengenai penerapan algoritma ECDSA untuk aplikasi e-commerce sebagai salah satu sistem keamanan yang dapat diandalkan. Pada penelitian ini dihasilkan bahwa digital signature menggunakan algoritma ECDSA merupakan solusi keamanan e-commerce yang dapat diandalkan karena performa yang tinggi dengan ukuran kunci yang sangat kecil, tingkat komputasi rendah dan proses pembangkitan kunci yang cukup cepat. Rizal rahardian,[4]
“Implementasi Public Key Cryptography untuk Aplikasi Transaksi Online” Pada penelitian ini dilakukan pengamanan data pembelian dan pembayaran yang dikirimkan ke server e-commerce, kemudian penjual meneruskan data pembayaran ke server bank. Pengamanan data dalam transaksi dilakukan menggunakan metode kriptografi RSA untuk enkripsi data dan algoritma kriptografi DSA untuk proses digital signature. Hasil dari penelitian ini masih belum sempurna, yaitu sistem enkripsi ini hanya bekerja apabila panjang kunci yang digunakan tidak lebih dari 8 byte atau 64 bit, dimana konsep sistem masih memiliki kekurangan dalam penanganannya dan belum memenuhi standar. Standar yang digunakan NIST (National Institute of Standards and Technology) untuk panjang kunci RSA yang dianggap cukup aman menggunakan kunci dengan panjang 2048 bit. Penelitian ini dilakukan untuk memastikan keabsahan pengguna serta data atau informasi dalam transaksi online dengan enkripsi data dan digital signature menggunakan algoritma schnorr sehingga tercipta aplikasi ecommerce dengan sistem pengamanan data transaksi yang handal. 2. Algoritma Schnorr Algoritma tanda tangan digital Schnorr memanfaatkan kesulitan beberapa permasalahan logaritma diskrit untuk dipecahkan sebagai dasar dari kemanananya. Algoritma schnorr merupakan algoritma kriptografi yang cukup sederhana namun memberikan keamanan yang efisien dan cocok untuk diimplementasikan dalam aplikasi transaksi pembayaran, seperti electronic commerce, electronic payment, electronic toll collection dan lainnnya[5][6]. Berdasarkan Tabel 1 menunjukkan data tentang Rekomendasi standarisasi penggunaan algoritma kriptografi NIST tahun 2012 [7], maka dalam sistem ini dirancang dengan mengimplementasikan algoritma schnorr dengan properti sistem keamanan yang masuk kategori aman antara tahun 2011- 2030 adalah dengan level security 2048 bit dan fungsi hash SHA-256. Tabel 1. Rekomendasi NIST tahun 2012 [7] Date
Asymetric
Ellipic Curve
2010 (Legacy)
1024
160
2011-2030
2048
224
> 2030
3072
256
>> 2030
7680
384
>>> 2030
15360
512
Hash SHA-1 SHA-224 SHA-256 SHA-384 SHA-512 SHA-224 SHA-256 SHA-384 SHA-512 SHA-256 SHA-384 SHA-512 SHA-384 SHA-512 SHA-512
Proses penandatanganan dengan algoritma schnorr terbagi menjadi tiga bagian: pembangkitan kunci, penandatanganan, dan verifikasi[5][6]. a.
Pembangkitan kunci (Key Generation) Langkah – langkah yang dilakukan untuk membangkitkan kunci adalah sebagai berikut: 1) Memilih bilangan prima p, dengan syarat p ≥ 22048 2) Memilih bilangan prima q, dengan syarat q|p-1 dan q ≥ 2160 3) Memilih g dari Zp* dan g ≠ 1. Zp* adalah sekumpulan bilangan yang kongruen dan relatif prima dengan p (atau multiplicative group of integers modulo p) untuk beberapa bilangan prima p. 4) Memilih x dari Zq 5) Menghitung y ≡ gx(mod p) ……………(2.1) 6) Kunci publiknya adalah y dan kunci privatnya adalah x.
b.
Penandatanganan (Signing) Langkah – langkah untuk penandatanganan suatu pesan atau dokumen adalah sebagai berikut: 1) Menentukan fungsi hash yang akan digunakan (misalnya h) 2) Memilih k secara acak dari Zq 3) Menghitung r = gk(mod p) ……………(2.2) 4) Menghitung e = h(r, M) dengan M adalah pesan ……………(2.3) 5) Menghitung s = k – xe (mod q) ……………(2.4) 6) Tanda tangannya adalah S = (e, s)
c.
Verifikasi (Verifying) Untuk melakukan verifikasi, maka perlu menghitung r’ = gSye(mod p) Tanda tangan valid jika e = h(r’, M)
……………(2.5) ……………(2.6)
3. SHA-256 Fungsi hash dalam kriptografi adalah fungsi hash yang berupa sebuah algoritma yang mengambil sejumlah blok data dan mengembalikan bit string berukuran tetap[1]. String yang dihasilkan tersebut merupakan hash value. Perubahan yang dilakukan pada data walaupun sangat kecil, sengaja ataupun tidak, akan menyebabkan perubahan yang sangat banyak pada hasil hash value. Bahkan hash value dapat menjadi berbeda sama sekali. Data yang di hash sering disebut pesan, hash value disebut digest. Hash umumnya disajikan dalam bentuk bilangan hexadecimal, yaitu kombinasi antara angka 0-9 dengan huruf a hingga f. Menurut jenisnya SHA dapat dispesifikasikan menjadi 4 bagian yaitu: SHA-1, SHA-256, SHA-384, dan SHA-512 dengan properti seperti pada Tabel 2. Tabel 2. Properti Fungsi Hash SHA[1] Algorithm
Message Size (bits)
Block Size (bits)
Word Size (bits)
SHA-1 SHA-256 SHA-384 SHA-512
<264 <264 <2128 <2128
512 512 1024 1024
32 32 64 64
Message Digest Size (bits) 160 256 184 512
4. Alat dan Bahan Tabel 3. Spesifikasi Hardware/Software Spesifikasi Software Bank Server
O/S CPU RAM Software
E-commerce Server
Client
O/S CPU RAM Software O/S CPU RAM
Keterangan Java 1.7.045 Apache tomcat 7.0.47 MySQL V.5.5.32 Window 7 32-bit Intel core i3 -370M 2.4 GHz 2GB DDR3 Java 1.7.045 Apache tomcat 7.0.47 MySQL V.5.5.32 Window 7 64-bit Intel core i3 -370M 2.4 GHz 2GB DDR3 Java 1.7.045 Window 7 32-bit Intel core i3 -370M 2.4 GHz 2GB DDR3s
Security2 (bits) 80 128 192 256
Pada penelitian ini digunakan tiga buah PC (Personal Computer). PC 1 ini bertindak sebagai Server Bank, PC 2 sebagai Server E-Commerce, dan PC lain sebagai client. Spesifikasi dari peralatan yang digunakan dalam penelitian ini ditunjukkan pada Tabel 3. 5. Desain Sistem
Gambar 1. Desain Sistem Sistem e-commerce yang dirancang melibatkan tiga komponen, yaitu: 1. Buyer(Pembeli) 2. Seller(Penjual) 3. Bank Aplikasi sistem e-commerce yang dirancang meliputi : 1. Protokol Registrasi 2. Protokol Transaksi 3. Protokol Pembayaran A.
Protokol registrasi
(a)
(a)
(c )
(b)
seller
buyer
Gambar 2. Protokol registrasi
a.
Seller dan buyer melakukan registrasi sebagai nasabah member ke bank(a) secara online dengan memberikan personal data berupa username, password, email, alamat dan nomer telepon. Bank sebagai pihak yang dipercaya kredibilitasnya dan memiliki otoritas untuk membangkitkan kunci dan mendistribusikannya ke nasabah.
b.
Bank memberikan balasan konfirmasi atas registrasi nasabah (seller dan buyer) berupa kunci privat dan kunci publik untuk masing-masing nasabah (b)(c) yaitu (Pks, Sks) untuk seller dan (Pkb, Skb) untuk buyer.
B.
Protokol transaksi Seller dan buyer melakukan proses transaksi. Barang belanjaan serta alamat pengirim dan mengirmkannya ke server e-commerce sebagai data informasi pembelian. Kemudian, dilakukan signing terhadap data pembelian dengan asumsi sudah terjadi pertukaran public key antara seller dengan buyer. Signature beserta data pembelian dikirim ke server e-commerce.
[Pks,Sks,Pkb]
[Pkb,Skb,Pks]
seller
buyer
C || signature
M = d(C, SkS) Verifification = Verify Schnorr(M, Pkb) [True]
C = e(M, PkS) Signature = Sign Schnorr(M, Skb) *Data pesanan (M)
Gambar 3.. Protokol transaksi Dalam protokol ini, informasi berupa pesan pembelian(M) dienkipsi(e) oleh buyer dengan enkripsi AES-128 bit menghaslkan chiper(c). Kemudian dilakukan signing terhadap chiper dengan algoritma schnorr dan menghasilkan signature, signature dan chiper dikirim ke seller. Seller melakukan pemisahan terhadap chiper dan signature. Chiper didekripsi dengan shared key menggunakan AES-128 bit dan diperoleh pesan asli. Seller melakukan verifikasi terhadap pesan asli dan signature menggunakan public key buyer. C.
Protokol pembayaran Setelah verifikasi terhadap informasi pemesanan dinyatakan valid, buyer melakukan pembayaran terhadap barang pembelian pada bank yang telah ditunjuk oleh seller. Seller melakukan pengecekan atas pembayaran yang dilakukan oleh buyer. Apabila dinyatakan valid, maka seller mengirim pesan pemberiyahuan bahwa transaksi atas pembelian barang yang dimaksud berhasil dan barang akan dikirim ke alamat buyer berupa bill pembelian.
(a)
(b) Gambar 4.
(a) Protokol pembayaran seller dengan bank (b) Protokol pembayaran seller dengan buyer
6. Hasil Pada penelitian ini dilakukan pengujian terhadap implementasi algoritma enkripsi AES pada sistem login. Pesan masuk berupa password user. Dari grafik gambar 5, diketahui bahwa dengan pesan berukuran 0-16 byte dihasilkan chiper dengan ukuran 24 byte. Selanjutnya terjadi penambahan bit chiper setiap masukan pesan kelipatan 16 byte. Hal ini menyatakan bahwa kriptografi AES menghasilkan ciphertext dengan ukuran blok chiper 4 word, dimana 1 word = 32 bit, sehinggan ukuran blok chiper setara dengan 16 byte.
Perbandingan Ukuran chiper dengan ukuran plaintext
Ukuran chiper (Byte)
70 60 50 40 30 20 10 0 1
6
11
16
21
26
31
36
41
46
Ukuran Pesan (Byte) Gambar 5. Grafik pengaruh ukuran pesan terhadap ukuran chiper Dari hasil implementasi schnorr digital signature dalam sistem e-commerce dengan penggunaan key size 2048 bit menghasilkan performa seperti gambar 6.
Perbandingan Rata-rata Waktu Proses Digital Signature 10000000 1000000
5354460,2 242925,7
Waktu (ms)
100000 13252,2 10000
512 1024
1000 100
36,7 12,4
10
3,9
72,3 20,7
2048
5,7
1 Key Generation
Signing
Verifying
Gambar 6. Performa keysize 2048 bit Selain implementasi sistem keamanan pada layer aplikasi, pada layer transport di implementasikan SSL(Secure Socket Layer) untuk mengamankan segala aktifitas yang terjadi pada jaringan seperti gambar 7. Dengan SSL segala aktifitas terenkripsi dan tidak dapat terdeteksi.
Gambar 7. Implementasi Sistem Keamanan pada TCP/IP Layer Dalam pengujian terhadap waktu eksekuasi dalam proses signing, transmisi data ke server dan waktu verifying dalam satu kali transaksi digunakan perhitungan sebagai berikut: Total waktu eksekusi = TS+TT+TF ……………(7.1) Keterangan, TS : Total waktu signing TT : Total waktu transmisi TF : Total waktu verifying Tabel 4. Hasil pengujian total waktu eksekusi sistem Perhitungan
Properti Waktu Signing buyer Total Waktu signing Waktu Signing seller Waktu transmisi pesan pembelian + signature ke seller Total waktu transmisi Waktu transmisi pesan bill +signature ke buyer Waktu Verifying seller Total waktu verifying Waktu Verifying buyer Total waktu eksekusi (ms)
Waktu (ms) 38 36 3 2 73 72 224
TS (Total waktu signing) Terdiri dari waktu signing yang dilakukan oleh buyer serta seller. Waktu signing buyer terhitung setelah pemilihan barang selesai hingga sebelum check out. Waktu signing seller terhitung setelah bill pembelian selesai dibuat sampai proses signing berhasil. TT : Total waktu transmisi Terdiri dari waktu transmisi pesan pembelian + signature dari buyer ke seller serta waktu transmisi pesan bill+signature dari seller ke buyer. waktu transmisi pesan pembelian + signature dari buyer ke seller terhitung setelah proses signing hingga berhasil disimpan dalam database. waktu transmisi pesan bill +signature dari seller ke buyer terhitung setelah signature berhasil dibuat hingga berhasil tersimpan dalam database. TF : Total waktu verifying Terdiri dari waktu verifying yang dilakukan oleh buyer serta seller.Waktu verifying buyer terhitung setelah pesan bill beserta signature berhasil diambil hingga proses verifikasi berhasil. Waktu verifying seller terhitung setelah pesan pembelian beserta signature berhasil diambil hingga proses verifikasi berhasil.
7. Kesimpulan
1. 2.
Dari hasil penelitian ini, dapat diambil kesimpulan sebagai berikut : Total waktu eksekusi schnorr digital signature dengan level security 2048 bit, yang terdiri dari key generation, signing dan verifying adalah 5354,6 detik atau 89,24 menit. Tercipta aplikasi e-commerce dengan sistem pengamanan data transaksi yang handal dengan satu kali transaksi penjualan membutuhkan waktu 224 ms dengan spesifikasi perangkat yang digunakan.
Referensi [1] [2] [3] [4] [5] [6] [7]
W. Stalling. Network Security Essentials: Applications and Standards, Fourth edition, Prentice-Hall, Inc., 2011. Hongjie Zhu, Daxing Li. Research on Digital Signature in Electronic Commerce. Proceedings of the International MultiConference of Engineers and Computer Scientists 2008 Vol I IMECS 2008. 2008. Ashvivi a/p Subrahim, “A Study on Elliptic Curve Digital Signature Algorithm(ECDSA) for Reliable E-Commerce Applications”, Proceedings of Smart Computing Review, Vol.2, no.1, February 2012. Rizal Rahardian, “ Implementasi Public Key Cryptography untuk Aplikasi Transaksi Online ”, PENS-ITS Srabaya 2012. Konstantinos Mastakes, “Implementation of Schnorr Signature Scheme,” University of Athens, Athens, Greece January 2013.. Laura Savu, Combining Public Key Encryption with Schnorr Digital Signature, Journal of Software Engineering and Applications, 2012, 5, 102-108. NIST. Key Recomendation keylength. http://www.keylength.com/en/4/.