ساختن امضای دیجیتال برای email با استفاده از pgp

از ویکی یزدلاگ، دانشنامهٔ آزاد.

پرش به: ناوبری, جستجو

رمز نگاری و امضاء دیجیتالی

امنیت شبکه

استفاده از شبکه های کامپیوتری و اینترنت , خطرات امنیتی متعددی را به همراه دارد. برای همین سیستم عامل های لینوکس برنامه های متعددی را برای تامین امنیت سیستم ها و ارتباطات ارائه می دهد. که در ادامه به بررسی آنها می پردازیم.


استراق سمع

در این نوع حمله غیرفعال , اطلاعات تغییر نمی یابند ولی محرمانگی آنها از دست می رود. بطور مثال اگر بخواهید اطلاعات خود را بصورت متن عادی و رمز نشده به سیستم های راه دور ارسال کنید آنگاه ممکن است این اطلاعات توسط افراد غیرمجاز دریافت شوند . دستبرد اطلاعات ممکن است در مکان های مختلفی همانند شبکه های محلی , سوئیچ های انتقال داده ها و یا شبکه اینترنت انجام شود . هم اکنون نرم افزارهای مختلفی برای دریافت اطلاعات مختلف از روی یک شبکه محلی وجود دارد و ویروس ها و حمله کنندگان نیز می توانند اطلاعات انتقال یافته بر روی یک شبکه عمومی را دریافت نمایند. برای جلوگیری از این مشکل امنیتی از تکنیک های رمزنگاری متقارن و نامتقارن داده ها استفاده می شود .

تغییر اطلاعات

در این نوع حمله فعال , اطلاعات در حین انتقال به مقصد مورد حمله قرار می گیرد و جامعیت داده ها از دست می رود. حمله کننده با دریافت اطلاعات آنها را تغییر می دهد و یا آنها را با اطلاعات دیگری جایگزین می کند. مقصد نیز این مسئله را تشخیص نداده و داده ها را استفاده می نماید. برای جلوگیری از این نوع حمله از توابع درهم ساز یا هش استفاده می شود.

جعل هویت

در این نوع حمله فعال , شخص حمله کننده خود را به عنوان یک کاربر مجاز به سیستم های محلی معرفی می کند و بدین ترتیب از سرویس های مختلف شبکه محلی استفاده می کند . برای جلوگیری از این نوع حملات و فراهم کردن احراز هویت کاربران و نرم افزارها از امضاء دیجیتالی استفاده می شود. عدم سرویس دهی

در این روش , حمله کنندگان از ارائه سرویس های یک موسسه جلوگیری می نمایند. راه اندازی این نوع حملات راحت می باشد و اغلب از روش های جعل هویت و نیز ارسال مقادیر زیادی از بسته های IP انجام می گیرد. این حملات به اختصار DOS نامیده می شوند و جزء حملات فعال هستند. با استفاده از دیواره های آتش شبکه خطر این حملات می توان کاهش داد.

رمز نگاری داده ها

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

رمزنگاری متقارن داده ها

در این روش رمزنگاری , ترکیبی از جابجایی و جایگزینی داده ها در مراحل متعدد انجام می شوند تا پیچیدگی لازم بر روی داده ها بوجود آید. همچنین برای انجام عملیات رمزنگاری , یک کلید مشترک و محرمانه بین فرستنده و گیرنده استفاده می شود. در این روش داده ها در مبدا با کلید مشترک رمز شده و به مقصد ارسال می گردند و در مقصد نیز داده ها با کلید مشترک رمز گشائی می شوند. در رمزنگاری متقارن فرض بر این است که حمله کننده از الگوریتم رمزنگاری مطلع است و تنها بر محرمانگی کلید رمزنگاری مشترک تکیه می شود. بطور کلی هرچه طول کلید بیشتر باشد مدت زمان بیشتری برای شکستن رمز داده ها صرف می گردد و امنیت بیشتری بدست می آید. با توجه به قدرت پردازش فعلی , انتخاب کلیدهای با طول بیشتر از ۱۲۸ بیت مناسب بنظر می رسد. همچنین کلید های رمزنگاری مدتی پس از استفاده باید تعویض شوند و کلیدهای جدید نیز حتی الامکان باید بصورت تصادفی انتخاب گردند تا حداکثر امنیت بدست آید. الگوریتم های رمزنگاری متقارن بدو دسته الگوریتم های بلاکی و جریانی , داده ها بیت به بیت رمزنگاری یا رمزگشائی می شوند. الگوریتم های جریانی سریعتر از بلاکی هستند. الگوریتم هائي همانند DES بلاکی و الگوریتم هائی همانند RC4 جریانی می باشند. البته لازم به ذکر است که رمزنگاری متقارن , احراز هویت را نیز فراهم می آورد. بطور مثال در صورتی که داده رمزشده ای دریافت شد با توجه به کلید مورد استفاده می توان از هویت شخص ارسال کننده داده نیز مطمئن شد زیرا این کلید ها محرمانه فرض می شوند. رمزنگاری متقارن از کارایی مطلوبی برخوردار است و تاخیر کمی را در عملیات رمزنگاری و رمزگشائي داده ها فراهم می آورد. بنابراین از آن می توان برای رمزنگاری حجم بزرگی از داده ها استفاده نمود. از این نوع رمزنگاری در پروتکل های امنیتی محیط باسیم و بی سیم بطور گسترده استفاده می شود. الگوریتم هایی همانند RC4,IDEA,DES,3DESو . . . از الگوریتم های متقارن می باشند.

رمزنگاری نا متقارن

رمزنگاری نامتقارن یا رمزنگاری کلید عمومی , بزرگترین و شاید تنهاترین انقلاب موجود در تاریخ رمزنگاری است . در الگوریتم این روش , به جای جایگشت و جایگزینی داده ها , از توابع ریاضی استفاده می شود و بجای یک کلید محرمانه مشترک , یک کلید عمومی و یک کلید خصوصی ایجاد و کلید عمومی در اختیار همه و کلید خصوصی تنها در دسترس کاربر قرار می گیرد. برای محرمانگی کلیدهای خصوصی , رمز عبوری برای دسترسی پایگاه داده کلید خصوصی در نظر گرفته می شود. مفهوم رمزنگاری کلید عمومی , در پی تلاش برای حل دو مشکل توزیع کلید به روشی امن و امضاء دیجیتالی بوجود آمده و دارای دو خاصیت مهم و اساسی زیر می باشد : ۱- بطور محاسباتی محاسبه کلید رمزگشائي از کلید رمزگذاری غیر ممکن است. ۲- هر دو کلید خصوصی و عمومی را می توان برای رمزنگاری استفاده نمود . البته برای رمزگشائی نیز باید کلید دیگر استفاده کرد. در این روش رمزنگاری , ابتدا کلید عمومی مقصد به روش معتبری فراهم شده و سپس داده ها توسط کلید عمومی مقصد رمزنگاری و به آن ارسال می گردند. حمله کننده بین مسیر مبداء و مقصد می تواند کلید عمومی مقصد را به راحتی به دست بیاورد ولی با این کلید قادر به رمزگشائی داده ها نخواهد بود. در مقصد داده ها توسط کلید خصوصی رمزگشائی و استفاده می شوند. توجه داشته باشید که عکس این روش محرمانگی داده ها را بوجود نمی آورد زیرا در صورتی که داده ها ابتدا توسط کلید خصوصی رمزنگاری شوند و سپس منتقل گردند چون همه افراد کلید عمومی را می دانند بنابراین همه می توانند داده های رمز شده را رمزگشائی نمایند و محرمانگی داده ها از دست می رود. برای بدست آوردن کلید عمومی به روشی معتبر می توان از گواهی های دیجیتالی استفاده نمود. در مقایسه با رمزنگاری متقارن این روش از محاسبات پیچیده و زمانگیری استفاده می نماید و لذا برای رمزنگاری حجم زیادی از داده ها بکار نمی رود. اغلب از این نوع رمزنگاری , برای ارسال مقادیر کمی از داده ها , همانند کلید های رمزنگاری متقارن استفاده می شود. متداول ترین الگوریتم برای رمزنگاری کلید عمومی الگوریتم RSA است که توسط سه تن بنام های رایوست , شامیر و آدلمن بوجود آمده است.

امضاء دیجیتالی

تکنیک امضاء دیجیتالی برای تامین احراز هویت و عدم انکار بکار می رود. برای ایجاد امضاء دیجیتالی باید از یک تابع هش و رمزنگاری کلید عمومی استفاده نماییم . بطور کلی توابع در هم ساز , داده ای با طول دلخواه را دریافت و خروجی با طول ثابت را بوجود می آورند. این توابع یکطرفه , جامعیت داده ها را تضمین می نمایند و دارای دو خاصیت زیر می باشند :

۱- برای پیام دلخواهی همانند X پیدا کردن پیامی همانند Y که H(X)=H(Y) باشد بطور محاسباتی غیر ممکن است.

۲- پیدا کردن دو پیام همانند X و Y بصورتی که H(X)=H(Y) باشد بطور محاسباتی غیر ممکن می باشد.

برای محاسبه امضاء دیجیتالی , ابتدا باید درهم شده پیام محاسبه و با کلید خصوصی فرستنده رمزنگاری شوند . سپس باید داده های اولیه به همراه امضاء دیجیتالی به مقصد انتقال یابند. در مقصد برای بررسی صحت امضاء دیجیتالی عملیات زیر انجام می شود:

۱- تجزیه پیام دریافتی به دوقسمت داده و امضاء دیجیتالی

۲- رمزگشائی امضاء دیجیتالی با کلید عمومی فرستنده

۳- محاسبه چکیده پیام متنی

۴- مقایسه محاسبه شده با چکیده دریافتی

حال در صورت تساوی , معتبر بودن داده تائید شده و احراز هویت حاصل می گردد.