TOTP (Time-based One-Time Password) adalah metode verifikasi tambahan yang meminta kode dari aplikasi autentikator setelah pengguna memasukkan kata sandi. Dengan lapisan ini, kata sandi karyawan yang bocor belum cukup untuk membuka akun kerjanya.
Menurut ulasan Cybersecurity Dive atas laporan kejahatan internet FBI 2024, SIM swap menimbulkan kerugian sekitar US$26 juta di Amerika Serikat. Dalam SIM swap, penyerang memindahkan nomor ponsel korban ke kartu SIM miliknya, sehingga kode OTP lewat SMS ikut terkirim kepadanya.
TOTP tidak bergantung pada nomor ponsel karena kodenya dibuat di aplikasi autentikator. Artikel ini membahas pengertian TOTP, tujuh tahap cara kerjanya, contoh penggunaannya, bedanya dengan HOTP dan OTP lewat SMS, risikonya, serta pengaturan yang perlu disiapkan perusahaan.
Apa Itu TOTP (Time-based One-Time Password)?
TOTP adalah kode sekali pakai yang dihitung dari dua bahan, yaitu kunci rahasia milik akun pengguna dan waktu saat ini. Kodenya umumnya berupa 6 digit dan berganti setiap 30 detik di aplikasi autentikator seperti Google Authenticator atau Microsoft Authenticator.
Cara perhitungannya dibakukan dalam RFC 6238, spesifikasi yang diterbitkan IETF (Internet Engineering Task Force) pada Mei 2011. Dokumen itu mendefinisikan TOTP sebagai pengembangan HOTP (HMAC-based One-Time Password) yang memakai hitungan waktu sebagai pengganti penghitung jumlah kode.
Setiap kode TOTP lahir dari komponen berikut:
- Kunci rahasia (shared secret), yaitu deretan data acak yang disimpan server dan aplikasi autentikator milik pengguna.
- Langkah waktu (time step), yaitu nomor urut periode 30 detik yang dihitung dari jam perangkat.
- HMAC (Hash-based Message Authentication Code), yaitu fungsi kriptografis yang mengolah kunci dan langkah waktu menjadi sidik digital sebelum dipotong menjadi kode pendek.
Server dan aplikasi memegang kunci yang sama dan membaca jam pada saat bersamaan, jadi keduanya menghasilkan kode identik tanpa saling bertukar kode.
Cara Kerja TOTP (Time-based One-Time Password)
TOTP bekerja dalam tujuh tahap, yaitu tiga tahap pendaftaran yang dilakukan sekali dan empat tahap yang berjalan setiap kali pengguna login. Tahap 4 sampai 6 berlangsung terpisah di aplikasi dan di server, lalu tahap 7 mencocokkan hasil keduanya.
- Server membuat kunci rahasia unik untuk akun pengguna saat TOTP diaktifkan. RFC 6238 mewajibkan kunci unik per pengguna, menyarankan kunci acak sepanjang keluaran HMAC (20 byte untuk HMAC-SHA-1), dan meminta kunci disimpan di area aman.
- Server menampilkan kunci itu sebagai kode QR, biasanya bersama nama layanan dan nama akun. Pengguna memindainya dengan aplikasi autentikator, atau mengetik kunci secara manual jika kamera tidak bisa dipakai.
- Pengguna mengetik kode pertama yang tampil di aplikasi untuk mengaktifkan TOTP. Jika kodenya cocok, server tahu kunci tersimpan dengan benar dan jam ponsel tidak bergeser terlalu jauh. Setelah tahap ini, kunci tidak pernah lagi dikirim antara server dan ponsel.
- Saat login, aplikasi dan server mengubah waktu Unix (jumlah detik sejak 1 Januari 1970) menjadi langkah waktu, yaitu hasil bagi waktu dengan 30 yang dibulatkan ke bawah. Contohnya, waktu Unix 1.700.000.000 (15 November 2023 pukul 05.13.20 WIB) menghasilkan langkah waktu 56.666.666, sama seperti semua detik antara pukul 05.13.00 dan 05.13.29 WIB.
- Aplikasi dan server mengubah langkah waktu menjadi data 8 byte, lalu mengolahnya bersama kunci rahasia dengan HMAC-SHA-1 menjadi sidik digital 20 byte. RFC 6238 juga mengizinkan HMAC-SHA-256 atau HMAC-SHA-512, asalkan server dan aplikasi memakai fungsi yang sama.
- Algoritma mengambil 4 byte dari sidik digital itu pada posisi yang ditentukan 4 bit terakhirnya, teknik yang disebut dynamic truncation. Angka dari 4 byte itu dibagi 1.000.000, dan sisa pembagiannya menjadi kode 6 digit di aplikasi.
- Pengguna mengetik kode, lalu server menghitung kode untuk langkah waktu yang sama dan membandingkan keduanya. RFC 6238 menyarankan toleransi maksimal satu langkah waktu untuk jeda jaringan dan melarang server menerima kode yang sama dua kali.
Tahap 4 sampai 6 hanya memakai kunci dan jam. Karena itu, aplikasi autentikator tetap bisa membuat kode tanpa sinyal seluler atau koneksi internet.
Contoh Penggunaan TOTP

TOTP dipakai di layanan yang meminta faktor kedua setelah kata sandi, terutama layanan yang bisa diakses langsung dari internet. Empat contoh berikut paling relevan untuk akses karyawan di perusahaan.
1. Email Kerja dan Aplikasi Kolaborasi
Layanan email kerja seperti Google Workspace dan Microsoft 365 menyediakan opsi verifikasi dengan aplikasi autentikator. Karyawan cukup mengetik kode 6 digit dari ponselnya setelah memasukkan kata sandi.
2. Akses VPN dan Desktop Jarak Jauh
Karyawan yang bekerja dari rumah biasanya masuk ke jaringan kantor lewat VPN atau desktop jarak jauh. TOTP di gerbang ini menahan penyerang yang memegang kata sandi VPN curian agar tidak masuk ke jaringan internal.
3. Aplikasi Bisnis Berbasis Cloud
Contohnya, staf keuangan login ke aplikasi akuntansi berbasis cloud dengan kata sandi, lalu membuka aplikasi autentikator dan mengetik kode yang tampil. Jika kata sandinya ikut bocor dari situs lain, penyerang tetap tertahan tanpa kode dari ponsel staf itu.
4. Konsol Admin Cloud dan Server
Penyedia cloud seperti AWS, Google Cloud, dan Microsoft Azure mendukung aplikasi autentikator sebagai faktor kedua untuk akun konsol. Untuk akun dengan hak admin, jadikan TOTP batas minimum dan utamakan metode tahan phishing bila tersedia.
Perbedaan TOTP, HOTP, dan OTP lewat SMS
TOTP adalah salah satu jenis OTP yang kodenya bergantung pada waktu, sedangkan HOTP memakai penghitung dan OTP lewat SMS dikirim server ke nomor ponsel. Perbedaan ini menentukan berapa lama kode berlaku dan dari jalur mana kode bisa dicuri.
| Aspek | TOTP | HOTP | OTP lewat SMS |
|---|---|---|---|
| Dasar pembuatan kode | Kunci rahasia dan waktu saat ini | Kunci rahasia dan penghitung (counter) yang bertambah setiap kode dibuat | Dibuat server, lalu dikirim lewat jaringan seluler |
| Masa berlaku kode | Satu langkah waktu, umumnya 30 detik | Sampai kode dipakai atau kode baru dibuat | Sesuai batas waktu yang ditetapkan server |
| Tempat kode dibuat | Aplikasi autentikator di perangkat pengguna | Token fisik atau aplikasi di perangkat pengguna | Server penyedia layanan |
| Butuh sinyal saat login | Tidak | Tidak | Ya, untuk menerima SMS |
| Risiko utama | Phishing real-time dan kebocoran kunci rahasia | Kode yang belum dipakai tetap berlaku lebih lama | SIM swap dan penyadapan jaringan seluler |
Untuk akun karyawan, TOTP lebih aman daripada OTP lewat SMS karena kodenya tidak melewati jaringan seluler dan tidak terikat nomor ponsel. HOTP masih dipakai pada token fisik, tetapi kodenya yang tidak kedaluwarsa memberi penyerang waktu lebih lama.
Jika perusahaan masih memakai OTP lewat SMS untuk akses karyawan, alihkan lebih dulu sistem yang menyimpan data pelanggan atau data keuangan ke TOTP.
Baca juga: TOTP vs Push Notification vs Biometrik: Mana MFA Terbaik untuk Bisnis Anda?
Manfaat TOTP untuk Akses Karyawan
TOTP menambah lapisan pengaman tanpa biaya perangkat tambahan, karena karyawan cukup memasang aplikasi autentikator di ponselnya. Manfaat ini paling terasa bagi perusahaan yang ingin mewajibkan MFA (multi-factor authentication, verifikasi dengan dua faktor atau lebih) untuk semua karyawan dengan anggaran terbatas.
- Kata sandi curian dari kebocoran data di situs lain tidak cukup untuk login, karena penyerang juga membutuhkan kode dari ponsel karyawan.
- Kode hanya berlaku sekitar 30 detik dan tidak bisa dipakai dua kali, jadi kode yang terlihat orang lain cepat kehilangan nilai.
- Perusahaan tidak menanggung biaya pengiriman SMS dan tidak bergantung pada operator seluler.
- Karena standarnya terbuka, satu aplikasi autentikator bisa menampung kode untuk email kerja, VPN, dan aplikasi berbasis cloud yang mendukung TOTP.
Risiko TOTP yang Perlu Diwaspadai
TOTP menghentikan pemakaian kata sandi curian, tetapi tidak menghentikan penyerang yang menipu karyawan secara langsung atau mencuri kunci rahasianya. Empat risiko berikut perlu dipertimbangkan sebelum TOTP dijadikan satu-satunya faktor kedua.
1. Phishing Real-Time
Penyerang bisa membuat halaman login palsu yang meneruskan kata sandi dan kode TOTP korban ke situs asli dalam hitungan detik. Pedoman NIST SP 800-63B-4, acuan autentikasi dari lembaga standar Amerika Serikat, menggolongkan OTP sebagai metode yang tidak tahan phishing.
Untuk akun admin dan akses ke data sensitif, gunakan metode tahan phishing seperti passkey atau security key berbasis FIDO2. Kedua metode ini hanya merespons domain asli, sehingga tidak bisa dipakai di situs palsu.
2. Kebocoran Kunci Rahasia di Server
Server menyimpan kunci rahasia setiap pengguna, jadi penyerang yang membobol basis data kunci bisa menghitung kode TOTP siapa pun. Kunci ini harus disimpan terenkripsi dan terpisah dari data login lain.
3. Kehilangan atau Pergantian Ponsel
Karyawan yang kehilangan ponsel atau mengganti perangkat tanpa memindahkan aplikasi autentikator akan terkunci dari akunnya. Tanpa alur pemulihan yang jelas, helpdesk bisa tergoda mereset akses hanya berdasarkan pengakuan lewat telepon.
4. Jam Perangkat Tidak Sinkron
Jika jam ponsel atau server bergeser melewati toleransi, kode yang benar pun ditolak. Masalah ini biasanya muncul pada ponsel dengan pengaturan waktu manual atau server yang tidak tersinkron dengan sumber waktu standar.
Pengaturan TOTP yang Perlu Disiapkan Perusahaan
Sebelum mewajibkan TOTP bagi karyawan, siapkan cara menyimpan kunci, memulihkan akun, dan membatasi percobaan login. Pengaturan berikut menutup risiko di atas tanpa membuat login lebih rumit.
- Simpan kunci rahasia dalam bentuk terenkripsi, dan batasi akses ke basis data kunci hanya untuk sistem autentikasi.
- Tampilkan kode QR pendaftaran hanya setelah karyawan login dengan kata sandi, dan jangan mengirim kode QR lewat email atau chat.
- Berikan kode pemulihan (recovery code) sekali pakai saat pendaftaran, lalu minta karyawan menyimpannya di tempat aman.
- Batasi jumlah percobaan kode yang salah, lalu kunci akun sementara setelah batas itu tercapai. Kode 6 digit hanya punya satu juta kombinasi, dan tanpa batas percobaan kodenya bisa ditebak.
- Sinkronkan jam server dengan sumber waktu standar melalui NTP (Network Time Protocol).
- Tetapkan alur ganti perangkat yang memverifikasi identitas karyawan, misalnya lewat konfirmasi atasan langsung atau verifikasi tatap muka, sebelum kunci baru dibuat.
- Wajibkan metode tahan phishing untuk akun admin, dan jadikan TOTP standar minimum bagi karyawan lain.
Platform IAM (identity and access management) dengan MFA terpusat bisa menerapkan pengaturan ini sekali untuk semua aplikasi. Tim IT pun tidak perlu mengatur TOTP satu per satu di setiap aplikasi.
Baca juga: Cara Implementasi MFA di Perusahaan Agar Akses Karyawan Tetap Aman Setiap Saat
Kesimpulan
TOTP adalah kode yang dihitung dari kunci rahasia dan waktu, sehingga lebih aman daripada OTP lewat SMS dan tetap bisa dipakai tanpa sinyal. Namun, kodenya masih bisa dicuri lewat phishing real-time, jadi akun admin sebaiknya memakai passkey atau security key.
Mulailah dengan mendata sistem kerja yang masih memakai OTP lewat SMS. Alihkan sistem itu ke TOTP beserta kode pemulihan dan batas percobaan login.
Siap Mengelola Identitas Digital sebagai Strategi Keamanan Bisnis?
Request demo sekarang dan pelajari bagaimana solusi IAM membantu memusatkan proses login pengguna melalui Single Sign-On (SSO), mengotomatisasi onboarding karyawan, serta melindungi data perusahaan dari akses tidak sah tanpa mengganggu produktivitas akibat login berulang.
FAQ
Tidak. TOTP adalah metode pembuatan kode, sedangkan Google Authenticator adalah salah satu aplikasi yang menjalankan metode itu bersama aplikasi lain seperti Microsoft Authenticator.
Keduanya. Login dengan kata sandi dan kode TOTP memakai dua faktor dan termasuk 2FA (two-factor authentication), sedangkan 2FA sendiri adalah bentuk paling sederhana dari MFA.
Bisa, jika kode QR yang sama dipindai di dua perangkat atau aplikasi mendukung pemindahan akun. Untuk akun kerja, batasi praktik ini karena setiap salinan kunci menambah titik yang bisa dicuri.
Tidak perlu selama kunci tidak bocor dan perangkat masih dikuasai pemiliknya. Buat kunci baru setiap kali karyawan mengganti ponsel, kehilangan perangkat, atau ada dugaan basis data kunci dibobol.




