امضای دیجیتال (digital signature) چیست؟
جهان به سوی دیجیتالیشدن گام برمیدارد و اطلاعات عموماً به صورت دیجیتال جا به جا میشوند. یکی از نگرانیهای اصلی در خصوص اطلاعات دیجیتال در خصوص امکان جعل و هک آنهاست که باعث شد تا فناوریهای خاصی در همین خصوص توسعه یابد. یکی از فناوریها “رمزنگاری” (cryptography) است که برای ایجاد امضای دیجیتال در بستر شبکه به کار گرفته میشود.
در این مقاله سعی داریم که شما را با زبان ساده (ولی فنی) با پروسه ایجاد و کاربرد امضای دیجیتال آشنا کنیم. همچنین در همان ابتدا این نوع امضا را از امضای الکترونیکی تفکیک میکنیم تا شبههای به وجود نیاید.
در نهایت هم به بررسی کارکرد امضای دیجیتال در حوزههای مختلف خواهیم پرداخت و مزایا و معایب آن را بررسی میکنیم.
مقایسه امضای دیجیتال با امضای الکترونیکی
همان طور که گفته شد، امضای دیجیتال از زیرمجموعههای امضای الکترونیکی است. امضای الکترونیکی میتواند هر نوع اطلاعاتی باشد که به دادههای اصلی اضافه میشوند تا اصالت پیام و فرستنده آن را تأیید کنند.
پس امضای الکترونیکی یک لفظ عام است. نوشتن نام نویسنده در پایین ایمیل، اسکن امضای خودکاری و قرار دادن آن در پایان متن، رمز عبور برای نام کاربری و اثر انگشت از سادهترین انواع امضاهای الکترونیکی هستند. در سطح بالاتر، از فناوری رمزنگاری هم برای احراز هویت یک پیام استفاده میشود.

امضای دیجیتال دقیقاً به نوع پیچیدهتر امضای الکترونیکی گفته میشود. امضای دیجیتال از فناوری رمزنگاری استفاده میکند که در ادامه به صورت مفصل به بررسی آن خواهیم پرداخت.
رمز نگاری در امضای دیجیتال
امضای دیجیتال از دو کلید عمومی و خصوصی استفاده میکند. این دو کلید به کمک الگوریتم RSA تولید میشوند. کلید خصوصی دارای اولویت است. کلید عمومی هم به کمک همین کلید تولید میشود. هر دو کلید از لحاظ ظاهری شبیه به هم هستند و شامل یک عبارت حاوی اعداد و حروف هستند.
زیرساخت ایجاد امضاهای دیجیتال باید از “ساختار کلید عمومی” (PKI) تبعیت کند که یک ساختار کلی و تصویبشده است. بدین ترتیب در فرایند رمزنگاری از دو عبارت طولانی ریاضیاتی استفاده میشود. البته بسته به الگوریتم رمزنگاری ممکن است از حروف هم برای ایجاد رمز استفاده شود.

کلید عمومی همچون کارت بانکی شما میباشد و آدرسهای مختلف برای دریافت رمز ارز را ایجاد میکند. شما هم میتوانید با خیال راحت این آدرس را در اختیار دیگران قرار دهید. کلید عمومی ثابتکننده هویت فردی کاربر نزد سایر کاربران است.
اما کلید خصوصی همانند رمز کارت بانکی است که نباید در اختیار هیچ شخص دیگری قرار بگیرد و از اطلاعات درون حساب کاربری شما حفاظت میکند.
کیف پولهای ارز دیجیتال به صورت اتوماتیک یک کلید خصوصی و یک کلید عمومی تولید میکنند. اما اگر میخواهید خودتان به صورت دستی از خدمات ارائه کلیدهای امنیتی بهره ببرید باید از “نهادهای ارائه گواهی” (Certificate authority: CA) استفاده کنید.
کافی است مدارک احراز هویت خود را در اختیار آنها قرار دهید. سپس یک امضای الکترونیکی یا دیجیتال (کلید عمومی و خصوصی) مختص اطلاعاتتان به شما اهدا خواهد شد.
مزایای امضای دیجیتال
امضای دیجیتال به دلیل استفاده از تکنولوژی رمزنگاری از امنیت بالایی برخوردار است. اما این شاید سادهترین و بدیهیترین ویژگی مثبت امضاهای دیجیتال باشد. از جمله سایر مزایای امضای دیجیتال میتوان به موارد زیر اشاره کرد:
- احراز هویت افراد و تأیید اعتبار محتوا: به کمک دو کلید عمومی و خصوصی میتوان به سادگی از اعتبار یک سند و فرستنده آن مطمئن شد.
- اتوماسیون قراردادهای مالی و غیر مالی: شاید در گذشته احتمال داشت که فرد زیر بار امضای خود نرود و آن را جعلی بداند. اما به دلیل اتوماسیون فرایندهای اداری، افراد نخواهند توانست امضای دیجیتال خود را جعلی اعلام کنند.
- جلوگیری از دستکاری اطلاعات: شاید قبلاً میشد در متن قراردادها و جزئیات آن دست برد و آنها را ویرایش کرد. اما با توجه به زبان برنامهنویسی دقیق و ثبت اتوماتیک قراردادها لازم نیست طرفین نگران این موضوع باشند. در صورت تحقق مفاد قرارداد، نتیجه به صورت اتوماتیک و طبق مشخصات پیشفرض انجام میشود.
- کاهش هزینهها: عقد قرارداد و حضور طرفین در یک محل واحد اصولاً هزینهبر است. کارمزد این نوع قراردادها هم باید به واسطهها پرداخت شود. به کمک امضاهای دیجیتال میتوان در این نوع هزینهها صرفهجویی کرد.
حفظ اصالت و تغییرناپذیری امضای دیجیتال
پیام توسط فرستنده هش میشود و هش پیام هم به کمک کلید خصوصی امضا میشود. پس از دریافت، گیرنده میتواند اطلاعات و امضای فرستنده را به کمک کلید عمومی او مطابقت دهد.

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

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

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

مزیت این نوع تراکنش دو طرفه آن است که مورد تأیید سایر کاربران قرار میگیرد. پس حق کسی ضایع نمیشود و اشتباهی به وجود نخواهد آمد (زیرا انگیزهای برای دستکاری اطلاعات وجود ندارد و افراد برای تأیید تراکنشها پاداش میگیرند).
دریافت امضای دیجیتال
همان طور که گفته شد، امضای دیجیتال از رمزنگاری و دو کلید عمومی و خصوصی استفاده میکند. طبعاً این پروسه نیاز به محاسبات ماشینی دارد. به همین دلیل، کاربران به صورت مستقیم در این پروسه نقش ندارند.
در کیف پولهای ارز دیجیتال از همان ابتدای ثبت نام دو کلید به فرد اهدا خواهد شد. اصولاً کلید خصوصی برای راحتی در قالب چند واژه (12 یا 16 واژه) برای کاربر به نمایش درمیآید. کلید عمومی هم آدرسهای مختلف کیف پول را میسازد که میتوانند با سایر کاربران به اشتراک گذاشته شوند.

کلیدهای خصوصی از طریق الگوریتمهای شبکه شکل میگیرند. بدین ترتیب نیازی نیست که کاربر نگران اشتراکگذاری اطلاعات خود نزد عموم باشد. فقط کاربر میتواند این اطلاعات را رؤیت کند.
معایب امضای دیجیتال
حملات و هکهای زیادی در خصوص امضای دیجیتال انجام میشوند. در ادامه به برخی از انواع هکهای احتمالی خواهیم پرداخت.
حمله “شخص واسطه” (Man-in-the-middle)
در این نوع حمله، هکر خودش را به عنوان یکی از کاربران فرستنده یا گیرنده جا میزند. در نتیجه او قادر خواهد بود که پیامهای فرستنده و گیرنده را بخواند. کافی است او فرستنده را قانع کند که رمز ارز خود را به کلید عمومی خودش واریز کند. حمله موفقیتآمیز خواهد بود.
حملات “مالکیت بر کلید” (Key-only) و “شناخت امضا” (Known Signature)
در هر دو حمله، هکر دارای کلید عمومی کاربر است و قادر خواهد بود که بر تأیید پیامها توسط او و حتی نفوذ به حساب کاربری او تأثیر بگذارد. هکر در این حالت به سادگی میتواند به امضای دیجیتال کاربر نفوذ کرده و از آن سوءِ استفاده کند.
رمزنگاری نامتقارن (Asymmetric cryptography)
پیش از این در فرایند رمزنگاری متقارن (Symmetric cryptography) فقط از کلیدهای عمومی برای انجام امور دیجیتال استفاده میشد. با توجه به دسترسی آسان هکرها به این نوع اطلاعات (همان طور که در بخش معایب امضای دیجیتال گفته شد) تلاش شد تا روشی امنتر تدارک دیده شود.
بدین ترتیب، رمزنگاری نامتقارن معرفی شد. در این روش از کلیدهای خصوصی هم استفاده میشد. در واقع (همان طور که پیشتر گفتیم)، کلید خصوصی عنصر اصلی این نوع رمز نگاری است و کلید عمومی هر کاربر هم به کمک کلید خصوصی او به وجود میآید.
برای ارسال اطلاعات نیاز است که امضا کننده از کلید خصوصی خود استفاده کند تا ثابت کند که اطلاعات از سوی صاحب اصلی دارایی در حال انتقال است.
فرستنده برای رمزنگاری هم از کلید عمومی گیرنده استفاده میکند تا پیام را به گونهای رمزنگاری کند که قابل قرائت برای گیرنده باشد.
در نهایت، گیرنده از کلید خصوصی خود استفاده میکند تا پیام را رمزگشایی کند. با توجه به ارتباط منطقی و ریاضیاتی میان کلید عمومی و کلید خصوصی و استفاده از کلید عمومی گیرنده در ایجاد پیام، گیرنده مطمئناً قادر خواهد بود که پیام را با کلید خصوصی خود رمزگشایی کند و آن را بخواند.

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