نکاتی درباره آسیب پذیری WPA2

همانطور که قبلاً گفتم امروز جزئیات حمله ای موسوم به KRACK که مخفف Key Reinstallation Attack هست، علیه پر استفاده ترین و (تا امروز) امن ترین پروتکل امنیتی شبکه بی سیم یعنی WPA2 توسط گروهی از پژوهشگران دانشگاه Leuven بلژیک و Alabama ایالات متحده (از جمله یکی از فارغ التحصیلان مهندسی کامپیوتر دانشگاه تهران) و چند پژوهشگر دیگر منتشر شد که در کنفرانس Balckhat 2017 اروپا ارائه خواهد شد و بازتاب های بسیار گسترده ای داشت. (لینک مقاله)

KRACK شامل ده آسیب پذیری کشف شده در WPA2 است. WPA2 بهترین و توصیه شده ترین پروتکل در دسترس جهت ایمن سازی شبکه بی سیم در کاربردهای خانگی، سازمانی و غیره است. نفوذگر با سوء استفاده از این آسیب پذیری‌ها، می تواند بدون در اختیار داشتن پسورد یا کلید اتصال به شبکه بی سیم، ترافیک شبکه را شنود و ارسال مجدد (Replay) کند و در حالت های خاصی امکان جعل بسته ها را هم خواهد داشت.
مبنای آسیب پذیری، در نوع طراحی و پیاده سازی Handshake اجرا شده بین کلاینت و Access Point در WPA2 (هنگام اتصال کلاینت به شبکه) و همچنین پارامترهای جانبی استفاده شده در WPA2 تحت حمله، نهفته است. به همین خاطر، این آسیب پذیری ربطی به محصول یا برند خاصی ندارد و تمام پیاده سازی های WPA2 را شامل می شود. لیست برندهای آسیب پذیر، که اکثر آنها الان اصلاحیه (Patch) مورد نیاز را منتشر کرده اند، در اینجا موجود است. برخی برندها مثل ویندوز و iOS به دلیل اینکه در پیاده سازی این Handshake به طور کامل از استاندارد IEEE 802.11i تبعیت نکرده اند، نسبت به برخی از این چند آسیب پذیری (نه همه آنها) مصون هستند!
ویدئویی از نحوه انجام حمله در اینجا ارائه شده است. حمله نیازمند ایجاد یک Access Point جعلی، با همان SSID و آدرس MAC متعلق به Access Point واقعی است. این یکی از نکاتی است که می تواند از نظر عملی، اجرای حمله را مشکل کند، اگر چه در مقاله ارائه شده، تمام این نکات جانبی به خوبی بررسی و حل شده است.

یکی از جذاب ترین بخش های این پژوهش از دید من آنجایی است که نویسندگان، وارد بحث اثبات ریاضی امنیت پروتکل (روش های فرمال یا صوری) شده اند. در واقع، ویژگی های امنیتی متنوعی برای WPA2 در پژوهش های قبلی اثبات شده است. نکته کلیدی آن است که حمله KRACK هیچ کدام از ویژگی های امنیتی اثبات شده به روش فرمال در پژوهش های قبلی را نقض نمی کند. مثلاً، ویژگی Key Secrecy کماکان در WPA2 آسیب پذیر نیز برقرار است، زیرا این حمله، کلید خصوصی نشست را برای نفوذگر افشا نمی کند:

“However, the proofs do not model key installation. Put differently, they do not state when the key is installed for use by the data confidentiality protocol. In practice, this means the same key can be installed multiple times, thereby resetting associated nonces and/or replay counters used by the data-confidentiality protocol.”
این پژوهش بر ضرورت عدم ابهام و توصیف صریح پروتکل هایی مثل IEEE 802.11i برای پیشگیری از تفسیرهای متفاوت در زمان پیاده سازی تأکید می کند. در اینجا، از ابهامی که در مقادیر مجاز شمارنده بسته Replay شده در زمان Handshake  سوء استفاده شده است. همچنین، همانطور که همیشه در روش های صوری توصیف و اثبات تأکید می شود، باید به تفاوت بین اثبات امنیت پروتکل، با پیاده سازی امن آن توجه کرد. در اینجا، اثبات فرمال امنیت Handshake پروتکل، در نظر نمی گیرد که طرفین چه زمانی مجاز به نصب کلید توافق شده نشست هستند. در نتیجه، یک کلید می تواند چندین بار نصب شود. این نقیصه فقط با بررسی کد پیاده سازی شده قابل کشف است، نه با خواندن اثبات ارائه شده برای توصیف سطح بالای پروتکل. در حالی که اثبات مورد بحث مربوط به سال 2005 است، آسیب پذیری ها در پیاده سازی پروتکل، از آن زمان تا کنون کشف نشده بودند.

به روز رسانی در 96/8/12: اسلایدهای ارائه شده در کنفرانس ACM CCS 2017

به روز رسانی در ۹۶/۸/۲۲: مجموعه اسکریپت های تست آسیب پذیری

اشتراک گذاری

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد.