همهگیری ویروس کرونا رنگ و بوی تازهای به دورکاری بخشید و شرکتها در موقعیتی کاملاً جدید قرار گرفتند. قطعاً طی یکی دو سال گذشته افراد زیادی به خاطر حفظ فاصلۀ اجتماعی و عدم امکان تعامل رو در رو، مجبور بودن بعضی از اسناد رسمی رو بصورت دیجیتالی امضا کنن. الگوریتم (Digital Signatures Algorithm)DSA برای حفظ اصالت و یکپارچگی چنین اسنادی که اغلب حاوی اطلاعات حیاتی بودن اجرایی شد و به یک استاندارد جهانی برای تأیید امضاهای دیجیتال تبدیل شد.
پیش از معرفی این الگوریتم، به معرفی رمزگذاری نامتقارن(Asymmetric encryption) میپردازیم چون این نوع رمزگذاری، امضاهای دیجیتال رو مطابق با معماری رمزنگاری نامتقارن تأیید میکنه. این معماری با نام معماری رمزنگاری کلید عمومی(Public-key cryptography architecture) هم شناخته میشه.
Asymmetric encryption یا رمزگذاری نامتقارن
در متد رمزگذاری نامتقارن از دو تا کلید مجزا استفاده میشه؛ یکی از این کلیدها برای رمزگذاری و یکی برای رمزگشایی است. در این متد، از کلید عمومی برای رمزگذاری و کلید خصوصی برای رمزگشایی استفاده میشه. البته هر دو تا کلید رو گیرنده ایجاد میکنه.
استفاده از کلیدهای مجزا برای رمزگذاری و رمزگشایی (تصویر بالا) باعث شده، همانند متد رمزگذاری متقارن، دیگه نیازی به تبادل کلید نباشه.
برای مثال، اگر آلیس بخواد پیامی برای باب ارسال کنه، هم کلید خصوصی و هم کلید عمومی باید به باب تعلق داشته باشن.
فرایند بالا به شکل زیر است:
-
مرحله اول: آلیس برای رمزگذاری پیام از کلید عمومی باب استفاده میکنه.
-
مرحله دوم: پیام رمزگذاری شده به دستِ باب میرسه.
-
مرحله سوم: باب پیام رو با کلید خصوصی رمزگشایی میکنه.
در این روش، گیرنده و فرستنده دیگه نیازی به تبادل کلید خصوصی ندارن و اینجوری احتمال سوءاستفاده کاهش پیدا میکنه. حالا که با کارکرد رمزگذاری نامتقارن آشنا شدین، نگاهی میندازیم به نحوۀ راهاندازی معماری امضای دیجیتال.
چرا رمزنگاری یک راهکار هوشمنده؟
در متد رمزنگاری برای اینکه افراد غیرمجاز نتونن به اطلاعات حیاتی دسترسی پیدا کنن از کد و رمز (cipher) استفاده میشه. رمزنگاری در حوزههای مختلفی مثل بانکداری، ارتباطات نظامی و ایمیلهای امن، از دادهها محافظت میکنه.
رمزنگاری روشی کارآمد و ایمن برای محافظت از اطلاعات و ارتباطات حساس است و برای همین میشه گفت یک راهکار هوشمند است. در متد رمزنگاری از الگوریتمهای پیشرفته ریاضی برای رمزگذاری دادهها استفاده میشه: پس از رمزگذاری دادهها افراد غیرمجاز نمیتونن به اونا دسترسی پیدا کنن و اشخاص ثالث هم نمیتونن ارتباطات رو رهگیری و دادهها رو دستکاری کنن.
با تکیه بر این متد میشه اطلاعات رو به صورت ایمن در فضای اینترنت ارسال کرد و از دسترسی غیرمجاز و دستکاری اونا جلوگیری کرد. رمزنگاری امکان تأیید اصالت دادهها(data authentication) رو فراهم میکنه؛ به عبارت دیگه، با تکیه بر این روش میشه یکپارچگی دادهها و همچنین هویت فرستنده رو تأیید کرد و به بیان ساده، امکان دستکاری و تغییر غیرمجاز دادهها وجود نداره. در آخر، رمزنگاری میتونه کاربران رو احراز هویت کنه و این اطمینان رو به ما بده که فقط افراد مجاز به دادهها دسترسی دارن.
امضای دیجیتال
هدف امضای دیجیتال احراز اصالت و تأیید اسناد و دادهها است. این روش برای جلوگیری از دستکاری، تغییر دیجیتال و جعل اسناد و دادهها در هنگام ارسال لازمه.
البته امضاهای دیجیتال با کلید عمومی معماری رمزنگاری عمل میکنن. به طور معمول، سیستم کلیدی نامتقارن پیامها رو با استفاده از کلید عمومی رمزگذاری میکنه و برای رمزگشایی اونا از کلید خصوصی استفاده میکنه. البته برای امضاهای دیجیتال عکس این موضوع صادقه. به عبارت دیگه، امضا با استفاده از کلید خصوصی رمزگذاری میشه و برای رمزگشایی اون از کلید عمومی استفاده میشه. از آنجاییکه این کلیدها به هم لینک هستن، رمزگشایی امضا با استفاده از کلید عمومی به این معنیه که از کلید خصوصی مناسب برای امضای سند استفاده شده و بدین ترتیب، مبدأ امضا تأیید میشه.
تصویر بالا فرایند امضای دیجیتال، از امضای کلید گرفته تا تأیید اون رو نشون میده. برای درک بهتر این فرایند، تک تک مراحل اون رو با هم بررسی میکنیم:
- مرحلۀ اول: M یا همون پیام اصلی به تابع هَش (H#) ارسال میشه تا خلاصۀ پیام ایجاد بشه.
- مرحلۀ دوم: در این مرحله تابع پیام رو به همراه هَش ِ digest (h) در برمیگیرد و با استفاده از کلید خصوصی فرستنده اون رو رمزگذاری میکنه.
- مرحلۀ سوم: در این مرحله پیام به همراه هش digest برای گیرنده ارسال میشه که میتونه با استفاده از کلید عمومی فرستنده اون رو رمزگشایی کنه.
- مرحلۀ چهارم: پس از رمزگشایی پیام، از طریق همون تابع هش ارسال میشه تا خلاصهای از اون ایجاد بشه.
- مرحلۀ پنجم: در این مرحله، هش جدیدی که ایجاد شده با مقدار هشی که به همراه پیام دریافت شده مقایسه میشه. اگر این دو تا مشابه هم باشن، یکپارچگی دادهها تأیید میشه.
به دو روش استاندارد میشه متد بالا رو اجرا کرد:
-
الگوریتم (Rivest-Shamir-Adleman)RSA
-
الگوریتم (Digital Signatures Algorithm)DSA
هر دو الگوریتم یک هدف یکسان رو دنبال میکنن اما، توابع رمزگذاری و رمزگشایی کمی با هم تفاوت دارن.
نمودار بلوکی امضای دیجیتال
امضای دیجیتال یه نوع امضای الکترونیکی مبتنی بر رمزنگاری است. از این نوع امضا برای احراز هویت فرستندۀ پیام یا کسی استفاده میشه که سند رو امضا کرده. علاوه بر این، این نوع امضا این اطمینان رو به ما میده که محتوای پیام یا سند دستنخورده است و تغییری نکرده.
نمودار بلاکی امضای دیجیتال به شکل زیر است:
- پیام یا سند: داده یا سندی که باید امضا بشه.
- هَشینگ: سند یا پیامی که با استفاده از تابع هَش رمزنگاری به یک هش با طول ثابت تبدیل میشه.
- رمزگذاری: در این مرحله، هش با استفاده از کلید خصوصی فرستنده رمزگذاری میشه.
- امضا: هش رمزگذاری شده همون امضای دیجیتال سند است.
- تأیید: برای تأیید اعتبار و اصالت سند، امضا با استفاده از کلید عمومی فرستنده تأیید میشه
توضیح نمودار بلوکی امضای دیجیتال
نمودار بلوکی امضای دیجیتال فرایند ایجاد و تأیید امضاهای دیجیتال رو نشون میده.
- در مرحلۀ اول این فرایند یک پیام از فردی به فرد دیگه ارسال میشه. سپس این پیام از طریق الگوریتم هَشینگ رمزنگاری اجرا میشه. این الگوریتم یک هَش از پیام ایجاد میکنه.
- در مرحلۀ بعد، هَش با استفاده از کلید خصوصی فرستنده رمزگذاری میشه. هش رمزگذاری شده به پیام اصلی ضمیمه میشه و اینجوری امضای دیجتال ایجاد میشه.
- در مرحلۀ بعد، گیرنده هَش رو با استفاده از کلید عمومی فرستنده رمزگشایی میکنه و بدین ترتیب امضای دیجیتال رو تأیید میکنه. سپس این هَش رو با هَش جدیدی که از پیام اصلی ایجاد شده مقایسه میکنه. فرایند رمزگشایی این اطمینان رو به ما میده که پیام در روند ارسال تغییر نکرده و از طرف فرستنده ارسال شده. امضای دیجیتال این اطمینان رو به ما میده که دادهها از یک منبع معتبر هستن و تغییر نکردن.
اهمیت امضای دیجیتال
اهمیت امضای دیجیتال در دنیای دیجیتال امروزی رو به دلایل زیر نمیشه نادیده گرفت:
- تأیید اصالت: امضاهای دیجیتال تأیید میکنن که پیام یا امضا با استفاده از کلید خصوصی مربوط به امضای دیجیتال ساخته شده و بدین ترتیب، اصالت محتوا یا تراکنش رو تأیید میکنن.
- غیر قابل انکار(non-repudiation): امضای دیجیتال یک رکورد کامل ارائه میده که نشون میده یک فرد خاص در یک زمان مشخص اسناد و تراکنشهایی رو امضا کرده. با وجود این ویژگی افراد دیگه نمیتونن منکر امضای اسناد بشن.
- امنیت: امضاهای دیجیتال برای ممانعت از دسترسی غیرمجاز به دادهها و تغییر اونا از الگوریتمهای رمزگذاری استفاده میکنن. علاوه بر این، تکنیکهای رمزگذاری از تغییر یا دستکاری دادهها طی فرایند انتقال جلوگیری میکنن.
- افزایش کارایی: امضاهای دیجیتال میتونن زمان و سرمایهای که صرف کاغذبازیها، پرینت، اسکن و ایمیل کردن اسناد میشه رو کاهش بدن.
- تبعیت از قانون: امضاهای دیجیتال با ارائۀ یک دنبالۀ حسابرسی از اسناد امضاشده به سازمانها کمک میکنن تا از الزمات قانونی و حقوقی پیروی کنن.
نقش امضای دیجیتال
- از امضاهای دیجیتال برای احراز هویت و تأیید استفاده میشه. از این نوع امضاها برای احراز اصالت و یکپارچکی پیامها و اسناد دیجیتال استفاده میشود.
- یکی از نقشهای برجستۀ امضای دیجیتال احراز اصالت و یکپارچکی پیامها و اسناد دیجیتال است. امضای دیجیتال نوعی امضای الکترونیکی است که امکان احراز هویت رو بین طرفین فراهم میکنه و هیچکدوم از اونا نمیتونن منکر امضای اسناد بشن. این نوع امضا حُکم یک نوع مدرک رو داره که دو طرف با یه سری شرایط موافقت کردن و به طور مشترک محتوای سند یا پیام رو تأیید کردن.
- علاوه بر این، امضاهای دیجیتال میتونن از اطلاعات محرمانه محافظت کنن و مطمئن بشن که فقط افراد مجاز به اونا دسترسی دارن.
- از امضاهای دیجیتال میشه برای رهگیری مبدأ تراکنشهای دیجیتال استفاده کرد و مطمئن شد که تراکنشها تغییری نکردن.
جمع بندی
توی این مقاله با کلیت امضای دیجیتال، زیر ساخت کلید عمومی و رمزگذاری متقارن و نامتقارن آشنا شدیم. زیر ساخت کلید عمومی و پیدایش امضای دیجیتال تحول بسیار بزرگی در حوزه امنیت و احراز هویت بوجود آورد به گونه ای که ارسال پیام ها و هر آنچه که در حوزه امنیت قابل تعریف است با این زیرساخت ها تا حد بسیار زیادی محافظت میشوند. در مقاله بعدی قصد داریم در مورد تفاوت ها و ویژگی های رمزگذاری DSA و RSA به صورت مفصل صحبت کنیم. مقاله بعدی رو از دست ندین.