img

برنامه نویسی پروتکل های IPv6 توسط Contiki و Cooja

/
/
/

Contiki سیستم عاملی است مجهز به اینترنت اشیاء، که به طور گسترده ای مورد استفاده قرار می‌گیرد. این سیستم عامل، متن باز و رایگان می‌باشد. Cooja، شبیه ساز شبکه ی Contiki می‌باشد که همچنین برای برنامه نویسیِ حسگرها نیز به کار می‌رود. به خواندن ادامه دهید، تا یادبگیرید که چگونه می‌توان پروتکل‌های IPv6 را توسط Contiki و Cooja برنامه نویسی کرد.

امروزه، فن آوری تا جایی پیشرفته است که چندین دستگاه و گجت می‌توانند بدون دخالت انسان، با یکدیگر در ارتباط و تعامل باشند.
این فن آوری ارتباطی این روز‌ها به نام اینترنت اشیاء(IoT) معروف است. ارتباطات مبتنی بر اینترنت اشیاء کاربرد‌های بسیاری دارند، که از جمله‌ی آنها می‌توان از تجهیزات حراست، شهر‌های هوشمند، دفتر‌های هوشمند، گشت زنی بزرگ راه‌ها، گرفتنِ هوشمندِ عوارض جاده، ارتباطات تجاری، تلویزیون‌های ماهواره‌ای، و سیستم‌های ترافیکی و دوربین‌های امنیتی متصل به شبکه را نام برد. اینترنت اشیاء با نام‌های دیگری نیز شناخته می‌شود، و با سایر تکنولوژی‌ها نیز در ارتباط می‌باشد. از جمله دیگر نام‌های اینترنت اشیاء، می‌توان از رایانش فراگیر(UbiComp) نام برد که در آن تعدادی دستگاه و شیء، به منظور تصمی گیری و پایش (monitoring) از راه دور، به صورت مجازی به یکدیگر متصل هستند.

 

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

 

حمله‌ی محروم سازی از سرویس (DoS)
در حمله‌ی DoS، دسترسی به شبکه توسط node مهاجم، یا بسته‌ی ارسالی وی، که منجر به تسخیر کانال یا پهنای باند ارتباطی می‌شود، مسدود می‌گردد. در این شرایط، کاربران قانونی و مجاز، قادر به استفاده از امکانات شبکه نخواهند بود. این حمله، حمله‌ای معروف و بدنام می‌باشد، که لایه‌ی شبکه‌ی اینترنت اشیاء را هدف قرار می‌دهد، و هنگامی وخیم می‌شود که تبدیل به حمله ای گسترده ((DDoS می‌گردد، که در این سناریو، مهاجمین از چندین موقعیت مکانی متفاوت شبکه را مورد هجوم قرار می‌دهند.

 

حمله‌ی نوع Sybil
این نوع از حمله، لایه‌ی شبکه ای از شبکه‌های حمل نقل را به کررات مورد تهاجم قرار می‌دهد. در این حمله، هویت وسایل(node) دستخوش تغییر قرار می‌گیرد. گره(node) مخرب سعی در ساختن هویتی جعلی، با تظاهر به اصلی یا ثبت شده بودن می‌کند.
در حمله‌ی ‌‌Sybil، وسیله‌ی مهاجم، وسایل نقلیه، یا گره‌هایی(node) فرضی، با هویتی یکسان و کپی شده ایجاد می‌کند، و دیگر node‌ها را به تحرک سریع تر یا خروج از شبکه وادار می‌سازد. اینگونه حملات با آزمودن منبع (resource testing) قابل شناسایی می‌باشند، مبنی بر این فرض که وسائط نقلیه، از منابع محدودی را دارا باشند. حملات Sybil را می‌توان با رمزنگاریِ کلید‌های عمومی برطرف ساخت چون در این فضا است که از کلیدهای عمومی برای اصالت سنجی وسائط نقلیه استفاده می‌شود.

 

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

 

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

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

 

RPL (پروتکل مسیریابی برای شبکه‌های کم توان و پراتلاف(lossy))
RPL پروتکلی مبنی بر IPv6، برای اینترنت اشیاء می‌باشد. این پروتکل به طور ویژه‌ای برای IPv6 با شبکه‌های کم توانِ بی سیمِ شخصی(۶LowPAN) یکپارچه سازی شده است. RPL از خلقِ پویای گراف جهت‌دار غیره‌مدور مقصد محور(DODAG) استفاده می‌کند، و از ارتباطات یک‌سویه و دو‌سویه برخوردار می‌باشد. این پروتکل از چندین نمونه با رفتار محلی سازی شده، جهت بهینه سازی بالاتر برخوردار می‌باشد. RPL در چارچوب، هر گره را قادر می‌سازد تا انتخاب کند کدامین بسته بایستی در جهت بالا، به سمت ریشه ارسال شود، و یا اینکه به جهت پایین و به سمت گره‌های فرزند(child) ارسال گردند.

برنامه نویسیِ RPL مجهز به IPv6 در Cooja
Contiki یکی از رایج ترین سیستم عامل‌های مجهز به اینترنت اشیاء می‌باشد، که سیستم عاملی رایگان و متن باز است، و از طریق
http://www.contiki-os.org
قابل دستیابی می‌باشد. Contiki مجهز به شبیه سازی به نام Cooja می‌باشد، که برای شبیه سازی و همچنین برنامه نویسیِ حسگرها استفاده می‌شود. Cooja انتخاب‌های وسیعی را برای برنامه نویسیِ گره‌های اینترنت اشیاء برای کاربردهای دنیای واقعی ارائه می‌دهد. Cooja برنامه نویس را قادر می‌سازد تا انواع گسترده ای از mote‌ها را برنامه نویسی و یا وارد کند، و از الگوریتم‌های متفاوتی بهره برداری کند.
برای برنامه نویسی، کنترل و تحت نظر داشتن دستگاه‌های دور از دسترسِ اینترنت اشیاء، برنامه‌های backend که به زبان C می‌باشند و فایل‌های سرآیند(header file) مربوطه را می‌توانند برای تولید نتایج مطلوب سفارشی‌سازی و دوباره کامپایل نمود.
Contiki علاوه بر شبکه‌های IPv6، بر روی شبکه‌های IPv4 با یکپارچه سازی پروتکل‌های سبک نیز کار می‌کند، بنابراین تراشه‌های کم توان و تراشه‌های فرکانس رادیویی می‌توانند بدون مشکل متصل گردند.
شکل ۱، شبیه سازی چندین Mote اینترنت اشیاء را در Cooja، که مجهز به رمزنگاری پویا می‌باشد را نشان می‌دهد. نتایج شبیه سازی می‌توانند از طریق خروجی mote تحلیل شوند که در آن امکان گرفتن log‌های زمان اجرا وجود دارد. تمامیِ داده‌های ارتباطی و سیگنال‌ها در خروجی mote وارد شده اند، که می‌توانند توسط گراف‌های گوناگونی مورد بررسی بیشتر قرار گیرند.
زمانی که شبیه‌سازی به اتمام برسد، فایل‌های log شبکه تحلیل می‌شوند. این عمل شامل منبع و mote‌های مقصد، زمان و فعالیت‌های کلیِ انجام گرفته در طیِ شبیه‌سازی می‌باشد.
در پنجره‌ی خروجیِ Mote، داده log می‌تواند برای تحلیل بیشتر با استفاده ابزارهای داده‌کاوی و یادگیری ماشین، جهت تحلیلِ پیشگویانه، کپی برداری شود.
شکل ۲، Collect View را در Cooja نشان می‌دهد. اینجا mote انفرادیِ اینترنت اشیاء تحلیل می‌شود. تحلیل mote اینترنت اشیاء می‌تواند از طریق منوی Tools در Cooja دیده شود. از Collect View، هر یک از mote‌های اینترنت اشیاء می‌توانند نسبت به چندین پارامتر، از قبیل تاخیر، دما، زمان و سایر پارامترهای مهم دیگر در تخمین عملکرد نقش دارند، تحلیل شوند.
شکل ۳، تبیین گر گزینه‌هایی متفاوت برای اینکه تحلیل توسط کدام شبیه ساز اینترنت اشیاء صورت پذیرد، و پیشگویی‌های مبنی بر پارامترهای متعدد می‌باشد. Tab گراف شبکه در Collect View از Cooja، محقق را قادر می‌سازد که توپولوژی پویا و اتصالات گره‌های حسگر را مشاهده کند، همانگونه که در شکل ۴ پیدا است.
شکل ۵، نتایج و تحلیل‌های مبتنی بر پارامترِ گره‌های متفاوتی، را در قالب جدولی نمایش می‌دهد. این اطلاعات، برنامه نویس اینترنت اشیاء را قادر می‌سازد تا گره‌ها را هم به صورت انفرادی و هم به صورت گروهی مورد تفحص قرار دهد، تا چندین عامل را تحلیل کرده باشد.
Serial Console که در شکل ۶ مشهود است، log داده‌های انتقال و نتایج مربوط به اصالت سنجی را نشان می‌دهد.
در شکل ۶، پیاده‌سازیِ حمله و فرآیند اصالت سنجی نمایش داده شده است، که توسعه دهنده را در محاسبه‌ی تاثیر کد سفارشی سازی شده بر روی حسگرهای بی درنگ(real-time) یاری می‌کند.

ترسیم نتایج به شکل گراف
همانگونه که در شکل شکل ۷ نمایش داده شده است، تعداد وسیعی از پارامترها وجود دارد، شامل LPM، CPU، Radio Listen و Radio Transmit، که بایستی در طی شبیه سازی اینترنت اشیاء، متوجه آنها باشید.
نتایجی که در گراف بالایی ملاحظه کردید، در حالت باثبات و کم توان، در وضعیت یکپارچه می‌باشند. به علاوه، پارامتر Radio Listen نیز باثبات می‌باشد.

تحلیل شبکه توسط Foren6
Foren6(http://cetic.github.io/foren6/) ابزاری قدرتمند با کتابخانه‌ای رایگان و متن باز می‌باشد. این ابزار برای تحلیل شبکه‌های ۶LoWPAN به کار می‌رود.
این ابزار با ماژول‌های بوکشنده(sniffing) یکپارچه شده است، و در کنار آن قادر است نتایج را که در قالب فرمت‌های گوناگونی از قبیل متن یا گراف هستند را ترسیم کند.
Foren6 از بوکشنده‌های(sniffers) درون ساخت برای گرفتن و تحلیل ترافیک در ارتباط با ۶LoWPAN در یک رابط کاربری گرافیکی استفاده می‌کند.
Foren6 به اندازه‌ی کافی برای ضبط و ترسیم اطلاعات RPL با تحلیل عمیق از بسته‌ها در تبادلات شبکه‌ای قوی می‌باشد.

نصب foren6 با Contiki

برای پیکربندی وابستگی‌ها، تایپ کنید:

$ sudo apt-get install -y qt4-qmake libqt4-dev make
Libexpat1-dev cmake libpcap0.8-dev libc6-dev tshark gcc g++

برای گرفتن منبع کد با GIT، تایپ کنید:

$ git clone http://github.com/cetic/foren6.git

از فرمان‌های زیر برای نصب Foren6 استفاده کنید:

$ cd foren6
$ make
$ sudo make install

 

پیکربندی بوکشنده(sniffer) برای فعال کردن گرفتنِ بی درنگ
برای دسترسی و کار برروی دستگاه‌های سریال USB، از ‘dialout’، متعلق به Linux Group استفاده می‌شود.
در وهله‌ی اول، Foren6 عنوان کاربر root بالا می‌آید. اگر از هر حساب کاربریِ دیگری استفاده شود، کاربر بایستی برای استفاده از USB به ‘dialout’ Linux Group وارد شود.

$ sudo adduser <username> dialout
Sniffer Programming

$ git clone https://github.com/cetic/contiki
$ cd contiki
$ git checkout sniffer
$ make TARGET=sky savetarget sniffer .upload

وسعت شبیه سازی‌های تحقیقاتیِ مبتنی بر اینترنت اشیاء که از Cooja بهره می‌گیرند
اینترنت اشیاء دامنه‌ی تحقیقاتیِ نو ظهوری در بنیادهای شرکتی و دانشگاهی می‌باشد. به دلیل ازدیاد تعداد دستگاه‌های متصل به یکدیگر تحت لوای اینترنت اشیاء، زمینه‌های گسترده‌ای برای تحقیق در این دامنه وجود دارد.
در ادامه تعدادی از روش‌هایی را که با الگوریتم‌های نوین و موثر Cooja می‌توانند طراحی و پیاده سازی گردند را می‌بینید:
* همخوانی با همکنش پذیری و قابلیت میان-پروتکلی
* توسعه‌ی سناریوهای اینترنت اشیاءِ آگاه نسبت به انرژی
* برنامه ریزی حساس به انرژِی و مسیریابی
* پیشبینی و دوری جستن از حملات مصرف انرژی
* تحلیل‌های مادام العمر برای محیط‌های توانمند اینترنت اشیاء
* پیاده‌سازی‌های قابل استفاده‌ی مجدد و چند رابط کاربری

1 نظرات

نظر بدهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

It is main inner container footer text