بخشی از مقاله
چکیده
گوشیهای هوشمند با داشتن کاربردهایی شبیه به کامپیوتر و قابلیت حمل به یکی از مهمترین وسایل در زندگی مردم تبدیل شدهاند و در کنار این استفاده گسترده، بدافزارهای آنها نیز به سرعت در حال افزایش هستند. از این رو امروزه ایجاد امنیت در گوشیها از اهمیت بالایی برخوردار است که متاسفانه علاوه بر واقف نبودن و عدم توجه کاربران به این امر، محدود بودن منابع گوشی - مانند قدرت پردازش - پیادهسازی چندین راه حل امنیتی همزمان را بر روی گوشی بسیار مشکل میسازد.
یکی از بهترین راهحلها استفاده از ابر و محیط شبیهساز در آن است. در روش پیشنهادی تمامی اطلاعات و ورودیها و خروجیهای گوشی برای بررسی به محیط شبیهساز تعبیه شده در ابر ارسال میشود و نتایج به گوشی اعلام می شود. ایجاد امنیت و محرمانگی در دادههای ارسالی بین گوشی و ابر با استفاده از رمزنگاری و تسهیم راز علاوه بر شناسایی بهتر بدافزارها از مزایای روش پیشنهادی میباشد.
-1مقدمه
با توجه به پیشرفت روزافزون تکنولوژی در کامپیوترها و گوشیهای تلفن همراه، نیاز به امنیت و تسریع در انجام کارها بیشتر احساس میشود. در گذشته ما از تلفن همراه فقط برای برقراری تماس و یا فرستادن پیامک استفاده میکردیم، اما با پیشرفتهای صورت گرفته، اکنون از تلفنهای همراه بجز موارد ذکر شده، برای اتصال به اینترنت، خریدهای اینترنتی، دریافت فایل با استفاده از بلوتوث، مکان یابی و غیره استفاده میشود. با توجه به این نکته که گوشیهای هوشمند از ساختار نرم افزاری شبیه به کامپیوترهای شخصی استفاده میکنند، آنها هم مانند کامپیوتر در برابر ریسکهای امنیتی آسیبپذیر هستند.
از این رو پیوسته باید هوشیار و محتاط باشیم تا تلفن همراه و اطلاعات ما در برابر حملات بدافزارها و مهاجمان سایبری در امان بماند. بدافزارهای گوشیها را میتوان به دو دسته عمده تقسیمبندی کرد: - 1 بدافزارهایی که متناسب با قابلیتهای سختافزاری و نرمافزاری گوشیها طراحی میشوند، - 2 بدافزارهایی که بصورت عمومی و مشترک با بدافزارهای کامپیوتر هستند. نکته مهم و قابل توجه این است که این بدافزارها میتوانند علاوه بر حمله به حریم خصوصی و امنیت گوشیهای کاربران، حملات هماهنگ در مقیاس بزرگ بر روی زیرساختهای ارتباطی انجام دهند .[1]
ابتداییترین و سادهترین کارهای صورت گرفته جهت شناسایی و مقابله با بدافزارها، طراحی آنتی ویروس - یا در حالت کلی برنامههای کاربردی امنیتی - و نصب و اجرای آنها بر روی گوشیها است. اما همانطور که اشاره شد اجرای آنتیویروسها - حتی آنتیویروسهایی که مخصوص گوشی طراحی شدهاند - با وجود منابع محدود گوشیها کارامد نیست. به عنوان مثال آنتیویروس موبایل گارد1 که آنتیویروسی برای گوشیهای اندرویدی است برای اسکن یک پوشه 200 مگابایتی روی یک گوشی اندروید %10 از شارژ باتری و 40 دقیقه زمان نیاز دارد .
[1] در اینجا توجه به نتایج یک آزمایش که در سال 2012 توسط Symantec صورت گرفته نیز بسیار تامل برانگیز است. در این آزمایش برای تشخیص یک بدافزار بر روی گوشی هوشمند از 9 آنتیویروس مختلف استفاده کردند و در این میان فقط یکی از آنها توانست بدافزار را تشخیص دهد .[2] حال این سوال مطرح میشود که آیا با ظرفیتهای یک گوشی هوشمند در حال حاضر، داشتن هر 9 آنتیویروس بر روی آن امکانپذیر است؟
با توجه به اطلاعات و دادههای زیاد، برنامههای کاربردی مختلف و جدید، تحلیل و بررسی دادهها و همچنین محدودیتهای پردازش، حافظه، ذخیرهسازی و منابع باتری در گوشیهای هوشمند که یک چالش کلیدی در اجرای راهحلهای مؤثر امنیتی بر روی گوشیهای هوشمند است؛ نیاز به محیط خارج از محدوده گوشیهای هوشمند - محیطی مانند ابر - جهت پیادهسازی راهحلهای امنیتی بیشتر احساس میشود .[3] ساختار ادامه مقاله به شرح زیر میباشد. در بخش 2 پژوهشهای مرتبط بررسی میگردد و در بخش 3 روش پیشنهادی برقراری امنیت در گوشیهای هوشمند مبتنی بر ابر شرح داده میشود و در ادامه در بخش 4، ارزیابی روش پیشنهادی را خواهیم داشت. نتیجهگیری و کارهای آینده آخرین بخش این مقاله خواهد بود.
-2 پژوهشهای مرتبط
در [4] یک سرویس امنیت داده ارائه نمودند که دادهها و مدیریت امنیتی را بدون افشا شدن اطلاعات کاربر به ابر برون سپاری میکند. سرویس امنیت داده ارائه شده سربار مدیریت امنیتی را از سمت کاربر سیار حذف کرده و فقط بعضی اعمال رمزنگاری قبل از بارگذاری فایل روی ابر توسط او انجام میشود. انجام همین اعمال رمزنگاری که شامل ارزیابیهای جفت شدن عظیم و محاسبات نمایی میباشد باعث مصرف انرژی قابل توجهی در دستگاه سیار خواهد شد.
در [5] یک پروتکل سرویس امنیتی برای گوشیهای هوشمند با استفاده از مفهوم رایانش ابری سیار ارائه نمودند. در این روش از احراز هویت استفاده شده و به وضعیت دستگاه سیار و شبکه توجه میشود. همچنین همواره لیست دادهها جهت عاری بودن از دادههای مخرب بررسی میشود. روش کار به این صورت است که وضعیت گوشی هوشمند به سرور تایید کننده فرستاده میشود تا استفاده از سرویسهای رایانش ابری کنترل شود، یعنی برای سرویسدهی به وضعیت دستگاه سیار توجه میشود.
سرور تایید کننده نیز برحسب شرایط و سیاستهای از پیش تعریف شده پاسخ تایید یا رد را ارسال می کند. به عنوان یک سناریو اگر کاربر دستگاه سیار درخواست داده داشته باشد، این درخواست به سرور تایید کننده ارسال میشود و در اینجا چک میشود که لیست داده فاقد دادههای مخرب باشد. چک کردن لیست دادهها جهت عاری بودن آنها از دادههای بدخواهانه به صورت موثری در این روش انجام میشود که موجب تامین امنیت در سطح مناسبی میشود.
در [6] نیز روشی ارائه نمودند که از رمزنگاری نامتقارن برای تامین محرمانگی و جلوگیری از هک شدن دادهها استفاده میکرد. البته استفاده از رمزنگاری نامتقارن معایبی به همراه دارد که از آن جمله میتوان به مصرف توان و پهنای باند بالا اشاره کرد. همچنین به این روش حمله جعل سرور نیز وارد میباشد. در [1] برای شناسایی بدافزارهای موبایل از محیط ابر استفاده شده است، در این روش عامل سرویسگیرنده تمام اطلاعات وروردی و خروجی را ضبط کرده و برای ابر ارسال میکند.
در محیط شبیهسازی شده در ابر این اطلاعات پردازش شده و درصورت وجود خطا یا مشکلی به عامل سرویس-گیرنده اطلاع داده میشود. به این دلیل که دادهها در محیط ابر و توسط چندین برنامه امنیتی تحلیل میشوند، امکان تشخیص دادههای مخرب افزایش مییابد. البته در این مقاله، در مورد چگونگی نحوه ارسال دادهها به ابر و ارسال هشدار از ابر برای عامل سرویس گیرنده صحبتی نکردهاست.
در[7] نیز روشی ارائه کردند که از Secret Sharing برای امنیت دادهها استفاده میکند، به این صورت که دادهها بجای اینکه بر روی فقط یک ابر ذخیره ذخیره شوند، به n قسمت تقسیم شده و بر روی چندین ابر مختلف قرار میگیرند، با اینکار حتی اگر متخاصم بتواند به یک ابر دسترسی داشته باشد، نمیتواند به داده ما دست یابد. البته با توجه به این نکته که نیاز به چندین ابر مختلف داریم، هزینه کاربر افزایش مییابد.
در [8] نیز یک طرح احراز هویت مبتنی بر رمز عبور ارائه شده که به صورت مناسبی از ویژگی سیستم رمزنگاری منحنی بیضوی استفاده کرده است. طرح فوق علاوه بر تامین امنیت دارای سربار پردازشی و ارتباطی بسیار پایینی نیز میباشد که باعث شده این طرح برای دستگاههای سیار سودمند باشد. در روش پیشنهادی ما، محرمانگی و صحت دادهها مورد توجه قرار میگیرد. در این روش از رمزنگاری، توابع درهمساز و فشردهسازی استفاده میشود که باعث برقراری امنیت بین گوشی و ابر میشود. همچنین باتوجه به ذخیرهسازی و شناسایی بدافزارها بر روی ابر، مشکل حافظه کم و قدرت پردازش محدود گوشیهای هوشمند نیز حل میشود. که در بخشهای آتی بطور مفصل در مورد روش صحبت خواهد شد.
-3 روش پیشنهادی
در ابتدا معماری سطح بالایی از روش برقراری امنیت در گوشیهای هوشمند در ابر را بصورت اجمالی معرفی کرده و سپس به بررسی روش پیشنهادی میپردازیم. گوشی هوشمندی که یک نرم افزار به نام عامل سرویس گیرنده2 بر روی آن نصب و در حال اجراست، یک سرور نماینده3 و یک شبیهساز در محیط ابر مولفههای اصلی در این روش هستند [1]، شکل شماره . - 1 - نخستین بار که گوشی در ابر ثبت نام میشود، نرم افزار عامل سرویس گیرنده بر روی گوشی نصب میشود. عامل همه اطلاعات مورد نیاز ماکت دستگاه ثبت نام شده در محیط شبیهسازی شده، ورودیهای کاربر و سنسورها از رابطهای دستگاه را ضبط و ثبت میکند [1] که برای کاهش مصرف پهنای باند، بهتر است عامل کلاینت فقط ورودیهای دستگاه را ضبط کند و آنها را برای شبیه ساز ارسال کند.
در آن سوی ارتباط، یک شبیهساز در محیط ابر قرار دارد که یک ماکت شبیهسازی شده از هر دستگاه ثبت نام شده را اجرا میکند. این کپی شبیهسازی شده - ماکت - دقیقا شامل سیستم فایلها و سیستم عامل مربوط به گوشی هوشمند اصلی است. ماکت بطور مداوم و همزمان خودش را از طریق دریافت ورودیهای کاربر توسط عامل سرویس گیرنده متناظر با گوشی اصلی، همگام نگه میدارد .[1] البته مهمترین کاری که در شبیهساز اتفاق میافتد، اجرای موازی راهحلهای امنیتی مختلف مانند آنتیویروسها و تشخیصدهندههای نفوذ برای محافظت از گوشی هوشمند در برابر تهدیدات امنیتی است درحالیکه به علت محدود بودن منابع گوشی، نمیتوان از راه حلهای امنیتی یا آنتیویروسهای مختلف بر روی گوشی استفاده کنیم.
شبیهساز هنگام شناسایی ویروس یا عوامل مخرب یک هشدار به عامل سرویس گیرنده مربوطه جهت اجرای اقدامات مورد نیاز میفرستد. در این ساختار، سرور نماینده ترافیکهای ورودی یک دستگاه را برای ماکت شبیهسازی شده مربوط به خودش در داخل ابر تکرار میکند. همچنین ترافیک خروجی ماکت را برای اجتناب از تکرار درخواست بلاک میکند - مثلا برای جلوگیری از خرید مجدد یک آیتم از یک وب سایت فروشگاه آنلاین - . پس از آشنایی با مولفههای معماری روش پیشنهادی، اکنون به بررسی مکانیزم شناسایی بدافزارها در گوشیهای هوشمند در محیط ابر میپردازیم.
میتوان اطلاعات ورودی و خروجی گوشیها را به دو دسته کلی تقسیمبندی کرد: - 1 اطلاعات انتقالی از طریق اینترنت، - 2 اطلاعات انتقالی از طریق بلوتوث، usb و غیره. برای حالت اول، که اطلاعات و بدافزارهایی از طریق اینترنت میتوانند وارد گوشی شوند؛ بین شبکه اینترنت، ابر و گوشی، یک سرور نماینده قرار دارد. یعنی وقتی کاربر گوشی بر روی یک لینک و یا صفحه اینترنتی کلیک کند، سرور یک نمونه برای گوشی و یک نمونه از آن را برای ابر میفرستد.
همزمان هم گوشی و هم ابر اطلاعات را دارند، یعنی سرور یک نسخه از پاسخهای برگشتی را علاوه بر گوشی به ابر نیز ارسال میکند تا فعالیتهای معمول اینترنتی کاربر مختل نشود. در اینجا برای حفظ محرمانگی و صحت اطلاعات جهت جلوگیری از جعل و دستکاری، از یک پروتکل ارتباطی امن، بین ابر و ماکت دستگاه در شبیه ساز استفاده میشود. حال ابر اطلاعات دریافتی را اسکن میکند و اگر ویروس و یا مورد مشکوکی را تشخیص داد، به گوشی اطلاع میدهد. در اکثر مواقع شبیه ساز اقدامات لازم - مانند حذف فایل آلوده و غیره - را نیز برای گوشی، ارسال میکند.
برای حالت دوم که در مورد اطلاعاتی است که از طریق بلوتوث، usb و غیره وارد گوشی هوشمند میشوند، عامل سرویس گیرنده که بر روی گوشی نصب میشود تمام ورودیها را ثبت کرده و به شبیه ساز در ابر جهت تجزیه و تحلیل ارسال میکند. برای جلوگیری از جعل و حمله فرد میانی دادهها را باید قبل از ارسال رمز کنیم تا کسی در بین راه نتواند به آن دسترسی داشته باشد و محرمانگی و صحت آن به خطر بیفتد. از سوی دیگر جهت احراز هویت و اطمینان از ابر، کلید رمزنگاری را با استفاده از روش تسهیم راز حد آستانهای [9] بین ماکت دستگاه در ابر و فراهم کنندگان ابر تقسیم کرده و در زمان رمزگشایی با گردآوری آنها توسط ماکت به کلید میتوان دست یافت.
در اینجا، برای رمزگشایی داده نیاز به حضور گروهی از افراد مجاز - t - - که زیر مجموعه مجاز نیز نامیده میشوند - از مجموعه کل افراد مرتبط با موضوع - n - است؛ که سهم راز - همان کلید رمزگشایی - را که در ابتدا بین آنان تقسیم شده است را ارائه دهند. روش پیشنهادی در این حالت از سه مرحله تعیین پارامترهای اولیه، ارسال اطلاعات به محیط شبیهساز و تحلیل اطلاعات ارسالی تشکیل شده است. همچنین میتوان مرحله مستندسازی و بایگانی اطلاعات اسکن شده بر روی محیط شبیهساز را نیز در نظر گرفت که این مرحله جهت استناد در آینده میتواند کاربرد داشته باشد. در ادامه به شرح کاملتر مراحل میپردازیم.
- 1 تعیین پارامترهای اولیه
پس از ثبت نام و ایجاد ماکت دستگاه گوشی در ابر و نصب نرم افزار عامل سرویس گیرنده بر روی گوشی هوشمند، ابتدا عامل سرویس گیرنده و ماکت دستگاه یک کلید خصوصی برای خود انتخاب کرده و پس از محاسبه کلید عمومی، آن را ثبت میکنند. حال با استفاده از روش توافق کلید دیفی هیلمن [10]، یک کلید مشترک اصلی بین عامل سرویس گیرنده و ماکت توافق میشود.همچنین عامل سرویس گیرنده یک چند جملهای تصادفی، f - x - ، حداکثر از درجه t را انتخاب میکند و بر اساس آن سهم افراد را محاسبه و پس از رمزکردن با کلید عمومی افراد، بصورت محرمانه برای آنان ارسال میکند.
سپس یک میدان گالوا GF - p - ، که p عدد تصادفی اول بزرگی است، را انتخاب کرده و سپس پارامتر عمومی g GF - p - را انتخاب کرده و بصورت عمومی اعلام میکند. حال کلید رمزنگاری k برابر است با gf - 0 - که عامل سرویس گیرنده از آن برای رمز کردن اطلاعات ارسالی به ابر استفاده میکند و برای تولید کلید هر بار کافیست فقط یک g جدید انتخاب و اعلام شود. شرح کامل مراحل به همراه فرمولهای آن در شکل - 2 - آمده است.
- 2 ارسال داده به ابر
پس از جمعآوری داده های ورودی و خروجی گوشی، عامل سرویس گیرنده جهت حصول اطمینان از صحت آنها در حین ارسال، ابتدا با استفاده از توابع درهمساز یکطرفه چکیده گرفته و سپس فایلها را برای کمتر شدن حجم آنها فشرده میکند. حال مقدار چکیده را به اطلاعات فشرده شده الحاق کرده و سپس با کلید k رمز و ارسال میکند. در اینجا بهترین الگوریتم درهمساز SHA-512، بهترین روش رمزنگاری متقارن AES [6]، بهترین روش رمزنگاری نامتقارن مبتنی بر [11] ECC و بهترین روش فشرده سازی [1] Run-Length Encoding - RLE - که یک الگوریتم فشرده سازی بدون اتلاف داده است استفاده میشود. مراحل در شکل - 1 - نشان داده شده است.
- 3 تحلیل اطلاعات
پس از دریافت بسته ارسالی، در اولین گام برای رمزگشایی هر سه نفر از مجموعه افراد مجاز بصورت جداگانه سهم خود را محاسبه و به ماکت دستگاه گوشی در ابر ارسال میکنند. همانطور که اشاره شد یکی از اعضای این مجموعه حتما ماکت گوشی میباشد.