این روزها از امضای دیجیتال زیاد شنیدهایم.
در رسانهها گزارش عملیاتی شدن امضای دیجیتال را زیاد شنیده ایم ،
اما کمتر جایی دیده ایم که توضیح داده باشند امضای دیجیتال چیست
و اینکه چطور میتوان آن را دریافت کرد و چگونه از آن استفاده کرد.
در این گزارش به زبانی ساده به تعریف امضای دیجیتال و ساز و کار آن میپردازیم
و همچنین اینکه چطور میتوان امضای دیجتال دریافت کرد.
امضاء دیجیتال چیست ؟
با شنیدن امضای دیجیتال افراد ممکن است دچار سوء تفاهم شوند
و تصورهای متفاوتی از امضای دیجیتال داشته باشند.
در ابتدا به تعریف درستی از امضای دیجتال به زبان ساده میپردازیم.
اولین مورد استفاده از اصطلاح امضای دیجیتال را شاید بتوان اسکن کردن امضای یک شخص و کپی کردن آن پای مدارک عمومی و نه چندان مهم شرکتها و سازمانها دانست.
برای مثال از طرف یک سازمانی میخواهند به هزار نفر لوح تقدیری اهدا کنند
و امضای مدیر یا رئیس هم باید پای آنها باشد.
در این مورد مدیر یا رئیس سازمان به احتمال زیاد وقت آزاد برای هزار امضا را ندارد.
در این صورت او یک بار در یک برگه سفید امضا میکند
و امضای روی آن را اسکن میکنند
و سپس روی تک تک برگههایی که لازم است، آن را کپی میکنند.
این مورد در سازمانها، وزارتخانهها، اتحادیهها و شرکتهای بزرگ کاربرد زیادی دارد.
مورد دومی که از اصطلاح امضای دیجیتال برای آن استفاده میشود
امضا با مدادی نوری بر روی سیگنچر پد (Signature Pad) است.
در این مورد فرد با یک مداد الکترونیکی بر روی یک صفحه نمایش لمسی امضا میکند.
از مزایای این نوع امضا این است که سیستم میتواند سرعت حرکت مداد امضا، مقدار فشار دست
و مواردی این چنینی را هنگام امضا کردن اندازه گیری کند
و آنها را با نمونه امضای ثبت شده در سیستم مقایسه کند تا از جعل امضا و جعل هویت جلوگیری کند.
یعنی حتی اگر یک شخص از لحاظ ظاهری کاملا شبیه شما باشد
و امضای شما را هم بلد باشد باز هم نمیتواند خودش را جای شما بزند و سوء استفاده کند.
این مورد امضا بیشتر در بانکها و دفاتر اسناد رسمی و محضرها استفاده میشود.
اما مورد سوم که این روزها همه جا حرفش است در واقع هیچ شباهتی با تصور ما از یک امضا ندارد.
به زبان ساده این امضای دیجیتال یک نام کاربری و یک رمز است که در سیستم اسنادی به نام شما ثبت میشود
و در دنیای مجازی و الکترونیکی کارت هویت شماست.
در واقع به کمک این نام کاربری و رمز آن، شما در دنیای مجازی نه تنها میتوانید ثابت کنید
که دقیقا چه کسی هستید بلکه میتوانید ثابت کنید که اطلاعاتی که برای طرف دیگر میفرستید
بدون هیچ دخل و تصرفی از سوی شما فرستاده شده است.
هر چند هر سه این تعاریف می توانند تعریف درستی از اصطلاح امضای دیجیتال باشند
اما آنچه از این پس در این گزارش مد نظر ماست، مورد سوم است که فقط یک نام کاربر و یک رمز است.
امضاء دیجیتال
امضای الکترونیک چگونه امنیت را تامین میکند؟
به زبان ساده، تبادل اطلاعات در دنیا به روش های مختلف می تواند انجام شود.
ساده ترین روش، انتقال اطلاعات به صورت text Plain یا همان متن ساده می باشد.
یعنی نفر اول یک اطلاعاتی را از کانالی به نفر دوم منتقل میکرد
و اطلاعات به همان شکلی که فرد اول فرستاده بود به دست نفر دوم میرسید.
اما به مرور و با ارزشمند شدن اطلاعات و بالا رفتن حجم اطلاعات قابل انتقال از طریق بسترهای الکترونیک،
دیگر تبادل اطلاعات به شکل ساده شیوه امن نخواهد بود.
زیرا ممکن بود در میان کانال ارتباط، اطلاعات توسط نفر سومی مشاهده شوند،
دست کاری شوند یا به کلی عوض شوند و سپس به دست نفر دوم برسند.
برای جلوگیری از این لو رفتن اطلاعات، کاربرهای اول و دوم یکسری رمز بین خود تعریف تا انتقال اطلاعات به صورت رمز شده انجام شود.
یک مثال ساده
امضاء دیجیتال
اگر نفر اول بخواهد عدد ۱۳۹۲ را برای نفر دوم بفرستد،
این گونه رمز میگذارند که به هر عدد یک رقم اضافه شود
و همیشه به جای عدد ۹، یک صفر (۰) قرار دهند.
در نتیجه نفر اول به جای عدد ۱۰۹۸ عدد ۲۱۰۹ را میفرستد.
نفر دوم پس از دریافت عدد ۲۱۰۹ میداند که طبق قرارداد برای دریافت عدد درست باید آن را به حالت اول برگرداند.
پس از هر عدد یک رقم کم میکند به جز عدد ۰ و میداند عدد ۰ نماینده عدد ۹ است.
پس به به عدد اصلی یعنی ۱۰۹۸ میرسد.
این یک الگوریتم رمزگذاری بسیار ساده بود که کشف رمز آن نیز به مراتب ساده است.
در نتیجه هر چه این الگوریتم سخت تر و پیچیده تر باشد کشف رمز آن نیز سخت تر میشود.
حال اگر بخواهیم کمی فنی تر صحبت کنیم، میتوانیم بگوییم که نفر اول و دوم برای تولید این رمز و خواندن آن از یک کلید استفاده میکنند.
کلید ها با توجه به طول نوع پیچیدگی الگوریتم می تواند طولانی یا کوتاه باشد.
خوب حالا نفر اول (فرستنده) و نفر دوم (گیرنده) خیالشان راحت است
که نفر سومی نمیتواند اطلاعات آنها را بخواند و برای خواندن یا دخل و تصرف در آن حتما نیاز به کلید دارد.
تا به اینجا “همه چیز آرومه من چقدر خوشبختم”.
اما امنیت این قضیه تا زمانی برقرار است که نفر سومی به آن کلید دسترسی پیدا نکرده است یا نتوانسته از روی آن بسازد.
اما اگر نفر سومی هم به آن کلید دسترسی داشته باشد یا بتواند از روی آن بسازد آنوقت نفر سوم میتواند در تبادل اطلاعات دخل و تصرف ایجاد کند
و نفر دوم هم متوجه وجود نفر سوم نمیشود. خب حالا اگر نفر سوم در اطلاعات تغییراتی ایجاد کند
و آن را برای نفر دوم بفرستد نفر دوم چگونه بفهمد که این اطلاعات از طرف نفر اول آمدهاند و هیچ دخل و تصرفی در آنها نشده است؟
این روش، بیانی ساده برای رمزنگاری متقارن است که در آن طرفین از یک کلید برای رمزنگاری استفاده میکنند.
با توجه به ضعف این روش، نیاز است که از الگوریتم و روش پیچیده تری برای رمزنگاری استفاده شود که در این صورت روش رمزنگاری کلید عمومی استفاده میشود.
در این حالت فرستنده و گیرنده کلیدهای عمومی و خصوصی را دارند.
اطلاعاتی که با کلید عمومی رمزنگاری میشوند فقط با کلید خصوصی مرتبط با آن، قابلیت رمزگشایی را دارند.
هرچند که کلیدهای عمومی و خصوصی مطابق با یکدیگر هستند ولی با استفاده از کلید عمومی نمیتوان کلید خصوصی را به دست آورد.
در صورتی که در روش رمز نگاری متقارن فرستنده و گیرنده یک کلید مشترک دارند و با استفاده از آن به تبادل اطلاعات می پردازند.
در الگوریتمهای نامتقارن از کلید عمومی و کلید خصوصی بهره میگیرند که کلید عمومی در دسترس هرکس (همه فرستندهها) است
و وقتی فرستنده دادهها را با کلید عمومی خود رمزگذاری میکند، گیرنده تنها با داشتن کلید خصوصی میتواند دادهها را رمزگشایی کند.
در این الگوریتمها هر کس کلید عمومی خود را دارد که منحصر به فرد است و اطلاعات خود را با آن کلید رمز کرده و برای گیرنده ارسال مینماید.
یک مثال ساده
امضاء دیجیتال
فرض کنید یک اتاق خالی داریم که در آن قفل است و کلیدش را فقط نفر اول و نفر دوم دارند. نفر اول با کلیدش در اتاق را باز میکند و یک محموله برای نفر دوم در اتاق میگذارد و از اتاق خارج میشود.
سپس در اتاق را با کلیدش قفل میکند میرود. نفر دوم میداند نفر اولی یک محموله در اتاق قفل شده برایش گذاشته است؛ پس با کلیدش در را باز میکند و محموله را برمیدارد و میرود.
اما اگر این بین یک نفر سومی هم وجود داشته باشد که او هم کلید اتاق را دارد و قبل از رسیدن نفر دوم وارد اتاق بشود و محموله را با محوله دیگری عوض کند چه؟
در این صورت، در عین حال که محموله در اتاقی در-بسته بوده و کلید گذاری شده است اما نفر دوم چگونه باید بفهمد که محموله توسط نفر سومی مشاهده یا تعویض نشده است؟
برای حل این مشکل، اگر قفل روی در اتاق به گونهای باشد که هر بار که کسی برای باز یا بسته کردن آن از کلید استفاده میکند نشان دهد که نفر آخر چه کسی آن را باز و بسته کرده است دیگر مشکل حل است.
در این صورت نه تنها نفر دوم مطمئن است که محموله در اتاقی در-بسته است، بلکه میتواند مطمئن شود که پس از کلیدگذاری نفر اول،
کس دیگری وارد اتاق نشده است و این دقیقا همان محمولهای است که نفر اول آن را در اتاق گذاشته است.
کلیدها چه ربطی به امضای دیجیتال دارند؟
به زبان ساده امضای دیجیتال همان کلید خصوصیای است که به فرد داده میشود.
به کمک این امضای دیجیتال دیگر فرد پس از فرستادن اطلاعات بر روی بسترهای الکترونیکی میتواند خیالش راحت باشد که اطلاعات به درستی به مقصد میرسند.
یعنی حتی اگر کسی بخواهد به اطلاعات فرد دسترسی پیدا کند یا تغییراتی در آن ایجاد کند و دوباره آن را بفرستد دیگر کلید عمومی یا همان شاه کلیدمان متوجه میشود
که این اطلاعات توسط نفر سومی مشاهده یا دستکاری شدهاند، پس آن را نمیپذیرد.
از امضای دیجیتال میتوان بر روی تمام بسترهای الکترونیک تبادل اطلاعات در حوزههای مختلف استفاده کرد.
اما در صنعت بانکداری الکترونیک به خاطر ارزش اطلاعات تبادلی، این امضاها بیشتر از هر جای دیگری مورد استفاده هستند.
چگونه امضای دیجیتال دریافت کنیم؟
برای دریافت امضای دیجیتال خیلی به چیز خاصی نیاز نیست.
برای قدم اول، تنها چیزی که نیاز است این است که با در دست داشتن اصل کارت ملی، شناسنامه و کد پستی دقیق محل زندگی خود به یکی از دفاتر اسناد رسمی مراجعه کنید و درخواست دریافت امضای الکترونیکی کنید.
امضای دیجیتال فرآیندی است که در آن صحت و اعتبار یک پیام دیجیتالی تایید میگردد. یک امضای دیجیتال معتبر، به گیرنده اطمینان میدهد که پیام توسط فرستندهی اصلی ارسال شده و فرستنده نیز نمیتواند پیامی که ارسال کرده را انکار نماید. علاوه بر این، خود پیام نیز از تغییر و دستکاری مصون میماند.
پارسی شاپ
از امضای دیجیتال عموما برای پیادهسازی امضای الکترونیک استفاده میشود.
امضای الکترونیک مفهوم وسیعتری است که به هر نوع دادهی الکترونیکی که نوعی امضا را در بر داشته باشد اطلاق میگردد.
اما تمامی امضاهای الکترونیک از امضای دیجیتال استفاده نمیکنند.
مفهوم امضای الکترونیک در ابتدا با اسکن امضای خطی در مواردی که امکان جعل آنها وجود داشت و یا اسناد زیادی نیاز به امضای شخص واحدی داشتند. مطرح شد.
نسل بعدی امضاهای دیجیتال با استفاده از قلمهای نوری و صفحه نمایشگرهای لمسی به وجود آمدند
که در واقع همان نسخهی دیجیتالی امضاهای دستنویس بوده
که با مزیتهایی همچون صرفهجویی در زمان و مصرف منابع و دشوارسازی جعل امضا روی کار آمدند.
و اما امضای دیجیتالی که امروزه آن را میشناسیم یک نام کاربری و یک رمز عبور است که هویت شما در دنیای مجازی را ثابت میکند.
امضای دیجیتال بر مبنای الگوریتم رمزنگاری نامتقارن ساخته میشود.
رمزنگاری نامتقارن که با نام رمزنگاری کلید عمومی نیز شناخته میشود،
از کلیدهای خصوصی و عمومی برای رمزنگاری و رمزگشایی دادهها استفاده مینماید.
کلید خصوصی و عمومی در حقیقت رشته اعداد بزرگی هستند که با یکدیگر مطابقت داشته اما یکسان نیستند.
کلید عمومی با تمامی افراد شبکه به اشتراک گذاشته میشود در حالی که کلید خصوصی سری بوده و نزد شخص محفوظ نگه داشته میشود.
هر یک از ما در زندگی روزمرهی خود بارها از این الگوریتم استفاده میکنیم.
به عنوان مثال زمانی که برای یکی از دوستان خود ایمیل میفرستید آدرس ایمیل شما همان کلید عمومی و پسورد ورود به حسابتان همان کلید خصوصی شما خواهد بود.
از هر یک از جفت کلید عمومی و خصوصی میتوان برای رمز کردن پیام استفاده نمود.
در بسیاری مواقع از امضای دیجیتال برای فراهم کردن یک لایهی امنیتی و معتبر برای ارسال پیامها در یک کانال غیرامن استفاده میشود.
امضاهای دیجیتال از بسیاری جهات مشابه امضاهای خطی هستند اما جعل آنها به مراتب از امضاهای دستنوشته دشوارتر است.
بیایید مفهوم امضای دیجیتال در بلاک چین را با مثالی بررسی کنیم:
پیش از این گفتیم که رمزنگاری کلید عمومی الگوریتم رمزنگاری است که به شما دو کلید میدهد:
یک کلید عمومی و یک کلید خصوصی
شما کلید عمومیتان را به تمام دنیا اعلام میکنید و کلید خصوصیتان را نزد خویش نگه میدارید.
آدرس اتریوم شما یک کلید عمومی بوده و کلید خصوصیتان در کیفپول سختافزاری، موبایلی و یا دسکتاپ شما، اترهای شما را ذخیره میکند.
کلید عمومی را به عنوان شماره حساب بانکی خود در نظر بگیرید.
اگر بخواهید مقداری اتر برای فردی بفرستید، آنها تنها شمارهی حساب و یا آدرس عمومی شما را میبینند.
از آنجایی که شما تنها فردی هستید که کلید خصوصی مربوط به حسابتان را دارید،
بنابراین تنها فردی نیز خواهید بود که به پولهای موجود در حساب دسترسی دارد.
رمزنگاری کلید عمومی، الگوریتمهایی دارد که به شما امکان میدهد پیامهای خود را با استفاده از جفت کلیدها رمزنگاری، رمزگشایی، امضا و تایید نمایید.
در ادامه با ارائهی مثالی مراحل این کار را توضیح خواهیم داد.
رمزنگاری پیام با کلید خصوصی
برای ایجاد یک امضای دیجیتال به یک نرمافزار امضاکننده مانند یک سرویسدهندهی ایمیل نیاز است.
این برنامه، از دادههایی که میبایست امضا شوند، یک هش (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)
- پارسی شاپ
- مارس 30, 2020