تماس با ما
 
بدان
 
امروز پنجشنبه ، ۱۳۹۹/۱۲/۱۴
 
کلیه مقالات

مدیریت دستگاه های IoT با استفاده از Blockchain Platform

Managing IoT Devices using Blockchain Platform

مدیریت دستگاه های IoT با استفاده از بستر Blockchain:

خلاصه :

از زمان شروع بیت کوین در سال 2008 [1] ، فناوری blockchain بعنوان فناوری انقلابی بعدی ظهور کرد.

اگرچه blockchain به عنوان یک فناوری اصلی بیت کوین شروع به کار کرد ، موارد استفاده از آن در بسیاری از مناطق دیگر از جمله امور مالی ، اینترنت اشیاء (IoT) ، امنیت و موارد دیگر گسترش می یابد.

در حال حاضر ، بسیاری از بخش های خصوصی و دولتی در حال واگذاری فن آوری هستند [3].

گذشته از آن ، با پیشرفت نرم افزار و سخت افزار ، آغاز IoT را شاهد خواهیم بود.

و آن دستگاه های IoT نیاز به برقراری ارتباط و همگام سازی با یکدیگر دارند.

اما در شرایطی که بیش از هزاران یا دهها هزار دستگاه IoT به هم متصل هستند ، انتظار داریم با استفاده از مدل فعلی سرویس دهنده-مشتری ممکن است در عین هماهنگی محدودیت ها و مشکلاتی داشته باشد.

بنابراین ، ما برای ساختن سیستم IoT استفاده از blockchain را پیشنهاد می کنیم.

با استفاده از blockchain ، می توان دستگاههای IoT را کنترل و پیکربندی کرد.

ما کلیدها را با استفاده از رمزنگاریهای کلید عمومی RSA که کلیدهای عمومی در Ethereum ذخیره می شوند و کلیدهای خصوصی در دستگاههای انفرادی ذخیره می شوند ، مدیریت می کنیم.

به طور خاص ، ما اتریوم را به عنوان سکوی blockchain خود انتخاب می کنیم زیرا با استفاده از قرارداد هوشمند آن ، می توانیم کد Turing-کامل خود را برای اجرای بالای Ethereum بنویسیم.

بنابراین ، ما به راحتی می توان پیکربندی دستگاه های IoT را مدیریت کرد و سیستم مدیریت کلیدی را ساخت.

حتی اگر ما به سادگی می توانیم از اکانت به عنوان یک سیستم مدیریتی کلیدی استفاده کنیم ، که اکثر پلتفرم های blockchain از آن پشتیبانی می کنند ، تصمیم داریم از Ethereum استفاده کنیم زیرا می توانیم سیستم را به روشی دقیق تر مدیریت کنیم.

برای اثبات یک مفهوم ، ما به جای یک سیستم کامل از سیستم IoT که متشکل از هزاران دستگاه IoT است ، از چند دستگاه IoT استفاده می کنیم.

اما در مطالعه بعدی ما می خواهیم یک سیستم IoT کاملاً مقیاس با استفاده از blockchain بسازیم.

مقدمه :

از زمان ظهور بیت کوین در سال 2008 که توسط Satoshi Nakamoto آغاز شد [4] ، بسیاری از افراد روی بیت کوین سرمایه گذاری یا حدس و گمان می کردند.

در حالی که بیت کوین خود از اهمیت اقتصادی ، فلسفی و فنی برخوردار است ، همه آن انقلاب ها بدون داشتن blockchain امکان پذیر نیست ، یک دفترچه توزیع شده ، که یک بخش اساسی از بیت کوین است.

پس از موفقیت بیت کوین ، بسیاری از ارزهای رمزنگاری دیگر پدیدار شدند [5] ، که بدیهی است در بالای فناوری blockchain ساخته شده است.

نه تنها ارزهای رمزپایه بلکه سایر زمینه ها سازگار با blockchain هستند [6].

همچنین ، در حالی که بیت کوین یک موفقیت بزرگ بود ، اما محدودیت هایی هم دارد [7].

اول از همه ، دوره تولید بلوک آن حدود ده دقیقه است [8] ، که برای انجام معاملات نسبتاً طولانی است.

دوم ، در حالی که می تواند معاملات را به عنوان UTXO [9] (خروجی معاملات بدون هزینه) نگه داشته و از اسکریپت پشتیبانی کند [10] ، اما نمی تواند از حلقه ها استفاده کند.

به عبارت دیگر ، تورینگ کامل نیست [10،11].

با توجه به این محدودیت ها ، اتریوم به بازی می رود.

اتریوم با حدود 12 دوره بلوک دوم [11] به توسعه دهندگان اجازه می دهد تا قرارداد هوشمند بنویسند [12].

به عبارت دیگر ، توسعه دهندگان می توانند برنامه ای بنویسند که بتواند در بالای اتریوم اجرا شود.

با توجه به اینکه این برنامه در blockchain اجرا شده است ، توسعه دهندگان و کاربران می توانند فرض کنند که بدون مجوز قابل تغییر نیست و در Ethereum شفاف است.

به بیان ساده تر ، می توانیم از اتریوم به عنوان یک سیستم محاسبات عظیم استفاده کنیم.

با استفاده از اتریوم ، می توان دستگاههای IoT را پیکربندی کرد.

ما می توانیم زیرساخت های کلید عمومی را به منظور تأیید اعتبار مدیریت کنیم.

دستگاه های IoT می توانند برای بروزرسانی رفتار خود به اتریوم اعتماد کنند.

با آغاز دوره IoT ، بسیاری از حوزه ها در حال تطبیق IoT هستند [13].

مکانهایی که بیش از صدها دستگاه به آن نیاز دارند مانند کارخانه ها در تلاشند از چنین فناوری استفاده کنند [14].

اما مواردی وجود دارد.

اول ، با توجه به اینکه بیش از صدها دستگاه به هم وصل شده اند ، همگام سازی همه دستگاه ها یک دردسر است.

دوم اینکه ، دقیقاً مانند هر مدل سرویس دهنده-مشتری ، اگر سرور آسیب پذیر باشد ، تمام دستگاه های تکیه گاه دچار مشکل خواهند شد.

با این حال با استفاده از blockchain در IoT ، دستگاه های IoT می توانند به دلیل داشتن دفترچه توزیع شده ، به راحتی با سایر دستگاه ها همگام شوند.

همچنین ، با استفاده از الگوریتم اجماع آن ، جعل داده ها در blockchain یا انجام انکار سرویس (DOS) دشوار خواهد بود ، مگر اینکه موارد ذاتی از جمله مشکلات مربوط به OPQLE ​​وجود داشته باشد [15].

بنابراین ما می توانیم از Ethereum برای مدیریت دستگاههای IoT استفاده کنیم.

با استفاده از قرارداد هوشمند در اتریوم ، می توانیم كدی را بنویسیم كه رفتارهای دستگاههای IoT را تعریف كند.

ما همچنین می توانیم زیر ساخت های کلید عمومی را با قرارداد هوشمند ایجاد کنیم تا مهاجمان مخرب نتوانند بر سیستم مدیریت اتریوم کنترل کنند.

در ابتدا ، اثبات مفهوم را شروع می کنیم ، که شامل چند دستگاه IoT با استفاده از Raspberry Pi و یک تلفن هوشمند است.

پس از اتمام مدل ، دوست داریم سیستم IoT کاملاً مقیاس را با استفاده از اتریوم بسازیم.

II- کار مرتبط:

الف - اتریوم:

پیشنهاد شده توسط Vatalik Buterin در سال 2013 ، اتریوم یک پلت فرم محاسباتی توزیع شده مبتنی بر blockchain است [7،16،18].

بر خلاف blockchain های قبلی مانند بیت کوین ، می تواند به عنوان یک کامپیوتر کار کند ، حتی اگر عملکرد نسبت به بیشتر رایانه های فعلی کندتر باشد از آنجا که مدت زمان معاملاتی در حدود 12 ثانیه است.

اما ، به دلیل اینکه زبان خاص خود را دارد مانند Solid یا مار [13] ، به برنامه نویسان اجازه می دهد تا یک برنامه را بنویسند و گردآوری کنند.

پس از گردآوری ، می تواند روی دستگاه مجازی اتریوم اجرا شود [14].

درست مانند هر محیط محاسبات دیگری ، به محض تهیه کامپایل ، کد کامپایل شده به opcode و سپس binary ترجمه می شود که در محیط ماشین مجازی Ethereum اجرا خواهد شد.

بنابراین اتریوم از این نظر بی نظیر است که سیستم محاسبات را با blockchain ترکیب می کند.

این کار بسیار مهم است زیرا این امکان را به توسعه دهندگان می دهد که کدی را بنویسند که بتواند روی blockchain اجرا شود.

از آنجا که کار با سوء استفاده و دستکاری کد به سختی دشوار خواهد بود ، کاربرانی که به کد نوشتاری تکیه می کنند تقریباً تضمین می کنند که همانطور که انتظار دارند رفتار کنند.

حتی اگر حملات مانند DAO یا محرومیت محاسباتی از سرویس به تازگی اتفاق افتاده است ، این امر به دلیل آسیب پذیری های کد قرارداد هوشمند یا قیمت بنزین اوکد و آسیب پذیری در اصول اولیه blockchain یا خود اتریوم نبوده است.

بنابراین هنگامی که سیستم تثبیت شود و بالغ شود ، به یک سیستم قوی تر تبدیل می شود.

با توجه به اینکه سیستم تثبیت شده است ، می توان از آن در دامنه های وسیعی استفاده کرد.

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

خدمات رأی گیری می تواند به راحتی با اطمینان قاطع انجام شود که نتیجه دستکاری یا جعل نشده باشد.

بنابراین بسیاری از شرکت ها ، صنایع و افرادی که سعی در یافتن موارد استفاده خود از اتریوم دارند [17].

III- مدیریت دستگاه های IOT با استفاده از سایر موارد:

در این بخش ، ما می خواهیم در مورد نحوه مدیریت دستگاههای IoT با استفاده از اتریوم بحث کنیم.

الف- سناریو:

همانطور که قبلاً ذکر شد ، ما به جای صدها دستگاه از چند دستگاه IoT استفاده کردیم تا اثبات یک مفهوم را انجام دهیم.

به طور خاص ، ما از یک تلفن هوشمند و سه Raspberry Pis استفاده می کنیم.

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

با استفاده از تلفن هوشمند ، کاربر می تواند خط مشی را تنظیم کند.

به عنوان مثال ، کاربر می تواند دستگاه را تنظیم کند تا هنگامی که میزان مصرف برق از 150 کیلو وات استفاده کند ، حالت صرفه جویی در مصرف انرژی را روشن کند.

وقتی کاربر پیکربندی را از طریق تلفن هوشمند تنظیم می کند ، داده ها به شبکه Ethereum ارسال می شوند.

در این میان ، دستگاه هایی مانند لامپ یا کولر گازی مقادیر خط مشی را بطور دوره ای از اتریوم بازیابی می کنند.

همچنین متر میزان مصرف برق را ردیابی کرده و آن را در اتریوم به روز می کند.

بنابراین سه فرآیند مختلف به طور هم زمان اتفاق می افتد.

تصویر زیر به عنوان نمودار سناریوی ما نشان داده شده است.

B- مدل اتریوم:

برخلاف مدل سرویس دهنده-مشتری ، اتریوم یک پلتفرم محاسباتی توزیع شده [7،16،18] است ، بدین معنی که کلیه اشخاص شرکت کننده شامل بخش هایی از blockchain اتریوم هستند.

گرچه شکل 1 به سادگی به نظر می رسد شبیه به مدل سرویس دهنده-مشتری ، مدل واقعی با این مفهوم متفاوت است که هر موجود در blockchain حاوی blockchain جزئی یا کامل است.

به جای ارسال به سرور ، هر دستگاهی که به روزرسانی یا انجام معاملات می کند شامل Ethereum است که در شکل 2 نشان داده شده است.

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

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

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

ج- قرارداد هوشمند:

یکی از مهمترین جنبه های اتریوم ، عقود هوشمند است.

اولین مفهومی که نیک سازو در سال 1994 معرفی کرد [19] ، قرارداد هوشمند باعث ایجاد نوآوری در blockchain شد.

اتریوم از قرارداد هوشمند در بالای blockchain استفاده می کند تا توسعه دهندگان بتوانند برنامه ای را برای blockchain بنویسند.

به عبارت دیگر ، با استفاده از قرارداد هوشمند می توانیم از Ethereum به عنوان بستر محاسباتی استفاده کنیم.

در اتریوم زبانهای برنامه نویسی مانند Solid ، مار ، و LLL وجود دارد [20].

در این مرحله ، استحکام پرکاربردترین زبان و کامپایلر است [20].

این زبان سطح بالا پس از توسعه ، در کدهای بایت گردآوری شده است.

و این کدهای بایت روی Ethereum مستقر می شوند.

و از آنجا که کدهای بایت به سادگی لیستی از کد های رمز هستند ، گره Ethereum پس از اجرای قرارداد مربوطه از حساب معتبر ، آن دستورالعمل ها را در کد دنبال می کند.

برای آزمایش خود ، ما سه قرارداد هوشمند نوشتیم.

ما یک قرارداد نوشتیم که ارزش متر را ردیابی می کند.

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

برای تأیید اعتبار حساب معتبر ، در هر دو قرارداد نیز امضا و کلید عمومی را اضافه کردیم.

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

قرارداد متر:

در یک قرارداد هوشمند ، متر به طور دوره ای موجب صرفه جویی در مصرف برق می شود.

دقیقاً ، Raspberry Pi حاوی حساب Ethereum به عنوان یک دستگاه IoT برای نظارت بر متر عمل می کند و مقدار را به Ethereum ارسال می کند.

برای نشان دادن هویت فرستنده ، فرستنده باید کلید عمومی و امضاء خود را به همراه مصرف برق ارسال کند.

همانطور که در شکل 3 مشاهده می شود ، منطق ساده است.

دستگاه اندازه گیری متشکل از blockchain اتریوم به راحتی می تواند مقادیر ورودی ارزش ، publicKey و امضا را امضا و ارسال کند.

از آنجا که هر قرارداد آدرس منحصر به فرد خود را دارد ، ما می دانیم که داده ها را از کجا ارسال کنیم.

برای استفاده از روش بروزرسانی ، باید مقادیر ورودی را رمزگذاری کنیم تا بتواند روی دستگاه مجازی Ethereum کار کند.

به عنوان مثال ، اگر می خواهیم به روزرسانی (300 ، "deadbeef" ، "babebabe") را اجرا کنیم ، باید آن را به صورت دودویی رمزگذاری کنیم.

اگر آن را رمزگذاری کنیم ، موارد زیر را دریافت می کنیم:

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

برای اجرای بروزرسانی (int ، بایت ، بایت) ، باید آن را با استفاده از Keccak-256 هش کنیم و چهار بایت اول خروجی hashed را بگیریم [21].

به عبارت دیگر ، ابتدا به چهار بایت Keccak256 ("بروزرسانی (int ، بایت ، بایت)") نیاز داریم ، که این f1d38ccb است.

12c 300 را نشان می دهد.

و "deadbeef" و "babebabe" ورودی های بایت ما هستند.

مقادیر بین جبران نشانه ها و طول بایت.

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

قرارداد خط مشی:

در کنار متر ، باید سیاست هایی را تنظیم کنیم.

همانطور که در سناریو ذکر شد ، ما می خواهیم سیاست هایی را برای تهویه هوا و لامپ برق تنظیم کنیم.

با توجه به اینکه ما سیاست تهویه هوا را به عنوان 150 کیلو وات تنظیم می کنیم ، پس از رسیدن متر به 150 کیلووات ، سیستم تهویه هوا به سادگی از حالت عادی به حالت صرفه جویی در انرژی سوئیچ می کند.

همین سناریو در مورد نور لامپ نیز صدق می کند.

مشابه قرارداد متر ، خط مشی باید ثبت شود.

اما به جای متر ، از تلفن هوشمند برای ثبت نام استفاده می کنیم.

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

درست مانند شکل 3 ، منطق شکل 5 تقریباً یکسان است.

و ما سیاست لامپ را کنار می گذاریم زیرا تقریباً یکسان است.

وقتی حساب Ethereum خط مشی را با کلید عمومی و امضا رمزگذاری کرده و آنها را به اتریوم ارسال می کند ، این مقادیر در قرارداد ثبت می شوند.

مدیریت کلیدی:

با توجه به اینکه تمام این قراردادها در اتریوم در حال اجرا هستند ، دستگاه های IoT مانند سیستم تهویه هوا یا لامپ می توانند مقادیر خود را از قرارداد متر و پالیسی بازیابی کنند.

در مقادیر حاصل از قرارداد متر ، آنها بررسی می کنند که آیا ورودی ها با استفاده از کلید عمومی و امضا معتبر هستند.

به طور دقیق ، ما از الگوریتم RSA استفاده می کنیم ، که تلفن های هوشمند و کنتورهای هوشمند کلیدهای مخفی خود را نگه می دارند.

در مورد مقادیر قراردادهای سیاست ، آنها همچنین بررسی می کنند که آیا ورودی ها با استفاده از کلید عمومی و امضا معتبر هستند.

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

حتی اگر امکان استفاده از اکانت اتریوم به عنوان زیرساخت کلید عمومی وجود داشته باشد ، زیرا مبتنی بر ECDSA است [22] ، ما تصمیم داریم که بخاطر ریزگرد بودن ، از خود استفاده کنیم.

IV- نتایج شبیه سازی و بحث:

ما قراردادهای هوشمند را در اتریوم مستقر کردیم.

پس از استقرار قراردادها ، بعد از رمزگذاری شروع به تهیه ورودی کردیم.

هنگامی که ما با موفقیت به روزرسانی / ثبت مقادیر در Ethereum ، ما قادر به بازیابی مقادیر از اتریوم.

نمونه اولیه ما به شرح زیر است.

همانطور که در شکل 6 مشاهده می شود ، ما از Raspberry Pis برای شبیه سازی سیستم IoT استفاده کردیم.

ما متر را تنظیم کردیم که به طور دوره ای به شبکه اتریوم به روز می شود.

ما برای تنظیم سیاست های تهویه هوا و LED از تلفن هوشمند استفاده کردیم.

و این دو دستگاه مطابق سیاستهای داده شده از اتریوم پاسخ می دهند.

در روند توسعه ، متوجه می شویم که برخی نقاط ضعف در blockchain Ethereum وجود دارد.

اول از همه ، حتی اگر حدود 12 ثانیه زمان معامله داشته باشد ، اما هنوز هم برای برخی از دامنه ها به اندازه کافی سریع نیست.

برای حوزه حساس به زمان ممکن است استفاده از چنین فناوری دشوار باشد.

دوم اینکه ، از آنجا که مشتری نور در این مرحله در Ethereum پشتیبانی نمی شود ، یا باید از پروکسی استفاده کنیم یا از یک حافظه بزرگ برای ذخیره کل blockchain استفاده کنیم.

استفاده از پروکسی ممکن است آسان باشد.

اما ما امنیت را به خطر می اندازیم زیرا یک شخص ثالث درگیر است.

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

بنابراین ما باید در مورد راه حل های ضعف ها بیشتر تحقیق کنیم.

نتیجه گیری :

در این مقاله ، راهی برای مدیریت دستگاههای IoT با استفاده از Ethereum ، سکوی محاسباتی blockchain پیشنهاد شده است.

ما برای صرفه جویی در داده های حاصل از متر و تلفن های هوشمند قراردادهای هوشمند می نویسیم.

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

و کولر گازی و لامپ لامپ دائماً مقادیر موجود در اتریوم را برای به روزرسانی دستگاههای خود بررسی می کند.

در صورت لزوم ، آنها حالت خود را از حالت عادی به صرفه جویی در انرژی تغییر می دهند.

به عنوان اثبات مفهوم ، ما با تعداد کمی دستگاه شروع می کنیم.

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

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

این کار توسط موسسه توسعه فناوری اطلاعات و ارتباطات (IITP) تأمین شده توسط دولت کره (MSIP) پشتیبانی شده است.