برنامه نویسی پروتکل های IPv6 توسط Contiki و Cooja
Contiki سیستم عاملی است مجهز به اینترنت اشیاء، که به طور گسترده ای مورد استفاده قرار میگیرد. این سیستم عامل، متن باز و رایگان میباشد. Cooja، شبیه ساز شبکه ی Contiki میباشد که همچنین برای برنامه نویسیِ حسگرها نیز به کار میرود. به خواندن ادامه دهید، تا یادبگیرید که چگونه میتوان پروتکلهای IPv6 را توسط Contiki و Cooja برنامه نویسی کرد.
از سیستم عامل های مورد نیاز برای iot می توان FreeRTOS ،RIOT ،Google’s Brillo، Yocto project، TinyOS، Contiki و غیره رو نام برد. در این قسمت سیستم عامل Contiki برای اینترنت اشیا رو بررسی می نماییم.
Contiki سیستم عاملی برای IoT است که به طور خاص دستگاه های IoT با حافظه محدود، توان، پهنای باند و پردازش توان را هدف قرار می دهد. Contiki از یک طراحی مینیمالیستی به همراه ابزارهای متداول سیستم عامل های مدرن استفاده می کند و قابلیتی برای مدیریت برنامه ها، فرآیندها، منابع، حافظه و ارتباطات فراهم می کند.
محبوبیت Contiki به خاطر بسیار سبک بودن(براساس استانداردهای مدرن)، پخته بودن و انعطاف پذیر بودن آن می باشد. بسیاری از آکادمی ها، محققان سازمان ها و متخصصان از آن به عنوان سیستم عاملی که باید به آن کوچ کرد یا می کنند. Contiki فقط به چند کیلوبایت برای اجراشدن نیاز دارد و در فضایی حدود ۳۰ کیلوبایت، کل سیستم عامل خود را جا می دهد یعنی مرورگر وب، سرور وب، ماشین حساب، پوسته، کلاینت تلنت، کلاینت ایمیل، بازدید کننده VNC و FTP. از سیستم عامل ها و استراتژی های توسعه ی دهه های گذشته استفاده می کند که به راحتی امکان قرارگیری در فضایی کوچک را داشتند.
ارتباطات Contiki
Contiki از پروتکل های استاندارد و پروتکل های فعال اخیر برای IoT پشتیبانی می کند.
- uIP (برای IPv4) – این پیاده سازی TCP / IP از میکروکنترلر های ۸ بیتی و ۱۶ بیتی پشتیبانی می کند.
- uIPv6 (برای IPv6) – این یک پلاگین کامل IPv6 برای uIP است.
- Rime – این پشته جایگزین راه حلی را هنگامی که IPv4 یا IPv6 در دسترس نیستند فراهم می کند. Rime همچنین مجموعه ای از ابزارهای ابتدایی برای سیستم های کم مصرف ارائه می دهد.
- ۶LoWPAN – این مخفف IPv6 بر روی شبکه های محلی بی سیم شخصی است. از تکنولوژی فشرده سازی برای پشتیبانی از نرخ انتقال داده های بی سیم پایین مورد نیاز دستگاه هایی با منابع محدود بهره می برد.
- RPL – پروتکل IPv6 بردار فاصله برای LLN ها (شبکه های کم قدرت و از دست رفته) اجازه می دهد بهترین مسیر ممکن در یک شبکه پیچیده از دستگاه های با قابلیت های متنوع پیدا شود.
- CoAP – این پروتکل ارتباطات را برای دستگاه های ساده، معمولا دستگاه هایی که نیاز به نظارت از راه دور شدید دارند، پشتیبانی می کند.
شبیه ساز شبکه Cooja
Cooja، شبیه ساز شبکه ی Contiki، یک سیستم کامپایل شده ی Contiki را که توسط Cooja کنترل می شود، شبیه سازی می کند.
استفاده از Cooja بسیار ساده است. به سادگی با انتخاب منوی Motes و Add Motes → Create New Mote Type یک Mote جدید را ایجاد کنید. در پنجره ای که ظاهر می شود، نامی را برای Mote انتخاب می کنید، فرمور آن را انتخاب کنید و کامپایل شدن آن را تست نمایید.
سیستم عامل Contiki برای اینترنت اشیا
پس از ایجاد، با کلیک روی Create، می توانید mote را اضافه کنید. یک mote type جدید که می توانید به آن گره ها را متصل کنید، ظاهر می شود.
مرحله نهایی، نیاز به ذخیره ی فایل شبیه سازی دارد تا از آن در آینده بتوانید استفاده کنید.
امروزه، فن آوری تا جایی پیشرفته است که چندین دستگاه و گجت میتوانند بدون دخالت انسان، با یکدیگر در ارتباط و تعامل باشند.
این فن آوری ارتباطی این روزها به نام اینترنت اشیاء(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 دادههای انتقال و نتایج مربوط به اصالت سنجی را نشان میدهد.
ترسیم نتایج به شکل گراف
همانگونه که در شکل شکل ۷ نمایش داده شده است، تعداد وسیعی از پارامترها وجود دارد، شامل 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 میتوانند طراحی و پیاده سازی گردند را میبینید:
* همخوانی با همکنش پذیری و قابلیت میان-پروتکلی
* توسعهی سناریوهای اینترنت اشیاءِ آگاه نسبت به انرژی
* برنامه ریزی حساس به انرژِی و مسیریابی
* پیشبینی و دوری جستن از حملات مصرف انرژی
* تحلیلهای مادام العمر برای محیطهای توانمند اینترنت اشیاء
* پیادهسازیهای قابل استفادهی مجدد و چند رابط کاربری
جهت جمایت از ما از طریق لینک زیر میتوانید اقدام نمایید با تشکر