دیکشنری حملات در رمزنگاری

دیکشنری حملات در رمزنگاری

دیکشنری حملات در رمزنگاری

حملات مطرح در سیستم های رمزنگاری :

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

(پست مشابه : واژه نامه امنیت سایبری)

حمله شماره ۱ :

حمله سرقت تایید کننده یا حمله خودی :

(Stolen verifier attack OR Insider attack) :

در اغلب احراز هویت های مبتنی بر رمز عبور ، سرور اطلاعات مشتریان را در پایگاه داده خود ذخیره می کند (مانند کلمه عبور ، اطلاعات بیومتریک و…) و این کار به هدف احراز هویت مشتری بوسیله تایید کننده (verifier ) صورت می پذیرد .

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

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

 

حمله شماره ۲ :

حمله حدس زدن رمز عبور :

(Password guessing attack):

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

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

در این حمله به بررسی دو زیر حمله می پردازیم :

  • حمله فرهنگ لغت ، واژه نامه (dictionary attack) :

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

 

  • حمله نیروی نفوذی (Brute force attack):

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

 

  • حمله واقعه نگار (keylogger attack):

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

 

  • حمله درب پشتی (Back door):

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

حمله شماره ۳ :

حمله Denning –sacco attack :

یا حمله تعدد (multiplicity attack):

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

 

حمله شماره ۴ :

حمله خودداری از خدمات  DOS , DDOS)) :

حمله DOS  مخفف (Denial Of Service) و حمله DDOS مخفف (Distributed Denial Of Service) می باشد .در این حملات مهاجم ، از دسترسی کاربران مجاز به منابع مجاز جلوگیری می کند .

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

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

در هر دو حمله DOS ,DDOS هدف جلوگیری از ادامه فعالیت است اما تفاوت در منابع می باشد . در DOS مهاجم از یک منبع استفاده می کند ولی در DDOS مهاجم از چندین سیستم که در یک محیط گسترش یافته اند برای حمله استفاده می کند .

حمله شماره ۵ :

حمله اصلاح :

Modification attack  :

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

حمله شماره ۶ :

حمله تصدیق دوجانبه :

Mutual authentication :

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

 

حمله شماره ۷ :

حمله مردی در میانه :

Man – In – Middle attack  :

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

حمله شماره ۸ :

کلید نشست امنیتی :

Session key security  :

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

حمله شماره ۹ :

محرمانگی مناسب رو به جلو یا عقب :

perfect forward secrecy or perfect backward secrecy  :

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

حمله شماره ۱۰ :

شناخته شدن (لورفتن) کلید محرمانه :

Known – key secrecy  :

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

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

گردآورنده : مسعود معاونی

ایمیل جهت ارتباط : moaveni1@gmail.com

طراحی یک طرح احراز هویت امن مبتنی بر بیومتریک در چندسرورهای ابری (saru kumari 2016-2017)

دانلود مقاله اصلی :kumari2017

عنوان :

Design of a Provably Secure Biometrics-based Multi-cloud-server
Authentication Scheme
(طراحی یک طرح احراز هویت امن مبتنی بر بیومتریک در چند سرور ابری)

چکیده :

Big data و Cloud of Things دو موضوع داغ در جامعه تحقیقاتی هستند چرا که چالش های مهمی در این زمینه وجود دارد که عبارت است از طراحی راهکار امنیتی کارآمد برای دسترسی به منابع ، سرویس ها و داده ها بدون این که اطلاعاتی درباره حریم خصوصی کاربران به اَبر منتقل شود . یک راه حل ممکن راه اندازی احراز هویت کاربر برای چندین سرور ابری و طراحی یک سیستم خبره است که در آن کاربران به راحتی خدمات و منابع مورد نظر خود را بدست آورند .بیومتریک یک مکانیزم اعتبارسنجی می باشد که به صورت گسترده استفاده می شود بنابراین در این مقاله ما یک روش تایید هویت مبتنی بر بیومتریک را برای استقرار در محیط های چند سرویس دهنده ابری طراحی می کنیم .ما به منظور بهبود صحت در الگوهای بیومتریک از bio hashing استفاده می کنیم . سپس به آنالیز عملکرد و کارآیی آن پرداخته و برای طرح مان کاربردهایی را معرفی می کنیم .

کلمات کلیدی :

احراز هویت ، CoT ، چند سرور اَبری ، بیومتریک ، رمزنگاری منحنی بیضوی .
۱- معرفی :
در اینترنت اشیاء ما طیف گسترده ای از دستگاه های متصل به شبکه اینترنت را داریم که به ما اجازه اتصال ، هماهنگی ، محاسبه ، محاسبه و ارتباط بین دو دستگاه را در زمان واقعی بدون هیچ محدودیتی در جغرافیا را می دهند . [۱] دستگاه های IoT می توانند از سنسورها برای جمع آوری اطلاعات در اطراف خود استفاده کنند . ( به عنوان مثال حسگرهای که برای جمع آوری اطلاعات درباره غلظت دی اکسید کربن و منواکسید کربن استفاده می شوند و اطلاعات جمع آوری شده را به یک سرور مرکزی ارسال می کنند .
فناوری اینترنت اشیاء می تواند در مراقبت های بهداشتی (health care) ، کنترل منزل (home monitoring) ، خانه ها و شهرهای هوشمند (smart home/cities) (به عنوان مثال برای اهداف امنیتی و نظارتی) ، سکوهای نفتی به عنوان یک پلت فرم کنترلی و غیره مورد استفاده قرار می گیرند . با روند استقرار IoT بر روی اَبر (به عنوان اَبر اشیاء Cloud of Things ) و دیجیتالی شدن جامعه ما ، ما شاهد یک افزایش قابل توجهی در حجم ، تنوع ، سرعت و درستی داده ها (به عنوان مثال big data) می باشیم . شکل ۱ نمونه های را از یک فضای CoT نمایش می دهد .
در اکثر تکنولوژی های پرکاربرد ، امنیت یک نگرانی کلیدی است که باعث جلب توجه مشتری می شود و همین موضوع باعث شده جامعه پژوهش بخشی از فعالیت خود را به حوزه امنیت اختصاص بدهد . چندین طرح احراز هویت برای کاربران تاکنون پیشنهاد شده اند که برای محیط های تک سروری مناسب می باشند [۳-۱۱] . با این حال طرح های احرازهویت تک سروری برای استقرار در دنیای واقعی مناسب نمی باشند . به عنوان نمونه چنین طرح های (طراحی شده برای محیط های تک سروری) مقیاس پذیر نبوده و نمی توانند نیاز یک کاربر به نگهداری چندین شناسه/رمزعبور را در حافظه برای دسترسی به چند سرور به جهت دسترسی به خدمات مختلف را فراهم کنند . در واقع یک کاربر نیاز دارد که در هر سرور به صورت مجزا ثبت نام کند و تنها کاربر قابلیت استفاده از همان سرور را دارد . این همانند سیستم اولیه مجله Elsivier است که نویسنده می بایست در هر مجله ای با نقش های مختلف (نویسنده ، ویرایشگر ، منتقد) ثبت نام می کرد . در سال های اخیر Elsivier  به نوعی سرور تلفیقی (ترکیبی ؛ Consolidated ) مهاجرت کرده است که در آن یک کاربر فقط دارای یک حساب کاربری برای همه مجلات و نقش ها می باشد .
در چنین سیستم های سه عامل برای احراز هویت وجود دارد : i) چیزی که شما می دانید (به عنوان مثال برخی از اطلاعات محرمانه مانند رمز عبور) ii ) آن چه شما دارید (مثلا چیزی که در اختیار شما می باشد از قبیل یک کارت هوشمند) iii ) آن چه شما هستید (به عنوان مثال مشخصه های بیومتریک منحصربفرد مانند اثرانگشت(finger print) ، هندسه دست (hand geometry) ، عنبیه (iris) که پایه ای برای طراحی یک طرح احراز هویتی می باشند . عوامل اول و دوم مکمل یکدیگر هستند . بدین معنی که اگر آیتمی توسط برخی از عناصر شناخته شود تنها توسط اطلاعات محرمانه ای کاربر محافظت می شود و به طور کلی لو رفتن یک رمز محرمانه برای یک مهاجم به دلیل عدم دسترسی به آیتمی (مثلا اسمارت کارت) بی فایده است و حتی اگر بتواند آیتم مورد نظر را هم بدست آورد از آن جا که بیومتریک به راحتی قابل جعل نمی باشد مهاجم موفق نخواهد بود . در حقیقت ما یک روش تایید هویت سه عامله (three factor) یا همان (۳FA) را که کاملا امن به نظر می رسد به کار می گیریم . در سالیان اخیر انواع مقالات در زمینه احرازهویت براساس بیومتریک پیشنهاد شده است .
به عنوان مثال در سال ۲۰۱۰ ، Yoon و Yoo [12] پیشنهاد یک طرح احراز هویت بر پایه بیومتریک را برای چندین سرور بر اساس رمزنگاری منحنی بیضوی (ECC) مطرح کردند . اگر چه He , Wang نشان دادند [۱۳] که در طرح Yoon و Yoo یک مهاجم می تواند به جعل کاربر (impersonate) با دسترسی همزمان به رمزعبور و اسمارت کارت بپردازد . بنابراین سه فاکتور (۳FA)  نقض خواهد شد . بنابراین He , Wang به ارائه یک طرح احراز هویت مبتنی بر بیومتریک [۱۳] برای سیستم های چند سروری پرداختند که در آن از رمزنگاری منحنی بیضوی استفاده شده بود . Odelu و همکاران [۱۴] با مطالعه طرح He, Wang دریافتند که طرح آن ها در مقابل افشا هویت شخصی آسیب پذیر (Vulnerable to impersonation) آسیب پذیر است و مشکل Known Session Specific temporary information leakage (لو رفتن اطلاعات short term یک جلسه خاص) و ضعف گمنامی کاربر (weak use anonymity) و حمله خطا در بروزرسانی/ورود رمز عبور (wrong password login/update attacks) دارد . بنابراین به ارائه یک پروتکل جدید چند سروری با استفاده از ECC پرداختند .
در سال ۲۰۱۴ ، Chuang , Chen [15] طرح تایید هویت مبتنی بر بیومتریک را برای چند سرور پیشنهاد دادند و مدعی شدند که طرح آن ها گمنامی کاربر و تعداد از ویژگی های امنیتی را فراهم می آورد . با این حال در سال ۲۰۱۴ و ۲۰۱۵ ، Mishra و همکاران [۱۶] و Lin و همکاران [۱۷] نشان دادند که طرح Chuang و Chen از مشکل جعل هویت کاربر (user impersonation)  وجعل سرور (Server Spoofing) و حملات منع سرویس (DoS) [16] و عدم حفاظت از شناسه کاربر و کلید نشست رنج می برد .[۱۷] سپس دو طرح بهبود یافته ارائه شد با این حال در سال ۲۰۱۵ Lu و همکاران [۱۸] نشان دادند که طرح Mishra  و همکاران دچار مشکل Server Spoofing و حملات جعل (impersonation attack) می باشد و این طرح نمی تواند forward secrecy (محرمانگی رو به جلو) را تامین کند . سپس طرح تجدید نظر شده ارائه شد . ما طرح های را در [۱۵,۱۶,۱۸] مشاهده می کنیم که نمی توانند forward secrecy را تامین کند .[۱۹] طرح های احراز هویت امن و کارآمد برای اَبرهای چند سروری (شکل۲) یک چالش تحقیقاتی است .{مشابه مشکل تاریخی پروتکل های ایجاد کلید [۳۷-۴۰]} ، در این ما بین نیز ما هم در حال بررسی این مقاله هستیم .
به طور خاص در این مقاله ما به معرفی یک طرح احراز هویت چند سرور اَبری کارآمد و کاربرپسند (User friendly ,Efficient) می پردازیم . در این طرح برای تسهیل در دسترسی کاربران به داده ها از هر سروری به انتخاب کاربران ، تنها یکبار ثبت نام به وسیله یک مقام ثبت نام کننده (Registration Authroity) صورت می پذیرد که به مختصر RA نامیده می شود . طرح ما گمنامی کاربر را بدون استفاده از تکنیک های رمزنگاری و رمزگشایی متقارن امکان پذیر می سازد . در طرح ما :
  • RA  رکوردی از شناسه ثبت شده کاربران و سرورها را به صورت امن نگهداری می کند . هم چنین RA جلوی ثبت نام یک شناسه را برای چندین بار می گیرد .
  • اعتبار کارت هوشمند یک کاربر در طول فرآیند بروزرسانی رمزعبور/شناسه ورود به سیستم بررسی می شود تا از جعل هویت (impersonation) جلوگیری شود .
  • درهنگام احراز هویت ، RA مشروعیت کاربر و سرور اَبری را تایید می کند . این تایید باعث کاهش شانس افراد ثبت نام نشده می شود و سرورهای مخرب جعل شده نمی توانند به یک کاربر مجاز سرویس مخرب بدهند .
  • طرح ما اجازه می دهد که کلید نشست (SK) بین CS و کاربر ایجاد شود به طوری که SK حتی برای RA نیز ناشناخته بماند . علاوه بر این SK هر دو خاصیت backward secrecy و forward secrecy را خواهد داشت .
علاوه براین ما می توانیم مدعی شویم که طرح ما از عملیات پیچیده و گران قیمت کامپیوتری استفاده نمی کند . طرح ما دارای انعطاف پذیری خوبی است بدون آن که برای امنیت خطری ایجاد کند . بنابراین ، این طرح مناسب کاربردهای در دنیای واقعی خواهد بود .
سازمان دهی مقاله : در بخش ۲ پیش زمینه های ارائه خواهد شد . دربخش ۳ ما توصیفی از طرح های احرازهویت بر پایه بیومتریک برای محیطهای چند سرور اَبری ارائه خواهد شد . ما دو آنالیز غیررسمی (informal) و یک آنالیز رسمی (formal) را در دبخش های ۴و ۵ به ترتیب ارائه می دهیم . در بخش ۶ عملکرد طرح پیشنهادی را ارزیابی می کنیم . در نهایت ما با بیان نتایج در بخش ۷ مقاله را پایان می دهیم .

۲-پس زمینه :

در این بخش ما به ارائه دانش های مورد نیاز برای درک بهتر این مقاله می پردازیم .
۲-۱ – ملاحظات خاص یک کاربر :
 برای بهبود کیفیت تجارب کاربر ، طرح ما دارای ویژگی های زیر است :
  • هنگامی که یک کاربر ثبت نام شده با یک مجوز ثبت نام می کند ، قابلیت دسترسی به تمامی سرورهای اَبری را خواهد داشت (مشابه بحث قبلی ما در مورد حساب های مجله Elsivier)
  • کاربر می تواند رمز عبور خود را به آسانی انتخاب و یا تغییر دهد .
  • در طول کل فرآیند احراز هویت ، کاربر همچنان گمنام است ، حتی اگر یک مهاجم به مشاهده یا استراق پیام های مبادله شده در طول فرآیند بپردازد هویت کاربری را کشف نخواهد کرد .
۲-۲-الزامات امنیتی و ملاحظات برای طرح های احراز هویت چند سرور اَبری :
جامعه امروزی به شدت دیجیتالیزه و داده محور شده است و معماری های اَبر برای سازمان ها و افراد تبدیل به یک هنجار شده است . امنیت و نگرانی های مربوط به حریم خصوصی با پذیرش اَبر وجود دارد [۲۰,۲۱,۴۱,۴۲] از قبیل :
  • فقط طرفین مجاز باید اجازه دسترسی به داده ، خدمات و یا منابعی از سرویس اَبری را داشته باشند . حملات برداری (Attack Vector) به دلیل تعداد زیادی از کاربران ( مثلا در هنگام ایجاد داده ها ، اصلاح و انتشار) ، نقاط پایانی (مانند دستگاه های مشتری و دستگاه های واسطه و گره ها ) پیکربندی و تنظیماتپیاده سازی و غیره در حال افزایش است . طرح ارائه شده ما برای تمامی نگرانی امنیتی و حریم خصوصی طراحی شده است و برای حل این مشکل ، طرح ما به احراز هویت متقابل تمامی شرکت کنندگان در یک جلسه می پردازد . احراز هویت متقابل ما بین یک کاربر (تقاضای دسترسی به داده یا دنبال خدمات) و سرور اَبری (ارائه خدمات و یا دسترسی به داده ها ) صورت می پذیرد و RA نیز به این احرازهویت کمک می کند .
  • منابع اَبر باید برای یک کاربر مجاز در دسترس باشند . طرح ما به دنبال فراهم آوردن forward and backward secrecy می باشد . بنابراین حتی اگر مهاجم بتواند یک long term  بلندمدت محرمانه ، از سرور اَبری و سرویس های جستجو شده کاربر را بدست آورد ، مهاجم نخواهد توانست به اطلاعاتی از نشست های قبلی یا آینده (کلید نشست) با استفاده از پیام های مبادله شده طرفین دست یابد .
۲-۳ – ملاحظاتی در زمینه رمزنگاری :
در این بخش به معرفی عملیات / توابع  رمزنگاری که دارای راندمان بالایی در طرح ها هستند معرفی می شوند :
  • در یک تابه هش یک طرفه یک ورودی متغییر وارد می شود و یک خروجی ثابت را بر می گرداند .[۲۳-۲۴] هم چنین امکان محاسبه ورودی برای یک خروجی ناشناخته وجود ندارد .
  • هنگامی که یک کاربر اطلاعات بیومتریک خود را در یک اسکنر قرار می دهد ، الگو ممکن است به دلایل مختلفی متفاوت باشد (به عنوان مثال تایید اثر انگشت ناشی از پوست خشک یا ترک خورده کاربر) . بنابراین باعث خطا یا رد شدن یک کاربر واقعی می شود . این یک دلیل برای این است که چرا عملیات هش ساده برای کاربردهای مبتنی بر بیومتریک مناسب نیست [۲۵] . درسال ۲۰۰۴ ، Jin و همکاران [۲۶] پیشنهاد استفاده از Bio hashing را برای حل مساله برگشت اشتباه (False Rejection) دادند . Bio hashing یک نقشه برداری تصادفی از یک رشته دودویی است که به یک ویژگی بیومتریک اختصاص یافته است که با اعداد شبه تصادفی امکان رمزگذاری اختصاصی را به کاربران می دهد . در  [۲۷,۲۸] نشان داده شده است که Bio hashing یک ابزارمناسب برای طرح های احراز هویت مبتنی بر بیومتریک است [۱۶] . بنابراین در این مقاله ، ما از Bio hashing استفاده می کنیم .
  • رمزنگاری منحنی بیضوی (ECC) [29,30] برای ایجاد یک کلید نشست با خاصیت Forward Secrecy استفاده می شوند و با توجه به ظرفیتی که ارائه می دهند سطح بالایی از امنیت را با یک سایز کوچک از کلید فراهم می کنند . ما خواننده علاقمند را به منبع [۴۳] برای پروتکل های مبتنی بر ECC و Diffie-Hellman ارجاع می دهیم .
ما به طور خلاصه مروری بر ECC می نماییم . منحنی بیضوی (ECC) توسط Ep(a,b):y^2=x^3+ax+b mod(p) در یک میدان محدود Fq با مرتبه اول می باشد . هم چنین ضرب a.P به معنای P+P+P+….+P به تعداد a مرتبه می باشد .امنیت ECC براساس دو مساله سخت زیر می باشد :
۱- مساله لگاریتم گسسته منحنی بیضوی (ECDLP) ؛ (Elliptic Curve Discrete Logarithm Problem) : برای دو نقطه مانند P,Q پیداکردن یک عدد مانند K که Q=k.P مساله سختی است .
۲-مساله سخت دیفی هلمن منحنی بیضوی (ECDHP) ؛ (Elliptic curve Diffie-Hellman Problem): برای P,k.P,l.P پیدا کردن k.l.P کا سختی است .
۲-۴ – مدل شبکه :
مدل شبکه برای پروتکل پیشنهادی برای محیط های چند سروری در شکل ۳ نمایش داده شده است . این سه نهاد عبارتند از کاربر Ui ، سرور ابری csj  و مقام ثبت نام RA . RA یک تایید کننده قابل اعتماد است که مسئول تولید تمامی پارامترهای سیستم و ثبت نام کاربران و سرورهای اَبری می باشد . پس از ثبت نام ، یک کاربر کارت هوشمند SCi را با برخی مقادیر محرمانه دریافت می کند و یک ابر سرور یک مقدار محرمانه به همراه یک شناسه منحصر بفرد دریافت می کند . Ui و CSJ همدیگر را احراز می کنند و یک کلید نشست با همکاری RA تولید می کنند که Ui به وسیله آن می تواند به سرویس های CSJ دسترسی داشته باشد . خلاصه ای از نماد ها در جدول ۱ آمده است .

۳-طرح پیشنهادی :

در حال حاضر ما طرح خود را که شامل ۴ مرحله زیر می باشد ارائه می دهیم : مرحله راه اندازی ، ثبت نام کاربر ، ورود به سیستم ، فاز احراز هویت ،  توافق کلید و تغییر رمز عبور .شکل ۴ فازهای راه اندازی و ثبت نام کاربر را نشان می دهد و فازهای بعدی به ترتیب در شکل های ۵و ۶ نمایش داده شده است .
۳-۱-فاز راه اندازی و تنظیم مشخصات اولیه :
در شروع طرح RA به انتخاب یک عدد اول بزرگ P و یک میدان محدود GF(p) می پردازد . سپس RA به انتخاب یک منحنی بیضوی Ep بر روی میدان محدود GF(p) با یک base point مانند P∈G می پردازد که G یک گروه چرخه ای اضافه شونده با n عنصر روی Ep است .RA به انتخاب s برای محاسبه Pub=s.P می پردازد که S در حقیقت یک کلید خصوصی و Pub کلید عمومی RA می باشد . نمونه های بیومتریک که توسط سنسورها جمع آوری می شود دارای یک طول مشخص می باشد (lb) [31].
۳-۲-فاز ثبت نام :
۳-۲-۱:فاز ثبت نام کاربر :
در این فاز برای ثبت نام یک کاربر ،RA یک کانال امن ارتباطی را با کاربر به شرح زیر ایجاد می کند :
۱-Ui به انتخاب شناسه IDi و رمز عبور PWi پرداخته و بیومتریک BIOi توسط سنسور فراهم می آید .
۲-Ui به محاسبه رمز عبور بیومتریک خود با استفاده از رابطه BPWi=H(BIOi||PWi) و {IDi,BPWi} را برای RA ارسال می کند .
۳-RA کنترل می کند اگر h(s||IDi) در بین رکوردهای RECi موجود بود RA درخواست را به Ui برگشت می دهد تا مقدار دیگری را برای IDi خود انتخاب کند در غیر اینصورت RA به محاسبه Ni=h(IDi||s)⊕BPWi  و ذخیره سازی آن در کارت هوشمند SCi  می پردازد . سپس RA کارت SCi را با مقادیر {Ni,P,h(.),H}به صورت کاملا امن به Ui می فرستد و RA به ذخیره h(s||IDi) در بین رکوردهای RECi خود می پردازد .
۴-Ui به محاسبه Zi=H(IDi||PWi||BIOi) پرداخته و سپس اطلاعات اسمارت کارت را به شکل {Zi,Ni,P,Pub,h(.),H(.)} به روزرسانی می کنند .
شکل4

شکل۴

۳-۲-۲- ثبت نام یک سرور ابری در RA :
۱-از طریق یک کانال امن یک سرور IDcsj  خود را به RA می دهد .
۲-RA به کنترل h(s||IDcsj) در داخل رکوردهای RECcsj می پردازد . اگر وجود داشت درخواست برگشت می خورد در غیر اینصورت RA به محاسبه Lj=h(IDcsj||s) پرداخته و به ارسال Lj به csj می پردازد و با استفاده IKEv2 می پردازد و RA به ذخیره h(s||IDcsj) در بین رکوردهای RECcsj می پردازد و CSj به نگهداری محرمانه Lj می پردازد .
۳-۳-فاز ورود :
برای بدست آوردن خدمات از j امین سرور اَبری ، یک Ui مراحل زیر را انجام می دهد :
۱-Ui اسمارت کارت خود را داخل یک ریدر قرار می دهد و IDi و PWi خود را وارد کرده و BIOi خود را فراهم کند .
۲-SCi به محاسبه Zi*=H(IDi||PWi||BIOi) را محاسبه می کند و بررسی می کند که Zi*=Zi و سپس SCi به محاسبه BPWi=H(BIOi||PWi) برای بازیابی Ri=[h(IDi||s)]=Ni⊕BPWi می پردازد .سپس SCi به تولید یک عدد تصادفی به نام v پرداخته و به محاسبه Vi=v.P و Vi*=vPub=((vi*)x,(vi*)y) می پردازد .سپس Sci  به محاسبه شناسه پوشیده خود (Masked) خود با استفاده از رابطه GIDi=IDi⊕(vi*)x و Li=h(IDi||(vi*)y||Vi||IDcsj||RJ) می پردازد .
۳-SCi به ارسال درخواست Login با پیام M1={vi,GIDi,Li} به Csj می پردازد .
۳-۴-فاز احراز هویت و توافق کلید :
فاز احراز هویت

فاز احراز هویت

در این فاز Ui و CSj یکدیگر را تایید کرده و به کمک RA یک کلید نشست بدست می آورند :
۱-زمانی که پیام M1 از کاربر Ui ، به سرور CSj برسد ، سرور با RA ارتباط برقرار می کند . البته قبل از آن محاسبات زیر را انجام می دهد . CSj به تولید یک عدد تصادفی به نام w پرداخته و به محاسبه Wj=w.P و Wj*=WP.Pub=((Wj*)x,(Wj*)y) پرداخته و سپس CSj به محاسبه GIDcsj=IDcsj⊕(Wj*)x پرداخته و mj=h(vi||GIDi||Li||wj||(wj*)y||IDcsj||Lj) می پردازد .
۲-سرور CSj به انتقال پیام M2={vi,GIDi,Li,Wj,GIDcsj,mj} به RA می پردازد .
۳-Ra به محاسبه Wr*=s.wj=s.w.P=w.Pub=((wr*)x,(wr*)y می پردازد و سپس IDcsj=GIDcsj⊕(wr*)x پرداخته و سپس RA به محاسبه Lj=h(IDcsj||S) و mj*=h(vi||GIDi||wj||(wr*)y||IDcsj||Lj) می پردازد و در صورتی mj*=mj بود RA متوجه مشروعیت CSj می شود .
۴-RA به محاسبه Vr*=s.Wj=s.w.P=w.Pub=((wr*)x,(wr*)y)  پرداخته و IDi=GIDi⊕(vr*)x را محاسبه می کند .سپس RA به محاسبه Ri=h(IDi||s) می پردازد و Li*=h(IDi||(vr*)y||vi||IDcsj||Ri) می پردازد . آن گاه به کنترل Li=Li* پرداخته و درصورت برابری RA از مشروعیت Ui اطمینان پیدا می کند .
۵-RA به محاسبه JIDi=IDi⊕(wr*)x پرداخته و mr=h(JIDi||IDi||IDcsj||Lj||(wr*)y) و JIDcsj=IDcsj⊕(vr*)x پرداخته و Lr=h(JIDcsj||IDi||IDcsj||Ri||(vr*)y) و نهایتا RA به انتقال پیام M3={JIDi,JIDcsj,mr,Lr} به سرور csj می پردازد .
۶-بعد از دریافت پیام M3 ، سرور csj به استخراج IDi=JIDi⊕(wj*)x می پردازد و به محاسبه mr*=h(JIDi||IDi||IDcsj||Lj||(wj*)y) می پردازد و به کنترل مقدار mr*=mr می پردازد .سپس CSj به محاسبه کلید نشست با توجه به مقدار SKcsj-u=h(vi||wj||wVi||IDi||IDcsj)=h(vP||wP||wvP||IDi||IDcsj) پرداخته و سپس مقدار nj=h(SKcsj-u||vi||wj||lr||IDi||IDcsj)  می پردازد . سپس Csj پیام M4={JIDcsj,Lr,wj,nj} را به سمت کاربر Ui ارسال می کند .
۷-بعد از رسیدن پیام M4 به کاربر ، کاربر Ui به استخراج IDcsj=Jidcsj⊕(vi*)x و به محاسبه کلید نشست با رابطه SKu-csj=h(vi||wj||vwj||IDi||IDcsj) = h(vp||wp||vwp||IDi||IDcsj) می پردازد و سپس nj*=h(SKu-csj||vi||wj||lr||IDi||IDcsj) را محاسبه می کند و با کنترل nj*=nj کاربر از مشروعیت سرور csj مطمئن می شود و به محاسبه Lr*=h(jIDcsj||IDi||IDcsj||Ri||(vi*)y) می پردازد و با کنترل Lr*=Lr کاربر از مشروعیت RA مطمئن می شود و سپس کاربر به محاسبه Pi=h(SKu-csj||IDi||IDcsj||vi||Lr||wj) می پردازد . سپس کاربر به ارسال M5={Pi} به سرور CSj می پردازد .
۸-بعد از دریافت پیام M5 توسط سرور csj ، سرور به محاسبه Pi*=h(SKcsj-u||IDi||IDcsj||vi||Lr||wj) پرداخته و با کنترل Pi*=Pi سرور ابری از مشروعیت کاربر Ui مطمئن می شود .
۳-۵-فاز تغییر بیومتریک و رمز عبور :
شکل6

شکل۶

در این فاز Ui می تواند رمز عبور و بیومتریک خود را تغییر دهد :
۱- Ui اسمارت کارت خود را درون کارتخوان (reader) قرار می دهد و IDi,PWi,BIOi خود را وارد می کند .
۲-SCi به محاسبه Zi*=H(IDi||PWi||BIOi) پرداخته و به مقایسه Zi*=Zi می پردازد و در صورت برقراری از کاربر می خواهد که PWi new خود را وارد کند .
۳-SCi به محاسبه Ni new=Ni⊕H(BIOi||PWi)⊕H(BIOi||PWi new) پرداخته و Zi new=H(IDi||PWi new ||BIOi) می کند .
۴-SCi به جایگزینی Zi و Ni با Zi new و Ni new می پردازد .

۴-آنالیز غیر رسمی امنیتی :

۴-۱- انعطاف پذیری در مقابل حمله Privileged-insider : در مرحله ثبت نام ، Ui ، شناسه IDi و BPWi را به RA ارسال می کند . نکته ای که وجود دارد این است که مقادیر PWi به صورت Plain ارسال نمی شوند . از آن جا که BPWi=H(BIOi||PWi) با Bioi کاربر محافظت می شود که هیچ کس جزء کاربر به آن دسترسی ندارد . پس RA قادر به حدس زدن رمز عبور کاربر نخواهد بود .
۴-۲- گمنامی کاربر : در طول فاز احراز هویت و ورود ، کاربر هرگز به انتقال شناسه در یک متن آشکار و غیر رمز شده نمی پردازد . در فاز ورود پیام M1={vi,GIDi,li} بر روی کانال ارسال می شود که در آن مقدار IDi با (vi*)x محافظت می شود که Vi*x نیز شامل مختصات نقطه v.Pub می باشد . یک مهاجم نیاز به دانستن عدد تصادفی v برای محاسبه IDi از روی GIDi دارد . با این حال ، مهاجم با توجه به ECDLP نمی تواند v را بدست آورد . به طور مشابه مهاجم نمی تواند IDi را از روی پیام M3={JIDi,JIDcsj,mr,lr} کشف کند .
۴-۳-مقاومت در برابر حمله offline password guessing : فرض کنید که E موفق به استخراج تمام اطلاعات کاربر از اسمارت کارت آن بگردد و به {Zi,Ni,P,Pub,h(.),H(.)} دسترسی داشته باشد . مهاجم نمی تواند PWi را از روی Ni=h(IDi||S)⊕(BIOi||PWi) حدس بزند و نیاز به دانستن IDi و Bioi کاربر دارد و هم چنین کلید مخفی RA دارد . از طرف دیگر برای زدن حدس درست درباره Zi نیاز به دانستن IDi و BIOi دارد .این درحالی است که IDi تنها توسط کاربر ، سرور ابری و RA قابل استخراج است و RA نیز تنها با اطلاع از کلید محرمانه s قادر به استخراج آن می باشد .
۴-۴-مقاومت ر برابر حمله جعل هویت کاربر (impersonation attack) :برای ورود به یک سیستم به عنوان Ui ، یک مهاجم باید کلیدهای محرمانه IDi و RA را داشته باشد ، در غیر اینصورت امکان محاسبه درخواست ورود وجود ندارد . از آن جا که در طرح ما کاربر ناشناس است (مراجعه به بخش ۴-۲) بنابراین هیچ کسی به جزء RA دسترسی به s ندارد. بنابراین E نمی تواند Ui را جعل کند .
۴-۵-مقاومت در برابر حمله تکرار (Replay) : اگر پیام M1={vi,GIDi,Li} توسط یک مهاجم تکرار شود امکان ایجاد یک نشست مشترک بین E و CSj برقرار می شود . مهاجم می تواند چنین کاری را انجام دهد درصورتی که از عدد تصادفی v اطلاع داشته باشد و بتواند Vi=v.P را محاسبه کند . با این حال ، محاسبه v به دلیل مساله سخت ECDLP غیر ممکن است .
۴-۶-حمله جعل هویت سرور ابری (cloud-server impersonation) : برای جعل هویت سرور ابری ، مهاجم نیاز دارد تا در پیام M1={vi,GIDi,li} باید IDcsj را مورد جعل قرار دهد . برای این کار باید پیام Li=h(IDi||(vi*)y||vi||IDcsj||Ri) را مجدد محاسبه کند . در غیر اینصورت E قادر به محاسبه یک GIDcsj معتبر نیست و در قسمت تایید در RA مانند mj*=mj دچار مشکل خواهد شد . توجه داشته باشید که IDcsj در محاسبات خود با خصوصیات یک تابع هش یک طرفه مواجه خواهد بود .
۴-۷-احراز هویت متقابل :در طول فرآیند احراز هویت ،RA مشروعیت csj را با کنترل پیام mj*=mj در مرحله ۳ و مشروعیت Ui را با کنترل پیام li*=li در مرحله ۴ بدست می آورد . بنابراین RA با استفاده از کلید محرمانه s شناسه های IDi و IDcsj را بدست می آورد که از آن ها برای محاسبه JIDcsj و JIDi استفاده می کند . سپس csj با محاسبه mr*=mr مشروعیت RA را کنترل می کند و با بدست آوردن ID از روی JIDi هویت کاربر را کشف می کند . در مرحله بعد کاربر مشروعیت سرور را با کنترل پیام nj*=nj و مشروعیت RA را با کنترل پیام lr*=lr در مرحله ۷ بدست می آورد .کاربر با بدست آوردن IDcsj کلید نشست SKu-csj را بدست می آورد . در ادامه کاربر از IDi و IDcsj و Ri=h(IDi||S) استفاده می کند . نهایتا سرور مشروعیت کاربر را با کنترل پیام Pi*=Pi را در مرحله ۸ بدست می آورد . بنابراین ؛ کاربر ، سرور و RA مشروعیت همدیگر را به صورت کامل بررسی می کنند .
۴-۸-Backward and Forward secrecy : ما در نظر می گیریم که یک کلید محرمانه مانند PWi لو برود ، تاثیر آن را بر نشست های قبلی و بعدی در نظر می گیریم . ما مشاهده می کنیم که کلید نشست در هر جلسه نیاز به داشتن اعداد تصادفی v,w که توسط کاربر و سرور انتخاب شده اند دارد . اگر چه vi=vp,wj=w.p بر روی کانال عمومی وجود دارند اما هیچ کس به علت EDLCP نمی تواند مقدار v و w را بیابد . بنابراین امکان محاسبه wvp وجود ندارد . بنابراین این طرح backward and forward secrecy را تامین می کند .
۴-۹-Known session – specific Temporary information attack : اگر عدد تصادفی v یا w توسط یک مهاجم شناسایی شود مهاجم می تواند به محاسبه vwj=vww.P یا wvi=wv.P بپردازد . با این حال داشتن این دو مقدار نمی تواند باعث محاسبه کلید نشست SKcsj-u شود . چرا که احتیاج به داشتن IDi و IDcsj می باشد . مهاجم نیز قادر به یافتن IDcsj از روی پیام li=h(IDi||(vi*)y||vi||IDcsj||Ri) به دلیل وجود هش یک طرفه نمی باشد . هم چنین از پیام M2={vi,GIDi,LI,Wj,GIDcsj,mj} از آن جا که IDcsj با (wj*)x محافظت می شود امکان دسترسی وجود ندارد اگرچه مهاجم با دسترسی به w قادر به محاسبه Wj*=w.Pub نخواهد بود .
۴-۱۰-توافق کلید نشست و تایید آن : دو طرف (سرور و کاربر ) به صورت مستقل کلیدی را برای یک نشست تولید می کنند و سپس در قالب پیام nj*=nj و pi*=pi از صحت آن اطمینان حاصل می کنند .
۵-آنالیر رسمی (بررسی شود)
۶-ارزیابی آنالیز
th : پیچیدگی محاسباتی هش یک طرفه
tH :پیچیدگی محاسباتی bio hashing
tm : پیچیدگی محاسباتی ضرب منحنی
tf : پیچیدگی محاسباتی عملیات استخراج فازی
ts : پیچیدگی محاسباتیی کلید متقارن یا نامتقارن
UAP : فاز ثبت نام کاربر
LAP : فاز احراز هویت و ورود
PCP : فاز تغییر رمز عبور
جدول ۳ بررسی شود ….

ترجمه : مهندس مسعود معاونی

A LightWeight Anonymous Mutual authentication With Key Agreement Protocol On Ecc 2017 by wei Zhang

دانلود مقاله اصلی :

ICESS.2017.234_f1a31af7a044aab275346ea0ee676c74

 

عنوان :

یک پروتکل توافق کلید با احراز هویت  دوجانبه سبک وزن به وسیله رمزنگاری منحنی بیضوی

چکیده :

اخیرا Goutham و همکاران یک طرح توافق کلید Id base براساس رمزنگاری منحنی بیضوی ارائه کردند که مناسب محیط های کلاینت – سرور می باشد . در این طرح یک کلید نشست موقت میان دو طرف توزیع می شود . با این حال ما متوجه شدیم که این طرح حاوی نقص های امنیتی از جملع عدم تامین گمنامی (anonymity) و عدم بروزرسانی کلید خصوصی و … می باشد . ما یک نسخه جدید برای این طرح ارائه می دهیم که تمامی مشکلات قبلی را حل می کند .  طرح پیشنهادی ویژگی های امنیتی بیشتری برای گمنامی و عدم بروزرسانی پویا ارائه می دهد . ما هم چنین عملکرد بهتری را برای یک پروتکل سبک وزن ارائه می دهیم که برای محدودیت منابع در سیستم های IoT و یا شبکه های حسگر بی سیم (WSN) مناسب است .

کلمات کلیدی :

گمنامی ، احراز هویت متقابل ، توافق کلید ، رمزنگاری منحنی بیضوی

۱- معرفی  :

امروزه کاربردهای اینترنت اشیاء جنبه های بیشتری از زندگی روزمره ما را پوشش می دهند . به عنوان مثال خانه های هوشمندی که شما می توانید از راه دور به منزل خودتان نظارت کنید و به مدیریت برنامه های خانگی بپردازید . شبکه های محیطی بدن BAN (Body Area Networks) که می توانند برای نظارت بر سلامت انسان به وسیله سنسورهای مختلف پزشکی مورد استفاده قرار گیرند . یک جزء اصلی شبکه های اینترنت اشیاء سنسورهای جاسازی شده در تجهیزات مختلف هستند که به عنوان دروازه های IoT وظیفه انتقال داده ها را در شبکه های ناهمگن برعهده دارند و اطلاعات را برای ذخیره سازی ، آنالیز و تصمیم گیری به سرورها ارسال می کنند . مشکلات امنیتی IoT از قبیل ضعف در رمزهای عبور ، انتقال ساده اطلاعات حساس و غیره به یک مشکل جدی تبدیل شده اند که به طور فزآینده ای در حال رشد می باشد . به عنوان یک نمونه حملات DDoS (حمله منع سرویس توزیع شده) در ایالاتد متحده و اروپا در سال گذشته باعث قطع شدید اینترنت و تاثیر عمیق بر مردم گردید .این باعث گردید تا مردم متوجه آسیب پذیری های امنیتی دستگاه های اینترنت اشیائ بگردند . باتوجه به هزینه کم ف معمولا اکثر دستگاه های اینترنت اشیاء به طور کامل دارای منابع محدود هستند و شرایط پردازش ، ظرفیت ذخیره سازی و محدودیت زمانی امکان اجرای پروتکل های پیچیده رمزنگاری را نمی دهد . معمولا دستگاه های اینترنت اشیاء دارای قدرت کمی از لحاظ پردازشی می باشند و از ریز پردازنده های ۸ یا ۱۶ بیتی با فرکانس کمتر از ۱۰ مگا هرتز و رم چند کیلوبایتی و حافظه های فلش کم ظرفیت بهره می برند . بنابراین استفاده از طرح های رمزنگاری سبک وزن و کارآمد برای سیستم های اینترنت اشیاء دارای اهمیت است .
پروتکل های احراز هویت در دستگاه های IoT به دنبال احرازهویت دستگاه های قانونی برای سرور می باشند ، تا سرورها بتوانند دستگاه های غیرمجاز را شناسایی نمایند .بعد از احراز هویت سرور و دستگاه IoT دو طرف بر روی یک کلید نشست موقت (Session Key) به توافق می رسند و به وسیله آن کلید به برقراری یک ارتباط امن مبادرت می ورزند و به انتقال اطلاعات و دستورات حساس و به روزرسانی دستگاه می پردازند . بنابراین احراز هویت نقش مهمی در الزامات امنیتی برای دستگاه های IoT دارد . در سال های اخیر پروتکل های احراز هویتی بسیاری برای سنسورهای تعبیه شده در تجهیزات (Embedded Device) ارائه شده اند که در اکثر آن ها از توابع درهم ساز زنجیره ای (Hash Chain) ، رمزنگاری متقارن و رمزنگاری کلید عمومی استفاده می شود . با این حال توابع درهم ساز زنجیره ای و طرح های مبتنی بر رمزنگاری متقارن به اطلاعات بیشتری درباره هویت کاربر نیاز دارند و باید کلیدهای متقارن زیادی را ذخیره کنند که با افزایش تعداد کاربران ، نگهداری و به روزرسانی کلیدهای کاربر و نشست ها دارای پیچیدگی زیادی می شود . اما طرح های رمزنگاری کلید عمومی می توانند با این مشکلات به خوبی مقابله کنند . اما بعضی از پروتکل های کلید عمومی زمان زیادی را برای اجرا نیاز دارند که این موضوع می تواند سربارهای قابل توجهی را از لحاظ زمان و مصرف انرژی ایجاد کند .
یک ویژگی مهم رمزنگاری های کلید عمومی مانند رمزنگاری منحنی بیضوی (ECC) این است که نیاز به حافظه کمتر و محاسبات محدودتری دارند . این ویژگی ECC در مقایسه با روش های مانند RSA و LWE با سایز مشخصی از کلید امنیت قوی تری را ارائه می دهد . به طوری که یک کلید ۱۶۰ بیتی در ECC همان امنیت یک کلید ۱۰۲۴ بیتی در RSA را فراهم می کند . این در حالی است که هزینه محاسبات تقریبا ۲۰ برابر بیشتر از ضرب اسکالر در ECC می باشد [۱] . این مزایای ECC در محیط های با قدرت پردازش کم ذخیره سازی ، پهنای باند وانرژی محدود می تواند بسیار مهم باشد .
با توجه به مباحث مطرح احراز هویتی در کاربردهای IoT ، تعدادی از محققان طرح های احراز هویتی امنی را مطرح کرده اند [۲-۸] .Huang و همکاران [۲] از ECC برای ساختن پروتکل های مبادله کلید در ارتباطات خودسازمانده در شبکه های حسگر بی سیم در سال ۲۰۰۳ استفاده کرده اند . در سال ۲۰۰۵ Tian و همکاران[۳] طرح Huang و همکاران را مورد آنالیز قرار داده و مدعی شدند که این طرح امنیت لازم را ندارد و اگر یک مهاجم با یک مدیر امنیتی به توافق برسد این طرح با شکست مواجه می شود . پس به معرفی یک پروتکل بهبود یافته پرداختند . در سال ۲۰۱۱ Debiao و همکاران [۹] یک پروتکل احرازهویت متقابل ID base ارائه دادند که امکان توافق کلید به وسیله ECC در آن وجود داشت و آن ها طرح خود را با برخی از طرح های مشابه مقایسه کردند . Islam و همکاران [۱۰] نشان دادند که طرح Debiao از مشکل حمله جعل هویت (Impersonation) و مشکل many – logged user رنج می برد و طرح آنان چندان امن نیست . در سال ۲۰۱۵ ، Goutham و همکاران [۱۱] یک طرح احرازهویتی ID based مبتنی بر گمنامی را برای تبادل کلید مطرح کردند که با استفاده از کارت هوشمند بود و مبتنی بر طرح Debiao  بود . این طرح بهبودهای برای جلوگیری از شناسایی هویت کاربر ارائه می داد و نسبت به طرح های قبلی بهبود داشت اما هم چنان بیش از حد به ارتباطات دو طرفه و داده های ذخیره شده در سرور می پرداخت .
در این مقاله به بررسی طرح های پیشنهادی توسط Debiao و همکاران و Goutham و همکاران پرداخته شده و نقص های امنیتی آن ها بیان شده است و به معرفی یک پروتکل جدید با حفظ گمنامی و کارآمدی در محاسبات پرداخته شده است . بنابراین این طرح نه تنها نسبت به طرح های قبلی امن تر است هم چنان می تواند محدودیت منابع در محاسبات را کاهش دهد .
ادامه این مقاله به شرح زیر است  در بخش ۲ پیشینه های مربوط به دانش را بررسی می کنیم . در بخش ما به معرفی خلاصه ای از طرح های قبلی می پردازیم و نقاط ضعف آن ها را نشان می دهیم . در بخش ۴ طرح جدید ارائه شده است و در بخش ۵ آنالیز طرح ما و مقایسه آن با طرح های دیگر آمده است و در نهایت نتیجه گیری آمده است .

۲-رمزنگاری منحنی بیضوی :

 در اواسط دهه ۱۹۸۰ ، Victor Miller [12] و Neal Kobiltz [13] برای اولین بار به طور مستقل از رمزنگاری منحنی بیضوی استفاده کردند . محاسبات رمزنگاری منحنی بیضوی یر روی میدان های محدود (finite fields) انجام می شود که می تواند یک میدان اول یا یک میدان باینری باشد . اضافه شدن نقطه و دوبرابر شدن نقطه ای پایه ریاضی منحنی بیضوی است که بر پایه عملیات ضرب نقطه ای اسکالر می باشد . به طوری که Q=kP که در آن k عددی عضو مجموعه اعداد صحیح و نقاط Q  و P بر روی منحنی بیضوی E(Fq) رار دارند که Fq یک میدان محدود اول می باشد . مساله سخت لگاریتم گسسته منحنی بیضوی اساس و پایه امنیت در منحنی های بیضوی است که باعث ایجاد این طرح رمزنگاری گردیده است . در ادامه به ۳ تعریف پایه ای می پردازیم :

تعریف ۱ :

فرض کنید E یک منحنی بیضوی تعریف شده بر روی میدان محدود Fq باشد . P و Q نیز نقاطی بر روی E(Fq) هستند . فرض کنید P دارای مرتبه n باشد آنگاه Q=dP که d یک عدد صحیح در فاصله (۱, n-1) باشد .آنگاه براساس مساله سخت لگاریتم گسسته (ECDLP) امکان حدس زدن d به راحتی امکان پذیر نخواهد بود .

تعریف ۲  :

مساله سخت منحنی بیضوی دیفی هلمن (ECDHP) که با توجه به منحنی بیضوی E که برروی یک میدان محدود Fq تعریف شده ، اگر یک نقطه P  عضو E(Fq) با مرتبه n باشد و A=a.P و B=b.p با فرض ندانستن هر کدام از مقادیر a یا b  پیداکردن نقطه C=a.b.P کار پیچیده ای خواهد بود.

تعریف ۳ :

مساله تصمیم گیری دیفی هلمن در منحنی بیضوی (ECDDHP) : با فرض منحنی بیضوی E بر روی میدان محدود Fq و وجود نقطه مانند P با مرتبه n  و با فرض داشتن نقاط A=a.P و B=b.P و C=c.P آنگاه تعیین این که C=a.b.P است یا معادل آن می باشد کار مشکلی خواهد بود . C≡a.b(mod n)

۳- مروری بر پروتکل های احراز هویتی گذشته :

در این بخش ، به طور مختصر به مرور طرح های مبتنی برID Based می پردازیم و دو طرح Debiao و همکاران و هم چنین طرح Goutham و همکاران را که در واقع یک نسخه اصلاح شده از طرح قبلی است مورد بررسی قرار می دهیم  . این پروتکلها شامل سه فاز پایه هستند : ۱- فاز راه اندازی اولیه ۲-فاز ثبت نام مشتری ۳- فاز احراز هویت متقابل به همراه توافق کلید [۹],[۱۱] . طرح Goutham و همکاران دارای دو مرحله دیگر به نام های فاز ارزش گذاری min,max و USN  به همراه فاز به روزرسانی شناسه نیز می باشد .

A) طرح Debiao و همکاران:

۱) فازراه اندازی : دراین فاز سرور S به تولید پارامترهای سیستم به شرح زیر می پردازد : S یک معادله منحنی بیضوی مانند E را بر روی میدان E(Fq) با مرتبه n تعیین می کند سپس سرور کلید اصلی خود را انتخاب کرده و آن را x می نامد و از روی آن به محاسبه کلید عمومی خود براساس رابطه Ps=x.P می پردازد . علاوه بر این سرور تعدادی توابع هش یک طرفه نظیر H1,H2,H3 و یک کد احراز هویتی پیام مانند MAC k(m) را تعیین می کند . سپس سرور کلید اصلی خود را محرمانه می کند و پارامترهای اصلی سیستم را منتشر می کند . (Fp,E,n,P,Ps,H1,H2,H3,MACk(m)) .
۲) فاز ثبت نام کاربر : زمانی که یک کاربر Ci بخواهد در سرور S ثبت نام کند ، Ci شناسه =را (IDci) به s اعلام می نماید . S به محاسبه hci از رابطهhci=H1(IDci) می پردازد و کلید خصوصی کاربر را از رابطه Dci=(1/x+hci).P محاسبه می کند . سپس سرور Dci را به Ci از طریق یک کانال امن ارسال می کند. کلید عمومی یک Ci از رابطه زیر محاسبه می شود : Pci=(hci+x)P=hciP+Ps .
۳) فاز احرازهویت متقابل به همراه توافق کلید : در این مرحله کاربر Ci درخواستی را به سرور از طریق یک پیام می فرستد :
i ) کاربرCi یک عدد تصادفی rci را انتخاب کرده و به محاسبه M=rci.P و M′=rci.Dci و k=H2(IDci,Tci,M,M′) می پردازد که Tci آخرین برچسب زمانی کاربر می باشد . سپس Ci به ارسال پیام M1 به سرور می پردازد : M1={IDci,Tci,M,MAC(IDci,Tci,M)with k} .
ii ) بعد از دریافت پیام M1 سرور به بررسی مقادیر IDci  وبررسی تازه گی Tci می پردازد . در صورت تازگی که براساس رابطه T′-Tci<ΔTi بدست می آید ، سرور به محاسبه hci=H1(IDci) و M′=(۱/x+hci)M و k=H2(IDci,Tci,M,M′) می پردازد سپس با استفاده از k بدست _آمده به کنترل MAC(IDci,Tci,M)with k می پردازد . درسمت سرور اگر نتیجه هریک از مراحل فوق نادرست باشد نشست خاتمه خواهد یافت ، در غیراینصورت سرور به انتخاب یک عدد تصادفی مانند rs عضو مجموعه اعداد صحیح می پردازد و به محاسبه w=rs.P و Ks=rs.M خواهد پرداخت و کلید نشست را از رابطه SK=H3(IDci,Tci,Ts,M,W,Ks) یدست خواهد آورد . سپس سرور به ارسال پیام M2={IDci,Ts,W,MAC(IDci,TS,w)with k} برای کاربر Ci می پردازد که Ts برچسب زمانی اخیر سرور است .
iii ) زمانی که پیام M2 به کاربر Ci برسد به کنترل MAC(IDci,Ts,W)with k با استفاده از k موجود خود می پردازد و سپس Ci به محاسبه Kci=rci.W و محاسبه کلید نشست از رابطه SK=H3(IDci,Tci,Ts,M,W,Kci) می پردازد .

B) طرح Goutham و همکاران :

 طرح Goutham و همکاران در شکل ۱ نمایش داده شده است ، که در واقع یک ورژن بهبود یافته از طرح قبلی است . که درآن چندین ویژگی امنیتی از قبیل گمنامی (Anonymous) ، بروزرسانی شناسه ها (Identity Updating) اضافه گردیده است . به طور کلی طرح Goutham و همکاران مشابه مراحل طرح Debiao و همکاران است و ما تنها به تفاوت های آن اشاره می کنیم .
شکل1

شکل۱

۱) فاز ارزش max-min  و تعیین USN : این مرحله قبل از فاز ثبت نام کاربر قرار دارد و به کاربر در پنهان سازی شناسه کمک می کند . این سه مقدار توسط سرور به صورت مخفی تعیین می شوند . یک  ID گمنام توسط کاربر بین Min و Max انتخاب می شود . مقدار USN به سرور برای پیداکردن اطلاعات کاربر در پایگاه داده کمک می کند .
۲) فرآیند گمنامی : برای دستیابی به هویت کاربر گمنام ،USN اختصاص داده شده به هر کاربر منحصربفرد است و سرور می تواند با جستجو USN به مقادیر Min و Max هر کاربر را پیدا کند . در نهایت هویت اصلی به وسیله هویت گمنام محاسبه می شود . فرآیند گمنامی در ابتدای فاز احرازهویت و توافق کلید به شرح زیر انجام می شود :
i ) کاربر Ci به محاسبه ID گمنام به وسیله AIDu=IDu⊕(Ur||Tu) و Ur=Rand%(Max-Min+1)+Max
ii ) کاربر Ci پیام M1 را به سرور مانند طرح گذشته ارسال می کند با این تفاوت که AID به جای ID استفاده شده است و ۲ پارامتر USN و RAND اضافه شده اند .  M1={AIDci,Tci,R=ru.P,USN,Rand,MAC(IDci,Tci,R)}
iii ) سرور S نیاز به برطرف کردن گمنامی در ابتدای کار دارد . زمانی که پیام M1 به سرور می رسد با استفاده از USN به محاسبه مقدار واقعی ID کاربر Ci با استفاده از دو مقدار مربوط به Min و Max می نماید و به محاسبه مقدار Ur می پردازد : Ur=Rand%(Max-Min+1)+Max
۳) فاز به روزرسانی شناسه : کاربر Ci در فاز به روزرسانی شناسه می خواهد که شناسه واقعی خود یعنی IDci را تغییر دهد . این مرحله می تواند بخش های از حملات مخرب را از بین ببرد .
i ) کاربر Ci یک شناسه جدید IDci#  انتخاب می کند و به محاسبه پیام AIDci⊕#IDCi پرداخته و به ارسال یک پیام M={AIDci,Aidci#,USN,Rand,Tci,MAC(IDci,IDci#with k)} می پردازد .
ii ) سرور S پس از دریافت به محاسبه IDci#=IDci⊕AIDc#i  پرداخته و به بروزرسانی IDci# پرداخته و به محاسبهhci#=H1(IDci#) و کلید خصوصی کاربر Xci#=(1/qs.hci#).P پرداخته و پیام (Cci#,Max,Min,USN) را در داخل اسمارت کارت کاربر به صورت آفلاین از طریق یک کانال امن انتقال می دهد.

c) آنالیز پروتکل های فوق :

طرح Debiao و همکاران دارای چندین ضعف امنیتی می باشد[۱۰] .
۱- مشکل many logged in کاربران :فرض کنید کلید خصوصی کاربری یعنی Dci لو برود (Leacked) مهاجم می تواند شناسه IDci را بدست آورد . با استراق سمع پیام M1 امکان login به سرور S وجود دارد چرا که rci یک عدد تصادفی است و هرکسی امکان تولید آن را دارد و می تواند خود را برای سرور احراز هویت کند .
۲- حمله Privileged – insider : این حمله از مشکل رمزنگاری ID base ناشی می شود که می تواند منجر به مشکل Known key escrow شود . مهاجم با دسترسی به سرور S می تواند تمامی کلیدهای خصوصی کاربران را بدست آورد .
۳- عدم امکان تغییر یا بروزرسانی کلید خصوصی :کلید خصوصی کاربر از رابطه Dci=(1/x+H1(IDci)).P بدست می آید . بنابراین هرکاربر باید زمانی که می خواهد یک کلید خصوصی جدید بدست آورد ID خود را تغییر دهد . بنابراین ، پروتکل Debiao نمی تواند مقیاس پذیری قوی در زمینه تغییر و بروزرسانی کلید خصوصی ارائه دهد .
۴- ناتوانی در حفاظت از گمنامی کاربران : طرح Debiao  و همکاران مبتنی بر رمزنگاری ID base  (IBC) می باشد ، در چنین طرح های هویت یک کاربر رابطه نزدیکی با کلید خصوصی دارد که نشان دهنده اهمیت گمنامی کاربر به عنوان یک جنبه امنیتی است . با این حال ، هویت یک کاربر (IDci) در پیام M1 به صورت آشکار(Plain) ارسال می شود . با این هویت یک مهاجم امکان دسترسی به فرآیند احراز هویت متقابل و پیگیری مبادلات را دارد .
طرح Goutham و همکاران یک نسخه بهبود یافته از طرح Debiao و همکاران است که برخی از نقاط ضعف را برطرف کرده است ، اما هم چنان نقایص جدّی در پروتکل جدید نیز وجود دارد که در ادامه به آن ها خواهیم پرداخت .
۵- گمنامی ناقص (incomplete anonymity) : طرح Goutham و همکاران گمنامی کاربر را از طریق محاسبه Ur=Rand%((max-min+1))+max و سپس ارسال USN و Rand در پیام M1 برای احراز هویت متقابل و توافق کلید استفاده می کند . از آن جایی که USN یک مقدار یکتا می باشد و سرور از طریق آن می تواند Max و Min را با جستجو در پایگاه داده پیدا کند و سپس به محاسبه ID کاربر بپردازد . این بدان معنا است که در این طرح یک شناسه دیگر به نام USN وجود دارد ، اگر چه ID اصلی کاربر مخفی است اما یک مهاجم USN کاربر را به رسمیت می شناسد چرا که این مقدار اغلب تغییر نمی کند . اضافه شدن USN و Rand در پیام M1 باعث افزایش سربار ارتباطی می شود که می تواند عملکرد پروتکل را در یک محیط بی سیم تحت تاثیر قرار دهد .
۶- عدم بروزرسانی کلید خصوصی کاربر : کلید خصوصی کاربر Dci=(1/x.H1(IDci)).P که تنها به کلید خصوصی سرور (x) و ID کاربر وابسته است . بنابراین کاربر می تواند به تنهایی با بروزرسانی کلید خصوصی بوسیله IDci خود بپردازد . حتی محتمل است که با لو رفتن کلید خصوصی سرور تمامی کلیدهای خصوصی کاربران توسط مهاجمان محاسبه و حملات شدیدی به وقوع می پیوندد .
۷- عدم وجود forward/backward security در فاز بروزرسانی شناسه : کاربر Ci شناسه اصلی خود را از طریق AIDci#=IDci+IDc#i که AIDc#i  به صورت plain به سرور ارسال می شود تا بروزرسانی انجام شود . مهاجم می تواند شناسه جدید را محاسبه کند ، البته به شرطی که مقدار IDci را در اختیار داشته باشد و از طرفی دیگر IDci نیز به شرط دارا بودن IDc#i قابل محاسبه است . هم چنین شناسه انتخابی توسط کاربر می تواند برخوردی (collision) با شناسه دیگر کاربران داشته باشد که بدین شکل می تواند منجر به ایجاد مشکل شود و این پروتکل هیچ راه حلی را برای آن ارائه نداده است .

۴- طرح پیشنهادی :

در طرح پیشنهادی به معرفی یک پروتکل سبک وزن بین کاربر Ci و سرور S که مشابه طرح های قبلی می باشد و امکان حفظ گمنامی و احرازهویت متقابل را دارد می پردازیم . این طرح به صورت کامل گمنامی کاربر را پشتیبانی می کند ، بدین معنا که هویت اصلی کاربر در تعاملات دوطرف مورد استفاده قرار نمی گیرد ( از شبه شناسه برای معرفی کاربر استفاده می شود ) . هم چنین در این طرح محاسبات سمت کاربر را کاهش می دهیم تا بتوانیم زمان و انرژی را بهتر ذخیره کنیم و با محدودیت منابع سمت کاربر در دستگاه های جاسازی شده ی اینترنت اشیاء انطباق بهتری داشته باشیم . طرح پیشنهادی دارای ۴ فاز به شرح زیر می باشد : ۱- فاز راه اندازی اولیه سیستم ۲- فاز ثبت نام کاربر ۳- فاز احرازهویت متقابل و توافق کلید ۴- فاز بروزرسانی شناسه / کلیدخصوصی . مراحل این طرح را در ادامه بررسی می کنیم :
A ) فاز راه اندازی سیستم :
فاز راه اندازی سیستم مشابه طرح Debiao ,Goutham است . سرور S پارامترهای سیستم را به شرح زیر تولید می کند :
i ) سرور به انتخاب base point به نام P با مرتبه n بر روی منحنی بیضوی E در میدان محدود اول Fq می پردازد .
ii ) سرور به انخاب کلید محرمانه خود به نام x به صورت تصادفی می پردازد و سپس کلید عمومی خود را از رابطه Ps=x.P محاسبه می کند .
iii ) سرور ۴ تابع هش امن یک طرفه H1,H2,H3,H4 را به همراه یک احرازهویت پیام MAC(k) انتخاب می کند .
iv ) سرور به ذخیره کلیدخصوصی خود پرداخته و پارامترهای عمومی را منتشر می سازد :{E(fq),P,Ps,H1,H2,H3,H4,MAC(m) with k}
B ) فاز ثبت نام کاربر :
یک کاربر Ci احتیاج دارد در سرور S ثبت نام کند . Ci شناسه (IDci) خود را برای سرور S ارسال می کند و هم چنین یک عدد تصادفی به نام tci را به سرور می فرستد . بعد از دریافت IDci و Tci سرور به محاسبه hci=H1(IDci) پرداخته و با استفاده از آن و کلید محرمانه خود (x)  به محاسبه کلید خصوصی کاربر از رابطه Dci=(tci/x.hci)P می پردازد و شناسه گمنام کاربر را از رابطه AIDci=IDci⊕H2(IDci||tci) محاسبه می کند . سرور S احتیاج دارد به کنترل AIDci با دیگر شناسه های گمنم ثبت شده در پایگاه داده بپردازد و در صورت تکرار پیام ثبت مجدد به کاربر داده می شود . سپس Dci و AIDci به اطلاع Ci از طریق یک کانال امن و از طریق لایه سوکت امن (SSL) می رسد . هم چنین سرور به ذخیره Tci,IDci,AIDci در داخل پایگاه داده خود می پردازد .
c ) فاز احراز هویت و توافق کلید :
در این مرحله کاربر Ci اگر بخواهد به سرور S دسترسی پیدا کند به ارسال یک پیام می پردازد و در نهایت دو طرف به یک کلید نشست مشترک می رسند . جزئیات این فاز در شکل ۲ نمایش داده شده است و مراحل آن به صورت زیر است :
شکل2

شکل۲

i ) کاربر به انتخاب یک عدد تصادفی rci پرداخته و به محاسبه R=rci.P و R′=Dci+R می پردازد . سپس کاربر به محاسبه k=H3(IDci,Tci,R,R′) می پردازد که Tci آخرین برچسب زمانی است . نهایتا Ci به ارسال پیام M1={AIDci,Tci,R,MAC(IDci,Tci,R) with k} به سرور می پردازد .
ii ) سرور پس از دریافت با توجه به AIDci به استخراج مقدار IDci می پردازد و سپس به بررسی تازگی پیام از رابطه T′-Tci<ΔT می پرازد که T′ آخرین زمان دریافتی پیام از کاربر است . در صورتی که احساس شود این پیام تکراری است و freshness بودن آن تایید نشود پیام حذف (fail) می شود در غیر اینصورت S به محاسبه hci=H1(IDci) و R′=(tci/x.hci).p+R و k=H3(IDci,Tci,R,R′)  می پردازد . سپس S به کنترل سازگاری MAC(IDci,Tci,R)with k می پردازد . در صورتی که در اطلاعات اشکالی وجود داشته باشد سرور جلسه اخیر را خاتمه می دهد .
iii) سپس سرور به انتخاب یک مقدار تصادفی مانند rs می پردازد و به محاسبه مقدار L=rs.P و Ls=rs.R می پردازد سپس شناسه گمنام جدید کاربر با رابطه AIDci#=AIDci⊕H2(IDci||Ls) تولید می شود . این شناسه گمنام به وسیله یک مقدار تصادفی جدید (rs) تولید می شود . مقادیر AIDci#,L,Ls توسط سرور محاسبه و تولید می شوند .
iv )سرور به تولید MAC(IDci,Ts,L) with k می پردازد و سپس به ارسال پیام M2={AIDci,Ts,L,MAC(IDci,TS,L) with k} به کاربر Ci می پردازد که Ts برچسب زمانی ارسال سرور به Ci می باشد . نهایتا S کلید نشست SK=H4(IDci,Tci,Ts,R,L,Ls) را تولید می کند .
v ) زمانی که پیام M2 به کاربر Ci رسید به سازگاری پیام MAC با استفاده از K اولیه می پردازد .و اگر نتیجه منفی بود Ci نشست را ترک می کند . در غیر این صورت ،کاربر Ci به محاسبه Lci=rci.P پرداخته و سپس به تولید کلید نشست از رابطه Sk=H4(IDci,Tci,Ts,R,L,Lci) می پردازد .
vi ) کاربر Ci به محاسبه شناسه گمنام از رابطهAIDci#=AIDci⊕H2(IDci||Ls) می پردازد و AIDc#i را برای احرازهویت های بعدی بعد از خاتمه نشست فعلی ذخیره می کند .
D ) فاز به روزرسانی کلیدخصوصی/شناسه :
از آن جایی که شناسه اصلی کاربر(IDci) هیچ گاه به صورت Plain بر روی کانال قرار نمی گیرد ، بنابراین نیازی به تغییر هویت کاربر وجود ندارد . بروزرسانی کلیدخصوصی مشتری مشابه وضعیت قبلی است . با این حال برای افزایش امنیت کلید خصوصی (resist brute force search attack) کاربر باید هویت و کلیدخصوصی خود را به صورت دوره ای به روزرسانی کند . بنابراین بهتر است مقادیر جدید شناسه و کلید خصوصی در یک جلسه امن تبادل شود زیرا مهاجم توانایی شناسایی فرمت داده ها را ندارد و نمی تواند مقادیر حیاتی را شناسایی کند .

۵- آنالیز امنیتی :

در این بخش نشان می دهیم که پروتکل پیشنهادی می تواند احرازهویت متقابل بین سرویس گیرنده وسرور را فراهم آورد و در مقابل چالش های مختلف از جمله گمنامی ، توافق کلید و.. موفق باشد . نتایج در جدول ۱ نمایش داده شده است و در ادامه به بررسی آن ها می پردازیم.
A ) گمنامی کاربر : در طرح پیشنهادی از شناسه گمنام کاربر به جای شناسه اصلی کاربر استفاده می کند که شناسه گمنام جدید از رابطه AIDci#=AIDci⊕H2(IDci||LS(c)) که مقادیر IDci,Ls,Lc مقادیر غیرقابل پیش بینی برای یک مهاجم می باشد .هم چنین یک مهاجم نمی تواند اطلاعات مفیدی درباره شناسه اصلی IDci بدست آورد .
B ) گمنامی کامل (Complete anonymity or perfect anonymity) : به معنای این می باشد که اطلاعاتی درباره شناسه (به جزء شناسه گمنام) از کاربر منتشر نشود . تنها اطلاعاتی که به صورت Plain در یک جلسه انتقال داده می شوند ، اطلاعاتی درباره شناسه گمنام می باشد . شناسه گمنام به وسیله شناسه اصلی و مقدار تصادفی rs و مقدار هرجلسه Ls(c) و یک تابع هش یک طرفه H2 که به طور تصادفی تولید می شود . از آن جا که سرور هم از هویت اصلی و کمنام همه کاربران مطلع است بررسی می کند تا هیچ گونه برخوردی بین آن ها وجود نداشته باشد . بنابراین این مکانیسم گمنامی را به صورت کامل تضمین می کند .
C ) احرازهویت متقابل : سرور و کاربر هردو هویت یکدیگر را احراز می کنند . در فاز احرازهویت و توافق کلید کاربر اعتبار خود را با MAC(IDci,Tci,R,R′) به سرور اعلام می کند و سرور اعتبار خود را با MAC(IDci,Tci,L) به کاربر نشان می دهد .مهاجم نمی تواند یک مقدار معتبر برای یک نشست را محاسبه کند چرا که او هویت واقعی کاربر را نمی داند و نمی تواند مقدار درستی را برای R بدست آورد تا رابطه k=H3(IDci,Tci,R,R′) برقرار باشد .
D )مقاومت در برابر حمله تکرار (Replay Attack): اگر یک مهاجم یک پیام را ذخیره کند و آن را مجدد به سرور ارسال کند حمله تکرار به وقع پیوسته است . انجام این کار در محیط های وایرلس اینترنت اشیاء به سادگی قابل انجام است . در چنین حالتی یک مهاجم احتیاج دارد که پیام های در دسترس را کنترل کند . در طرح پیشنهادی برچسب زمانی Tci و Ts در پیام هایMAC(IDci,Tci,R,R′) وMAC(IDci,Tci,L) جاسازی شده اند . سرور ابتدا با کنترل T′-Tci>ΔT به بررسی تازگی پیام دریافتی می پردازد . مهاجم هم چنین امکان تغییر MAC را بدون دانستن K ندارد . در نتیجه مهاجم نمی تواند با استفاده از حمله تکرار به سرور دسترسی پیدا کند .
E )سازگاری دربرابر حمله اصلاح و تبدیل (Modification attacK) :اگر مهاجمی ، برخی از اطلاعات را تغییر دهد آنگاه کاربر یا سرور می تواند تغییرات در پیام ها را تشخیص دهند . این به خاطر MAC است که تضمین می کند اصل پیام را نمی توان تغییر داد . مهاجم هم چنین نمی تواند یک پیام مشروع بدون دانستن شناسه اصلی و کلید خصوصی مربوط تولید کند .
F ) بروزرسانی پویا کلید خصوصی : کاربر می تواند تقاضای بروزرسانی کلید خصوصی را در فاز بروزرسانی انجام بدهد . تصادفی بودن کلید خصوصی توسط یک عدد تصادفی tci در رابطه Dci=(tci/x.hci).P تامین می شود . این ویژگی جدید باعث می شود تا کاربر نتواند به تنهایی تصمیم به تغییر کلید خصوصی بگیرد .
G )بروزرسانی شناسه Forward/Backward Security : یک فرایند دارای ویژگی Forward/Backward Security در بروزرسانی شناسه است در صورتی که شناسه کاربر تاثیر امنیتی بر شناسه گمنام در گذشته و آینده نداشته باشد . با توجه به تولید شناسه با رابطه AIDci#=AIDci⊕H2(IDci||Lc(s)) ، به تنهایی نمی توان از ارزش شناسه اصلی استفاده کرد . هم چنین محاسبه Ls یا Lc در سمت سرور یا کاربر یک امر رایج است که مهاجم امکان دسترسی به آن را ندارد .
H ) مقاومت در برابر حمله جعل هویت : طرح پیشنهادی ما در مقابل impersonation attack مقاوم است . ما فرض می کنیم یک مهاجم اطلاعاتی از شناسه اصلی و گمنام یک کاربر را بدست آورد .مهاجم می تواند پیام های AIDci و Tci و R=rci.P را تولید کند ولی انتظار می رود که پیام R′,k را به علت نداشتن کلید خصوصی Dci نتواند تولید کند . در مورد جعل هویت سرور نیز وضعیت مشابه حالت قبلی می باشد و مهاجم کلید خصوصی سرور (x) و شناسه اصلی را در اختیار ندارد .
I ) حمله Known session key : این حمله عبارت است از این که اگر یک مهاجم کلید نشست های گذشته را بدست آورد نباید بتواند به نشست اخیر با سرور دست یابد . در طرح ما یک کلید نشست براساس ECDLP و توابع هش یک طرفه شکل می گیرد و کلید نشست یک کلید کوتاه مدت است که برای هر نشست با دیگران به صورت مستقل توافق می شود بنابراین حتی اگر یک کلید نشست لو برود سایر کلیدها امن باقی می مانند.
J ) مقاومت در برابر حمله غیرهمزمان سازی (Desynchronous Attack) : تولید یک AID احتیاج به محاسبات همزمان دو طرف دارد . اگر کاربر پیامی را از سرور دریافت نکند نمی تواند به سرور متصل شود پس یک فرض منطقی وجود دارد پس یک فرض منطقی وجود دارد که احرازهویت متقابل با توافق کلید تنها آغاز ارتباط است که به معنای ایجاد یک جلسه امن ارتباطی است که در آن جلسه برای بروزرسانی های مرتبط با جلسه بعدی توافق صورت می پذیرد . بنابراین اگر پیام احراز هویت دوطرفه دریافت نشود و یا ارتباط به هر شکلی قطع شود سرور متوجه می شود که کاربر ممکن است اطلاعات خود را بروزرسانی نکرده باشد . پس حمله غیرهمزمان سازی در این جا مطرح نمی باشد .
جدول 1 و2

جدول ۱ و۲

۶- آنالیز کارآیی :

برای راحتی در ارزیابی درسمت کاربر و سرور ما به تعریف  برخی از نشانه های می پردازیم :
Cpm :زمان محاسباتی برای یک ضرب اسکالر بر روی منحنی بیضوی
Cpa : زمان محاسباتی برای یک جمع بر روی منحنی بیضوی
Ch : زمان محاسباتی یک تابع هش یک طرفه یا تابع هش map to point
Cmac  : زمان محاسباتی MAC
در جدول ۲ ما خلاصه ای از نتایج فاز احرازهویت متقابل و توافق کلید را با پروتکل های مشابه نشان داده ایم . به طور کلی واحدها براساس Cpa,Cpm,Ch,Cmac تعیین می شوند .

تحلیل مهندس معاونی :

۱- اشکال عمده در هر سه طرح مقاله فوق محاسبه کلید خصوصی کاربر (مشتری) در مرحله ثبت نام توسط سرور است و حتی این مقدار توسط سرور نگهداری می شود که این با مفهوم کلید خصوصی کاملا در تضاد است . در برخی از طرح ها یک مهاجم insider می تواند با دسترسی به دیتابیس سرور با یافتن همین کلید ضربات سنگینی به طرح وارد کند .
۲-در طرح Debiao یک کاربر با داشتن Idci یک کاربر و با استفاده از کلید خصوصی خود امکان بدست آوردن کلید نشست را خواهد داشت هر چند این حمله در طرح های دیگر وارد نیست اما می توان برای احرازهویت به سرور از این حمله استفاده کرد.
۳- استفاده از اسمارت کارت در محیط اینترنت اشیا با سرعت جابه جایی بالا و  نشان دهنده عدم آگهی نویسنده از مفاهیم پایه ای اینترنت اشیاء است .
۴-امکان ایجاد حمله مرد میانی در طرح نهایی

طرح پیشنهادی :

——


ترجمه و تحلیل : مسعود معاونی

کد مقاله : B961001