You are on page 1of 7

Abstrak:

Saat ini smartphone secara luas digunakan dalam setiap bagian dari dunia. Trend yang terjadi
sekarang adalah penetrasi telepon seluler cenderung menurun sementara smartphone cenderung
meningkat. Semakin banyak yang baru diluncurkan smartphone menawarkan dukungan untuk
Near Field Communication (NFC). Teknologi NFC memungkinkan interaksi dua arah sederhana
dan aman antara perangkat elektronik. Penelitian ini telah mengembangkan sistem pembayaran
elektronik berbasis smartphone menggunakan NFC. Selain digunakan untuk melakukan
pembayaran, sistem dapat diperluas untuk aplikasi lain seperti waktu dan mesin absensi untuk
masyarakat. Untuk mengimbangi kurangnya unsur fisik aman, pendaftaran, sinkronisasi, top-up,
dan proses catatan kehadiran dilakukan secara online, sedangkan transaksi dilakukan secara
offline. Berbagai algoritma kriptografi yang digunakan, seperti fungsi derivasi kunci password
based dan algoritma bungkus kunci untuk menjaga keamanan sistem. Perangkat yang digunakan
dalam penelitian ini adalah smartphone Android dan NFC reader modul CN-370s-2.

I. PENDAHULUAN
paling populer perangkat mobile ponsel. Ponsel teknologi telepon tingkat adopsi sangat tinggi dalam
waktu yang relatif singkat. Data dari International Telecommunications Union (ITU) menyatakan bahwa
pada 2013 jumlah pelanggan telepon selular mencapai 6,662 miliar. Sebagai perbandingan, populasi
dunia pada tahun yang sama menurut Biro Sensus Amerika Serikat adalah 7.098 miliar.

Penetrasi ponsel di Indonesia, menurut Roy Morgan Research, telah mencapai 84% pada Maret 2013.
Meskipun angka ini masih didominasi oleh ponsel konvensional, penetrasi smartphone adalah dua kali
lipat dari tahun sebelumnya, dari 12% menjadi 24% [1] . Tren saat ini adalah pertumbuhan ponsel
perlahan menurun sementara pertumbuhan smartphone meningkat pesat. Selain itu, sumber daya
komputasi dalam sebuah smartphone meningkat setiap tahun sehingga semakin banyak aplikasi dapat
diintegrasikan ke dalamnya. Karena berbagai aplikasi, smartphone yang paling sering digunakan
perangkat elektronik dalam kehidupan sehari-hari, menurut survei yang dilakukan oleh Forrester Research
[2].

Sebagian besar perangkat flagship Android terbaru dari berbagai produsen mendukung Near Field
Communication (NFC) dan perangkat mid-range juga mulai mendapatkan dukungan untuk NFC. NFC,
menurut definisi dari NFC-Forum, adalah teknologi yang memungkinkan interaksi dua arah sederhana
dan aman antara perangkat elektronik dengan satu sentuhan. Analis Industri Global memprediksi bahwa
pada tahun 2018 jumlah smartphone NFC-enabled akan mencapai 1,6 miliar unit.

Uang elektronik adalah alat pembayaran yang berkembang pesat di Indonesia. Jumlah uang elektronik
yang diterbitkan di Indonesia, menurut Bank Indonesia, menunjukkan pertumbuhan yang signifikan setiap
tahun. Saat ini, mayoritas uang penerbit elektronik bank, dan media adalah smartcard.

Saat mengeluarkan uang elektronik hanya dapat digunakan dalam sistem emiten. Dengan alam ini, adalah
mungkin bagi seseorang untuk berlangganan uang elektronik dari berbagai emiten. Selain uang
elektronik, smartcard telah banyak digunakan untuk keperluan lain, seperti kartu identitas nasional atau
sebagai kartu identitas dalam sebuah organisasi, misalnya kantor kartu identitas, sehingga orang akan
memiliki banyak smartcard untuk tujuan yang berbeda. Sejumlah besar smartcard bahwa seseorang
memiliki akan mengurangi kepraktisan smartcard itu sendiri.

Gambar. 1. Pertumbuhan uang elektronik yang diterbitkan di Indonesia [3]

Dari data yang disebutkan di atas, ada peluang yang dapat dimanfaatkan dengan sistem pembayaran
elektronik menggunakan smartphone NFC-enabled. Berbasis smartcard uang elektronik tidak
menawarkan fitur lain kecuali untuk transaksi. Electronic uang menggunakan smartphone NFC-enabled
dapat digunakan untuk berbagai kebutuhan dengan bantuan dari kemampuan smartphone. Penelitian ini
akan menawarkan alternatif untuk mengembangkan sistem pembayaran elektronik berdasarkan pada
smartphone NFC-enabled. Sistem pembayaran elektronik dirancang untuk digunakan dalam kecil untuk
masyarakat menengah, misalnya kantor atau sekolah, karena bisa juga digunakan untuk log kehadiran
anggota masyarakat.

Gambar. 2. nilai transaksi total menggunakan uang elektronik di Indonesia [4]

II. SECURITY DESIGN


A. Keamanan Keterangan
Sebelum merancang spesifikasi keamanan, keterbatasan hardware harus dipertimbangkan. Salah
satu faktor pembatas paling ketika merancang spesifikasi keamanan USB driver untuk NFC reader
digunakan di komputer berbasis Linux hanya dapat mengirimkan 100bytes data dalam satu urutan.
Faktor pembatas lainnya adalah tidak tersedianya modul aman dan transaksi offline. Setelah
keterbatasan diketahui, kita dapat mendefinisikan spesifikasi keamanan. Berikut adalah spesifikasi
yang harus dipertimbangkan ketika merancang fitur keamanan:

● Total panjang paket data transaksi tidak boleh melebihi 100byte.


● Kunci enkripsi untuk transaksi harus disimpan dengan aman di dalam perangkat.
● Data transaksi log disimpan dalam bentuk terenkripsi diperangkat.

B. Keamanan transaksi Desain


Untuk memenuhi spesifikasi yang dijelaskan di atas, data transaksi panjang paket harus lebih
pendek dari 100 byte. Untuk mendapatkan paket data pendek dengan kerahasiaan yang baik, skema
enkripsi yang dipilih adalah enkripsi simetris. Enkripsi simetris digunakan karena cyphertext
overhead rendah.
Algoritma enkripsi simetris yang akan digunakan adalah AES karena AES dianggap algoritma
enkripsi simetris yang paling aman dan praktis hari ini [5].

C. Manajemen Kunci
manajemen kunci harus dipertimbangkan karena kunci untuk mengenkripsi paket data transaksi
disimpan dalam perangkat. Dalam sebagian besar sistem pembayaran yang sudah mapan, aset
pembayaran (misalnya tombol, data pembayaran) disimpan dalam elemen aman. Karena tidak
tersedianya unsur-unsur yang aman yang dapat digunakan, aset pembayaran dalam sistem ini akan
disimpan di perangkat pengguna.

Kunci transaksi yang digunakan oleh semua perangkat dalam sistem, oleh karena itu mekanisme
penyimpanan kata kunci harus dirancang dengan cermat. Praktek-praktek terbaik untuk manajemen
kunci perangkat lunak berbasis simetris adalah fungsi derivasi kunci berbasis password, dan AES
kunci bungkus [6]. Menggunakan AES kunci bungkus, kunci AES yang digunakan untuk
mengenkripsi data transaksi disimpan dalam keadaan terbungkus. Utama yang digunakan untuk
membungkus kunci AES berasal menggunakan fungsi derivasi kunci berbasis password. Dengan
menggunakan mekanisme ini, kunci yang disimpan dalam setiap perangkat akan berada dalam
keadaan yang berbeda tergantung pada password pengguna.

Gambar. 3. Transaksi paket data


Gambar. 4. Ilustrasi manajemen kunci berbasis password derivasi kunci
dan AES bungkus kunci
D. Application Data Keamanan
data log transaksi dan data e-Money disimpan sebagai data aplikasi. Data transaksi log disimpan
menggunakan basis data sedangkan data e-Money disimpan sebagai SharedPreferences (Android)
atau file konfigurasi (Linux). Ada berbagai atribut disimpan dalam data e-Money, misalnya nomor
rekening, password hash aplikasi, dan tidak semua dari atribut-atribut harus rahasia. Tabel di
bawah ini menunjukkan atribut di data e-Money dan metode menyimpan untuk setiap atribut.

TABEL I. E-UANG DATA ATRIBUT DAN MENYIMPAN METODE UNTUK


SETIAPATRIBUT

data logTransaksi adalah data yang mewakili transaksi yang dilakukan oleh pembayar dan
pedagang di masa lalu. E-Money penerbit menebus uang untuk pedagang dan memotong saldo
pembayar pada server berdasarkan log data transaksi yang dikirim oleh kedua pembayar dan
pedagang ke server. Data transaksi log perlu dienkripsi karena jika pedagang dapat membuat data
ini secara manual, server harus membayar transaksi tidak ada ke server.

Gambar. 5. Transaksi format data log yang tersimpan dalam basis data

III. SYSTEM DESIGN


A. Kebutuhan Sistem
1) Kebutuhan Fungsional
Ada empat proses utama dalam sistem ini. Proses tersebut adalah: pendaftaran, transaksi,
sinkronisasi, dan top-up. Masing-masing proses memiliki kebutuhan mereka sendiri.

a) Pendaftaran
Pendaftaran dilakukan baik oleh administrator sistem dan pengguna. Pendaftaran memberikan
nomor rekening ke perangkat pengguna. Kebutuhan pengguna untuk melaporkan kepada
administrator sistem jika mereka ingin mengubah perangkat mereka dan menggunakan nomor
rekening yang sama.

b) transaksi
Proses transaksi dilakukan dalam keadaan offline. Proses transaksi urutan yang melibatkan
pengguna harus sesederhana mungkin.

Untuk menghindari serangan otomatis, pembayar perlu masukan nomor acak tiga digit dari
pedagang perangkat (EDC) sebelum transaksi dimulai.

Transaksi antara dua smartphone bisa dilakukan jika salah satu bertindak sebagai pembayar dan
lainnya sebagai pedagang. Sebelum transaksi, smartphone yang bertindak sebagai pedagang
perlu mengirim pedagang permintaan.

Sebuah log data transaksi disimpan dalam cara yang terenkripsi.

Ada dua saldo: keseimbangan belum diverifikasi dan keseimbangan diverifikasi. Keseimbangan
diverifikasi adalah nilai keseimbangan yang disimpan baik di server dan perangkat pembayar.
Keseimbangan belum diverifikasi adalah nilai keseimbangan yang disimpan hanya dalam
perangkat pembayar. Ketika pengguna mensinkronisasikan perangkat mereka, keseimbangan
diverifikasi disimpan dalam server yang akan disinkronkan dengan keseimbangan diverifikasi di
perangkat mereka. Setelah setiap transaksi, saldo pembayar dikurangi dan menjadi
keseimbangan yang belum diverifikasi. Ketika pengguna mensinkronisasikanmereka
perangkatlagi, keseimbangan belum diverifikasi menjadi diverifikasi keseimbangan.
c) Sinkronisasi
Sinkronisasi keamanan data harus dipertimbangkan. Waktu yang diperlukan untuk melakukan
sinkronisasi harus secepat mungkin.

d) Top-up
Balance top-up harus dilakukan di server oleh petugas yang berwenang. Untuk menerima
keseimbangan puncak-up, pengguna perlu melakukan sinkronisasi perangkat mereka.

2) Persyaratan teknis
Dalam rangka mengimplementasikan sistem ini, perangkat yang dibutuhkan adalah:
● NFC-enabled Android smartphone
● pembaca NFC dengan konektivitas PC
● berbasis LinuxPC
● Web Server.

Gambar. 6. Gunakan diagram kasus yang menunjukkan hubungan antara aktor danproses

B. DesainTop-level Sistem
Seperti yang dinyatakan sebelumnya, ada empat proses utama dalam sistem ini. Proses transaksi
dilakukan dalam keadaan offline sementara proses lainnya dilakukan dalam keadaan online.

Selain empat proses utama, ada tiga aktor utama yang memiliki peran aktif dalam sistem. Ketiga
pelaku adalah: pembayar, pedagang, dan server (administrator). Hubungan antara aktor dan proses
dapat dilihat pada Gambar.6.

C. ProsesPendaftaran

Ada dua aktor yang terlibat dalam proses pendaftaran, pembayar / pedagang dan administrator
server. Pertama, administrator server perlu membuat nomor rekening acak baru. Nomor rekening
yang baru dibuat harus diinput ke dalam perangkat pengguna, dan kemudian perangkat pengguna
akan mengirimkan identifikasi perangkat keras (IMEI untuk smartphone atau nomor seri untuk
NFC reader) ke server. Identifikasi perangkat keras yang diterima akan diingat oleh server sehingga
pengguna tidak dapat mendaftar ulang perangkat yang sama
lagi.

. Gambar 7. Pendaftaran proses Diagram urutan

D. TransaksiProses

proses Transaksidibagi menjadi dua kategori: transaksi antara smartphone dan smartphone,
transaksi antara smartphone dan EDC. Proses transaksi antara smartphone dan smartphone
menggunakan NFC P2P Simple NDEF Exchange Protocol (SNEP), sedangkan proses transaksi
antara smartphone dan EDC menggunakan emulasi kartu menggunakan implementasi Logical Link
Komunikasi Protocol (LLCP).

Dalam API Android, Android Beam diimplementasikan di atas SNEP. Android Beam fitur “tap to
beam” untuk memulai komunikasi antara dua perangkat. Setelah pengguna menekan perangkat
mereka, link komunikasi didirikan antara dua perangkat sebelum mengirim data. Android Beam
hanya mendukung satu arah NDEF transfer. Jika perangkat menerima sudah menerima data yang
NFC, link komunikasi akan terputus, terlepas validitas data yang diterima. Karena sifat ini, proses
transaksi antara smartphone dan smartphone membutuhkan urutan tambahan. Sebelum transaksi
dilakukan, pedagang harus mengirim pedagang permintaan. Permintaan pedagang digunakan untuk
memastikan kedua pembayar dan pedagang memegang kunci transaksi yang sama.

Dalam transaksi antara smartphone dan EDC, pedagang permintaan dapat dihilangkan karena
pemrograman di EDC dilakukan dari lapisan LLCP. Pemrograman dalam lapisan LLCP
memberikan kontrol yang lebih untuk data yang diterima atau dikirim oleh NFC reader di EDC.
Data yang diterima dari smartphone dapat diperiksa pertama. Jika ada kesalahan dalam data proses
pengecekan, NFC reader akan mengirimkan “perintah tidak didukung” APDU untuk smartphone.
Jika tidak ada kesalahan dalam data yang memeriksa proses, NFC reader akan mengirimkan
“perintah biasanya selesai” APDU untuk smartphone. Dalam proses transaksi ini, NFC reader
mengemulasi tag NFC. Tag emulasi digunakan karena P2P tidak dapat diimplementasikan dengan
sempurna oleh CN-370s-2 NFC reader.

Kedua proses transaksi antara smartphone dan smartphone, dan proses transaksi antara smartphone
dan NFC reader memiliki urutan yang sama, transaksi transfer data. Dalam proses transaksi antara
smartphone dan smartphone, transfer data transaksi dilakukan setelah pedagang permintaan
selesai. Dalam proses transaksi antara smartphone dan NFC reader, transfer data transaksi
dilakukan setelah pembayar jumlah yang dimasukkan dan angka acak tiga digit. Transfer data
transaksi mengandung dienkripsi transaksi paket data seperti yang ditunjukkan pada Gambar. 3.

Gambar. 8. transaksi transfer data

Gambar. 9. Sinkronisasi proses Diagram urutan

E. Sinkronisasi Data Proses

proses Sinkronisasidilakukan dalam keadaan online. Data transaksi log yang dikirim dalam bentuk
plaintext. Protokol HTTPS digunakan untuk memastikan bahwa data transaksi log dikirim ke
alamat tujuan, dan untuk memastikan bahwa data yang tidak mengendus di tengah [7].

Data transaksi log yang dikirim dalam bentuk plaintext sehingga server yang tidak perlu untuk
mendekripsi data yang diterima. Tanpa kebutuhan untuk mendekripsi data yang diterima, server
yang akan membutuhkan sedikit waktu untuk memproses data transaksi yang dikirim oleh
pengguna.

F. Top-up, dan Key Perubahan Proses

top-up dan proses perubahan kunci dilakukan dengan cara yang sama. Pertama, administrator
sistem perlu membuat perubahan dalam server yang. Perubahan dapat pengganti kunci atau topping
up saldo untuk akun pembayar di server. Pengguna harus melakukan sinkronisasi perangkat mereka
untuk mendapatkan perubahan ini. Setelah sinkronisasi, pengguna akan mendapatkan kunci baru
atau nilai keseimbangan baru.

Gambar. 10. Top-up dan proses perubahan urutan diagramkunci

G. Proses Absensi
Awalnya, fitur proses absensi tidak termasuk dalam desain sistem. Namun, mengingat bahwa
pelaksanaannya mudah dan tingkat keamanan yang dibutuhkan tidak tinggi, desain proses absensi
dapat mengikuti pola yang telah dirancang sebelumnya. Dengan mengikuti pola yang ada,
pelaksanaannya tidak memerlukan waktu yang lama. Dalam proses absensi, penjual digantikan oleh
mesin absensi.

Mengingat sistem pembayaran ini ditujukan untuk masyarakat kecil / menengah, manfaat yang
diberikan kepada anggota masyarakat akan dimasukkan ke rekening pembayar. Sebagai contoh,
seorang karyawan mendapatkan uang untuk makan siang di kantin (merchant), uang akan masuk ke
rekening sebagai pembayar a. Dari asumsi ini dapat diasumsikan bahwa akun pembayar dapat
digunakan untuk mengidentifikasi anggota masyarakat, maka kehadiran log dapat diisi
menggunakan akun pembayar.

Mesin absensi digunakan untuk menggantikan peran pedagang dalam proses absensi. Dari segi
teknis, tidak ada perbedaan yang signifikan antara pedagang dan mesin absensi, tetapi karena
penggunaan yang berbeda, maka aplikasi terpisah dibuat. Perbedaan utama antara pedagang dan
mesin absensi di mesin absensi setiap data absensi yang diterima akan dikirim langsung ke server.
Data yang diterima oleh mesin absensi dalam bentuk plaintext. Fitur keamanan yang digunakan di
sini adalah dalam bentuk angka acak tiga digit untuk mencegah mengisi absensi otomatis.

Format paket data absensi dikirim ke mesin absensi mirip dengan paket data transaksi. Perbedaan
utama adalah payload adalah dalam bentuk plaintext. Setelah data diterima oleh mesin absensi, itu
akan dikirim langsung ke server.

Gambar. 11. Kehadiran format paket data yang

III. SYSTEM PENGUJIAN


A. Key berasal Waktu

berbasis Sandi fungsi kunci derivasi adalah sebuah algoritma yang sangat CPU-intensif. Ini
memiliki iterasi sebagai parameter fungsinya. Lebih iterasi yang digunakan, semakin lama waktu
yang dibutuhkan untuk menyelesaikan berasal kunci. Ketika algoritma ini pertama kali
diperkenalkan, 1000 iterasi adalah jumlah minimum yang disarankan
iterasi. Google Nexus S, sebagai smartphone Android pertama NFC-enabled, membutuhkan hampir
satu detik untuk mendapatkan tiga kunci dengan jumlah iterasi 1000, 900, dan 800 sementara
perangkat yang lebih baru seperti Samsung Galaxy Note II hanya membutuhkan seperempat detik
untuk mendapatkan tiga kunci dengan jumlah yang samaiterasi.

TABEL II. WAKTU RATA-RATA UNTUK MENURUNKAN KEY

B. Transaksi Waktu

waktu transaksi diukur adalah waktu transaksi antara smartphone dan smartphone, dan waktu
transaksi antara smartphone dan EDC. Waktu transaksi antara smartphone dan EDC membutuhkan
waktu lebih dari waktu transaksi antara smartphone dan smartphone karena pendekatan NFC yang
berbeda digunakan.

Dalam transaksi antara smartphone dan smartphone, seperti yang dinyatakan sebelumnya, NFC
P2P menggunakan Android Beam (diimplementasikan di atas SNEP) digunakan. Dengan
menggunakan pendekatan ini, hanya beberapa langkah yang diperlukan sebelum mengirimkan data
seperti: polling, dan pembentukan hubungan.

Dalam transaksi antara smartphone dan EDC, seperti yang dinyatakan sebelumnya, NFC tag
emulasi digunakan. Dengan menggunakan pendekatan ini, ada lebih langkah yang diperlukan
sebelum mengirim data daripada menggunakan pendekatan P2P. Mengirim data dalam modus tag
emulasi mirip dengan tag menulis, maka tag perlu dibaca pertama dan kemudian memeriksa
menulis izin, ruang untuk menulis, dll sebelum tag dapat ditulis.

TABEL III. RATA-RATA TRANSAKSI WAKTU

C. Sinkronisasi Waktu

Jumlah waktu yang dibutuhkan untuk menyinkronkan data transaksi tergantung pada jumlah data
transaksi disinkronkan. Dari hasil yang diperoleh, perubahan waktu hampir konsisten dengan
jumlah disinkronkan perubahan data transaksi. Ketika jumlah data transaksi disinkronkan akan
lebih besar, waktu yang dibutuhkan untuk menyinkronkan semakin tak terduga. Hal ini
kemungkinan terjadi karena proses-proses lain yang membutuhkan koneksi internet yang berjalan
di sistem operasi perangkat mendapatkan prioritas lebih tinggi karena waktu tunggu yang lama.

TABEL IV. RATA-RATA SINKRONISASI WAKTU

V. KESIMPULAN

Pengembangansistem e-money ponsel terintegrasi dapat dilakukan dengan merancang pendaftaran,


sinkronisasi, top-up, dan proses absensi dalam keadaan online saat proses transaksi dilakukan
dalam keadaan offline dan data dalam bentuk terenkripsi.

Transaksi antara dua smartphone Android hanya membutuhkan 141.50 msecs untuk
menyelesaikan, sementara transaksi antara smartphone Android dan NFC reader membutuhkan
270,87 msecs untuk menyelesaikan.

Paket data transaksi terdiri dari tiga bagian: header, payload, dan vektor inisialisasi. Header
digunakan untuk memberikan informasi tentang paket data secara keseluruhan. Payload berisi data
transaksi dienkripsi. Vektor inisialisasi digunakan untuk mendekripsi payload.

Kunci untuk mengenkripsi data transaksi disimpan menggunakan algoritma AES kunci Wrap.
Kunci untuk kunci pembungkus diturunkan menggunakan fungsi derivasi berbasis password.

Waktu yang dibutuhkan untuk memperoleh kunci menggunakan fungsi derivasi kunci berbasis
password adalah tergantung pada sumber daya perangkat komputasi. Google Nexus S, sebagai
smartphone Android pertama NFC-enabled, membutuhkan hampir satu detik untuk mendapatkan
tiga kunci dengan jumlah iterasi 1000, 900, dan 800.

Proses Sinkronisasi menggunakan Hyptertext Transfer Protocol Secure (HTTPS) untuk


memastikan data transaksi yang diterima oleh server aman cara. Waktu yang dibutuhkan untuk
menyinkronkan data transaksi berbanding lurus dengan jumlah data transaksi disinkronkan.

You might also like