- لازمی نفاذ مستقل ہے: مقررہ ڈیڈ لائن تک 2FA ترتیب دینے میں ناکام رہنے والے ڈویلپرز کو ویب پر کارروائیاں کرنے سے روک دیا جاتا ہے اور آرگنائزیشن کی ریپوزٹریز سے ان کی رسائی منسوخ کر دی جاتی ہے۔
- ریکوری کوڈز آپ کا لائف جیکٹ ہیں: تیار کردہ 16 ریکوری کوڈز یک بارگی (single-use) استعمال کے لیے ہیں۔ انہیں فوری طور پر کسی انکرپٹڈ والٹ یا آف لائن فزیکل پرنٹ آؤٹ میں محفوظ کریں۔
- Git پاس ورڈز اب کام نہیں کرتے: HTTPS Git پش انٹرایکٹو 6 ہندسوں کے کوڈز کو قبول نہیں کر سکتے۔ آپ کو SSH Keys یا مخصوص دائرہ کار والے Personal Access Tokens (PATs) استعمال کرنے ہوں گے۔
- کرپٹوگرافک آخری چارہ: اگر آپ کا فون اور کوڈز دونوں ضائع ہو جائیں، تو آپ اپنی پہلے سے رجسٹرڈ مقامی SSH پرائیویٹ کی کے ذریعے شناختی چیلنج پر دستخط کر کے ملکیت ثابت کر سکتے ہیں۔
GitHub کی لازمی 2FA پالیسی کا جائزہ اور سیکیورٹی کی وجوہات
تاریخی طور پر، ڈویلپرز کی چوری شدہ اسناد نے سافٹ ویئر سپلائی چین میں تباہ کن سیکیورٹی نقائص کو جنم دیا۔ معروف واقعات — جیسے npm اور PyPI پر event-stream، ua-parser-js، ctx، اور colors.js کے اکاؤنٹس پر قبضہ — نے ثابت کیا کہ ایک واحد چوری شدہ اکاؤنٹ لاکھوں تجارتی اور اہم بنیادی ڈھانچے کے منصوبوں کو خطرے میں ڈال سکتا ہے۔
حملہ آور عالمی کریڈینشل سٹفنگ لسٹوں، فشنگ انفراسٹرکچر، اور ٹروجن زدہ ڈویلپر ڈیپینڈینسیز کا استعمال کر کے اسناد چراتے ہیں۔ چونکہ سافٹ ویئر انجینئرز معمول کے مطابق سورس کوڈ اور CI/CD ڈیپلائمنٹ پائپ لائنز تک روٹ یا ایڈمنسٹریٹو رسائی کے ساتھ کام کرتے ہیں، اس لیے کوڈ کمٹ کرنے والوں کو محفوظ بنانا بین الاقوامی انفراسٹرکچر کی حفاظت کا سنگین مسئلہ بن گیا۔
اس کے جواب میں، GitHub نے ایک کثیر مرحلہ وار عالمگیر مینڈیٹ نافذ کیا جس کے تحت تمام کوڈ کمٹرز، پیکیج پبلشرز، انٹرپرائز صارفین، اور آرگنائزیشن کے اراکین کے لیے ٹو فیکٹر توثیق (2FA) لازمی قرار دی گئی:
- GitHub کا ویب انٹرفیس ایک کیپٹیو گیٹ ماڈل میں داخل ہو جاتا ہے، جس سے پل ریکویسٹ کے جائزے، ایشوز پر تبصرے، اور ریپوزٹری ایڈمنسٹریشن اس وقت تک معطل رہتی ہے جب تک کہ 2FA سیٹ اپ مکمل نہ ہو جائے۔
- 2FA نافذ کرنے والی انٹرپرائز تنظیمیں غیر تعمیل کرنے والے اراکین کو خودکار طور پر باہر نکال دیں گی، جس سے رائٹ رسائی چھین لی جائے گی اور ریپوزٹری کے تمام اختیارات فوری طور پر منسوخ ہو جائیں گے۔
- اکاؤنٹ سیکیورٹی کی تعمیل کی تصدیق ہونے تک خودکار ورک فلو پائپ لائنز، npm پیکیج پبلشنگ کیز، اور تفصیلی ریپوزٹری اجازتیں منجمد رہتی ہیں۔
مرحلہ وار ٹیوٹوریل: TOTP تصدیق کار کی پیئرنگ
اگرچہ GitHub SMS، موبائل اطلاعات، اور ہارڈ ویئر کیز کو سپورٹ کرتا ہے، لیکن RFC 6238 TOTP تصدیق کار ایپ (جیسے Google Authenticator، Bitwarden، 2FA-Tool) وینڈر کی آزادی اور آف لائن وشوسنییتا کے لیے گولڈ سٹینڈرڈ مانی جاتی ہے:
مرحلہ 1: توثیقی ترتیبات پر جائیں
GitHub میں لاگ ان کریں۔ اوپری دائیں کونے میں اپنے پروفائل اوتار پر کلک کریں ➔ Settings۔ بائیں نیویگیشن سائڈبار میں "Access" کے تحت، Password and authentication منتخب کریں۔
مرحلہ 2: QR کوڈ اسکین کریں اور اصل Base32 سیکریٹ محفوظ کریں
GitHub ایک آپٹیکل QR کوڈ پیش کرتا ہے جس کے ساتھ ایک ٹیکسٹ لنک ہوتا ہے جس پر درج ہے: "enter this text code instead"۔
A3J5N2O9...) کاپی کریں۔ اسے اپنے انکرپٹڈ پاس ورڈ مینیجر میں محفوظ کریں۔ یہ حروف نمبری بیج (seed) آپ کو کسی بھی ڈیوائس پر توثیقی ٹوکنز دوبارہ تیار کرنے کے قابل بناتا ہے اگر آپ کا فون خراب یا چوری ہو جائے۔
مرحلہ 3: تصدیق کے لیے 6 ہندسوں کا کوڈ درج کریں
اپنے موبائل تصدیق کار سے کوڈ اسکین کریں۔ اپنی اسکرین پر ظاہر ہونے والے گھومتے ہوئے 6 ہندسوں کے نمبر کو GitHub کے تصدیقی ان پٹ فیلڈ میں درج کریں اور "Continue" پر کلک کریں۔
ریکوری کوڈز آرکائیونگ کے معیارات اور کرپٹوگرافک تدابیر
کامیاب TOTP پیئرنگ کے فوراً بعد، GitHub 16 ہائفن والے ہیکساڈیسیمل ٹوکنز (مثلاً d4a2b-98f12) کے ساتھ ایک ماڈل ظاہر کرتا ہے۔ مستقل بیک اپ کے بغیر اس ونڈو کو بند کر دینا ڈویلپر اکاؤنٹس کے مستقل طور پر مقفل ہو جانے کی سب سے بڑی وجہ ہے۔
1. صرف یک بارگی استعمال: ہر ریکوری کوڈ TOTP کوڈ کے متبادل کے طور پر اپنے پہلے استعمال پر ناقابلِ واپسی طور پر غیر معتبر ہو جاتا ہے۔
2. مکمل حاکمیت: ہارڈ ویئر نہ ہونے کی صورت میں ریکوری کوڈ فوری طور پر اکاؤنٹ تک رسائی فراہم کرتا ہے۔
3. زیرو نالج سرور ہیشنگ: GitHub ان کوڈز کو ناقابلِ واپسی یک طرفہ کرپٹوگرافک ہیشز کے طور پر اسٹور کرتا ہے۔ GitHub سپورٹ انجینئرز کسی بھی صورت میں آپ کے اصل کوڈز کو بحال یا پڑھ نہیں سکتے!
تجویز کردہ تھری ٹائر کولڈ اسٹوریج حکمت عملی:
github-recovery-codes.txt ڈاؤن لوڈ کریں اور اسے Argon2id سے اخذ کردہ ماسٹر کیز کا استعمال کرتے ہوئے 1Password، Bitwarden، یا KeePassXC میں اپنے GitHub اندراج کے ساتھ منسلک کریں۔
ٹیکسٹ فائل کو VeraCrypt سے انکرپٹ شدہ آف لائن USB ڈرائیو میں محفوظ کریں جسے مقامی نیٹ ورکس اور کلاؤڈ اسٹوریج سنکرونائزرز سے مکمل منقطع رکھا گیا ہو۔
ایک فزیکل کاغذی کاپی پرنٹ کریں، اسے نمی سے محفوظ رکھنے کے لیے لیمینیٹ کریں، اور ریموٹ معلومات چوری کرنے والے میلویئر (info-stealers) سے بچاؤ کے لیے اسے گھر کے فزیکل لاک باکس میں محفوظ کریں۔
متبادل (فال بیک) توثیقی طریقے: SMS بمقابلہ Passkeys بمقابلہ GitHub Mobile
GitHub ثانوی فال بیک میکانزم ترتیب دینے کی اجازت دیتا ہے۔ موجودہ توثیقی ذرائع کے بارے میں ہماری سیکیورٹی درجہ بندی کا جائزہ لیں:
| طریقہ کار | فشنگ کے خلاف مزاحمت | SIM-Swap خطرہ | جائزہ اور عملی استعمال |
|---|---|---|---|
| Passkeys / FIDO2 سیکیورٹی کیز | مطلق (WebAuthn اوریجن بائنڈنگ پراکسی فشنگ کو روکتی ہے) | محفوظ | ⭐⭐⭐⭐⭐ بہترین تجویز (YubiKey / Touch ID) |
| TOTP تصدیق کار ایپ | معتدل (ریئل ٹائم ریورس پراکسیز کا خطرہ ہو سکتا ہے) | محفوظ | ⭐⭐⭐⭐ عالمگیر معیار (انٹرنیٹ کنکشن کی ضرورت نہیں) |
| GitHub Mobile پش منظوری | معتدل (2 ہندسوں کے نمبر کی توثیقی پرامپٹ درکار ہے) | محفوظ | ⭐⭐⭐⭐ روزمرہ کی بہترین سہولت |
| SMS تصدیقی فال بیک | صفر (غیر انکرپٹڈ SS7 سگنلنگ، آسانی سے روکی جا سکتی ہے) | انتہائی زیادہ خطرہ | ⭐ اہم پروجیکٹ مینٹینرز کے لیے ہرگز تجویز نہیں کیا جاتا |
ٹرمینل Git ورک فلوز: SSH کیز، PATs اور 2FA کا باہمی تعامل
2FA فعال کرنے کے بعد، ڈویلپرز کو روٹین کوڈ پش کے دوران اکثر ٹرمینل کی خرابیوں کا سامنا کرنا پڑتا ہے:
fatal: Authentication failed for 'https://github.com/username/repo.git/'
تکنیکی وجہ: Git وائر پروٹوکول انٹرایکٹو 6 ہندسوں کے TOTP مکالموں کو سنبھال نہیں سکتا۔ نتیجتاً، GitHub نے 2FA نافذ ہونے پر HTTPS Git درخواستوں کے لیے اکاؤنٹ کے اصل پاس ورڈ کی توثیق کو مستقل طور پر غیر فعال کر دیا ہے۔
پبلک کی کرپٹوگرافی کا استعمال کرتا ہے (تجویز کردہ: ed25519)۔ SSH کنکشن مقامی کرپٹوگرافک پرائیویٹ کیز کے ذریعے توثیق کرتے ہیں اور بار بار اسناد طلب کیے بغیر ویب 2FA کو مکمل طور پر بائی پاس کرتے ہیں۔
اگر HTTPS ٹرانسپورٹ لازمی ہے، تو مخصوص دائرہ کار والا ٹوکن بنانے کے لیے Settings ➔ Developer settings ➔ Personal access tokens پر جائیں۔ CLI میں پاس ورڈ مانگے جانے پر، اپنے اکاؤنٹ کے پاس ورڈ کے بجائے PAT چسپاں کریں۔
SSH کمٹ سائننگ بمقابلہ توثیق: یاد رہے کہ ریپوزٹریز کو کلون اور پش کرنے کے لیے SSH کی کا استعمال کرپٹوگرافک کمٹ سائننگ سے الگ ہے۔ آپ git config commit.gpgsign true اور git config gpg.format ssh کے ساتھ کمٹ پر دستخط کرنے کے لیے وہی Ed25519 کی پیئر استعمال کر سکتے ہیں، جس سے سخت 2FA رسائی کنٹرول کے ساتھ ساتھ GitHub پر تصدیق شدہ مصنف کے بیجز تیار ہوتے ہیں۔
تباہی کے بعد بحالی: 2FA کے بغیر مقفل اکاؤنٹس کو انلاک کرنا
ایسی تباہ کن صورت حال میں جہاں آپ کا 2FA فون گم ہو جائے اور آپ کی ریکوری کوڈ کی دستاویز بھی ضائع ہو جائے، GitHub ایک حتمی کرپٹوگرافک لائف جیکٹ پیش کرتا ہے: SSH Key سگنیچر چیلنج۔
مقامی طور پر اپنے GitHub TOTP سیکریٹ کی جانچ کریں
سیٹ اپ مکمل کرنے سے پہلے، 2FA-Tool میں اپنی اصل Base32 خفیہ سٹرنگ کی جانچ کریں۔ تمام ہیشز براؤزر Web Crypto API کے ذریعے مقامی طور پر بغیر کسی سرور ٹرانسمیشن کے شمار کیے جاتے ہیں۔
📚 متعلقہ سیکیورٹی گائیڈز
آف لائن QR کوڈز اور کلاؤڈ سنک کا استعمال کرتے ہوئے اسمارٹ فونز کے درمیان 2FA اکاؤنٹس کو محفوظ طریقے سے منتقل کرنا۔
Google، Microsoft، Steam، Binance، Apple، اور Discord پر رسائی دوبارہ حاصل کرنے کا طریقہ۔
RFC 4226 سے RFC 6238: ریاضیاتی ہیش ٹرنکیشن، عدم مطابقت (desynchronization)، اور ویب پر اپنایا جانا۔