- বাধ্যতামূলক নীতি স্থায়ী: নির্ধারিত সময়সীমার মধ্যে 2FA কনফিগার করতে ব্যর্থ হলে ডেভেলপাররা ওয়েব ইন্টারফেসে কাজ করতে পারবেন না এবং অর্গানাইজেশনের রিপোজিটরি থেকে সাময়িকভাবে বহিষ্কৃত হবেন।
- রিকভারি কোড আপনার শেষ ভরসা: পাওয়া ১৬টি রিকভারি কোড এককালীন ব্যবহারের জন্য। অবিলম্বে এগুলো কোনো এনক্রিপ্টেড ভল্ট অথবা অফলাইন ফিজিক্যাল প্রিন্টআউটে সংরক্ষণ করুন।
- Git পাসওয়ার্ড আর কাজ করে না: HTTPS Git পুশে কোনো ইন্টারঅ্যাক্টিভ ৬-সংখ্যার কোড গ্রহণ করা হয় না। আপনাকে অবশ্যই SSH Keys অথবা স্কোপযুক্ত Personal Access Tokens (PATs) ব্যবহার করতে হবে।
- ক্রিপ্টোগ্রাফিক শেষ সমাধান: ফোন ও কোড হারিয়ে ফেললেও স্থানীয় মেশিনে নিবন্ধিত SSH প্রাইভেট কি দিয়ে আইডেন্টিটি চ্যালেঞ্জ স্বাক্ষর করে অ্যাকাউন্টের মালিকানা প্রমাণ করা সম্ভব।
GitHub বাধ্যতামূলক 2FA পলিসির পর্যালোচনা ও নিরাপত্তা যৌক্তিকতা
অতীতে ডেভেলপারদের অ্যাকাউন্ট হ্যাক হওয়ার কারণে সফটওয়্যার সাপ্লাই চেইনে ভয়াবহ বিপর্যয় ঘটেছে। npm এবং PyPI-তে বহুল ব্যবহৃত লাইব্রেরি যেমন event-stream, ua-parser-js, ctx এবং colors.js ছিনতাই হওয়ার ঘটনা প্রমাণ করে যে একটিমাত্র বেহাত অ্যাকাউন্ট লক্ষ লক্ষ বাণিজ্যিক ও জাতীয় গুরুত্বপূর্ণ পরিকাঠামো প্রকল্পকে ঝুঁকিতে ফেলতে পারে।
আক্রমণকারীরা বিশ্বব্যাপী ক্রেডেনশিয়াল-স্টাফিং তালিকা, ফিশিং পরিকাঠামো এবং ট্রোজানাইজড প্যাকেজের মাধ্যমে পাসওয়ার্ড হাতিয়ে নেয়। সফটওয়্যার ইঞ্জিনিয়াররা সচরাচর সোর্স কোড এবং CI/CD ডিপ্লয়মেন্ট পাইপলাইনে রুট বা অ্যাডমিনিস্ট্রেটিভ পারমিশন নিয়ে কাজ করেন, তাই কোড কমিটকারীদের সুরক্ষিত রাখা বৈশ্বিক পরিকাঠামো নিরাপত্তার অপরিহার্য অংশ হয়ে দাঁড়িয়েছে।
এর পরিপ্রেক্ষিতে GitHub সমস্ত কোড কমিটর, প্যাকেজ পাবলিশার, এন্টারপ্রাইজ ব্যবহারকারী এবং অর্গানাইজেশন সদস্যদের জন্য দ্বি-পদক্ষেপ প্রমাণীকরণ বাধ্যতামূলক করেছে:
- GitHub ওয়েব ইন্টারফেসে ক্যাপটিভ গেট মোডাল প্রদর্শিত হবে, যার ফলে 2FA সেটআপ সম্পন্ন না করা পর্যন্ত পুল রিকোয়েস্ট রিভিউ, ইস্যু কমেন্টিং এবং রিপোজিটরি পরিচালনা বন্ধ থাকবে।
- যেসব এন্টারপ্রাইজ অর্গানাইজেশনে 2FA বাধ্যতামূলক, তারা নিয়ম না মানা সদস্যদের স্বয়ংক্রিয়ভাবে বহিষ্কার করবে, ফলে রাইট অ্যাক্সেস ও রিপোজিটরি পারমিশন সাথে সাথে বাতিল হয়ে যাবে।
- অ্যাকাউন্টের নিরাপত্তা নিশ্চিত না হওয়া পর্যন্ত অটোমেটেড ওয়ার্কফ্লো পাইপলাইন, npm প্যাকেজ পাবলিশিং কি এবং নির্দিষ্ট রিপোজিটরি পারমিশন স্থগিত থাকবে।
ধাপে ধাপে টিউটোরিয়াল: TOTP প্রমাণীকরণকারী পেয়ারিং
GitHub যদিও SMS, মোবাইল নোটিফিকেশন এবং সিকিউরিটি কি সমর্থন করে, তবুও RFC 6238 TOTP Authenticator অ্যাপ (যেমন Google Authenticator, Bitwarden, 2FA-Tool) ভেন্ডর-স্বাধীন এবং অফলাইন নির্ভরযোগ্যতার জন্য সেরা মান হিসেবে বিবেচিত হয়:
ধাপ ১: অথেনটিকেশন সেটিংসে প্রবেশ করুন
GitHub-এ লগইন করুন। ওপরের ডানদিকের প্রোফাইল অ্যাভাটারে ক্লিক করুন ➔ Settings। বাঁদিকের নেভিগেশন সাইডবারে "Access"-এর অধীনে Password and authentication নির্বাচন করুন।
ধাপ ২: QR কোড স্ক্যান করুন এবং মূল Base32 সিক্রেট সংরক্ষণ করুন
GitHub একটি অপটিক্যাল QR কোডের পাশাপাশি "enter this text code instead" (এর পরিবর্তে এই টেক্সট কোড লিখুন) নামের একটি টেক্সট লিংক প্রদর্শন করে।
A3J5N2O9...) কপি করে আপনার এনক্রিপ্টেড পাসওয়ার্ড ম্যানেজারে সংরক্ষণ করুন। আপনার ফোন নষ্ট হয়ে গেলেও এই আলফানিউমেরিক সিড ব্যবহার করে যেকোনো ডিভাইসে টোকেন পুনরায় তৈরি করা যাবে।
ধাপ ৩: নিশ্চিত করতে ৬-সংখ্যার কোড লিখুন
আপনার মোবাইল প্রমাণীকরণকারী দিয়ে কোডটি স্ক্যান করুন। স্ক্রিনে প্রদর্শিত চলমান ৬-সংখ্যার কোডটি GitHub-এর ভেরিফিকেশন বক্সে লিখুন এবং "Continue"-এ ক্লিক করুন।
রিকভারি কোড আর্কাইভিং স্ট্যান্ডার্ড ও ক্রিপ্টোগ্রাফিক সুরক্ষা
সফল TOTP পেয়ারিংয়ের পর GitHub অবিলম্বে ১৬টি হাইফেনযুক্ত হেক্সাডেসিমেল টোকেন (যেমন d4a2b-98f12) প্রদর্শন করে। এই পপ-আপটি ব্যাকআপ না নিয়ে বন্ধ করে দেওয়া ডেভেলপারদের স্থায়ী লকআউটের প্রধান কারণ।
১. এককালীন ব্যবহারযোগ্য: প্রতিটি রিকভারি কোড TOTP-র বিকল্প হিসেবে একবার ব্যবহার করার সাথে সাথেই চিরতরে বাতিল হয়ে যায়।
২. মাস্টার অথরিটি: একটি রিকভারি কোড হার্ডওয়্যার ডিভাইস ছাড়াও অ্যাকাউন্টে তাৎক্ষণিক প্রবেশের অনুমতি দেয়।
৩. জিরো-নলেজ সার্ভার হ্যাশিং: GitHub এই কোডগুলোকে একমুখী অপরিবর্তনীয় ক্রিপ্টোগ্রাফিক হ্যাশ হিসেবে সংরক্ষণ করে। GitHub Support ইঞ্জিনিয়াররা কোনো অবস্থাতেই আপনার মূল কোড দেখতে বা উদ্ধার করতে পারবেন না!
সুপারিশকৃত ৩-স্তর বিশিষ্ট কোল্ড স্টোরেজ কৌশল:
github-recovery-codes.txt ফাইলটি ডাউনলোড করুন এবং Argon2id-ভিত্তিক 1Password, Bitwarden বা KeePassXC-তে আপনার GitHub এন্ট্রির সাথে যুক্ত করে রাখুন।
টেক্সট ফাইলটি একটি VeraCrypt-এনক্রিপ্টেড অফলাইন USB ড্রাইভে সংরক্ষণ করুন যা লোকাল নেটওয়ার্ক এবং ক্লাউড স্টোরেজ থেকে সম্পূর্ণ বিচ্ছিন্ন।
কাগজে প্রিন্ট করুন, পানির হাত থেকে বাঁচাতে লেমিনেট করুন এবং রিমোট ম্যালওয়্যার থেকে সুরক্ষিত রাখতে ঘরের ফায়ারপ্রুফ সেফে রেখে দিন।
ফলব্যাক অথেনটিকেশন পদ্ধতি: SMS বনাম Passkeys বনাম GitHub Mobile
GitHub সেকেন্ডারি ফলব্যাক মেকানিজম কনফিগার করার অনুমতি দেয়। বর্তমান অথেনটিকেশন মাধ্যমগুলোর সুরক্ষা বিশ্লেষণ:
| পদ্ধতি | ফিশিং প্রতিরোধ ক্ষমতা | SIM-সোয়াপ দুর্বলতা | মূল্যায়ন ও ব্যবহারিক ক্ষেত্র |
|---|---|---|---|
| Passkeys / FIDO2 Security Keys | শতভাগ সুরক্ষিত (WebAuthn অরিজিন বাইন্ডিং প্রক্সি ফিশিং প্রতিরোধ করে) | নিরাপদ | ⭐⭐⭐⭐⭐ শীর্ষ সুপারিশকৃত (YubiKey / Touch ID) |
| TOTP Authenticator App | মাঝারি (রিয়েল-টাইম রিভার্স প্রক্সির ক্ষেত্রে ঝুঁকিপূর্ণ) | নিরাপদ | ⭐⭐⭐⭐ সার্বজনীন মানদণ্ড (কোনো ইন্টারনেট সংযোগের প্রয়োজন নেই) |
| GitHub Mobile Push Approval | মাঝারি (২-সংখ্যার নম্বর যাচাইকরণ প্রম্পট আবশ্যক) | নিরাপদ | ⭐⭐⭐⭐ দৈনন্দিন কাজের জন্য দারুণ সুবিধাজনক |
| SMS Verification Fallback | শূন্য (আনএনক্রিপ্টেড SS7 সিগন্যালিং, সহজেই ইন্টারসেপ্ট করা যায়) | অত্যন্ত ঝুঁকিপূর্ণ | ⭐ গুরুত্বপূর্ণ প্রজেক্ট মেইনটেইনারদের জন্য অনুপযুক্ত |
টার্মিনাল Git ওয়ার্কফ্লো: SSH কি, PAT এবং 2FA-র পারস্পরিক ভূমিকা
2FA সক্রিয় করার পর ডেভেলপাররা প্রায়শই রুটিন কোড পুশ করার সময় টার্মিনালে বাধার সম্মুখীন হন:
fatal: Authentication failed for 'https://github.com/username/repo.git/'
প্রযুক্তিগত কারণ: Git ওয়্যার প্রোটোকল ইন্টারঅ্যাক্টিভ ৬-সংখ্যার TOTP ইনপুট পরিচালনা করতে পারে না। ফলে 2FA সক্রিয় থাকলে HTTPS Git রিকোয়েস্টের জন্য GitHub অ্যাকাউন্টের প্লেইন পাসওয়ার্ড অথেনটিকেশন স্থায়ীভাবে বন্ধ করে দিয়েছে।
পাবলিক-কি ক্রিপ্টোগ্রাফি ব্যবহার করে (সুপারিশকৃত: ed25519)। SSH সংযোগ লোকাল ক্রিপ্টোগ্রাফিক প্রাইভেট কি দিয়ে প্রমাণীকরণ সম্পন্ন করে এবং বারবার ক্রেডেনশিয়াল না চেয়ে Web 2FA সম্পূর্ণ বাইপাস করে।
HTTPS ট্রান্সপোর্ট ব্যবহার বাধ্যতামূলক হলে, Settings ➔ Developer settings ➔ Personal access tokens-এ গিয়ে প্রয়োজনীয় পারমিশনসহ একটি টোকেন জেনারেট করুন। CLI-তে পাসওয়ার্ড চাওয়ার সময় আপনার অ্যাকাউন্ট পাসওয়ার্ডের পরিবর্তে PAT পেস্ট করুন।
SSH কমিট সাইনিং বনাম অথেনটিকেশন: মনে রাখবেন, রিপোজিটরি ক্লোন বা পুশ করার জন্য SSH কি ব্যবহার করা এবং ক্রিপ্টোগ্রাফিক কমিট সাইনিং এক বিষয় নয়। আপনি একই Ed25519 কি পেয়ার ব্যবহার করে git config commit.gpgsign true এবং git config gpg.format ssh কমান্ড দিয়ে কমিট সাইন করতে পারেন, যা কঠোর 2FA নিয়ন্ত্রণের পাশাপাশি GitHub-এ ভেরিফায়েড অথর ব্যাজ যুক্ত করে।
জরুরি পুনরুদ্ধার: 2FA ছাড়া লক হওয়া অ্যাকাউন্ট উদ্ধার
আপনার 2FA ফোন নষ্ট হয়ে গেলে এবং রিকভারি কোড হারিয়ে যাওয়ার মতো চরম বিপর্যয়ে GitHub একটি শেষ ক্রিপ্টোগ্রাফিক সুরক্ষা প্রদান করে: The SSH Key Signature Challenge।
লোকালি আপনার GitHub TOTP সিক্রেট পরীক্ষা করুন
সেটআপ সম্পন্ন করার আগে 2FA-Tool-এ আপনার মূল Base32 সিক্রেট স্ট্রিং পরীক্ষা করুন। কোনো সার্ভার ট্রান্সমিশন ছাড়াই ব্রাউজারের Web Crypto দিয়ে সমস্ত হ্যাশ লোকালি হিসাব করা হয়।
📚 সম্পর্কিত নিরাপত্তা গাইড
অফলাইন QR কোড এবং Cloud Sync ব্যবহার করে স্মার্টফোনে নিরাপদে 2FA অ্যাকাউন্ট স্থানান্তর করার পদ্ধতি।
Google, Microsoft, Steam, Binance, Apple এবং Discord অ্যাকাউন্ট পুনরুদ্ধার করার নিয়মাবলী।
RFC 4226 থেকে RFC 6238: গাণিতিক হ্যাশ ট্রাঙ্কেশন, ডিসিঙ্ক্রোনাইজেশন এবং আধুনিক ব্যবহার।