تشریح کریپتوگرافی-احراز هویت پیام(قسمت پنجم)

Category : دات نت | Sub Category : سی شارپ Posted on 2020-11-02 20:25:03


تشریح کریپتوگرافی-احراز هویت پیام(قسمت پنجم)

ادامه از قسمت چهارم

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

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

کد تأیید صحت پیام (MAC)
الگوریتم MAC یک تکنیک رمزنگاری کلید متقارن برای تأیید اعتبار است. برای ایجاد فرایند MAC ، فرستنده و گیرنده یک کلید متقارن K را به اشتراک می گذارند.


در اصل ، MAC یک چک رمزگذاری شده بر روی پیام اصلی است که همراه با یک پیام برای اطمینان از تأیید صحت پیام ارسال می شود.


روند استفاده از MAC برای تأیید اعتبار در تصویر زیر به تصویر کشیده شده است -




بگذارید اکنون سعی کنیم کل روند را با جزئیات درک کنیم -


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


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


فرستنده پیام را به همراه MAC ارسال می کند. در اینجا ، فرض می کنیم که پیام به صورت واضح ارسال می شود ، زیرا ما نگران تهیه تأیید اعتبار مبداء پیام هستیم نه محرمانه بودن. اگر محرمانه بودن لازم باشد ، پیام نیاز به رمزگذاری دارد.


با دریافت پیام و MAC ، گیرنده پیام دریافت شده و کلید مخفی مشترک K را در الگوریتم MAC تغذیه می کند و مقدار MAC را دوباره محاسبه می کند.


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

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

محدودیت های MAC
دو محدودیت عمده MAC وجود دارد ، هر دو به دلیل ماهیت متقارن عملکرد آن -

ایجاد راز مشترک.


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


این امر مستلزم ایجاد راز مشترک قبل از استفاده از MAC است.

عدم توانایی در عدم رد اعتبار

عدم تأیید این اطمینان است که یک مبدل پیام نمی تواند پیامها و تعهدات یا اقدامات قبلاً ارسال شده را انکار کند.

تکنیک MAC سرویس غیرقابل انکار را ارائه نمی دهد. اگر فرستنده و گیرنده درگیر مناقشه در مورد منشاء پیام باشند ، MAC ها نمی توانند اثبات اینکه یک پیام توسط فرستنده فرستاده شده است را ارائه دهند.

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


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


رمزنگاری امضاهای دیجیتال

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

به طور مشابه ، امضای دیجیتال روشی است که شخص / موجود را به داده های دیجیتال متصل می کند. این اتصال می تواند به طور مستقل توسط گیرنده و هر شخص ثالث تأیید شود.

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

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

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







نکات زیر کل روند را با جزئیات توضیح می دهد -


هر شخصی که این طرح را پذیرفته است ، یک جفت کلید عمومی-خصوصی دارد.


به طور کلی ، جفت های کلیدی مورد استفاده برای رمزگذاری / رمزگشایی و امضای / تأیید با یکدیگر متفاوت هستند. کلید خصوصی که برای امضاء استفاده می شود به عنوان کلید امضا و کلید عمومی به عنوان کلید تأیید نامیده می شود.


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


مقدار هش و کلید امضا سپس به الگوریتم امضا ارائه می شوند که امضای دیجیتالی را در هش داده شده تولید می کند. امضا به داده ها پیوست می شود و سپس هر دو به تأیید کننده ارسال می شوند.


تأییدکننده امضای دیجیتال و کلید تأیید را در الگوریتم تأیید تغذیه می کند. الگوریتم تأیید مقداری به عنوان خروجی می دهد.


تأییدکننده همچنین برای تولید مقدار هش همان عملکرد هش را بر روی داده های دریافت شده اجرا می کند.


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


از آنجا که امضای دیجیتالی توسط کلید امضای خصوصی ایجاد شده و هیچ کس دیگری نمی تواند این کلید را داشته باشد. امضاکننده نمی تواند امضای داده ها را در آینده رد کند.


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


فرض کنید RSA به عنوان الگوریتم امضا استفاده می شود. همانطور که در فصل رمزگذاری کلید عمومی مورد بحث قرار گرفته است ، فرایند رمزگذاری / امضاء با استفاده از RSA شامل ضریب مدولار است.


امضای داده های بزرگ از طریق نمایش ماژولار از نظر محاسباتی بسیار گران و وقت گیر است. هش داده ها هضم نسبتاً کمی از داده ها است ، از این رو امضای هش کارآمدتر از امضای کل داده ها است.


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


جدا از امکان ارائه عدم رد پیام ، امضای دیجیتال نیز تأیید صحت پیام و یکپارچگی داده را ارائه می دهد. بگذارید مختصرا ببینیم که چگونه این امر با امضای دیجیتال حاصل می شود -


تأیید اعتبار پیام - وقتی تأییدکننده با استفاده از کلید عمومی فرستنده ، امضای دیجیتالی را تأیید می کند ، اطمینان می یابد که امضا فقط توسط فرستنده ای ساخته شده است که دارای کلید خصوصی مخفی مربوطه و هیچ کس دیگری نیست.


یکپارچگی داده ها - در صورت دسترسی یک مهاجم به داده ها و اصلاح آن ، تأیید امضای دیجیتال در انتهای گیرنده از کار می افتد. هش داده های اصلاح شده و خروجی ارائه شده توسط الگوریتم تأیید مطابقت ندارد. از این رو ، گیرنده می تواند پیام را با فرض نقض تمامیت داده ها با اطمینان رد کند.


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


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




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


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


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


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





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



نظر بده: