امضای دیجیتال روندی میباشد که در آن درستی و اعتبار یک پیام دیجیتالی را نشان میدهند. از این قبیل امضاهای معتبر، در گیرنده این اعتماد را ایجاد میکند که پیام بوسیله فرستندهی اصلی فرستاده شده و فرستنده نیز قادر نیست پیامی که ارسال کرده را انکار نماید. همچنین، خود پیام نیز غیرقابل تغییر و ویرایش میباشد. طی این مطلب ما قصد داریم تا شمارا با این امضاها و روش استفاده و ایجاد آن ها آشنا کنیم، پس تا پایان نوشته با “زرین اکسچنج” همراه باشید.
از این نوع امضا اغلب جهت پیادهسازی امضای الکترونیک استفاده میشود. امضای الکترونیک مفهوم وسیعتری میباشد که به هر نوع دادهی الکترونیکی که نوعی امضا را با خود داشته باشد اطلاق میگردد. ولی تمامی امضاهای الکترونیک از امضای دیجیتال استفاده نمیکنند.
مفهوم امضای الکترونیک در آغاز با اسکن امضای خطی در اموراتی که امکان جعل آنها وجود داشت و یا اسناد زیادی نیاز به امضای فقط یک نفر داشت. پیاده سازی شد.
نسل بعدی امضاهای دیجیتال با بهره از قلمهای نوری و صفحه نمایشگرهای لمسی ایجاد شدند که در حقیقت همان نسخهی دیجیتالی امضاهای دستنویس بوده که با ویژگی هایی از قبیل صرفهجویی در زمان و مصرف منابع و در امان ماندن از جعل امضا روی کار آمدند.
و اما امضای دیجیتالی که اکنون آن را میشناسیم در واقع یک نام کاربری و یک رمز عبور میباشد که هویت شما در دنیای مجازی را اثبات خواهد کرد. امضای دیجیتال بر پایه ی الگوریتم رمزنگاری نامتقارن ایجاد میشود. رمزنگاری نامتقارن که با نام رمزنگاری کلید عمومی نیز معروف است، از کلیدهای خصوصی و عمومی جهت رمزنگاری و رمزگشایی اطلاعات بهره میبرد. کلید خصوصی و عمومی در واقع رشته اعداد بزرگی میباشند که با یکدیگر مطابقت داشته اما مساوی نیستند. (نامتقارن)
کلید عمومی با تمامی کاربران شبکه به اشتراک گذاشته میشود در حالی که کلید خصوصی با توجه به نامش خصوصی بوده و تنها در اختیار ضخص صاحب آن حفظ خواهد شد. هر کدام از ما در زندگی روزمرهی خود بارها از این الگوریتم استفاده میکنیم. به عنوان نمونه هنگامی که برای یکی از دوستان خود ایمیل میفرستید آدرس ایمیل شما در حقیقت نقش کلید عمومی و پسورد ورود شما به حسابتان نقش همان کلید خصوصی شما را ایفا خواهد کرد.
از هر یک از جفت کلید عمومی و خصوصی میتوان جهت رمز کردن پیام بهره برد. در بسیاری اوقات از امضای دیجیتال جهت فراهم کردن یک لایهی امنیتی و معتبر جهت فرستادن پیامها در یک کانال غیرامن استفاده میشود.
امضاهای دیجیتال از خیلی جهات شبیه به امضاهای خطی میباشند ولی جعل آنها به مراتب از امضاهای دستنوشته سخت تر است.
بیایید معنی امضای دیجیتال در بلاک چین را با نمونه ای بررسی کنیم:
قبل از این گفتیم که رمزنگاری کلید عمومی الگوریتم رمزنگاری میباشد که دو کلید را در اختیار شما میگذارد: یک کلید عمومی و یک کلید خصوصی،
شما کلید عمومی خود را به تمام دنیا اعلام میکنید و کلید خصوصیتان را تنها در نزد خود نگه میدارید. آدرس اتریوم شما یک کلید عمومی است و کلید خصوصیتان در کیفپول سختافزاری، موبایلی و یا دسکتاپ شما، اترهای شما را نگهداری میکند. کلید عمومی را شبیه به شماره حساب بانکی خود فرض کنید. اگر قصد داشته باشید مقداری اتر برای کسی ارسال کنید، آنها فقط شمارهی حساب و یا آدرس عمومی شما را میتوانند مشاهده کنند. از آنجایی که شما تنها شخصی هستید که کلید خصوصی مربوط به حسابتان را در اختیار دارید، لذا با این حساب تنها شخصی نیز خواهید بود که به پولهای موجود در حساب خود دسترسی کامل دارید.
رمزنگاری کلید عمومی، الگوریتمهایی دارد که به شما اجازه میدهد پیامهای خود را با بهره از جفت کلیدها رمزنگاری، رمزگشایی، امضا و تایید نمایید. در ادامه مطلب با فراهم کردن مثالی مراحل این امور را به توجه شما میرسانیم.
رمزنگاری پیام با کلید خصوصی
جهت ساخت یک امضای دیجیتال به یک نرمافزار امضاکننده مثل یک سرویسدهندهی ایمیل نیزا دارید.
این برنامه، از اطلاعاتی که میبایست امضا شوند، یک هش (Hash) ایجاد میکند. اما چرا چنین امری لازم به انجام است ؟
الگوریتمهای رمزنگاری کلید عمومی جهت امضا کردن اسناد طولانی زیاد خوب بنظر نمیرسند. جهت صرفهجویی در زمان، بیشتر پروتکلهای امضای دیجیتال در عوض اینکه اینکه کل پیام را رمزنگاری کنند، خروجی یک تابع یک طرفه به اسم هش را که به مراتب از پیام اصلی کوتاهتر میباشد را رمزنگاری میکنند. تابع هش یک ورودی از اطلاعات که در اینجا کاراکترهای پیام میباشند را گرفته و آن را به یک خروجی با طول ثابت را ایجاد میکند.
بعد از آن از کلید خصوصی جهت رمزگذاری هش استفاده میکند. هش رمزگذاری شده در کنار دیگر اطلاعات مثل الگوریتم هشینگ، امضای دیجیتال را متشکل میشوند.
تایید و رمزگشایی پیام با کلید عمومی
این امر شامل دو مرحلهی ایجاد هش از روی پیام اصلی و رمزگشایی امضا میشود. جهت درک بهتر این مسئله به مثال زیر توجه کنید:
آلیس میخواهد ایمیلی برای باب ارسال کند:
- آلیس در آغاز پیامی که قصد ارسال آن را دارد، امضا میکند و این امر را در واقع با کلیک بر روی sign in در اپلیکیشن ایمیل خود صورت میدهد. مقدار هش توسط کامپیوتر آلیس محاسبه میشود.
- این هش با رمز عبور آلیس و یا همان کلید خصوصی او رمزنگاری شده و امضای دیجیتال را ایجاد میکند.
- پیام آلیس به همراه امضای دیجیتال او برای باب فرستاده میشود.
- بعد از آنکه باب پیام آلیس را دریافت میکند، برنامهی ایمیلی که بر روی کامپیوتر او فعالیت میکند، تشخیص میدهد که این پیام شامل یک امضا نیز میباشد.
- کامپیوتر باب امضای دیجیتال را با بهره از کلید عمومی آلیس رمزگشایی کرده و هش پیام را د مرتبه خودش نیز محاسبه مینماید.
- هشی که بوسیله کامپیوتر باب محاسبه شده با هش رمزگشایی شده مقایسه میشوند.
چنانچه این دو هش با یکدیگر متفاوت باشند، امکان دارد اطلاعات در مسیر دچار ویرایش شده و یا فرستنده به اشتباه دادهها را با کلید خصوصیای رمزنگاری کرده که با کلید عمومی مطابقت نداشته است. در تصویر زیر خلاصهای از این روند را مشاهده میکنید:
چگونه میتوان یک امضای دیجیتال ساخت؟
شما قادر هستید یک امضای دیجیتال را از یک مرجع صدور گواهی دیجیتال مطمعن مثل سکتیگو (Sectigo) دریافت کنید و یا آن را خودتان بسازید ولی به خاطر داشته باشید که جهت تهیه امضای دیجیتال یک سند به یک گواهینامهی دیجیتال نیاز خواهید داشت. اگر شما خودتان امضای دیجیتال را تولید کرده و از گواهینامهای که توسط خودتان امضا شده بهره ببرید، گیرندگان نمیتوانند اعتبار پیامهای شما را تایید نمایند. لذا برای بوجود نیامدن مشکلات از این قبیل ترجیحا از یک مرجع معتبر صدور گواهی دیجیتال، امضای دیجیتال خود را تهیه کنید.
بعد از دانلود و نصب این گواهی، با استفاده از گزینههای امضا (Sign) و رمزنگاری (Encrypt) در سرور ایمیل خود میتوانید به صورت دیجیتال ایمیلهایتان را امضا و رمزنگاری کنید. این ویژگی اغلب جهت کسبوکارهایی که نیاز به تایید مطمعن احراز هویت فرستنده وجود دارد، کارایی خواهد داشت.
امضای دیجیتال چه کاربردهایی دارد؟
امضاهای دیجیتال در نرمافزارهای بسیاری از جمله مرورگرها که نیاز به برقرار بودن یک اتصال امن در شبکهی ناامنی مثل اینترنت وجود دارد، کارایی زیادی دارند. کاربران اینترنت و برخی سیستمها نیاز دارند بدانند کلیدهای عمومی متعلق به اشخاص و یا سازمانها معتبری بوده و بوسیله شخص ثالثی عوض و یا ویرایش نشده است.
امضاهای دیجیتال قادر هستند زمان لازم جهت انجام قراردادهایی که به واسطهها و اشخاص ثالث زیادی جهت اعتبارسنجی و امضای آن نیاز هست را کمتر کند. با در نظر گرفتن ویژگی تغییرناپذیر بلاک چین، اعتبار قراردادها در هر هنگامی تضمین میگردد و کاربران میتوانند در هر زمان به دلخواه خود این قراردادها را به اما برسانند و نیاز به حضور همزمان آنها در شبکه نمیباشد. امضاهای دیجیتال قادرند برای ارتباطات بین کسبوکارهای بسیاری به کار گرفته شده و معاملات را بدون نیاز به هیچ واسطهای میان اشخاص به انجام برسانند.
انواع امضای دیجیتال
پلتفرمهای پردازش اسناد متنوع، از امضاهای دیجیتال متنوعی نیز پشتیبانی میکنند برای نمونه ادوب (Adobe) از امضاهای دیجیتال تصدیق شده و تایید شده پشتیبانی کرده در حالی که مایکروسافت ورد از امضاهای دیجیتال قابل مشاهده و غیرقابل مشاهده پشتیبانی میکند. در ادامه مطلب چند نوع از این امضاها با شما بررسی خواهیم کرد:
امضای دیجیتال تصدیق شده
اضافهکردن یک امضای دیجیتال عتبر و امن به یک سند با فرمت پیدیاف، بیانگر این است که شما نویسندهی آن هستید و قصد دارید از آن در مقابل ویرایش محافظت نمایید. در اسناد پیدیاف معتبر، یک نوار آبیرنگ در بالای سند قرار گرفته که شامل اسم امضای سند و گواهی صادر شده جهت نشان دادن اصالت و درستی سند میباشد.
امضای دیجیتال تایید شده
امضاهای دیجیتال تایید شده قادرند در گردش کاری کسبوکار شما کمک کنند و روند تایید کارها را بهوبد ببخشند. این روند شامل جمعآوری تاییدیههای اشخاص و سپس تعبیهی آنها در اسناد میباشد. نرمافزار Adobe به کاربران خود اجازه میدهد امضاهایی با جزئیاتی مانند تصویر امضای خطی، تاریخ، مکان و یا مهرایجاد کنند.
امضای دیجیتال قابل مشاهده
به کاربران اجازه میدهد اسناد خود را به شکل دیجیتال امضا کنند و این امضا در حقیقت مشابه امضای خطی پای سند بکار میرود.
امضای دیجیتال غیرقابل مشاهده
اطلاعاتی که امضای دیجیتال غیرقابل مشاهده دارند، حاوی یک نشان بصری در نوار آبی رنگ در taskbar میباشند. شما قادر هتسید از این نوع امضا در هنگامی که علاقه ندارید امضایتان نشان داده شود اما ملزم هستید تا اعتبار، اصالت و یکپارچگی آن را ثابت کنید، استفاده کنید.
برخی الگوریتمهای امضای دیجیتال
- الگوریتمهای امضای دیجیتال بر پایه RSA مثل الگوریتم RSA-PSS
- الگوریتم DSA و مشتق آن ECDSA
- الگوریتم امضای دیجیتال منحنی ادواردز (Edwards-curve) و نوع دیگر آن Ed25519
- الگوریتم ElGamal که الگوریتم DSA گرفته شده و زیرمجموعههای آن الگوریتمهای شنور (Schnorr) و Pointcheval–Stern
- الگوریتم امضای دیجیتال رابین (Rabin)
- الگوریتم BLS
- امضاهای انکارناپذیر (Undeniable signatures)