شما اینجا هستید
تحقیقات » 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


 

برچسب ها :

این مطلب بدون برچسب می باشد.

شما هم می توانید دیدگاه خود را ثبت کنید

کامل کردن گزینه های ستاره دار (*) الزامی است -
آدرس پست الکترونیکی شما محفوظ بوده و نمایش داده نخواهد شد -

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