- بنیادی ان پٹ کا فرق: HOTP مسلسل بڑھنے والے کاؤنٹر C (monotonically increasing counter C) سے ہیش شمار کرتا ہے، جبکہ TOTP کاؤنٹر C کی جگہ ایپوک ٹائم سٹیپ T (CurrentUnixTime / 30) کا استعمال کرتا ہے۔
- براہ راست وراثت: TOTP ریاضیاتی طور پر HOTP کی ایک خصوصی شکل ہے:
TOTP(K, Time) = HOTP(K, T)۔ دونوں الگورتھم بالکل وہی Dynamic Truncation فنکشن استعمال کرتے ہیں۔ - آرکیٹیکچرل فیصلہ کن عنصر: HOTP اسٹیٹ فل (stateful) ہے (سرورز کو ہر لاگ ان کی توثیق پر کاؤنٹرز کو ڈیٹا بیس میں لاک اور محفوظ کرنا پڑتا ہے)۔ TOTP اسٹیٹ لیس (stateless) ہے، جو جدید کلاؤڈ مائیکرو سروسز کو مرکزی ڈیٹا بیس پر رائٹ آپریشنز کے بغیر، ڈسٹری بیوٹڈ لوڈ بیلنسڈ کلسٹرز میں ٹوکنز کی تصدیق کرنے کی اجازت دیتا ہے۔
تاریخی بنیادیں: ملکیتی ہارڈ ویئر ٹوکنز سے اوپن ویب معیارات تک
2000 کی دہائی کے اوائل میں، کارپوریٹ ٹو فیکٹر توثیق پر RSA SecurID جیسے ملکیتی فزیکل ٹوکنز کا غلبہ تھا۔ ان بند اور مہنگے آلات میں اندرونی کوارٹز کرسٹل موجود تھے جو ملکیتی انٹرپرائز سرورز کے ساتھ ہم آہنگ تھے۔ اگر کوئی تنظیم ہزاروں ملازمین کو ملٹی فیکٹر سیکیورٹی فراہم کرنا چاہتی، تو ہارڈ ویئر کی خریداری اور لائسنس کے اخراجات بے پناہ تھے۔
توثیق کو نجی وینڈرز سے آزاد کرانے کے لیے، صنعت کے رہنماؤں نے OATH (Initiative for Open Authentication) کنسورشیم تشکیل دیا تاکہ اوپن، رائلٹی سے پاک IETF معیارات فراہم کیے جا سکیں جن کا کوئی بھی سافٹ ویئر انجینئر آزادانہ طور پر معائنہ، نفاذ اور آڈٹ کر سکے:
HMAC-Based One-Time Password Algorithm۔ فزیکل پش بٹن والے کم طاقت والے مائیکرو کنٹرولرز کے لیے تیار کیا گیا۔ بٹن دبانے سے اندرونی کاؤنٹر بڑھتا ہے اور LCD اسکرین پر 6 ہندسوں کا ٹوکن پرنٹ ہوتا ہے۔
Time-Based One-Time Password Algorithm۔ اسمارٹ فونز کے بڑھتے ہوئے پھیلاؤ کے ساتھ ڈیزائن کیا گیا۔ سیلولر NTP نیٹ ورک ٹائم سنکرونائزیشن کا فائدہ اٹھاتے ہوئے، TOTP نے فزیکل بٹن کی عدم مطابقت کے مسائل کو جڑ سے ختم کر دیا۔
HOTP (RFC 4226) آرکیٹیکچر اور ڈائنامک ٹرنکیشن بائٹ میکانکس
HOTP کی بنیادی ریاضیاتی تعریف بظاہر انتہائی جامع اور مختصر ہے:
پیرامیٹرز کی تفصیل:
K: مشترکہ سڈول خفیہ کلید (shared symmetric secret key - عام طور پر Base32 ڈیکوڈ شدہ 160-bit / 20-byte بائنری سیکوئنس)۔C: 8-byte (64-bit) بگ اینڈین انٹیجر کاؤنٹر۔HMAC-SHA-1: کلید والی ہیش میسج توثیقی کوڈ جو 20-byte (160-bit) کا کرپٹوگرافک ڈائجسٹ تیار کرتا ہے۔
🔍 ڈائنامک ٹرنکیشن (DT) 20 بائٹس کو 6 ہندسوں میں کیسے بدلتا ہے:
ایک HMAC-SHA1 ڈائجسٹ میں 160 بٹس (20 بائٹس) ہوتے ہیں۔ یکساں 6 اعشاری ہندسوں کو نکالنے کے لیے ایک متعین، تصادم کے خلاف مزاحم انتخابی طریقہ کار درکار ہوتا ہے جیسا کہ RFC 4226 کے سیکشن 5.3 میں بیان کیا گیا ہے:
فرض کریں کہ خفیہ کلید ASCII "12345678901234567890" ہے اور کاؤنٹر C = 0 ہے۔ ہیکساڈیسیمل میں حاصل ہونے والا HMAC-SHA1 ڈائجسٹ ہے:
1. آخری بائٹ 0x71 ہے۔ 0x71 & 0x0F = 0x01، اس لیے Offset = 1۔
2. بائٹس 1 تا 4 ہیں: 93 cf 18 50۔ MSB کو صفر کرنے پر حاصل ہوتا ہے 0x13cf1850، جو اعشاری نظام میں 332,339,280 ہے۔
3. 332339280 mod 1000000 = 339280۔ نتیجہ 6 ہندسوں کا OTP ہے: 339280!
TOTP (RFC 6238) کا ارتقا: ٹائم سٹیپ کا جادو
HOTP میں کلائنٹ پر موجود کاؤنٹر کو سرور کے ساتھ مستقل ہم آہنگ رکھنا لازمی تھا۔ سافٹ ویئر ڈیوائسز پر، بٹن دبانے یا کی اسٹروکس کی گنتی میں مسلسل انسانی غلطی واقع ہو سکتی ہے۔
RFC 6238 نے کاؤنٹر C کی جگہ یونکس ایپوک کلاک سے اخذ کردہ ایک الگ الگ ٹائم سٹیپ T متعارف کرایا:
- CurrentUnixTime: یکم جنوری 1970 00:00:00 UTC سے گزرے ہوئے سیکنڈز۔
- T0: ایپوک ابتداء کا حوالہ (جدید تمام نظاموں میں پہلے سے طے شدہ 0)۔
- X (ٹائم سٹیپ ونڈو): معیاری تجویز کردہ مدت 30 سیکنڈز۔
- فلور فنکشن ⌊ ⌋: 30 سیکنڈ کی ونڈو کے اندر کسی بھی ٹائم اسٹیمپ کے لیے، T کی قیمت مستقل رہتی ہے۔ مثال کے طور پر، ایپوک سیکنڈز 1728211200 اور 1728211229 کے درمیان، T بالکل وہی 64 بٹ انٹیجر رہتا ہے۔
بائنری سیریلائزیشن: ایک بار جب T شمار ہو جائے، تو اسے 8 بائٹ بگ اینڈین بائنری بائٹ بفر میں پیک کیا جاتا ہے (جو میموری اسٹرکچر میں HOTP کے کاؤنٹر C سے ہو بہو مطابقت رکھتا ہے)۔ نتیجے کے طور پر، متفقہ فارمولا اس طرح آسان ہو جاتا ہے:
TOTP(K, Time) = HOTP(K, T)
یہ خوبصورت ریاضیاتی حقیقت واضح کرتی ہے کہ توثیق کار ایپس مستقل حالت کو سنکرونائز کیے بغیر ہر 30 سیکنڈ بعد ٹوکنز کو خودکار طور پر کیسے بدلتی ہیں۔
HS[31] & 0x0F) سے لیا جاتا ہے؛ SHA-512 (64 بائٹ ڈائجسٹ) میں، آفسیٹ بائٹ 63 (HS[63] & 0x0F) سے لیا جاتا ہے۔ تاہم، 99.9% تجارتی پلیٹ فارمز (Google، Microsoft، GitHub، AWS) پر، پرانے موبائل کلائنٹس کی مطابقت کی وجہ سے SHA-1 ہی سب سے عام معیار کے طور پر استعمال ہوتا ہے۔
آمنے سامنے تفصیلی موازنہ جدول (HOTP بمقابلہ TOTP)
| پہلو | HOTP (RFC 4226) | TOTP (RFC 6238) |
|---|---|---|
| ان پٹ متغیر | ایونٹ کاؤنٹر C (مسلسل بڑھنے والا) | ٹائم سٹیپ T (30 سیکنڈ کی یونکس ایپوک ونڈو) |
| ٹوکن کی میعاد | غیر معینہ (اگلے لاگ ان تک درست) | سخت 30 سیکنڈز (خودکار منسوخی) |
| سرور آرکیٹیکچر | اسٹیٹ فل (ہر لاگ ان پر ڈیٹا بیس میں رائٹس لازمی) | اسٹیٹ لیس (آزادانہ NTP تصدیق) |
| ری پلے حملے کا خطرہ | معتدل (چوری شدہ ٹوکن استعمال تک کارآمد رہتا ہے) | کم ترین (صرف موجودہ ونڈو کے باقی سیکنڈز تک محدود) |
| بنیادی خرابی کی نوعیت | کاؤنٹر کی عدم مطابقت (غلطی سے بٹن دبنا) | کلاک ڈرفٹ (موبائل فون کے وقت میں فرق) |
| معاون کرپٹوگرافک ہیشز | صرف HMAC-SHA-1 | HMAC-SHA-1, HMAC-SHA-256, HMAC-SHA-512 |
| صنعت میں اپنایا جانا | پرانے بینکنگ فوبس، مخصوص فزیکل گیٹس | 99.9% جدید ویب تصدیق کار ایپس |
ڈی سنکرونائزیشن بمقابلہ ٹائم ڈرفٹ: تکنیکی حل
ڈسٹری بیوٹڈ پروڈکشن ماحول میں، کلائنٹس اور سرورز کے درمیان وقت کا تفاوت فطری ہے۔ کرپٹوگرافرز نے وشوسنییتا برقرار رکھنے کے لیے واضح تلافی کرنے والی ونڈوز وضع کیں:
اگر کوئی صارف لاگ ان کیے بغیر 5 بار ٹوکن کا بٹن دباتا ہے، تو کلائنٹ کا کاؤنٹر C+5 پر پہنچ جاتا ہے جبکہ سرور C پر رہتا ہے۔
RFC 4226 بتاتا ہے کہ توثیق کے وقت سرور [C+1, C+s] (عام طور پر s=20) پر مشتمل آگے دیکھنے والی ونڈو کا حساب لگاتا ہے۔ اگر مماثلت مل جائے، تو سرور آگے بڑھتا ہے اور فوری طور پر کاؤنٹر C کو ہم آہنگ کر لیتا ہے۔
نیٹ ورک کی تاخیر یا کلائنٹ ڈیوائس کلاک ڈرفٹ (مثلاً فون کی گھڑی 10 سیکنڈ پیچھے چل رہی ہو) کی وجہ سے، ٹوکنز قریبی ٹائم اسٹیپس میں موصول ہو سکتے ہیں۔
پروڈکشن سرورز 3 ونڈوز کی ارے کی جانچ کرتے ہیں: [T-1, T, T+1]، جس سے قبولیت کی ونڈو مؤثر طریقے سے 90 سیکنڈ تک وسیع ہو جاتی ہے۔
جب سرورز اس بات کی توثیق کرتے ہیں کہ آیا صارف کا درج کردہ کوڈ متوقع کوڈ سے مماثل ہے، تو عام سٹرنگ موازنہ (جیسے userOtp === serverOtp) پہلے بے جوڑ کریکٹر پر ہی عمل بند کر دیتا ہے۔ باریک نیٹ ورک رسپانس ٹائمز کی پیمائش کر کے ایک حملہ آور ہندسوں کو ایک ایک کر کے حاصل کر سکتا ہے۔ انٹرپرائز بیک اینڈز سائیڈ چینل ٹائمنگ کے تجزیے کو ناکام بنانے کے لیے مستقل وقت کی مساوات کے موازنے (جیسے Node.js میں crypto.timingSafeEqual) کو سختی سے نافذ کرتے ہیں۔
TOTP نے جدید انٹرنیٹ پر فتح کیوں حاصل کی
ویب پر HOTP کے مقابلے TOTP کی فیصلہ کن کامیابی تین اہم آرکیٹیکچرل خوبیوں کی بدولت حاصل ہوئی:
کثیر علاقائی مائیکرو سروسز میں، NTP سے مطابقت پذیر گھڑی رکھنے والا کوئی بھی سرور مرکزی ڈیٹا بیس کے ریکارڈ کو پوچھے یا لاک کیے بغیر TOTP ٹوکنز کی توثیق کر سکتا ہے۔
اسمارٹ فونز سیلولر بیس اسٹیشنز اور GPS کے ذریعے اپنے سسٹم کی گھڑیوں کو خودکار کیلیبریٹ کرتے رہتے ہیں، جس سے کسی الگ دیکھ بھال کے بغیر کلاک ڈرفٹ ختم ہو جاتا ہے۔
HOTP ٹوکن استعمال ہونے تک غیر معینہ مدت تک درست رہتے ہیں۔ TOTP ٹوکنز 30 سیکنڈ میں ختم ہو جاتے ہیں، جس سے سمجھوتہ شدہ لاگز اور نیٹ ورک پر پکڑے گئے پیکٹس خود بخود بیکار ہو جاتے ہیں۔
2FA-Tool میں ریئل ٹائم TOTP حسابی عمل کا تجربہ کریں
دیکھیں کہ آپ کی Base32 خفیہ سٹرنگ HMAC-SHA1 ڈائنامک ٹرنکیشن کے ذریعے متحرک 6 ہندسوں کے کوڈز میں کیسے تبدیل ہوتی ہے۔ آپ کے براؤزر میں 100% آف لائن۔
📚 متعلقہ سیکیورٹی گائیڈز
آف لائن QR کوڈز اور کلاؤڈ سنک کا استعمال کرتے ہوئے اسمارٹ فونز کے درمیان 2FA اکاؤنٹس کو محفوظ طریقے سے منتقل کرنے کا طریقہ۔
تعمیل کے اصول، ریکوری کوڈز کو محفوظ کرنا، SSH کیز کا تعامل، اور بحالی کے ورک فلوز۔
Google، Microsoft، Steam، Binance، Apple، اور Discord پر رسائی بحال کرنے کا طریقہ۔