امضای دیجیتال

معایب امضای دیجیتال

با وجود تمام مزایایی که امضای دیجیتال دارد و در ادامه همین مقاله به بررسی آن می‌پردازیم ولی این طرح همچنان در حل برخی مشکلات که در ادامه آن‌ها را مطرح می‌کنیم ناتوان است. الگوریتم و قوانین مربوط به آن نمی‌توانند تاریخ و زمان امضای یک سند را در ذیل آن درج کنند از همین جهت شخص دریافت‌کننده نمی‌تواند این اطمینان را حاصل کند که نامه واقعاً در چه تاریخ و زمانی به امضا رسیده‌است. ممکن است در محتویات سند تاریخی درج شده باشد و با تاریخی که شخص نامه را امضا کرده باشد مطابقت نداشته باشد. البته برای حل این مشکل می‌توان از یک راه حل با عنوان زمان اعتماد به مهرو امضا استفاده کرد.
همان‌طور که در ابتدای تعریف امضای دیجیتال اشاره شد این طرح غیرقابل انکار است و ساختار امضای دیجیتال بر همین اساس شکل گرفته‌است. همان‌طور که می‌دانید تکذیب در لغت به معنی انکار هرگونه مسئولیت نسبت به یک فعالیت است. هنگامی که پیامی ارسال می‌شود و فرستده آن را همراه امضا دریافت می‌کند در واقع این اطمینان در شخص دریافت‌کننده ایجاد می‌شود که نامه را چه کسی امضا کرده‌است و انکار امضا کاری مشکل به نظر می‌رسد. البته تا زمانی که کلید خصوصی به صورت مخفی باقی بماند شخص فرستنده نمی‌تواند چنین ادعایی داشته باشد ولی هنگامی که فایل امضای شخصی مورد حمله قرار بگیرد نه تنها خود فایل امضا اعتبار لازم را از دست می‌دهد بلکه استفاده از زمان اعتبار مهر و امضا نیز دیگر کاربردی نخواهد داشت. البته یادآوری این نکته لازم است هنگامی که شما در سامانه خود از کلید عمومی بهره می‌گیرد دیگر نمی‌توانید امضای خود را انکار کنید و در صورتی این موضوع امکان‌پذیر است که کل شبکه مورد حمله واقع شود و سامانه از اعتبار لازم ساقط شود. بنا براین توجه به انتخاب یک راه حل درست برای پیاده‌سازی طرح امضای دیجیتال از اهمیت ویژه‌ای برخوردار است و همان‌طور که عنوان شد ممکن است با یک مشکل کل اعتبار مجموعه زیر سؤال برود.
مطابق اصول فنی امضای دیجیتال که در توضیح‌های ابتدایی آورده شده‌است، فایل امضای دیجیتال رشته‌ای از بیت‌ها را در اجرای این طرح به کار می‌برد. در واقع افراد در این طرح مجموعه‌ای از بیت‌ها را که ترجمه پیام است امضا می‌کنندآن آن‌ها ترجمه معنایی آن‌ها ذره‌ها امضا می‌کنند. مشکل دیگر امضای دیجیتال این است که چون پیام توسط یک تابع مشخص به مجموعه‌ای از بیت‌ها ترجمه و پردازش می‌شود ممکن است در طی مرحله انتقال و دریافت پیام ترجمه پیام دچار خدشه شود و مفهوم دیگری به خود گیرد. برای حل این مشکل از روشی با عنوان دبلیو وای اس آی دبلیو وای اس استفاده می‌شود به این معنا که همان چیزی که مشاهده می‌شود امضا می‌شود. در این روش همان اطلاعات ترجمه شده خود را بدون آن که اطلاعات مخفی دیگری در آن قرار گیرد امضا می‌کند و پس از امضا و تأیید اطلاعات از سوی شخص فرستنده درون سامانه به کار گرفته می‌شود. در واقع این روش ضمانت نامه محکمی برای امضای دیجیتال به‌شمار می‌رود و در سیستم‌های رایانه‌ای مدرن قابلیت پیاده‌سازی و اجرا را خواهد داشت.

مزایای امضای دیجیتال

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

کلید عمومی رمزنگاری

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

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

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

تولید کلید

تولید کلید روند تولید کلیدها برای رمز نگاری است. یک کلید رمزنگاری را انجام می‌دهد و یک کلید رمزگشایی می‌کند. سیستم‌های رمزنگاری جدید، سیستم رمزنگاری متقارن مانند الگوریتم‌های DES و AES و سیستم رمزنگاری با کلید عمومی مانند الگوریتم آر اس اِی را شامل می‌شوند. الگوریتم‌های متقارن از یک کلید به اشتراک گذاشته شده استفاده می‌کنند و الگوریتم‌های کلید عمومی از کلید عمومی و کلید خصوصی بهره می‌گیرند که کلید عمومی دسترسی عمومی دارد و وقتی فرستنده داده‌ها را با کلید عمومی رمزگذاری می‌کند، گیرنده تنها با داشتن کلید خصوصی می‌تواند داده‌ها را رمزگشایی کند.

پروتکل رمز نگاری

یک پروتکل امنیت (پروتکل رمزنگاری) یک مفهوم انتزاعی است و در واقع تضمینی برای امنیت سیستم به‌شمار می‌رود و امنیت سیستم رمزنگاری به برقراری این قواعد وابسته است. پروتکل تعیین می‌کند که الگوریتم‌ها چگونه می‌بایست به کار روند تا همراه با کارایی لازم، امنیت خود را نیز حفظ کنند. پروتکل‌ها به اندازه کافی و به صورت مفصل جزئیات را دربارهٔ ساختارهای داده‌ها و شکل استفاده از آن‌ها را تعیین می‌کنند. اجرای کامل و درست پروتکل می‌تواند این اطمینان را در کاربر ایجاد کند که امنیت سیستم تا میزان مورد نیاز تأمین می‌شود. پروتکل رمزنگاری معمولاً در ابتدایی‌ترین حالت موارد زیر را شامل می‌شوند:
بررسی و تأیید صحت کلید؛ تعیین اعتبار موجود بودن کلید در سیستم؛ در مورد روش متقارن اعتبار لازم را به یک پیام می‌دهد؛ حفظ امنیت داده در سطح برنامه؛ روش‌هایی که اجازه نمی‌دهد کاربر امضای خود را تکذیب کند (ویژگی غیرقابل انکار بودن).
به عنوان مثال؛ پروتکل امنیت لایه‌های حمل اطلاعات یک پروتکل رمزنگاری است که برای حفظ امنیت اتصالات در سطح وب را تأمین می‌کند. طرز کار این پروتکل بر مبنای سیستم ۵۰۹X. است که یک مرحله تولید کلید و با استفاده از کلید عمومی و روش رمزنگاری با کلید عمومی داده‌ها را در سطح برنامه‌ها حمل می‌کند؛ ولی این پروتکل نمی‌تواند ویژگی غیرقابل انکار بودن رمزنگاری را تأمین کند. انواع دیگری از پروتکل‌های رمزنگاری وجود دارند که برخی از آن‌ها خود شامل چندین پروتکل مختلف دیگر می‌شوند
امزوه تنوع گسترده‌ای در زمینه پروتکل‌ها به وجود آمده‌است و شرکت‌های مختلف برای رفع معایب امضای دیجیتال و ایجاد امنیت هر چه بیشتر در این ساختار تلاش هی چشمگیری انجام داده‌اند.
به‌طور کلی، یک پروتکل رمزنگاری، مجموعه‌ای از قواعد و روابط ریاضی است که چگونگی ترکیب کردن الگوریتم‌های رمزنگاری و استفاده از آن‌ها به منظور ارائه یک سرویس رمزنگاری خاص در یک کاربرد خاص را فراهم می‌سازد.
معمولاً یک پروتکل رمزنگاری مشخص می‌کند که اطلاعات موجود در چه قالبی باید قرار گیرند.
چه روشی برای تبدیل اطلاعات به عناصر ریاضی باید اجرا شود.
کدامیک از الگوریتم‌های رمزنگاری و با کدام پارامترها باید مورد استفاده قرار گیرند.
روابط ریاضی چگونه به اطلاعات عددی اعمال شوند.
چه اطلاعاتی باید بین طرف ارسال‌کننده و دریافت‌کننده رد و بدل شود.
چه مکانیسم ارتباطی برای انتقال اطلاعات مورد نیاز است.
─ به عنوان مثال می‌توان به پروتکل تبادل کلید دیفی- هلمن برای ایجاد و تبادل کلید رمز مشترک بین دو طرف اشاره نمود.

جمع‌بندی

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