Utilia

Generator Kode TOTP dan HOTP

Buat kode 2FA TOTP dan HOTP dari secret Base32 atau URI otpauth://, dengan SHA-1, SHA-256, atau SHA-512, hitung mundur langsung, dan kode QR.

Secret 2FA sama sensitifnya dengan kata sandi. Semua di sini berjalan secara lokal di browser Anda: secret, kode, dan kode QR tidak pernah dikirim ke mana pun.

Siapkan aplikasi authenticator

Tambahkan penerbit dan nama akun, lalu pindai kode QR atau salin tautan otpauth:// ke aplikasi authenticator Anda.

Cara membuat kode TOTP

  1. Tempel secret Base32 (misalnya JBSWY3DPEHPK3PXP) atau tautan otpauth:// lengkap ke Secret (Base32) atau URI otpauth://. Spasi, tanda hubung, huruf kecil, dan padding = yang hilang semuanya diterima.
  2. Kode muncul saat Anda mengetik, atau saat Anda mengklik Tampilkan kode. URI yang ditempel otomatis mengisi kolom Jenis, Algoritme, Digit, Periode (detik), Penerbit, dan Akun.
  3. Baca Kode saat ini di tengah, dengan Kode sebelumnya dan Kode berikutnya di kedua sisinya. Bilah di bawahnya menghitung mundur detik sebelum kode berganti, dan Salin kode menyalinnya tanpa spasi.
  4. Untuk kode berbasis penghitung, pilih HOTP (berbasis penghitung), atur Penghitung, lalu gunakan Penghitung berikutnya untuk maju.
  5. Untuk membuat secret 2FA baru, klik Secret acak baru. Isi Penerbit dan Akun, lalu pindai kode QR dengan aplikasi authenticator, klik Salin URI, atau Unduh kode QR (PNG).

Cara kerja TOTP dan HOTP

HOTP (RFC 4226) menghitung HMAC dari penghitung 8 byte dengan secret bersama, lalu menerapkan dynamic truncation: empat bit terakhir HMAC memilih sebuah offset, empat byte dibaca dari posisi itu, bit teratas dikosongkan, dan bilangannya direduksi modulo 10^digit. Hasilnya adalah kode 6 hingga 8 digit.

TOTP (RFC 6238) adalah HOTP yang penghitungnya berupa langkah waktu saat ini: T = floor(waktu Unix / periode), dengan periode bawaan 30 detik. Ponsel Anda dan server menghitung kode yang sama secara terpisah, karena keduanya berbagi secret dan (kurang lebih) jam yang sama. Itulah sebabnya Kode sebelumnya dan Kode berikutnya ditampilkan: server biasanya menerima satu langkah sebelum atau sesudahnya untuk menoleransi selisih jam.

HMAC dijalankan dengan Web Crypto API milik browser Anda memakai SHA-1, SHA-256, atau SHA-512. SHA-1 dengan 6 digit dan 30 detik adalah yang dipakai hampir semua layanan; SHA-256 dan SHA-512 diizinkan oleh RFC 6238, tetapi sebagian aplikasi mengabaikannya, jadi ubah pengaturan bawaan hanya jika layanan memintanya.

URI otpauth:// dan kode QR

Aplikasi authenticator disiapkan dengan URI seperti otpauth://totp/Example:alice@example.com?secret=…&issuer=Example&algorithm=SHA1&digits=6&period=30, yang biasanya ditampilkan sebagai kode QR. Alat ini membaca URI semacam itu (termasuk label berenkode persen seperti ACME%20Co) dan membuat URI baru. Kode QR digambar secara lokal dari URI yang ditampilkan di bawah URI otpauth://.

Secret acak baru berukuran 20 byte (160 bit), panjang yang disarankan RFC 4226, dan diambil dari crypto.getRandomValues.

Tips keamanan

  • Secret adalah faktor kedua itu sendiri: siapa pun yang memilikinya bisa menghasilkan kode Anda. Jangan menempelkan secret akun penting di komputer bersama, dan jangan pernah membagikan tangkapan layar kode QR.
  • Semua dihitung secara lokal; tidak ada yang dikirim lewat jaringan. Tutup tab setelah selesai.
  • Simpan kode cadangan dari layanan: secret yang hilang tidak bisa dipulihkan.

Pertanyaan yang sering diajukan

Mengapa kode saya tidak cocok dengan yang ada di aplikasi?

Periksa jam perangkat Anda terlebih dahulu: kode TOTP berganti setiap periode, sehingga jam yang meleset lebih dari sekitar 30 detik menghasilkan kode yang berbeda. Kemudian pastikan algoritme, jumlah digit, dan periode sesuai dengan yang dipakai layanan.

Apakah alat ini kompatibel dengan Google Authenticator dan aplikasi serupa?

Ya. Alat ini mengikuti RFC 6238 dan format URI otpauth yang dipakai aplikasi tersebut. Pindai kode QR atau ketik secret Base32 di aplikasi, dan keduanya seharusnya menampilkan Kode saat ini yang sama.

Apa bedanya TOTP dan HOTP?

TOTP bergerak maju seiring waktu, sehingga kode kedaluwarsa setelah periodenya habis. HOTP bergerak maju dengan penghitung yang bertambah setiap kali kode dipakai, sehingga kode tetap berlaku sampai dipakai atau diganti.

Bisakah saya memakai alat ini sebagai authenticator sehari-hari?

Alat ini ditujukan untuk pengujian, pengembangan, dan pemulihan. Aplikasi ponsel atau kunci hardware lebih aman untuk pemakaian harian, karena secret tidak perlu ditempelkan ke halaman web setiap kali.

Apakah perhitungannya sudah diperiksa terhadap standar?

Ya. Alat ini diuji dengan nilai HOTP dari RFC 4226 Lampiran D dan nilai TOTP dari RFC 6238 Lampiran B untuk SHA-1, SHA-256, dan SHA-512.