Bagaimana keyBCA bekerja

Bagaimana keyBCA bekerja

Posted on 07. Nov, 2010 by ziaulhaq in BizTalk, Techno

Pagi tadi saya nyambangi Customer Service tiga bank sekaligus: bank Muamalat, bank BCA, dan bank Mandiri. Alhamdulillah ketiga bank tersebut terletak masih satu jalan, meski beda gedung. Tiga rekening ini saya piara sejak jaman awal kuliah sampe sekarang karena paling urgen, meskipun hanya dengan saldo minimum. BCA banyak dipake buat bakulan. Mandiri enak buat transfer ke bank-bank lain, karena jaringan transfer BCA leibih eksklusif. Muamalat? Buat jembatan antara BCA dan Mandiri.

Ke bank Muamalat, saya mengambil kartu baru dari ganti kartu yang hilang. Trus ke BCA menukarkan keyBCA lama saya yang rusak. keyBCA lama saya angka-angka yang digenerate udah gak sinkron. Setelah itu karena sempat diutak-atik teman, akhirnya malah ke-lock. Alternatifnya? Ke cabang BCA, ganti baru. Trus mampir ke bank Mandiri beli token Mandiri. Token Mandiri ini sejenis keyBCA. Saya ga tau nanti perlu apa nggak, karena saya jarang transaksi pake Mandiri. Kebanyakan pake BCA. Tapi yang penting punya dulu. Toh gak mahal-mahal amat dan ga ada biaya perawatan. Ongkos gantinya 20ribu rupiah.

Dulu saya sempat penasaran cara kerja keyBCA atau token Mandiri ini. Bagaimana cara alat ini berkomunikasi dengan server bank sana. Memberikan kode angka yang dapat diterima oleh komputer server, padahal secara fisik keduanya terpisah sama sekali. Tanpa komunikasi apapun.

Semakin penasaran setelah mengalami kasus bahwa ternyata keyBCA ini bisa gak sinkron lagi sama servernya.

Tadi saya baca artikel lengkapnya. Teknis banget. Saya jelaskan garis besarnya:
Ketika sistem di internet banking meminta respon user, misalkan meminta user memasukkan APPLI 1, maka saat itu server bank membangkitkan kode password berupa sederet angka. User harus memasukkan kode password yang sama supaya transaksi dapat diterima.

Kok bisa token mengeluarkan password yang sama persis, padahal antara token dan server sama sekali tidak terhubung secara fisik? Tak ada sinyal, tak ada kabel, apalagi telepati atau magic.

Ternyata mereka berkomunikasi menggunakan media ‘waktu’. Waktu pada keyBCA harus sinkron dengan waktu pada komputer server. Misalnya ketika komputer server mengirim perintah memasukkan APPLI 1 pada pukul 10:10:10 (jam sepuluh lebih sepuluh menit sepuluh detik) maka komputer server membangkitkan sebuah kode sesuai jam tersebut. Kode yang sama akan dibangkitkan oleh token pada waktu yang sama (10:10:10) sehingga jika dimasukkan maka password akan cocok dan transaksi diterima.

Itu idealnya.

Tapi, kondisinya tidak seideal itu.
Misalkan server mengirim perintah APPLI 1 pada pukul 10:10:10 dan membangkitkan password. Karena ada delay internet perintah itu baru nyampe di komputer user pada 10:10:33. User ngeklik token untuk APPLI 1 pada pukul 10:10:41 sehingga kode yang dibangkitkan token bukan kode pada pukul 10:10:10 tetapi kode pada pukul 10:10:41.
Kemudian kode yang dibangkitkan token pada 10:10:41 tadi mengalami keterlambatan masuk ke komputer server karena user harus mengetiknya, mengirimnya, dan ada kelambatan internet. Sehingga kode tersebut baru sampai ke komputer server pada 10:11:53. Ada selisih keterlambatan 103 detik antara even ketika server membangkitkan password pada 10:10:10 dan password responnya diterima oleh server pada 10:11:53.

Server harus mengantisipasi hal ini. Karenanya, setelah menerima respon password dari user, server memeriksa seluruh kemungkinan password selama beberapa detik kedepan (misalkan 180 detik atau 3 menit) dari semenjak server membangkitkan password pada 10:10:10. Jika ada salah satu password yang cocok, maka password diterima.
Kode password ini hanya berlaku sekali pakai dalam masa tertentu, misalnya 180 detik. Jika dalam 180 detik server belum menerima respon password, maka password yang dibangkitkan tadi kadaluarsa dan user perlu merefresh untuk membangkitkan password baru dari server.

Kemudian, bagaimana jika jam pada token lebih lambat dari jam pada server bank? Misalnya jam token lebih lambat satu menit dari jam pada server bank. Server bank membangkitkan passwod pada 10:10:10. User menerima perintah APPLI 1 pada 10:10:25 kemudian menekan token pada 10:10:30. Karena jam token lebih lambat satu menit, maka password yang dibangkitkan token adalah bukan password untuk 10:10:30, tapi password pukul 10:09:30 mengacu pada jam token. Sekarang tugas server bertambah. Setelah server menerima password dari user, server tidak hanya memeriksa kemungkinan password 180 detik ke depan, tetapi juga 180 detik ke belakang. Kalau ada yang cocok, maka transaksi diterima.

Gitu deh kira-kira.

Sekarang saya mulai meraba kenapa keyBCA saya gak sinkron lagi, padahal setaun lebih gak saya pake karena saya pikir ilang. Mungkin karena gak pernah dihidupin ato apa, jamnya error jadi udah keluar dari toleransi 180 detik ke depan dan 180 detik ke belakang.

Untuk keamanannya, mekanisme kode password ini pake enkripsi hash MD-5. Biar lebih kuat ditambahkan ‘salt’. Kalo mau tahu cari sendiri ajah. Pusing jelasinnya.

Tags: , , ,

5 Responses to “Bagaimana keyBCA bekerja”

  1. andi

    26. Jan, 2011

    masa sih cuma kaya gitu? kalo gitu, berarti kita bisa pakai token punya orang lain dong. yang penting kita tahu password token orang tersebut, trs kita pakai buat meng-generate password pada akun kita?
    menurutku sih ada hubungannya lagi, yaitu tiap token itu bakal menghasilkan password yg berbeda, itulah sebabnya kita harus mengaktivasi nomor seri yang ada di belakang token/keybca kita pada akun internet banking kita.

    Reply to this comment
    • ziaulhaq

      27. Jan, 2011

      Tentu saja tiap keyBCA itu berbeda. Seperti kartu ATM kita yang fisiknya sepintas sama, namun tetap personal. Server bank ketika men-generate password pun berdasar informasi pribadi kita, tentu juga berbeda untuk setiap orang.

      Reply to this comment
  2. batu rekso

    08. Mar, 2012

    mantabb..baru ngerti sekarang,
    saya baru mau coba transfer ke bank lain dari kantor, tapi token dipegang istri dirumah..
    kira2 bisa gak ya? nnti istri yang aktifin password tokennya, kita komunikasi via telpon….:D

    Reply to this comment
  3. haq

    26. Apr, 2012

    saya turut berduka cita karena token anda dipegang istri..

    semoga rekening anda bahagia di alam sana

    Reply to this comment

Leave a Reply