پروتکل امنیتی WEP چیست؟
پروتکل WEP مخفف Wired Equivalent Privacy به معنای “محرمانگی معادل ارتباط سیمی” بوده و در سال ۱۹۹۷ به عنوان قسمتی از استاندارد وای فای ۸۰۲.۱۱ معرفی شده و از رمزگذاری RC4 استفاده میکند.
نامگذاری WEP به این دلیل بود که در آن زمان فکر میکردند این پروتکل به قدری امن خواهد بود که بتواند دادهها را با امنیتی قابل مقایسه با امنیت فیزیکی ارتباطات کابلی یا سیمی منتقل کند! اما امروزه میدانید که چنین نیست و این پروتکل به سادگی قابل هک شدن بوده و بسیار آسیب پذیر و خطرناک است.
🔶 مختصری درباره رمزگذاری RC4
پروتکل WEP از رمزگذاری RC4 استفاده میکند بنابراین فهمیدن این که الگوریتم رمزگذاری RC4 چیست لازم است. مانند سایر الگوریتمهای رمزگذاری، RC4 هم الگوریتمی است که بر اساس یک کلید ورودی متغیر، متنی را رمزگذاری کرده و در خروجی متن رمزگذاری شده را تحویل میدهد. RC4 یک الگوریتم دنبالهای است.
👈👈در RC4 ورودی کلید رمز باید متغیر باشد به عبارت دیگر هیچ دو کلید مشابهی نباید برای رمزگذاری استفاده شود در غیر این صورت بستههای رمزگذاری شده میتوانند مورد حمله قرار گرفته و توسط روش Related-Key Attack رمزنگاری شوند. به همین دلیل است که معمولاً برای ورودی کلیدها از ۱۲۸ بیت متغیر استفاده میشود که با حساب کردن ۲ به توان ۱۲۸ مشاهده میکنیم که ۳.۴۰۲۸۲۳۶۶۹۲۰۹۳۸۴۶۳۴۶۳۳۷۴۶۰۷۴۳۱۷۷e+38 حالت ممکن برای ۱۲۸ بیت وجود خواهد داشت.
👈👈 این یعنی اگر به صورت صحیح از الگوریتم استفاده کنیم، وجود دو کلید مشابه تقریباً ناممکن است (ولی کاملاً ناممکن نیست). به همین دلیل است که الگوریتم رمزگذاری RC4 بسیار قدرتمند بوده و همچنین به دلیل دنبالهای بودن، سریع تر و قابل پیاده سازی روی انواع سخت افزارها است.
🔶 رمزگذاری WEP به چه صورت است؟
پروتکل رمزگذاری WEP در چندین نوع ارائه شده است که دو نوع رایج آن ۶۴ و ۱۲۸ بیتی آن است یعنی طول کلیدی که برای رمزگذاری به RC4 داده خواهد شد، ۶۴ یا ۱۲۸ بیت است. با این حال کلیدهای ما متشکل از دو پارامتر است:
✅ رمز شبکه وای فای (PSK): که برای نوع ۶۴ بیتی میتواند ۱۰ رقم هگزادسیمال با ۴ بیت یا معادل آن، ۵ کارکتر متنی اسکی و برای نوع ۱۲۸ بیتی میتواند ۲۶ رقم هگزادسیمال با ۴ بیت یا معادل آن، ۱۳ کاراکتر متنی اسکی را قبول کند. همانطور که میبینید رمز وای فایی که ما وارد میکنیم یا ۴۰ بیت است یا ۱۰۴ بیت.
✅ بردار اولیه (IV): میبینید ۲۴ بیت اضافه مانده است که برای پر کردن آن از ۲۴ بیت IV (مقادیر تصادفی) استفاده میشود.
👈👈دلیل به کار گیری IV ها همانطور که گفته شد، این است که در الگوریتم رمزگذاری RC4 کلیدهای ورودی باید متغیر باشند و این ۲۴ بیت وظیفه مجزا کردن کلید ورودی از سایر کلیدهای قبلی را دارد.
مقادیر IV در هدر بستههای داده رمزگذاری شده به کاربران ارسال میشود چون بدون داشتن آنها حتی کاربرانی که پسورد شبکه را دارند هم نخواهند توانست پکتها را رمزنگاری کنند. پس از ارسال IV ها، بیتهای IV و بیتهای پسورد شبکه دقیقاً در کنار یکدیگر قرار میگیرند (بصورت IV + PSK) و با استفاده از این کلید، پکتها رمزگذاری میشوند.
🔶پروتکل امنیتی WEP
▪️قسمت سوم
❇️چرا WEP امن نیست؟
حال که میدانیم رمزگذاری RC4 یکی از قویترین حالتهای رمزگذاری است، پس چرا پروتکل WEP امن نیست و قابل هک شدن است؟
دلیلش ساده است، در کلید ورودی الگوریتم RC4 در پروتکل WEP، تنها و تنها ۲۴ بیت وظیفه تصادفی سازی کلید را دارند! با یک حساب سر انگشتی ۲ به توان ۲۴ میبینیم که این طول IV تنها میتواند حدود ۱۷ میلیون حالت مجزا را بسازد.
یعنی اگر IV اول برابر ۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰ باشد و این ۱۷ میلیون ترکیب مختلف اتفاق افتاده باشد، آخرین IV برابر ۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱ خواهد بود. پس پروتکل بعد از این IV چه کاری انجام دهد؟ دادهها را بلوکه کند؟ در اینجاست که IV دوباره به ۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰ تبدیل میشود و این چرخه ادامه مییابد. حال که طول بیتهای پسورد وای فای و IV یک مقدار ثابت اند و پس از مدتی IV ما دوباره تکرار میشود، میبینیم که در برخی از پکتها کلید رمزگذاری یکسانی استفاده خواهد شد.
👈چون هکر طول هر دو قسمت را در دست دارد و مقدار IV هم در هدر پکتها ارسال میشود و از طرفی بیتهای IV و پسورد برای ساختن کلید ادغام نمیشوند (یعنی فقط در کنار یکدیگر قرار میگیرند!) هکر میتواند به راحتی اقدام به شروع کردن حمله Related-Key Attack روی پکتهایی کند که کلید رمزگذاری آنها در اثر نقض امنیتی در WEP یکسان است.
👈اما ترافیک بر روی شبکه معمولاً به اندازهای نیست که این IVها زود به زود تکرار شوند. نقض امنیتی دیگری در WEP وجود دارد که با استفاده از آن، هکر میتواند اقدام به تولید ترافیک بسیار بالا بصورت تقلبی و با استفاده از روش ARP Spoofing و تزریق درخواستهای ARP تقلبی کند. در این حالت همه چیز در دست هکر خواهد بود و کافیست که چند دقیقه صبر کند تا پکتهایی با کلید یکسان را چندین بار جمع آوری کند. سپس با استفاده از مقایسه کردن آنها با روش ریلیتید-کی، اقدام به بدست آوردن بیتهای مربوط به پسورد وای فای کند. در نهایت این بیتها را با یک مبدل ساده از باینری به اسکی (یا هگز) تبدیل کرده و مقدار رمز وای فای را بدست آورد. البته کل این پروسه توسط برنامههای اتوماتیک قابل پیاده سازی است.