"golbarg"
30th March 2015, 04:12 PM
http://www.ccw.ir/pooyasoftpublisher/storage/profiles/20090928124853ps-keramati.jpg محمد كرامتی (http://www.ccw.ir/author/18/default.aspx)
eng.keramati@gmail.com
امضای دیجیتال چیست؟
شاید تاكنون نامههای الكترونیكی متعددی را دریافت داشتهاید كه دارای مجموعهای از حروف و اعداد در انتهای آنان میباشند. در اولین نگاه ممكن است اینگونه تصور گردد كه اطلاعات فوق بی فایده بوده و شاید هم نشان دهنده بروز یك خطا در سیستم باشد! در حقیقت ما شاهد استفاده از امضای دیجیتال در یك نامه الكترونیكی میباشیم. به منظور ایجاد یك امضای دیجیتال از یك الگوریتم ریاضی به منظور تركیب اطلاعات در یك كلید با اطلاعات پیام، استفاده میشود. ماحصل عملیات، تولید یك رشته مشتمل بر مجموعهای از حروف و اعداد است. یك امضای دیجیتال صرفاً به شما نخواهد گفت كه «این شخص یك پیام را نوشته است» بلكه در بردارنده این مفهوم مهم است كه: «این شخص این پیام را نوشته است».
كاغذ به عنوان حامل اطلاعات مهم جای خود را كمكم به دیگر راههای تبادل اطلاعات میدهد. در واقع كاغذ دارای معایبی از قبیل انتقال آهسته و پرهزینه اسناد میباشد. همچنین شیوههای ذخیرهسازی اطلاعات نیز به سرعت در حال تغییر است و به جای بایگانی انبوه دستههای كاغذ از روشهای الكترونیكی استفاده میشود. فناوریهای جدید انتقال اطلاعات، مانند EDI و پست الكترونیك و استفاده از سیستمهای مدیریت اسناد كامپیوتری نگارش، ارسال و ذخیره اطلاعات را سادهتر، سریعتر و حتی ایمنتر ساخته است.
به خاطر ساختار غیر فیزیكی واسطه (وسیله حامل داده)، روشهای سنتی علامتگذاری فیزیكی واسطه توسط مهر یا امضا (برای مقاصد تجاری و حقوقی) غیر قابل استفاده میباشند. هنگام كار با اسناد الكترونیكی، باید علامتی برای تشخیص اصل بودن و سندیت بخشیدن به محتوای آن، به اطلاعات اضافه شود.
بعضی شیوههای جدید تنها برای سندیت بخشیدن به یك موجودیت جهت مجوزدهی به دسترسی، استفاده میشوند؛ برای مثال نباید یك سیستم تشخیص هویت انگشتنگاری كامپیوتری، یك امضای دستی اسكن شده یا وارد كردن اسم شخص در انتهای یك E-mail را به عنوان یك جایگزین معتبر برای امضاهای دستی پذیرفته زیرا همه عملكردهای یك امضای دستی را نخواهد داشت.
با امضا كردن در پای یك نوشته امضا كننده هویت خود را به عنوان نویسنده مشخص میكند، جامعیت سند را تأیید نموده و بیان میدارد كه به محتویات آن متعهد و پایبند میباشد. برخی از خواص مهم امضاهای دستی عبارت است از:
1- امضای یك شخص برای تمام مدارك یكسان است.
2 - به راحتی تولید میشوند.
3 - به راحتی تمیز داده میشوند.
4 - باید به گونهای باشند كه حتیالامكان به سختی جعل شوند.
5 - به طور فیزیكی تولید میشوند. یك امضای دیجیتالی یك ابزار سندیت بخشیدن الكترونیكی میباشد، كه منجر به سندیت بخشیدن به یك ركورد الكترونیكی از طریق رمزنگاری با كلید همگانی میشود.
ویژگیهای مهم امضاهای دیجیتال عبارت است از:
1 - در تولید آنها از اطلاعاتی كه به طور منحصربهفرد در اختیار امضاكننده است، استفاده میشود.
2 - به طور خودكار و توسط رایانه تولید میشوند.
3 - امضای هر پیام وابسته به كلیه بیتهای پیام است و هر گونه دستكاری و تغییر در متن سند موجب مخدوش شدن امضای پیام میگردد.
4 - امضای هر سندی متفاوت با امضای اسناد دیگر است.
5 - باید به راحتی قابل بررسی و تأیید باشد تا از جعل و انكار احتمالی آن جلوگیری شود. ساختار اصلی امضای دیجیتالی بدین صورت است كه نویسنده اطلاعات الكترونیكی این اطلاعات را توسط كلید رمزنگاری محرمانه خود امضا میكند. این كلید باید توسط كاربر برای همیشه مخفی نگهداشته شود. امضا توسط كلید همگانی مربوطه امضا كننده، سند قابل كنترل میباشد. این كلید همگانی توسط عموم قابل رؤیت و دسترسی میباشد.
علت استفاده از یك امضای دیجیتال چیست؟
بهتر است برای پاسخ به سؤال فوق، سؤالات دیگری را مطرح كنیم! - برای تشخیص و تأیید هویت فرد ارسال كننده یك نامه الكترونیكی از چه مكانیزمهایی استفاده میشود؟ فرض كنید یك نامه الكترونیكی را از یكی از دوستان خود دریافت داشتهاید كه از شما درخواست خاصی را مینماید، پس از مطالعه پیام برای شما دو سؤال متفاوت مطرح میگردد:
الف ) آیا این نامه را واقعاً وی ارسال نموده است؟ ب ) آیا محتوای نامه ارسالی واقعی است و وی دقیقاً همین درخواست را داشته است؟
- آیا وجود هر نامه الكترونیكی در صندوق پستی، نشان دهنده صحت محتوا و تأیید هویت فرد ارسال كننده آن است؟ امروزه سوء استفاده از آدرسهای Email برای مهاجمان و ویروسها به امری متداول تبدیل شده است و با توجه به نحوه عملكرد آنان در برخی موارد شناسایی هویت فرد ارسال كننده یك پیام بسیار مشكل و در برخی موارد غیر ممكن است. تشخیص غیر جعلی بودن نامههای الكترونیكی در فعالیتهای تجاری و بازرگانی دارای اهمیت فراوانی است. یك نامه الكترونیكی شامل یك امضای دیجیتال، نشان دهنده این موضوع است كه محتوای پیام از زمان ارسال تا زمانی كه به دست شما رسیده است، تغییر نكرده است. در صورت بروز هر گونه تغییر در محتوای نامه، امضای دیجیتال همراه آن از درجه اعتبار ساقط میشود.
نحوه عملكرد یك امضای دیجیتال
قبل از آشنایی با نحوه عملكرد یك امضای دیجیتال، لازم است در ابتدا با برخی اصطلاحات مرتبط با این موضوع بیشتر آشنا شویم: كلیدها (Keys): از كلیدها به منظور ایجاد امضاهای دیجیتال استفاده میگردد. برای هر امضای دیجیتال، یك كلید عمومی و یك كلید خصوصی وجود دارد: كلید خصوصی، بخشی از كلید است كه شما از آن به منظور امضای یك پیام استفاده مینمایید. كلید خصوصی یك رمز عبور حفاظت شده بوده و نمیبایست آن را در اختیار دیگران قرار داد. كلید عمومی، بخشی از كلید است كه امكان استفاده از آن برای سایر افراد وجود دارد.
زمانی كه كلید فوق برای یك حلقه كلید عمومی (public key ring) و یا یك شخص خاص ارسال میگردد، آنان با استفاده از آن قادر به بررسی امضای شما خواهند بود. حلقه كلید (Key Ring): شامل كلیدهای عمومی است. یك حلقه كلید از كلیدهای عمومی افرادی كه برای شما كلید مربوط به خود را ارسال نموده و یا كلیدهایی كه از طریق یك سرویس دهنده كلید عمومی دریافت نمودهاید، تشكیل میگردد. یك سرویس دهنده كلید عمومی شامل كلید افرادی است كه امكان ارسال كلید عمومی در اختیار آنان گذاشته شده است.
اثرانگشت: زمانی كه یك كلید تأیید میگردد، در حقیقت منحصربهفرد بودن مجموعهای از حروف و اعداد كه اثر انگشت یك كلید را شامل میشوند. تأیید میگردد.
گواهینامههای كلید: در زمان انتخاب یك كلید از روی یك حلقه كلید، امكان مشاهده گواهینامه (مجوز) كلید وجود خواهد داشت. در این رابطه میتوان به اطلاعات متفاوتی نظیر صاحب كلید، تاریخ ایجاد و اعتبار كلید دست یافت.
نحوه ایجاد و استفاده از كلیدها
- تولید یك كلید با استفاده از نرمافزارهایی نظیر PGP (اقتباس شده از كلمات Pretty Good Privacy ) و یا GnuPG (اقتباس شده از كلمات GNU Privacy Guard )
- معرفی كلید تولید شده به سایر همكاران و افرادی كه دارای كلید میباشند.
- ارسال كلید تولید شده به یك حلقه كلید عمومی تا سایر افراد قادر به بررسی و تأیید امضای شما گردند.
- استفاده از امضای دیجیتال در زمان ارسال نامههای الكترونیكی. اكثر برنامههای سرویس دهنده پست الكترونیكی دارای پتانسیلی به منظور امضای یك پیام میباشند.
حملات ممكن علیه امضاهای دیجیتالی
• حمله Key-only – در این حمله، دشمن تنها كلید عمومی امضاكننده را میداند و بنابراین فقط توانایی بررسی صحت امضاهای پیامهایی را كه به وی داده شدهاند، دارد.
• حمله Known Signature – دشمن، كلید عمومی امضاكننده را میداند و جفتهای پیام/امضا كه به وسیله صاحب امضا انتخاب و تولید شده است را دیده است. این حمله در عمل امكانپذیر است و بنابراین هر روش امضایی باید در مقابل آن امن باشد.
• حمله Chosen Message – به دشمن اجازه داده میشود كه از امضاكننده بخواهد كه تعدادی از پیامهای به انتخاب او را امضا كند. انتخاب این پیامها ممكن است به امضاهای از قبل گرفته شده بستگی داشته باشد. این حمله در غالب حالات، ممكن است غیر عملی به نظر برسد، اما با پیروی از قانون احتیاط، روش امضایی كه در برابر آن ایمن است، ترجیح داده میشود.
• حمله Man-in-the-middle – در این حمله، شخص از موقعیت استفاده كرده در هنگام مبادله كلید عمومی، كلید عمومی خود را جایگزین كرده و برای گیرنده میفرستد و بدینگونه میتواند به پیامها دسترسی داشته باشد بدون اینكه فرستنده و گیرنده، مطلع باشند.
eng.keramati@gmail.com
امضای دیجیتال چیست؟
شاید تاكنون نامههای الكترونیكی متعددی را دریافت داشتهاید كه دارای مجموعهای از حروف و اعداد در انتهای آنان میباشند. در اولین نگاه ممكن است اینگونه تصور گردد كه اطلاعات فوق بی فایده بوده و شاید هم نشان دهنده بروز یك خطا در سیستم باشد! در حقیقت ما شاهد استفاده از امضای دیجیتال در یك نامه الكترونیكی میباشیم. به منظور ایجاد یك امضای دیجیتال از یك الگوریتم ریاضی به منظور تركیب اطلاعات در یك كلید با اطلاعات پیام، استفاده میشود. ماحصل عملیات، تولید یك رشته مشتمل بر مجموعهای از حروف و اعداد است. یك امضای دیجیتال صرفاً به شما نخواهد گفت كه «این شخص یك پیام را نوشته است» بلكه در بردارنده این مفهوم مهم است كه: «این شخص این پیام را نوشته است».
كاغذ به عنوان حامل اطلاعات مهم جای خود را كمكم به دیگر راههای تبادل اطلاعات میدهد. در واقع كاغذ دارای معایبی از قبیل انتقال آهسته و پرهزینه اسناد میباشد. همچنین شیوههای ذخیرهسازی اطلاعات نیز به سرعت در حال تغییر است و به جای بایگانی انبوه دستههای كاغذ از روشهای الكترونیكی استفاده میشود. فناوریهای جدید انتقال اطلاعات، مانند EDI و پست الكترونیك و استفاده از سیستمهای مدیریت اسناد كامپیوتری نگارش، ارسال و ذخیره اطلاعات را سادهتر، سریعتر و حتی ایمنتر ساخته است.
به خاطر ساختار غیر فیزیكی واسطه (وسیله حامل داده)، روشهای سنتی علامتگذاری فیزیكی واسطه توسط مهر یا امضا (برای مقاصد تجاری و حقوقی) غیر قابل استفاده میباشند. هنگام كار با اسناد الكترونیكی، باید علامتی برای تشخیص اصل بودن و سندیت بخشیدن به محتوای آن، به اطلاعات اضافه شود.
بعضی شیوههای جدید تنها برای سندیت بخشیدن به یك موجودیت جهت مجوزدهی به دسترسی، استفاده میشوند؛ برای مثال نباید یك سیستم تشخیص هویت انگشتنگاری كامپیوتری، یك امضای دستی اسكن شده یا وارد كردن اسم شخص در انتهای یك E-mail را به عنوان یك جایگزین معتبر برای امضاهای دستی پذیرفته زیرا همه عملكردهای یك امضای دستی را نخواهد داشت.
با امضا كردن در پای یك نوشته امضا كننده هویت خود را به عنوان نویسنده مشخص میكند، جامعیت سند را تأیید نموده و بیان میدارد كه به محتویات آن متعهد و پایبند میباشد. برخی از خواص مهم امضاهای دستی عبارت است از:
1- امضای یك شخص برای تمام مدارك یكسان است.
2 - به راحتی تولید میشوند.
3 - به راحتی تمیز داده میشوند.
4 - باید به گونهای باشند كه حتیالامكان به سختی جعل شوند.
5 - به طور فیزیكی تولید میشوند. یك امضای دیجیتالی یك ابزار سندیت بخشیدن الكترونیكی میباشد، كه منجر به سندیت بخشیدن به یك ركورد الكترونیكی از طریق رمزنگاری با كلید همگانی میشود.
ویژگیهای مهم امضاهای دیجیتال عبارت است از:
1 - در تولید آنها از اطلاعاتی كه به طور منحصربهفرد در اختیار امضاكننده است، استفاده میشود.
2 - به طور خودكار و توسط رایانه تولید میشوند.
3 - امضای هر پیام وابسته به كلیه بیتهای پیام است و هر گونه دستكاری و تغییر در متن سند موجب مخدوش شدن امضای پیام میگردد.
4 - امضای هر سندی متفاوت با امضای اسناد دیگر است.
5 - باید به راحتی قابل بررسی و تأیید باشد تا از جعل و انكار احتمالی آن جلوگیری شود. ساختار اصلی امضای دیجیتالی بدین صورت است كه نویسنده اطلاعات الكترونیكی این اطلاعات را توسط كلید رمزنگاری محرمانه خود امضا میكند. این كلید باید توسط كاربر برای همیشه مخفی نگهداشته شود. امضا توسط كلید همگانی مربوطه امضا كننده، سند قابل كنترل میباشد. این كلید همگانی توسط عموم قابل رؤیت و دسترسی میباشد.
علت استفاده از یك امضای دیجیتال چیست؟
بهتر است برای پاسخ به سؤال فوق، سؤالات دیگری را مطرح كنیم! - برای تشخیص و تأیید هویت فرد ارسال كننده یك نامه الكترونیكی از چه مكانیزمهایی استفاده میشود؟ فرض كنید یك نامه الكترونیكی را از یكی از دوستان خود دریافت داشتهاید كه از شما درخواست خاصی را مینماید، پس از مطالعه پیام برای شما دو سؤال متفاوت مطرح میگردد:
الف ) آیا این نامه را واقعاً وی ارسال نموده است؟ ب ) آیا محتوای نامه ارسالی واقعی است و وی دقیقاً همین درخواست را داشته است؟
- آیا وجود هر نامه الكترونیكی در صندوق پستی، نشان دهنده صحت محتوا و تأیید هویت فرد ارسال كننده آن است؟ امروزه سوء استفاده از آدرسهای Email برای مهاجمان و ویروسها به امری متداول تبدیل شده است و با توجه به نحوه عملكرد آنان در برخی موارد شناسایی هویت فرد ارسال كننده یك پیام بسیار مشكل و در برخی موارد غیر ممكن است. تشخیص غیر جعلی بودن نامههای الكترونیكی در فعالیتهای تجاری و بازرگانی دارای اهمیت فراوانی است. یك نامه الكترونیكی شامل یك امضای دیجیتال، نشان دهنده این موضوع است كه محتوای پیام از زمان ارسال تا زمانی كه به دست شما رسیده است، تغییر نكرده است. در صورت بروز هر گونه تغییر در محتوای نامه، امضای دیجیتال همراه آن از درجه اعتبار ساقط میشود.
نحوه عملكرد یك امضای دیجیتال
قبل از آشنایی با نحوه عملكرد یك امضای دیجیتال، لازم است در ابتدا با برخی اصطلاحات مرتبط با این موضوع بیشتر آشنا شویم: كلیدها (Keys): از كلیدها به منظور ایجاد امضاهای دیجیتال استفاده میگردد. برای هر امضای دیجیتال، یك كلید عمومی و یك كلید خصوصی وجود دارد: كلید خصوصی، بخشی از كلید است كه شما از آن به منظور امضای یك پیام استفاده مینمایید. كلید خصوصی یك رمز عبور حفاظت شده بوده و نمیبایست آن را در اختیار دیگران قرار داد. كلید عمومی، بخشی از كلید است كه امكان استفاده از آن برای سایر افراد وجود دارد.
زمانی كه كلید فوق برای یك حلقه كلید عمومی (public key ring) و یا یك شخص خاص ارسال میگردد، آنان با استفاده از آن قادر به بررسی امضای شما خواهند بود. حلقه كلید (Key Ring): شامل كلیدهای عمومی است. یك حلقه كلید از كلیدهای عمومی افرادی كه برای شما كلید مربوط به خود را ارسال نموده و یا كلیدهایی كه از طریق یك سرویس دهنده كلید عمومی دریافت نمودهاید، تشكیل میگردد. یك سرویس دهنده كلید عمومی شامل كلید افرادی است كه امكان ارسال كلید عمومی در اختیار آنان گذاشته شده است.
اثرانگشت: زمانی كه یك كلید تأیید میگردد، در حقیقت منحصربهفرد بودن مجموعهای از حروف و اعداد كه اثر انگشت یك كلید را شامل میشوند. تأیید میگردد.
گواهینامههای كلید: در زمان انتخاب یك كلید از روی یك حلقه كلید، امكان مشاهده گواهینامه (مجوز) كلید وجود خواهد داشت. در این رابطه میتوان به اطلاعات متفاوتی نظیر صاحب كلید، تاریخ ایجاد و اعتبار كلید دست یافت.
نحوه ایجاد و استفاده از كلیدها
- تولید یك كلید با استفاده از نرمافزارهایی نظیر PGP (اقتباس شده از كلمات Pretty Good Privacy ) و یا GnuPG (اقتباس شده از كلمات GNU Privacy Guard )
- معرفی كلید تولید شده به سایر همكاران و افرادی كه دارای كلید میباشند.
- ارسال كلید تولید شده به یك حلقه كلید عمومی تا سایر افراد قادر به بررسی و تأیید امضای شما گردند.
- استفاده از امضای دیجیتال در زمان ارسال نامههای الكترونیكی. اكثر برنامههای سرویس دهنده پست الكترونیكی دارای پتانسیلی به منظور امضای یك پیام میباشند.
حملات ممكن علیه امضاهای دیجیتالی
• حمله Key-only – در این حمله، دشمن تنها كلید عمومی امضاكننده را میداند و بنابراین فقط توانایی بررسی صحت امضاهای پیامهایی را كه به وی داده شدهاند، دارد.
• حمله Known Signature – دشمن، كلید عمومی امضاكننده را میداند و جفتهای پیام/امضا كه به وسیله صاحب امضا انتخاب و تولید شده است را دیده است. این حمله در عمل امكانپذیر است و بنابراین هر روش امضایی باید در مقابل آن امن باشد.
• حمله Chosen Message – به دشمن اجازه داده میشود كه از امضاكننده بخواهد كه تعدادی از پیامهای به انتخاب او را امضا كند. انتخاب این پیامها ممكن است به امضاهای از قبل گرفته شده بستگی داشته باشد. این حمله در غالب حالات، ممكن است غیر عملی به نظر برسد، اما با پیروی از قانون احتیاط، روش امضایی كه در برابر آن ایمن است، ترجیح داده میشود.
• حمله Man-in-the-middle – در این حمله، شخص از موقعیت استفاده كرده در هنگام مبادله كلید عمومی، كلید عمومی خود را جایگزین كرده و برای گیرنده میفرستد و بدینگونه میتواند به پیامها دسترسی داشته باشد بدون اینكه فرستنده و گیرنده، مطلع باشند.