PENDAHULUAN
1.1 Latar Belakang
Perkembangan teknologi informasi,telekomunikasi, dan internet menyebabkan mulai
munculnya aplikasi bisnis berbasis internet. Salah satu aplikasi yang mulai mendapat
perhatian adalah Internet banking. Internt banking adalah salah satu pelayanan jasa bankyang
memungkinkan nasabah untuk memperoleh informasi, melakukan komunikasi dan
melakukan transaksi perbankan melalui jaringan internet.
Internet banking memberikan keuntungan bagi nasabah maupun bank. Bagi nasabah,
Internet banking menawarkan kemudahan dan kecepatan dalam melakukan transaksi
perbankkan. Keuntungan dari menyediakan layanan internet banking bagi bank adalah :
internet banking bisa menjadi solusi murah pengembangan infrastruktur disbanding
membuka outlet ATM, contohnya klikbca saat ini telah menggantikan fungsi 160 ATM dan
menghemat biaya percetakan formulir yang harus diisi nasabah untuk bertransaksi, brosur,
catalog, dan menggantikannya dengan data elektronik.
Tentunya internet banking belum tentu aman karena internet banking menggunakan
jaringan internet. Sedang kan jaringan internet merupakan jaringan global yang dapat diakses
oleh siapapun. Banyak kejadian negative pada jaringan dunia perbankan seperti webspoofing,
pencurian password dengan sniffing packet, dll. Pada internet banking seperti klikbca, untuk
sekadar transaksi yang bersifat informatif (tidak ada pengurangan saldo) maka cukup
menggunakan sandi lewat (password) untuk masuk, tetapi untuk transaksi yang sifatnya
memindahkan/mengurangi saldo nasabah diminta untuk memasukan pin yang dihasilkan oleh
suatu alat yang biasa disebut token atau pin. Alat ini akan mengeluarkan deretan angka
(biasanya 6 digit) yang hanya identik dengan rekening nasabah tersebut. Jadi token lain tidak
mungkin bisa digunakan pada rekening.
Penggunaan token berupa alat kecil semacam kalkulator digunakan untuk
mengamankan transaksi internet banking, dan kini sudah menjadi hal yang wajib. Token ini
menjadi faktor tambahan dalam otentikasi yaitu untuk membuktikan bahwa anda adalah
benar-benar pengguna yang sah. Token menghasilkan angka yang diketahui oleh server
internet banking tanpa terbubung dengan server.
1.2 Tujuan
Tujuan fungsi otentikasi berbasis token adalah sebagai berikut :
1. Token dapat membuat transaksi internet banking menjadi lebih safety karena
menggunakan beberapa metode Otentikasi.
2. Pengguna token dapat menghasilkan sebuah pin dari token tanpa harus
terhubung dari server klikbca, untuk proses otentifikasi sebagai pengguna yang
sah.
1.3 Metodologi
Penelitian dilakukan dengan mempelajari beberapa otentikasi untuk membuktikan
siapa pengguna sebenarnya, apakah benar-benar orang yang diklaim sebagai dia (who you
claim to be).
BAB 2
LANDASAN TEORI
2.1 Konsep dasar Otentikasi
Ketika suatu sumber data dan informasi elektronik hanya terbatas pada beberapa
individu yang berwenang, pelaku bisnis dan pelanggannya harus memiliki jaminan bahwa
tidak ada orang lain dapat mengakses informasi tersebut. Ada beberapa teknik untuk
mengatur kontrol akses ini, yaitu firewall, hak akses, identifikasi pengguna dan teknik
otentikasi (seperti password dan sertifikat digital), Virtual Private Network (VPN), dan
banyak lagi.
Ada berbagai cara untuk membuktikan siapa pengguna. Metode otentikasi
bisa dilihat dalam 4 kategori metode:
1. Something You Know
Ini adalah metode autentifikasi yang paling umum. Cara ini mengandalkan
kerahasiaan informasi, contohnya adalah password dan PIN. Cara ini berasumsi
bahwa tidak ada seorangpun yang mengetahui rahasia itu kecuali anda seorang.
2. Something You Have
Cara ini biasanya merupakan faktor tambahan untuk membuat otentikasi
menjadi lebih aman. Cara ini mengandalkan barang yang sifatnya unik contohnya
adalah kartu magnetik/smartcard, hardware token, USB token dan sebagainya. Cara
ini berasumsi bahwa tidak ada seorangpun yang memiliki barang tersebut kecuali
anda seorang.
3. Something You Are
Ini adalah metode yang paling jarang diapakai karena faktor teknologi dan
manusia juga. Cara ini mengandalkan keunikan bagian-bagian tubuh anda yang tidak
mungkin ada pada orang lain seperti sidik jari, suara atau sidik retina. Cara ini
berasumsi bahwa bagian tubuh anda seperti sidik jari dan sidik retina, tidak mungkin
sama dengan orang lain.
Metode otentikasi ini menggunakan cara tradisional seperti tanda tangan di atas
materai. Cara ini berasumsi bahwa tidak ada orang lain di dunia ini yang bisa
melakukan itu selain pengguna. Walaupun pada kenyataannya ada saja orang yang
bisa meniru tanda tangan pengguna dengan sangat baik, Namun walaupun menyadari
fakta tersebut tanda tangan di atas kertas tetap diakui sebagai bukti otentik atas siapa
pengguna.
2.
3.
BAB 3
PEMBAHASAN
3.1 Proses Otentikasi
Seperti password pada umumnya, syarat agar otentikasi berhasil adalah:
password yang dikirimkan client = password yang disimpan di server
Dengan alasan keamanan jarang sekali server menyimpan password user dalam
bentuk plain-text. Biasanya server menyimpan password user dalam bentuk hash sehingga
tidak bisa dikembalikan dalam bentuk plain-text. Jadi syarat otentikasi berhasil di atas bisa
diartikan sebagai hasil penghitungan hash dari password yang dikirim klien harus sama
dengan nilai hash yang disimpan dalam server. Perhatikan gambar di bawah ini untuk lebih
memahami.
Hal ini disebabkan karena situs tersebut telah menyimpan pemetaan informasi
secret<=>5ebe2294ecd0e0f08eab7690d2a6ee69.
Penambahan
salt
81090273
membuat
nilai
hash
menjadi
894240dbe3d2b546c05a1a8e9e0df1bc. Bila nilai ini dimasukkan dalam situs tersebut,
dijamin tidak akan ada dalam databasenya bahwa nilai hash tersebut adalah
secret81090273. Dan karena nilai salt ini dibangkitkan secara random, maka tiap user
memiliki nilai salt yang berbeda sehingga tidak mungkin attacker bisa membangun database
pemetaan antara plaintext dan hash secara lengkap.
Dengan penggunaan salt, maka database pengguna dalam server akan tampak seperti
ini:
Username
budi
Salt
Password Hash
81090273
894240dbe3d2b546c05a1a8e9e0df1bc
Field salt diperlukan ketika melakukan otentikasi. Password yang dikirimkan user
akan ditambahkan dulu dengan nilai salt ini baru kemudian dihitung nilai hashnya. Nilai hash
hasil perhitungan tersebut akan dibandingkan dengan field Password Hash yang ada di kolom
sebelahnya. Bila sama, maka otentikasi berhasil, bila tidak sama, berarti otentikasi gagal.
Secara prinsip sama saja dengan gambar di atas, hanya ditambahkan satu langkah yaitu
penambahan salt sebelum dihitung nilai hashnya.
Ketika pada suatu waktu tertentu token diminta menghasilkan OTP tanpa challenge code,
inilah yang dilakukan token:
1.
Mengambil waktu saat ini dalam detik berformat EPOCH (jumlah detik sejak 1
Januari 1970), biasanya dalam granularity 10 detik, sehingga nilai EPOCH dibagi 10.
2.
Menggabungkan init-secret dengan waktu saat ini dari langkah 1.
3.
Menghitung nilai hash gabungan init-secret dan waktu dari langkah 2.
Nilai hash dari langkah 3 inilah yang menjadi OTP. Namun biasanya OTP diambil dari
beberapa karakter/digit di awal hash.
Sebenarnya yang dijelaskan di atas hanyalah penyederhanaan saja, proses sebenarnya
lebih kompleks dari yang di atas. Prosedur di atas adalah penyederhanaan dari keyed-hash
atau HMAC (hash-based message authentication code), fungsi hash dengan tambahan
masukan berupa secret key.
Bagaimana cara server melakukan otentikasi? Caranya mirip dengan yang dilakukan
token, yaitu dengan menghitung nilai hash gabungan init-secret dengan waktu saat ini dan
mengambil beberapa digit di awal sebagai OTP. Bila OTP yang dikirim user sama dengan
OTP yang didapatkan server dari perhitungan hash, maka otentikasi berhasil.
Namun ada sedikit catatan yang harus diperhatikan terkait waktu. Untuk memberikan
toleransi perbedaan waktu antara token dan server, dan juga jeda waktu dari sejak server
meminta password sampai user meminta token membangkitkan token, maka server harus
memberikan toleransi waktu.
Ada tiga kejadian yang perlu diperhatikan waktunya, yaitu:
1.
Detik ketika server meminta password (OTP) dari user
2.
Detik ketika token membangkitkan OTP
3.
Detik ketika server menerima OTP dari user
Perhatikan contoh di bawah ini:
Bila diasumsikan waktu di server sama persis dengan waktu di token (jam internal
token), maka kita harus perhatikan bahwa pasti akan ada jeda antara kejadian 1, 2 dan 3. Bila
pada detik ke-0 server meminta password dari user, karena lambatnya akses internet, bisa jadi
baru pada detik ke-30 user melihat pada browsernya bahwa dia harus memasukkan OTP dari
token. Kemudian baru pada detik ke-60 token menghasilkan OTP. Pada detik ke-65 user
mensubmit nilai OTP tersebut ke server dan baru tiba di server pada detik ke-90.
Karena pembangkitan OTP tergantung waktu pada saat OTP dibangkitkan, maka
OTP yang dihasilkan token, adalah OTP pada detik ke-60. Sedangkan server meminta
password dari user sejak detik ke-0. Bagaimana cara server melakukan otentikasi? Caranya
adalah dengan memeriksa seluruh kemungkinan OTP dalam rentang waktu yang dipandang
memadai, misalkan 180 detik.
Bila sistem menggunakan granularity 10 detik maka server harus menghitung nilai
OTP sejak dari detik ke-0, 10, 20, 30, 40, s/d ke 180 dalam kelipatan 10 detik. Perhatikan
contoh pada gambar di bawah ini. Dalam sistem ini diasumsikan OTP adalah 6 karakter awal
dari MD5 gabungan. Dalam melakukan otentikasi, server harus membandingkan semua nilai
OTP sejak detik ke-0 (dalam contoh ini EPOCH/10 = 124868042) hingga waktu toleransi
maksimum.
Dalam contoh di atas bila user mengirimkan OTP b1cdb9 maka otentikasi akan
berhasil ketika server menghitung nilai OTP pada detik ke-60 sejak server meminta OTP dari
user. Ilustrasi di atas hanyalah contoh, pada kenyataannya ada kemungkinan waktu antara
server dan token tidak sama persis 100%, sehingga server terpaksa harus memberikan
toleransi waktu tidak hanya ke depan, namun juga ke belakang. Sebab bisa jadi waktu di
server lebih cepat daripada waktu di token. Sebagai contoh ketika waktu di server
menunjukkan EPOCH/10=124868219, bisa jadi waktu di token baru menunjukkan
EPOCH/10=1248682121 (waktu token terlambat 80 detik).
Misalkan waktu toleransi adalah 3 menit, maka server harus memberikan toleransi 3
menit ke depan dan 3 menit ke belakang relatif terhadap waktu ketika server menerima OTP
dari user dan melakukan otentikasi. Ingat, waktu toleransi ini relatif terhadap waktu server
melakukan otentikasi. Jadi jika server melakukan otentikasi pada EPOCH/10=600, maka
server harus menghitung seluruh nilai OTP sejak EPOCH/10=420 hingga EPOCH/10=780.
Salt jika dibandingkan dengan OTP ini, maka nilai init-secret adalah sejenis dengan
password plain-text pengguna, sedangkan salt atau tambahannya adalah waktu (EPOCH/10).
Umur OTP
Sebelumnya sudah saya sebutkan bahwa sifat dari OTP adalah memiliki umur yang
terbatas. Umur ini terkait dengan waktu toleransi yang diberikan server sebesar X detik ke
depan dan X detik ke belakang relatif terhadap saat server melakukan otentikasi. Bila waktu
toleransi adalah 3 menit (180 detik), maka umur sebuah OTP adalah 3 menit, dalam arti bila
server melakukan otentikasi tidak lebih dari 3 menit sejak OTP dibangkitkan token, maka
OTP tersebut akan dianggap valid oleh server.
OTP dalam Mode Challenge/Response
Pembangkitan dan otentikasi OTP dalam mode C/R sebenarnya mirip dengan mode
self-generated. Bila dalam mode self generated tambahan (salt) dari init-secret adalah waktu
(EPOCH/10), dalam mode C/R ini salt/tambahannya lebih banyak. Init-secret tidak hanya
ditambah dengan waktu, namun juga ditambah lagi dengan challenge.
Perhatikan gambar di bawah ini. Server melakukan penghitungan OTP untuk semua
detik dalam waktu toleransinya.
Dalam mode C/R ada field tambahan yang harus digabungkan sebelum dihitung nilai
hashnya, yaitu challenge. Nilai challenge ini diketahui oleh server dan juga oleh token (ketika
user mengetikkan challenge ke token), sehingga baik token maupun server akan dapat
menghitung OTP yang sama sehingga proses otentikasi dapat berlangsung.
BAB 4
KESIMPULAN
Dari pembahasan pada bab-bab sebelumnya maka penulis dapat menarik kesimpulan sebagai
berikut:
1. Pengamanan suatu web merupakan hal yang sangat diperlukan mengingat pentingnya
suatu data pribadi atau data suatu perusahaan.
2. Penggunaan mekanisme otentikasi multi faktor mampu meningkatkan keamanan
sistem jaringan dalam proses otentikasi ke server di banding menggunakan otentikasi
satu faktor saja (username dan password).
3. Dengan multi faktor otentikasi sebuah organisasi dapat menjamin bahwa hanya user
yang berhak dan terdaftar saja yang dapat masuk ke dalam sistem.
4. Hasil Angka dari token dapat diketahui oleh server karena sebelumnya, server dan
token harus menyepakati sebuah nilai awal rahasia (init-secret atau secret key). Nilai
awal ini disimpan (ditanam) dalam token device dan disimpan juga dalam database di
sisi server.
5. Cara token menghasilkan sederetan angka sebagai OTP yang bisa diotentikasi oleh
server dengan syarat agar otentikasi berhasil adalah password yang dikirim klien
harus sama dengan yang disimpan di server.
DAFTAR PUSTAKA
http://coretanaba.blogspot.com/2011/10/fungsi-token-dalam-internet-banking.html
http://www.ilmuhacking.com/web-security/memahami-cara-kerja-token-internetbanking/
http://www.ilmuhacking.com/web-security/membuat-web-dengan-otentikasiberbasis-token/
http://banking.blog.gunadarma.ac.id/2012/05/01/sistem-keamanan-yang-baik-padainternet-bangking/