পাঠ ৪০ · ৬০-এর মধ্যে · মডিউল ৮
Home / Courses / Cybersecurity & Ethical Hacking / WiFi সিকিউরিটি

WiFi সিকিউরিটি — WEP, WPA, WPA2, WPA3

WiFi security — WEP, WPA, WPA2, WPA3
৮ মিনিট পড়া মধ্যম · Intermediate Python কোডসহ সম্পূর্ণ বাংলায়

এই পাঠে যা শিখবেন

  • WEP, WPA, WPA2, WPA3 — প্রতিটির মূল অ্যালগরিদম ও পরিচিত দুর্বলতা
  • KRACK আক্রমণ সংক্ষেপে কী এবং কেন এটি WPA2-কে প্রভাবিত করে
  • WPA3-এর SAE কীভাবে দুর্বল পাসওয়ার্ডেও অফলাইন ডিকশনারি অ্যাটাক প্রতিরোধ করে
  • একটি ঘরোয়া/অফিস WiFi নেটওয়ার্ক হার্ডেন করার ব্যবহারিক চেকলিস্ট

১ · WEP — যেখানে শুরু, এবং কেন পুরোপুরি ভেঙে গেছে

WEP (Wired Equivalent Privacy)WEP১৯৯৭ সালের প্রথম WiFi এনক্রিপশন স্ট্যান্ডার্ড — বর্তমানে সম্পূর্ণ ভাঙা এবং কখনো ব্যবহার করা উচিত নয়। ছিল ১৯৯৭ সালের প্রথম WiFi এনক্রিপশন স্ট্যান্ডার্ড — নাম অনুযায়ী এটি তারযুক্ত (wired) নেটওয়ার্কের সমান গোপনীয়তা দেওয়ার লক্ষ্যে তৈরি। কিন্তু এর ডিজাইনে দুটি মৌলিক সমস্যা ছিল: দুর্বল RC4 স্ট্রিম সাইফার ব্যবহার, এবং একটি ছোট ও ঘন ঘন পুনরাবৃত্ত Initialization Vector (IV) — যার ফলে যথেষ্ট ট্রাফিক সংগ্রহ করলে (সাধারণত মিনিটের মধ্যে) পাবলিকলি উপলব্ধ টুল দিয়েই কী উদ্ধার করা সম্ভব। WEP আজ কেবল ইতিহাস ও শিক্ষামূলক প্রেক্ষাপটে প্রাসঙ্গিক — কোনো আধুনিক নেটওয়ার্কে এটি ব্যবহার করার কোনো কারণ নেই।

২ · WPA — একটি সাময়িক প্যাচ

WEP-এর দুর্বলতা প্রকাশ পাওয়ার পর, শিল্প দ্রুত একটি অন্তর্বর্তী সমাধান হিসেবে WPA (২০০৩) চালু করে — যা TKIP (Temporal Key Integrity Protocol) ব্যবহার করে, একই RC4 ভিত্তির উপর, কিন্তু IV পুনরাবৃত্তি সমস্যা সমাধান করে। এটি একটি ইচ্ছাকৃত সাময়িক ("স্টপগ্যাপ") সমাধান ছিল — পুরনো হার্ডওয়্যারেও ফার্মওয়্যার আপডেট দিয়ে চালানো যেত — কিন্তু এখনো নিজে যথেষ্ট শক্তিশালী নয়, এবং এখন ব্যাপকভাবে অপ্রচলিত।

৩ · WPA2 — বহু বছরের স্ট্যান্ডার্ড, তবু নিখুঁত নয়

WPA2 (২০০৪) RC4 সম্পূর্ণ বাদ দিয়ে AES-CCMP চালু করে — একটি অনেক শক্তিশালী, আধুনিক এনক্রিপশন ভিত্তি। বহু বছর ধরে এটি নির্ভরযোগ্য ছিল, কিন্তু দুটি বাস্তব দুর্বলতা প্রকাশ পেয়েছে:

KRACK (২০১৭)
Key Reinstallation Attack — WPA2-এর ৪-ওয়ে হ্যান্ডশেক প্রোটোকলের একটি ত্রুটি কাজে লাগিয়ে, একজন আক্রমণকারী একটি ইতিমধ্যে-ব্যবহৃত এনক্রিপশন কী পুনরায় ইনস্টল করাতে বাধ্য করতে পারে — যার ফলে কিছু ট্রাফিক ডিক্রিপ্ট করা সম্ভব হতে পারে।
দুর্বল পাসফ্রেজে ডিকশনারি অ্যাটাক
WPA2-এর ৪-ওয়ে হ্যান্ডশেক ক্যাপচার করে, একজন আক্রমণকারী অফলাইনে (নেটওয়ার্কের সাথে সরাসরি আর যোগাযোগ না করেই) একটি সাধারণ পাসওয়ার্ড তালিকা দিয়ে ডিকশনারি অ্যাটাক চালাতে পারে (L30 দ্রষ্টব্য)।

লক্ষণীয়, KRACK প্রোটোকল-লেভেল একটি ডিজাইন-বাস্তবায়ন সমস্যা ছিল, AES এনক্রিপশন অ্যালগরিদম নিজে ভাঙেনি — ঠিক L39-এ আমরা যেমন দেখেছি, বেশিরভাগ বাস্তব ক্রিপ্টো দুর্বলতা গণিতে নয়, ইমপ্লিমেন্টেশনে।

৪ · WPA3 — SAE দিয়ে হ্যান্ডশেকের মূল দুর্বলতা দূর

WPA3 (২০১৮) WPA2-এর ৪-ওয়ে হ্যান্ডশেক সম্পূর্ণ প্রতিস্থাপন করে SAESimultaneous Authentication of EqualsWPA3-এর নতুন হ্যান্ডশেক পদ্ধতি — Dragonfly হ্যান্ডশেক নামেও পরিচিত — যা অফলাইন ডিকশনারি অ্যাটাক প্রতিরোধ করে, এমনকি পাসওয়ার্ড দুর্বল হলেও। দিয়ে — একটি এমন হ্যান্ডশেক ডিজাইন যেখানে আক্রমণকারী শুধু হ্যান্ডশেক ক্যাপচার করে অফলাইনে অগণিত পাসওয়ার্ড অনুমান চেষ্টা করতে পারে না; প্রতিটি অনুমান-প্রচেষ্টার জন্য প্রকৃতপক্ষে নেটওয়ার্কের সাথে সরাসরি ইন্টার‌অ্যাক্ট করতে হয় — যা অনেক ধীর ও সহজে শনাক্তযোগ্য করে তোলে। WPA3 আরও যোগ করে forward secrecyForward Secrecyএকটি বৈশিষ্ট্য যেখানে বর্তমান সেশন কী ভবিষ্যতে ফাঁস হলেও, আগে ক্যাপচার করা পুরনো এনক্রিপ্টেড ট্রাফিক এখনো ডিক্রিপ্ট করা যায় না। — অর্থাৎ ভবিষ্যতে কোনো কী ফাঁস হলেও, আগে ক্যাপচার করে রাখা পুরনো ট্রাফিক এখনো নিরাপদ থাকে।

৫ · কোড: প্রোটোকল বিবর্তনের একটি তুলনামূলক টেবিল

নিচের কোডটি একটি dictionary ব্যবহার করে চারটি প্রোটোকলের বছর, মূল কী-অ্যালগরিদম, ও পরিচিত দুর্বলতা একত্রে প্রিন্ট করে — একটি দ্রুত রেফারেন্স হিসেবে।

Python
wifi_protocols = {
    "WEP":  {"year": 1997, "key_algorithm": "RC4 (দুর্বল, ছোট IV)",
             "known_weakness": "মিনিটের মধ্যে ক্র্যাক করা যায় — ব্যবহার সম্পূর্ণ নিষিদ্ধ"},
    "WPA":  {"year": 2003, "key_algorithm": "TKIP (RC4-ভিত্তিক প্যাচ)",
             "known_weakness": "সাময়িক সমাধান, নিজেও দুর্বল, বর্তমানে অপ্রচলিত"},
    "WPA2": {"year": 2004, "key_algorithm": "AES-CCMP",
             "known_weakness": "KRACK (2017) ও দুর্বল পাসফ্রেজে অফলাইন ডিকশনারি অ্যাটাক"},
    "WPA3": {"year": 2018, "key_algorithm": "SAE (Dragonfly হ্যান্ডশেক)",
             "known_weakness": "দুর্বল পাসওয়ার্ডেও অফলাইন ডিকশনারি অ্যাটাক প্রতিরোধী, forward secrecy যুক্ত"},
}

print("WiFi সিকিউরিটি প্রোটোকলের বিবর্তন:")
print()
for protocol, info in wifi_protocols.items():
    print(f"{protocol} ({info['year']})")
    print(f"   কী অ্যালগরিদম: {info['key_algorithm']}")
    print(f"   পরিচিত দুর্বলতা: {info['known_weakness']}")
    print()

    
ব্যবহারিক প্রতিরক্ষা চেকলিস্ট
  • সবসময় WPA2 বা WPA3 ব্যবহার করুন — কখনো WEP বা open (কোনো এনক্রিপশন ছাড়া) নেটওয়ার্ক নয়।
  • একটি দীর্ঘ, অনুমান-অযোগ্য পাসফ্রেজ ব্যবহার করুন (L30-এর key-space নীতি এখানেও প্রযোজ্য)।
  • WPS (Wi-Fi Protected Setup) বন্ধ রাখুন — এর ৮-ডিজিট PIN পদ্ধতি একটি সুপরিচিত দুর্বল-PIN আক্রমণ ভেক্টর।
  • রাউটার ফার্মওয়্যার নিয়মিত আপডেট রাখুন — KRACK-এর মতো প্রোটোকল-লেভেল সমস্যা ফার্মওয়্যার প্যাচ দিয়েই সমাধান করা হয়েছিল।

ভাবনার প্রশ্ন

প্রতিটি প্রশ্ন নিজে কিছুক্ষণ ভাবুন — তারপর "→ উত্তর" চাপুন।

প্র ০১ KRACK আক্রমণ AES এনক্রিপশন অ্যালগরিদম নিজে ভাঙেনি, তাহলে এটি কীভাবে WPA2-এর নিরাপত্তা ভঙ্গ করতে পারল?

KRACK আক্রমণ করে WPA2-এর ৪-ওয়ে হ্যান্ডশেক প্রোটোকলের একটি লজিক্যাল ত্রুটিতে — কীভাবে কী পুনঃইনস্টল করা হয় সেই প্রক্রিয়ায় — AES অ্যালগরিদম নিজে অক্ষতই থাকে। এটি ঠিক L39-এর বার্তার আরেকটি বাস্তব উদাহরণ: একটি শক্তিশালী এনক্রিপশন অ্যালগরিদম থাকা যথেষ্ট নয়, সেটাকে ঘিরে থাকা প্রোটোকল ও ইমপ্লিমেন্টেশনও নিখুঁত হতে হবে।

প্র ০২ WPA3-এর SAE কেন দুর্বল পাসওয়ার্ডেও অফলাইন ডিকশনারি অ্যাটাক প্রতিরোধ করতে পারে, যেখানে WPA2 পারে না?

WPA2-এ, একবার ৪-ওয়ে হ্যান্ডশেক ক্যাপচার হয়ে গেলে, আক্রমণকারী নিজের কম্পিউটারে অফলাইনে — নেটওয়ার্কের সাথে আর কোনো যোগাযোগ ছাড়াই — লাখো পাসওয়ার্ড দ্রুত পরীক্ষা করতে পারে। WPA3-এর SAE ডিজাইন করা হয়েছে এমনভাবে যে প্রতিটি একক পাসওয়ার্ড-অনুমান আসলে নেটওয়ার্কের সাথে একটি সরাসরি ইন্টার‌অ্যাকশন দাবি করে — তাই আক্রমণকারী অফলাইনে বসে হাজারো অনুমান দ্রুত চালাতে পারে না, প্রতিটি অনুমানই ধীর এবং নেটওয়ার্কে শনাক্তযোগ্য চিহ্ন রেখে যায়।

প্র ০৩ একটি রাউটার এখনো WEP সমর্থন করলেও, কেন সেটাকে কখনো ব্যবহার করা উচিত নয় — এমনকি "পুরনো ডিভাইস কম্প্যাটিবিলিটির" জন্যও?

WEP-এর দুর্বলতা এতটাই মৌলিক (RC4 + ছোট IV) যে এটি সাধারণ, পাবলিকলি উপলব্ধ টুল দিয়েই মিনিটের মধ্যে ভাঙা যায় — এটি এনক্রিপশনের বদলে কার্যত একটি মিথ্যা নিরাপত্তা-অনুভূতি দেয়। যদি কোনো পুরনো ডিভাইস শুধু WEP সমর্থন করে, সঠিক সমাধান হলো সেই ডিভাইসটিকে একটি সম্পূর্ণ আলাদা, সীমিত-সুবিধার নেটওয়ার্ক সেগমেন্টে বিচ্ছিন্ন রাখা (L41-এ IoT সেগমেন্টেশনের ধারণা), কখনোই পুরো নেটওয়ার্ককে WEP-এ নামিয়ে আনা নয়।

অনুশীলন

  1. পরীক্ষা করুন: উপরের কোড সেলে wifi_protocols dictionary-তে একটি নতুন এন্ট্রি "Open (কোনো এনক্রিপশন নেই)" যোগ করুন যার key_algorithm হলো "কোনোটিই নয়" এবং known_weakness হলো "সব ট্রাফিক প্লেইনটেক্সটে দৃশ্যমান (L08 দ্রষ্টব্য)" — Run চেপে দেখুন এটা তালিকার শেষে কীভাবে প্রিন্ট হয়।

    dictionary-তে insertion-order বজায় থাকে বলে (Python 3.7+), নতুন এন্ট্রিটি লুপে সবার শেষে প্রিন্ট হবে, ঠিক অন্য এন্ট্রিগুলোর মতোই একই ফরম্যাটে। এটি স্পষ্ট করে দেখায় যে "Open" WiFi আসলে একটি প্রোটোকলই নয় — এটি এনক্রিপশনের সম্পূর্ণ অনুপস্থিতি, এবং L08-এর প্যাকেট-অ্যানালাইসিস পাঠে যেমন দেখা গেছে, তখন যেকোনো পাসওয়ার্ড বা ডেটা সরাসরি প্লেইনটেক্সটে দৃশ্যমান হয়ে যায় নেটওয়ার্কে থাকা যে কারো কাছে।

  2. চিন্তা করুন: একটি ক্যাফের ফ্রি পাবলিক WiFi (কোনো পাসওয়ার্ড ছাড়াই, বা সবার জানা একটি সাধারণ পাসওয়ার্ড দিয়ে) ব্যবহার করার সময় কেন একটি VPN (L07) ব্যবহার করা এখনো গুরুত্বপূর্ণ, এমনকি যদি সেই WiFi WPA2 ব্যবহার করেও?

    একটি পাবলিক নেটওয়ার্কে WPA2/WPA3 এনক্রিপশন মূলত ক্লায়েন্ট-থেকে-রাউটার লিংককে অন্য বাইরের ব্যক্তিদের থেকে রক্ষা করে — কিন্তু যদি পাসওয়ার্ডটি সর্বজনীনভাবে জানা থাকে (একটি ক্যাফের দেয়ালে লেখা), তাহলে যেকোনো অন্য গ্রাহকও সেই একই এনক্রিপশন কী জানে এবং তাত্ত্বিকভাবে ট্রাফিক ডিক্রিপ্ট করতে সক্ষম হতে পারে, অথবা রাউটার নিজেই compromised/malicious হতে পারে (L09-এর MITM ধারণা)। একটি VPN একটি অতিরিক্ত, স্বতন্ত্র এনক্রিপশন স্তর যোগ করে যা পুরো নেটওয়ার্ককেই অবিশ্বস্ত ধরে নেয় — একটি অতিরিক্ত প্রতিরক্ষা স্তর (defense in depth)।

আরও পড়ুন · ABCL TECH-এ আপনার পরবর্তী পদক্ষেপ

আগের পাঠ
ক্রিপ্টোগ্রাফিক অ্যাটাক — ব্রুট ফোর্স ও রেইনবো টেবিল