TOTP — Time-Based One-Time Password Algorithm
‘Dia terlalu sempurna hingga terasa tidak nyata’ — Hans Georg Schuwald
Begitulah yang dikatakan orang tua yang sudah mulai kehilangan pengelihatanya karena usia nya tapi karena kebutaannya Hans bisa merasakan apa yang tidak bisa dilihat (orang yang bisa melihat) tentang Johan Liebert.
Hans Georg Schuwald merupakan salah satu karakter dalam animasi jepang yang berjudul Monster yang dibuat oleh Naoki Urasawa yang juga dikenal sebagai vampire dari Bayer.
Monster sendiri merupakan series animasi yang bergenre phsycolocal thriller, menceritakan bagaimana Johan Liebert memanipulasi pikiran manusia. Bagaimana dia memantik emosi manusia sehingga orang lain mau melakukan segala sesuatu sesuai keinginan nya.
Pernah terpikir tidak bagaimana Google Authenticator bekerja tanpa mengirimkan OTP melalui SMS dan tanpa koneksi internet ?
TOTP adalah algoritma komputer yang mengenerate OTP berdasarkan waktu sekarang sebagai unique resource.
TOTP digunakan oleh Google Authenticator dan Token pada Internet Banking.
Tapi bagaimana cara kerjanya ?
Oke kali ini kita akan coba bongkar bagaimana TOTP bekerja
- Periode, interval yang digunakan untuk membatasi beberapa lama OTP akan terefresh
- Digits, berapa karakter yang dihasilkan ketika kita generate OTP
- Secret, merupakan unique id (setiap user memiliki secret yang berbeda-beda)
- Counter, atau timer yang dihitung sejak waktu start (biasanya start date pada komputer dimulai di 1970)
Secara sederhanya TOTP mendapatkan kombinasi angka sesuai dengan jumlah digit yang diberikan berdasarkan kalkulasi kombinasi interval/periode, secret/unique id dan counter.
Sehingga jika rumus yang digunakan antara server dan applikasi sama maka akan menghasilkan kombinasi angka yang sama sesuai dengan jumlah digit yang diminta tanpa harus terhubung dengan internet ataupun SMS.