On Sat, 26 Oct 2002, Made Teddy wrote:

> "BLI " memangnya metode one time password (OTP) TAN dan HBCI itu gimana ?
> kallo kita di BCA, OTP nya  ada 2 method :
> - asynchronous -> kita dapat sederetan angka (challenge), kemudian kita
> masukkan ke "alat kita"
>                              kmd digenerate dan menghasilkan sederet angka
> yg baru(response) kmd response
>                              ini kita input ke textbox di page site.
> - synchronous -> tidak ada challenge, kita input pin kemudian keybca akan
> menggenerate sendiri dan responsenya kita inputkan ke textbox

Ini mungkin bisa jadi masukan buat yg lainnya. Tulisan ini sekedar
penjelasan One Time Password secara singkat yg saya kirim ke milis Fisika
UI (ngejelasin pertanyan temen-temen)

IMW

-----------------------------------------------------------------------------

                        Prinsip One Time Pasword
                        ------------------------

Pada prinsipnya "mungkin" KeyBCA menggunakan One Time Password. metoda
yang terkenal adalah S/Key (dikemukakan oleh Lamport yg bikin TLA, dan
LaTeX, tadinya di Digital sekarang ditarik ke Microsoft. S/Key ini
dikembangkan oleh Haller dari Bellcore pertama kalinya.

Prinsipnya OTP ini menggunakan deretan "key" yang hanya bisa dipakai
sekali, setelah satu key dipakai maka key tersebut tak bisa dipakai lagi.
Harus dipilih key lainnya.

Misal :
                K (K_0, K_1, .... K_n) adalah key untuk OTP

Ada 2 kemungkinan penerapan model ini

- K dihasilkan secara random, User (U) dan Sistem (S) mengetahui K ini.
  pada model ini bila sistem telah bocor maka K dapat digunakan di waktu
  mendatang.

- K dihasilkan ketika diminta, U dapat memvalidasi
  dengan cara ini walau orang megnetahu K_n tapi tak mengetahui K_n+1


Sistem OTP ini menggunakan fungsi hash (H) dengan suatu seed

                          y = H(x)

Dimana x relatif panjang, dan y relatif pendek sedangkan x tidak bisa
dihasilkan walaupun orang mengetahui x, dengan kata lain H adalah
irreversible. Fungsi kompresi dan enkripsi tak dapat digunakan.

H juga harus menjamin sehingga

        Pr(H(x_1) = H(x_2)) dimana x_1 <> x_2 mendekati nol.

H yang biasa digunakan adalah MD5, SHA atau MD4

Sistem OTP ini bekerja sebagai berikut :

Pada awal digunakan seed (s): s ini adalah gabungan (concatenated) dari
suatu bilangan random (b). b biasanya bilangan ini dikirimkan secara
"clear teks" oleh server), dan "password" (p) yg dipilih pengguna. Dengan
cara ini memungkinkan si pengguna hanya menggunakan "password" yang sama
untuk mesin berbeda (tapi yang dihasilkan K tetap berbeda karena b
berbeda).

                S mengirim b ke U
                s = b concat p
                H(s)   --> K_0
                H(K_0) --> K_1
                H(K_1) --> K_2
                ...
                H(K_n-1) --> K_n

Prinsip otentifikasi :

- S mengetahui hanya K_n dan juga H
- Ketika U login, maka S bertanya K_n-1
- U (yg sah) mengetahui K_n-1 dan memberikan K_n-1
- S menggunakan H --> H(K_n-1) = y (harus sama dg (K_n)
- S membandingkan nilai y dg K_n, bila sama berarti U benar
- Untuk login berikutnya maka S akan bertanya K_n-2 dan membandingkan
  K yang diberikan oleh U dengan K_n-1

Jadi penggunaan OTPnya dari arah K berindex besar besar ke kecil

Seorang "penyadap" yang membaca K_3 misalnya, tak dapat menebak K_2.
Karena fungsi H tidak bersifat reversible.

Sekarang tinggal bagaimana implementasi dari metoda di atas untuk
menghasilkan K di sisi user, dan menyimpan K_n di sisi server.

U dapat diberikan K(K_0... K_n) sekaligus, atau bisa juga dengan
menggunakan suatu "seed" user menghasilkan K(K_0... K_n)

Penggunaan calculator (ada juga yg menggunakan program di Palm, Java
applet dlsb). Menjadilan langkah implementasi :

- U akan login ke sistem menggunakan metoda standard (name, password)
- S akan mengirimkan "tantangan", yaitu "n" dan "b" (utk seed). S
  mengetahui K_n+1
- U akan memasukkan "n", dan "b" dan p (password) dan menggunakan H
  dg interasi n dan mendapatkan nilai K_n
- U akan memberikan nilai K_n untuk otentikasi,
- S akan membandingkan H(K_n) dengan K_n+1) bila sama artinya sukses

- Berikutnya login S akan bertanya n-1

Penggunaan calculator sendiri ada variasinya :

- Otentikasi berbasiskan waktu
- One time password list (hanya digunakan untuk menghasilkan K)
- Challenge response (antara U dan S saling bertanya, calculator digunakan
  untuk menjawab challenge ini).

Info lebih ditail

URLs
http://directory.google.com/Top/Computers/Security/Authentication/One_Time_Passwords/

Intro
http://www.surfnet.nl/innovatie/surf-ace/security/doc/skey.html

Attack
http://www.indy.net/~sabronet/secure/skeyflaws.html

Cara ini tidak melindungi juga dari bahasa seperti hijacking, "site
spoofing", dictionary attack dll. Juga tidak melindungi dari praktek tak
jujur dari orang dalam.

Jadi sejauh mana extra keamanan yg diberikan oleh BCA "MASIH
DIPERTANYAKAN. Apalagi tidak ada keterbukaan penjelasan.. hihhihi

Segitu dulu ye... kuliah week-endnya...

IMW










* Gunadarma Mailing List -----------------------------------------------
* Archives     : http://milis-archives.gunadarma.ac.id
* Langganan    : Kirim Email kosong ke [EMAIL PROTECTED]
* Berhenti     : Kirim Email kosong ke [EMAIL PROTECTED]
* Administrator: [EMAIL PROTECTED]

Kirim email ke