0

پروتکل WEP

 
itsme_mm
itsme_mm
کاربر برنزی
تاریخ عضویت : مهر 1391 
تعداد پست ها : 49
محل سکونت : Tehran

پروتکل WEP

سلام به همه دانش پژهان عزیز. توی این تایپیک انشالله میخوایم، از پروتکل WEP بنویسیم. سعی میکنیم که یه چیز کامل باشه، قبلش یه مقدمه نیاز داره که بخونید(زیاد جالب نیست، ولی سرسریم که شده بخونید) ولی چن خط آخر رو اکیدا توصیه میکنم که بخونید.

مقدمه

شبکه های وایرلس به خاطری مزایایی که دارند، روز به روز در حال رشد میباشند، در زیر چند مزیت مهم و همچنین عیب مهم شبکه های وایرلس اشاره شده است:

مزایا:

ü      دسترسی آسان جهت ارتباط بدون نیاز به کابل کشی؛

ü      قابلیت جابجایی[1] در هنگام حرکت؛

ü      سرعت برقراری شبکه ارتباطی(ارتباطات موقت، نظامی و ...) و

ü      ... .

معایب:

×         امنیت پایین ارتباطات در برابر شنود و استراق سمع

×         تداخل و محدودیت در پهنای باند

×         آسیب پذیری در برابر شرایط جوی و

×         ... .

در دو جدول زیر میتوانید فرق مدل های شبکه ای OSI و TCP/IP را مشاهده کنید، البته قصد ما در اینجا توضیح این دو مدل نیست، بلکه قصد نشان دادن محدوده ای داریم که میخواهیم در طول این پروژه روی آن کار کنیم. میتوان گفت در مدل TCP/IP، با لایه آخر یا Network Access Layer(که شامل دو لایه پیونده داده و لایه فیزیکی میباشد) سرو کار داریم، یا به عبارتی با ارسال اطلاعات در لایه پایین تر از لایه اینترنت، سر و کار داریم.

پایینتر از دو جدول زیر هم میتونید ببیند، که مقابل هم گذاشته شده، و دید بهتری داره(اینجا نتونستم اونجوری درستش کنم).

مدل OSI

Application Layer
Presentation Layer
Session Layer
Transparent Layer
Network Layer
Data Link Layer
 

مدل TCP/IP

Application Layer
Transparent Layer
Internet Layer
Network Layer

Application Layer

 

Application Layer

 

Presentation Layer

 

Session Layer

Transport Layer

 

Transport Layer

Internet Layer

 

Network Layer

Network Access Layer

 

Data Link Layer

 

Physical Layer

     

TCP/IP

 

OSI

 

 

در ادامه به صورت خلاصه به بیان وظایف دو لایه اول در مدل OSI میپردازیم که در طول این پروژه با بعضی از این وظایف سروکار خواهیم داشت:

لایه کاربردی: در این لایه، برنامه کاربردی، داده هایی را که میخواهد درون شبکه بفرستد، ایجاد میکند. مثلا در برنامه کاربردی یاهو مسنجر، وقتی کاربر جمله ای را تایپ کرد و دکمه اینتر را زد، داده مورد نظر، جمله تایپ شده توسط کاربر میباشد، که قرار است به گیرنده خاصی برسد؛

لایه انتقال: در یک End Edge ممکن است چندین برنامه کاربردی باشند که میخواهند داده ای را به درون شبکه بفرستند، مانند، یاهو مسنجر، گوگل کروم، اپرا و ... . وظیفه این لایه، تفکیک این برنامه ها میباشد که کدام برنامه داده ای برای ارسال تولید کرده است، یا اگر داده ای از لایه های پاینتر رسید، باید به کدام برنامه تحویل داده شود. واحد انتقال داده این لایه، پیام[2] میباشد.

لایه شبکه: وظیقه این لایه، هدایت بسته در جهت رساندن به مقصد میباشد. مثلا وقتی که یک نامه پستی قرار است از گیرنده به فرستنده ارسال شود و تحویل مامور پست داده شود، مامور پست تصمیم میگیرد که نامه به مشهد فرستاده شود نه با تبریز. همچنین واحد انتقال داده در این لایه، بسته[3] میباشد.

لایه پیوند داده: بسته هایی را که از لایه شبکه می آیند، یک head و یک Tail به آن اضافه میکند و یک فریم[4] میسازد. دید یک دستگاه در این لایه، فقط دستگاه مجاورش میباشد که میخواهد فریمی را به آن بفرستد. یکی از وظایف این لایه کنترل جریان داده با دستگاه مقصد میباشد. اگر بخواهیم ساده تر بگوییم، باید بگوییم که وظیفه این دستگاه، فرستادن یک فریم به طور صحیح و مجزا از دیگر فریم ها، به دستگاه مجاور میباشد.

لایه فیزیکی: این لایه دنباله ای از بیت ها را که از لایه پیونده داده میرسند، به طرق مختلف[5] به دستگاه مقصد میفرستد و واحد انتقال داده در این لایه بیت میباشد. عکس زیر، وظیفه این لایه را گویاتر نشان میدهد:

عکس رو بعدا باید یه جا آپلود کنم، که انشالله این کارو میکنم.

 

میخواهیم از طریق وایرلس، اطلاعاتی که توسط Internet Layer آماده شده است را به یک دستگاه مجاور برسانیم. چون که برای این کار پکت ها باید از هوا عبور کنند و هر کسی میتواند آنها رو شنود کند، باید دست به دامان روشی شویم که اگر یک فرد بد خواه اطلاعات ما را دریافت کرد، نتواند چیزی از آن بفهمد. اینجاست که بحث رمزنگاری به میان خواهد آمد. در ابتدا نگاه خود را بر روی پروتکل [6]WEP معطوف میکنیم و سپس به بیان روش های جایگزین میپردازیم.

نکته ای که لازم است گفته شود این است که روش هایی که بیان میکنیم، ضامن امنیت اطلاعات در طول کل رابطه نیستند، یعنی فقط در لایه یک و دو(آن هم فقط در محدوده ی پوشش وایرلس خود) سعی در تامین امنیت اطلاعات میکنیم، شاید در جاهای دیگر این امنیت ایجاد نشود. به عکس زیر توجه کنید.

 

 

در انتهای این فصل، سه قابلیت و سرویس پایه که توسط IEEE برای شبکه های بیسیم تعریف شده است، بیان میکنیم:

سرویس های پایه IEEE برای شبکه های وایرلس

تصدیق یا هویت سنجی یا اهراز هویت[7]

منظور از هویت سنجی یعنی تنها افرادی که مجاز میباشند، بتوانند به تبادل اطلاعات بپردازند، و در یک شبکه WEP یعنی اینکه تنها کسانی بتوانند با یک access point به تبادل اطلاعات بپردازند که access point آنها را تایید کرده باشد، مثلا فقط کسانی که MAC Address آنها مقدار مشخصی باشد.

در یک تقسیم بندی کلی، دو گونه خدمت هویت سنجی در پروتکل 802.11 تعریف شده که در یک نگاه به صورت شکل زیر میباشد:

 

ü      هویت سنجی بدون رمزنگاری[8]

این روش هویت سنجی، مبتنی بر رمزنگاری نمیباشد و دارای دو روش برای شناسایی هویت فرد مورد نظر ارائه میدهد:

1.       هویت سنجی سیستم باز[9]

در این روش یک SSID[10] خالی نیز برای دریافت اجازه اتصال به شبکه کافی میباشد. در واقع در این روش تمام آداپتورهایی که تقاضای اتصال به شبکه را دارند، با جواب مثبت روبرو میشوند. به همین دلیل به این روش Null Authentication نیز اطلاق میشود.

2.       هویت سنجی سیستم بسته[11]

در این روش، فرد باید یک SSID را برای AP ارسال کند. اینجا AP فقط به افرادی اجازه اتصال به شبکه را میدهد که خودش بخواهد، مثلا تنها افرادی که MAC آدرسشان یک مقدار مشخص باشد.

ü      هویت سنجی  رمز نگاری[12] یا کلید به اشتراک گذاشته شده[13]

در روش Shared Key، آداپتور و access point اطلاعات را از طریق رمزنگاری بر مبنای یک کلید (که عملکردی مانند کلمه عبور دارد)، رد و بدل  می کنند. در صورتی که آداپتور، کلید موجود در Access Point  را داشته باشد عملیات موفقیت آمیز تلقی می شود، وگرنه اتصال به شبکه به وسیله AP انجام نمیشود. پروتکل WEP از این روش استفاده میکند، یعنی access point یک کلید تعریف میکند، سپس به هر کسی که بخواهد این کلید را میدهد، تا آداپتور بتواند اطلاعات خود را با این کلید رمزنگاری کند، و آنها را به access point ارسال کند، در ادامه بیشتر با این روش آشنا میشویم.

محرمانگی[14]

یکی دیگر از قابلیت هایی که توسط IEEE برای شبکه های بیسیم تعیرف شده است ،محرمانگی میباشد. این سرویس بدین معنا میباشد، اطلاعاتی که یک آداپتور با access point در حال رد و بدل کردن میباشد، توسط فردی دیگر، به سرقت نرود، و در صورتی که بسته ها را بدست آورد، نتواند از آنها چیزی بفهمد. مثلا اگر یکی از کاربران شبکه، یک بسته با محتوای « » را تولید کرد و بسته در وسط راه توسط هر فردی شنود شد، فرد موردنظر نتواند بفهمد که چه محتوایی درون بسته قرار دارد.

صحت و امانت[15] اطلاعات

مقصود از Integrity صحت اطلاعات میباشد، یعنی اگر کاربری یک بسته را تولید کرد، بسته همانطور که تولید شده است به دست گیرنده (access point) برسد. مثلا در مثال قبل اگر کاربری بسته ای با محتوای « » تولید کرد، گیرنده نیز « » را دریافت کند و مطمئن باشد، بسته ای که دریافت کرده است، همان بسته ای است که فرستنده آن را فرستاده است.



[1] - Mobility

[2] - Message

[3] - Packet

[4] - واحد انتقال داده در این لایه

[5] - این روش ها بیشتر در درس انتقال داده ها بحث میشوند.

[6] - Wired Equivalent Privacy

[7] - Authentication

[8]Non Cryptographic

[9]- Open System Authentication

[10] - Service Set Identifier

[11]- Closed System Authentication

[12]- Cryptographic

[13] - Shared Key Authentication

[14] - Confidentiality

[15] - Integrity

 

یادمان باشد که خدا می بیند.

همین

شنبه 14 بهمن 1391  11:51 PM
تشکرات از این پست
samsam
itsme_mm
itsme_mm
کاربر برنزی
تاریخ عضویت : مهر 1391 
تعداد پست ها : 49
محل سکونت : Tehran

فصل دوم: پروتکل WEP

 

لازم به توضیح است  که انشالله در آینده نه چندان دور، عکس های مورد نظر آپلود خواهند شد.

سرویس های پایه IEEE برای WEP

در ابتدای این فصل، به بیان سه سرویسی که IEEE برای شبکه های وایرلس تعریف کرده است، میپردازیم.

هویت سنجی در پروتکل WEP

پروتکل WEP یک پروتکل برای شبکه های وایرلس IEEE 802.11 میباشد. هویت سنجی در این پروتکل برپایه یک کلید مشترک میباشد. شکل زیر هویت سنجی توسط WEP را نشان میدهد:

 

در ابتدای کار، آداپتور یا مخدوم(کسی که میخواهد به شبکه وصل شود) یک درخواست هویت سنجی به AP میفرستد، سپس AP یک رشته تصادفی تولید کرده و آن را به آداپتور میفرستد. آداپتور این رشته را با استفاده از کلید از پیش تعیین شده، رمز میکند و حاصل را برای AP ارسال میکند، AP با توجه به رشته تصادفی، پاسخ آداپتور را بررسی میکند و در صورتی که پاسخ به صورت صحیح رمز شده باشد، تایید موافقت را به آداپتور میدهد. روش رمزنگاری و رمزگشایی در این پرتکل، RC4 میباشد.

محرمانگی در پروتکل WEP:

محرمانگی نیز در این روش برپایه کلید به اشتراک گذاشته شده میباشد. که با استفاده از این کلید و رمزنگاری RC4 اطلاعات را رمز میکند. کلیدها در این روش میتوانند اندازه هایی از 40 بیت تا 104 بیت داشته باشند. این کلید با IV[1] 24 بیتی ترکیب شده و یک کلید 64 بیتی (یا 128 بیتی) را تشکیل میدهند.

ابتدا فرستنده یک IV را تولید میکند و به همراه کلید به الگوریتم RC4 میفرستد. از طرفی فرستنده اطلاعاتی را که میخواهد بفرستند، آماده میکند و این داده ها را با خروجی الگوریتم RC4، XOR میکند، که به این اطلاعات جدید بدست آمده اصطلاحا Cipher text میگوییم. به عکس زیر که گویای این کارها میباشد، توجه کنید:

 

صحت و امانت اطلاعات در پروتکل WEP:

پروتکل WEP برای سرویس Integrity اطلاعات، از CRC استفاده میکند. یک کد CRC قبل از اینکه داده ها رمزنگاری شوند، تولید میشود. در گیرنده، بعد از رمزگشایی اطلاعات، یک CRC از اطلاعات بدست آمده، تولید میشود و با CRC فرستنده مقایسه میشود. اگر تفاوتی بین دو کد باشد، نشان دهنده تغییر اطلاعات در بین راه بوده است. نکته ای که در اینجا حایز اهمیت است این است که عدم تفاوت در CRC تولید شده(در گیرنده) با CRC فرستنده ، به معنای عدم دست کاری داده ها در بین راه نمیباشد. به عبارت دیگر احتمال اینکه فردی در وسط راه داده ها را به همراه CRC طوری دست کاری کرده باشد که قابل تشخیص در گیرنده نباشد، وجود دارد.

 شکل زیر گویای انجام رمزنگاری و رمزگشایی در پروتکل WEP میباشد:

 

 

  یک کد CRC قبل از رمز شدن بسته تولید شده است. در گیرنده، بعد از رمزگشایی اطلاعات، یک CRC از اطلاعات بدست آمده تولید میشود و با CRC کد فرستنده مقایسه میشود(که البته این قسمت در شکل دیده نمیشود، اگر یادمان ماند، سعی میشود که این قسمت نیز انجام شود). اگر تفاوتی بین دو کد باشد، نشان دهنده تغییر اطلاعات در بین راه بوده است.

ضعف های امنیتی WEP

انشالله در این بخش میخواهیم در مورد ضعف های امنیتی WEP بحث کنیم. WEP به خاطر ضعف هایی که دارد در سال 2004 جای خود را به پروتکل WPA داد. در ادامه به بررسی بعضی از این ضعف ها میپردازیم:

1-  ضعف در الگوریتم RC4

از آنجا که برای ساخت کلید، از یک رشته رندم با عنوان IV استفاده میشود، یک نفوذگر میتواند با تحلیل IV ها و بسته های رمزشده نسبتا زیادی به کلید اصلی دست پیدا کند. حملات اولیه علیه پروتکل WEP بر این قسم بودند. البته این حمله، زمان زیادی برای شکستن کلید نیاز دارد، ولی بالاخره یک ضعف محسوب میشود.

این مشکل زمانی حاد میشود که کارت شبکه از IVهای تکراری یا مشابه هم استفاده کند و این بدین معنا میباشد که هر چند لحظه با یک IV تکراری یک کلید رمزنگاری ساخته میشود.

2-  استفاده از CRC رمز نشده

در قسمت های قبل گفتیم که WEP، CRC یک بسته را به صورت رمز نشده میفرستد. یک نفوذگر از این خصوصیت میتواند بدین صورت عمل کند که محتوای بسته (غیر از CRC) را عوض کند و CRC را نیز حدس بزند، سپس به عنوان یک بسته جدید به AP بفرستد و متظر عکس العمل آن باشد. این روش، در حمله ای تحت عنوان ChopChop به کار رفته است که شاید در قسمت حمله به شبکه های وایرلس آن را مطرح کردیم.

3-  استفاده از کلید های ثابت

یکی از ابتدایی ترین ضعف های موجود در شبکه های وایرلس استفاده از کلید های مشابه توسط کاربران به مدت طولانی میباشد. این ضعف بیشتر به خاطر نبود یک مکانیزم مدیریت کلید رخ میدهد. برای مثال اگر کلید یک ایستگاه کاری بنا به هر دلیلی به سرقت برود، از آنجا که بیشتر ایستگاه های کاری از مشابه کلید لو رفته استفاده میکنند، عملا بیشتر این ایستگاههای کاری نا امن میباشند.

4-  IVهای کوتاه

استفاده از 24 بیت IV، باعث میشود که بعد از مدتی، Keystreamهای تکراری تولید شوند(البته اگر کلید اصلی تغییر پیدا نکند) و این باعث آسان شدن رمزگشایی توسط یک مهاجم میشود.

در جدول زیر برخی دیگر از ضعف های امنیتی WEP به صورت خلاصه آورده شده است.

ردیف

آسیب پذیری

توضیح

1

کوتاه بودن Key

یک کلید 40 بیتی برای هر سیستمی ناکافی میباشد، به طور معمول کلید با اندازه بزرگتر از 80 بیت یک کلید قوی محسوب میشود، چرا که کلیدهای زیر 80 بیت به راحتی با حمله Brute-Force شکسته میشوند.[2]

2

عدم تغییر کلید به صورت اتوماتیک و پریودیک

کلید باید به صورت اتوماتیک و پریودیک تغییر پیدا کند تا از حمله­های مبتنی بر Brute-Force در امان باشد.

3

RC4 به صورت نادرست در WEP استفاده شده است.

24 بیت از کلید در WEP آشکار سازی شده است، و این به نوعی ضعف محسوب میشود. بعضی دیگر از Applicationهای RC4 قسمتی از کلید را آشکار سازی نمیکنند و همچنین در هر پکت آنرا ریستارت نیز نمیکنند.

4

Integrity بسته بسیار ضعیف میباشد.

CRC32 و سایر کدهای بلوک خطی برای Integrity بسیار ناکافی میباشند. اصلاح پیغام در این روش، ممکن میباشد. کدهای خطی برای حفاظت از حمله­هایی که روی Integrity داده­ها صورت میگیرد، بسیار ناکافی میباشد.

5

عدم انجام تصدیق کاربر

در این روش، به جای اینکه کاربر مورد تصدیق قرار بگیرد، دستگاهش مورد تصدیق قرار میگیرد، که مثلا با آدرس MAC این کار انجام میگیرد. هر کسی که بتواند یک دستگاه تصدیق شده را جعل کند، میتواند به این شبکه وصل شود.

6

احراز هویت فعال نمیباشد، بلکه فقط شناسایی SSID اتفاق می افتد.

شناسایی بر پایه سیستم، در سیستم های وایرلس، بسیار آسیب پذیر میباشد.

7

تدبیر ساده احراز هویت کلید مشترک با Challenge-Response.

یک حمله به احراز هویت Challenge-Response، حمله Man-In-The-Middle میباشد. یک احراز هویت دوطرفه لازم است تا مطمئن شویم که هم کاربر، کاربری مشروع است و هم شبکه­ای که کاربر به آن وصل میشود، شبکه­ای مشروع است.

 

 

حمله به شبکه های مبتنی بر WEP

انشالله بحث و تحقیق خواهد شد.




[1] - Initialization Vector

[2] - اگر بخواهیم به صورت عملی این را نشان دهیم، میتوانیم به شکستن تابع MD5 برای کلیدهای زیر 8 کلمه­ای(هر کلمه، دارای 8 بیت میباشد)، اشاره میکنیم. یک رشته 7 بیتی مانند «Morteza» را با تابع MD5 رمز میکنیم(یا هش میکنیم)، سپس با استفاده از ابزارهای موجود، از هش این عبارت به خودِ کلمه­ی «Morteza» میرسیم. سایت http://md5.rednoize.com ما را در رسیدن به این هدف کمک میکند، هش عبارت «Morteza» را که «251befc74613a58d21fc39be6cfc10d1» میباشد، در قسمت Enter your MD5 Hash here …  وارد کرده، سپس اینتر میزنیم، سپس مشاهده میکنیم که کلمه «Morteza» به عنوان جواب نشان داده میشود.

 

I'm It's me, m.m.

یادمان باشد که خدا می بیند.

همین

سه شنبه 17 بهمن 1391  5:52 PM
تشکرات از این پست
دسترسی سریع به انجمن ها