بخشی از مقاله
امضای دیجیتال
یک امضای دیجیتال نوعی رمزنگاری نامتقارن است. هنگامی که پیغامی از کانالی ناامن ارسال میشود، یک امضای دیجیتال که به شکل صحیح به انجام رسیده باشد میتواند برای شخص گیرنده پیام دلیلی باشد تا ادعای شخص فرستنده را باور کند و یا به عبارت بهتر شخص گیرنده از طریق امضای دیجیتال میتواند این اطمینان را حاصل کند که همان شخص فرستنده نامه را امضا کرده است و نامه جعلی نیست. امضاهای دیجیتال در بسیاری از جنبهها مشابه امضاهای سنتی دستی هستند؛ انجام امضاهای دیجیتال به شکل صحیح بسیار مشکلتر از یک امضای دستی است. طرحها فایل امضای دیجیتال بر مبنای رمزنگاری نامتقارن هستند و می بایست به شکل صحیح صورت گیرد تا موثر واقع شود. همچنین امضاهای دیجیتال میتوانند امضاهایی غیرقابل انکار را ایجاد کنند به این معنی که شخص امضاکننده نمیتواند تا زمانی که کلید شخصی فرد به صورت مخفی باقیمانده است، ادعا کند که من این نامه که امضای من را به همراه دارد، امضا نکرده ام. ولی در زمانی که کلید شخصی فرد در شبکه از حالت مخفی خارج شود یا زمان اعتبار امضای او به اتمام برسد شخص میتواند امضای دیجیتال خود را انکار کند هرچند که در این حالت نیز با وجود ساختار قوی امضای دیجیتال، این امضا اعتبار خود را حفظ میکند. پیغامهای امضا شده با امضای دیجیتال امکان ارائه به صورت یک رشته بیتی را دارند. مانند: پست الکترونیک، قراردادها و یا پیام هایی که از طریق قواعد رمزنگاریهای دیگر ارسال شده باشند.
امضاهای دیجیتال اغلب برای به انجام رساندن امضاهای الکترونیکی به کار میروند. در تعدادی از کشورها، مانند آمریکا و کشورهای اتحادیه اروپا، امضاهای الکترونیکی قوانین مخصوص به خود را دارند. هرچند، قوانین دربارهٔ امضاهای الکترونیکی همواره روشن نمیسازند که آیا امضاهای دیجیتال به درستی به کار گرفته شده اند و یا اهمیت آنها به چه میزان است. در حالت کلی قوانین به شکل واضح در اختیار کاربران قرار نمیگیرد و گاهی آنان را به گمراهی می کشاند.
مشخصات امضا دیجیتال
طرح امضای دیجیتال معمولاً سه الگوریتم را شامل میشود: ۱- الگوریتم تولید کلید را که کلید خصوصی را بطور یکسان و تصادفی از مجموعه کلیدهای ممکن انتخاب میکند. خروجیهای این الگوریتم کلید خصوصی و کلید عمومی مطابق با آن است.۲- الگوریتم امضا که توسط آن با استفاده از کلید خصوصی و پیام، امضا شکل میگیرد. ۳-الگوریتمی که با استفاده از پیام دریافتی و کلید عمومی صحت امضا را بررسی میکند و با مطابقتی که انجام میدهد یا امضا را می پذیرد یا آن را رد میکند.
دو ویژگی اصلی که در امضای دیجیتال مورد نیاز است: اول، امضای تولید شده از پیام مشخص و ثابت هنگامی که توسط کلید عمومی مورد بررسی قرار میگیرد فقط در مورد همان پیام ارسالی میتواند عمل تطبیق را صورت دهد و در مورد هر پیام متفاوت و خاص میباشد. ثانیاً، امضای دیجیتال می بایست قابلیت اجرا توسط الگوریتم را داشته باشد و بتواند فایل امضای معتبر برای مهمانی که کلید خصوصی را دارا نمیباشد ایجاد نماید.
تاریخچه بر اساس اسناد معتبر "دیدگاههای جدید در رمزنگاری" در سال ۱۹۷۶ توسط ویتفید دیفای و مارتین هیلمن برای تشریح ایدههای اولیه طرح فایل امضای دیجیتال ارائه شد. البته به نظر میرسد طرحهای اولیه دیگری نیز در آن زمان وجود داشته است. مدت کوتاهی پس از آن جمع دیگری از محققین به نامهای ریوست، شمیر و آدلمن، الگوریتم آر اس اِی را ابداع کردند که میتوانست برای تولید امضای دیجیتال اولیه به کار رود . اول بسته نرمافزاری امضای دیجیتال با عنوان لوتوس نت در سال ۱۹۸۹ بر مبنای همین الگوریتم به بازار عرضه شد.
در سال ۱۹۸۴ میشلی، گلدواسر و ریوست با تمام دقت موارد مورد نیاز را برای برقراری امنیت در طرح امضای دیجیتال بررسی کردند. آنها با بررسی مدلهای مختلف حمله برای امضای دیجیتال توانستند طرح فایل امضای دیجیتال جی ام آر را ارائه کنند که میتواند در مقابل حمله به پیام و جعلی بودن آن مقاومت کند.
طرحهای ابتدایی امضای دیجیتال مشابه همدیگر بودند: آنها از جایگشت(تبدیل) دریچهای استفاده میکردند، مانند تابع آر اس اِی و یا در برخی موارد از طرح امضای رابین بهره میگرفتند. جایگشت دریچهای نوعی از مجموعه جایگشت هاست که به وسیله پارامترها مشخص میشود که در محاسبههای رو به جلو سریع عمل میکند ولی در محاسبههای بازگشتی با مشکل مواجه میشود. با این وجود برای هر پارامتر یک دریچه وجود دارد که حتی محاسبههای بازگشتی را آسان می کند. جایگشتهای دریچهای میتوانند مانند سیستمهای رمزگذاری با کلید عمومی باشند. در جایی که پارامتر به عنوان کلید عمومی و جایگشت دریچهای به عنوان کلید پنهان است رمزگذاری مانند محاسبه جایگشت در جهت رو به جلوست و رمز گشایی مانند محاسبه در جهت معکوس است. همچنین جایگشتهای دریچهای میتوانند مانند طرح فایل امضا دیچیتال باشند، به این صورت که محاسبه در جهت معکوس با کلید پنهان مانند امضا کردن است و محاسبه در جهت پیش رو مانند بررسی صحت امضاست. به دلیل این همخوانی امضاهای دیجیتال اغلب بر پایه سامانه رمزنگاری با کلید عمومی تشریح میشوند اما این تنها روش پیاده سازی امضای دیجیتال نیست.
ولی این نوع طرح امضای دیجیتال در برابر حملات آسیب پذیر است و شخص مهاجم میتواند با دست کاری در روش بررسی صحت امضا، یک امضای دیجیتال جعلی برای خود ساخته و شبکه را با مشکل مواجه سازد. هرچند این نوع امضا به شکل مستقیم به کار گرفته نمیشود ولی ترجیحاً ابتدا پیام را با استفاده از روشهای درهم سازی خلاصه میکنند و سپس خلاصه پیام را امضا میکنند و در نتیجه استفاده از همین ترفند و با توجه به توضیحات شکل ۲ شخص مهاجم فقط میتواند یک امضای دیجیتال جعلی برای خود درست کند که این امض با محتویات مربوط به خروجی تابع درهم سازی از پیام خلاصه شده تطابق ندارد و شخص مهاجم نمیتواند به محتویات پیام خدشهای وارد کند.
همچنین دلایل متنوعی وجود دارد تا افرادی که می خواهند از امضای دیجیتال استفاده کنند از خلاصه پیام و خروجی تابع درهم سازی برای امضا استفاده کنند. اولین دلیل ایجاد بازدهی مناسب برای طرح امضای دیجیتال است زیرا فایل امضا خیلی کوتاهتر خواهد بود و در نتیجه زمان کمتری صرف میشود. دومین دلیل برای سازگاری بیشتر است زیرا با استفاده از تابع درهم سازی شما میتوانید خروجی مطابق با نوع الگوریتمی که به کار گرفته اید داشته باشید. سومین دلیل برای درستی اجرای امضای دیجیتال است : بدون استفاده از تابع درهم سازی ممکن است پیام شما در هنگام امضا به دلیل مشکل فضا به بخشهای مختفل تقسیم شود و شخص دریافت کننده نتواند به درستی منظور فرستنده را دریافت کند بنابراین از این تابع استفاده میکند تا خود پیام را به شکل خلاصه و بدون ایجاد مشکل ارسال کند.
نظریههای امنیتی در تحقیقات میشلی، گلدواسر و ریوست مراتب متفاوت حمله به امضاهای دیجیتال را برای ایجاد دیوار دفاعی مناسب بررسی کردند و نتایج زیر به دست آمد: ۱- در حمله کلید یگانه، مهاجم فقط روند بررسی و تایید کلید عمومی را بدست میآورد و از این طریق سامانه را مورد تهاجم قرار میدهد. ۲- در حمله با پیام آشکار، مهاجم یک کلید کارآمد برای مجموعهای از پیامهای آشکار و مشخص در اختیار دارد و فقط با استفاده از پیام مشخص میتواند حمله کند و توانایی انتخاب پیام برای مورد حمله قرار دادن نخواهد داشت. ۳- در انطباق پیام انتخاب شده، مهاجم ابتدا امضا را بر روی یک پیام دلخواه که مورد انتخاب مهاجم است یاد میگیرد و از آن امضا استفاده میکند. در ادامه مراحل نتایج حمله به سامانه امضای دیجیتال از طریق روشهای مذکور مطرح میشود: ۱- در مرحله اول امکان ترمیم و استفاده مجدد از امضای دیجیتال را از بین خواهد برد. ۲- توانایی جعل امضا در یک سطح گسترده از دیگر نتایج حمله به امضای دیجیتال است. در این مرحله شخص مهاجم توانایی جعل امضا برای هر پیامی را به دست خواهدآورد. ۳- جعل در مورد پیامهای انتخابی؛ در این مورد مهاجم میتواند جعل امضا را در مورد پیام انتخابی خود انجام دهد. ۴- در این مورد از نتایج حمله به امضای دیجیتال شخص مهاجم فقط میتواند از طریق امضای در دسترس خود و برخی پیامها به محتویات آنها دست پیدا کند و دیگر شخص مهاجم توانایی انتخاب ندارد و انتخابهای او محدود میشود.
معایب امضای دیجیتال
با وجود تمام مزایایی که امضای دیجیتال دارد و در ادامه همین مقاله به بررسی آن می پردازیم ولی این طرح همچنان در حل برخی مشکلات که در ادامه آنها را مطرح می کنیم ناتوان است. الگوریتم و قوانین مربوط به آن نمیتوانند تاریخ و زمان امضای یک سند را در ذیل آن درج کنند از همین جهت شخص دریافت کننده نمیتواند این اطمینان را حاصل کند که نامه واقعاً در چه تاریخ و زمانی به امضا رسیده است. ممکن است در محتویات سند تاریخی درج شده باشد و با تاریخی که شخص نامه را امضا کرده باشد مطابقت نداشته باشد. البته برای حل این مشکل میتوان از یک راه حل با عنوان زمان اعتماد به مهرو امضا استفاده کرد. همانطور که در ابتدای تعریف امضای دیجیتال اشاره شد این طرح غیر قابل انکار است و ساختار امضای دیجیتال بر همین اساس شکل گرفته است. همانطور که می دانید تکذیب در لغت به معنی انکار هرگونه مسئولیت نسبت به یک فعالیت است. هنگامی که پیامی ارسال میشود و فرستده آن را همراه امضا دریافت میکند در واقع این اطمینان در شخص دریافت کننده ایجاد میشود که نامه را چه کسی امضا کرده است و انکار امضا کاری مشکل به نظر میرسد. البته تا زمانی که کلید خصوصی به صورت مخفی باقی بماند شخص فرستنده نمیتواند چنین ادعایی داشته باشد ولی هنگامی که فایل امضای شخصی مورد حمله قرار بگیرد نه تنها خود فایل امضا اعتبار لازم را از دست میدهد بلکه استفاده از زمان اعتبار مهر و امضا نیز دیگر کاربردی نخواهد داشت. البته یادآوری این نکته لازم است هنگامی که شما در سامانه خود از کلید عمومی بهره میگیرد دیگر نمیتوانید امضای خود را انکار کنید و در صورتی این موضوع امکان پذیر است که کل شبکه مورد حمله واقع شود و سامانه از اعتبار لازم ساقط شود. بنا براین توجه به انتخاب یک راه حل درست برای پیاده سازی طرح امضای دیجیتال از اهمیت ویژهای برخوردار است و همانطور که عنوان شد ممکن است با یک مشکل کل اعتبار مجموعه زیر سوال برود. مطابق اصول فنی امضای دیجیتال که در توضیحهای ابتدایی آورده شده است، فایل امضای دیجیتال رشتهای از بیتها را در اجرای این طرح به کار میبرد. در واقع افراد در این طرح مجموعهای از بیتها را که ترجمه پیام است امضا میکنندآن آنها ترجمه معنایی آنها ذرهها امضا میکنند . مشکل دیگر امضای دیجیتال این است که چون پیام توسط یک تابع مشخص به مجموعهای از بیتها ترجمه و پردازش میشود ممکن است در طی مرحله انتقال و دریافت پیام ترجمه پیام دچار خدشه شود و مفهوم دیگری به خود گیرد. برای حل این مشکل از روشی با عنوان دبلیو وای اس آی دبلیو وای اس استفاده میشود به این معنا که همان چیزی که مشاهده میشود امضا میشود. در این روش همان اطلاعات ترجمه شده خود را بدون آن که اطلاعات مخفی دیگری در آن قرار گیرد امضا میکند و پس از امضا و تایید اطلاعات از سوی شخص فرستنده درون سامانه به کار گرفته میشود. در واقع این روش ضمانت نامه محکمی برای امضای دیجیتال به شمار میرود و در سیستمهای رایانهای مدرن قابلیت پیاده سازی و اجرا را خواهد داشت.
مزایای امضای دیجیتال
حال در این بخش مزایای استفاده از امضای دیجیتال را مورد بررسی قرار خواهیم داد. یکی از دلایل به کار گیری امضاهای دیجیتالی که یک دلیل عادی به شمار میرود ایجاد اعتبار برای امضاها در یک سامانه تبادل داده و اطلاعات است. در واقع استفاده از امضای دیجیتال سندیت و اعتبار ویژهای به یک سند می بخشند. وقتی که هر فرد دارای یک کلید خصوصی در این سامانه است با استفاده از آن میتواند سند را امضا کرده و به آن ارزش و اعتبار داده و سپس آن را ارسال کند. اهمیت ایجاد اطمینان قطعی و محکم برای شخص دریافت کننده پیام دربارهٔ صحت ادعای فرستنده در برخی از انواع انتقال اطلاعات مانند دادههای مالی به خوبی خود را نشان میدهد و اهمیت وجود امضای دیجیتال درست را بیش از پیش به نمایش می گذارد. به عنوان مثال تصورکنید شعبهای از یک بانک قصد دارد دستوری را به دفتر مرکزی با نک به منظور درخواست ایجاد تعادل در حسابهای خود را ارسال کند . اگر شخص دریافت کننده در دفتر مرکزی متقاعد نشود که این پیام، یک پیام صادقانه است و از سوی یک منبع مجاز ارسال شده است طبق درخواست عمل نکرده و در نتیجه مشکلاتی را به وجود میآورد. در موارد بسیار زیادی، فرستنده و گیرنده پیام نیاز دارند این اطمینان را به دست بیاورند که پیام در مدت ارسال بدون تغییر باقیمانده است. هرچند رمزنگاری محتوای پیام را مخفی میکند ولی ممکن است امضا در یک سامانه از اعتبار ساقط شود و محتویات یک پیام دست خوش تغییرات گردد. ولی استفاده از امضای دیجیتال به عنوان روشی از رمز نگاری میتواند ضامن درستی و بی نقصی یک پیام در طی عملیات انتقال اطلاعات باشد زیرا همانطور که در ساختار اجرایی شدن الگوریتم مشاهده کردید از تابع درهم سازی بهره گرفته شده است و همین نکته ضمانت بهتری را برای درستی و صحت یک پیام ایجاد می نماید.
کلید عمومی رمزنگاری
رمزنگاری با استفاده از کلید عمومی روشی است برای ایجاد یک ارتباط پنهان میان دو شخص بدون اینکه نیازی به تعویض کلیدهای خصوصی باشد. همچنین با استفاده از این روش میتوان امضاهای دیجیتال را ایجاد کرد.
رمزنگاری کلید عمومی اساس و بنیاد تبادل اطلاعات در تکنولوژیهای امروز در جهان گسترده اینترنت است. همچنین این روش به عنوان رمزنگاری نامتقارن نیز مطرح است زیرا کلیدی که برای رمزنگاری به کار میرود با کلیدی که برای رمز گشایی به کار میرود متفاوت است. در رمزنگاری با کلید عمومی، هر کاربر یک جفت کلید برای رمزنگاری شامل یک کلید عمومی و یک کلید خصوصی است. کلید خصوصی به عنوان یک راز از سوی کاربر باید نگهداری شود و همه کاربران امکان استفاده از کلید عمومی را داردند و در اختیار همه قرار میگیرد.
از رمز نگاری نامتقارن هم برای رمزنگاری استفاده میشود هم برای رمز گشایی استفاده میشود. پیام هایی که با کلید عمومی رمزنگاری میشوند فقط با کلید خصوصی مطابق قابلیت رمزگشایی را دارند. هرچند که کلیدهای عمومی و خصوصی مطابق با یکدیگر هستند ولی با استفاده از کلید عمومی نمیتوان کلید خصوصی را به دست آورد. در طرح رمزنگاری متقارن فرستنده و گیرنده باید یک کلید مشترک اضافه باشند تا بتوانند عملیات رمزگشایی و رمز نگاری را انجام دهند و به همین دلیل این طرح قابلیت اجرایی شدن کمتری نسبت به روش نامتقارن دارند زیرا روش متقارن یک پهنای باند ویژه جهت تبادل کلید اضافی نیاز دارد به همین دلیل از کارایی مناسبی برخوردار نیستند.
دو شاخه اصلی رمزنگاری با کلید عمومی عبارتند از: رمزگذاری کلیدی عمومی: پیامی که با کلید عمومی رمزگذاری شده باشد فقط به وسیله صاحب کلید خصوصی مطابق با آ« رمزگشایی میشود و این موضوع به همکاری فرستنده و گیرنده بستگی دارد و میتواند اعتماد را تا اندازه زیادی در این سیستم تامین کند. همکاری کرد . امضاهای دیجیتال: در مورد امضای دیجیتال پیام ب استفاده از کلید خصوصی فرستنده رمزگذاری میشود و با استفاده از کلید عمومی فرستنده نیز رمزگشایی میشود. رمزنگاری کلید عمومی در مقایسه با صندوق پستی مانند صندوق پستی قفل شده همراه یک دریچه است که این دریچه در دسترس عموم قرار دارد به طور مثال اطلاعاتی از قبیل محل خیابان در اختیار عموم قرار میگیرد. هرکس با دانستن آدرس خیابان میتواند به درب مورد نظر مراجعه کرده و پیام مکتوب را از طریق دریچه میتواند ببیند ولی فقط شخصی که کلید باز کزدن صندوق پستی را دارا میباشد میتواند پیام را بخواند. همچنین امضاهای دیجیتال شبیه پلمب یک پاکت نامه است که هرکس میتواند پاکت نامه را باز کند ولی پلمی فرستنده بر روی پاکت نامه به عنوان نشانی از فرستنده باقی خواهد ماند. مسئله اصلی برای استفاده از رمزنگاری عمومی ایجاد اطمینان در مسیر ارسال اطلاعات است. با توجه به مثالهای ذکر شده باید کلید عمومی برای هر شخص به درستی تولید شود تا از سوی شخص سومی مورد تهاجم واقع نشود و سلامت سیستم حفظ شود. یک شیوه مرسوم برای رسیدگی به این مسئله استفاده از یک سازمان کلید عمومی است که بتواند در مورد شخص سومی که وارد سیستم میشود یک دسترسی متناسب تعریف کند. تمامی تکنیکهای قابلیت اجرای سریعتر نسبت به اجرای سیستم کلید خصوصی را دارند و میتوانند به اندازه کافی برای برنامههای متنوع کلید تولید کنند. در عمل اغلب رمز نگاری با کلید عمومی با سیستم کلید خصوصی به کار میرود تا بتواند بازدهی بیشتری داشته باشد. چنین ترکیب هایی را سیستم رمزنگاری دو رگه می نامند. برای رمزنگاری، فرستنده پیام با استفاده از الگوریتم تولید کلید به طور تصادفی یک کلید تولید میکند و با استفاده از آن کلید تصادفی عملیات رمزنگاری با کلید عمومی را انجام میدهد. برای امضاهای دیجیتالی، فرستنده پیام با استفاده از تابع درهم سازی پیام را خرد می کنند و پس از تایید محتوای نامه، آن را امضا میکند. همچنین گیرنده با استفاده از تابع درهم سازی محاسباتی را انجام میدهد و کدی را به دست میآورد و این کد را با کد حاصل از اعمال تابع درهم سازی بر روی امضا، مقایسه میکند و بررسی میکند که آیا پیام مورد حمله قرار گرفته است یا خیر.
تولید کلید
تولید کلید روند تولید کلیدها برای رمز نگاری است . یک کلید رمزنگاری را انجام میدهد و یک کلید رمزگشایی میکند. سیستمهای رمزنگاری جدید، سیستم رمزنگاری متقارن مانند الگوریتمهای DES و AES و سیستم رمزنگاری با کلید عمومی مانند الگوریتم آر اس اِی را شامل میشوند. الگوریتمهای متقارن از یک کلید به اشتراک گذاشته شده استفاده میکنند و الگوریتمهای کلید عمومی از کلید عمومی و کلید خصوصی بهره میگیرند که کلید عمومی دسترسی عمومی دارد و وقتی فرستنده دادهها را با کلید عمومی رمزگذاری میکند، گیرنده تنها با داشتن کلید خصوصی میتواند دادهها را رمزگشایی کند.
پروتکل رمز نگاری
یک پروتکل امنیت (پروتکل رمزنگاری) یک مفهوم انتزاعی است و در واقع تضمینی برای امنیت سیستم به شمار میرود و امنیت سیستم رمزنگاری به برقراری این قواعد وابسته است. پروتکل تعیین میکند که الگوریتمها چگونه می بایست به کار روند تا همراه با کارآیی لازم، امنیت خود را نیز حفظ کنند. پروتکلها به اندازه کافی و به صورت مفصل جزئیات را دربارهٔ ساختارهای دادهها و شکل استفاده از آنها را تعیین میکنند. اجرای کامل و درست پروتکل می تواند این اطمینان را در کاربر ایجاد کند که امنیت سیستم تا میزان مورد نیاز تامین میشود. پروتکل رمزنگاری معمولاً در ابتداییترین حالت موارد زیر را شامل میشوند: بررسی و تایید صحت کلید؛ تعیین اعتبار موجود بودن کلید در سیستم؛ در مورد روش متقارن اعتبار لازم را به یک پیام میدهد؛ حفظ امنیت داده در سطح برنامه؛ روش هایی که اجازه نمیدهد کاربر امضای خود را تکذیب کند(ویژگی غیرقابل انکار بودن). به عنوان مثال؛ پروتکل امنیت لایههای حمل اطلاعات یک پروتکل رمزنگاری است که برای حفظ امنیت اتصالات در سطح وب را تامین میکند. طرز کار این پروتکل بر مبنای سیستم ۵۰۹X. است که یک مرحله تولید کلید و با استفاده از کلید عمومی و روش رمزنگاری با کلید عمومی دادهها را در سطح برنامهها حمل میکند . ولی این پروتکل نمیتواند ویژگی غیرقابل انکار بودن رمزنگاری را تامین کند. انواع دیگری از پروتکلهای رمزنگاری وجود دارند که برخی از آنها خود شامل چندین پروتکل مختلف دیگر میشوند امزوه تنوع گستردهای در زمینه پروتکلها به وجود آمده است و شرکتهای مختلف برای رفع معایب امضای دیجیتال و ایجاد امنیت هر چه بیشتر در این ساختار تلاش هی چشمگیری انجام داده اند. به طور کلی، یک پروتکل رمزنگاری، مجموعهای از قواعد و روابط ریاضی است که چگونگی ترکیب کردن الگوریتمهای رمزنگاری و استفاده از آنها به منظور ارائه یک سرویس رمزنگاری خاص در یک کاربرد خاص را فراهم میسازد. معمولاً یک پروتکل رمزنگاری مشخص میکند که اطلاعات موجود در چه قالبی باید قرار گیرند. چه روشی برای تبدیل اطلاعات به عناصر ریاضی باید اجرا شود . کدامیک از الگوریتمهای رمزنگاری و با کدام پارامترها باید مورد استفاده قرار گیرند . روابط ریاضی چگونه به اطلاعات عددی اعمال شوند . چه اطلاعاتی باید بین طرف ارسالکننده و دریافتکننده رد و بدل شود . چه مکانیسم ارتباطی برای انتقال اطلاعات مورد نیاز است . ─ به عنوان مثال میتوان به پروتکل تبادل کلید دیفی- هلمن برای ایجاد و تبادل کلید رمز مشترک بین دو طرف اشاره نمود.
جمع بندی
با توضیحاتی که دربارهٔ اجرای طرح امضای دیجیتال ارائه شد به نظر میرسد این روش میتواند نیازهای مجموعه را تامین میکند. هرچند معایبی در این تحقیق برای این روش مطرح شد ولی راهکارهای عملی برای مقابله با آن نیز ارائه شد. نکته مهمی که در متن مقاله بر آن تاکید شد انتخاب روش مناسب برای پیاده سازی این طرح و اجرای کامل و درست الگوریتمهای مربوط به آن است که میزان اعتبار این طرح را تا حدود زیادی افزایش میدهد.
مزايا و ويژگيها:
• يك واقعيت فيزيكي و اطلاع سريع گم شدن يا دزديده شدن
• استفاده از درگاه USB و عدم نياز به تجهيزات اضافي براي ارتباط با رايانه
• جلوگيري از انكار احتمالي كاربران در مقابل عمل انجام شده در محيطهاي مجازي
• اعتبار بخشيدن به اطلاعات به دليل جلوگيري از دستكاري هاي احتمالي
• امكان ارسال داده هاي كاملا محرمانه به ساير كاربران
• وسيله غير قابل كپي برداري و غير قابل شبيه سازي
• شكيل، كوچك و قابل حمل و هزينه بسيار پايين
• کاربری راحت هم براي برنامه نويسان و هم براي كاربران نهايي
كاربردها:
• كارت شناسايي ديجيتال
• امضاي ديجيتال
• پاكت ديجيتال (نامه محرمانه)
• پاكت ديجيتال امضادار
• قفل سخت افزاری
اين وسيله يك كامپيوتر كوچك (ميكروكنترلر) است كه از طريق درگاه USB با كامپيوتر شخصي كاربر در ارتباط است. شناسه (token) يك وسيله سخت افزاري است كه از نظر ظاهري در ابعاد و اندازه هاي يك cool disk است و به پورت USB رايانه شخصي وصل مي گردد.
شناسه وسيله اي است براي شناسايي كاربران محيطهاي مجازي مانند اينترنت كه علاوه بر احراز هويت مي تواند اطلاعاتي را كه كاربر ايجاد يا تغيير مي دهد امضاي ديجيتال مي كند.
اين وسيله كاربردهاي مختلفي دارد كه مهمترين آنها بحث كارت شناسايي و امضاي ديجيتال و نامه محرمانه است كه در ادامه مطلب بصورت جداگانه به توضيح در مورد يكايك آنها پرداخته ايم:
در سيستمهاي مجازي نظير اينترنت به دليل عدم رويارويي مستقيم با خود كاربر و عدم رويت آن بايد روالي براي احراز هويت فرد مورد نظر وجود داشته باشد. اولين كاربرد شناسه در شناسايي و احراز هويت كاربران است، يعني از اين وسيله مي توان به عنوان كارت شناسايي (سطح دسترسي) كاربران در محيط هاي مجازي مانند پورتالهاي سازماني، سيستم هاي اتوماسيون اداري و هر محيط مجازي ديگر كه بحث كاربر در آن وجود دارد استفاده كرد و اين وسيله را جايگزين رايجترين و در عين حال پر خطر ترين روش شناسايي يعني username و password كرد.
چنانكه مي دانيم نام كاربري و رمز عبور يك واقعيت مجازي است و دزديده شدن يا لو رفتن آن قابل احساس نمي باشد و اگر چنين اتفاقي رخ دهد، تا زمانيكه سوء استفاده يا خرابكاري به نام كاربر اتفاق نيافتد كاربر از لو رفتن سطح دسترسي خود بي اطلاع است. ولي اين وسيله سخت افزاري يك واقعيت فيزيكي بوده و گم شدن يا دزديده شدن آن كاملا محسوس و در همان دقايق اول نبود آن، مشخص مي شود. از طرفي ديگر مانندكارت خودپرداز بانك داراي PIN Code است و به تنهايي غير قابل سوء استفاده مي باشد. اين كاربرد وسيله (احراز هويت افراد) را اصطلاحا كارت شناسايي ديجيتال مي گويند.
براي استفاده از اين وسيله از يكي از قابليتهاي اين وسيله استفاده مي شود كه رمزنگاري متقارن AES با كليد 128 بيتي منحصر بفرد است. روال احراز هويت بصورت زير است:
مراحل كار بصورت زير است:
1. كاربر شناسه را به رايانه شخصي وصل مي كند
2. شماره سريال وسيبله كه منحصربفرد است، خوانده شده و به سرور ارسال مي شود
3. آخرین رمز استفاده شده براي آن شماره سريال به رايانه كاربر ارسال مي شود
4. كاربر PIN Code خود را وارد مي كند
5. در صورت صحيح بودن پين كد رمز جدید با الگوريتم AES داخل شناسه از روي رمز دريافت شده از سرور ساخته مي شود
6. رمز جديد به سرور ارسال و بر اساس بانك رمزها سرور درستي آن را بررسي مي كند
7. در صورت معتبر بودن، آخرين رمز استفاده شده بروزرساني مي شود و احراز هويت انجام مي گردد.
يعني شماره سريال شناسه همان فاكتوري است كه ارتباط 1-1 با كاربر دارد و روال فوق صحت شناسه كاربر را تست مي كند.
كاربران در محيطهاي مجازي عملياتي را انجام مي دهد ولي به دليل اينكه اين عمليات امكان شبيه سازي يا دستكاري را دارد اعتماد متقابل كاربر و سيستم دچار خدشه مي شود. يعني هم كاربر مطمئن نيست كه اطلاعات ممكن است در راه يا روي سرور قابل دستكاري نيست و هم سرور (صاحب سيستم) از براي جلوگيري از انكار احتمالي كاربر براي عمل انجام داده تضميني ندارد. كاربرد ديگري كه اين وسيله دارد و مي تواند براي حل اين مشكل استفاده شود، بحث امضاي ديجيتال آن است. امضاي ديجيتال گذاشتن يك رد پا يا اثر منحصر بفرد است كه از سوي كاربر روي داده هايي كه ايجاد مي كنند يا تغيير مي دهند يا تاييد مي كنند و خلاصه هر تراكنشي كه در آن محيط مجازي انجام مي دهند. اين اثر منحصر بفرد بدون حضور وسيله غير قابل شبيه سازي است حتي توسط مديران/ صاحبان سيستم، برنامه نويسان سيستم و حتي هكرها قابل شبيه سازي نيست.
منشا اين اثر الگوريتم رمزنگاري نامتقارن RSA و يك عدد 1024 بيتي است كه در وسيله سخت افزاري ذخيره شده و به آن كليد خصوصي يا Private Key مي گويند. تعداد حالات ممكن براي اين مقدار، عددي با بيش از 300 رقم است و پس بنابراين عملا غير قابل حدس زدن. اين الگوريتم بر اساس دو كليد كار مي كند كه يك كليد را به عنوان كليد عمومي در اختيار همه كاربران قرار مي دهند و ديگري كليد خصوصي است كه فقط در شناسه كاربر ذخيره است. هر داده اي كه با يكي از اين كليد ها رمزنگاري شود با كليد ديگر رمزگشايي مي شود.
رمزنگاري RSA روال بسيار سنگيني دارد و انجام آن طولاني است. بدين منظور براي امضاي ديجيتال به جاي اينكه كل متن، داده يا اطلاعات را رمز كنيم با يكي از توابع درهم ساز (Hash) به خلاصه متن مي رسيم. اين توابع اصطلاحا يكطرفه قوي هستند و بازيابي داده اصلي از روي خلاصه تقريبا غير ممكن است. با تلفيق رمزنگاري RSA و يك الگوريتم درهمساز دلخواه مانند MD5 يا SHA-1 مي توان اطلاعات را امضاي ديجيتال كرد. براي استفاده از اين وسيله براي امضاي ديجيتال اطلاعات روال زير انجام مي گردد:
1. اعمال تابع hash روي داده و تهيه خلاصه
2. اتصال شناسه به يكي از پورتهاي USB رايانه
3. دريافت PIN Code از كاربر براي دسترسي به كليد خصوصي داخل شناسه
4. رمزنگاري خلاصه با كليد خصوصي فرستنده كه در شناسه است
5. الحاق خلاصه رمزشده (امضا) به داده اصلي
هنگامي كه مي خواهيم از صحت اطلاعات (دستنخوردگي) داده يا امضاي ديجيتال مطلع شويم بايد آنرا به روش زير امتحان كرد:
1. جداسازي داده و امضا از هم
2. اعمال تابع hash روي داده و تهيه خلاصه 1
3. دريافت كليد عمومي كاربر فرستنده از مرجع كليد عمومي كاربران
4. رمزگشايي امضا با استفاده از کلید عمومی فرستنده (خلاصه 2)
5. مقايسه خلاصه 1 و خلاصه 2 جهت تصديق امضا
با عمليات فوق هم از بابت احراز هويت فرد ايجاد كننده اطلاعات مطمئن مي شويم و هم از بابت دست خوردگي اطلاعات در راه يا روي سرور. در صورتي كه جواب مقايسه منفي بود به قاطعيت نتيجه مي گيريم كه داده يا امضا دستكاري شده است و يا اطلاعات را كاربر ديگري ايجاد كرده است.
در برخي از سيستم ها وجود امكاناتي براي ارسال داده هاي كاملا محرمانه لازم است. در اين سيستم ها الگوريتمها و روالهايي ايجاد شده است كه بدليل اطلاع برنامه نويسان يا مديران آن سيستم از روال، امكان بازيابي اطلاعات محرمانه توسط افرادي غير از كاربر مقصد امكانپذير است. با استفاده از امكانات همين وسيله مي توان در محيطهاي مجازي نامه هاي واقعا محرمانه ارسال كرد به طوري كه به هيچ وجه بدون وجود شناسه مقصد (كاربر گيرنده) اطلاعات غيرقابل فهم و غير قابل بازيابي باشد. بدين منظور از الگوريتم RSA موجود در اين وسيله و تركيب آن با يك الگوريتم متقارن نظير AES، Bluefish يا 3DES استفاده مي شود. به اين كاربرد اصطلاحا پاكت ديجيتال گفته مي شود كه روال ايجاد نامه محرمانه آن بصورت زير است:
1. يك كليد به صورت تصادفي سمت فرستنده ايجاد مي شود
2. اطلاعات با استفاده از كليد رمزنگاري متقارن تصادفي رمزنگاري مي شود
3. كليد عمومي كاربر گيرنده از مرجع كليدهاي عمومي كاربران دريافت مي شود
4. رمزنگاري كليد متقارن با كليد عمومي گيرنده (مقصد)
5. ادغام داده رمزشده با كليد متقارن رمزشده (پاكت ديجيتال)
سمت گيرنده نحوه بازيابي متن نامه به صورت زير اتفاق مي افتد:
1. اتصال شناسه به يكي از پورتهاي USB رايانه
2. وارد كردن PIN Code توسط كاربر براي دسترسي به كليد خصوصي داخل شناسه
3. بازيابي كليد متقارن با رمزگشايي كليد رمز شده با استفاده از كليد خصوصي داخل شناسه
4. رمزگشايي متن با استفاده از كليد متقارن بازيابي شده