امضای دیجیتال: تفاوت میان نسخه‌ها

محتوای حذف‌شده محتوای افزوده‌شده
افزودن {{منبع}} (توینکل)
FreshmanBot (بحث | مشارکت‌ها)
جز اصلاح فاصله مجازی + اصلاح نویسه با استفاده از AWB
خط ۱۵:
در سال ۱۹۸۴ میشلی، گلدواسر و ریوست با تمام دقت موارد مورد نیاز را برای برقراری امنیت در طرح امضای دیجیتال بررسی کردند. آن‌ها با بررسی مدل‌های مختلف حمله برای امضای دیجیتال توانستند طرح فایل امضای دیجیتال جی ام آر را ارائه کنند که می‌تواند در مقابل حمله به پیام و جعلی بودن آن مقاومت کند.
 
طرح‌های ابتدایی امضای دیجیتال مشابه همدیگر بودند: آنهاآن‌ها از جایگشت (تبدیل) [[تابع دریچه|دریچه‌ای]] استفاده می‌کردند، مانند تابع آر اس اِی یا در برخی موارد از طرح امضای رابین بهره می‌گرفتند. جایگشت دریچه‌ای نوعی از مجموعه جایگشت هاست که به وسیله پارامترها مشخص می‌شود که در محاسبه‌های رو به جلو سریع عمل می‌کند ولی در محاسبه‌های بازگشتی با مشکل مواجه می‌شود. با این وجود برای هر پارامتر یک دریچه وجود دارد که حتی محاسبه‌های بازگشتی را آسان می‌کند. جایگشت‌های دریچه‌ای می‌توانند مانند سیستم‌های رمزگذاری با کلید عمومی باشند. در جایی که پارامتر به عنوان کلید عمومی و جایگشت دریچه‌ای به عنوان کلید پنهان است رمزگذاری مانند محاسبه جایگشت در جهت رو به جلوست و رمز گشایی مانند محاسبه در جهت معکوس است. همچنین جایگشت‌های دریچه‌ای می‌توانند مانند طرح فایل امضا دیجیتال باشند، به این صورت که محاسبه در جهت معکوس با کلید پنهان مانند امضا کردن است و محاسبه در جهت پیش رو مانند بررسی صحت امضاست. به دلیل این همخوانی امضاهای دیجیتال اغلب بر پایه سامانه رمزنگاری با کلید عمومی تشریح می‌شوند اما این تنها روش پیاده‌سازی امضای دیجیتال نیست.
 
ولی این نوع طرح امضای دیجیتال در برابر حملات آسیب‌پذیر است و شخص مهاجم می‌تواند با دست کاری در روش بررسی صحت امضا، یک امضای دیجیتال جعلی برای خود ساخته و شبکه را با مشکل مواجه سازد. هرچند این نوع امضا به شکل مستقیم به کار گرفته نمی‌شود ولی ترجیحاً ابتدا پیام را با استفاده از روش‌های [[درهم سازی]] خلاصه می‌کنند و سپس خلاصه پیام را امضا می‌کنند و در نتیجه با استفاده از همین ترفند، شخص مهاجم فقط می‌تواند یک امضای دیجیتال جعلی برای خود درست کند که این امضا با محتویات مربوط به خروجی [[تابع درهم سازی]] از پیام خلاصه شده تطابق ندارد و شخص مهاجم نمی‌تواند به محتویات پیام خدشه‌ای وارد کند.
 
همچنین دلایل متنوعی وجود دارد تا افرادی که می‌خواهند از امضای دیجیتال استفاده کنند از خلاصه پیام و خروجی تابع درهم سازیدرهم‌سازی برای امضا استفاده کنند. اولین دلیل ایجاد بازدهی مناسب برای طرح امضای دیجیتال است زیرا فایل امضا خیلی کوتاهتر خواهد بود و در نتیجه زمان کمتری صرف می‌شود. دومین دلیل برای سازگاری بیشتر است زیرا با استفاده از تابع درهم سازیدرهم‌سازی شما می‌توانید خروجی مطابق با نوع الگوریتمی که به کار گرفته‌اید داشته باشید. سومین دلیل برای درستی اجرای امضای دیجیتال است: بدون استفاده از تابع درهم سازیدرهم‌سازی ممکن است پیام شما در هنگام امضا به دلیل مشکل فضا به بخش‌های مختفل تقسیم شود و شخص دریافت کنندهدریافت‌کننده نتواند به درستی منظور فرستنده را دریافت کند بنابراین از این تابع استفاده می‌کند تا خود پیام را به شکل خلاصه و بدون ایجاد مشکل ارسال کند.
 
نظریه‌های امنیتی
خط ۳۲:
# در این مورد از نتایج حمله به امضای دیجیتال شخص مهاجم فقط می‌تواند از طریق امضای در دسترس خود و برخی پیام‌ها به محتویات آن‌ها دست پیدا کند و دیگر شخص مهاجم توانایی انتخاب ندارد و انتخاب‌های او محدود می‌شود.
== معایب امضای دیجیتال ==
با وجود تمام مزایایی که امضای دیجیتال دارد و در ادامه همین مقاله به بررسی آن می‌پردازیم ولی این طرح همچنان در حل برخی مشکلات که در ادامه آن‌ها را مطرح می‌کنیم ناتوان است. الگوریتم و قوانین مربوط به آن نمی‌توانند تاریخ و زمان امضای یک سند را در ذیل آن درج کنند از همین جهت شخص دریافت کنندهدریافت‌کننده نمی‌تواند این اطمینان را حاصل کند که نامه واقعاً در چه تاریخ و زمانی به امضا رسیده‌است. ممکن است در محتویات سند تاریخی درج شده باشد و با تاریخی که شخص نامه را امضا کرده باشد مطابقت نداشته باشد. البته برای حل این مشکل می‌توان از یک راه حل با عنوان زمان اعتماد به مهرو امضا استفاده کرد.
همان‌طور که در ابتدای تعریف امضای دیجیتال اشاره شد این طرح غیرقابل انکار است و ساختار امضای دیجیتال بر همین اساس شکل گرفته‌است. همان‌طور که می‌دانید تکذیب در لغت به معنی انکار هرگونه مسئولیت نسبت به یک فعالیت است. هنگامی که پیامی ارسال می‌شود و فرستده آن را همراه امضا دریافت می‌کند در واقع این اطمینان در شخص دریافت کنندهدریافت‌کننده ایجاد می‌شود که نامه را چه کسی امضا کرده‌است و انکار امضا کاری مشکل به نظر می‌رسد. البته تا زمانی که کلید خصوصی به صورت مخفی باقی بماند شخص فرستنده نمی‌تواند چنین ادعایی داشته باشد ولی هنگامی که فایل امضای شخصی مورد حمله قرار بگیرد نه تنها خود فایل امضا اعتبار لازم را از دست می‌دهد بلکه استفاده از زمان اعتبار مهر و امضا نیز دیگر کاربردی نخواهد داشت. البته یادآوری این نکته لازم است هنگامی که شما در سامانه خود از کلید عمومی بهره می‌گیرد دیگر نمی‌توانید امضای خود را انکار کنید و در صورتی این موضوع امکان‌پذیر است که کل شبکه مورد حمله واقع شود و سامانه از اعتبار لازم ساقط شود. بنا براین توجه به انتخاب یک راه حل درست برای پیاده‌سازی طرح امضای دیجیتال از اهمیت ویژه‌ای برخوردار است و همان‌طور که عنوان شد ممکن است با یک مشکل کل اعتبار مجموعه زیر سؤال برود.
مطابق اصول فنی امضای دیجیتال که در توضیح‌های ابتدایی آورده شده‌است، فایل امضای دیجیتال رشته‌ای از بیت‌ها را در اجرای این طرح به کار می‌برد. در واقع افراد در این طرح مجموعه‌ای از بیت‌ها را که ترجمه پیام است امضا می‌کنندآن آنهاآن‌ها ترجمه معنایی آنهاآن‌ها ذره‌ها امضا می‌کنند. مشکل دیگر امضای دیجیتال این است که چون پیام توسط یک تابع مشخص به مجموعه‌ای از بیت‌ها ترجمه و پردازش می‌شود ممکن است در طی مرحله انتقال و دریافت پیام ترجمه پیام دچار خدشه شود و مفهوم دیگری به خود گیرد. برای حل این مشکل از روشی با عنوان دبلیو وای [[اس آی]] دبلیو وای اس استفاده می‌شود به این معنا که همان چیزی که مشاهده می‌شود امضا می‌شود. در این روش همان اطلاعات ترجمه شده خود را بدون آن که اطلاعات مخفی دیگری در آن قرار گیرد امضا می‌کند و پس از امضا و تأیید اطلاعات از سوی شخص فرستنده درون سامانه به کار گرفته می‌شود. در واقع این روش [[ضمانت نامه]] محکمی برای امضای دیجیتال به‌شمار می‌رود و در سیستم‌های رایانه‌ای مدرن قابلیت پیاده‌سازی و اجرا را خواهد داشت.
 
== مزایای امضای دیجیتال ==
حال در این بخش مزایای استفاده از امضای دیجیتال را مورد بررسی قرار خواهیم داد. یکی از دلایل به کار گیریکارگیری امضاهای دیجیتالی که یک دلیل عادی به‌شمار می‌رود ایجاد اعتبار برای امضاها در یک سامانه تبادل داده و اطلاعات است. در واقع استفاده از امضای دیجیتال سندیت و اعتبار ویژه‌ای به یک سند می‌بخشند. وقتی که هر فرد دارای یک کلید خصوصی در این سامانه است با استفاده از آن می‌تواند سند را امضا کرده و به آن ارزش و اعتبار داده و سپس آن را ارسال کند. اهمیت ایجاد اطمینان قطعی و محکم برای شخص دریافت کنندهدریافت‌کننده پیام دربارهٔ صحت ادعای فرستنده در برخی از انواع [[انتقال اطلاعات]] مانند داده‌های مالی به خوبی خود را نشان می‌دهد و اهمیت وجود امضای دیجیتال درست را بیش از پیش به نمایش می‌گذارد. به عنوان مثال تصورکنید شعبه‌ای از یک بانک قصد دارد دستوری را به دفتر مرکزی بانک به منظور درخواست ایجاد تعادل در حساب‌های خود را ارسال کند. اگر شخص دریافت کنندهدریافت‌کننده در دفتر مرکزی متقاعد نشود که این پیام، یک پیام صادقانه است و از سوی یک منبع مجاز ارسال شده‌است طبق درخواست عمل نکرده و در نتیجه مشکلاتی را به وجود می‌آورد.
در موارد بسیار زیادی، فرستنده و گیرنده پیام نیاز دارند این اطمینان را به دست بیاورند که پیام در مدت ارسال بدون تغییر باقی‌مانده‌است. هرچند رمزنگاری محتوای پیام را مخفی می‌کند ولی ممکن است امضا در یک سامانه از اعتبار ساقط شود و محتویات یک پیام دست‌خوش تغییرات گردد؛ ولی استفاده از امضای دیجیتال به عنوان روشی از رمز نگاری می‌تواند ضامن درستی و بی نقصی یک پیام در طی عملیات انتقال اطلاعات باشد زیرا همان‌طور که در ساختار اجرایی شدن الگوریتم مشاهده کردید از تابع درهم سازیدرهم‌سازی بهره گرفته شده‌است و همین نکته ضمانت بهتری را برای درستی و صحت یک پیام ایجاد می‌نماید.
 
== کلید عمومی رمزنگاری ==
خط ۴۶:
دو شاخه اصلی رمزنگاری با کلید عمومی عبارتند از:
رمزگذاری کلیدی عمومی: پیامی که با کلید عمومی رمزگذاری شده باشد فقط به وسیله صاحب کلید خصوصی مطابق با آن رمزگشایی می‌شود و این موضوع به همکاری فرستنده و گیرنده بستگی دارد و می‌تواند اعتماد را تا اندازه زیادی در این سیستم تأمین کند و همکاری کرد.
امضاهای دیجیتال: در مورد امضای دیجیتال پیام با استفاده از کلید خصوصی فرستنده رمزگذاری می‌شود و با استفاده از کلید عمومی فرستنده نیز رمزگشایی می‌شود. رمزنگاری کلید عمومی در مقایسه با [[صندوق پستی]] مانند صندوق پستی قفل شده همراه یک دریچه است که این دریچه در دسترس عموم قرار دارد به طوربه‌طور مثال اطلاعاتی از قبیل محل خیابان در اختیار عموم قرار می‌گیرد. هرکس با دانستن آدرس خیابان می‌تواند به درب مورد نظر مراجعه کرده و پیام مکتوب را از طریق دریچه می‌تواند ببیند ولی فقط شخصی که کلید بازکردن صندوق پستی را دارا می‌باشد می‌تواند پیام را بخواند. همچنین امضاهای دیجیتال شبیه پلمب یک پاکت نامه است که هرکس می‌تواند پاکت نامه را باز کند ولی پلمی فرستنده بر روی [[پاکت نامه]] به عنوان نشانی از فرستنده باقی خواهد ماند. مسئله اصلی برای استفاده از رمزنگاری عمومی ایجاد اطمینان در مسیر ارسال اطلاعات است. با توجه به مثال‌های ذکر شده باید کلید عمومی برای هر شخص به درستی تولید شود تا از سوی شخص سومی مورد تهاجم واقع نشود و سلامت سیستم حفظ شود. یک شیوه مرسوم برای رسیدگی به این مسئله استفاده از یک سازمان کلید عمومی است که بتواند در مورد شخص سومی که وارد سیستم می‌شود یک دسترسی متناسب تعریف کند.
تمامی تکنیک‌های قابلیت اجرای سریعتر نسبت به اجرای سیستم کلید خصوصی را دارند و می‌توانند به اندازه کافی برای برنامه‌های متنوع کلید تولید کنند. در عمل اغلب رمز نگاری با کلید عمومی با سیستم کلید خصوصی به کار می‌رود تا بتواند بازدهی بیشتری داشته باشد. چنین ترکیب‌هایی را سیستم رمزنگاری دو رگه می‌نامند. برای رمزنگاری، فرستنده پیام با استفاده از الگوریتم تولید کلید به طوربه‌طور تصادفی یک کلید تولید می‌کند و با استفاده از آن کلید تصادفی عملیات رمزنگاری با کلید عمومی را انجام می‌دهد. برای امضاهای دیجیتالی، فرستنده پیام با استفاده از تابع درهم سازیدرهم‌سازی پیام را خرد می‌کنند و پس از تأیید محتوای نامه، آن را امضا می‌کند. همچنین گیرنده با استفاده از تابع درهم سازیدرهم‌سازی محاسباتی را انجام می‌دهد و کدی را به دست می‌آورد و این کد را با کد حاصل از اعمال تابع درهم سازیدرهم‌سازی بر روی امضا، مقایسه می‌کند و بررسی می‌کند که آیا پیام مورد حمله قرار گرفته‌است یا خیر.
 
== تولید کلید ==
خط ۵۷:
به عنوان مثال؛ پروتکل امنیت لایه‌های حمل اطلاعات یک پروتکل رمزنگاری است که برای حفظ امنیت اتصالات در سطح وب را تأمین می‌کند. طرز کار این پروتکل بر مبنای سیستم ۵۰۹X. است که یک مرحله تولید کلید و با استفاده از کلید عمومی و روش رمزنگاری با کلید عمومی داده‌ها را در سطح برنامه‌ها حمل می‌کند؛ ولی این پروتکل نمی‌تواند ویژگی غیرقابل انکار بودن رمزنگاری را تأمین کند. انواع دیگری از [[پروتکل‌های رمزنگاری]] وجود دارند که برخی از آن‌ها خود شامل چندین پروتکل مختلف دیگر می‌شوند
امزوه تنوع گسترده‌ای در زمینه پروتکل‌ها به وجود آمده‌است و شرکت‌های مختلف برای رفع معایب امضای دیجیتال و ایجاد امنیت هر چه بیشتر در این ساختار تلاش هی چشمگیری انجام داده‌اند.
به طوربه‌طور کلی، یک پروتکل رمزنگاری، مجموعه‌ای از قواعد و روابط ریاضی است که چگونگی ترکیب کردن الگوریتم‌های رمزنگاری و استفاده از آن‌ها به منظور ارائه یک سرویس رمزنگاری خاص در یک کاربرد خاص را فراهم می‌سازد.
معمولاً یک پروتکل رمزنگاری مشخص می‌کند که اطلاعات موجود در چه قالبی باید قرار گیرند.
چه روشی برای تبدیل اطلاعات به عناصر ریاضی باید اجرا شود.