270 likes | 415 Views
Token Internet Banking. Penggunaan token berupa alat kecil semacam kalkulator untuk mengamankan transaksi internet banking sudah menjadi hal yang wajib . Token ini menjadi faktor tambahan dalam otentikasi yaitu untuk membuktikan bahwa anda adalah benar-benar pengguna yang sah.
E N D
Penggunaan token berupaalatkecilsemacamkalkulatoruntukmengamankantransaksi internet banking sudahmenjadihal yang wajib. • Token inimenjadifaktortambahandalamotentikasiyaituuntukmembuktikanbahwaandaadalahbenar-benarpengguna yang sah
Authentication Method • Otentikasibertujuanuntukmembuktikansiapaandasebenarnya, apakahandabenar-benarorang yang andaklaimsebagaidia (who you claim to be). • Adabanyakcarauntukmembuktikansiapaanda. • Metodeotentikasibisadilihatdalam 3 kategorimetode: • Something You Know • Something You Have • Something You Are
Authentication Method • Something You Know Iniadalahmetodeotentikasi yang paling umum. Cara inimengandalkankerahasiaaninformasi, contohnyaadalahpassworddanPIN. Cara iniberasumsibahwatidakadaseorangpun yang mengetahuirahasiaitukecualiandaseorang. • Something You Have Cara inibiasanyamerupakanfaktortambahanuntukmembuatotentikasimenjadilebihaman. Cara inimengandalkanbarang yang sifatnyaunikcontohnyaadalahkartumagnetik/smartcard, hardware token, USB token dansebagainya. Cara iniberasumsibahwatidakadaseorangpun yang memilikibarangtersebutkecualiandaseorang. • Something You Are Iniadalahmetode yang paling jarangdipakaikarenafaktorteknologidanmanusiajuga. Cara inimengandalkankeunikanbagian-bagiantubuhanda yang tidakmungkinadapadaorang lain sepertisidikjari, suaraatausidik retina. Cara iniberasumsibahwabagiantubuhandasepertisidikjaridansidik retina, tidakmungkinsamadenganorang lain.
Password yang Dikeluarkan Token Internet Banking Padaumumnyaadadua mode pemakaian token internet banking: • Mode Challenge/Response (C/R) Iniadalah mode yang paling seringdipakaiketikabertransaksi. Dalam mode ini server memberikan challenge berupasederetanangka. Angkatersebutharusdimasukkankedalammesin token untukmendapatkanjawaban (response). Kemudianpenggunamemasukkanangka yang munculpadatokennyakedalam form disitus internet banking. Token akanmengeluarkankode yang berbeda-bedawalaupundengan challenge code yang samasecaraperiodiktergantungwaktuketika challenge dimasukkankedalam token. • Mode Self Generated (Response Only) Dalammode ini server tidakmemberikantantangan (challenge) apapun. Token penggunabisalangsungmengeluarkansederetanangkatanpaharusmemasukkan challenge. Seperti mode C/R, token jugamengeluarkankode yang berbeda-bedasecaraperiodiktergantungwaktuketika token dimintauntukmenghasilkankode self generated.
Sebenarnyajawaban yang diberikanoleh token baikdalam mode C/R maupun Self Generated(resopnse only) tidak lain adalah password juga. Namunberbedadengan password yang andapakaiuntuk login, password yang dihasilkan token inimemilikiketerbatasanuntukalasankeamanan, yaitu: • Hanyabolehdipakai 1 kali Inidisebutdengan OTP (One Time Password). Setelahsuatu password dipakai, maka password yang samatidakbisalagidipakaiuntukkeduakalinya. Dengancarainitidakadagunanyamenyadap password yang dihasilkan token karena password tersebuttidakbisadipakailagi. Namunbila password tersebutdi-intercept sehinggatidakpernahsampaike server, maka password tersebutmasihberhargakarenadimata server, password itubelumpernahdipakai.
Hanyabolehdipakaidalamrentangwaktu yang terbatas Password yang dihasilkan token memilikiumur yang sangatterbatas, mungkinantara 3-6 menitbilaumurnyahabismaka password itutidakbisadipakai, walaupunbelumpernahdipakai. waktumerupakanunsur yang sangatkritikaldalamsistemini. • Hanyabolehdipakaidalamkontekssempit Bilapassword/PIN yang dipakaiuntuk login adalah password yang bebaskonteks, dalamartidenganberbekal password itu, andabisamelakukanbanyakhal, mulaidarimelihatsaldo, mengecektransaksidansebagainya. Namun password yang dihasilkan token, hanyabisadipakaidalamkontekssempit, contohnya password yang dipakaiuntukmengisipulsakenomor 08123456789, tidakbisadipakaiuntukmelakukan transfer dana.
Terbatasnyakonteksinidisebabkankarenauntukmelakukantransaksidibutuhkan password yang diikatoleh challenge dari server, sehingga password tersebuttidakbisadipakaiuntuktransaksi lain yang membutuhkan challenge code yang berbeda. • Contohnyabila challenge yang diberikan server adalah 3 digit terakhirdarinomorhandphone (untuktransaksiisipulsa), atau 3 digit terakhirnomorrekeningtujuan (untuktransaksi transfer). • Makapassword yang dihasilkan token untuktransaksiisipulsakenomor 0812555111222, akan valid jugauntuktransaksi transfer uangkerekening 155887723120222. Sebabkebetulankeduatransaksitersebutmembutuhkan password yang diikatoleh challenge code yang sama, yaitu 222 (diambildari 3 digit terakhir).
Konteksinihanyaberlakubila password dihasilkandalam mode C/R. Password yang dihasilkandalam mode Self Generated, bisadipakaidalamtransaksiapasaja yang tidakmeminta password dengan challenge code.
Jadibisadisimpulkanbahwa password yang dikeluarkan token bersifat: • Selaluberubah-ubahsecaraperiodik • Memilikiumur yang singkat • Hanyabisadipakai 1 kali • Terbagidalamadaduajenis, yaitu: • Password kontekstual yang terikatoleh challenge code dalam mode challenge/response. • Password bebaskonteks yang dihasilkandalam mode self generated.
ProsesOtentikasi Sepertipassword padaumumnya, syarat agar otentikasiberhasiladalah: (password yang dikirimkan client = password yang disimpandiserver) Denganalasankeamananjarangsekali server menyimpan password user dalambentuk plain-text. Biasanya server menyimpan password user dalambentuk hash sehinggatidakbisadikembalikandalambentuk plain-text. Jadisyaratotentikasiberhasildiatasbisadiartikansebagaihasilpenghitungan hash dari password yang dikirimklienharussamadengannilai hash yang disimpandalam server.
Penggunaan Salt • Untukmenghindari brute-force attack terhadap hash yang disimpandi server, makasebelum password user dihitungnilaihashnya, terlebihdahuluditambahkan string acak yang disebutdengan salt. • Perhatikancontohberikut, bila password user adalah “secret”, makasebelumdihitungnilaihashnya, password ditambahkandulu salt berupa string acak “81090273″ sehingga yang dihitungnilaihashnyaadalah “secret81090273″ bukan “secret”.
Perhatikanbahwanilai MD5(“secret81090273″) adalah894240dbe3d2b546c05a1a8e9e0df1bc • sedangkannilai MD5(“secret”) adalah5ebe2294ecd0e0f08eab7690d2a6ee69. • Bilatanpamenggunakan salt, maka attacker yang mendapatkannilai hash 5ebe2294ecd0e0f08eab7690d2a6ee69 • bisamenggunakanteknik brute force attack atau rainbow table untukmendapatkannilai password dalam plain-text.
Denganpenggunaan salt, maka database penggunadalamserver akantampaksepertiini: Field salt diperlukanketikamelakukanotentikasi. Password yang dikirimkan user akanditambahkanduludengannilai salt inibarukemudiandihitungnilaihashnya. Nilai hash hasilperhitungantersebutakandibandingkandengan field Password Hash yang adadikolomsebelahnya. Bilasama, makaotentikasiberhasil, bilatidaksama, berartiotentikasigagal. Secaraprinsipsamasajadengangambardiatas, hanyaditambahkansatulangkahyaitupenambahan salt sebelumdihitungnilaihashnya.
Pembangkitan One Time Password (OTP) Token Internet Banking • Bagaimanacara token menghasilkansederetanangkasebagai OTP yang bisadiotentikasioleh server? • syaratagar otentikasiberhasiladalah password yang dikirimklienharussamadengan yang disimpandi server. • password yang dihasilkan token selaluberubah-ubahsecaraperiodik. • Bagaimanaapa yang dihasilkanalatitubisasinkrondengan server? Padahalalattersebuttidakterhubungdengan server, bagaimana server bisatahuberapanilai yang dihasilkan token? • Jawabannyaadalahdenganwaktu. waktuadalahelemen yang sangatpentingdalamsistemini. Server dan token dapatsinkrondenganmenggunakanwaktusebagainilaiacuan.
OTP dalam Mode Self Generated (Response Only) • Pembangkitan OTP dalam mode self generated atau response only. Sebelumnyatentusaja, server dan token harusmenyepakatisebuahnilaiawalrahasia (init-secret atau secret key). Nilaiawalinidisimpan (ditanam) dalam token device dandisimpanjugadalam database disisi server.
Ketikapadasuatuwaktutertentu token dimintamenghasilkan OTP tanpa challenge code, inilah yang dilakukan token: • Mengambilwaktusaatinidalamdetikberformat EPOCH (jumlahdetiksejak 1 Januari 1970), biasanyadalam granularity 10 detik, sehingganilai EPOCH dibagi 10. • Menggabungkan init-secret denganwaktusaatinidarilangkah 1. • Menghitungnilai hash gabungan init-secret danwaktudarilangkah 2.
Bagaimanacara server melakukanotentikasi? Caranyamiripdengan yang dilakukan token, yaitudenganmenghitungnilai hash gabungan init-secret denganwaktusaatinidanmengambilbeberapa digit diawalsebagai OTP. Bila OTP yang dikirim user samadengan OTP yang didapatkan server dariperhitungan hash, makaotentikasiberhasil. • Namunadasedikitcatatan yang harusdiperhatikanterkaitwaktu. Untukmemberikantoleransiperbedaanwaktuantara token dan server, danjugajedawaktudarisejak server meminta password sampai user meminta token membangkitkan token, maka server harusmemberikantoleransiwaktu. • Adatigakejadian yang perludiperhatikanwaktunya, yaitu: • Detikketika server meminta password (OTP) dari user • Detikketika token membangkitkan OTP • Detikketika server menerima OTP dari user
Contoh OTP • Biladiasumsikanwaktudi server samapersisdenganwaktudi token (jam internal token), makakitaharusperhatikanbahwapastiakanadajedaantarakejadian 1, 2 dan 3. Bilapadadetik ke-0 server meminta password dari user, karenalambatnyaakses internet, bisajadibarupadadetik ke-30 user melihatpadabrowsernyabahwadiaharusmemasukkan OTP dari token. Kemudianbarupadadetik ke-60 token menghasilkan OTP. Padadetik ke-65 user mensubmitnilai OTP tersebutke server danbarutibadi server padadetik ke-90.
Karenapembangkitan OTP tergantungwaktupadasaat OTP dibangkitkan, maka OTP yang dihasilkan token, adalah OTP padadetik ke-60. Sedangkan server meminta password dari user sejakdetik ke-0. Bagaimanacara server melakukanotentikasi? Caranyaadalahdenganmemeriksaseluruhkemungkinan OTP dalamrentangwaktu yang dipandangmemadai, misalkan 180 detik.
Bilasistemmenggunakan granularity 10 detikmaka server harusmenghitungnilai OTP sejakdaridetik ke-0, 10, 20, 30, 40, s/d ke 180 dalamkelipatan 10 detik. Perhatikancontohpadagambardibawahini. Dalamsisteminidiasumsikan OTP adalah 6 karakterawaldari MD5 gabungan. Dalammelakukanotentikasi, server harusmembandingkansemuanilai OTP sejakdetik ke-0 (dalamcontohini EPOCH/10 = 124868042) hinggawaktutoleransimaksimum.
Dalamcontohdiatasbila user mengirimkan OTP “b1cdb9″ makaotentikasiakanberhasilketika server menghitungnilai OTP padadetik ke-60 sejak server meminta OTP dari user. • Ilustrasidiatashanyalahcontoh, padakenyataannyaadakemungkinanwaktuantara server dan token tidaksamapersis 100%, sehingga server terpaksaharusmemberikantoleransiwaktutidakhanyakedepan, namunjugakebelakang. Sebabbisajadiwaktudi server lebihcepatdaripadawaktudi token. Sebagaicontohketikawaktudi server menunjukkan EPOCH/10=124868219, bisajadiwaktudi token barumenunjukkan EPOCH/10=1248682121 (waktu token terlambat 80 detik).
NasabahmyTestBankinginmemakaiaplikasi internet banking myTestBankuntukmentransfersejumlahuang. UntukitudiabarusajamendownloadMidlet TokendanmenginstallnyakeHPnya. Token midlettersebutdiinisialisasidengannilai init secret 369e4a62be0e579a. Setelahmendaftar user tersebutmendapat username rizki • Selainmenyamakan jam di token dandi server, init secret di token dandi server harussama.