نگاهی به امضای دیجیتال و کاربردهای آن در دنیای کریپتو
امضای دیجیتال هویت هر کاربری در فضای دیجیتال است. این امضا که همان نام کاربری و رمز عبور کاربر است بر اساس الگوریتم نامتقارن ساخته میشود. در این شکل از رمزنگاری که به رمزنگاری کلید عمومی هم معروف است از کلیدهای خصوصی و عمومی برای رمزنگاری و رمزگشایی استفاده میشود. این کلیدها رشته عددهای بزرگی هستند که با هم مطابقت دارند و در عین حال یکسان نیستند یعنی نامتقارن هستند.
کلید عمومی را میتوان با افرادی که در شبکه هستند به اشتراک گذاشت اما کلید خصوصی یعنی رمز عبورتان سری بوده و باید فقط نزد شما بماند. از هر کدام از این کلیدها میتوان برای رمزسازی پیام استفاده کرد. بیشترین کاربرد امضاهای دیجیتال ایجاد فضایی امن برای ارسال پیام از طریق کانالی نامعتبر است.
امضای دیجیتال را میتوان تا حدی شبیه به امضای خطی دانست ولی جعل این نوع از امضا بسیار سخت است. در ادامه بیشتر با امضای دیجیتال آشنا میشویم.
رمزنگاری نامتقارن و امضای دیجیتال
همانطور که اشاره کردیم در رمزنگاری نامتقارن یا کلید عمومی شما دو کلید خواهید داشت، اولی کلید عمومی و دومی کلید خصوصی. کلید عمومی شما میتواند در اختیار همه قرار بگیرد اما کلید خصوصی تنها نزد خودتان باقی خواهد ماند. برای مثال آدرس اتریوم هر کاربری یک کلید عمومی است و کلید خصوصی رمز کیف پول است، همان جایی که اترهای خود را ذخیره میکند. زمانی که فردی بخواهد برای شما اتر ارسال کند، نیاز به آدرس عمومی شما دارد و زمانی هم که شما برای فردی اتر ارسال کنید، آن شخص آدرس عمومی شما را میبیند ولی تنها کسی که به دارایی موجود در کیف پول شما دسترسی دارد، خود شما هستید چرا که کلید خصوصی تنها نزد خودتان است.
رمز نگاری نامتقارن این امکان را برای کاربرها ایجاد میکند تا از طریق جفت کلیدها پیامهای خود را رمزنگاری، رمزگشایی و امضا و تأیید کنند.
رمزنگاری پیام با کلید خصوصی چگونه است؟
همچون یک سرویس دهندهی ایمیل، برای ساخت یک امضای دیجیتال نیاز به یک نرمافزار امضا کننده دارید. نرمافزار امضا کننده از دادههایی که باید امضا شوند یک هش تولید میکند. اما دلیل این کار چیست؟
الگوریتمهایی که رمزنگاری کلید عمومی را انجام میدهند برای امضا اسناد طولانی مناسب به نظر نمیرسند. بیشتر پروتکلهای امضای دیجیتال برای صرف زمان کمتر به جای رمزنگاری کل پیام، خروجی تابعی یک طرفه (هش) که از پیام اصلی کوتاهتر است را رمزنگاری میکنند.
تابع هش ورودی دادهها را (که در اینجا کاراکترهای پیام هستند) میگیرد و خروجی با طول ثابت ایجاد میکند. در واقع از کلید خصوصی برای رمزگذاری هش استفاده میکند. امضای دیجیتال برابر است با هش رمزگذاری شده به همراه اطلاعاتی مثل الگوریتم هشینگ.
رمز گشایی پیام با کلید عمومی به چه شکل است؟
برای فهم بهتر این موضوع تصور کنید پیمان قصد دارد ایمیلی برای زینب بفرستد. ابتدا پیمان ایمیلی که قصد ارسال آن را دارد امضا میکند. این اتفاق در واقع با همان sign in یا ورود به اپلیکیشن موبایل رخ میدهد. مقدار هش در اینجا توسط سیستم پیمان محاسبه میشود. هش ایجا شده به همراه کلید خصوصی (رمز عبور پیمان) رمزنگاری میشود و امضای دیجیتال او ایجاد میگردد. پیام پیمان همراه با امضای دیجیتالش برای زینب ارسال میشود.
زمانی که زینب پیام پیمان را دریافت کرد، برنامه ایمیل او که بر روی سیستمش نصب است این موضوع را تشخیص میدهد که پیام دارای امضا است. سیستم زینب امضای دیجیتال پیمان را به وسیله کلید عمومی زینب رمزگشایی کرده و خود بار دیگر هش پیام را محاسبه میکند . هشی که کامپیوتر زینب محاسبه کرده با هش رمزگشایی شده مقایسه میگردد.
در صورتی که این دو هشینگ یکسان نباشند، این احتمال وجود دارد که داده در مسیر دستکاری شده باشد یا اینکه پیمان دادهها را اشتباهاً با کلید خصوصی رمزنگاری کرده باشد و همین موضوع باعث عدم تطابق آن با کلید عمومی باشد.
ایجاد امضای دیجیتال
ایجاد امضای دیجیتال میتواند از طریق یک مرجع معتبر صدور گواهی دیجیتال (مثل Sectigo) صورت گیرد یا حتی خودتان میتوانید این کار را انجام دهید ولی به هر صورت برای امضای دیجیتال نیاز به گواهینامهی دیجیتال دارید. در صورتی که خودتان اقدام به ایجاد امضای دیجیتال کنید و از گواهینامهای استفاده کنید که خود امضا کردهاید، گیرندهی پیام نمیتواند اعتبار پیام شما را بررسی کرده و از آن مطمئن شود. در نتیجه بهتر است که امضای دیجیتال را از مرجع صدور گواهینامه بگیرید.
وقتی که گواهینامه را دانلود و نصب کردید، از طریق گزینه sign (امضا) و Encrypt (رمزنگاری) میتوانید از طریق سرور ایمیل خود به صورت دیجیتال ایمیلهای خود را امضا و رمزنگاری کنید. کارایی این قابلیت بیشتر برای کسب و کارهایی است که به تآیید دقیق احراز هویت فرستنده نیاز دارند.
کاربردهای امضای دیجیتال و انواع آن
در فضاهای ناامنی مثل اینترنت که نیاز به اتصالهای امن است امضاهای دیجیتال کاربرد دارند. سیستمها و کابرهای اینترنت نیاز دارند که از اعتبار کلیدهای عمومی مطمئن شوند و بدانند که این کلیدها توسط شخص ثالثی دستکاری یا جایگزین نشده باشد. به کمک امضاهای دیجیتال میتوان روند انجام قراردادهایی که به شخص ثالث یا واسطههای بسیار برای تأیید اعتبار نیاز دارند را سریعتر کرد و در زمان صرفهجویی نمود.
از آنجا که ماهیت بلاک چین تغییر ناپذیر است، در هر زمانی اعتبار قراردادها تضمین میشود و افراد میتوانند هر زمان که مایل باشند قرارداد را امضا کنند و لزومی ندارد که هر دو طرف قرارداد هم زمان در شبکه حضور داشته باشند. امضاهای دیجیتال میتوانند برای ارتباط بین کسب و کارهای مختلف به کار روند و برای انجام معاملات هم نیاز به هیچ واسطهای ندارند.
هر یک از پلتفرمهای پردازش اسناد از امضاهای دیجیتال متفاوتی پشتیبانی میکنند. مثلاً برای پلتفرم Adobe (ادوبی) امضاهای دیجیتال تصدیق شده و تأیید شده قابل قبول هستند. ولی مایکروسافت از امضاهای دیجیتال قابل مشاهده و همینطور غیر قابل مشاهده پشتیبانی میکند. در ادامه با انواع امضاهای دیجیتال آشنا میشویم.
امضای دیجیتال تصدیق شده
زمانی که به سندی با فرمت pdf امضای دیجیتال تصدیق شده اضافه میکنید به این معنی است شما خود آن سند را نوشته و میخواهید از دستکاری آن جلوگیری کنید. در این اسناد pdf معتبر نواری آبی در بالای سند دیده میشود که اسم امضای سند و گواهی صادر شده برای بیان اصالت و صحت سند در آن وجود دارد.
امضای دیجیتال تأیید شده
این نوع از امضاهای دیجیتال میتواند در گردش کسب و کار به کار رود و به بهینهسازی فرآیند تأیید کار کمک کند که این فرآیند شامل جمعآوری تأییدیههای افراد و بعد از آن تعبیهی تأییدیهها در اسناد میشود. در نرمافزار ادوبی این امکان برای کاربرها فراهم شده است تا امضاهایی با جزئیاتی مثل تصویر امضای خطی، تاریخ، مکان یا مهر بسازند.
امضای دیجیتال قابل مشاهده
این امضا درست شبیه به امضای خطی پای سند زده میشود و کاربر میتواند اسناد خود را به شکل دیجیتال امضا نماید.
امضای دیجیتال غیر قابل مشاهده
در اسنادی که این نوع از امضای دیجیتال را دارا هستند، یک نشان بصری در نوار آبی رنگ وجود دارد. وقتی که نمیخواهید امضای شما دیده شود ولی به هر حال نیاز است تا اعتبار، اصالت و یکپارچگی سند را مشخص کنید، میتوانید از امضای دیجیتال غیر قابل مشاهده استفاده کنید.