Kod QR TOTP 2FA Dijelaskan

Satu gambaran mendalam teknikal ke dalam format URI otpauth://, rahasia base32, dan matematik TOTP RFC 6238.

Apakah TOTP

TOTP (Kata Laluan Sekali Masa Berbasis Masa, RFC 6238) adalah algoritma di sebalik Google Authenticator, Authy, 1Password, Bitwarden, dan setiap aplikasi pemula lain. Ia menghasilkan kod 6 digit yang berubah setiap 30 saat berdasarkan rahasia bersama dan masa Unix semasa.

URI otpauth

otpauth://totp/Issuer:account@example.com?secret=BASE32SECRET&issuer=Issuer&algorithm=SHA1&digits=6&period=30

Skim URI adalah otpauth://, jenisnya adalah totp (pilihan lain adalah hotp, berasaskan pembilang), kemudian label, kemudian parameter pertanyaan. Aplikasi penyetempat menghuraikan URI ini dan menambahkannya ke peti pengguna dengan satu imbasan.

Label

Format pilihan: Issuer:account@example.com. Awalan Issuer berlebihan dengan parameter pertanyaan issuer tetapi kebanyakan aplikasi menghormati keduanya.

Rahasia

Rentetan bait yang dikodkan base32 (A-Z dan 2-7, tiada penjajaran). Sekurang-kurangnya 128 bit disyorkan, kebanyakan pelayan menggunakan 160 bit (32 aksara base32). Jangan pernah mengekod URL rahasia; biarkan apa adanya base32 mentah.

Algoritma, digit, tempoh

algorithm: SHA1 (lalai, disokong secara universal), SHA256, atau SHA512. digits: 6 (lalai) atau 8. period: 30 saat (lalai) atau 60. Kekal dengan lalai melainkan anda mempunyai sebab, beberapa aplikasi penyetempat tidak melaksanakan pilihan bukan lalai.

Bagaimana kod dikira

Pada setiap selang 30 saat, penyetempat melakukan: HMAC-SHA1(secret, floor(unix_time / 30)), mengambil 4 bit terakhir HMAC sebagai ofset dinamik, membaca 4 bait bermula dari ofset itu, topeng hingga 31 bit, dan mengurangkan modulo dengan 106 untuk mendapatkan kod 6 digit.

Gunakan Abundera QR untuk menjana satu

Buka penjana TOTP, isi penerbit (nama jenama anda), akaun (e-mel pengguna atau nama pengguna), dan rahasia base32. Lalai untuk algoritma/digit/tempoh adalah betul untuk hampir setiap pelayan. Muat turun PNG dan e-mel atau SMS kepada pengguna, atau setelkan dalam aliran pendaftaran anda.

Nota privasi

Rahasia TOTP anda adalah bukti bersama antara pelayan dan pengguna. Abundera QR tidak pernah melihat sama ada. Semua pengekodan berlaku dalam penyemak imbas. Baca dasar privasi lengkap.