Routing Security in Ad-hoc Networks
چکیده :
شبکه های موردی شبکه هایی هستند که برای مسیریابی از هیچ عنصر کمکی شبکه ای استفاده نمی کنند.بلکه در این شبکه ها خود گره های شرکت کننده در شبکه وظیفه مسیریابی شبکه را به عهده دارند. امنیت درشبکه های موردی از وضعیت ویژه ای برخوردار است. زیرا دراین شبکه ها علاوه بر تمامی مشکلات موجود در شبکه های با سیم، با مشکلات امنیتی همچون سادگی شنود و تغییر اطلاعات در حال انتقال، امکان جعل هویت افراد،شرکت نکردن و یا تخریب عملیات مسیریابی، عدم امکان استفاده از زیرساختهای توزیع کلید رمزنگاری و غیره مواجه می شویم. یکی از مهمترین موارد امنیتی در شبکه های موردی، ارائه یک الگوریتم مسیریابی امن در این شبکه هاست. در چند سال اخیر تلاش زیادی برای ارائه یک الگوریتم مسیریابی امن در شبکه های موردی انجام شده است. از این میان می توان به پروتکلهای SEAD ،Ariadne ،SRP ، SAODV ،ARAN و غیره اشاره کرد. ولی هر کدام از آنها دارای مشکلات خاص مربوط به خود می باشند و همچنان کمبود یک الگوریتم که هم ازلحاظ امنیت و هم از لحاظ کارایی شبکه در حد قابل قبولی باشد احساس می شود.
شبکه موردی چیست؟
شبکه موردی شبکه ایست که توسط host های بی سیم که می توانند سیار هم باشند تشکیل می شود. در این شبکه ها (لزوماً) از هیچ زیر ساخت پیش ساخته ای استفاده نمی شود. بدین معنا که هیچ زیر ساختی مانند یک، سوییچ و یا هر چیز دیگری که در دیگر شبکه ها از آنها برای کمک به ساختار شبکه، مسیریاب ایستگاه مرکزی استفاده می شود، وجود ندارد. بلکه فقط تعدادی گره بی سیم هستند که با کمک ارتباط با گره های همسایه، به گرههای غیر همسایه متصل می گردند.
ساختار یک شبکه موردی را میتوان چنین تصور کرد: هر گره بیسیم یک نقطه است و پیرامون آن دایرهای به شعاع برد مفیدش. هر گره دیگری که درون این فاصله قرار داشته باشد، می تواند داده های ارسالی این گره را دریافت کرده و آنها را از نویزهای محیطی تشخیص دهد. برای راحتی کار، این شبکه را با یک گراف متناظر آن نشان می دهند. یالهای گراف بدین معنا هستند که دو راسآن در فاصله ای با یکدیگر قرار دارند که می توانند پیامهای یکدیگر را دریافت کنند. در واقع گره هایی که در فاصله برد مفید یک گره قرار دارند، در نمایش گرافی، با یک یال به آن متصل می شوند.
در شبکه های موردی، سیار بودن گره ها ممکن است باعث تغییر مسیر بین دو گره شود. همین امر است که باعث تمایز این شبکه ها از دیگر شبکه های بی سیم می شود. با وجود تمامی این مشکلات، از شبکه های موردی در موارد بسیاری استفاده می شود. دلیل این امر سرعت و آسانی پیاده سازی این شبکه و همچنین عدم وابستگی آن به ساختارهای از پیش بنا شده است. از موارد استفاده شبکه های موردی می توان به کاربردهای شخصی مانند اتصال laptop ها به یکدیگر، کاربردهای عمومی مانند ارتباط وسایل نقلیه و تاکسی ها، کاربردهای نظامی مانند ارتش و ارتباط ناوگان جنگی و کاربردهای اضطراری مانند عملیات امداد و نجات اشاره کرد.
مشکلات امنیتی در شبکه های موردی :
مشکلات امنیتی در شبکه های موردی از آن جهت خاص شده و جداگانه مورد بررسی قرار می گیرد که در این شبکه ها، علاوه بر این که تمامی مشکلات موجود در یک شبکه با سیم و یا یک شبکه بی سیم ولی با زیر ساخت با سیم وجود دارد؛ بلکه مشکلات بیشتری نیز دیده می شود. مانند اینکه از آنجا که تمامی ارتباطات به صورت بی سیم انجام می شود، می توان آنها را شنود کرد و یا تغییر داد. همچنین از آنجایی که خود گره ها در عمل مسیریابی شرکت می کنند، وجود یک گره متخاصم می تواند به نابودی شبکه بیانجامد. همچنین در این شبکه ها تصور یک واحد توزیع کلید و یا زیرساخت کلید عمومی و غیره مشکل است. زیرا این شبکه ها اغلب بدون برنامه ریزی قبلی ایجاد می شوند و برای مدت کوتاهی نیاز به برقراری امنیت دارند. از این رو امنیت در این شبکه ها به صورت جداگانه مورد بحث و بررسی قرار می گیرد. در مجموع می توان موارد امنیتی در شبکه های موردی را به صورت زیردسته بندی کرد:
- مدیریت کلید
- مسیریابی امن
- تصدیق اصالت
- جلوگیری از حملات ممانعت از سرویس
- تشخیص سوء رفتار
- تشخیص نفوذ
موارد ذکر شده به طور خاص برای شبکه های موردی مورد بررسی قرار می گیرند. هر کدام از این موارد زمینه بحث بسیار گسترده ای دارند و به علت جدید بودن شبکه های موردی، میدان فعالیت در آنها بسیار باز است.
مسیریابی در شبکه های موردی
همانطور که در بالا گفته شد، مسیریابی در شبکه های موردی به عهده خود گره های موجود در شبکه است.و یا hubی برای مسیریابی وجود ندارد. بلکه، مسیریاب بدین معنا که هیچ دستگاه کمکی شبکه ای مانند سوئیچ این خود host ها یا همان گره های تشکیل دهنده شبکه هستند که عمل مسیریابی را انجام می دهند. اما ممکن است این سوال پیش بیاید که چگونه خود گره ها می توانند عمل مسیریابی در یک شبکه را انجام دهند. برای پاسخ به این سوال به توضیح درباره چند الگوریتم مسیریابی معروف و پرکاربرد در شبکه های موردی می پردازیم. هر چند تعداد این الگوریتمها بسیار زیاد است، ولی چند الگوریتم ذکر شده مشهورترین آنها هستند.
- استفاده از الگوریتم 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 الگوریتم های مبتنی بر موقعیت مکانی اشاره کرد. این الگوریتم ها با استفاده ازاطلاعاتی مانند موقعیت قبلی و سرعت یک گره، موقعیت فعلی آن را پیش بینی می کنند و پیام را تنها برای همان منطقه ارسال می کنند. به علت کثرت الگوریتم های مسیر یابی در این شبکه ها، در این گزارش به ذکر همین دو الگوریتم خاص بسنده می کنیم.
نیازمندیهای امنیتی شبکه موردی:
یک الگوریتم مسیریابی خوب در شبکه موردی می بایست بتواند یک مسیر را به درستی بنا کند و از آن نگهداری نماید. بدین معنا که اجازه ندهد تا گره های متخاصم از ساخت یا نگهداری صحیح مسیر جلوگیری نمایند.در مجموع اگر یک الگوریتم نکات زیر را رعایت کند می توان آن را یک الگوریتم امن نامید. اصولاً در یک الگوریتم امن:
- سیگنالهای مسیریابی نمی توانند جعل شوند.
- سیگنالهای دستکاری شده نتوانند به داخل شبکه تزریق شوند.
- پیامهای مسیریابی در طی انتقال به جز در روند عادی پروتکل تغییر پیدا نکنند.
- حلقه های مسیریابی در طی فعالیتهای خصم آمیز ایجاد نشوند.
- کوتاه ترین مسیرها توسط گره های متخاصم تغییر پیدا نکند.مورد زیر نیز می را برآورده می کنند. برای یک محیط باز مدیریت شده موارد بالا نیازهای یک محیط بازبایست رعایت شود.
- گره های غیر مجاز می بایست از شبکه کنار گذاشته شوند. این مورد با این فرض صورت میگیرد که مدیریت شبکه در راه اندازی و توزیع کلید و … نقش داشته باشد.همچنین یک محیط متخاصمانه مدیریت شده تعریف می شود که در آن علاوه بر موارد فوق مورد زیر نیز در نظر گرفته می شود.
- توپولوژی شبکه نباید توسط مدیر شبکه به هیچ کدام از گره های مجاز و یا متخاصم نشان داده شود. زیرا گره های متخاصم می توانند از طریق آن برای تخریب شبکه اقدام کنند.
چند الگوریتم امن برای مسیریابی در شبکه های موردی:
پس از بیان مقدمات فوق، حال به بررسی چند الگوریتم امن مسیریابی در شبکه های موردی می پردازیم.بیشتر این الگوریتمها بر پایه یکی از الگوریتمهای مسیریابی مانند DSR یا AODV بنا شده است و دارای نقاط ضعف و قوت مخصوص به خویش است.
پروتکل ARAN (Authenticated Routing for Ad hoc Networks) :
این الگوریتم توسط Kimaya Sanzgiri و همکارانش در سال ۲۰۰۲ ارائه شد. این الگوریتم بر پایه با کلید عمومی و همچنین استفاده از گواهی بنا شده است رمزنگاری. پروتکلARAN جهت ارائه امنیت
مسیریابی، گواهی های رمزنگارانه را به کار می گیرد. چنین گواهی هایی در حال حاضر به عنوان بخشی ازشبکه های تک ۸۰۲.۱۱ hop به کار گرفته شده اند.
پروتکل ARAN شامل یک فرآیند صدور گواهی مقدماتی است که توسط یک فرآیند نمونه سازی مسیر دنبال می شود و تصدیق اصالت انتها به انتها را تضمین می کند. این پروتکل در مقایسه با اکثر پروتکلهای مسیریابی موردی غیر امن، ساده به نظر می رسد. کشف مسیر در ARAN توسط یک پیام کشف مسیر انتشار یافته از یک گره مبدأ انجام می گیرد که به حالت unicast توسط گره مقصد پاسخ داده می شود، به طوری که پیامهای مسیریابی هم در طول مسیر مبدأ به مقصد، در هر hop تصدیق اصالت می شوند و هم در مسیر عکس.
- صدور گواهی
پروتکل ARAN ملزم است که از یک سرور صدور گواهی قابل اطمینان T استفاده کند، که کلید عمومی آن برای تمام گره های معتبر شناخته شده است. کلیدها در ابتدا ساخته شده و از طریق رابطه ای که میان T و هر یک از گره ها موجود است، مبادله می شوند. پیش از ورود به شبکه موردی، هر گره باید گواهی ای را از T درخواستکند. پس از اینکه هر گره اصالت خود را به طور ایمنی برای T تصدیق نمود، تنها یک گواهی دریافت می کند.روشهایی که برای تصدیق اصالت ایمن به سرور صدور گواهی لازم است، بر عهده توسعه دهندگان قرار می گیرد.جزئیات چگونگی فسخ گواهیها در بخشهای بعدی شرح داده می شود. گره A، یک گواهی را به صورت زیر از Tدریافت می کند.
این گواهی شامل موارد زیر می باشد: آدرس IP گره A، کلید عمومی A، مهر زمانی t برای زمان ایجاد شدن گواهی و e که زمان انقضاء گواهی را نشان می دهد. این متغیرها توسط T به یکدیگر متصل شده و امضا می شوند. تمام گره ها باید گواهی های جدید را با سرور قابل اطمینان نگهداری کنند. این گواهی ها جهت تصدیق اصالت گره به گره های دیگر در طی مبادله پیامهای مسیریابی،مورد استفاده قرار می گیرند.
- کشف مسیر تصدیق اصالت شده
هدف تصدیق اصالت انتها به انتها این است که مبدأ بتواند تشخیص دهد که به مقصد مورد نظر دست یافتهاست. در این فرآیند، مبدأ برای انتخاب مسیر بازگشت، به مقصد اطمینان می کند.گره مبدأ A با انتشار یک بسته کشف مسیر به همسایگان خود، جستجوی مسیر به مقصد X را آغاز می کند:
P شامل موارد زیر است: یک شناسه نوع بسته (“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 گره IPa) A) ، گواهی متعلق به 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، پیامی جهت اعلام انقضا، برای گروه موردی ارسال می کند. به هنگام فراخوانی گواهی منقضی شده، certr، ارسال به شکل زیر است:
هر گره ای که این پیام را دریافت می نماید، آن را به همسایگان خود ارسال می کند. اعلانهای انقضا باید تازمانی که گواهی به طور عادی منقضی شود، ذخیره شوند. همسایگان گره ای که گواهی آن منقضی شده است، بایدمسیریابی خود را تصحیح کنند تا از انتقالات از طریق آن گره که اکنون غیر قابل اطمینان است، جلوگیری شود. دراین روش امکان شکست وجود دارد. در برخی موارد، گره غیر قابل اطمینانی که گواهی آن منقضی شده است، ممکن است تنها راه ارتباطی میان دو قسمت از شبکه موردی باشد. در این حالت، گره غیر قابل اطمینان ممکن است اعلان انقضای گواهی خود را ارسال نکند و به تفکیک شبکه بیانجامد، که تا زمانی که این گره غیر قابل اطمینان دیگر تنهاراه ارتباطی میان دو قسمت نباشد، این وضعیت باقی خواهد ماند.
پروتکل SRP (Secure Routing Protocol) :
مبنای این پروتکل بر این اساس است که یک گره مبدا برای مسیریابی، می تواند پاسخهای دریافتی برای این عملیات را تشخیص داده و در صورت تشخیص نادرست بودن، آنها را نادیده بگیرد. برای این منظور یک وابستگی امنیتی بین گره مبدا و گره مقصد در نظر گرفته می شود. این Security Association (SA) می تواند به عنوان مثال به وسیله دانستن کلید عمومی طرف مقابل مطرح شود. حال طرفین می توانند به وسیله یک پروتکل تبادل کلید مانند الگوریتم خم بیضوی دیفی هلمن، یک کلید مشترک خصوصی را بین خود به اشتراک بگذارند. در ادامه بحث، فرض می کنیم که کلید مشترکی به نام KS,T وجود دارد. وابستگی امنیتی یک رابطه دو طرفه است که می توان در آن از کلید مشترک برای کنترل جریان داده در هر دو جهت استفاده کرد. با این وجود، حالت مربوطه برای هر جهت باید حفظ شود.
وجود وابستگی امنیتی قطعی است، زیرا میزبانهای نهایی ،یک طرح ارتباطی ایمن را به کار برده اند و درنتیجه باید قادر باشند که یکدیگر را تصدیق اصالت کنند. به عنوان مثال، چنین گروهی از گره ها می تواند یک
تبادل کلید امن را انجام دهد. با وجود این، وجود وابستگی امنیتی میان هر یک از گره های میانی ضروری نمی باشد. در نهایت می بایست که گره های نهایی قادر باشند که از حافظه ایستا یا فناناپذیر استفاده کنند.
گره های متخاصم ممکن است برای مختل کردن عملکرد شبکه رفتاری خودسرانه، Byzantine، در پیش گیرند. آنها قادر به خراب کردن، اجرای مجدد و همچنین ساختن بسته های مسیریابی می باشند. این گره ها ممکن است به هر روشی در صدد منحرف کردن بسته ها از مسیر خود باشند و عموماً نمی توان توقع داشت که به درستی پروتکل مسیریابی را اجرا کنند. علیرغم اینکه مجموعه ای از گره های متخاصم ممکن است به طور همزمان، حملاتی را بر علیه پروتکل ایجاد کنند، فرض ما بر این است که گره ها قادر به همکاری در یکی از مراحل اجرای پروتکل نمی باشند، یعنی در زمان انتشار یک درخواست و دریافت پاسخهای مربوطه هیچ عملی انجام نمی دهند.برای روشن تر شدن مطلب، در ادامه به شرح حمله ای توسط دو گره متخاصم در حین عملیات کشف مسیر، می پردازیم.
در این پروتکل همانند دیگر پروتکلها فرض بر این است که پیوندها دو طرفه هستند، که این نیاز توسط اکثر پروتکلهای کنترل دسترسی رسانه ارائه شده، برآورده شده است، به خصوص پروتکلهایی که گفتگوی RTS/CTS را به کار می برند. همچنین انتظار می رود که یک نگاشت یک به یک میان کنترل دسترسی رسانه و آدرسهای IP وجود دارد. در آخر، خاصیت انتشاری کانال رادیویی متعهد می شود که هر ارسال، توسط تمام همسایگان که درحالت نامنظمی قرار دارند، دریافت می شود.
گره مبدأ S، با ساختن یک بسته درخواست مسیر کشف مسیر را آغاز می کند که این بسته توسط یک جفت شناسه: شماره توالی درخواست و یک شناسه درخواست تصادفی، شناسایی می شود. علاوه بر KS,T، مبدأ، مقصد و شناسه های درخواست منحصر بفرد ورودیهای لازم برای محاسبه کد تصدیق اصالت پیام (MAC) هستند. بعلاوه، شناسه ها (آدرسهای IP) گره های میانی، در بسته درخواست مسیر ذخیره می شوند.
گره های میانی، درخواستهای مسیر را تقویت می کنند، بنابراین یک یا چند بسته درخواست به مقصد می رسد و مقدار محدودی از اطلاعات حالت با توجه به درخواستهای تقویت شده، نگهداری می شود، بنابراین درخواستهای مسیری که قبلاً دیده شده اند، حذف می شوند. بعلاوه این گره ها بازخوردی را به هنگام قطع مسیرایجاد می کنند و در برخی موارد ممکن است پاسخهای مسیر را همان طور که در ذیل توضیح داده می شود، ایجاد کدرخواستهای مسیر به مقصد T می رسند که پاسخهای مسیر را می سازد؛ یک MAC را محاسبه می کند که محتویات پاسخ مسیر را در بر می گیرد و بسته را از طریق عکس مسیر که در بسته درخواست مربوطه جمع آوری شده است، به S باز می گرداند. گره مقصد به یک یا چند بسته درخواست از یک پرس و جو پاسخ می دهد، بنابراین تا حد ممکن یک تصویر توپولوژیکی متغیر را برای مبدأ فراهم می کند. گره درخواست دهنده، پاسخها را اعتبارسنجی کرده و دید توپولوژیکی خود را به روز آوری می نماید.
پروتکلSEAD (Secure Efficient Ad-hoc Distance vector routing protoco) :
این پروتکل بر اساس پروتکل DSDV بنا شده است. در این پروتکل در هر گره یک جدول مسیریابی وجود داردکه درآن لیستی از تمامی مقاصد ممکن در شبکه وجود دارد. در هر قسمت جدول، آدرس مقاصد، نزدیکترین فاصله دانسته شده آنها ( که metric نامیده می شود) و گره های همسایه که با hop بعدی می توان به آن مقصد دست یافت، ذخیره شده است. این metric ها معمولاً بر حسب تعداد hop در جدول نوشته می شوند. هرگره برای به روز درآوردن جدول مسیریابی خود هر از چند گاهی یک پیام درخواست مسیر را برای تمامی همسایگان خود ارسال می کند تا بتواند مسیرهای جدید را در جدول خود قرار دهد[۲]. اولین پیشرفت امنیتی که SEADدر DSDV انجام داده است، اضافه نمودن شماره توالی به هر عنصر جدول مسیریابی است. این شماره هایی که ممکن است از به روزآوری خارج از موقع مسیرها ایجاد شود، جلوگیری می کند. ۳ توالیها از ایجاد حلقه پروتکل SEAD برای ایجاد امنیت در DSDV از زنجیره توابع درهم سازی یک طرفه به جای توابع رمزنگاری غیرمتقارن استفاده میکند [۱۱]. برای ایجاد زنجیره درهم سازی یک طرفه، هر گره یک عدد x را به x∈ ۰,۱به صورت تصادفی انتخاب می کند ( ρ تعداد بیتهای خروجی تابع درهم سازی است) و ρ صورت { }زنجیره h0, h1, …, hn را به صورت زیر می سازد. (h0=x, hi=H (hi-1. بدین ترتیب به عنوان مثال می توان با داشتن hi-3 ،hi را به طریق زیر تصدیق اصالت نمود. (((hi=H(H(H(hi-3. هر گره از عنصر بعدی زنجیره درهم سازی خود که قابل تصدیق اصالت (امضا شده) است در به روزرسانی هایی که درباره خود ارسال می کند استفاده می کند. بدین ترتیب یک حد آستانه پایین برای شماره های توالی و متریکها گذاشته می شود. بنابراین هیچ گره دیگری نمی تواند مسیر جدیدی را با شماره توالی بالاتر ویا متریک کمتر در شبکه منتشر کند. همین موضوع باعث جلوگیری اخلال در امر به روزآوری مسیرها در شبکه می شود. در واقع SEAD با مهاجمانی مقابله می کند که اطلاعات انتشار یافته در زمان به روزآوری مسیرها را تغییر می دهند. در واقع اگر مهاجم مقدار شماره توالی و یا متریک یک بسته را عوض کند، عمل به روزآوری مسیر را دچار مشکل کرده است. همچنین مشکل حمله تکرار نیز از جمله حملاتی است که در SEAD مورد توجه قرار گرفته است.
هر گره با دریافت یک بسته به روزآوری مسیر، با توجه به مقدار درهم سازی موجود در بسته، آدرس گره مقصد، شماره توالی بسته و مقدار درهم سازی قبلی دریافتی، با تعداد مناسب درهم سازی بر روی مقدار جدید می تواند بسته دریافتی را تصدیق اصالت کند. همچنین برای تصدیق اصالت گره مبدأ دو روش پیشنهاد شده است. روش اول ارسال یک مکانیزم تصدیق اصالت مانند TESLA است. روش دوم استفاده از کد تصدیق اصالت پیام است. این روش با این فرض صورت می گیرد که بین هر دو گره یک کلید مشترک قرار داده شده باشد
پروتکل SPAAR (Secure Position Aided Ad-hoc Routing Protocol) :
پروتکل SPAAR برای بهبود بخشیدن کارآیی و امنیت، اطلاعات موقعیت را به کار می گیرد و در عین حال این اطلاعات را از گره هایی که تصدیق اصالت نشده اند، محافظت می کند. برای اینکه پروتکلهای مسیریابی شبکه های موردی به سطح بالایی از امنیت دست یابند، به گره ها تنها این اجازه داده می شود که پیامهای مسیریابی را از همسایگان تک hop خود بپذیرند.
در SPAAR، به کمک اطلاعات موقعیت، یک گره می تواند همسایگان تک hop خود را پیش از قرار دادن آنها در پروتکل مسیریابی، شناسایی کند. از نیازهای SPAAR این است که هر دستگاه بتواند موقعیت خود را تعیین کند. دریافت کننده های GPS تقریباً ارزان و سبک هستند، بنابراین منطقی است که فرض کنیم تمام دستگاهها در شبکه ما به یکی از آنها مجهز هستند.
در SPAAR، گره مبدأ باید موقعیت جغرافیایی تقریبی مقصد را نیز بداند، که می توان آن را از روی اطلاعات آخرین موقعیت و آخرین سرعت ذخیره شده در جدول مقصد گره مبدأ، محاسبه نمود. اگر این اولین تلاش گره مبدأ برای برقراری ارتباط با یک مقصد خاص باشد، ممکن است موقعیت مقصد را نداشته باشد. در این حالت می توان از یک سرویس موقعیت استفاده کرد. اگر هیچ سرویس موقعیتی در دسترس نبود، می توان برای دستیابی به مقصد و دریافت اطلاعات موقعیتی آن، یک الگوریتم flooding انتخابی را به کار گرفت.
نتیجه گیری:
در این گزارش به بررسی مختصری بر امنیت مسیریابی در شبکه های موردی پرداختیم. با توجه به ضعف اینگونه شبکه ها از نظر خطر در برابر حملات گوناگون، جا دارد تا این ضعفها در شبکه ها مورد بررسی دقیق تری قرار بگیرد تا با اطمینان بیشتری بتوان از آنها استفاده نمود. همانطور که در طی این گزارش دیده شد، این شبکه ها در معرض حملات بیشتری نسبت به سایر شبکه ها قرار دارند. این حملات دسته بندی شد و مورد بررسی قرارگرفت و برای هر کدام نیز ره حلهایی ارائه شد. تعدادی از مشهورترین الگوریتمهای امن ارائه شده در این زمینه نیز مطرح شد. تمامی این الگوریتمها در حالت پایه، از لحاظ کارایی شبکه بسیار قابل قبول هستند. ولی برخی مشکلات امنیتی در آنها وجود دارد. برای رفع این مشکلات امنیتی برای هر کدام از این الگوریتمها، یک بسط ارائه شده است.
این بسطها مشکلات امنیتی پروتکلها را برطرف کرده اند ولی از لحاظ کارآیی شبکه آنها را دچار مشکل نموده اند. بنابراین ارائه یک الگوریتم مسیریابی برای شبکه های موردی که هم از لحاظ امنیت و هم از لحاظ کارآیی شبکه دارای سطح قابل قبولی باشد، ضروری به نظر می رسد.