اسمت چیه؟

برای شروع یک دموی امنیتی کوتاه، اسمت رو وارد کن.

وبلاگ

هندشیک WPA2، آسیب‌پذیری PMKID و حمله KRACK: چرا WPA3 به وجود آمد؟

این مقاله صرفاً برای افزایش سواد امنیتی و آشنایی با تاریخچه‌ی آسیب‌پذیری‌های شناخته‌شده و علنی وای‌فای نوشته شده — یک مرور مفهومی و تاریخی است، نه یک راهنمای عملیاتی. هیچ دستور اجرایی، هیچ روش دور زدن رمز عبور، و هیچ راهنمای ساخت شبکه‌ی جعلی در این متن وجود ندارد. تست امنیت هر شبکه‌ای، حتی با ابزارهای کاملاً قانونی، فقط باید روی تجهیزات خودتان یا در یک محیط آزمایشگاهی/آموزشی مجاز انجام شود؛ دسترسی به شبکه‌ی دیگران بدون اجازه‌ی کتبی صاحب آن، مستقل از هر ابزار یا روشی، جرم است. این مقاله هیچ مسئولیتی در قبال سوءاستفاده از اطلاعات عمومی و منتشرشده‌ای که در آن مرور می‌شود ندارد.

چرا این تاریخچه اهمیت دارد؟
WPA2 برای سال‌ها «استاندارد امن» صنعت وای‌فای بود. ولی دو کشف امنیتی جداگانه — یکی در سال ۲۰۱۷ و دیگری در ۲۰۱۸ — نشان داد که حتی یک استاندارد رمزنگاری‌شده و پذیرفته‌شده‌ی جهانی هم می‌تواند نقطه‌ضعف داشته باشد؛ نه به‌خاطر رمز عبور ضعیف کاربر، بلکه گاهی در خودِ طراحی پروتکل. فهمیدن این تاریخچه دقیقاً همان چیزی است که به یک مهندس شبکه یا کارشناس امنیت کمک می‌کند تصمیم‌های درست‌تری درباره‌ی زیرساخت وای‌فای بگیرد.

هندشیک ۴ مرحله‌ای WPA2 دقیقاً چه کاری انجام می‌دهد؟
هر بار که یک دستگاه به یک شبکه‌ی WPA/WPA2 وصل می‌شود، بین آن دستگاه و اکسس‌پوینت یک تبادل رمزنگاری‌شده به‌نام 4-Way Handshake رخ می‌دهد. هدف این تبادل این است که هر دو طرف ثابت کنند رمز عبور صحیح (PSK) را می‌دانند، بدون این‌که خودِ رمز عبور مستقیماً روی هوا فرستاده شود — دقیقاً همان اصل پایه‌ای رمزنگاری که «هرگز رمز خام را منتقل نکن، فقط اثبات دانستن آن را منتقل کن».

در این چهار پیام، یک کلید نشست به‌نام PTK از ترکیب پسفریز شبکه، دو مقدار تصادفی (Nonce) که هرکدام از یک طرف تولید می‌شود، و آدرس‌های MAC هر دو دستگاه ساخته می‌شود. این طراحی به‌طور نظری قوی است — مشکل از جایی شروع می‌شود که خودِ این تبادل، هرچند رمزنگاری‌شده است، به‌طور کامل از دید ناظر بیرونی هم پنهان نیست؛ کسی که روی هوا گوش می‌دهد، می‌تواند این تبادل را ببیند و ذخیره کند، حتی اگر معنای آن را مستقیم نفهمد.

آسیب‌پذیری PMKID (۲۰۱۸): وقتی روتر خودش اطلاعات اضافه می‌دهد
اوایل سال ۲۰۱۸، Jens Steube (یکی از سازندگان ابزار معروف hashcat) در حین تحقیق روی نسل بعدی وای‌فای (WPA3)، به‌طور کاملاً اتفاقی متوجه یک نکته شد: بسیاری از اکسس‌پوینت‌ها، مقداری به‌نام PMKID را داخل یکی از فیلدهای اولین پیام فرآیند احراز هویت قرار می‌دهند — حتی وقتی هیچ کلاینتی در حال اتصال نیست. این یعنی این مقدار دیگر وابسته به این نبود که یک کاربر واقعی دقیقاً همان لحظه وصل شود.

اهمیت این کشف در همین‌جاست: پیش از آن، مهاجم باید منتظر می‌ماند یک دستگاه واقعی به شبکه متصل شود تا هندشیک را ببیند. کشف PMKID نشان داد که در بسیاری از تجهیزات، دیگر نیازی به این انتظار نیست — چون خودِ اکسس‌پوینت این اطلاعات را در دسترس قرار می‌دهد. این موضوع باعث شد صنعت امنیت متوجه شود که آسیب‌پذیری همیشه در رفتار کاربر نیست؛ گاهی در پیاده‌سازی خودِ سازنده‌ی تجهیزات است. مهم‌ترین دستاورد عملی این کشف برای صنعت، فشار بیشتر برای پسفریزهای طولانی‌تر و تصادفی‌تر، و تسریع در انتقال به WPA3 بود.

حمله KRACK (۲۰۱۷): وقتی خودِ پروتکل، نه رمز، هدف است
چند ماه زودتر از کشف PMKID، در اکتبر ۲۰۱۷، Mathy Vanhoef از دانشگاه KU Leuven بلژیک، آسیب‌پذیری‌ای را منتشر کرد که کل صنعت شبکه را تکان داد: KRACK، مخفف Key Reinstallation Attack. برخلاف حملات کلاسیک که روی حدس‌زدن رمز عبور تمرکز دارند، KRACK اصلاً کاری به رمز عبور نداشت — این آسیب‌پذیری در نحوه‌ی مدیریت همان هندشیک ۴ مرحله‌ای، در استاندارد رسمی WPA2، وجود داشت.

نکته‌ی مهمی که این کشف را این‌قدر جدی کرد: چون مشکل در خودِ استاندارد بود، نه در یک پیاده‌سازی ضعیف، تقریباً هر دستگاهی که از WPA2 پشتیبانی می‌کرد — حتی آن‌هایی که رمزنگاری را کاملاً درست پیاده‌سازی کرده بودند — به‌طور بالقوه تحت تأثیر قرار می‌گرفت. تنها راه‌حل واقعی، انتشار پچ نرم‌افزاری از سمت سازندگان تجهیزات و سیستم‌عامل‌ها بود، نه تغییر رمز عبور کاربر — چون مشکل اصلاً به رمز مربوط نمی‌شد.

این کشف به‌طور رسمی در قالب چند شناسه‌ی CVE مستند شد (مثل CVE-2017-13077 تا CVE-2017-13088)، هرکدام مربوط به بخش متفاوتی از فرآیند هندشیک یا نسخه‌های مرتبط با آن (مثل Fast BSS Transition یا TDLS). واکنش صنعت به این کشف، یکی از بزرگ‌ترین موج‌های پچ امنیتی هم‌زمان در تاریخ وای‌فای بود — از سیستم‌عامل‌های دسکتاپ گرفته تا فریمور روترهای خانگی.

چرا این دو کشف با هم صنعت را به سمت WPA3 بردند؟
PMKID نشان داد که حتی بدون هیچ خطای کاربر، اطلاعات کافی برای تلاش آفلاین روی رمز عبور می‌تواند به‌راحتی در دسترس باشد. KRACK نشان داد که مشکل می‌تواند حتی عمیق‌تر از رمز عبور، در خودِ پروتکل استاندارد باشد. این دو کشف، در کنار سال‌ها تجربه‌ی صنعت با محدودیت‌های WPA2، دلیل اصلی‌ای شد که Wi-Fi Alliance در سال ۲۰۱۸ رسماً WPA3 را معرفی کرد.

WPA3 دقیقاً چه چیزی را تغییر داد؟
مهم‌ترین تغییر بنیادی WPA3، جایگزینی کامل مکانیزم احراز هویت پسفریز (PSK) با پروتکلی به‌نام SAE (Simultaneous Authentication of Equals، که گاهی Dragonfly Handshake هم نامیده می‌شود) بود. برخلاف هندشیک قدیمی WPA2 که یک «اثر انگشت رمزنگاری‌شده» قابل‌ضبط تولید می‌کرد، SAE به‌گونه‌ای طراحی شده که حتی اگر کل تبادل شنود شود، اطلاعات کافی برای تلاش آفلاین حدس‌زدن رمز به مهاجم نمی‌دهد — هر تلاش برای حدس زدن رمز، باید مستقیماً و به‌صورت آنلاین با خودِ اکسس‌پوینت انجام شود، که هم بسیار کندتر است و هم قابل‌شناسایی و مسدودسازی.

علاوه‌بر این، WPA3 قابلیتی به‌نام Forward Secrecy هم اضافه کرد — یعنی حتی اگر رمز شبکه در آینده لو برود، ترافیک قبلاً ضبط‌شده همچنان قابل‌رمزگشایی نخواهد بود (برخلاف WPA2 که با دانستن رمز، تمام ترافیک قبلی هم قابل‌بازخوانی بود).

آیا این یعنی رمز عبور قوی دیگر اهمیتی ندارد؟
نه — این یکی از سوءبرداشت‌های رایج است. WPA3 حمله‌ی آفلاین حدس‌زدن رمز را عملاً غیرممکن می‌کند، ولی یک رمز بسیار ضعیف و قابل‌حدس (مثل «12345678») همچنان می‌تواند در یک حمله‌ی آنلاین کند اما هدفمند به خطر بیفتد. رمز قوی و طولانی، در کنار WPA3، همچنان بهترین ترکیب دفاعی است — دقیقاً همان اصلی که در آموزش امنیت وای‌فای خانگی من هم تاکید شده.

جمع‌بندی: چرا مهندسان شبکه باید این تاریخچه را بدانند
فهمیدن این‌که یک آسیب‌پذیری از کجا آمده — از رفتار کاربر، از پیاده‌سازی سازنده، یا از خودِ استاندارد — دقیقاً همان دیدی است که یک مهندس شبکه یا کارشناس امنیت واقعی را از یک کاربر معمولی جدا می‌کند. این‌که چرا WPA3 اینطور طراحی شده، دقیقاً با فهمیدن این‌که WPA2 کجا شکست خورد معنا پیدا می‌کند — و این دقیقاً همان عمقی است که در دوره‌های امنیت شبکه و وای‌فای من روی آن تمرکز می‌شود، همیشه در چارچوب کاملاً قانونی و اخلاقی.