TOKEN INTERNET BANKING Penggunaan token berupa alat kecil

  • Slides: 27
Download presentation
TOKEN INTERNET BANKING

TOKEN INTERNET BANKING

� � Penggunaan token berupa alat kecil semacam kalkulator untuk mengamankan transaksi 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

Authentication Method � � � Otentikasi bertujuan untuk membuktikan siapa anda sebenarnya, apakah anda

Authentication Method � � � Otentikasi bertujuan untuk membuktikan siapa anda sebenarnya, apakah anda benar-benar orang yang anda klaim sebagai dia (who you claim to be). Ada banyak cara untuk membuktikan siapa anda. Metode otentikasi bisa dilihat dalam 3 kategori metode: � Something You Know � Something You Have � Something You Are

Authentication Method � � � Something You Know Ini adalah metode otentikasi yang paling

Authentication Method � � � Something You Know Ini adalah metode otentikasi 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. 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. Something You Are Ini adalah metode yang paling jarang dipakai 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.

Password yang Dikeluarkan Token Internet Banking Pada umumnya ada dua mode pemakaian token internet

Password yang Dikeluarkan Token Internet Banking Pada umumnya ada dua mode pemakaian token internet banking: � Mode Challenge/Response (C/R) Ini adalah mode yang paling sering dipakai ketika bertransaksi. Dalam mode ini server memberikan challenge berupa sederetan angka. Angka tersebut harus dimasukkan kedalam mesin token untuk mendapatkan jawaban (response). Kemudian pengguna memasukkan angka yang muncul pada tokennya ke dalam form di situs internet banking. Token akan mengeluarkan kode yang berbeda-beda walaupun dengan challenge code yang sama secara periodik tergantung waktu ketika challenge dimasukkan ke dalam token. � Mode Self Generated (Response Only) Dalam mode ini server tidak memberikan tantangan (challenge) apapun. Token pengguna bisa langsung mengeluarkan sederetan angka tanpa harus memasukkan challenge. Seperti mode C/R, token juga mengeluarkan kode yang berbeda-beda secara periodik tergantung waktu ketika token diminta untuk menghasilkan kode self generated.

Sebenarnya jawaban yang diberikan oleh token baik dalam mode C/R maupun Self Generated(resopnse only)

Sebenarnya jawaban yang diberikan oleh token baik dalam mode C/R maupun Self Generated(resopnse only) tidak lain adalah password juga. Namun berbeda dengan password yang anda pakai untuk login, password yang dihasilkan token ini memiliki keterbatasan untuk alasan keamanan, yaitu: � Hanya boleh dipakai 1 kali Ini disebut dengan OTP (One Time Password). Setelah suatu password dipakai, maka password yang sama tidak bisa lagi dipakai untuk kedua kalinya. Dengan cara ini tidak ada gunanya menyadap password yang dihasilkan token karena password tersebut tidak bisa dipakai lagi. Namun bila password tersebut di-intercept sehingga tidak pernah sampai ke server, maka password tersebut masih berharga karena di mata server, password itu belum pernah dipakai.

� Hanya boleh dipakai dalam rentang waktu yang terbatas Password yang dihasilkan token memiliki

� Hanya boleh dipakai dalam rentang waktu yang terbatas Password yang dihasilkan token memiliki umur yang sangat terbatas, mungkin antara 3 -6 menit bila umurnya habis maka password itu tidak bisa dipakai, walaupun belum pernah dipakai. waktu merupakan unsur yang sangat kritikal dalam sistem ini. � Hanya boleh dipakai dalam konteks sempit Bila password/PIN yang dipakai untuk login adalah password yang bebas konteks, dalam arti dengan berbekal password itu, anda bisa melakukan banyak hal, mulai dari melihat saldo, mengecek transaksi dan sebagainya. Namun password yang dihasilkan token, hanya bisa dipakai dalam konteks sempit, contohnya password yang dipakai untuk mengisi pulsa ke nomor 08123456789, tidak bisa dipakai untuk melakukan transfer dana.

� � � Terbatasnya konteks ini disebabkan karena untuk melakukan transaksi dibutuhkan password yang

� � � Terbatasnya konteks ini disebabkan karena untuk melakukan transaksi dibutuhkan password yang diikat oleh challenge dari server, sehingga password tersebut tidak bisa dipakai untuk transaksi lain yang membutuhkan challenge code yang berbeda. Contohnya bila challenge yang diberikan server adalah 3 digit terakhir dari nomor handphone (untuk transaksi isi pulsa), atau 3 digit terakhir nomor rekening tujuan (untuk transaksi transfer). Maka password yang dihasilkan token untuk transaksi isi pulsa ke nomor 0812555111222, akan valid juga untuk transaksi transfer uang ke rekening 155887723120222. Sebab kebetulan kedua transaksi tersebut membutuhkan password yang diikat oleh challenge code yang sama, yaitu 222 (diambil dari 3 digit terakhir).

� Konteks ini hanya berlaku bila password dihasilkan dalam mode C/R. Password yang dihasilkan

� Konteks ini hanya berlaku bila password dihasilkan dalam mode C/R. Password yang dihasilkan dalam mode Self Generated, bisa dipakai dalam transaksi apa saja yang tidak meminta password dengan challenge code.

� � � Jadi bisa disimpulkan bahwa password yang dikeluarkan token bersifat: Selalu berubah-ubah

� � � Jadi bisa disimpulkan bahwa password yang dikeluarkan token bersifat: Selalu berubah-ubah secara periodik Memiliki umur yang singkat Hanya bisa dipakai 1 kali Terbagi dalam ada dua jenis, yaitu: Password kontekstual yang terikat oleh challenge code dalam mode challenge/response. Password bebas konteks yang dihasilkan dalam mode self generated.

Proses Otentikasi Seperti password pada umumnya, syarat agar otentikasi berhasil adalah: (password yang dikirimkan

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.

Penggunaan Salt � � Untuk menghindari brute-force attack terhadap hash yang disimpan di server,

Penggunaan Salt � � Untuk menghindari brute-force attack terhadap hash yang disimpan di server, maka sebelum password user dihitung nilai hashnya, terlebih dahulu ditambahkan string acak yang disebut dengan salt. Perhatikan contoh berikut, bila password user adalah “secret”, maka sebelum dihitung nilai hashnya, password ditambahkan dulu salt berupa string acak “ 81090273″ sehingga yang dihitung nilai hashnya adalah “secret 81090273″ bukan “secret”.

� � Perhatikan bahwa nilai MD 5(“secret 81090273″) adalah 894240 dbe 3 d 2

� � Perhatikan bahwa nilai MD 5(“secret 81090273″) adalah 894240 dbe 3 d 2 b 546 c 05 a 1 a 8 e 9 e 0 df 1 bc sedangkan nilai MD 5(“secret”) adalah 5 ebe 2294 ecd 0 e 0 f 08 eab 7690 d 2 a 6 ee 69. Bila tanpa menggunakan salt, maka attacker yang mendapatkan nilai hash 5 ebe 2294 ecd 0 e 0 f 08 eab 7690 d 2 a 6 ee 69 bisa menggunakan teknik brute force attack atau rainbow table untuk mendapatkan nilai password dalam plain-text.

Dengan penggunaan salt, maka database pengguna dalam server akan tampak seperti ini: Username budi

Dengan penggunaan salt, maka database pengguna dalam server akan tampak seperti ini: Username budi Salt Password Hash 81090273 894240 dbe 3 d 2 b 546 c 05 a 1 a 8 e 9 e 0 df 1 bc 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.

Pembangkitan One Time Password (OTP) Token Internet Banking � � � Bagaimana cara token

Pembangkitan One Time Password (OTP) Token Internet Banking � � � Bagaimana cara token menghasilkan sederetan angka sebagai OTP yang bisa diotentikasi oleh server? syarat agar otentikasi berhasil adalah password yang dikirim klien harus sama dengan yang disimpan di server. password yang dihasilkan token selalu berubah-ubah secara periodik. Bagaimana apa yang dihasilkan alat itu bisa sinkron dengan server? Padahal alat tersebut tidak terhubung dengan server, bagaimana server bisa tahu berapa nilai yang dihasilkan token? Jawabannya adalah dengan waktu adalah elemen yang sangat penting dalam sistem ini. Server dan token dapat sinkron dengan menggunakan waktu sebagai nilai acuan.

OTP dalam Mode Self Generated (Response Only) � Pembangkitan OTP dalam mode self generated

OTP dalam Mode Self Generated (Response Only) � Pembangkitan OTP dalam mode self generated atau response only. Sebelumnya tentu saja, 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.

� � � Ketika pada suatu waktu tertentu token diminta menghasilkan OTP tanpa challenge

� � � Ketika pada suatu waktu tertentu token diminta menghasilkan OTP tanpa challenge code, inilah yang dilakukan token: Mengambil waktu saat ini dalam detik berformat EPOCH (jumlah detik sejak 1 Januari 1970), biasanya dalam granularity 10 detik, sehingga nilai EPOCH dibagi 10. Menggabungkan init-secret dengan waktu saat ini dari langkah 1. Menghitung nilai hash gabungan init-secret dan waktu dari langkah 2.

� Bagaimana cara server melakukan otentikasi? Caranya mirip dengan yang dilakukan token, yaitu dengan

� 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: Detik ketika server meminta password (OTP) dari user Detik ketika token membangkitkan OTP Detik ketika server menerima OTP dari user � � �

Contoh OTP � Bila diasumsikan waktu di server sama persis dengan waktu di token

Contoh OTP � 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

� 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

� 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 MD 5 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 “b 1 cdb 9″

� � Dalam contoh di atas bila user mengirimkan OTP “b 1 cdb 9″ 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).

� � Nasabah my. Test. Bank ingin memakai aplikasi internet banking my. Test. Bank

� � Nasabah my. Test. Bank ingin memakai aplikasi internet banking my. Test. Bank untuk mentransfer sejumlah uang. Untuk itu dia baru saja mendownload Midlet Token dan menginstallnya ke HPnya. Token midlet tersebut diinisialisasi dengan nilai init secret 369 e 4 a 62 be 0 e 579 a. Setelah mendaftar user tersebut mendapat username rizki Selain menyamakan jam di token dan di server, init secret di token dan di server harus sama.