HOTP
HOTP (HMAC-based One-Time Password, RFC 4226) TOTP کا کاؤنٹر پر مبنی ہم منصب ہے۔ جہاں TOTP گھڑی پر آگے بڑھتا ہے، HOTP ایک مشترکہ کاؤنٹر پر آگے بڑھتا ہے جسے ٹوکن اور سرور دونوں ہر استعمال شدہ کوڈ کے ساتھ بڑھاتے ہیں۔
URI scheme:Google Authenticator Key URI Format, the
otpauth:// scheme every authenticator agrees on. Sibling spec:TOTP (RFC 6238), time-based variant that builds on HOTP.
یہ کیا ہے
HOTP اندراج QR otpauth:// اسکیم میں ایک URL ہے جس میں قسم کے طور پر hotp ہے۔ یہ مشترکہ HMAC راز کے ساتھ ایک کاؤنٹر قدر لے جاتا ہے جسے دونوں فریقین کو ہم آہنگ رکھنا ہوگا۔ فارمیٹ:
otpauth://hotp/LABEL?secret=SECRET&issuer=ISSUER&counter=N&digits=N&algorithm=ALG- LABEL,
Issuer:Account، URL-انکوڈڈ۔ مثال:YubiKey:alice@example.com۔ - secret, مشترکہ HMAC کلید، Base32-انکوڈڈ (RFC 4648 §6: A-Z, 2-7)۔
- counter, کاؤنٹر کی ابتدائی قدر۔ عموماً
0، لیکن ٹوکن دوبارہ اندراج کرتے وقت معلوم قدر سے شروع کیا جا سکتا ہے۔ - issuer, تصدیق کنندہ ایپ میں دکھائی دینے والی سروس کا نام۔
- digits,
6(ڈیفالٹ) یا8۔ RFC 4226 §5.3 6 کی وضاحت کرتا ہے؛ 8 ایک عام توسیع ہے۔ - algorithm, عملی طور پر
SHA1۔ RFC 4226 صرف SHA1 کی وضاحت کرتا ہے؛ SHA256/512 ورژن RFC 6238 کی توسیعات ہیں۔
HOTP بمقابلہ TOTP, کب کون سا استعمال کریں
| خاصیت | HOTP (RFC 4226) | TOTP (RFC 6238) |
|---|---|---|
| پر آگے بڑھتا ہے | کاؤنٹر (ہر کامیاب استعمال) | گھڑی (ہر 30 سیکنڈ) |
| گھڑی کی ہم آہنگی درکار | نہیں | ہاں, ~30 سیکنڈ بہاؤ کے اندر |
| بہاؤ پر دوبارہ ہم آہنگی | سرور اگلی N کاؤنٹر قدریں قبول کرتا ہے | سرور ±1 ونڈو قبول کرتا ہے |
| عام استعمال | YubiKey، پرانے ہارڈویئر ٹوکن، آف لائن بینکنگ | تمام صارف 2FA, Google، Microsoft، 1Password، Authy |
| کاؤنٹر کا دوبارہ استعمال | تباہ کن, وقت کے ساتھ راز افشاء کرتا ہے | لاگو نہیں |
| راز لیک ہونے پر خطرہ | تمام مستقبلی کوڈز قابل اندازہ | تمام گزشتہ + مستقبلی کوڈز قابل اندازہ |
کینونیکل ٹیسٹ ویکٹرز
RFC 4226 ضمیمہ D راز 12345678901234567890 (20 بائٹس، Base32 GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ) کے لیے 6 ہندسوں کے آؤٹ پٹ کے ساتھ حوالہ HOTP قدریں فراہم کرتا ہے:
| Counter | HOTP (6-digit) |
|---|---|
0 | 755224 |
1 | 287082 |
2 | 359152 |
3 | 969429 |
4 | 338314 |
5 | 254676 |
6 | 287922 |
7 | 162583 |
8 | 399871 |
9 | 520489 |
کاؤنٹر 0 پر اندراج کے لیے کم سے کم QR پے لوڈ:
otpauth://hotp/Example:test?secret=GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ&issuer=Example&counter=0لائیو Base32 سیکرٹ والیڈیٹر
TOTP صفحے جیسا والیڈیٹر, HOTP سیکرٹ یکساں Base32 حرف تہجی استعمال کرتے ہیں (RFC 4648 §6: A-Z, 2-7)۔ آپ کے براؤزر میں چلتا ہے، کوئی سرور راؤنڈ ٹرپ نہیں۔
عام مسائل
- کاؤنٹر بہاؤ۔ اگر صارف ٹوکن بٹن دبائے لیکن سرور کوڈ درج نہ کرے، تو ٹوکن کاؤنٹر سرور کاؤنٹر سے آگے نکل جاتا ہے۔ سرور 'ری سنک ونڈو' سے اسے سنبھالتے ہیں۔
- کاؤنٹر کا دوبارہ استعمال تباہ کن ہے۔ کبھی بھی ایک ہی کاؤنٹر قدر دو بار قبول نہ کریں۔ RFC 4226 §7.3 سرور کو آخری قبول شدہ کاؤنٹر پر یا اس سے نیچے کوئی بھی کوڈ مسترد کرنے کا حکم دیتا ہے۔
- بیک اپ کے دوران کاؤنٹر ایکسپورٹ۔ HOTP اندراجات ایکسپورٹ کرنے والی تصدیق کنندہ ایپس کبھی کبھی سیکرٹ تو ایکسپورٹ کرتی ہیں لیکن موجودہ کاؤنٹر نہیں۔ نئے ڈیوائس میں درآمد کرنا کاؤنٹر 0 سے دوبارہ شروع کرتا ہے۔
- Base32، Base64 نہیں۔ TOTP جیسا اصول:
0،1،8،9، چھوٹے حروف،+، یا/والے سیکرٹ Base64 ہیں اور ہر RFC-مطابق تصدیق کنندہ مسترد کرے گا۔ - عملی طور پر صرف SHA1۔ RFC 4226 SHA1 کو HMAC فنکشن کے طور پر بیان کرتا ہے۔ SHA256/SHA512 RFC 6238 TOTP دور کی توسیعات ہیں؛ زیادہ تر HOTP ہارڈویئر ٹوکن انہیں نافذ نہیں کرتے۔
- ہندسوں کا پیرامیٹر اکثر نظرانداز۔ بہت سے ہارڈویئر ٹوکن 6 ہندسوں پر مقررہ ہیں اور 8 مانگنے پر خاموشی سے کاٹتے ہیں۔ QR کارڈز پرنٹ کرنے سے پہلے اپنے ہدف ہارڈویئر کے خلاف تصدیق کریں۔
- HOTP اور TOTP کو ایک ہی QR میں نہ ملائیں۔ URI اسکیم موڈ تبدیل کرنے کے لیے
TYPE(hotpvstotp) سیگمنٹ استعمال کرتا ہے۔ ایک راز دونوں کو چلا سکتا ہے، لیکن دونوں بہاؤ راز شیئر کرتے ہیں۔
تصدیق کنندہ مطابقت
| ایپ / ٹوکن | HOTP | SHA256/512 | 8 ہندسے | نوٹس |
|---|---|---|---|---|
| YubiKey Authenticator (iOS/Android/desktop) | Yes | Yes | Yes | HOTP کینونیکل YubiKey OATH موڈ ہے۔ RFC 4226 کی مکمل حمایت۔ |
| Google Authenticator | Yes | نظرانداز (صرف SHA1) | نظرانداز (صرف 6) | ڈی فیکٹو بیس لائن۔ HOTP کے لیے محفوظ لیکن صرف 6 ہندسوں SHA1 کے ساتھ۔ |
| 1Password | Yes | Yes | Yes | RFC کی مکمل حمایت۔ کاؤنٹر اندراج کے ساتھ محفوظ اور ایکسپورٹ کیا جاتا ہے۔ |
| Bitwarden | Yes | Yes | Yes | RFC کی مکمل حمایت۔ |
| Microsoft Authenticator | Yes | Yes | Yes | RFC کی مکمل حمایت۔ |
| Authy | No | , | , | حالیہ ورژنز میں HOTP ہٹا دیا۔ صرف TOTP۔ |
| Duo Mobile | No | , | , | اپنا پش فلو استعمال کرتا ہے؛ صرف TOTP بطور فال بیک۔ |
| OATH hardware tokens (Feitian, Token2, etc.) | Yes | Varies | Varies | کینونیکل ہارڈویئر HOTP مارکیٹ؛ ہمیشہ 6 ہندسے SHA1 جب تک ڈیٹا شیٹ کچھ اور نہ کہے۔ |
مزید دیکھیں
- /hotp-qr-code/, لائیو کاؤنٹر + Base32 تصدیق کے ساتھ HOTP جنریٹر۔
- /standards/totp/, وقت پر مبنی ہم منصب (RFC 6238)۔
- /totp-2fa-qr-code/, TOTP جنریٹر۔
- /standards/, معیارات کے انڈیکس پر واپس۔