رموز QR لـ TOTP 2FA شرح

غوص عميق تقني في صيغة otpauth:// URI وأسرار base32 ورياضيات RFC 6238 TOTP.

ما هو TOTP

TOTP (Time-based One-Time Password، RFC 6238) هي الخوارزمية الكامنة خلف Google Authenticator و Authy و 1Password و Bitwarden وكل تطبيق مصادقة آخر. ينتج رمزاً بستة أرقام يتغير كل 30 ثانية بناءً على سر مشترك والوقت الحالي بصيغة Unix.

URI otpauth

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

مخطط URI هو otpauth://، والنوع هو totp (الخيار الآخر هو hotp، قائم على العداد)، ثم التسمية، ثم معاملات الاستعلام. تحلل تطبيقات المصادقة هذا URI وتضيفه إلى خزنة المستخدم بمسح واحد.

التسمية

صيغة اختيارية: Issuer:account@example.com. بادئة Issuer زائدة عن الحاجة مع معامل الاستعلام issuer لكن معظم التطبيقات تحترم كليهما.

السر

سلسلة بايتات مرمزة بـ base32 (A-Z و 2-7، بدون حشو). يوصى بـ 128 بت على الأقل, معظم الخوادم تستخدم 160 بت (32 حرف base32). لا تقوم أبداً بترميز URL السر؛ اتركه كـ base32 خام.

الخوارزمية والأرقام والفترة

algorithm: SHA1 (افتراضي، مدعوم عالمياً)، SHA256، أو SHA512. digits: 6 (افتراضي) أو 8. period: 30 ثانية (افتراضي) أو 60. التزم بالافتراضيات ما لم تكن لديك سبب, بعض تطبيقات المصادقة لا تنفذ الخيارات غير الافتراضية.

كيف يتم حساب الكود

في كل فترة 30 ثانية، يقوم المصادق بـ: HMAC-SHA1(secret, floor(unix_time / 30))، يأخذ آخر 4 بتات من HMAC كإزاحة ديناميكية، يقرأ 4 بايتات بدءاً من هذه الإزاحة، يقنع إلى 31 بت، و يقلل modulo بـ 106 للحصول على رمز بستة أرقام.

استخدم Abundera QR لإنشاء واحد

افتح منشئ TOTP، ملء المُصدّر (اسم علامتك التجارية)، والحساب (بريد المستخدم أو اسم المستخدم)، وسر base32. القيم الافتراضية للخوارزمية/الأرقام/الفترة صحيحة لكل خادم تقريباً. قم بتحميل PNG وأرسله بالبريد الإلكتروني أو رسالة نصية للمستخدم, أو ضمنه في سير التسجيل.

ملاحظة الخصوصية

سر TOTP الخاص بك هو بيانات اعتماد مشتركة بين الخادم والمستخدم. Abundera QR لا ترى كلاً منهما. يحدث كل الترميز في المتصفح. اقرأ سياسة الخصوصية الكاملة.