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 انتخابي را به كار گرفت.
نتيجه گيري:
در اين گزارش به بررسي مختصري بر امنيت مسيريابي در شبكه هاي موردي پرداختيم. با توجه به ضعف اينگونه شبكه ها از نظر خطر در برابر حملات گوناگون، جا دارد تا اين ضعفها در شبكه ها مورد بررسي دقيق تري قرار بگيرد تا با اطمينان بيشتري بتوان از آنها استفاده نمود. همانطور كه در طي اين گزارش ديده شد، اين شبكه ها در معرض حملات بيشتري نسبت به ساير شبكه ها قرار دارند. اين حملات دسته بندي شد و مورد بررسي قرارگرفت و براي هر كدام نيز ره حلهايي ارائه شد. تعدادي از مشهورترين الگوريتمهاي امن ارائه شده در اين زمينه نيز مطرح شد. تمامي اين الگوريتمها در حالت پايه، از لحاظ كارايي شبكه بسيار قابل قبول هستند. ولي برخي مشكلات امنيتي در آنها وجود دارد. براي رفع اين مشكلات امنيتي براي هر كدام از اين الگوريتمها، يك بسط ارائه شده است.
اين بسطها مشكلات امنيتي پروتكلها را برطرف كرده اند ولي از لحاظ كارآيي شبكه آنها را دچار مشكل نموده اند. بنابراين ارائه يك الگوريتم مسيريابي براي شبكه هاي موردي كه هم از لحاظ امنيت و هم از لحاظ كارآيي شبكه داراي سطح قابل قبولي باشد، ضروري به نظر مي رسد.