تارا فایل

امنیت مسیریابی در شبکه های Ad Hoc


 مقدمه
شبکه های Ad-hoc به شبکه های آنی و یا موقت گفته می شود که برای یک منظور خاص به وجود می آیند. در واقع شبکه های بی سیم هستند که گره های آن متحرک می باشند. تفاوت عمده شبکه های Ad-hoc با شبکه های معمول بی سیم 802.11 در این است که در شبکه های Ad-hoc مجموعه ای از گره های متحرک بی سیم بدون هیچ زیرساختار مرکزی، نقطه دسترسی و یا ایستگاه پایه برای ارسال اطلاعات بی سیم در بازه ای مشخص به یکدیگر وصل می شوند.ارسال بسته های اطلاعاتی در شبکه های بی سیم Ad-hoc توسط گره های مسیری که قبلا توسط یکی از الگوریتمهای مسیریابی مشخص شده است، صورت می گیرد. نکته قابل توجه این است که هر گره تنها با گره هایی در ارتباط است که در شعاع رادیویی اش هستند، که اصطلاحا گره های همسایه نامیده می شوند.پروتکلهای مسیریابی بر اساس پارامترهای کانال مانند تضعیف، انتشار چند مسیره، تداخل و همچنین بسته به کاربرد شبکه به صورت بهینه طراحی شده اند. در هنگام طراحی این پروتکلها به امر تضمین امنیت در شبکه های Ad-hoc توجه نشد. در سالهای اخیر با توجه به کاربردهای حساس این شبکه از جمله در عملیاتهای نظامی، فوریتهای پزشکی و یا مجامع و کنفرانسها، که نیاز به تامین امنیت در این شبکه ها بارزتر شده است، محققان برای تامین امنیت در دو حیطه عملکرد و اعتبار پیشنهادات گوناگونی را مطرح کردند و می کنند.شبکه های بی سیم Ad-hoc فاقد هسته مرکزی برای کنترل ارسال و دریافت داده می باشد و حمل بسته های اطلاعاتی به شخصه توسط خود گره های یک مسیر مشخص و اختصاصی صورت می گیرد. توپولوژی شبکه های Ad-hoc متغیر است زیرا گره های شبکه می توانند تحرک داشته باشند و در هر لحظه از زمان جای خود را تغییر بدهند. وقتی گره ای تصمیم می گیرد که داده ای را برای گره مورد نظر خود بفرستد. ابتدا با انجام یک پروتکل مسیریابی پخش شونده کوتاهترین مسیر ممکن به گره مورد نظر را بدست می آورد و سپس با توجه به این مسیر داده را ارسال می کند. به هنگام به روز رسانی یا کشف مسیر مورد نظر تمام گره های واقع بر روی مسیر اطلاعات مربوط به راه رسیدن به گره مقصد رادر جدول مسیریابی خود تنظیم می کنند، تا در هنگام ارسال داده از مبدا روند اجرای عملیات ارسال داده به درستی از طریق کوتاهترین مسیر ممکن انجام شود.

فصل اول

تاریخچه
شبکه های ادهاک عمر ۷۰ ساله دارند و به دلایل نظامی به وجود آمدند. یک مثال کلاسیک از شبکه های ادهاک، شبکه جنگنده های جنگ و پایگاههای موبایل آنها در میدان جنگ می باشد. بعدا مشخص شد در قسمت های تجاری و صنعتی نیز می توانند مفید واقع شوند. این شبکه ها شامل مجموعه ای از گره های توزیع شده اند که بدون پشتیبانی مدیری مرکزی یک شبکهٔ موقت را می سازند. طبیعی ترین مزیت استفاده از این شبکه ها عدم نیاز به ساختار فیزیکی و امکان ایجاد تغییر در ساختار مجازی آنهاست. این ویژگی های خاصی که دارند پروتکل های مسریابی و روشهای امنیتی خاصی را می طلبد.اصطلاح ad hoc که از زبان لاتین گرفته شده است به معنای "برای کاربرد اختصاصی" است. این عبارت عموما در مورد راه حلی استفاده می شود که برای حل یک مشکل خاص یا انجام وظیفه ای ویژه طراحی شده باشد و قابل تعمیم به صورت یک راه حل عمومی نباشد و امکان تطبیق دادن آن با مسایل دیگر وجود نداشته باشد.یک شبکه ادهاک، اتصالی است که تنها به مدت یک جلسه برقرار می شود و نیاز به ایستگاه پایه ندارد. در عوض، هر دستگاه متصل به شبکه، دیگر دستگاه های واقع در یک محدوده خاص را پیدا می کند و این دستگاه ها یک شبکه بین خود ایجاد می کنند. از سوی دیگر دستگاه ها با ارسال پیام، گره های هدف را در خارج از محدوده تعریف شده جستجو می کنند. امکان برقراری ارتباط بین چندین گره مختلف وجود دارد. به این ترتیب، شبکه های ادهاک گوناگون به یکدیگر متصل می شوند. سپس پروتکل های مسیریابی، اتصالات پایداری را بین این گره ها ایجاد می کنند، حتی اگر گره ها متحرک باشند. از جمله کاربران شبکه های ادهاک می توان به پلی استیشن سونی اشاره کرد که از اتصالات ادهاک برای ایجاد شبکه بی سیم بین چند بازیکن (که همگی در یک بازی شرکت می کنند) اشاره کرد. پس از پایان بازی، اتصال بی سیم بین کاربران قطع می شود. شبکه های ادهاک متحرکشبکه های اجتماعی جدید با استفاده از ترکیبی از محاسبات رایانه ای و ارتباطات مخابراتی ایجاد می شوند. آگاهی از مکان، محاسبات p2p و فناوری های شبکه بی سیم طراحی شبکه های ادهاک را برای دستگاه های متحرک که مهم ترین ابزار ایجاد شبکه های اجتماعی هستند، امکان پذیر ساخته است. کاربرد شبکه ادهاکشبکه های ادهاک در گستره وسیعی از کاربرد ها، از کاربرد های نظامی تا حفاظت از محیط زیست مورد استفاده قرار می گیرند. با مجهز کردن یک میدان جنگ به دستگاه هایی که از حسگر لرزش، سیستم gps و حسگر مغناطیسی برخوردارند، می توان عبور و مرور خودرو ها در محل را کنترل کرد. هر یک از این ابزارها پس از حس کردن موقعیت جغرافیایی خود، با ارسال یک موج رادیویی ابزارهایی را که در محدوده ای به وسعت 30 متر از آن قرار دارند یافته و با آنها ارتباط برقرار می کند.شبکه های ادهاک نقش مهمی در حفاظت از محیط زیست ایفا می کنند. زیست شناسان با استفاده از گردن آویزهایی که به حس گرهای مکان، دما و دیگر حس گرها مجهز هستند، کیفیت زندگی حیواناتی را که در خطر انقراض قرار دارند، بهبود می بخشند. زمانی که حیوان دارای گردن آویز حرکت می کند، اطلاعات مربوط به مسیر حرکت او، از حس گرهای مرتبط جمع آوری می شوند و سپس توسط زیست شناسان مورد پردازش قرار می گیرند. پیش بینی می شود که در آینده، شبکه های ادهاک نقشی به سزا در مبادلات بین شبکه ای ایفا کنند.

شبکه های موردی چیست؟
شبکه هایAd Hoc نمونه ای جدید از مخابرات بی سیم برای وسایل سیار هستند. در یک شبکه Ad Hoc خبری از زیرساخت های ثابت همچون پایگاه های مبنا ومراکز سوئیچینگ وتقویت کننده ثابت نیست. گره های متحرکی که در حوزه ارتباطی یکدیگر قرار دارند مستقیما از طریق لینک (link) بی سیم با هم مرتبط می شوند در حالی که گره هایی که از هم دورند پیام شان از طریق دیگرگره ها تقویت شده تا به گره مقصد برسند. شکل 1 مثالی از این مسئله را نشان می دهد.فرض می کنیم در شکل ( 1) A1 می خواهد با A5 ارتباط برقرار کند، از آن جا که در شکل (1-الف) A5 در رنج (range) رادیویی A1 قرار دارد(منظور این است که فاصله A1 تا A5به اندازه ای است که، A1توانایی ارسال داده مورد نظر را به آن فاصله دارد )، از طریق یک لینک مستقیم این ارتباط برقرار می شود. در حالی که در شکل (1-ب) A5از رنج رادیویی A1 خارج شده و امکان برقراری ارتباط با یک لینک مستقیم نیست. درنتیجه برای حفظ شبکه باید ارتباط A1 باA5 از طریق گره های دیگر (A3,A4 ) برقرار شود. نسبت دادن برخی خصوصیات انسانی به گره های یک شبکه Ad Hoc فرض نسبتا درستی است .گره ها می توانند مغرور و خودپسند باشند ، کلک بزنند و یکدیگر را بفریبند ویا با هم بر علیه گره های دیگر تبانی کنند. امروزه امور نظامی مهمترین کاربرد شبکه های Ad Hoc است. ولی از آن جا که یک شبکه Ad Hoc می تواند با هزینه نسبتا کمی به سرعت گسترده شود ، گزینه مناسبی برای مصارف تجاری همچون شبکه های حسگر و کلاس های مجازی خواهد بود. حتی می توان روزی را متصور بود که تلفن های همراه هم بتوانند از این شبکه استفاده کنند. در یک شبکه Ad Hoc سرویس هایی مثل سیستم مدیریت راهنما و سیستم مسیربان و مسیر سنج مورد نیاز است تا راندمان، امنیت وسرعت مطلوب شبکه حاصل شود. مسیر یابی مطمئن در این شبکه ها امری حیاتی است. لذا اطلاعات مسیریابی باید کاملا محافظت شده و تنها در اختیار گره های خوش رفتار شبکه باشد. جهت حفاظت از اطلاعات مسیریابی و داده ها از روش رمز نگاری مثل امضای دیجیتال استفاده می شود که استفاده از این روش ها معمولا به سرویس مدیریت راهنما احتیاج دارد. این سرویس شامل دو بخش عمومی و به گرهخصوصی می باشد گره هایی از شبکه که در ابتدا تقویت اطلاعات دیگر گره ها را می پذیرند ولی این کار را انجام نمی دهند اصطلاحا گره بدرفتار می گوییم. مسلما تشخیص وخارج از سرویس کردن این گره ها در شبکه حائز اهمیت است . برای این کار دو سرویس مسیربان و مسیر سنج پیشنهاد شده اند . مسیربان گره های بد رفتار را پیدا می کند و مشخصات آن ها را به دیگر گره ها اعلام می دارد . در حالیکه مسیر سنج با اطلاع کامل از تعداد وموقعیت این گره ها بهترین مسیر را برای ارسال اطلاعات انتخاب می کند. در بخش 2.2 به توضیح کامل امکانات ومحدودیت های این دو سرویس خواهیم پرداخت. تا کنون سیستم مسیریابی وحفاظت از شبکه ارائه شد .حال سوال این است که میزان تاخیر مطلوب برای رسیدن داده از مبدا به مقصد چقدر است ونیز اگر همزمان چندین داده مختلف از چند گره به گره ای برای تقویت برسد آن گره برای جلو گیری از تزاحم داده ها چه باید بکند. سیستم مدیریت زمانی پاسخ گویی مناسب برای این سوالات است. بعلاوه سرویس مدیریت زمانی می تواند به مسیربان در تشخیص گره بدرفتار یاری رساند. ادعا می کنیم هر چه فاصله بین زمان مسیر یابی ( ) وزمان ارسال داده ( ) کوتاهتر باشد سرعت ارسال داده بیشتر است . در پایان این موضوع را بررسی می کنیم که ادامه حیات شبکه بستگی به میزان علاقه مندی گره ها برای حضور در شبکه و تقویت اطلاعات دارد . اگر یک گره بخواهد دائما داده را تقویت کند به سرعت عمرش تمام می شود و اگر اصلا داده ای را تقویت نکند توان عملیاتی شبکه را کاهش می دهد بالاخص اگر تمام گره ها چنین کاری را انجام دهند. هر دوی این موارد به ضرر مصرف کننده نهایی است . برای جلوگیری از نابودی سریع گره ونیز برای تحریک گره به همکاری الگوریتمی، ارائه می شود (الگوریتم GTFT) .

شکل(1)الف:A1 به طور مستقیم باA5 ارتباط دارد

شکل(1)ب:A1 ازطریقA3,A4 با A5 ارتباط دارد

معرفی انواع شبکه های ادهاک
شبکه های حسگر هوشمند: متشکل از چندین حسگر هستند که در محدوده جغرافیایی معینی قرار گرفته اند. هر حسگر دارای قابلیت ارتباطی بی سیم و هوش کافی برای پردازش سیگنال ها و امکان شبکه سازی است. شبکه های موبایل ادهاک :مجموعه مستقلی شامل کاربرین متحرک است که از طریق لینک های بی سیم با یکدیگر ارتباط برقرار می کنند. برای اتفاقات غیر قابل پیش بینی اتصالات و شبکه های متمرکز کارا نبوده و قابلیت اطمینان کافی را ندارند. لذا شبکه های ادهاک موبایل راه حل مناسبی است، گره های واقع در شبکه های ادهاک موبایل مجهز به گیرنده و فرستنده های بی سیم بوده و از آنتن هایی استفاده می کنند که ممکن است از نوع Broad cast و یا peer to peer باشند.

شبکه های ادهاک متحرک

شبکه های اجتماعی جدید با استفاده از ترکیبی از محاسبات رایانه ای و ارتباطات مخابراتی ایجاد می شوند. آگاهی از مکان محاسبات P2P و فناوری های شبکه بی سیم طراحی شبکه های ادهاک را برای دستگاههای متحرک که مهمترین ابزار ایجاد شبکه های اجتماعی هستند امکان پذیر ساخته است.

کاربردهای شبکه های ادهاک
به طور کلی زمانی که زیرساختاری قابل دسترس نیست و ایجاد و احداث زیرساختار غیرعملی بوده و همچنین مقرون به صرفه نباشد، استفاده از شبکه ادهاک مفید است. از جمله این کاربردها می توان به موارد زیر اشاره نمود :
شبکه های شخصی، تلفن های سلولی، کامپیوترهای کیفی، ساعت های مچی، ear phone و کامپیوترهای wearable
1) محیط های نظامی
الف) سربازها و تانکها و هواپیماها
ب) در نبردهایی که کنترل ازراه دور صورت می گیرد
ج) برای ارتباطات نظامی
د) توانایی باقی ماندن در میدان منازعه

2) محیط های غیرنظامی
الف)شبکه تاکسی رانی
ب) اتاق های ملاقات
ج) یادین یا ورزشگاه های ورزشی
د) قایق ها، هواپیماهای کوچک
م) کنفرانس ها جلسات

3)عملکردهای فوری
الف)عملیات جستجو و نجات
ب) موقعیت-های امدادی برای حادثه-های بد و فوری
پ)برای ترمیم و بدست آوردن اطلاعات در حوادث بد و غیرمترقبه مانند وقوع بلایای طبیعی چون سیل و طوفان و زلزله
محیط های علمی
در محیط های علمی و تحقیقاتی در برخی از مناطق که دانشمندان برای نخستین بار اقدام به بررسی می-کنند، به علت عدم وجود زیرساختار، شبکه ادهاک بسیار مفید می باشد.

Sensor Webs
یک دسته مخصوص از شبکه های ادهاک را می توان Sensor webs دانست. شبکه ای از گره های حسگر که یک گره، سیستمی است که دارای باتری می-باشد. توانایی مخابره بی سیم محاسبات و حس کردن محیط در آن وجود دارد. نقش آن مانیتور کردن و تعامل با محیط و دنیای اطراف است. کاربردهای آن شامل آزمایشات اقیانوسی و فضایی می باشد.

خصوصیات شبکه های ادهاک
شبکه های بی سیم دارای نیازمندی ها و مشکلات امنیتی ویژه ای هستند. این مشکلات ناشی از ماهیت و خواص شبکه های بی سیم است که در بررسی هر راه حل امنیتی باید به آنها توجه نمود: الف: فقدان زیرساخت : در شبکه های بی سیم ساختارهای متمرکز و مجتمع مثل سرویس دهنده ها، مسیریابها و… لزوماً موجود نیستند (مثلاً در شبکه های ادهاک)، به همین خاطر راه حل های امنیتی آنها هم معمولاً غیر متمرکز، توزیع شده و مبتنی بر همکاری همه نودهای شبکه است. ب: استفاده از لینک بی سیم: در شبکه بی سیم، خطوط دفاعی معمول در شبکه های سیمی (مثلاً فایروال به عنوان خط مقدم دفاع) وجود ندارد. نفوذگر از تمام جهت ها و بدون نیاز به دسترسی فیزیکی به لینک، می تواند هر نودی را هدف قرار دهد. ج:چند پرشی بودن: در اغلب پروتکل های مسیریابی بی سیم، خود نودها نقش مسیریاب را ایفا می کنند (به خصوص در شبکه های ادهاک)، و بسته ها دارای چند hop مختلف هستند. طبیعتاً به هر نودی نمی توان اعتماد داشت آن هم برای وظیفه ای همچون مسیریابی! د: خودمختاری نودها در تغییر مکان: نودهای سیار در شبکه بی سیم به دلیل تغییر محل به خصوص در شبکه های بزرگ به سختی قابل ردیابی هستند. از دیگر ویژگیهای طبیعی شبکه بی سیم که منبع مشکلات امنیتی آن است می توان به فقدان توپولوژی ثابت و محدودیت های منابعی مثل توان، پردازنده و حافظه اشاره کرد.
مقایسه شبکه های بی سیم و سیمی از لحاظ امنیتی
برای روشن شدن آسیب پذیرهای شبکه Ad Hoc به مقایسه شبکه های Ad Hoc و شبکه های سیمی پرداخته سپس به اشاره آسیب پذیرهای این شبکه می پردازیم.
* در شبکه های بی سیم همچون شبکه Ad Hoc به علت عدم وجود اتصال فیزیکی; از طریق مسیریابی امکان استراق سمع، فعال کردن nodeهای مهاجم و یا امکان دخالت در کار شبکه وجود دارد. اما در شبکه های سیمی ما برای انجام این اعمال باید حتماً به صورت فیزیکی به رسانه انتقال ( که می تواند سیم، فیبرنوری، …) متصل شویم. از طرف دیگر این شبکه ها با استفاده از وسایل امنیتی مانند : Firewall یا Gateway ایمن و مستحکم شده اند. امّا در شبکه های بی سیم نفوذ می تواند آزادانه بدون محدودیت های رسانه فیزیکی باشد.
* Nodeها در شبکه هایAd Hoc سیار هستند و آزادانه از جای به جای دیگر حرکت می کنند این بدان منی است که nodeها با حفاظت فیزیکی ناکافی می توانند مورد حمله مهاجمین قرار گرفته و یا به صورت فیزیکی خود node به سرقت برود. در حالی که شبکه های سیمی تجهیزات در سایت های امین نگهداری می شود که امکان سرقت فیزیکی به حداقل می رسد.
* تصمیم گیری در محیط های سیار (Mobile) غیر متمرکز است و در بعضی از الگوریتم های شبکه بی سیم فرآیند تصمیم گیری تکیه بر همکاری و مشارکت تمام nodeها می باشد. همچنین عدم وجود یک سیستم دفاع مرکزی باعث به وجود آمدن چالش های امنیتی شده است. نفوذگران با استفاده از این کمبودها روش های جدیدی برای نفوذ به شبکه تولید کرده اند.
که براساس شکستن الگوریتمهای همکاری (Cooperation algorithms) بین nodeها باعث ار کار افتادن و فروپاشی شبکه می شوند. برای روشن شدن این مسئله بر ذکر چند مثال می پردازیم :
در روش Connection base:
هر node برای در اختیار گرفتن کانال به منظور فرستادن پیام ها با سایر nodeها در رقابت است. به منظور جلوگیری از Collision هر node از یک سری الگوریتم های از پیش تعیین شده پیروی می کند. هر گونه نقص در عملکرد این توابع باعث اختلال و از کار افتادن شبکه می شود در نتیجه هدف خوبی برای مهاجمین به شبکه می باشد.
در روش Connection – Free:
هر node برای دستیابی به کانال ارتباطی باید توافق سایر nodeهای شبکه را بدست آورد. واضح است اگر چند node ساختگی مهاجمین عدم توافق خود را اعلام نکنند کار شبکه با اختلال روبرو خواهد شد.
حملات ذکر شده: در شبکه های سیمی به علت استفاده از لایه فیزیکی و لایه 3 و استفاده از امکاناتی از قبیل Firewall و Gateway بسیار به ندرت اتفاق می افتد.

آسیب پذیری شبکه های Ad Hoc
از آنجایی که کاربردها و استفاده های شبکه Ad Hoc بسیار متنوع است در نتیجه انواع مختلفی از آسیب پذیرها را به وجود آورده است. که ما در اینجا به معرفی مهمترین این خطرات و آسیب پذیرها می پردازیم :

* Weak physical protection : محافظت فیزیکی نامناسب
در شبکه های مرسوم قبلی مسئله حفظ امنیت فیزیکی کار مشکلی نیست زیرا به طور مثال :
سرورها یا کاربرها (Workstation) در اتاق های ثابتی هستند که دسترسی افراد غیر مجاز به آن ها امکان پذیر نیست. در حالی که در شبکه های Ad Hoc چنین نیست فرض کنید سربازی در میدان نبرد از یک node شبکه Ad Hoc استفاده می کند ممکن است این سرباز کشته و یا اسیر شود و به راحتی node توسط دشمن تسخیر شود. و یا امروزه با کوچکتر شدن دستگاههای PDA امکان سرقت آنها بیشتر شده است. بنابراین امنیت فیزیکی شبکه Ad Hoc بسیار چالش برانگیز است.
* Constrained Capability
هر node در شبکه Ad Hoc لزوماً باید دارای یک cpu، باتری و پنهای باند باشد. این منابع محدود (مثلاً cpu دارای محدودیت پردازشی است و یا باتری دارای توان محدودی است) می تواند مورد حملات Dos (denial of services) قرار گرفته شود. در شبکه های قبلی؛ حملات Dos علیه عملکرد cpu و پهنای باند مسئله بزرگ و چالش برانگیزی بود. در این نوع حملات درخواست های پی در پی از یک node باعث Flooding در شبکه می شود تا node دیگر قادر به پردازش نباشد و از شبکه خارجی شود. در شبکه های Ad Hoc علاوه بر مشکلات ذکر شده قبلی نوع دیگری از حملات مطرح است. هر node به منظور کاهش میزان مصرف باتری خود سعی دارد تا حد امکان در حالت sleep یا آماده به کار باشد. در اثر این حملات علیه node ؛ node قربانی قادر نیست به حالت sleep برود و مهاجم با برقراری پی در پی تماسهای ساختگی باعث مصرف باتری شده لذا آن node عملاً از شبکه خارج می شود.

* Weakness of wireless medium :
درشبکه های سیمی برای ورود به شبکه باید حتماً اتصال فیزیکی با شبکه برقرار کنیم. اما در شبکه های بی سیم نیازی به اتصال فیزیکی وجود ندارد و تنها با قرار گرفتن در محدوده شبکه می توان به شبکه نفوذ کرد و امنیت آن را به مخاطرف انداخت. به عبارت دیگر شبکه بی سیم شبکه اختصاصی نیست و محدوده آن در واقع محدوده فرکانسی آن است و هر کس با قرار گرفتن در این دامنه می تواند از شبکه استفاده نماید.
* Absence of infrastructure : فقدان وجود زیر ساخت ثابت
شبکه Ad Hoc مستقل از هر Infrastructure عمل می کند. این امر روش کلاسیک امنیتی یعنی استفاده از هویت سنجی (Authentication) هر node که به شبکه متصل می شوند را غیر عملی می کند. از طرف دیگر فقدان وجود Server مرکزی شاید در یک نگاه آسیب پذیری شبکه به شکار آید اما در نگاه دیگر این مسئله می تواند راه حل مناسب برای طرح ریزی یک نقشه امنیتی باشد. زیرا حفاظت سرور مرکزی چالش های خود را دارد.

محدودیت های سخت افزاری یک گره حسگر
عواملی چون اقتصادی بودن سیستم، قابلیت مورد انتظار، تعداد انبوه گره ها و نهایتا عملی شدن ایده ها در محیط واقعی، موجب گشته هر گره یکسری محدودیت های سخت افزاری داشته باشد. این محدودیت ها در ذیل اشاره شده و در مورد هرکدام توضیحی ارائه گردیده است:
* هزینه پائین: بایستی سیستم نهایی از نظر اقتصادی مقرون به صرفه باشد. چون تعداد گره ها خیلی زیاد بوده و برآورد هزینه هر گره در تعداد زیادی (بالغ بر چند هزار ضرب می گردد)، بنابراین هر چه از هزینه هر گره کاسته شود، در سطح کلی شبکه، صرفه جویی زیادی صورت خواهد گرفت و سعی می شود هزینه هر گره به کمتر از یک دلار برسد.
* حجم کوچک: گره-ها به نسبت محدوده ای که زیر نظر دارند، بخشی را به حجم خود اختصاص می دهند. لذا هر چه این نسبت کمتر باشد به همان نسبت کارایی بالاتر می رود و از طرفی در اکثر موارد برای اینکه گره-ها جلب توجه نکند و یا بتوانند در برخی مکان ها قرار بگیرند نیازمند داشتن حجم بسیار کوچک می-باشند.
* توان مصرفی پائین: منبع تغذیه در گره-ها محدود می باشد و در عمل، امکان تعویض یا شارژ مجدد آن مقدور نیست؛ لذا بایستی از انرژی وجود به بهترین نحو ممکن استفاده گردد.
* نرخ بیت پائین: به خاطر وجود سایر محدودیت ها، عملا میزان نرخ انتقال و پردازش اطلاعات در گره ها، نسبتا پایین می-باشد.
* خودمختار بودن: هر گره ای بایستی از سایر گره ها مستقل باشد و بتواند وظایف خود را طبق تشخیص و شرایط خود، به انجام برساند.
* قابلیت انطباق: در طول انجام نظارت بر محیط، ممکن است شرایط در هر زمانی دچار تغییر و تحول شود. مثلا برخی از گره-ها خراب گردند. لذا هر گره بایستی بتواند وضعیت خود را با شرایط بوجود آمده جدید تطبیق دهد.

آرایش کلید در شبکه های اقتضایی
در شبکه های Ad-hoc مصالحه گره توسط مهاجم یک تهدید فاجعه آمیز است. قدرت حمله مهاجم توسط تعداد گره های در اختیار خودش به همراه تعداد گره های مصالحه شده یا لو رفته توسط او تعیین می شود. از این جهت نیز می توان برای قدرت تخریب و نفوذ حملات باند بالا و پایین در نظر گرفت. همانطور که گفته شد برای جلوگیری از این حملات نیاز به یک محیط مدیریت شده حیاتی است.
برای یک شبکه اختصاصی توزیع کلیدهای جلسه می تواند قبل از قرارگیری گره ها از طریق یک بخش ثالث معتمد انجام شود و به منظور تمیز دادن گره های سالم از بقیه گره ها هر گره سالم با چند کلید منحصر به فرد احراز هویت میشود. مشکل آرایش کلید در شبکه های Ad-hoc این است که چگونه اطلاعات کلید معتبر را توزیع کنیم.
یکی از روشها این بود که کلیدهای مخفی مشترک تولید کنیم، همانند مدل احیای جوجه اردک که در آن دو گره برای اتصال گره Slave به گره Master به هم وصل میشوند و اطلاعات تبادل کلید از طریق آنها برقرار می شود، یا مدل کانال کناری برای یافت فرستنده ها. این مدلها همگی دارای محدودیتهای ساختاری هستند و انعطاف پذیری موجود در شبکه های Ad-hoc را به نوعی مقید می کنند.
اگر فرض کنیم که هر گره لیست کلیدهای عمومی معتبر گره های سالم را قبل از قرارگیری در شبکه دارد. بعد از توزیع کلیدهای عمومی با استفاده از پروتوکل تبادل کلید Diffie-Hellman بین هر دو گره مورد نظر می توان کلید مخفی مشترک را مبادله کرد. در نتیجه لزوم وجود مرکزی معتمد (TA) برای ثبت گره های جدید و کلا برقراری زیرساختار کلید عمومی شبکه کاملا احساس می شود. همچنین برای تبادل کلید مخفی وجود ارتباط امن (بدون شنود) بین TA و گره تازه وارد لازم است و برای تبادل لیست کلید گره های سالم وجود ارتباط امن از حمله فعال الزامی است.
یک راه حل برای حل این مشکل استفاده از آدرسهای SUCV بود که در آن هر گره یک کلید عمومی و یک کلید خصوصی برای خود دارد و آدرس SUCV را بر اساس درهم شده کلید عمومی بدست می آورد. ولی در این روش همچنان مشکل بدست آوردن لیست نام گره های سالم (بدون کلید عمومی) باقی است. برای رفع این مشکل در برخی شبکه های Ad-hoc یک یا چند CA تعریف می کنند که کار آنها صدور گواهینامه گره که شامل آدرس، کلید عمومی و امضای CA است، می باشد. مراکز CA نمی توانند همواره درونخط باشند چرا که دوباره یک وابستگی چرخشی بین مسیریابی و امنیت به وجود می آید. زیرا مسیریابی به امنیت نیازمند است و پیاده سازی امنیت نیازمند مسیریابی درونخط است. در نتیجه در موارد حیاتی CAها به صورت برونخط عمل می کنند.
روش پیشنهادی دیگر برای حل مساله زیرساختار کلید عمومی استفاده از رمزنگاری آستانه ای می باشد که در آن سهمی از هر کلید خصوصی بین گره ها به اشتراک گذاشته می شود. این روش در واقع نوع بسط یافته از مبحث تسهیم راز می باشد. همانطور که در شکل 5 نشان داده شده است هر t انتخاب از serverهای S1 تا Sn می تواند به بازیابی یا به روز رسانی کلید یکی از serverها منجر شود.

فصل دوم

امنیت در شبکه های بی سیم
این شبکه ها به شدت در مقابل حملات آسیب پذیرند و امروزه مقاومت کردن در برابر حملات از چالش های توسعه این شبکه هاست. دلایل اصلی این مشکلات عبارتند از :
* کانال رادیویی اشتراکی انتقال داده
* محیط عملیاتی ناامن
* قدرت مرکزی ناکافی
* منابع محدود
* آسیب پذیر بودن از لحاظ فیزیکی
* کافی نبودن ارتباط نودهای میانی.

مشکلات امنیتی در شبکه های موردی

مشکلات امنیتی در شبکه های موردی از آن جهت خاص شده و جداگانه مورد بررسی قرار می گیرد که در این شبکه ها،علاوه بر این که تمامی مشکلات موجود در یک شبکه با سیم و یا یک شبکه بی سیم ولی با زیرساخت با سیم وجود دارد؛بلکه مشکلات بیشتری نیز دیده می شود. مانند اینکه از آنجا که تمامی ارتباطات به صورت بی سیم انجام می شود، می توان آنها را شنود کرد و یا تغییر داد. همچنین از آنجایی که خود گره ها در عمل مسیریابی شرکت می کنند،وجود یک گره متخاصم می تواند به نابودی شبکه بیانجامد. همچنین در این شبکه ها تصور یک واحد توزیع کلید و یا زیرساخت کلید عمومی و غیره مشکل است. زیرا این شبکه ها اغلب بدون برنامه ریزی قبل ایجاد می شوند و برای مدت کوتاهی نیاز به برقراری امنیت دارند. از این رو امنیت در این شبکه ها به صورت جداگانه مورد بحث و بررسی قرار می گیرد. در مجموع می توان موارد امنیتی در شبکه های موردی را به صورت زیر دسته بندی کرد:
* مدیریت کلید
* مسیریابی امن
* تصدیق اصالت
* جلوگیری از حملات ممانعت از سرویس
* تشخیص سوء رفتار
* تشخیص نفوذ
* …
موارد ذکر شده به طور خاص برای شبکه های موردی مورد بررسی قرار می گیرند.
ج
منشا ضعف امنیتی در شبکه های بی سیم و خطرات معمول
ساختار این شبکه ها مبتنی بر استفاده از سیگنال های رادیویی به جای سیم و کابل، استوار است. با استفاده از این سیگنال ها و در واقع بدون مرز ساختن پوشش ساختار شبکه، نفوذگران قادرند در صورت شکستن موانع امنیتی نه چندان قدرتمند این شبکه ها، خود را به عنوان عضوی از این شبکه ها جازده و در صورت تحقق این امر، امکان دست یابی به اطلاعات حیاتی، حمله به سرویس دهنده گان سازمان و مجموعه، تخریب اطلاعات، ایجاد اختلال در ارتباطات گره های شبکه با یکدیگر، تولید داده های غیرواقعی و گمراه کننده، سوءاستفاده از پهنای باند موثر شبکه و دیگر فعالیت های مخرب وجود دارد. در مجموع، در تمامی دسته های شبکه های بی سیم، از دید امنیتی حقایقی مشترک صادق است :
* نفوذگران، با گذر از تدابیر امنیتی موجود، می توانند به راحتی به منابع اطلاعاتی موجود بر روی سیستم های رایانه ای دست یابند.
* حمله های DOS به تجهیزات و سیستم های بی سیم بسیار متداول است.
* کامپیوترهای قابل حمل و جیبی، که امکان استفاده از شبکهٔ بی سیم را دارند، به راحتی قابل سرقت هستند. با سرقت چنین سخت افزارهایی، می توان اولین قدم برای نفوذ به شبکه را برداشت.
* یک نفوذگر می تواند از نقاط مشترک میان یک شبکهٔ بی سیم در یک سازمان و شبکهٔ سیمی آن (که در اغلب موارد شبکهٔ اصلی و حساس تری محسوب می گردد) استفاده کرده و با نفوذ به شبکهٔ بی سیم عملاً راهی برای دست یابی به منابع شبکه سیمی نیز بیابد.

سه روش امنیتی در شبکه های موردی
WEP
در این روش از شنود کاربرهایی که در شبکه مجوز ندارند جلوگیری به عمل می آید که مناسب برای شبکه های کوچک بوده زیرا نیاز به تنظیمات دستی مربوطه در هر سرویس گیرنده می باشد. اساس رمز نگاری WEP بر مبنای الگوریتم RC۴ بوسیله RSA می باشد.
SSID
شبکه های WLAN دارای چندین شبکه محلی می باشند که هر کدام آنها دارای یک شناسه یکتا می باشند این شناسه ها در چندین نقطه دسترسی قرار داده می شوند. هر کاربر برای دسترسی به شبکه مورد نظر بایستی تنظیمات شناسه SSID مربوطه را انجام دهد.
MAC
لیستی از MAC آدرس های مورد استفاده در یک شبکه به نقطه دسترسی مربوطه وارد شده بنابراین تنها کامپیوترهای دارای این MAC آدرس ها اجازه دسترسی دارند به عبارتی وقتی یک کامپیوتر درخواستی را ارسال می کند MAC آدرس آن با لیست MAC آدرس مربوطه در نقطه دسترسی مقایسه شده و اجازه دسترسی یا عدم دسترسی آن مورد بررسی قرار می گیرد. این روش امنیتی مناسب برای شبکه های کوچک بوده زیرا در شبکه های بزرگ امکان ورود این آدرس ها به نقطه دسترسی بسیار مشکل می باشد. در کل می توان به کاستن از شعاع تحت پوشش سیگنال های شبکه کم کرد و اطلاعات را رمزنگاری کرد.

انواع حملات بر روی شبکه های Ad Hoc
* حملات مبتنی بر Modification
یک گره متخاصم می تواند با تغییر فیلدهای یک بسته مسیریابی، باعث شود تا یک مسیر به اشتباه بنا نهاده شود. این کار به گونه های مختلفی می تواند صورت پذیرد. در زیر به توضیح درباره روش های مختلف modification برای دستیابی به مقاصد مختلف می پردازیم.

الف) تغییر مسیر به وسیله تغییر شماره توالی

همان طور که در بخش های قبلی اشاره شد، برخی از الگوریتم های مسیریابی مانند AODV برای تصحیح مسیر از پیش ساخته شده از یک شماره توالی در پیام های RREQ استفاده می کند. شکل 2 را به عنوان یک شبکه موردی نمونه در نظر بگیرید. فرض کنید در این شبکه گره متخاصم M یک پیام RREQ را از گره B دریافت کمد.

این پیام RREQ از طرف S برای پیدا کردن مسیری به X صادر شده است. حال اگر گره M یک RREP با شماره توالی بسیار بزرگتر از شماره توالی RREQ ارسالی، ایجاد کند می تواند مسیر را به نفع خود تغییر دهد. زیرا گره B ، RREP های ارسالی از گره های دیگر را به دلیل کوچکتر بودن شماره توالی آنها نمی پذیرد. این اشکال تنها زمانی رفع می شود که یک RREP یا RREQ معتبر با شماره توالی بزرگتر از REEP ارسالی توسط M ، به B برسد.

ب)تغییر مسیر به وسیله تغییر تعداد hop

در الگوریتم هایی مانند AODV از روش های مختلفی برای پیدا کردن کوتاه ترین مسیر از بین مسیرهای پیدا شده استفاده می کنند. یکی از این روش ها که بسیار استفاده می شود، استفاده از شمارنده hop است. بدین ترتیب که هر گره که RREQ را به گره بعدی ارسال می کند، یک واحد به شمارنده hop اضافه می کند. در نهایت، از روی کمترین مقدار hop count می توان به کوتاه ترین مسیر پی برد. حال یک گره متخاصم می تواند با صفر کردن مقدار hop count یک RREQ، باعث شود تا مسیر نهایی با احتمال بسیار زیادی از خود آن گره عبور کند. و یا اینکه با بی نهایت قرار دادن مقدار ان، خود را از قرار گرفتن در مسیر کنار بکشد.

ج) ممانعت از سرویس به وسیله تغییر مسیر مبدا

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

* حملات مبتنی بر Impersonation

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

در شکل 3 یک شبکه نمونه نمایش داده شده است. مسیرهای نشان داده شده توسط یک درخواست مسیریابی توسط الگوریتم AODV بنا شده است. حال اگر گره M به نزدیکی گره B رفته و با MAC گره A خود را به جای او جا بزند و RREPی را با hop count صفر برای B ارسال کند، B مسیر را به سمت A تغییر می دهد. در مرحله بعد گره M جای خود را عوض کرده و به سمت C می رود و با MAC متعلق به B یک RREP با hop count صفر برای C ارسال می کند. بنابراین C نیز مسیر خود را به سمت B تغییر می دهد. در این مرحله است که یک حلقه(A,D,C,B,A) ایجاد می شود.

یکی دیگر از راههای دسته بندی حملات مسیریابی به صورت زیر است. این حملات را می توان به دو دسته حمله های شکست مسیریابی و حمله های مصرف مسیریابی تقسیم می شوند. در دسته اول از حمله ها، حمله کننده سعی می کند تا بسته های خود را به عنوان بسته های قانونی بر روی شبکه ارسال نماید تا این بسته ها در راههای غیر کارا صرف شوند. در دسته دوم، حمله کننده سعی می کند تا با ارسال بسته ها به گونه ای سبب شود تا منابع شبکه مانند پهنای باند و یا منابع گره مانند حافظه یا توان محاسباتی، مصرف شوند. از دید لایه کاربرد هر دوی این حمله در دسته حملات ممانعت از سرویس قرار می گیرند.
در ادامه بحث به بررسی چند حمله مشهور که خاص شبکه های موردی هستند می پردازیم.

* حمله سوراخ کرم
یکی از حملات بسیار مشهوری که خاص شبکه های موردی است، حمله سوراخ کرم می باشد. در این حمله دو گره متخاصم با همکاری یکدیگر، یک اتصال کوتاه را در توپولوژی شبکه ایجاد می کنند. حمله مذکور به ترتیب زیر اجرا می شود. درخواست مسیریابی از جانب یک گره، به یکی از گره های متخاصم می رسد. حال این گره متخاصم درخواست را از طریق یک شبکه خصوصی برای گره دوم ارسال می کند. حال اگر این دو گره مقدار شمارنده hop درخواست مسیر را عوض نکنند، مقدار زیادی از مسیر توسط این شبکه خصوصیی بدون افزایش مقدار hop طی شده است. بدین ترتیب ممکن است به جای دهها hop، تنها با دو hop، بسته به مقصد برسد. در این حالت مطمئنا این مسیر به عنوان کوتاه ترین مسیر انتخاب می شود.
یک راه برای جلوگیری از حمله سوراخ کرم استفاده از قلاده های بسته است. این روش توسط Yih-Chun Hu و Adrian Perrig ارایه شد. قلاده های بسته به دو دسته تقسیم می شوند:
الف) قلاده های زمانی : این تکنیک مبتنی بر همزمانی دقیق دو گره مبدا و مقصد و همچنین استفاده از مهر زمانی در بسته ها است. بدین ترتیب با کاهش مقدار مهر زمانی از زمان دریافت بسته، مدت زمانی که بسته در راه بوده است تخمین زده می شود و از این طریق می توان در مقابل تعداد hop هایی که زمان از اندازه معقول بزرگتر است، جلوگیری کرد. یعنی با توجه به زمان در راه بودن بسته و سرعت انتقال بسته در رسانه، تخمین زد که حدودا چه تعداد hop ی می بایست تئسط بسته طی شده باشد. بنابراین می توان در مقابل حمله سوراخ کرم ایستادگی کرد.
ب ) قلاده های مکانی : این تکنیک مبتنی بر اطلاعات مکانی است. گره مقصد می تواند با توجه به محدود بودن سرعت گره ها، فاصله تقریبی گره مبدا تا خود را اندازه گیری کند و بنابراین از مسیرهای غیر معقول جلوگیری نماید.

* حمله هجوم
یکی از حملاتی که در شبکه های موردی وجود دارد حمله هجوم است. این حمله در برابر تمامی پروتکل های on-demand ی که برای شبکه های موردی مطرح شده است (شامل الگوریتم های امن) کاربرد دارد. همان طور که پیشتر نیز گفته شد، در یک پروتکل on-demand زمانی که یک گره بخواهد مسیری را به یک گره مقصد بداند، بسته درخواست مسیر را برای تمامی گره های همسایه ارسال می کند. برای کاهش بار این flooding، هر گره که دریافت کننده این درخواست مسیر است، فقط برای یک بار آن را به سمت جلو ارسال می کند. در تمامی پروتکلها همانند DSR،AODV ، LAR، Ariadne،SAODV، ARAN، SRP و غیره تنها اولین درخواست مسیر دریافت شده منتشر می گردد و درخواستهای مسیر بعدی از همان اکتشاف مسیر، نادیده گرفته می شوند. در حمله هجوم همین روش عملکرد مورد استفاده قرار می گیرد.
فرض کنید در طی یک عملیات اکتشاف مسیر، بسته های دریافتی از سوی متهاجمین، اولین بسته دریافتی توسط گره های همسایه گره مقصد باشد. در این صورت تمامی درخواستهای دیگر که بعدا به دست این گره ها می رسد نادیده گرفته خواهد شد و تنها بسته درخواست مسیری که مهاجم فرستاده است را به مقصد ارسال می نماید. همین امر باعث می شود تا مسیرهای به دست آمده به گونه ای باشد که حتما در آن مسیرها یک گره مهاجم وجود داشته باسشد.
بنابراین اگر مهاجم درخواست خود را بسیار سریع تر از گروه مجاز ارسال نماید، به طور حتم بسته او دریافت خواهد شد و مورد پذیرش قرار خواهد گرفت ومهاجم می تواند با احتمال زیادی مسیری را بنا کند که خود او در آن مسیر وجود دارد. گره مهاجم برای انجام این عمل به منابع زیادی احتیاج ندارد. زیرا اصولا تاخیری که در فرستادن رو به جلوی بسته های درخواست ایجاد می شود ناشی از دو علت است. به عنوان مثال اگر از سیستم CDMA برای ارسال اطلاعات بر روی رسانه استفاده می شود، در صورت اشغال بودن رسانه، گره می بایست برای خالی شدن رسانه منتظر بماند. دوم اینکه برای جلوگیری از تلاقی اطلاعات بر روی رسانه، هر گره می بایست به میزان یک عدد تصادفی منتظر بماند و سپس اطلاعات خود را بر روی رسانه منتشر کند. حال اگر مهاجم هیچکدام از این زمانها را صرف نکند و بلافاصله پس از دریافت درخواست، آن را ارسال کند، با احتمال زیادی درخواست او زودتر از بقیه درخواستها به گره های همسایه گره مقصد می رسد.
یک روش دیگر برای این کار این است که مهاجم گره های همسایه را مشغول نگاه دارد تا در هنگام دریافت یک درخواست مسیر، آنها فرصت پاسخگویی به ان را نداشته باشند. برای مثال در یک شبکه که از تصدیق اصالت برای پیام های درخواست مسیر استفاده می شود، گره مهاجم می تواند با ارسال پیام های درخواست مسیر جعلی، گره های همسایه را سرگرم تصدیق اصالت آنها کند. در این حالت پس از دریافت درخواست مسیر مجاز از یک گره دیگر، خود گره مهاجم آن را به سمت جلو ارسال می کند. در صورتی که گره های فرصتی برای کنترل آن را ندارند و این کار را به تاخیر می اندازند.
راه دیگری که برای این کار وجود دارد این است که مهاجم، توان ارسال بسته درخواست را بالا ببرد. بنابراین بسته با توان بیشتری بر روی رسانه منتشر می شود و با تعدا hop کمتری به مقصد می رسد. بنابراین در زمان هایی که در طول این رفت و آمد در گره ها صرف پردازش بسته ها می شد، صرفه جویی می شود.
یک مهاجم قدرتمند تر ممکن است از حمله سوراخ کرم برای پیاده سازی حمله هجوم استفاده کند. در این روش، مهاجم از طریق یک کانال با سیم که سرعت انتقال آن سریع تر از سرعت انتقال بسته ها در شبکه موردی است، بسته درخواست به سمت سک گره مهاجم دیگر ارسال کرده و بدین ترتیب باعث حمله هجوم در شبکه موردی می شود.
همان گونه که مشخص است تمامی پروتکل های on-demand موجود در مقابل حمله هجوم دچار ضعف هستند. زیرا این پروتکل ها می بایست تعداد درخواست های ارسالی تکراری را بهمنظور کاهش بار شبکه، کم کنند. بنابراین یک مهاجم زیرک می تواند از این مساله استفاده ببرد.
* (Deniy of services) Dos :
در این نوع حمله یک کاربر یا node با دسترسی مجاز نمی تواند وارد شبکه شود. این حملات می تواند خود را به شکل گوناگون بروز دهد. به طور مثال مشکلات نرم افزاری، مشکلات سیستم عامل و یا حتی مشکل در عملکرد باتری باشد. بهترین راه مقابله با چنین حملاتی بهره گیری از وصله های امنیتی (patch) به روز کردن سیستم عامل به صورت متناوب است. به هر حال باید توجه داشت که تعیین سطوح و الگوهای امنیتی مناسب در مقابل چنین حملاتی کاری پیچیده است.
* Replay message : پیامهای مکرر
مهاجم به صورت مکرر و پی در پی شروع به فرستادن پیامها و بسته ها به یک node کرده. هدف از فرستادن چنین پیامهای جعلی ایجاد بار پردازشی غیر ضروری و مشغول کردن node و جلوگیری از برقراری ارتباط node با شبکه است.

* Traffic Analysis : تحلیل ترافیک
آنالیز کردن ترافیک شبکه به صورت مستقیم به مهاجم اطلاعات نمی دهد امّا می تواند در حکم سرنخ ها و کلیدهای باشند که به مهاجم دریافتن اطلاعات یاری دهد. به عنوان نمونه : در کاربردهای نظامی با آنالیز کردن ترافیک شبکه می توان تشخیص داد که کدام node وظیفه فرماندهی و صدور دستور را به عهده دارد و این node؛ همان node است که باید نابود شود.
و یا با تجزیه و تحلیل ترافیک شبکه می توان به منظور پیش بینی رخدادهای بعدی پرداخت مثلاً در مقاصد نظامی با افزایش ترافیک و فعالیت های nodeها در شبکه می توان پیش بینی کرد که احتمال حمله در پیش است.
* Devise Theft : سرقت فیزیکی دستگاه
مسئله سرقت فیزیکی دستگاه بسیار رایج و خطرناک است. از طرف دیگر طراحی سیستم های سیار ضد سرقت میزان کار آسانی نیست خصوصاً که در شبکه های Ad Hoc به علت پویای و تنوع استفاده بیشتر مورد خطر است.
* Eavesdropping (استراق سمع)
در این نوع حمله، مهاجم به اطلاعات رد و بدل شده بین nodeها گوش می کند این مسئله در شبکه های بی سیم بسیار رایج است زیرا هیچ کنترل فیزیکی روی nodeها وجود ندارد. البته با استفاده از مکانیزمهای و توپولوژی ها رمز گذاری می توان تاحد بسیار زیادی از این مسئله جلوگیری کنیم.
* Jamming (پخش پارازیت)
در این حمله، با استفاده از انتشار پارازیت سعی در از کار انداختن وسایل رادیویی و یا وسایل ارتباطی است. Jamming در واقع نوعی از حملات Dos می باشد. دفاع در مقابل این نوع حملات کار بسیار مشکل می باشد. اما ردیابی منبع پارازیت انداز به آسانی امکان پذیر است.- Cryptalysis and password : (کشف رمز)
این نوع حملات که در واقع پیش شرط و لازمه سایر حملات است. این گروه حملات شامل بدست آوردن پسورد و استفاده از هر امکان که بتواند مهاجم را از سد امنیتی شبکه عبور دهد در محیط شبکه پیامها معمولاً به صورت رمزگذاری شده هستند که برای خواندن این اطلاعات نیاز به دانستن عنصر کلید است. اصولاً هدف از کشف رمز بدست آوردن اطلاعات امنیتی مربوط به nodeهای شبکه است.
* Malicious code : (کدها مخرب)
شامل کلیه نرم افزارها و سخت افزارهای است که وظیفه آن ها تولید کدهای مخرب است. ویروس ها، اسب های تراوا و کرم ها نمونه های از این نوع کدها هستند. که با توجه به هدف مهاجم وظیفه خاصی را انجام می دهند.
* Routing Table overflow : سر ریزهای جدول مسیر یابی
مهاجم با ایجاد پیامهای جعلی؛ مسیرهای ساختگی و یا با ایجاد پیامهای مسیر یابی برای یک node غیر موجود باعث ایجاد اختلال و اشتباه در کار Routing (مسیر یابی) می شود.
* Selfishness (خود خواهی)
این نوع حملات مفهوم تازه ای در شبکه های Ad Hoc به وجود آورده است. در این نوع حملات nodeها به منظور حفظ منابع خود (پنهای باند، مصرف باتری و cpu) از پذیرفتن انتقال بسته های nodeهای دیگر سرباز می زنند و با سایرnodeها همکاری نمیکندکه باعث از کار افتادن کل شبکه می شوند.

* Incorrect Forwarding (انتقال اشتباه بسته)
در این نوع حمله nodeها بسته را به مقصد صحیح خود نمی رسانند و یا بسته ها را به nodeهای خاصی منتقل می کنند و حتی باعث اختلال در الگوهای مسیر یابی Routing tableمی شود.
* Traffic Deviation (انحراف ترافیک)
در این نوع حملا ت مهاجم اطلاعات مربوط به ترافیک و مسیر یابی را مورد هدف قرار می دهد مثلاً طوری نشان می دهد که عبور از nodeخاص کوتاه ترین مسیر به مقصد است و باعث می شود سایر nodeها اطلاعات خود را از طریق این node به مقصد خود برسانند به وضوح روشن است که با یک node ساختگی می توان از کلیه اطلاعات عبوری در شبکه آگاه شد.
* Black Hole Attack (چاله های سیاه)
این روش ترکیبی از دو روش حمله : Traffic deviation , incorrect forwarding است. Node مهاجم با وا نمود کردن خود به عنوان کوتاهترین مسیر برای رسیدن بسته ها به مقصد; Node فرستنده بسته را وادار میکند تا بسته خود را از طریق این Node ساختگی به مقصد برساند. در نتیجه به راحتی شروع به نابودی کل بسته ها عبوری از خود می کند.این مفهوم دقیقاً به مفهوم چاله های سیاه که ستاره ها را به درون خود می کشد و آن ها را نابود می سازد شبیه است.

* Gray Hole Attack ( چاله های خاکستری)
در واقع نوع خاصی از Black Hole Attack است. در این نوع حمله همه بسته ها نابود نمی شوند و تنها نوع خاصی از بسته ها انتخاب و نابود می شود. همچنین در حملات Gray Hole می توان بسته ها را فقط به مقصد خاص انتقال داد و یا بسته ها فقط از یک منبع خاص فرستاده شوند.
* Worm Hole Attack
در این روش زیرکانه دو node آلوده با هم، هم دست شده و یک تونل مجازی ایجاد می کنند و به طور گسترده شروع به دستکاری Hop – Count metrics (سیستم تعیین مسافت جهش ها) کرده در نتیجه در کار table Routing وقفه ایجاد می کنند.
* Sybille Attack
باعث تولید nodeهای ساختگی و غیر واقعی در شبکه شده و سیستم در تعیین نوع توپولوژی و یا ایجاد Routing table دچار اشتباه می شود. راه دفاع در مقابل چنین حملاتی استقاده ازمکانیزمهای قوی Authentication و استفاده از امضای دیجیتالی است.

روشهای پیشگیری از حمله (Attack prevention Techniques)
اکثر تحقیقات انجام شده بر روی ارتفای امنیت شبکه Ad Hoc به مسئله پیشگیری پرداخته اند تا دفاع در مقابل حمله. از آن جمله می توان به استفاده از روش های همچون Authentication (هویت سنجی) و Encryption (رمز نگاری) به عنوان اولین راه حل های امنیتی اشاره کرد.

* Preventing External Attack: Key and trust management
برای ایجاد ایمنی در مقابل حمله خارجی از روش های مانند :
1- استفاده از رمز نگاری (Encryption)
2- هویت سنجی (Authentication)
3- مدیریت کلید (Key management)
به صورت گسترده و فراگیر استفاده می کنند. گرچه استفاده از این روش در شبکه های Ad Hoc خود دچار مشکلات و چالش های خاصی است. به عنوان نمونه: ما در شبکه های Ad Hoc با یک توپولوژی پویا و در حال تغییر (Dynamic) روبرو هستیم از طرف دیگر نبود یک infrastructure مرکزی مسئله دیگری است که ما را با مسائل و مشکلات جدیدی روبرو می سازد.
محققان برای شبکه های Ad Hoc به منظور تولید کلید: دو روش Symmetric Key (کلیدهای متقارن) و Asymmetric Key (کلیدهای غیر متقارن) را پیشنهاد کرده اند.
استفاده از کلید Symmetric دارای مزیتها و نقایصی است. از مزیت های آن می توان به کارایی (Performance) بالا و از نقایص آن می توان به عدم گسترش پذیری (scaiblty) اشاره کرد و در این روش ما به ازای هر یک جفت node نیازمند O(n2) کلید هستیم.
مسئله دیگر که باید به آن توجه شود این است که خود فرآیند تولید کلید; انتشارکلید و مدیریت کلید در شبکه های Ad Hoc به علت عدم وجود یک سیستم مرکزی مدیریتی خود داری
چالش های جدیدی است. در شبکه های Ad Hoc کاملاً پذیرفته شده است که به علت نداشتن:
(Key Distribution center) KDC سیستم مرکزی انتشار کلید و
(Certificate Authority)CA چندان قابل تایید و اعتماد نیستند. به همین جهت باید از روش های جایگزین که;وظیفه مدیریت سرویس های انتشار دهنده کلیدها
(services management distributed Key) که بر اساس تبادل رمز (secret sharing) کار می کنند استفاده کرد.
روش دیگر پیشنهادی برای حل مشکل انتشار کلیدها استفاده از تکنیکهای PGP مانند
" trust web of " است. در این روش هر node به node های قابل اطمینان دیگر گواهی صادر کرده و برای آنها یک نمودار که تعیین کننده خارج از محدوده و یا داخل محدوده
(out bound یا in – bound ) بوده است را ایجاد می کند. هر گاه دو node می خواهند با یکدیگر ارتباط برقرار کنند گراف های یا نمودارهای آن ها با یکدیگر مقایسه می شود اگر این دو گراف با هم یکسان باشند سپس اجازه ارتباط صادر می شود.
* Preventing Internal Attacks: Secure Routing Protocol
روش های ذکر شده قبلی در پیشگری از حملات خارجی است اما این روش ها قادر به پیشگیری از یک node داخلی که قصد حمله علیه شبکه یا پروتکل های مسیر یابی (Routing Protocol) را دارد نمی تواند جلوگیری کند. برای مقابله با چنین حملات داخلی ما نیازمند پروتکل های مسیر یابی ایمن باکارایی بالا که هستیم که همهnodeها را مجبور کند از قوانین شبکه پیروی کنند.

نیاز مندی های امنیتی شبکه موردی
یک الگوریتم مسیریابی خوب در شبکه موردی می بایست بتواند یک مسیر را به درستی بنا کند و از آن نگهداری نماید. بدین معنا که اجازه ندهد تا گره های متخاصم از ساخت یا نگهداری صحیح مسیر جلوگیری نمایند. در مجموع اگر یک الگوریتم نکات زیر را رعایت کند می توان آن را یک الگوریتم امن نامید. اصولا در یک الگوریتم امن:
* سیگنال های مسیریابی نمی توانند جعل شوند.
* سیگنال های دستکاری شده نتوانند به داخل شبکه تزریق شوند.
* پیام های مسیریابی در طی انتقال به جز در روند عادی پروتکل تغییر پیدا نکنند.
* حلقه های مسیریابی در طی فعالیت های خصم آمیز ایجاد نشوند.
* کوتاه ترین مسیرها توسط گره های متخاصم تغییر پیدا نکند.
موارد بالا نیازهای یک محیط باز را برآورده می کنند. برای یک محیط باز مدیریت شده مورد زیر نیز می بایست رعایت شود.
* گره های غیر مجاز می بایست از شبکه کنار گذاشته شوند. این مورد با این فرض صورت می گیرد که مدیریت شبکه در راه اندازی و توزیع کلید و… نقش داشته باشد.
همچنین یک حیط متخاصمانه مدیریت شده تعریف می شود که در آن علاوه بر موراد فوق مورد زیر نیز در نظر گرفته می شود.
* توپولوژی شبکه نباید توسط مدیر شبکه به هیچ کدام از گره های مجاز و یا متخاصم نشان داده شود. زیرا گره های متخاصم می توانند از طریق آن برای تخریب شبکه اقدام کنند.

فصل سوم

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

پروتکل های مسیریابی
پروتکل های مسیریابی بین هر دو نود این شبکه به دلیل اینکه هر نودی می-تواند به طور تصادفی حرکت کند و حتی می تواند در زمانی از شبکه خارج شده باشد، مشکل می-باشند. به این معنی یک مسیری که در یک زمان بهینه است ممکن است چند ثانیه بعد اصلا این مسیر وجود نداشته باشد. در زیر سه دسته از پروتکلهای مسیر یابی که در این شبکه-ها وجود دارد را معرفی میکنیم.
1. Table Driven Protocols
2. On Demand Protoco l
3. Hybrid Protocols
1- در این روش مسیریابی هرنودی اطلاعات مسیریابی را با ذخیره اطلاعات محلی سایر نودها در شبکه استفاده می کند و این اطلاعات سپس برای انتقال داده از طریق نودهای مختلف استفاده می شوند.
2- روش ایجاد می کند مسیرهایی بین نودها تنها زمانی که برای مسیریابی بسته مورد نیاز است تا جایی که ممکن است بروزرسانی روی مسیرهای درون شبکه ندارد به جای آن روی مسیرهایی که ایجاد شده و استفاده می شوند وقتی مسیری توسط یک نود منبع به مقصدی نیاز می شود که آن هیچ اطلاعات مسیریابی ندارد، آن فرآیند کشف مسیر را از یک نود شروع می کند تا به مقصد برسد. همچنین ممکن است یک نود میانی مسیری تا مقصد داشته باشد. این پروتکل ها زمانی موثرند که فرآیند کشف مسیر کمتر از انتقال داده تکرار شود زیرا ترافیک ایجاد شده توسط مرحله کشف مسیر در مقایسه با پهنای باند ارتباطی کمتر است.
3- ترکیبی از دو پروتکل بالاست. این پروتکل ها روش مسیریابی بردار فاصله را برای پیدا کردن کوتاه ترین به کار می گیرند و اطلاعات مسیریابی را تنها وقتی تغییری در توپولوژی شبکه وجود دارد را گزارش می دهند. هر نودی در شبکه برای خودش یک zone مسیریابی دارد و رکورد اطلاعات مسیریابی در این zoneها نگهداری میشود. مثل(ZRP(zone routing protocol

پروتکل های روش اول
* : DSDVاین پروتکل بر مبنای الگوریتم کلاسیک Bellman-Ford بنا شده است. در این حالت هر گره لیستی از تمام مقصدها و نیز تعداد پرش-ها تا هر مقصد را تهیه می کند. هر مدخل لیست با یک عدد شماره گذاری شده-است. برای کم کردن حجم ترافیک ناشی از بروز رسانی مسیرها در شبکه از incremental -packets استفاده می شود. تنها مزیت این پروتکل اجتناب از به وجود آمدن حلقه-های مسیریابی در شبکه های شامل مسیریاب های متحرک است. بدین ترتیب اطلاعات مسیرها همواره بدون توجه به این که آیا گره در حال حاضر نیاز به استفاده از مسیر دارد یا نه فراهم هستند.
معایب : پروتکل DSDV نیازمند پارامترهایی از قبیل بازه زمانی بروزرسانی اطلاعات و تعداد بروزرسانی های مورد نیاز می-باشد.
* : WRP این پروتکل بر مبنای الگوریتم path-finding بنا شده با این استثنا که مشکل شمارش تا بی نهایت این الگوریتم را برطرف کرده است. در این پروتکل هر گره، چهار جدول تهیه می کند: جدول فاصله، جدول مسیر یابی, جدول هزینه لینک و جدولی در مورد پیام-هایی که باید دوباره ارسال شوند. تغییرات ایجاد شده در لینک ها از طریق ارسال و دریافت پیام میان گره های همسایه اطلاع داده می شوند.
* : CSGR در این نوع پروتکل گره-ها به دسته-ها تقسیم بندی می-شوند. هر گروه یک سر گروه دارد که می تواند گروهی از میزبان ها را کنترل و مدیریت کند. از جمله قابلیت هایی که عمل دسته بندی فراهم می کند می-توان به اختصاص پهنای باند و دسترسی به کانال اشاره کرد. این پروتکل از DSDV به عنوان پروتکل مسیریابی زیر بنایی خود استفاده می کند. نیز در این نوع هر گره دو جدول یکی جدول مسیریابی و دیگری جدول مریوط به عضویت در گره های مختلف را فراهم می کند.
معایب : گره ای که سر واقع شده سربار محاسباتی زیادی نسبت به بقیه دارد و به دلیل اینکه بیشتر اطلاعات از طریق این سرگروه-ها برآورده می شوند در صورتی که یکی از گره های سرگروه دچار مشکل شود کل و یا بخشی از شبکه آسیب می-بیند.
* : STAR این پروتکل نیاز به بروز رسانی متداوم مسیرها نداشته و هیچ تلاشی برای یافتن مسیر بهینه بین گره ها نمی کند.

* پروتکل های روش دوم
* : SSR این پروتکل مسیرها را بر مبنای قدرت و توان سیگنال ها بین گره-ها انتخاب می کند. بنابراین مسیرهایی که انتخاب می شوند نسبتا قوی تر هستند. می-توان این پروتکل را به دو بخش DRP و SRP تقسیم کرد . DRP مسئول تهیه و نگهداری جدول مسیریابی و جدول مربوط به توان سیگنال ها می-باشد .SRP نیز بسته های رسیده را بررسی می کند تا در صورتی که آدرس گره مربوط به خود را داشته باشد آن را به لایه-های بالاتر بفرستد.
* DSR : در این نوع، گره های موبایل بایستی حافظه هایی موقت برای مسیرهایی که از وجود آنها مطلع هستند فراهم کنند. دو فاز اصلی برای این پروتکل در نظر گرفته شده-است: کشف مسیر و بروز رسانی مسیر. فاز کشف مسیر از route request/reply packet-ها و فاز بروز رسانی مسیر از تصدیق-ها و اشتباهای لینکی استفاده می کند.
* :TORA بر اساس الگوریتم مسیریابی توزیع شده بنا شده و برای شبکه های موبایل بسیار پویا طراحی شده-است. این الگوریتم برای هر جفت از گره-ها چندین مسیر تعیین می کند و نیازمند کلاک سنکرون می-باشد. سه عمل اصلی این پروتکل عبارتند از: ایجاد مسیر، بروز رسانی مسیر و از بین بردن مسیر.
* : AODV بر مبنای الگوریتم DSDV بنا شده با این تفاوت که به دلیل مسیریابی تنها در زمان نیاز میزان انتشار را کاهش می-دهد. الگوریتم کشف مسیر تنها زمانی آغاز به کار می کند که مسیری بین دو گره وجود نداشته باشد.
* : RDMAR این نوع از پروتکل فاصله ی بین دو گره را از طریق حلقه های رادیویی و الگوریتم های فاصله یابی محاسبه می کند. این پروتکل محدوده جستجوی مسیر را مقدار مشخص و محدودی تعیین می کند تا بدین وسیله از ترافیک ناشی از سیل آسا در شبکه کاسته باشد.

الگوریتم های مسیریابی معروف و پرکاربرد

* استفاده از الگوریتم Flooding برای انتقال اطلاعات
ساده ترین راه حل برای حل مشکل مسیریابی در شبکه های موردی، انتقال اطلاعات از طریق Flooding است. این روش بدین صورت است که فرستنده اطلاعات،آنها را برای تمامی گره های همسایه خود ارسال می کند. هر گره که یک بسته اطلاعاتی را دریافت می کند نیز این اطلاعات را برای همسایه های خود می فرستد. برای جلوگیری از ارسال یک بسته توسط یک گره برای بیش از یک بار، از یک شماره توالی برای هر بسته استفاده می شود. بدین ترتیب هر گیرنده، شماره توالی هر بسته را کنترل می کند و در صورت غیر تکراری بودن آن ، بسته را برای همسایگان خود ارسال می کند. با این روش داده به طور حتم به مقصد خواهد رسید ولی بعد از رسیدن اطلاعات به مقصد، عملیات flooding همچنان ادامه پیدا می کند تا بسته، به تمامی گره های موجود در شبکه برسد.
همان طور که مشخص است، مزیت اصلی این روش در درجه اول سهولت پیاده سازی آن و در درجه دوم اطمینان از دستیابی بسته به مقصد است. ولی یک اشکال عمده در این طرح این است که بسته های داده غالبا از حجم بالایی برخوردار هستند و همان طور که توضیح داده شد در این روش، داده ها ممکن است مسافتی را بدون اینکه لازم باشد طی کنند. برای مثال فرض کنید که یک گره تصمیم دارد تا داده ای را برای گره همسایه خود ارسال کند. حال اگر بخواهیم از روش Flooding استفاده کنیم، این بسته در تمامی شبکه پخش خواهد شد. در صورتی که اگر از همسایگی گره ها اطلاع داشته داشته باشیم می توانیم این انتقال اطلاعات را به شدت کاهش دهیم.
همین افزایش شدید بار شبکه باعث می شود تا از روش Flooding برای انتقال اطلاعات استفاده نکنند. ولی این روش در جابجایی سیگنالهای کنترلی به دلیل حجم کوچک این سیگنالها،استفاده فراوانی دارد. بسته های کنترلی بسته هایی هستند که برای به دست آوردن مسیر از آنها استفاده می شود و از مسیرهای به دست امده برای ارسال داده استفاده می شود.

* الگوریتم DSR

در الگوریتم DSR یا Dynamic Source Routing ، گره مبدا یک بسته به نام RREQ تولید کرده و در آن گره مبدا و مقصد را مشخص می کند و این بسته را به وسیله الگوریتم Flooding ارسال می کند. هر گره با دریافت یک بسته RREQ، در صورتی که مسیر مقصد را نداند،نام خود را به لیست بسته اضافه کرده و آن را BroadCast می کند. بدین ترتیب وقتی این بسته به مقصد می رسد،یک بسته حاوی اطلاعات گره های مسیر و ترتیب آنها در دست گره مقصد وجود دارد. گره مقصد یک بسته RREP ایجاد کرده و ان را از روی لیست موجود در سرآیند بسته RREQ برمیگرداند. گره های میانی نیز از روی لیست موجود می دانند که بسته را می بایست برای چه کسی ارسال نمایند. بنابراین بسته مسیر را به صورت برعکس طی میکند تا به گره مبدا برسد. این روش اگر چه روش خوبی است و حتما به جواب می رسد ولی بار شبکه را بالا می برد و پهنای باند زیادی را مصرف می کند. زیرا بسته هایی با سرآیند های بزرگ در شبکه منتقل می شوند. افزایش حجم سرآیندها با افزایش فاصله گره مبدا و مقصد زیاد می شود. این افزایش حجم به دلیل قرار گرفتن نام عناصر میانی شبکه در سرآیند بسته است. بعد از این دیگر فرستنده داده می تواند مسیر مقصد را در سرآیند داده ارسالی قرار دهد تا گره های میانی از طریق این مسیر،بدانند که باید بسته را به چه کسی ارسال نمایند. به همین دلیل است که این الگوریتم را مسیریابی پویای مبدا می نامند.
هنگامی که یک گره نتواند بسته داده را به گره بعدی ارسال نماید،بسته ای با نام RERR تولید نموده و ان را بر روی مسیر باز می گرداند. بدین ترتیب گره های دریافت کننده RERR متوجه قطع ارتباط بین ان دو گره می شوند. بنابراین عملیات مسیریابی از سر گرفته می شود.

* الگوریتم AODV
در الگوریتم AODV یا Advanced On-demand Distance Vector بر خلاف الگوریتم قبلی، مسیر را در سرآیند بسته قرار نمی دهد. بلکه هر گره هنگام دریافت RREQ ، از روی جدولی که از قبل دارد آن را کنترل می کند. اگر مسیر گره نهایی را در جدول خود داشته باشد، آنگاه RREP صادر می کند. در غیر این صورت پیغام RREQ را Broadcast می کند. مسلماً RREP ها می توانند به گره فرستنده RREQ بازپس فرستاده شوند. برای اینکه یک گره میانی از این موضوع اگاه شود که آیا مسیری که او می داند، جدیدتر از درخواست ارسال شده است، از یک شماره توالی در پیام های RREQ استفاده می شود. بدین ترتیب تنها در حالتی که شماره توالی RREQ کوچکتر از شماره توالی مسیر دانسته شده باشد، پیام RREP توسط گره میانی صادر می گردد.

الگوریتم های دیگر

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

مشکلات امنیتی در مسیریابی شبکه های موردی
حملات بر علیه شبکه های موردی را می توان از چند دیدگاه دسته بندی نمود. در دیدگاه ا.ل دسته بندی می تواند به صورت حملات خارجی وحملات داخلی باشد. حملات داخلی حملاتی است که توسط گره های مجاز داخل شبکه انجام می شود و غالبا جلوگیری از آنها کاری مشکل است. حملات خارجی حملاتی هستند که توسط یک یا چند گره از خارج از شبکه انجام می شوند و اکثر اقدامات امنیتی در مقابل اینگونه حملات اعمال می شوند. دیدگاه دیگر دسته بندی بر حسب فعال یا غیرفعال بودن حمله است. حملات غیرفعال حملاتی هستند که در آنها حمله کننده
تنها به داده های عبوری گوش داده و آنها را استراق سمع می کند ولی در حملات فعال حمله کننده این داده ها را به نفع خود تغیر می دهد. دیدگاه بعدی دسته بندی از جهت لایه های شبکه ای مورد حمله می باشد. یعنی حمله می تواند بر روی لایه های فیزیکی،MAC، شبکه و یا کاربرد صورت می پذیرد.
مشکلات امنیتی در مسیریابی در شبکه های موردی به سه دسته عمده تقسیم می شود تغییر، جعل هویت و جعل. البته گونه های دیگری از حملات که منجر به حملات ممانعت از سرویس می شوند مانند شرکت نکردن در عملیات مسیریابی یا قطع ارتباط وجود دارند که در تمامی پروتکل های مسیریابی وجوددارند و تنها راه جلوگیری از انها پیدا کردن گره متخاصم می باشد.

چند الگوریتم امن برای مسیریابی در شبکه های موردی

پس از بیان مقدمات فوق، حال به بررسی چند الگوریتم امن مسیریابی در شبکه های موردی می پردازیم. بیشتر این الگوریتم ها بر پایه یکی از الگوریتم های مسیریابی مانند DSR یا AODV بنا شده است و دارای نقاط ضعف و قوت مخصوص به خویش است.

1) پروتکل ARAN

این الگوریتم توسط Kimaya Sanzgiri و همکارانش در سال 2002 ارائه شد. این الگوریتم بر پایه رمزنگاری با کلید عمومی و همچنین استفاده از گواهی بنا شده است. پروتکل ARAN جهت ارائه امنیت مسیریابی، گواهی های رمزنگارانه را به کار می گیرد. چنین گواهی هایی در حال حاضر به عنوان بخشی از شبکه های تک 802.11 hop به کار گرفته شده اند.
پروتکل ARAN شامل یک فرآیند صدور گواهی مقدماتی است که توسط یک فرآیند نمونه سازی مسیر دنبال می شود و تصدیق اصالت انتها به انتها را تضمین می کند. این پروتکل در مقایسه با اکثر پروتکل های مسیریابی موردی غیر امن، ساده به نظر می رسد. کشف مسیر در ARAN توسط یک پیام کشف مسیر انتشار یافته از یک گره مبدا انجام می گیرد که به حالت unicast توسط گره مقصد پاسخ داده می شود، به طوری که پیام های مسیریابی هم در طول مسیر مبدا به مقصد، در hop تصدیق اصالت می شوند و هم در مسیر عکس (از مقصد به مبدا).

الف) صدور گواهی

پروتکل ARAN ملزم است که از یک سرور صدور گواهی قابل اطمینان T استفاده کند، که کلید عمومی آن برای تمام گره های معتبر شناخته شده است. کلیدها در ابتدا ساخته شده و از طریق رابطه ای که میان T و هر یک از گره ها موجود است، مبادله می شوند. پیش از ورود به شبکه موردی، هر گره باید گواهی ای را از T درخواست کند. پس از اینکه هر گره اصالت خود را به طور ایمنی برای T تصدیق نمود، تنها یک گواهی دریافت می کند. روش های که برای تصدیق اصالت ایمن به سرور صدور گواهی لازم است، بر عهده توسعه دهندگان قرار می گیرد. جزئیات چگونگی فسخ گواهی ها در بخش های بعدی شرح داده می شود. گره A، یک گواهی را به صورت زیر از T دریافت می کند:

این گواهی شامل موارد زیر می باشد: آدرس IP گره A، کلید عمومی A، مهر زمانی t برای زمان ایجاد شدن گواهی و e که زمان انقضاء گواهی را نشان می دهد. در جدول زیر خلاصه نحوه نشانه گذاری نمایش داده شده است. این متغیرها توسط T به یکدیگر متصل شده و امضا می شوند. تمام گره ها باید گواهی های جدید را با سرور قابل اطمینان نگهداری کنند. این گواهی ها جهت تصدیق اصالت گره به گره های دیگر در طی مبادله پیام های مسیریابی، مورد استفاده قرار می گیرند.

ب) کشف مسیر تصدیق اصالت شده

هدف تصدیق اصالت انتها به انتها این است که مبدا بتواند تشخیص دهد که به مقصد مورد نظر دست یافته است. در این فرآیند، مبدا برای انتخاب مسیر بازگشت، به مقصد اطمینان می کند.
گره مبدا A با انتشار یک بسته کشف مسیر به همساگان خود، جستجوی مسیر به مقصد X را آغاز می کند:

RDP شامل موارد زیر است: یک شناسه نوع بسته ("RDP")، آدرس IP مقصد (IPX)، گواهی گره A (certA)، یک نانس NA و زمان فعلی t که تمامی آنها با کلید خصوصی A امضا شده اند. هر بار که گره A کشف مسیر را انجام می دهد، نانس به طور یکنواخت افزایش می یابد. نانس و مهر زمانی در حالت وابسته به یکدیگر مورد استفاده قرار می گیرند تا تجدید نانس آسانتر باشد. نانس به اندازه کافی بزرگ می شود که دیگر نیازی به تجدید شدن در clock skew احتمالی در میان دریافت کنندگان نداشته باشد. سپس گره های دیگر، نانسی را که آخرین بار برای گره خاصی دیده اند، به مهر زمانی آن ذخیره می نمایند. اگر نانسی بعدا به طور مجدد در یک بسته معتبر که دارای مهر زمانی دیرتری است، ظاهر شود، فرض می شود که نانس بسته بندی شده است و بنابراین پذیرفته می شود. توجه داشته باشید که شمارش hop در پیام آورده نمی شود.
زمانی که یک گره پیام RDP را دریافت می نماید، با ثبت همسایه ای که RDP را از آن دریافت کرده است، یک مسیر عکس را به سمت مبدا ایجاد می کند. این حالت به دلیل پیش بینی این مساله است که در نهایت پیام پاسخی دریافت می شود که باید به مبدا بازگردانده شود. گره دریافت کننده، از کلید عمومی A که از گواهی آن استخراج شده است، استفاده می کند تا امضا را اعتبار سنجی نموده و بررسی کند که گواهی A هنوز منقضی نشده است. همچنین گره دریافت کننده، دوتایی(NA,IPA) را مورد بررسی قرار می دهد تا مشخص شود که تا به حال این RDP را پردازش نکرده باشد. گره ها پیام ها را برای گره های دیگری که این دوتایی را دیده باشند، ارسال نخواهند کرد، در غیر این صورت، گره محتویات پیام را امضا نموده، گواهی خود را ضمیمه کرده و پیام را برای هر یک از همسایگان خود منشر می کند. این امضا از حملات spoofing ای که ممکن است مسیر را تغییر داده یا حلقه ای ایجاد کند، جلوگیری می نماید.
فرض کنید B همسایه ای باشد که RDP را از A دریافت کرده است و آن را دوباره منتشر می کند.

به هنگام دریافت RDP، گره C که همسایه B می باشد، امضا را با گواهی داده شده اعتبار سنجی می کند. آنگاه C گواهی و امضای B را حذف نموده، B را به عنوان گره ماقبل خود ثبت و گواهی خود را ضمیمه کرده و پیام را ارسال می کند. سپس RDP را مجددا منتشر می کند.

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

ج) راه اندازی مسیر تصدیق اصالت شده

در نهایت پیام توسط مقصد X دریافت می شود، که به اولین RDP که دریافت می کند، برای مبدا و نانس داده شده، پاسخ می دهد. هیچ تضمینی وجود ندارد که اولین RDP دریافت شده، از کوتاهترین مسیر از مبدا عبور کرده باشد. اگر RDP که در کوتاه ترین مسیر حرکت می کند به دلایل منطقی یا متخاصمانه به ازدحام یا تاخیر شبکه برخورد کند، ممکن است اولین RDP نباشد که به مقصد می رسد. در این حالت، یک مسیر بدون ازدحام که لزوما کوتاه ترین مسیر نیز نمی باشد، نسبت به کوتاه ترین مسیری که با ازدحام مواجه می شود، به دلیل کاهش تاخیر ترجیح داده می شود. از آنجا که RDP ها شامل شمارش hop یا مسیر مبدا ثبت شده خاصی نمی باشند و همچنین به دلیل اینکه پیام ها در هر hop امضا می شوند، گره های متخاصم فرصتی برای انتقال ترافیک ندارند.
پس از دریافت RDP، مقصد یک بسته پاسخ(REP) را از طریق مسیر عکس به مبدا باز می گرداند. فرض کنید اولین گره ای که REP ارسال شده توسط X را دریافت می کند، D باشد.

REP شامل موارد زیر است: شناسه نوع بسته("REP")، آدرس IP گره A(IPa)، گواهی متعلق به (certx)X، نانس و مهر زمانی مربوطه ارسال شده توسط A گره هایی که REP را دریافت می کنند، بسته را به گره های ماقبل خود که RDP اصلی را از آنها دریافت کرده اند، باز می گردانند. هر گره در طول مسیر عکس بازگشت به مبدا، پیش از ارسال REP به hop بعدی، آن را امضا کرده و گواهی خود را ضمیمه می کنند. فرض کنید که hop بعدی D تا مبدا، گره C باشد.

گره C امضای D بر روی پیام دریافتی را اعتبار سنجی نموده، امضا و گواهی را حذف می کند و سپس پیش از ارسال REP، به B، محتویات پیام را امضا نموده و گواهی خود را ضمیمه می کند.

هنگامی که REP به مبدا بازگردانده می شود، هر گره نانس و امضای hop قبلی را بررسی می کند. این مساله باعث جلوگیری از حملاتی می شود که گره های متخاصم مسیرها را با جعل هویت و اجرای مجدد پیام X نمونه سازی می کنند. زمانی که مبدا REP را دریافت می کند، امضای مقصد و نانس برگردانده شده توسط مقصد را مورد بررسی قرار می دهد.

د) نگهداری مسیر
پروتکل ARAN یک پروتکل on-demand است. گره ها اطلاعات ردیابی مسیرهای فعال را نگهداری می کنند. زمانی که هیچ نقل و انتقالی بر روی یک مسیر صورت نگرفته باشد، آن مسیر به سادگی در جدول مسیرها غیر فعال می شود. دریافت داده ها از یک مسیر غیر فعال باعث می شود که گره ها یک پیام خطا (ERR) اولید کنند که بر روی مسیر عکس به مبدا بازگردانده می شود. همچنین گره ها از پیام های خطا برای گزارش دادن پیوند های شکسته شده در مسیرهای فعال به دلیل حرکت گره ها نیز استفاده می کنند. تمام پیام های خطا باید امضا داشته باشند. برای مسیری میان مبدا A و مقصد X، گره B پیام خطا را برای همسایه خود، C، به صورت زیر ایجاد می کند:

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

ح) پاسخ به رفتار غیر قابل پیش بینی
رفتار غیر قابل پیش بینی می تواند از یک گره متخاصم نشات بگیرد، اما همچنین می تواند از یکی از گره های دوست که به نادرستی عمل می کند سر بزند. پاسخ ARAN برای این دو حالت تفاوتی ندارد و با هر رفتار غیر قابل پیش بینی به یک حالت مقابله می کند. رفتار غیر قابل پیش بینی شامل استفاده از گواهی های غیر معتبر، پیام هایی که به درستی امضا نشده اند و استفاده ناصحیح از پیام های خطای مسیر است. پاسخ ARAN به رفتار غیر قابل پیش بینی یک تصمیم محلی است و جزئیات بر عهده قسمت پیاده سازی گذارده می شود.

م) انقضای کلید
در برخی محیط هایی که معیار امنیتی مشخصی دارند، مکانیزم مورد نیاز انقضای گواهی باید کاملا قابل اطمینان باشد. با توجه به سربار کم دلخواه در شبکه های بی سیم و استانداردهای امنیتی ضعیف که در محیط باز مدیریت شده یافت می شوند، می توان یک سرویس انقضای بلافاصله ای ارائه داد که توسط به کارگیری گواهی های با زمان محدود پشتیبانی می شود.
در حالتی یک گواهی باید منقضی شود، سرور قابل اطمینان صدور گواهی، T، پیامی جهت اعلام انقضا، برای گروه موردی ارسال می کند. به هنگام فراخوانی گواهی منقضی شده، 2cert، ارسال به شکل زیر است:

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

در انتها مثال زیر را برای شکل 4 در نظر بگیرید.

فرض کنید در این شبکه گره S قصد پیدا کردن مسیری به سمت D را دارد. روند اجرای پروتکل به صورت زیر است:

در نمایش فوق عبارت (M)Kx به معنای امضای پیام M توسط کلید خصوصی گره X است. همچنین Certx گواهی X و t مهر زمانی را نشان می دهند. چهر مرحله اول نشان دهنده عملیات ارسال RREQ و چهار مرحله دوم نشان دهنده عملیات ارسال RREP است. همان طور که مشخص است این پروتکل بر پایه پروتکل AODV بنا شده است.
برای نگهداری مسیر نیز همان طور که در توضیح الگوریتم AODV گفته شد از پیام های RERR استفاده می شود. این پیام ها نیز در پروتکل ARAN به صورت رمز شده منتقل می شوند. به عنوان مثال اگر لینک بین گره های B و C شکسته شود پیام های زیر به ترتیب صادر می گردند.

این نکته قابل توجه است که پیام RERR توسط همه منتشر می شود ولی دوباره امضاء نمی گردد. بلکه با همان امضای B به مسیر خود ادامه می دهد.
یکی از مشکلات این پروتکل، عدم مقاومت در برابر حمله سوراخ کرم است. از دیگر اشکلات این پروتکل این است که این پروتکل از سیستم رمز نگاری غیر متقارن استفاده می کند. بنابراین از لحاظ مصرف انرژی و پردازنده بسیار پر مصرف است و در شبکه های موردی که از این لحاظ بسیار در محدودیت قرار دارند، با مشکل مواجه می شود.

* پروتکل Ariadne
این پروتکل بر خلاف پروتکل ARAN بر ایمن سازی الگوریتم DSR تکیه می کند. در این پروتکل به جای استفاده از کلید عمومی، از رمز نگاری متقارن استفاده می شود. برای تصدیق اصالت پیام ها نیز یک کد تصدیق اصالت پیام مورد استفاده قرار می گیرد. این کد تصدیق اصالت توسط یک تابع درهم سازی بر روی hash پیام دریافتی و همچنین شناسه خود گره فرستنده ساخته می شود. بنابراین هر دریافت کننده ای می تواند از اصیل بودن پیام دریافتی اطمینان حاصل نماید.
به عنوان مثال به همان شبکه شکل 4 توجه کنید. همان مثال را این بار با پروتکل Ariadne می بینیم:

در این مثال، گزینه هایی که پر رنگ تر نمایش داده شده اند، نشان دهنده تغییر پیام نسبت به پیام قبلی هستند. همان طور که در تصویر دیده می شود، هر گره ای که RREQ را دریافت می کند، با الصاق یک کد تصدیق اصالت پیام، تصدیق اصالت خود و پیام را تایید می کند. در این کد از ID خود فرد، همچنین از hash پیام قبلی در تابع hash استفاده شده است.
این پروتکل با شرایط خاصی(استفاده از پروتکل TIK در درون این پروتکل) در برابر حملات سوراخ کرم ایمن می گردد. ولی اشکال عمده آن نیاز این الگوریتم به تبادل کلید بین گره های شبکه برای رمز نگاری، قبل از شروع پروتکل است.

* پروتکل SAODV
در این مثال نیز همانند پروتکل ARAN برای ایجاد امنیت در الگوریتم AODV بنا شده است. در این پروتکل از توابع hash استفاده می شود. به طوری که hn-1=H(hn) در این الگوریتم از hop count برای اندازه گیری تعداد hopی که بسته تاکنون طی کرده است استفاده می گردد. اگر hop count از یک مقدارCount Max بیشتر شود، این بسته نادیده گرفته می شود. برای عدم تغییر مقدار hop count و اطمینان از صحت مقدار آن، از توابع hash نام برده استفاده می شود. باز به مثال قبل باز می گردیم. مراحل انجام این پروتکل برای مثال فوق در زیر آورده شده است.

همان طور که در بالا نیز مشخص است، هر گره با دریافت یک پیام می تواند با کنترل
hn-1=H(hn) بر روی آن از اصالت آن مطمئن شود. عدد N نیز نشان دهنده ماکزیمم hopی است که یک بسته می تواند طی کند.

* پروتکل SRP
مبنای این پروتکل بر این اساس است که یک گره مبدا برای مسیریابی، می تواند پاسخ های دریافتی برای این عملیات را تشخیص داده و در صورت تشخیص نادرست بودن، آنها را نادیده بگیرد. برای این منظور یک وابستگی امنیتی بین گره مبدا و گره مقصد در نظر گرفته می شود. این SA می تواند به عنوان مثال به وسیله دانستن کلید عمومی طرف مقابل مطرح شود. حال طرفین می توانند به وسیله یک پروتکل تبادل کلید مانند الگوریتم خم بیضوی دیفی هلمن، یک کلید مشترک خصوصی را بین خود به اشتراک بگذارند. در ادامه بحث فرض می کنیم که کلید مشترکی به نام KS,T وجود دارد. وابستگی امنیتی یک رابطه دو طرفه است که می توان در آن از کلید مشترک برای کنترل جریان داده در هر دو جهت استفاده کرد. با این وجود، حالت مربوطه برای هر جهت باید حفظ شود.
وجود وابستگی امنیتی قطعی است، زیرا میزبان های نهایی، یک طرح ارتباطی ایمن را به کار برده اند و در نتیجه باید قادر باشند که یکدیگر را تصدیق اصالت کنند. به عنوان مثال، چنین گروهی از گره ها می تواند یک تبادل کلید امن را انجام دهد. با وجود این، وجود وابستگی امنیتی میان هر یک از گره های میانی ضروری نمی باشد. در نهایت می بایست که گره های نهایی قادر باشند که از حافظه ایستا یا فنا ناپذیر استفاده کنند.
گره های متخاصم ممکن است برای مختل کردن عملکرد شبکه رفتاری خود سرانه، Byzantine، در پیش گیرند. آنها قادر به خراب کردن، اجرای مجدد و همچنین ساختن بسته های مسیریابی می باشند. این گره ها ممکن است به هر روشی در صدد منحرف کردن بسته ها از مسیر خود باشند و عموما نمی توان توقع داشت که به درستی پروتکل مسیریابی را اجرا کنند. علیرغم اینکه مجموعه ای از گره های متخاصم ممکن است به طور همزمان، حملاتی را بر علیه پروتکل ایجاد کنند، فرض ما بر این است که گره ها قادر به همکاری در یکی از مراحل اجرای پروتکل نمی باشند، یعنی در زمان انتشار یک درخواست و دریافت پاسخ های مربوطه هیچ عملی انجام نمی دهند. برای روشن تر شدن مطلب، در ادامه به شرح حمله ای توسط دو گره متخاصم در حین عملیات کشف مسیر، می پردازیم.
در این پروتکل همانند دیگر پروتکل ها فرض بر این است که پیوندها دو طرفه هستند، که این نیاز توسط اکثر پروتکل های کنترل دسترسی رسانه ارائه شده، برآورده شده است، به خصوص پروتکل هایی که گفتگوی RTS/CTS را به کار می برند. همچنین انتظار می رود که یک نگاشت یک به یک میان کنترل دسترسی رسانه و آدرس های IP وجود دارد. در آخر، خاصیت انتشاری کانال رادیویی متعهد می شود که هر ارسال، توسط تمام همسایگان که در حالت نا منظمی قرار دارند، دریافت می شود.
گره مبدا S، با ساختن یک بسته درخواست مسیر، کشف مسیر را آغاز می کند که این بسته توسط یک جفت شناسه: شماره توالی درخواست و یک شناسه درخواست تصادفی، شناسایی می شود. علاوه بر KS,T، مبدا، مقصد و شناسه های درخواست منحصر به فرد، ورودی های لازم برای محاسبه کد تصدیق اصالت پیام (MAC) هستند. به علاوه، شناسه ها (آدرس های IP) گره های میانی، در بسته درخواست مسیر ذخیره می شوند.
گره های میانی، درخواست های مسیر را تقویت می کنند، بنابراین یک یا چند بسته درخواست به مقصد می رسد و مقدار محدودی از اطلاعات حالت با توجه به درخواست های تقویت شده، نگهداری می شود، بنابراین درخواست های مسیری که قبلا دیده شده اند، حذف می شوند. به علاوه این گره ها بازخوردی را به هنگام قطع مسیر ایجاد می کنند و در برخی موارد ممکن است پاسخ های مسیر را همان طور که در ذیل توضیح داده می شود، ایجاد کنند.
درخواست های مسیر به مقصد T می رسند که پاسخ های مسیر را می سازد: یک MAC را محاسبه می کند که محتویات پاسخ مسیر را در بر می گیرد و بسته را از طریق عکس مسیر که در بسته درخواست مربوطه جمع آوری شده است، به S باز می گرداند. گره مقصد به یک یا چند بسته درخواست از یک پرس و جو پاسخ می دهد، بنابراین تا حد ممکن یک تصویر توپولوژیکی متغیر را برای مبدا فراهم می کند. گره درخواست دهنده، پاسخ ها را اعتبار سنجی کرده و دید توپولوژیکی خود را به روز آوری می نماید.
به عنوان مثال، توپولوژی نشان داده در شکل 5 را در نظر بگیرید که از 10 گره تشکیل شده است.
گره S از شبکه درخواست می کند که یک یا چند مسیر به گره T را کشف کند. گره های M1 و M2 دو گره میانی متخاصم هستند. درخواست پرس و جو را به صورت لیست
{QS,T ; n1,n2,…,nk} نمایش می دهیم، که QS,T نشان دهنده سرآیند SRP برای پرس و جوی یافتن T می باشد که توسط S آغاز شده است. ni , i{1,k} آدرس های IP برای گره های میانی دیده شده است و n1=S, nk=T . به طور مشابه، پاسخ مسیر نیز به صورت
{RS,T ; n1,n2,…nk} نشان داده می شود. اکنون به بررسی تعدادی از سناریوهای حملات امنیتی ممکن توسط دو گره متخاصم می پردازیم.

سناریو 1: حالتی را در نظر بگیرید که {QS,T ;S} M1 را دریافت کرده و تلاش می کند که با ایجاد {RS,T ; S,M1,T}، گره S را از مسیر صحیح منحرف کند. اگر یک پروتکل مسیریابی معمولی مورد استفاده قرار گرفته باشد، نه تنها S چنین پاسخی را می پذیرد، بلکه از آنجا که {S,M1,T} تعداد hop های کمتری نسبت به هر پاسخ درست دیگری خواهد داشت، به احتمال زیاد این مسیر اشتباه را انتخاب می کند. همچنین به دلیل فاصله نزدیک میان M1 و S، با کمترین تاخیر دریافت خواهد شد. ایننیازمندی که درخواست باید به مقصد برسد، هر گره میانی را که پاسخی به این حالت ایجاد کند، غیر مجاز می داند و بسته پاسخ نادرست حذف می شود، زیرا M1 نمی تواند KS,T را داشته باشد و بنابراین نمی تواند یک کد تصدیق اصالت پیام معتبر ایجاد کند.
سناریو 2: حالتی را در نظر بگیرید که M1، بسته های درخواستی که از طرف همسایگان او رسیده اند، به جز گره 1 را حذف می کند. با این نوع عملیات متخاصمانه نمی توان مقابله کرد، ولی جریان کنترل شده بسته های پرس و جو، مقاومت لازم را فراهم می سازد. یک گره متخاصم، با حذف بسته های درخواست مسیر، دید توپولوژیک S را نسبتا کاهش داده و تا حدی مانع عملکرد شبکه می شود. در اصل، گره متخاصم همیشه می تواند پیوندهای خود را پنهان کند، اما عملا با این کار، خود را از دید S حذف می کند. بنابراین، نمی تواند آسیبی به جریان داده هایی که از S نشات می گیرند وارد کند، زیرا مسیرهای انتخاب شده توسط M1,S را در نظر نمی گیرند.
سناریو 3: همان طور که در بالا فرض شد، M1{QS,T ; S,1,M1} را می بیند و آن را تقویت می کند؛ به هنگام دریافت { QS,T ; S,1,M1,5,4} در T، پاسخی تولید می شود و در مسیر عکس مسیریابی می شود. زمانی که M1{RS,T ; S,1,M1,5,4,T} را دریافت می کند، محتویات آن را تغییر می دهد و {RS,T ; S,1,M1,Y,T} را تقویت می کند که Y هر دنباله ساختگی از گره ها می باشد. با توجه به حفظ جامعیت فراهم شده توسط کد تصدیق اصالت پیام، S این پاسخ را حذف می کند.
سناریو 4: زمانی که {QS,T ; S,2,3} را دریافت می کند، مسیر ذخیره شده را مختل می کند و {QS,T ;S,X,3,M2} را به همسایگان خود ارسال می کند، که در آن X یک آدرس IP ساختگی نادرست(یا هر دنباله ای از آدرس های IP ) می باشد. این درخواست به T می رسد که در آن پاسخی ساخته شده و از طریق {T,M2,3,X,S} به S ارسال می شود. زمانی که گره 3 این پاسخ را دریافت می کند، نمی تواند دیگر آن را ارسال کند، زیرا X همسایه او نمی باشد، بنابراین پاسخ از بین می رود.
سناریو 5: به منظور مصرف کردن منابع شبکه، M1 درخواست های مسیر را مجددا اجرا می کند، که توسط گره های میانی حذف می شوند، زیرا آنها لیستی از شناسه های درخواست را که قبلا به آنها اشاره شد، نگهداری می کنند. این مساله توسط خود پروتکل مسیریابی موجود، با توجه به محدودیت های ایجاد شده به دلیل حجم جدول درخواست محقق می شود. اما درخواست هایی که پس از مدت زمان مشخصی مجددا اجرا می شوند، در شبکه منتشر شده و به T می رسند. شماره توالی درخواست که تنها توسط گره های نهایی برای شناسایی درخواست مورد استفاده قرار می گیرد، به T این امکان را می دهد که چنین درخواست هایی را حذف کند. اگر سرآیند درخواست مختل شده باشد، کل درخواست نیز حذف می شود. به طور مشابه، T درخواست های مسیر ساخته شده را حذف می کند، زیرا گره های متخاصم نمی توانند یک کد تصدیق اصالت پیام درخواست معتبر ایجاد کنند.
سناریو 6: فرض کنید M1 پس از مشاهده چند درخواست مسیر ایجاد شده توسط S، چندین درخواست را با شناسه هایی در ادامه آنها ایجاد کند. هدف از این حمله این است که گره های میانی این شناسه ها را ذخیره و درخواست های مسیر درست{QS,T ; n1,…,nj} را حذف نمایند. هزینه این حمله کم است (یک ارسال درخواست مسیر برای هر شناسه) و با توجه به اینکه طول عمر (TTL) بسته درخواست به مقدار زیادی تنظیم شده است، محدوده شبکه ای مخدوش شده ممکن است بسیار وسیع باشد. مقادیر شناسه درخواست استفاده شده توسط گره های میانی که SRP را به کار می برند، منحصر به فرد و تصادفی می باشد، برخلاف شناسه درخواست پروتکل های مسیریابی on-demand، که مقادیر آنها یک دنباله صعودی یکنواخت می باشد. در نتیجه، به دلیل احتمال بسیار کم برای پیش بینی صحیح شناسه های درخواست، چنین حمله ای نمی تواند در عمل نحوه عملکرد پروتکل را تحت تاثیر قرار دهد.
سناریو 7: گره M1 درصدد ارسال {QS,T ; S,M} بر می آید: به این معنی که یک آدرس IP را spoof می کند. چنین عملی امکان پذیر است و در سطح پروتکل مسیریابی، درخواست در طول شبکه منتشر شده و به T می رسد. در نتیجه، {RS,T ; S,M,1,4,T} را به عنوان مسیر می پذیرد. به نظر می رسد که اطلاعات ارتباطی مشاهده شده توسط چنین پاسخی صحیح باشد. در حقیقت، تمام آنچه که M1 به دست خواهد آورد این است که هویت خود را بپوشاند، که در کل موقتی خواهد بود. بنابراین، گره متخاصم چیزی بیش از جایگزینی خود بر روی مسیر بالقوه ST به دست نخواهد آورد که در قدم اول بدون هیچگونه spoof کردن IP، می توانست امکان پذیر باشد.
سناریو 8: اکنون فرض کنید که M1 تلاش کند تعدادی از پاسخ ها را، هر کدام با یک spoof IP متفاوت، مثلا Mi,Mi+1,…Mi+j برگرداند. (در واقع حالتی از سناریو 7) این مساله باعث می شود که S بر این باور باشد که مسیرهای متعددی به T وجود دارد، با وجود اینکه در حقیقت تمام این مسیرها توسط M1 کنترل می شوند. همان طور که در سناریو 1 شرح داده شد، M1 اجازه ندارد که پاسخ هایی تولید کند که شامل آدرس های spoof شده باشند. راه دیگر برای M1برای انجام این حمله، تقویت کردن بیش از یک درخواست مسیر و قرار دادن یک آدرس IP متفاوت برای هر یک از آنها می باشد. بنابراین T پاسخ های مربوطه را تولید می کند و M1 آنها را به مبدا را بازمی گرداند و S راه دیگری جز پذیرفتن آنها ندارد. چنین حملاتی توسط پروتکل SRP با موفقیت مقابله می شوند: همسایه M1تنها یک درخواست مسیر را به همراه مبدا مشخص و گره های هدف و شناسه درخواست تقویت می کند. به عنوان مثال، گره های 3،1 و 5 ابتدای چنین درخواست هایی را تقویت می کنند و بسته های دیگر را به عنوان درخواست های دیده شده در نظر گرفته و حذف می کنند. اگر M1شناسه درخواست را تغییر داده باشد، درخواست جعل شده ارسال می شود، ولی با توجه به کد تصدیق اصالت پیام، T این تغییر را کشف نموده و درخواست را حذف می کند.
تنها حمله ممکن بر علیه پروتکل، این است که گره ها در بین دو فاز از یک کشف مسیر همکاری داشته باشند. در چنین حالتی، در صدد بر می آیند که گره مبدا را وادار کنند که اطلاعات مسیریابی نسبتا نادرست را بپذیرد. به عنوان مثال، در شکل زمانی که M1 درخواست مسیر را دریافت می کند، می تواند آن را به طور مخفیانه به M2 ارسال کند، یعنی مسیری به M2 ارسال کند، یعنی مسیری به M2 کشف کند و درخواست را درون یک بسته داده به آن ارسال کند. سپس، M2درخواستی را با یک قسمت ساختگی از مسیر میان M1 و M2 مثلا
{QS,T ; S,M1,Z,M2}منتشر می سازد. T درخواست را دریافت می کند و پاسخی می سازد که در این مسیر ارسال می شود:.{T,M2,Z,M1,S} M2 پاسخ را دریافت نموده و آن را مخفیانه به M1 بازمی گرداند تا دوباره به S برگردانده شود. در نتیجه اطلاعات ارتباطی تنها تا حدی صحیح هستند (در این مثال تنها اولین و اخرین پیوند). با وجود این، یک جفت از گره های متخاصم می توند S را متقاعد کند که تنها یک مسیر نادرست وجود دارد که شامل هر دو گره باشد، به این دلیل که M2 به همان دلیل که در بالا ذکر شد، نمی تواند تعدادی از درخواستها را با استفاده از spoofed IP ها به T ارسال کند. همان طور که در شکل نشان داده شده است، زمانی که M2 در مجاورت T قرار دارد، ملاحظات خاصی لازم است.
این پروتکل بر پایه الگوریتم مسیریابی DSR بنا شده است و به سرآیند بسته های آن، یک بخش شش کلمه ای اضافه می نماید. در این بخش علاوه بر شناسه و شماره توالی، کد تصدیق اصالت پیام قرار دارد. بنابراین جامعیت و تصدیق اصالت پیام تضمین می شود. این کد تصدیق اصالت به عنوان ورودی، سرآیند بسته IP مورد نظر، بسته RREQ مورد نظر و همچنین کلید مشترک KS,T را دریافت می کند.
گره های میانی بسته های دریافتی را کنترل می کنند. آنها یک رده بندی از گره های همسایه دارند که با تعداد درخواست های ارسالی از سوی آن همسایه نسبت عکس دارد. بنابراین در خواست گره هایی که تعداد درخواست های آنها زیاد باشند به انتهای صف منتقل و یا نادیده گرفته می شود. بدین ترتیب از عمل گره هایی که با ارسال درخواست های بسیار موجب مصرف پهنای باند شبکه می شوند، جلوگیری به عمل می آید.
گره مقصد نیز با دریافت بسته، کد تصدیق اصالت آن را بررسی کرده و در صورت تایید صحت و تصدیق اصالت آن، یک پیام RREP برای آن به همان ترتیب صادر می نماید. یعنی بر روی بسته کد تصدیق اصالت و شناسه اضافه می کند.
در SRP گسترش یافته از بسته های INRT برای بالا بردن کارایی الگوریتم استفاده می شود. این بسته ها هنگامی ساخته می شوند که یک گره میانی، یک مسیر فعال به گره مقصد داشته باشد. بنابراین بسته INRT را تولید کرده و کد تصدیق اصالت آن را به وسیله کلید مشترک KG ایجاد نموده و ان را به گره مبدا باز پس می فرستد و بدین ترتیب باعث افزایش کارآیی شبکه خواهد شد افزودن این بخش به پروتکل پایه به دلیل جلوگیری از تغییر اطلاعات گره های میانی توسط گره های متخاصم بوده است.
یکی از مشکلات الگوریتم SRP عدم ایمنی آن در برابر حمله سوراخ کرم است. زیرا هیچ راهی برای پیگیری بسته ها در درون شبکه و طول مسیر پیموده شده توسط آنها وجود ندارد. بنابراین دو گره متخاصم می توانند با همکاری یکدیگر باعث اشکال در درک توپولوژی شبکه بشوند.

* پروتکل SEAD
این پروتکل بر اساس پروتکل DSVD بنا شده است. در این پروتکل در هر گره یک جدول مسیریابی وجود دارد که در آن لیستی از تمامی مقاصد ممکن در شبکه وجود دارد. در هر قسمت جدول، آدرس مقاصد، نزدیک ترین فاصله دانسته شده آنها (که metric نامیده می شود) و گره های همسایه که با hop بعدی می توان به آن مقصد دست یافت، ذخیره شده است. این metricها معمولا بر حسب تعداد hop در جدول نوشته می شوند. هر گره برای به روز درآوردن جدول مسیریابی خود هر از چند گاهی یک پیام درخواست مسیر را برای تمامی همسایگان خود ارسال می کند تا بتواند مسیرهای جدید را در جدول خود قرار دهد. اولین پیشرفت امنیتی که SEAD و DSDV انجام داده است، اضافه نمودن شماره توالی به هر عنصر جدول مسیریابی است. این شماره توالیها از ایجاد حلقه هایی که ممکن است از به روزآوری خارج از موقع مسیرها ایجاد شود، جلوگیری می کند.
پروتکل SEAD برای ایجاد امنیت در DSDV از زنجیره توابع درهم سازی یک طرفه به جای توابع رمزنگاری غیر متقارن استفاده می کند. برای ایجاد زنجیره در هم سازی یک طرفه، هر گره یک عدد x را به صورتx{0,1} به صورت تصادفی انتخاب می کند ( تعداد بیت های خروجی تابع درهم سازی است) و زنجیره h0,h1,…,hn را به صورت زیر می سازد. h0=x, hi=H(hi-1) بدین ترتیب به عنوان مثال می توان با داشتن hi، hi-3 را به طریق زیر تصدیق اصالت نمود. hi=H(H(H(hi-3))). هر گره از عنصر بعدی زنجیره درهم سازی خود که قابل تصدیق اصالت (امضا شده) است در به روز رسانی هایی که درباره خود ارسال می کند استفاده می کند. بدین ترتیب یک حد آستانه پایین برای شماره توالی و متریکها گذاشته می شود. بنابراین هیچ گره دیگری نمی تواند مسیر جدیدی را با شماره توالی بالاتر و با متریکها گذاشته می شود. بنابراین هیچ گره دیگری نمی تواند مسیر جدیدی را با شماره توالی بالاتر و یا متریک کمتر در شبکه منتشر کند. همین موضوع باعث جلوگیری اخلال در امر به روزآوری مسیرها در شبکه می شود. در واقع SEAD با مهاجمانی مقابله می کند که اطلاعات انتشار یافته در زمان به روزآوری مسیرها را تغییر می دهند. در واقع اگر مهاجم مقدار شماره توالی و یا متریک یک بسته را عوض کند، عمل به روزآوری مسیر را دچار مشکل کرده است. همچنین مشکل حمله تکرار نیز از جمله حملاتی است که در SEAD مورد توجه قرار گرفته است.
هر گره با دریافت یک بسته به روزدرآوری مسیر، با توجه به مقدار در هم سازی بر روی مقدار جدید می تواند بسته دریافتی را تصدیق اصالت کند. همچنین برای تصدیق اصالت گره مبدا دو روش پیشنهاد شده است. روش اول ارسال یک مکانیزم تصدیق اصالت مانند TESLA است. روش دوم استفاده از کد تصدیق اصالت پیام است. این روش با این فرض صورت می گیرد که بین هر دو گره یک کلید مشترک قرار داده شده باشد.

* پروتکل SPAAR

پروتکل SPAAR برای بهبود بخشیدن کارآیی و امنیت، اطلاعات موقعیت را به کار می گیرد و در عین حال این اطلاعات را از گره هایی که تصدیق اصالت نشده اند، محافظت می کند. برای اینکه پروتکل های مسیریابی شبکه های موردی به سطح بالایی از امنیت دست یابند، به گره ها تنها این اجازه داده می شود که پیام های مسیریابی را از همسایگان تک hop خود بپذیرند.
در SPAAR ، به کمک اطلاعات موقعیت، یک گره می تواند همسایگان تک hop خود را پیش از قرار دادن آنها در پروتکل مسیریابی، شناسایی کند. از نیازهای SPAAR این است که هر دستگاه بتواند موقعیت خود را تعیین کند. دریافت کننده های GPS تقریبا ارزان و سبک هستند، بنابراین منطقی است که فرض کنیم تمام دستگاه ها در شبکه ما به یکی از آنها مجهز هستند.
در SPAAR، گره مبدا باید موقعیت جغرافیایی تقریبی مقصد را نیز بداند، که می توان آن را از روی اطلاعات آخرین موقعیت و آخرین سرعت ذخیره شده در جدول مقصد گره مبدا، محاسبه نمود. اگر این اولین تلاش گره مبدا برای برقراری ارتباط با یک مقصد خاص باشد، ممکن است موقعیت مقصد را نداشته باشد. در این حالت می توان از یک سرویس موقعیت استفاده کرد. اگر هیچ سرویس موقعیتی در دسترس نبود، می توان برای دستیابی به مقصد و دریافت اطلاعات موقعیتی آن، یک الگوریتم flooding انتخابی را به کار گرفت.

الف)راه اندازی

برای شرکت جستن در SPAAR ، هر گره به موراد زیر نیاز دارد: یک جفت کلید عمومی/خصوصی، گواهی ای برای ضمیمه کردن هویت گره به کلید عمومی آن (امضا شده توسط یک سرور صدور گواهی قابل اطمینان) و کلید عمومی سرور صدور گواهی قابل اطمینان.
تمام گره ها بر اساس قسمت خصوصی جفت کلید عمومی/خصوصی خود استقرار می یابند. پیش از استقرار گره ها، هر گره گواهی ای را از یک سرور صدور گواهی قابل اطمینان T درخواست می کند. این گواهی هویت گره را به کلید عمومی آن ضمیمه نموده و توسط T امضا می شود و همچنین دارای مهر زمانی و زمان انقضا می باشد. هر گره کلید عمومی T را در اختیار خواهد داشت تا بتواند گواهی های دیگر گره را ترجمه رمز کند. این مساله به گره N1 اجازه می دهد که گره N2 را از کلید عمومی خود آگاه سازد، با فرض اینکه گره N2 به درستی با کلید عمومی T استقرار یافته تا گواهی ها را ترجمه رمز کند.

ب) جدول همسایه

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

ج) ساختن جدول همسایه

مرحله اول: گره N به طور متناوب پیام "سلام" را با گواهی آن منتشر می کند. گره هایی که در برد N قرار دارند و می خواهند که به عنوان همسایه شناسایی شوند، گواهی N را ترجمه رمز می کنند تا کلید عمومی N را شناسایی کرده و آن را به دست آورند. یک ورودی برای N در جدول همسایه آن ایجاد می شود و کلید عمومی N ذخیره می شود. گره ها با گواهی، مختصات و برد ارسال خود که با توجه به کلید عمومی N رمز شده اند، پاسخ می دهند.
به هنگام دریافت پاسخ سلام از گره همسایه X1 ، N تشخیص می دهد که گره X1 یک همسایه تک hop می باشد. برای تمام گره هایی که N به عنوان همسایگان تک hop شناسایی می کند، کلید عمومی گره، آخرین موقعیت و برد ارسال در جدول همسایه N ذخیره می شود.
مرحله دوم: N یک جفت کلید عمومی/خصوصی تولید می کند، که به آن "جفت کلید گروه همسایه" می گوییم. قسمت خصوصی جفت کلید گروه همسایه N، "کلید رمز کردن گروه N" نامیده شده و به صورت GEK_N نمایش داده می شود. قسمت عمومی جفت کلید گروه همسایه N ، "کلید ترجمه رمز گروه N" خوانده شده و با GDK_N مشخص می شود. N کلید ترجمه رمز گروه خود را برای هر یک از همسایگان خود که در جدول همسایه لیست شده اند، توزیع می کند. این کلید، توسط کلید خصوصی N امضا می شود تا تصدیق اصالتی را ایجاد نماید و با توجه به کلید عمومی همسایه رمز گذاری می شود. به هنگام دریافت کلید ترجمه رمز گروه N، همسایگان N آن را در جدول همسایه خود ذخیره می کنند.
مهمترین مساله این است که در این مرحله، X1 و X2 این قابلیت را دارند که بسته های مسیریابی را از N دریافت کنند، با این وجود، تا زمانی که N را به عنوان همسایه خود شناسایی نکرده باشند، این کار را انجام خواهند داد. این حالت پس از اینکه X1 و X2 پیام "سلام" را منتشر کردند و مراحل بالا انجام شد، اتفاق می افتد. این حالت جدول حداکثر تا زمان انتشار "سلام" میان X1 و X2 باقی خواهد ماند.

د) نگهداری جدول همسایه
هر گره به طور متناوب یک پیام "به روز آوری جدول " را منتشر می کند تا همسایگان خود را از مختصات موقعیت جدید و برد ازسال خود آگاه سازد. پیام های به روز آوری جدول، توسط کلید رمز کردن گروه، رمز می شوند. همسایگان N، پیام به روز آوری جدول را ترجمه رمز نموده، اطلاعات موقعیت جدید را جهت تشخیص اینکه همسایه هنوز یک همسایه تک hop است یا خیر تحلیل کرده و جدول همسایه آنها را با اطلاعات موقعیت جدید به روز آوری می کنند.
TUSN یک شماره توالی با مهر زمانی است که با هر بار انتشار پیام به روز آوری جدول یا ساختن RREP شامل اطلاعات موقعیت توسط گره N، افزایش می یابد. از آنجا که TUSN "جدید بودن" اطلاعات موقعیت را نشان می دهد، می تواند پیام به روزآوری جدول را از خطر اجرای مجدد محافظت کند. در RREQ، یک گره از TUSN به این منظور استفاده می کند که همسایگان خود را از میزان جدید بودن مختصاتی که برای مقصد در اختیار دارد، آگاه سازد.
به هنگام دریافت پیام به روز آوری جدول، به TUSN یک مهر زمانی زده می شود تا برای گره این امکان فراهم آید که تعیین کند چه مدت از زمانی که به روز آوری جدول را از همسایگان خود دریافت نموده، گذشته است. اگر پس از گذشت زمان مشخصی هیچ به روز آوری جدولی از همسایگان دریافت نشد، فرض بر این قرار می گیرد که پیوند شکسته شده و همسایه از جدول حذف می شود.
فاصله زمانی که هر گره در آن یک به روز آوری جدول را منتشر می کند، بستگی به نرخ تحرک او دارد. یک گره با نرخ تحرک بالا، پیام های به روز آوری جدول را بیشتر منتشر می کند تا همسایگانخود را به روز نگه دارد. برای از بین بردن سرباری که چنین رویکرد فعالی ایجاد می شود، پیام های به روز آوری جدول بر روی تمام پیام های مسیریابی که با کلید گروه همسایه گره ترجمه رمز شده اند، (RREQ و پیام های درخواست موقعیت) سوار می شوند.

تمام گره ها به طور متناوب پیام های "سلام" را منتشر می کنند تا گره هایی را به جدول همسایه اضافه کنند. گره ای که پیام "سلام" را از N دریافت می کند، بررسی می کند که آیا N در جدول همسایه آن موجود می باشد یا خیر. در صورتی که از قبل وجود داشته باشد، بررسی می شود که قسمت "NGK" مقدار دارد یا خیر. اگر این گره برای قسمت NGK گره N مقداری داشته باشد، پس در گروه همسایه N قرار داده شده است، بنابراین پیام "سلام" را نادیده می گیرد. اگر این گره، N را در جدول همسایه خود یا مقداری برای قسمت NGK گره N نداشته باشد، یک پیام " پاسخ سلام" را راسال می کند. درست مانند به روز آوری های جدول، فاصله زمانی میان پیام های سلام، بستگی به تحرک گره دارد.

م) کشف مسیر
* درخواست های مسیر (RREQ)

مرحله اول: گره N یک RREQ را به همراه شماره توالی RREQ، شناسه مقصد، فاصله N تا D، مختصات D و TUSN، منتشر می کند، که همگی با کلید رمز کردن گروه آن، رمز شده اند. شماره توالی RREQ هر بار که گره ای یک RREQ را آغاز می کند، افزایش می یابد. این شماره برای جلوگیری از اجرای مجدد RREP ها مورد استفاده قرار می گیرد.

مرحله دوم: دریافت کنندگان RREQ، آن را با کلید ترجمه رمز مناسب، ترجمه رمز می کنند. یک ترجمه رمز موفق نشان می دهد که فرستنده RREQ یک همسایه تک hop است. شناسه موجود در RREQ ترجمه رمز شده، باید به شناسه همسایه ای که کلید گروه آن برای ترجمه رمز RREQ مورد استفاده قرار گرفته است، مطابقت داشته باشد.

مرحله سوم: یک گره میانی بررسی می کند که آیا هیچ یک از همسایگان او به مقصد D نزدیک تر است یا خیر. اگر گره میانی مختصات مقصد را به همرته آخرین TUSN آن داشته باشد، این مختصات را به جای مختصات موجود در RREQ به کار می برد. اگر نه گره میانی و نه همسایگان او به مقصد نزدیک تر نباشند، RREQ از بین می رود. اگر یکی از آنها نزدیکتر باشد، گره RREQ را به همراه شناسه و فاصله تا S، ارسال می کند، که همگی با کلید رمز کردن گروه آن، رمز شده اند. اگر گره میانی مختصات مقصد را با TUSN جدید تری داشته باشد، این مختصات را جایگزین مختصات قدیمی تری می کند که در RREQ موجود است. گره های میانی در حافظه موقت مسیر خود، آدرس همسایه ای که از ان RREQ را دریافت کرده اند، ثبت می کنند، تا بدین وسیله یک مسیر عکس ساخته شود. این فرآیند تا زمانی که مقصد به دست آید، تکرار می شود.

* پاسخ های مسیر (RREP)

مرحله اول: به هنگام دریافت RREQ، مقصد یک RREP شامل شماره توالی RREQ، مختصات آن، سرعت آن و TUSN، می سازد. سپس RREP را با کلید خصوصی خود امضا می کند و با کلید عمومی همسایه ای که RREQ را از او دریافت کرده است، رمز می کند. RREP در طول مسیر عکس RREQ، منتشر می شود و در هر hop تحت بررسی قرار می گیرد.

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

مرحله سوم: گره مبدا RREP را به همراه موقعیت مقصد، بردار سرعت و TUSN دریافت می کند. پس از ترجمه رمز و شناسایی امضای موفق، گره مبدا بررسی می کند که RREQ_SN با RREQ_SN مربوط به RREQ اولیه مطابقت دارد یا خیر. این مساله از خطر اجرای مجدد RREP جلوگیری می کند. اگر RREQ_SN صحیح باشد، گره جدول مقصد خود را با اطلاعات موقعیت جدید مقصد به روز آوری می کند. همانند پیام های به روز آوری جدول، گره مبدا به TUSN، به عنوان تاریخچه به روز آوری، مهر زمانی می زند.

* پیام های خطای مسیر

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

هر گره یک جدول مقصد را نگهداری می کند که شامل آخرین گره های مقصدی است که با آنها ارتباط برقرار کرده است. جدول مقصد شبیه به جدول همسایه است، به جز قسمت سرعت که در این جدول اضافه می شود. از آنجا که یک گره پیام های به روز آوری را از گره های موجود در جدول مقصد دریافت نخواهد کرد، سرعت گره های مقصد ثبت می شود تا راهی برای پیش بینی موقعیت فعلی مقصد وجود داشته باشد. اگر مقصد یک ورودی در جدول مقصد داشته باشد، می توان برای محاسبه تقریبی موقعیت فعلی مقصد، TUSN دارای مهر زمانی، مختصات MRL و سرعت را مورد استفاده قرار داد.
در حالتی که یک گره N ورودی برای مقصد در جدول مقصد خود نداشته باشد، "درخواست موقعیت" را به همسایگان خود ارسال می کند. هر همسایه ای که مختصات موقعیت D را داشته باشد، با "پاسخ موقعیت" رمز شده با کلید عمومی N، به S پاسخ می دهد. از آنجا که SPAAR فرض را بر همزمانی ساعت میان گره ها قرار نمی دهد، مهر زمانی محلی بر روی TUSN به گره دیگر ارتباطی نخواهد داشت. در نتیجه، زمانی که یک گره پاسخ موقعیت را ارسال می کند، تاریخ اطلاعات موقعیت را نیز در پاسخ وارد می کند. این تاریخ معادل زمانی است که از دریافت TUSN گذشته است (زمان فعلی منهای مهر زمانی TUSN). زمانی که یک گره پاسخ موقعیت را دریافت می کند، قسمت تاریخ را برای مهر زمانی TUSN به کار می برد، به این صورت که این تاریخ را از زمان خود تفریق کرده و بر TUSN مهر می زند.

مدیریت کلید در شبکه های موردی

از آنجایی که در برخی از پروتکل های امن مسیریابی ذکر شده در بالا، نیاز به داشتن یک کلید خصوصی بین دو یا چند گره در داخل شبکه وجود داشت، در این بخش به بحث مختصری درباره مدیریت کلید در شبکه موردی می پردازیم. برای شروع بحث مدیریت کلید در شبکه های موردی سناریوی زیر را در نظر بگیرید. یک گروه برای تصمیم گیری درباره موضوعی یک جلسه ترتیب داده اند. حال این گروه می خواهند توسط کامپیوترهای laptop خود یک شبکه محلی ایجاد کنند. نیاز این گروه این است که پیام های خود را به صورت رمز شده برای یکدیگر ارسال کنند به صورتی که افرادی که درون شبکه هستند بتوانند آنها را درک کنند، ولی هر کسی که از اتاق بیرون است، نتواند چیزی از آنها استنتاج کند. برای این منظور آنها به یک کلید رمز کردن خوب احتیاج دارند. واضح است که در یک چنین شبکه ای هیچ چیز از پیش تعیین شده ای مانند گواهی های کلید عمومی یا مرکز توزیع کلید قابل اطمینان وجود ندارد، حمله کننده می تواند تمامی ترافیک را ببیند و یا تغییر دهد و همچنین هیچ کانال امنی برای اتصال کامپیوترها به یکدیگر وجود ندارد. با این تفاسیر ما به دنبال پروتکلی هستیم که بتواند یک کلید مناسب را بین افراد شرکت کننده به اشتراک بگذارد.

الف)یک راه حل ساده

راه حل ساده ای که می توان پیشنهاد داد این است که هر شخص IP خود را بر روی کاغذ مشترک بنویسد و به نفرات دیگر بدهد. سپس از یک مکانیزم توافق کلید مبتنی بر گواهی، مانند IKE استفاده کنند. (و یا حتی یک طرح identity based ) اما این طرح دارای اشکالاتی نیز می باشد. اول اینکه نمی توانیم از ابطال یک گواهی مطلع شویم. زیرا با صادر کننده های گواهی ارتباطی نداریم. ثانیا گواهی ها ممکن است از چند سلسله مراتب باشند که با یکدیگر توافق cross-certification ندارند. بدین ترتیب نمی توانیم به گواهی های دیگران اعتماد کنیم. در ادامه پروتکل هایی مطرح می شوند که بتوانند یک کلید مخفی را به اشتراک بگذارند، در عین حال مشکلات فوق را نداشته باشند.

ب) پروتکل EKE

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

پروتکل مطرح شده می بایست نیازهای زیر را برآورده کند:
* محرمانگی: بدین معنا که کلید تولید شده محرمانه باشد و فقط اعضای شرکت کننده در پروتکل آن را بدانند.
* محرمانگی رو به جلوی کامل: بدین معنا که اگر یک کلید در یکی از مراحل پروتکل به مخاطره افتاد، کلیدهای قبلی فاش نشوند.
* توافق کلید همگانی: بدین معنا که تمامی اعضای شرکت کننده در پروتکل در تولید کلید نهایی سهیم باشند.
* تحمل شکست: بدین معنا که اگر یک حمله کننده خود را به جای یکی از شرکت کننده ها جا زد، روند پروتکل تغییر نکند و حمله کننده چیزی از کلید نهایی استنتاج نکند.
پروتکل EKE در سال 1992 توسط Bellovin و Merrit مطرح شد. این پروتکل بر این اساس بنا شده بود که دو طرف A و B از قبل کلمه بور P را بین خود به اشتراک گذاشته اند. حال می خواهند با استفاده از این کلمه عبور، یک کلید مشترک را بین خود قرار دهند. مراحل پروتکل به صورت زیر است:

در مرحله اول A خود را معرفی کرده و کلید عمومی خود را که توسط کلمه عبور رمز شده است برای B ارسال می کند. حال B یک عدد تصادفی R انتخاب کرده و آن را توسط کلید عمومی A و همچنین کلمه عبور رمز می کند. سپس توسط یک سیستم Challenge/Response هر دو طرف یکدیگر را تصدیق اصالت می کنند. در نهایت با استفاده از اعداد تصادفی SA و SB کلید نهایی به صورت K=f(SA,SB) تولید می گردد. بدین ترتیب هر چهار نیازمندی پروتکل نیز تامین گشته است. (f یک تابع یک طرفه است)

اشکال پروتکل فوق این است که فقط برای دو طرف طراحی شده است. یعنی برای سناریوی ما که چندین طرف تشکیل شده بود کاربرد ندارد. یک راه برای حل این مشکل این است که یکی از افراد شرکت کننده را به صورت رهبر انتخاب کنیم. سپس رهبر با هر یک از اعضای شرکت کننده یک پروتکل EKE را اجرا کند. بدین ترتیب در نهایت، رهبر با هر شرکت کننده یک کلید جلسه خواهد داشت. حال او می تواند یک کلید نهایی تولید کرده و با استفاده از کلیدهای جلسه رمز کرده و برای افراد بفرستد. اگر چه این طرح هدف ما را تامین می کند، ولی نیازمندی توافق کلید همگانی را پاسخ نمی دهد. زیرا در تولید کلید نهایی فقط یک نفر دخیل است.
برای حل این مشکل پروتکل EKE دو طرفه را به صورت زیر اصلاح می کنیم:

حال فرض کنید که ما n شرکت کننده با اسامی Mi, i=1,2,…,n داریم. پروتکل اصلاحی به صورت زیر به یک پروتکل چند طرفه تبدیل می شود:

توجه داشته باشید که در مرحله چهارم اگر تنها یکی از افراد مقدار مورد نظر را برای Mn ارسال نماید، اطمینان از توافق کلید حاصل می گردد. همچنین E کلید عمومی رمز برای Mn می باشد.

ج) پروتکل Diffie Hellman

حال سعی می کنیم همان کار را با پروتکل دیفی انجام دهیم. پروتکل دیفی هلمن اولیه به صورت زیر است:

در این پروتکل نیز تصدیق اصالت از یک سیستم پرسش و پاسخ استفاده می کند. حال به همان روش قبلی این پروتکل را به یک پروتکل چند طرفه تبدیل می کنیم.

در این حالت، Si یک عامل blind کننده است. عمل blind کردن به این خاطر صورت می گیرد که در صورت نبودن آن، مقداری که Mn-1 دریافت می کند و مقداری که ارسال می کند یک خواهد بود. بنابراین شنود کننده می تواند با دریافت آن، خود را به جای Mn-1جا بزند.

سوءرفتار گره ها در شبکه های موردی

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

الف) تکنیک سگ نگهبان

یکی از معروف ترین تکنیک های تشخیص سوءرفتاری، تکنیک سگ نگهبان است. در این تکنیک هر گره ای که اطلاعات مسیریابی را ارسال می کند، نگهبان آن اطلاعات است تا آنها، از طریق گره بعدی نیز ارسال شوند. برای روشن تر شدن موضوع به یک مثال توجه نمایید. شبکه ارائه شده در شکل 4 را در نظر بگیرید. فرض کنید گره S قصد یافتن مسیری به گره D را دارد. هر چند گره A نمی تواند اطلاعات را مستقیما به گره C برساند، ولی می تواند مراقب رفتار گره B باشد تا ببیند که آیا گره B اطلاعات را برای گره C ارسال می کند یا خیر. به علاوه اگر اطلاعات بدون رمز کردن ارسال شود، A می تواند از دست نخوردن اطلاعات توسط گره B نیز مطلع شود. حال اگر گره A از یک بافر برای اطلاعات ارسالی استفاده کند می تواند رفتارهای سوء گره B را تشخیص دهد. بدین ترتیب که A هر بسته ای را که ارسال می کند در داخل بافر قرار می دهد. اگر طی زمان مشخصی، پیامی از B برای C صادر نشود، A به شمارنده ای که به این منظور اختصاص داده است یک واحد اضافه می کند. حال اگر تعداد این شمارنده از یک حد آستانه ای بیشتر شد، این اتفاق به عنوان سوءرفتار گره B در نظر گرفته می شود.
این روش دارای مزایا و معایب خاص خود است. از مزایای این روش در به کارگیری در الگوریتم DSR این است که در این الگوریتم سوءرفتار نه تنها در مرحله پیوند ، بلکه در مرحله پیشروی تشخیص داده می شود.
معایب این روش نیز شامل موارد زیر می شود. در این موارد گره A نمی تواند سوءرفتار را در گره B تشخیص دهد.

* برخورد مبهم : فرض کنید درست در هنگام ارسال بسته توسط گره B، بسته جدیدی از طرف S نیز برای A ارسال شود. در این حالت این بسته ها در A با یکدیگر برخورد کرده و بنابراین A هیچ گاه متوجه نمی شود که آیا بسته توسط B به جلو ارسال شده و در A برخورد داشته است و یا اینکه هیچ گاه بسته توسط B به جلو ارسال نگشته است. اگر این اتفاق بارها تکرار شود، A می تواند این جریانات را به عنوان سوءرفتار B تعبیر کند.
* برخورد دریافت کننده : فرض کنید درست در هنگام ارسال بسته توسط B برای C، بسته دیگری نیز برای C از طرف گره دیگری ارسال شود و این بسته ها در C با یکدیگر برخورد کنند. بدین ترتیب نعلوم می شود که A فقط می تواند از ارسال بسته توسط B اطمینان یابد و نمی تواند هیچ اطلاعی از دریافت آن توسط C داشته باشد. بنابراین B می تواند از ارسال دوباره اطلاعات سرباز زند و A را بر این باور بگذارد که اطلاعات به درستی در C دریافت شده است.
* اشکال دیگری که می تواند ایجاد شود این است که یک گره به دروغ نام گره دیگری را به عنوان گره بدرفتار اعلام کند. برای مثال گره A به S اعلام کند که B در عملیات مسیریابی شرکت نمی کند. البته این حالت قابل کشف و پیگیری است. بدین صورت که A مجبور است اطلاعات برگشتی از سمت D را برای S ارسال نکند. بنابراین در هنگام بازگشت اطلاعات، B متوجه می شود که A اطلاعات را به سمت جلو ارسال نمی کند و می تواند این رفتار A را به D گزارش کند.
* اتفاق دیگری که ممکن است بیفتد این است که گره متخاصم توان ارسالی خود را به گونه ای تنظیم کند که پیغام ارسالی به گره فرستنده برسد و به درستی دریافت شود ولی در گره گیرنده این پیام به اندازه ای ضعیف باشد که قابل دریافت نباشد. این کار نمی تواند از روی خودخواهی گره متخاصم نشات بگیرد. زیرا این گره می بایست وقت و انرژی خود را برای تنظیم توان ارسالی صرف کند. بنابراین تنها دلیل گره متخاصم برای انجام این عمل ایجاد اخلال در عملیات مسیریابی است.
* مشکل ترین عمل متخاصمانه در این تکنیک از لحاظ جلوگیری، همکاری دو یا چند گره با یکدیگر برای فرار از تله سگ نگهبان است. برای مثال فرض کنید گره B و C می خواهند با همکاری یکدیگر یک عمل متخاصمانه را انجام دهند. آنها به راحتی می توانند سناریوی زیر را پیاده سازی کنند. B اطلاعات را از A دریافت می کند و آنها را برای C ارسال می کند. در صورتی که C اطلاعات دریافتی را نادیده گرفته و از ادامه عملیات خودداری می کند. بنابراین این باور در گره A ایجاد می شود که طالاعات به درستی ارسال شده اند. در صورتی که این اتفاق صورت نپذیرفته است.
* آخرین راه برای دوری مهاجمان از سگ نگهبان این است که گره مهاجم، با نرخ کمتری از حد آستانه ای که گره نگهبان برای تلقی سوءرفتار در نظر گرفته است، بسته ها را نادیده بگیرد. در این صورت بسیاری از بسته ها ارسال نمی شوند ولی گره نگهبان این تصور را دارد که هیچ سوءرفتاری صورت نگرفته است.
اگر مکانیزم سگ نگهبان را بر روی یک پروتکل hop-by-hop (مانند AODV) پیاده سازی کنیم، ممکن است با مشکل جدیدی مواجه شویم. اگر یک گره متخاصم، اطلاعات را برای گره ای که وجود خارجی ندارد ارسال کند گره نگهبان به اشتباه افتاده و بر این باور می شود که اطلاعات به درستی ارسال شده است. زیرا از hop بعدی بسته اطلاعی ندارد. به همین دلیل است که تکنیک سگ نگهبان بر روی پروتکل های مسیریابی مبدا مانند DSR موثرتر و کاراتر است.

ب) ارزیاب مسیر

ارزیاب مسیر که توسط هر گره ایجاد می شود، دانش گره های دارای سوءرفتار را با قابلیت اطمینان پیوند شبکه می آمیزد تا مطمئن ترین مسیر را برای ارسال بسته پیدا کند. هر گره سوءرفتاری را به تمامی گره های داخل شبکه نسبت می دهد. حال در هنگام مسیریابی پس از به دست آوردن هر مسیر، نرخ های گره های داخل مسیر را با یکدیگر جمع کرده و میانگین می گیرد. بدین ترتیب می تواند مسیری را که دارای بیشترین میزان قابلیت اطمینان است انتخاب نماید. روش نرخ دهی یک گره به گره های دیگر داخل شبکه به صورت زیر انجام می پذیرد. وقتی یک گره توسط ارزیاب مسیر شناسایی می شود (در طی عملیات مسیریابی)، نرخ خنثی 5/0 توسط ارزیاب مسیر به او نسبت داده می شود. نرخ نسبت داده شده به خود ارزیاب نیز برابر با مقدار است. در این حالت اگر تمامی گره های مسیر مقدار 5/0 را دارا باشند، کوتاه ترین مسیر توسط ارزیاب برای ارسال اطلاعات انتخاب می شود. ادامه کار بدین صورت انجام می پذیرد که ارزیاب، نرخ مربوط به همه گره هایی را که در یک مسیر فعال قرار دارند، در طی بازه های زمانی مشخص (هر ms200) به میزان 01/0 افزایش می دهد. حد بالای نرخ یک گره برابر با 8/0 است. یعنی نرخ یک گره نمی تواند از این میزاان بالاتر برود. در صورت شکستن یک پیوند و غیرقایل دسترس شدن یک گره نیز نرخ آن گره به میزان 05/0 کاهش می یابد. سقف پایین نرخ یک گره نیز برابر با مقدار صفر است. همچنین ارزیاب نرخ مربوط به گره هایی را که هم اکنون در مسیر فعال نیستند را تغییر نمی دهد. اگر ارزیاب گان کند که یک گره دارای سوءرفتار است، نرخ او را برابر با یک عدد منفی بسیار بزرگ (برای مثال 100-) می گذارد. در مسیرهای به دست آورده شده، اگر نرخ یک مسیر دارای مقدار منفی باشد، ارزیاب می داند که در آن مسیر یک یا چند گره بدرفتار وجود دارد. گره هایی که دارای نرخ منفی هستند به تدریج نرخ آنها افزایش پیدا می کند و یا اینکه پس از یک مدت زمان طولانی دوباره نرخ آناه به یک مقدار غیر منفی تغییر پیدا می کند. اگر ارزیاب مسیر گره ای را در مسیر خود پیدا کند که در حال بدرفتاری است و هیچ مسیر دیگری بدون گره های بدرفتار وجود نداشته باشد، ارزیاب بسته درخواست مسیر را صادر می کند. این عمل به شرطی است که بسطی به نام ارسال بسته درخواست فعال شده باشد.

فصل چهارم

ارائه ی سرویس مدیریت زمانی جهت بهبود عمل کرد شبکه های بی سیم Hoc Ad
واژه های کلیدی:"مسیربان، مسیرسنج، سرویس مدیریت راهنما، سرویس مدیریت زمانی"
سرویس مدیریت راهنما: در یک شبکه Ad Hoc گره ها علاوه بر اینکه به تبادل اطلاعات می پردازند ، اطلاعات مربوط به مسیر یابی شان را نیز به اشتراک می گذارند که اگر این اطلاعات به دست دشمن بیفتد دشمن با دانستن مکان گره ها در هر لحظه از زمان و با استراق سمع اطلاعات رد و بدل شده می تواند لطمات جبران نا پذیری به شبکه وارد کند. برای محافظت از داده ها مشکل چندانی نداریم کافیست از یکی از روش های رمزنگاری مثل امضای دیجیتال استفاده کنیم. اما در مورد اطلاعات مربوط به مسیر یابی استفاده از روش های رمزنگاری به سرویس مدیریت راهنما احتیاج دارد. سرویس مدیریت راهنما به دو بخش تقسیم می شود راهنمای عمومی و راهنمای خصوصی. راهنمای عمومی برای تمام گره ها شناخته شده است در حالی که راهنمای خصوصی باید برای هر گره خاص محرمانه بماند. با توجه به اینکه با ترکیب این دو راهنما رموز معتبری تولید می شود ،دشمن نمی تواند با به دست آوردن راهنمای عمومی (که معمولا کار دشواری نیست) به تنهائی به اطلاعات مسیر یابی دست یابد. به طور کلی پروتکل های مسیر یابی از سوی دو منبع اصلی تهدید می شوند. اولین منبع متهاجمان خارجی هستند .دشمن می تواند با ارسال اطلاعات مسیر یابی خطا ، تکرار اطلاعات مسیر یابی قدیمی و دستکاری اطلاعات مسیر یابی شبکه را تجزیه و یا با مسیر دهی نادرست باعث افزایش ترافیک شبکه گردد. دومین و جدی ترین تهدیدی که متوجه شبکه است از جانب گره های جعلی می باشد که می توانند اطلاعات مسیر یابی نادرستی به دیگر گره ها ارسال کنند. تشخیص این اطلاعات نادرست مشکل است و صرفا رمزنگاری هر گره کافی نیست زیرا گره های جعلی می توانند با استفاده از راهنمای خصوصی شان رموز معتبری تولید کنند. برای مقابله با تهدید نخست گره ها می توانند همانند مراقبت از داده های ارسالی اطلاعات مربوط به مسیر یابی را نیز با استفاده از روش های رمزنگاری دیجیتال محافظت کنند. اگر چه این راه حل دفاعی در برابر سرورهای جعلی ناکارآمد خواهد بود. بد تر از آن این است که ما نمی توانیم در یک شبکه Ad Hoc از مصالحه کردن گره ها نیز غافل شویم. ضمناُ تشخیص این گره ها نیز حین تبادل اطلاعات مشکل است زیرا مکان گره ها به طور پویا تغییر می کند.وقتی که بخشی از اطلاعات را غیر معتبر تشخیص می دهیم، این می تواند به خاطر تغییر وضعیت گره خودی و یا مزاحمت گره متخاصم باشد و تشخیص این دو نیز کار آسانی نیست. از سوی دیگر ما می توانیم از مشخصات مطمئن شبکه Ad Hoc برای یک مسیریابی امن استفاده کنیم. توجه به این نکته لازم است که پروتکل های مسیر یابی برای شبکه های Ad Hoc باید اطلاعات مسیریابی قدیمی را نیز پشتیبانی کند تا شرایط با تغییر وضعیت گره ها وفق داده شود. پس اطلاعات مسیریابی غلط که از سوی گره جعلی می آید تا حدودی بوسیله بررسی اطلاعات پیشین قابل تشخیص است. در با فرض استفاده از پروتکل های مسیریابی که می توانند مسیر های چندگانه ارائه دهند مثل پروتکل های ZRP(Zone Routing Protocol), DSR (Dynamic SourceRouting)
AODV(Ad-hoc On-demand Distance Vector)
TORA(Temporally-Orderedouting Routing Algrithm) راهکاری برای به مقصد رسیدن اطلاعات مسیریابی پیشنهاد وسپس با رمزنگاری آستانه و امنیت کنش گرا سعی در حفظ امنیت شبکه شده است.ضمناُ نویسندگان با اشاره به نواقص فرض همزمانی در سیستم ، سیستم را به صورت غیر همزمان (آسنکرون) مدل کرده اند.
مسیربان و مسیر سنج : ابتدا توضیح مختصری درباره(Dynamic Source Routing) DSR می دهیم و سپس به معرفی مسیربان ومسیر سنج می پردازیم . DSR پروتکل مسیر یابی منبع است که در آن هر بسته آدرس تمام گره هائی که در فرستادنش شریکند را داراست .DSR دو قست مهم دارد یکی پیدا کردن مسیر و دیگری نگهداری مسیر . پیدا کردن مسیر : در (شکل2 ) S می خواهد با D ارتباطی برقرار کند ، اما نمی داند از چه مسیری باید این ارتباط را برقرار کند بنابراین شروع به جستجوی مسیر می کند ،و این کار را به وسیله منتشر کردن تقاضای کشف مسیر از همسایه هایی که در محدوده خودش قرار دارند انجام می دهد وهمسایه ها با اضافه کردن آدرس خود به بسته دوباره به این کار مبادرت می ورزند و آن قدر این کار را ادامه می دهند تا D را پیدا کنند ، زمانی که D پیدا شد باید پیامی به S ارسال کند تا S متوجه پیدا شدنش گردد حال D مختاراست همان مسیر رفت را برای برگشت انتخاب کند یا مسیر جدیدی به S پیدا کند . S تمام مسیر ها به D را دریافت می کند وDSR مسیرها را برای استفاده در آینده در بافرذخیره می کند.

کل(2)
نگهداری مسیر:زمانی که یک مسیر قطع شود یعنی دو گره نتوا نند اطلاعات را به هم مخابره کنند (در محدوده یکدیگر نباشند)، اگردر زمان انتقال اطلاعات گره میانی وجود داشته باشد پیام خطا به منبع می فرستد ومنبع باید مسیر دیگری را انتخاب کند . در این بخش به توضیح عملکرد مسیر بان ومسیر سنج می پردازیم . این دو سرویس بر روی DSR کار می کنند. ما از مسیر بان برای تشخیص گره بد رفتار و از مسیر سنج برای اجتناب از این گره ها استفاده می کنیم.
الف) مسیربان: ما از مسیر بان برای کاهش بسته در بافراستفاده می کنیم ، و این کار را با مقایسه بسته های موجود با بسته های دریافتی انجام می دهیم. اگربسته ها یکسان بودند مسیربان بسته را در بافر پاک می کند . اگر بسته ای در بافر برای مدتی طولانی تر از حد انتظار باقی ماند ، مسیر بان خطای گره مسئول فرستادن بسته را افزایش می دهدو اگر از حد آستانه گذشت مسیربان حکم خود مبنی بر بدرفتاری گره را صادر می کند و پیام خطای گره را به منبع ارسال می کند .این تکنیک نقطه ضعف هایی نیز دارد که عبارتند از:
1) برخورد مبهم 2) برخورد در گیرنده 3) محدودیت قدرت انتقال 4) تشخیص نادرست بدرفتاری 5) تبانی 6)ارسال جزئی
ب) مسیرسنج: مسیرسنجی به وسیله تمام گره های شبکه اجرا می شود . مسیر سنج با آگاهی داشتن از گره های بدرفتار ولینک های قابل اعتماد مطمئن ترین مسیر را انتخاب می کند .هر گره در شبکه یک درجه بندی دارد که برای دیگر گره ها شبکه شناخته شده است .مسیر سنج درجه بندی هر گره را طبق الگوریتم خاصی انجام می دهد وقتی یک گره در شبکه برای مسیر سنج شناخته می شود ، اگر را به گره می دهد (هر گره به خودش نرخ1 را/گره نرمال بی طرف باشد مسیرسنج نرخ می دهد) مطمئنا هنگامی که مسیر سنج نرخ مسیر را حساب می کند (جمع نرخ گرهای مسیر ) کوتاه ترین مسیر را انتخاب می کند (مسیری که مجموع نرخ گره های آن کمتر است).
سرویس مدیریت زمانی
قبلا ذکر کردیم که مسیربان ومسیرسنج به طور پویا به محافظت از شبکه می پردازند فرض اولیه این است که محور زمان به فواصلی تقسیم شده است که لزوما با هم برابر نیستند و بسته به تعداد لینک هایی که در هر یک از آن ها برقرار شده از نظر زمانی متفاوتند این تقسیم بندی بلافاصله پس از اتمام زمان مسیر یابی آغاز شده و به محض رسیدن اولین بسته به مقصد خاتمه می یابد(شکل 3) این در حالی است که تمام گره های واسط بین مبدا ومقصد (S&D ) گره های خوش رفتار مورد اطمینان وبدون تاخیراند. مسلما هرچه زمان ارسال بسته ها از S به D کمتر باشد شبکه امن تر وبهینه تری داریم . چرا که مسیر بان ومسیر سنج در بازه زمانی کوتاهی گره های واسط را مطمئن تشخیص داده واجازه برقراری ارتباط را می دهند بدیهی است اگر در زمان های بعدی این گره های واسط بد رفتار تشخیص داده شوند ممکن است پروتکل مسیریابی به کلی دگرگون شده و S و D مسیر خود را از گره های دیگر ببندند یعنی کانال ارتباطی دستخوش تغییر
کل(3)
کل(4)
می شود و به موجب آن و تغییر می یابند و بایست تمام مباحث پیش گفته را برای مسیر جدید تکرار کرد برای اینکه زمانی صرف مسیریابی مجدد نشود مسیرسنج باید در هرلحظه کوتاهترین فاصله زمانی بین و (شکل 4) را بررسی کند و اجازه عبور بسته ها از مسیری با کوچکتر را بدهد.در واقع پیدا کردن کمترین آخرین مرحله از یافتن بهترین مسیر برای ارسال است.بر این اساس موارد زیر قابل بیان است :
1. می توان مسیر های میان مبدا و مقصد را براساس مدت به سه دسته سریع ، نرمال و کند تقسیم کرد.از دسته مسیرهای سریع برای ارسال بسته هایی که باید با کمترین تاخیر به مقصد برسند استفاده می شود.ودسته مسیرهای کند تر برای ارسال بسته هایی است که تاخیر در آنها اهمیت کمتری دارد به این طریق می توان همزمان چندین نوع بسته اطلاعاتی مختلف را با کمترین احتمال رد درخواست تقویت توسط گره های میانی ارسال کرد.
2. اگر گره همزمان با اینکه منبع است (اگرچه لزومی برای این فرض نیست) تقویت کننده نیز باشد آنگاه آن گره خطوط با کوچکتر را برای خود نگه می دارد و خطوط با بزرگتر را برای ارسال داده هایی که باید تقویت کند اختصاص میدهد تا بدین وسیله خود خواهی اش ارضا شود .
3. اگر گره بخواهد داده ای را ارسال کند در حالی که تمام خطوط آن آزاد هستند خطی با کمترین را انتخاب می کند اگر بعد از آن بخواهد داده ای را ارسال کند که باید سریع تر به مقصد برسد فورا مسیر داده قبلی با بزرگتر انتقال یافته و مسیر با سرعت بیشتر به داده های جدید اختصاص می یابد.اطلاعات مربوط به هر مسیر بعد از مدت زمانی معین به روز شده و اطلاعات قبلی حذف می شود.
4. باید توجه داشت که گره ها در حالت کلی متحرکند بنابراین میزان برای هر مسیر دارای مقداری خطا است که اگر به اندازه آن تغییر کند این تغییر قابل چشم پوشی است . اندازه این خطا به نوع داده ارسالی و خواسته های مبدا و مقصد بستگی دارد
تقسیم بندی های زمانی و محاسبه تعداد لینک ها در هر بازه: فرض می کنیم مسیر مناسب پیدا شده ومابین مبدا و مقصد n گره واسط وجود دارد می توان ادعا کرد فرایند انتقال داده از S به D طی مرحله انجام می شود یعنی تعداد بازه های زمانی در صورت وجود n گره واسط برابر بازه است ضمنا اگر فرض کنیم کلا t مرحله داریم یعنی داشته باشیم آنگاه می توان نشان داد تعداد لینک های برقرار شده بین گره ها در این مرحله برابر است به عبارتی اگر n گره واسط بین مبدا و مقصد داشته باشیم کل لینک های برقرار شده در مرحله tام با فرض خوش رفتاری گره ها و با لحاظ امنیت شبکه برابر است با: به عنوان مثال اگر دو گره واسط به نام های و بین مبدا و مقصد باشند کلا سه مرحله ودر مرحله سوم کلا پنج لینک داریم . جزئیات در نمودارهای زیر نشان داده شده است:
پر واضح است که برقراری لینک های بالا در هر مرحله الزامی است و مثلا اگر درمرحله سوم لینک چهارم برقرار نشود یعنی به اطلاع نرساند که بسته ها را به D فرستاده آنگاه به عنوان گره بدرفتار شناخته می شود بنابراین با این تقسیم بندی زمانی می توان به مسیربان در تشخیص گره بدرفتار کمک کرد از طرفی در هر مرحله زمانی وظیفه هریک از گره ها مشخص است مثلا در مرحله سوم می داند که فقط باید به D و اطلاعات ارسال کند و دیگر درخواست ها را رد کند بنابراین بیش از اندازه بار نشده و تزاحم داده ها کاهش می یابند. نکته شایان ذکر آن است که اگر تعداد کل گره ها ی مسیر (شامل مبدا ومقصد) باشد آن گاه بعد از گذشت مرحله تعداد لینک های میان گره ها ثابت وبدون تغییراست .البته باید توجه داشت در مرحله آخر (وقتی که D می خواهد اعلام دریافت اطلاعات کند )تعداد لینک های برقرار شده دیگر از فرمول پیروی نمی کند ، وتنها یک لینک بیش از مرحله قبل دارد.
بررسی همکاری گره در شبکه Ad Hoc
میزان همکاری هر گره در شبکه Ad Hoc به میزان همکاری دیگر گره ها در این شبکه وابسته است. زیرا از آن جا که هر گره دارای خصلت خودخواهی ست، هیچ گرهی اجازه ی سو استفاده سایر گره ها را از توان خود نمی دهد از این رو در شبکهAd Hoc باید بین میزان توان مصرفی هر گره برای تقویت داده ی سایر گره ها (که باعث کاهش طول عمر گره میشود ) و مقدار داده های آن گره که توسط دیگر گره ها تقویت می شود تعادلی برقرار گردد. این تعادل منجر به نقطه کار بهینه ای می شود که در آن هر گره فقط زمانی می تواند نرخ پذیرش نرمال شده درخواست های تقویت(Normalized Acceptence Rate) خود را افزایش دهد که نرخ پذیرش نرمال شده درخواست های تقویت سایر گره ها را کم کند. برای رسیدن به تعادل و نقطه کار بهینه باید استراتژیی (استراتژی رفتاری) ارائه گردد که گره ها با پیروی از آن ، نه مورد سو استفاده قرار گیرند و نه دچار انفجار اطلاعات شوند.این به معنای تاثیر رفتار گذشته گره های سیستم در تصمیم گیری هر گره است، که باعث می شود هر گره فقط با استفاده از تجربیات گذشته خود اقدام به تصمیم گیری نماید.با این توصیفات می توان الگوریتمی (الگوریتم GTFT) را برای N گره که براساس قید توان میانگین p در C دسته( گره در هردسته) که از بالاترین به کمترین قید توان شماره گذاری شده اند به شرح زیر بیان کرد : اگر یا گره در خواست تقویت را رد می کند ودر غیر این صورت در خواست را می پذیرد. در این الگوریتم نرخ پذیرش درخواست های صادر شده از گره h برای گرد همایی نوع j در زمان k است. و نرخ پذیرش درخواستهای ارسال شده به گره hبرای گرد همایی نوع j است . احتمال پذیرش درخواست تقویت توسط گره ای در کلاس j برای گردهمایی نوع j است که نشان می دهد میزان همکاری گره ها، توسط گره ای با کمترین قید توان (موجود در گرد همایی) کنترل می شود. نشان دهنده ی خصوصیت بخشندگی گره است که باید مثبت باشد در غیر این صورت توان عملیاتی شبکه صفر می شود (سقوط میکند). گردهمایی نوع j به معنای مجموعه گره مبدا و گره های تقویت کننده واسط است به طوری که گره های آن حداکثر به دسته ی j تعلق داشته باشند . نسبت نرخ پذیرش نرمال برای گرهی متعلق به دسته i درگردهمایی نوع j به است . خصوصیت این الگوریتم آن است که در هر گره مستقل از تعداد گره های شبکه فقط به اندازه C×4 اطلاعات باید ذخیره شود که این به علاوه محلی بودن اطلاعات لازم، از انفجار اطلاعات و پردازش زیاد داده در گره جلوگیری می کند.

نتیجه گیری
ما در این مقاله سیستم مدیریت زمانی را ارائه دادیم که نه تنها می تواند به مسیر بان در شناسائی گره های بدرفتار کمک کند، بلکه توانایی های جدیدی را در ارسال همزمان داده های مختلف دراختیار ما قرار میدهد. با این روش تزاحم داده روی گره ها کاهش می یابد و به طور کلی به موجب زمان بندی ارسال اطلاعات، نظمی خاص در شبکه حاکم می گردد، همچنین بیان داشتیم که چگونه سیستم های مسیربان ومسیرسنج با همکاری وهماهنگی، همزمان با یافتن بهترین مسیر، امنیت ارسال داده را تضمین می کنند . به علاوه با یک بیان ریاضی نشان دادیم که چگونه گره ها برای حفظ منافع خود، در ایجاد یک شبکه حضور پیدا می کنند.

منابع و ماخذ
Piyush Gupta,P.R.kumar, "Cirtical power for Asymptotic connectivity in wireless network". Decision and Control, 1998. Proceedings of the 37th IEEE Conference on [2] Haiyun Luo, Petros Zerfos,Jiejun ,Songwu Lu , Lixia Zhang"Self-securing Ad Hoc wireless network" iscc, p. 567, Seventh International Symposium on Computers and Communications (ISCC'02), 2002 [3] Martin Mauve,Jörg Widmer,Hannes Hartentein, "A Survey On Position -Based Routing In A Mobile Ad Hoc Network" IEEE Network Magazine 15 (6), pp. 30-39, November 2001 [4] Vesa Kärpijok"Security In Ad Hoc Wireless Networks" [5] Matthias Grosglauser,and David .n.c.Tse"Mobility Increases The Capcity Of Wireless Ad Hoc Networks" ACM Transactions on Networking (TON) [6] Ram Ramantan,Regina Rosales"Topology Control Of Multihop Wireless Networks Using Transmit Power Adjustment "in Proceedings of IEEE INFOCOM, 2000 [7] Vikram Srinivasan,Pavan Nuggehall,Carla F.chiasserini, Ramesh R.Rao, "Coopration in Wireless Ad Hoc Networks" Proc.of INFOCOM 2003 [8] Lidong Zhou,Zygmunt J.Haas, "Securing Ad Hoc Networks" IEEE Network Magazine,vol 13,no6, Nov/Dec 1999 [9] Sergio Martin,T.J.Giuli,Kevin Lou,Mary Baker, "Mitigating Routing Misbehavior in Mobile Ad Hoc Networks"Proc.of MobiCom 2000,Boston,Augst 2000 [10] Prosenjit Base,and Pat Marin,Ivan Stojmeonovic,and Jorge Urrutia, "Routing with Guranteed Deliviry in Ad Hoc Wireless Networks" ACM Wireless Networks, 7, 6, November 2001 [11] Kilin Weniger, Matina Zitterbart, "IPv6 Autoconfiguration in Long Scale Mobile Ad Hoc Networks" in Proc. of European Wireless 2002, vol. 1,
اینترنت – مقاله کامل – Helsinki University of Technology
http://www.aulk.com/index.php?option=com_content&task=view&id=88&Itemid=45
http://www.aftab.ir
شبکه-های بی-سیم ادهاک – انجمن تخصصی و آموزشی موبایل
"Computer Networks", Andrew S. Tanenbaum, 4th Edition
"Data Communications and Networking", Behrouz A. Forouzan, 3rd Edition
"A Survey of Secure Wireless Ad Hoc Routing", Y. Hu, A. Perrig, IEEE Computer Security, Sep 2004
"Ad-hoc Networks Security", Pietro Michiardi, Refik Molva, Research Report, Dec 2003
"Securing Ad-Hoc Networks", L. Zhou, Z. J. Haas, IEEE Network Magazine, Oct 1999
بانک مقالات و نرم افزارهای برق
-AD HOC NETWORKS TECHNOLOGIES AND PROTOCOLS BY: PRASANT MOHAPARTA
-Wireless Ad Hoc networking by shih-lin wu.yu-chee tesng
-Ad Hoc Networks: Fundamental properties and Network Topologies by:Ramin Hekmat
-The Hand book of Ad Hoc wireless Networks by: Mohammad llyas
-Security in Ad Hoc Network by: Hojjat Habibpour zadeh

6


تعداد صفحات : 109 | فرمت فایل : WORD

بلافاصله بعد از پرداخت لینک دانلود فعال می شود