Devsecops: membangun kemampuan soc di dalam devsecops pipeline - Dedi Dwianto
Implementasi Sistem Pengamanan E-Commerce - Samsul Huda, Amang Sudarsono, Mike Yuliana
1. 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:samsul.eepis@gmail.com,amang@pens.ac.id, mieke@pens.ac.id
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]
2. “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 e-commerce
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
Hash
2010
(Legacy) 1024 160
SHA-1
SHA-224
SHA-256
SHA-384
SHA-512
2011-2030 2048 224
SHA-224
SHA-256
SHA-384
SHA-512
> 2030 3072 256
SHA-256
SHA-384
SHA-512
>> 2030 7680 384 SHA-384
SHA-512
>>> 2030 15360 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.
3. 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) ……………(2.5)
Tanda tangan valid jika e = h(r’, M) ……………(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)
Message Digest
Size
(bits)
Security2
(bits)
SHA-1 <264 512 32 160 80
SHA-256 <264 512 32 256 128
SHA-384 <2128 1024 64 184 192
SHA-512 <2128 1024 64 512 256
4. Alat dan Bahan
Tabel 3. Spesifikasi Hardware/Software
Spesifikasi Keterangan
Bank Server
Software
Java 1.7.045
Apache tomcat 7.0.47
MySQL V.5.5.32
O/S Window 7 32-bit
CPU Intel core i3 -370M 2.4 GHz
RAM 2GB DDR3
E-commerce
Server
Software
Java 1.7.045
Apache tomcat 7.0.47
MySQL V.5.5.32
O/S Window 7 64-bit
CPU Intel core i3 -370M 2.4 GHz
RAM 2GB DDR3
Client
Software Java 1.7.045
O/S Window 7 32-bit
CPU Intel core i3 -370M 2.4 GHz
RAM 2GB DDR3s
4. 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
seller buyer
Gambar 2. Protokol registrasi
(a)
(c)
(b)
(a)
5. 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
Signature = Sign Schnorr(M, Skb)
M = d(C, SkS)
Verifification = Verify Schnorr(M, Pkb)
[True]
Gambar 3.. Protokol transaksi
C = e(M, PkS)
*Data pesanan (M)
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.
6. (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.
7. 70
60
50
40
30
20
10
0
Perbandingan Ukuran chiper dengan ukuran plaintext
1 6 11 16 21 26 31 36 41 46
Ukuran Pesan (Byte)
Gambar 5. Grafik pengaruh ukuran pesan terhadap ukuran chiper
Ukuran chiper (Byte)
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
5354460,2
242925,7
13252,2
36,7
72,3
12,4 20,7
3,9 5,7
Key Generation Signing Verifying
Gambar 6. Performa keysize 2048 bit
10000000
1000000
100000
10000
1000
100
10
1
Waktu (ms)
512
1024
2048
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.
8. 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 (ms)
Total Waktu signing Waktu Signing buyer 38
Waktu Signing seller 36
Total waktu transmisi
Waktu transmisi pesan
pembelian + signature
ke seller
3
Waktu transmisi pesan
bill +signature ke buyer
2
Total waktu verifying Waktu Verifying seller 73
Waktu Verifying buyer 72
Total waktu eksekusi (ms) 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.
9. 7. Kesimpulan
Dari hasil penelitian ini, dapat diambil kesimpulan sebagai berikut :
1. 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.
2. 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] W. Stalling. Network Security Essentials: Applications and Standards, Fourth edition, Prentice-Hall, Inc., 2011.
[2] 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.
[3] 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.
[4] Rizal Rahardian, “ Implementasi Public Key Cryptography untuk Aplikasi Transaksi Online ”, PENS-ITS Srabaya 2012.
[5] Konstantinos Mastakes, “Implementation of Schnorr Signature Scheme,” University of Athens, Athens, Greece January 2013..
[6] Laura Savu, Combining Public Key Encryption with Schnorr Digital Signature, Journal of Software Engineering and Applications, 2012, 5,
102-108.
[7] NIST. Key Recomendation keylength. http://www.keylength.com/en/4/.