কম্পিউটার টিউটোরিয়াল

নেটওয়ার্ক সিকিউরিটিতে বেসিক অথেন্টিকেশন (Basic Authentication) কী?

HTTP Basic Authentication: কাজ করার পদ্ধতি, সিকিউরিটি ইস্যু ও বেস্ট প্র্যাকটিস

Basic Authentication কী?

HTTP Basic Authentication হলো HTTP প্রোটোকলের বিল্ট-ইন একটি সিম্পল অথেন্টিকেশন স্কিম। ক্লায়েন্ট রিকোয়েস্ট হেডারে `Authorization` ফিল্ড পাঠায় যার ফরম্যাট: Authorization: Basic <base64(username:password)>

কীভাবে কাজ করে?

  1. ক্লায়েন্ট রিকোয়েস্ট পাঠায় (Authorization হেডার ছাড়া)
  2. সার্ভার ৪০১ Unauthorized রেসপন্স দেয় সাথে `WWW-Authenticate: Basic realm="..."` হেডার
  3. ব্রাউজার/ক্লায়েন্ট ইউজারনেম/পাসওয়ার্ড চেয়ে (ডায়ালগ বক্স দেখায়)
  4. ক্লায়েন্ট `username:password` কে Base64 এনকোড করে `Authorization: Basic ` হেডার দিয়ে রিকোয়েস্ট পাঠায়
  5. সার্ভার ডিকোড করে যাচাই করে, সফল হলে ২০০ OK, ব্যর্থ হলে ৪০১/৪০৩

উদাহরণ

# Username: demo, Password: p@55w0rd
# Plain: demo:p@55w0rd
# Base64: ZGVtbzpwQDU1dzByZA==
Authorization: Basic ZGVtbzpwQDU1dzByZA==

নোট: Base64 এনকোডিং ≠ এনক্রিপশন। কেউ যেকোনো সময় ডিকোড করে পাসওয়ার্ড পেতে পারে।

Basic Auth-এর সিকিউরিটি সমস্যা

  • ক্রেডেনশিয়াল প্রতি রিকোয়েস্টে পাঠায়: CSRF, লগ লিকেজ রিস্ক
  • Base64 সহজে ডিকোড হয়: HTTPS ছাড়া কেউ স্নিফ করতে পারে
  • লগআউট মেকানিজম নেই: ব্রাউজার বন্ধ না পর্যন্ত ক্যাশে থাকে
  • পাসওয়ার্ড রোটেশন কঠিন: ক্লায়েন্ট সাইডে আপডেট করা চ্যালেঞ্জিং
  • MFA সাপোর্ট নেই: শুধু ইউজারনেম/পাসওয়ার্ড

Basic Auth কখন নিরাপদ?

শুধু HTTPS (TLS 1.2+) এর ওপর ব্যবহার করলে। TLS ছাড়া Basic Auth ব্যবহার করা বড় সিকিউরিটি রিস্ক।

Windows Basic Authentication vs Windows Authentication

ফিচারBasic AuthWindows Auth (Integrated/Kerberos/NTLM)
ক্রেডেনশিয়াল যাচাইডাটাবেস/ফাইল বনামActive Directory Domain Controller
সিঙ্গেল সাইন-অন (SSO)নাহ্যাঁ (Kerberos/NTLM SPNEGO)
ডোমেন জয়েন প্রয়োজননাহ্যাঁ
ইন্টারনেট-ফেসিং অ্যাপের জন্যউপযুক্ত (HTTPS+s)উপযুক্ত নয় (KerberosConstrained Delegation প্রয়োজন)

Basic Authentication ইনেবল/ডিজেবল করা (IIS/Windows Server)

  1. Server Manager > Manage > Add Roles and Features
  2. Web Server (IIS) > Web Server > Security > Basic Authentication টিক দিন
  3. या PowerShell: Enable-WindowsOptionalFeature -Online -FeatureName IIS-BasicAuthentication
  4. IIS Manager > Site > Authentication > Basic Authentication > Enable/Disable

আধুনিক বিকল্প (Modern Alternatives) - Basic Auth বাদ দিয়ে

  1. OAuth 2.0 / OpenID Connect: Industry standard, টোকেন-ভিত্তিক, MFA সাপোর্ট
  2. JWT (JSON Web Tokens): স্টেটলেস, স্কেলেবল, মাইক্রোসার্ভিসের জন্য আদর্শ
  3. API Keys / Bearer Tokens: সিম্পল, রিভোকেবল, স্কোপ-ভিত্তিক
  4. Certificate-based Auth (mTLS): পারস্পরিক অথেন্টিকেশন, zelo সিকিউর
  5. FIDO2/WebAuthn/Passkeys: পাসওয়ার্ডলেস, ফিশিং-রেজিস্ট্যান্ট

Basic Auth এখনো কোথায় ব্যবহার হয়?

  • লিগ্যাসি অ্যাপ্লিকেশন / এমবেডেড ডিভাইস
  • সিম্পল ইন্টারন্যাল টুলস (HTTPS-এর ওপর)
  • Docker Registry, npm Registry, Git over HTTP
  • Server-to-Server কমিউনিকেশন (মিউচুয়াল TLS না থাকা ক্ষেত্রে)
  • টেস্টিং/ডেভেলপমেন্ট এনভায়রনমেন্ট

বেস্ট প্র্যাকটিস Basic Auth ব্যবহার করলে অবশ্যই

  • HTTPS বাধ্যতামূলক (HSTS, Certificate Pinning)
  • স্ট্রং পাসওয়ার্ড পলিসি + রোটেশন
  • Rate Limiting / Account Lockout
  • Audit Logging (Failed/Successful attempts)
  • Short-lived Credentials (Service Accounts-এর জন্য)
  • Network Level Restriction (IP Whitelist, VPN Only)
  1. নেটওয়ার্ক সিকিউরিটি কী? ধরন, গুরুত্ব এবং বাস্তব উদাহরণ

  2. নেটওয়ার্ক সিকিউরিটি আইডি/কী কী এবং কীভাবে খুঁজে বের করবেন

  3. নেটওয়ার্ক সিকিউরিটি কী? প্রকার, গুরুত্ব ও কাজ করার পদ্ধতি

  4. নেটওয়ার্ক সিকিউরিটিতে অথোরাইজেশন কী?