Kode verifikasi harus bertahan cukup lama untuk sampai dan diketik, sekaligus membatasi peluang menebak atau menggunakannya kembali. Ukur alur verifikasi secara lengkap sebelum memilih durasinya.
Berapa lama kode verifikasi sebaiknya tetap valid?
Berikan waktu tidak lebih dari sepuluh menit untuk kode autentikasi yang dikirim, termasuk pengiriman dan pengetikan.
Panduan autentikasi NIST menetapkan batas maksimum tersebut untuk autentikasi melalui saluran terpisah. Panduan ini juga mengharuskan server menerima kode hanya sekali, mencegah penggunaan ulang setelah autentikasi berhasil.
Tandai kode sebagai telah digunakan saat berhasil. Tolak pengiriman ulang kode tersebut meskipun belum kedaluwarsa.
Sepuluh menit adalah batas maksimum, bukan durasi yang disarankan. Pilih jendela lebih pendek jika hasil pengukuran pengiriman dan pengetikan Anda mendukungnya.
Kode yang membutuhkan empat puluh detik untuk sampai menyisakan sembilan menit dua puluh detik dalam jendela sepuluh menit. Sertakan waktu membaca dan mengetik saat menggunakan hasil pengukuran waktu tiba Anda.
Kode yang dihasilkan aplikasi autentikator mengikuti model waktu yang berbeda. Gunakan aturan TOTP atau HOTP yang sesuai jika aplikasi menghasilkan kode secara lokal.
Berapa digit yang diperlukan?
Gunakan minimal enam digit yang dihasilkan secara acak. Tetapkan batas percobaan tebakan gagal.
NIST mengharuskan minimal enam digit desimal dari generator acak yang disetujui untuk rahasia autentikasi yang dikirim. Penghitung atau stempel waktu yang dapat diprediksi tidak memenuhi persyaratan tersebut.
Enam digit acak menghasilkan satu juta kemungkinan kode. Lima tebakan berbeda memiliki lima peluang dalam satu juta, atau satu dalam dua ratus ribu.
Hitung percobaan gagal terhadap akun. NIST mengharuskan kode baru mempertahankan hitungan tersebut, sehingga pengiriman ulang tidak dapat menciptakan tebakan tanpa batas.
Batas percobaan juga memerlukan jalur pemulihan bagi pengguna sah yang menghabiskannya. Tentukan cara mereka mendapatkan kembali akses tanpa mereset batas tersebut bagi penyerang.
Haruskah saya menggunakan delapan digit?
Gunakan delapan digit jika probabilitas tebakan yang lebih kecil sebanding dengan dua digit tambahan yang harus diketik pengguna.
Delapan digit acak menghasilkan seratus juta kemungkinan kode. Dengan lima tebakan, peluangnya menjadi lima dalam seratus juta.
Itu seratus kali lebih rendah daripada lima tebakan terhadap enam digit. Pertahankan batas percobaan yang sama saat menambah panjang kode.
Kode yang lebih panjang tidak memperbaiki tebakan tanpa batas. Terapkan batas percobaan sebelum menganggap digit tambahan sebagai perlindungan yang memadai.
Apa yang dapat saya konfigurasi di Bird?
Atur kebijakan kode verifikasi workspace. Periksa pengaturan resolved yang dikembalikan untuk setiap verifikasi.
| Field | Yang harus dipilih |
|---|---|
code_length | Bird menerima 4 hingga 8 karakter. Pilih minimal enam untuk kebijakan ini |
code_type | Periksa set karakter yang dikembalikan, numeric atau alphanumeric |
ttl_seconds | Bird menerima 1 hingga 59940 detik. Pertahankan jendela autentikasi pada 600 detik atau kurang |
max_attempts | Pilih 1 hingga 10 pengiriman salah sebelum verifikasi gagal |
resend_cooldown_seconds | Pilih 0 hingga 3600 detik antara pengiriman ke penerima |
Durasi yang diizinkan API melampaui rekomendasi autentikasi ini. Tetapkan nilainya secara sengaja alih-alih menganggap nilai maksimum yang diterima sebagai kedaluwarsa yang sesuai.
Permintaan verifikasi dapat menimpa code_length untuk verifikasi tersebut. Periksa kebijakan resolved-nya saat menyelidiki perilaku yang berbeda dari konfigurasi workspace.
Apa yang sebaiknya saya pilih?
- Mulai dengan enam digit acak dan batas percobaan kecil yang diterapkan ketat.
- Tentukan jendela validitas dari waktu pengiriman dan pengetikan yang terukur, dalam batas sepuluh menit.
- Gunakan delapan digit jika tindakan tersebut memerlukan probabilitas tebakan yang lebih kecil.
- Terapkan penggunaan sekali pakai dan pertahankan hitungan percobaan gagal saat menerbitkan kode baru.
Singkatnya
Berikan waktu tidak lebih dari sepuluh menit.
Pengiriman dan pengetikan sama-sama menghabiskan jendela validitas. Pilih durasi lebih pendek jika hasil pengukuran alur Anda mendukungnya.
Gunakan minimal enam digit acak.
Hitung tebakan gagal selain memilih panjang kode. Kode yang lebih panjang tidak menggantikan batas percobaan.
Terima setiap kode hanya sekali.
Tolak kode yang sudah pernah diterima meskipun jendela validitasnya belum berakhir.
Pertahankan hitungan percobaan saat pengiriman ulang.
Menerbitkan kode baru tidak boleh memberikan akun tersebut jatah tebakan baru.