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

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

ویرایش