جمعه 30 شهریور 1397   
 
امضاي ديجيتال

 

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

یک امضا دیجیتال نوعی رمزنگاری نامتقارن است. هنگامی که پیغامی از کانالی ناامن ارسال می‌شوند، یک امضای دیجیتال که به شکل صحیح به انجام رسیده باشد می‌تواند برای شخص گیرنده پیام، دلیلی باشد تا ادعای شخص فرستنده را باور کند و یا به عبارت بهتر شخص گیرنده از طریق امضای دیجیتال می‌تواند این اطمینان را حاصل کند که همان شخص فرستنده نامه را امضا کرده است و نامه جعلی نیست. امضاهای دیجیتال در بسیاری از جنبه‌ها مشابه امضاهای سنتی دستی هستند؛ انجام امضاهای دیجیتال به شکل صحیح بسیار مشکل‌تر از یک امضای دستی است.
طرح‌های فایل امضای دیجیتال بر مبنای رمزنگاری نامتقارن هستند و می‌بایست به شکل صحیح صورت گیرد تا م‍ؤثر واقع شود. همچنین امضاهای دیجیتال می‌توانند امضاهایی غیرقابل انکار را ایجاد کنند به این معنی که شخص امضاکننده نمی‌تواند تا زمانی که کلید شخصی فرد به صورت مخفی باقی مانده است، ادعا کند که من این نامه که امضای من را به همراه دارد، امضا نکرده‌ام.
ولی در زمانی که کلید شخصی فرد در شبکه از حالت مخفی خارج شود یا زمان اعتبار امضای او به اتمام برسد شخص می‌تواند امضای دیجیتال خود را انکار کند هرچند که در این حالت نیز با وجود ساختار قوی امضای دیجیتال، این امضا اعتبار خود را حفظ می‌کند. پیغام‌های امضا شده با امضای دیجیتال امکان ارائه به صورت یک رشته بیتی را دارند. مانند: پست الکترونیک، قرارداد‌ها و یا پیام‌هایی که از طریق قواعد رمزنگاری‌های دیگر ارسال شده باشند.
امضاهای دیجیتال اغلب برای به انجام رساندن امضاهای الکترونیکی به کار می‌روند. در تعدادی از کشورها، مانند آمریکا و کشورهای اتحادیه اروپا، امضاهای الکترونیکی قوانین مخصوص به خود را دارند. هرچند، قوانین درباره امضاهای الکترونیکی همواره روشن نمی‌سازند که آیا امضاهای دیجیتال به درستی به کار گرفته شده‌اند و یا اهمیت آن‌ها به چه میزان است. در حالت کلی قوانین به شکل واضح در اختیار کاربران قرار نمی‌گیرد و گاهی آنان را به گمراهی می‌کشاند.

 

 

طرح امضای دیجیتال معمولاً سه الگوریتم را شامل می‌شود:
1. الگوریتم تولید کلید: که کلید خصوصی را بطور یکسان و تصادفی از مجموعه کلید‌های ممکن انتخاب می‌کند. خروجی‌های این الگوریتم کلید خصوصی و کلید عمومی مطابق با آن است.
2. الگوریتم امضا که توسط آن با استفاده از کلید خصوصی و پیام امضا شکل می‌گیرد.
3. الگوریتمی که با استفاده از پیام دریافتی و کلید عمومی صحت امضا را بررسی می‌کند و با مطابقتی که انجام می‌دهد یا امضا را می‌پذیرد یا آن را رد می‌کند.
دو ویژگی اصلی که در امضای دیجیتال مورد‌نیاز است:
1. امضای تولید شده از پیام مشخص و ثابت، هنگامی که توسط کلید عمومی مورد بررسی قرار می‌گیرد فقط در مورد همان پیام ارسالی می‌تواند عمل تطبیق را صورت دهد و در مورد هر پیام متفاوت و خاص می‌باشد.
2. امضای دیجیتال می‌بایست قابلیت اجرا توسط الگوریتم را داشته باشد و بتواند فایل امضای معتبر برای مهمانی که کلید خصوصی را دارا نمی‌باشد، ایجاد نماید.

    

 

بر اساس اسناد معتبر "دیدگاه‌های جدید در رمزنگاری" در سال ١٩٧٦ توسط ویتفید دیفیه و مارتین هلمن برای تشریح ایده‌های اولیه طرح فایل امضای دیجیتال ارائه شد. البته به نظر می‌رسد طرح‌های اولیه دیگری نیز در آن زمان وجود داشته است. مدت کوتاهی پس از آن جمع دیگری از محققین به نام‌های ریوست، شمیر و آدلمن، الگوریتم آراس‌ای را ابداع کردند که می‌توانست برای تولید امضای دیجیتال اولیه به کار رود. اول بسته نرم‌افزاری امضای دیجیتال با عنوان لوتوس نت در سال ١٩۸۹ بر مبنای همین الگوریتم به بازار عرضه شد.

در سال ۱٩۸۴ میشلی، گلدواسر و ریوست با تمام دقت موارد موردنیاز را برای برقراری امنیت در طرح امضای دیجیتال بررسی کردند. آن‌ها با بررسی مدل‌های مختلف حمله برای امضای دیجیتال توانستند طرح فایل امضای دیجیتال جی‌ام‌آر را ارائه کنند که می‌تواند در مقابل حمله به پیام و جعلی بودن آن مقاومت کند. طرح‌های ابتدایی امضای دیجیتال مشابه همدیگر بودند: آنها از جایگشت (تبدیل) دریچه‌ای استفاده می‌کردند، مانند تابع آر اس ای و یا در برخی موارد از طرح امضای رابین بهره می‌گرفتند. جایگشت دریچه‌ای نوعی از مجموعه جایگشت‌هاست که به وسیله پارامترها مشخص می‌شود که در محاسبه‌های رو به جلو سریع عمل می‌کند ولی در محاسبه‌های بازگشتی با مشکل مواجه می‌شود. با این وجود برای هر پارامتر یک دریچه وجود دارد که حتی محاسبه‌های بازگشتی را آسان می‌کند. جایگشت‌های دریچه‌ای می‌توانند مانند سیستم‌های رمزگذاری با کلید عمومی باشند.
 
  

(left to right: Ron Rivest, Adi Shamir, Len Adleman)

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

      نظریه‌های امنیتی در تحقیقات میشلی، گلدواسر و ریوست مراتب متفاوت حمله به امضاهای دیجیتال را برای ایجاد دیوار دفاعی مناسب بررسی کردند و نتایج زیر به دست آمد:
1. در حمله کلید یگانه، مهاجم فقط روند بررسی و تأیید کلید عمومی را بدست می‌آورد و از این طریق سامانه را مورد تهاجم قرار می‌دهد.
2. در حمله با پیام آشکار، مهاجم یک کلید کارآمد برای مجموعه‌ای از پیام‌های آشکار و مشخص در اختیار دارد و فقط با استفاده از پیام مشخص می‌تواند حمله کند و توانایی انتخاب پیام برای مورد حمله قرار دادن نخواهد داشت.
3. در انطباق پیام انتخاب شده، مهاجم ابتدا امضا را بر روی یک پیام دلخواه که مورد انتخاب مهاجم است یاد می‌گیرد و از آن امضا استفاده می‌کند.
 
      در ادامه مراحل نتایج حمله به سامانه امضای دیجیتال از طریق روش‌های مذکور مطرح می‌شود:
1. در مرحله اول امکان ترمیم و استفاده مجدد از امضای دیجیتال را از بین خواهد برد.
2. توانایی جعل امضا در یک سطح گسترده از دیگر نتایج حمله به امضای دیجیتال است. در این مرحله شخص مهاجم توانایی جعل امضا برای هر پیامی را به دست خواهدآورد.
3. جعل در مورد پیام‌های انتخابی؛ در این مورد مهاجم می‌تواند جعل امضا را در مورد پیام انتخابی خود انجام دهد.
4. در این مورد از نتایج حمله به امضای دیجیتال شخص مهاجم فقط می‌تواند از طریق امضای در دسترس خود و برخی پیام‌ها به محتویات آن‌ها دست پیدا کند و دیگر شخص مهاجم توانایی انتخاب ندارد و انتخاب های او محدود می‌شود.
 

 

 

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

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

 

 

با وجود تمام مزایایی که امضای دیجیتال دارد ولی این طرح همچنان در حل برخی مشکلات که در ادامه آن‌ها را مطرح می‌کنیم، ناتوان است. الگوریتم و قوانین مربوط به آن نمی‌توانند تاریخ و زمان امضای یک سند را در ذیل آن درج کنند از همین جهت شخص دریافت کننده نمی‌تواند این اطمینان را حاصل کند که نامه واقعاً در چه تاریخ و زمانی به امضا رسیده است. ممکن است در محتویات سند تاریخی درج شده باشد و با تاریخی که شخص، نامه را امضا کرده باشد مطابقت نداشته باشد. البته برای حل این مشکل می‌توان از یک راه حل با عنوان زمان اعتماد به مهر و امضا استفاده کرد.

همانطور که در ابتدای تعریف امضای دیجیتال اشاره شد این طرح غیر قابل انکار است و ساختار امضای دیجیتال بر همین اساس شکل گرفته است. همانطور که می‌دانید تکذیب در لغت به معنی انکار هرگونه مسئولیت نسبت به یک فعالیت است. هنگامی که پیامی ارسال می‌شود و فرستده آن را همراه امضا دریافت می‌کند در واقع این اطمینان در شخص دریافت کننده ایجاد می‌شود که نامه را چه کسی امضا کرده است و انکار امضا، کاری مشکل به نظر می‌رسد. البته تا زمانی که کلید خصوصی به صورت مخفی باقی بماند، شخص فرستنده نمی‌تواند چنین ادعایی داشته باشد ولی هنگامی که فایل امضای شخصی مورد حمله قرار بگیرد نه تنها خود فایل امضا اعتبار لازم را از دست می‌دهد بلکه استفاده از زمان اعتبار مهر و امضا نیز دیگر کاربردی نخواهد داشت. البته یادآوری این نکته لازم است هنگامی که شما در سامانه خود از کلید عمومی بهره می‌گیرد دیگر نمی‌توانید امضای خود را انکار کنید و در صورتی این موضوع امکان‌پذیر است که کل شبکه مورد حمله واقع شود و سامانه از اعتبار لازم ساقط شود. بنابراین توجه به انتخاب یک راه حل درست برای پیاده‌سازی طرح امضای دیجیتال از اهمیت ویژه‌ای برخوردار است و همانطور که عنوان شد ممکن است با یک مشکل کل اعتبار مجموعه زیر سوال برود. مطابق اصول فنی امضای دیجیتال که در توضیح‌های ابتدایی آورده شده است، فایل امضای دیجیتال رشته‌ای از بیت‌ها را در اجرای این طرح به کار می‌برد.
مشکل دیگر امضــای دیجیتال این است که چون پیــام توسط یک تابع مشخص به مجموعه‌ای از بیت‌ها ترجمه و پردازش می‌شود ممکــن است در طی مــرحله انتقال و  دریافت پیام، ترجمه پیام  دچار خدشه شود و مفهوم دیگری به خود گیـرد. برای حل این مشکل از روشـی با عنــوان (WYSIWYS (What You See Is What You Sign  استفاده می‌شود به این معنا که همان چیزی که مشاهده می‌شود امضا می‌شود. در این روش همان اطلاعات ترجمه شده خود را بدون آن که اطلاعات مخفی دیگری در آن قرار گیرد امضا می‌کند و پس از امضا و تایید اطلاعات از سوی شخص فرستنده درون سامانه به کار گرفته می‌شود. در واقع این روش ضمانت نامه محکمی برای امضای دیجیتال به شمار می‌رود و در سیستم‌های رایانه‌ای مدرن قابلیت پیاده‌سازی و اجرا را خواهد داشت.