You are on page 1of 31

‫به نام خدا‬

‫امنیت داده و شبکه‬


‫امنيت پست الك ترونيكي(‪)2‬‬

‫دکتر رضا ابراهیمی آتانی _ نیمسال اول ‪91-92‬‬

‫مرکز اموزش های الک ترونیکی‬


‫‪http://elearn.guilan.ac.ir‬‬
‫فهرستمطالب‬
‫‪ ‬امنیت پست الکترونیکی‬
‫‪ ‬پروتکل‪PGP‬‬
‫‪‬ويژگی هاي ‪PGP‬‬
‫‪‬سرويس هاي‪PGP‬‬
‫‪‬انواع کلیدهاي مورد استفاده‬
‫‪‬مديريت کلید‬
‫‪‬پروتکل ‪S/MIME‬‬

‫‪2‬‬
‫‪http://elearn.guilan.ac.ir‬‬ ‫مرکز اموزش های الک ترونیکی‬ ‫امنیت داده و شبکه‬
‫مديريت كليد‬
‫‪ ‬مشكل‪ :‬در جدول كليدهاي عمومي ‪ ،A‬يك كليد به ظاهر متعلق به‬
‫كاربر‪ B‬است‪ ،‬ولي در واقع متعلق به ‪ C‬است‪ .‬در نتيجه ‪ C‬مي تواند‪:‬‬
‫‪‬بجاي ‪ B‬به ‪ A‬پيغام بفرستد‪.‬‬
‫‪‬پيام هاي ارسال شده از‪ A‬به سمت ‪ B‬را بخواند‪.‬‬

‫‪3‬‬
‫‪http://elearn.guilan.ac.ir‬‬ ‫مرکز اموزش های الک ترونیکی‬ ‫امنیت داده و شبکه‬
‫مديريت كليد عمومي در‪PGP‬‬
‫ارسال كليد عمومي با امكان احراز اصالت‬ ‫‪‬‬
‫‪ ‬انتقال بصورت فيزيكي‬
‫‪ ‬در شبكه اين روش غيرعملي است‪.‬‬
‫‪ ‬انتقال بصورت الكترونيكي و تاييد توسط تلفن يا…‬
‫‪ ‬چكيده اي از كليد دريافتي از طريق تلفن با مالك بررسي شود‪.‬‬
‫‪ ‬انتقال توسط فرد مطمئني كه كليد عمومي وي در اختيار است‪.‬‬
‫‪ ‬كليد عمومي كاربر‪ B‬توسط كاربر شناخته شده ‪D‬امضاء و به كاربر‪A‬‬
‫ارسال مي شود‪.‬‬
‫‪ ‬انتقال بصورت گواهي تاييد شده توسط مرجع قابل اعتماد‪.‬‬

‫‪4‬‬
‫‪http://elearn.guilan.ac.ir‬‬ ‫مرکز اموزش های الک ترونیکی‬ ‫امنیت داده و شبکه‬
‫مديريت كليد‬
‫‪ PGP‬براي مديريت كليدهاي عمومي بجاي ‪ CA‬از مدلي بنام)‪ (Web of Trust‬استفاده‬ ‫‪‬‬
‫مي كند‪.‬‬
‫فيلدهاي ‪) Trust‬در بايتي تحت عنوان ‪ trust_flag‬نگهداري مي شوند‪).‬‬ ‫‪‬‬
‫‪ ‬فيلد ‪ :key legitimacy‬بيانگر ميزان اعتماد به انتساب كليد عمومي به‬
‫شناسه فرد‪.‬‬
‫‪ ‬فيلد ‪ :signature trust‬هر كليد عمومي ممكن است چند امضا داشته باشد‪.‬‬
‫هر يك از اين امضاها داراي يك درجه اعتماد هستند‪.‬‬
‫‪ ‬فيلد ‪ :owner trust‬بيانگر ميزان اعتماد به صاحب كليد براي تاييد اعتبار‬
‫كليدهاي عمومي ديگر (گواهي) است‪.‬‬

‫‪5‬‬
‫‪http://elearn.guilan.ac.ir‬‬ ‫مرکز اموزش های الک ترونیکی‬ ‫امنیت داده و شبکه‬
‫محاسبه مقادير اعتماد‬
‫‪ ‬با دريافت يك كليد عمومي توسط ‪ ،A‬مقدار ‪owner trust‬‬
‫‪ ‬اگر خود ‪ A‬مالك باشد‪ :‬معادل ‪ultimate trust‬‬
‫‪ ‬وگرنه‪ ،‬درخواست از ‪ A‬براي تعيين ميزان اعتماد‬
‫با درج كليد عمومي جديد به دسته كليد عمومي‪ ،‬مقدار ‪ signature trust‬هر‬ ‫‪‬‬
‫امضاء‬
‫‪ ‬در صورت وجود مالك آن در دسته كليد‪ ،‬معادل ‪ owner trust‬مالك‬
‫‪ ‬در صورت عدم وجود مالك در دسته كليد‪ ،‬مقدار ‪unknown user‬‬
‫مقدار ‪ key legitimacy‬هر سطر كليد عمومي‬ ‫‪‬‬
‫‪ ‬اگر داراي يك امضاء با اعتماد ‪ ultimate‬باشد‪ ،‬معادل ‪complete‬‬
‫‪ ‬وگرنه‪ ،‬جمع وزني اعتماد امضاها‪ :‬ضريب ‪ 1/x‬براي‪ always trusted‬و‬
‫ضريب ‪1/y‬براي ‪usually trusted‬‬
‫‪6‬‬
‫‪http://elearn.guilan.ac.ir‬‬ ‫مرکز اموزش های الک ترونیکی‬ ‫امنیت داده و شبکه‬
‫محتواي بايت ‪trust_flag‬‬

‫‪7‬‬
‫‪http://elearn.guilan.ac.ir‬‬ ‫مرکز اموزش های الک ترونیکی‬ ‫امنیت داده و شبکه‬
‫مثالي از مدل اعتماد در‪PGP‬‬

‫‪8‬‬
‫‪http://elearn.guilan.ac.ir‬‬ ‫مرکز اموزش های الک ترونیکی‬ ‫امنیت داده و شبکه‬
‫مديريت كليد‬
‫چند نكته در مورد شكل قبل‬ ‫‪‬‬
‫‪ ‬كليدهاي كاربراني كه مورد اعتماد يك كاربر مي باشند‪ ،‬لزوما توسط وي‬
‫امضاء نشده اند( مانند ‪) L‬‬
‫‪ ‬اگر چند )‪ (x‬كاربر كه جزئاً قابل اعتماد هستند كليدي را امضاء كنند‪ ،‬كليد‬
‫مربوطه مورد تاييد قرار مي گيرد)‪ H‬با امضاي ‪ A‬و‪.(B‬‬
‫‪ ‬كليدي كه تاييد شده است‪ ،‬لزوماً نمي تواند براي تاييد امضاي كليد ديگري‬
‫بكار رود( مانند ‪) N‬‬
‫‪ ‬كليد كاربري كه بطور غيرمستقيم امضاء شده است‪ ،‬ممكن است به صورت‬
‫مستقيم نيز امضاء شود( مانند كليد ‪ E‬كه توسط ‪ F‬و ‪You‬به صورت‬
‫غيرمستقيم و مستقيم امضا شده است) ‪.‬‬

‫‪9‬‬
‫‪http://elearn.guilan.ac.ir‬‬ ‫مرکز اموزش های الک ترونیکی‬ ‫امنیت داده و شبکه‬
‫ابطال كليد عمومي در‪PGP‬‬
‫داليل ابطال كليد عمومي‬ ‫‪‬‬
‫‪ ‬افشاي كليد خصوصي‬
‫‪ ‬انقضاي زمان استفاده از ان از ديد مالك‬
‫نحوه ابطال‬ ‫‪‬‬
‫‪ ‬توليد گواهي ابطال با امضاي مالك (با همان كليد خصوصي)‬
‫‪ ‬انتشار گواهي ابطال توسط مالك در اولين فرصت به ديگر كابران‬
‫‪ ‬امكان سوء استفاده از اين روش توسط مهاجم براي منع استفاده مالك از كليد‪ ،‬وليكن اين‬
‫تهديد جدي نيست‪ ،‬چرا كه دسترسي خود مهاجم نيز منع مي شود‪.‬‬

‫‪10‬‬
‫‪http://elearn.guilan.ac.ir‬‬ ‫مرکز اموزش های الک ترونیکی‬ ‫امنیت داده و شبکه‬
‫فهرستمطالب‬
‫‪ ‬امنیت پست الکترونیکی‬
‫‪ ‬پروتکل‪PGP‬‬
‫‪‬ويژگی هاي ‪PGP‬‬
‫‪‬سرويس هاي‪PGP‬‬
‫‪‬انواع کلیدهاي مورد استفاده‬
‫‪‬مديريت کلید‬
‫‪‬پروتکل ‪S/MIME‬‬

‫‪11‬‬
‫‪http://elearn.guilan.ac.ir‬‬ ‫مرکز اموزش های الک ترونیکی‬ ‫امنیت داده و شبکه‬
‫پروتکل ‪S/MIME‬‬
‫‪ S/MIME ‬نسخه امن سازي شده پروتكل تبادل ايميل ‪ MIME‬است‪.‬‬

‫‪ ‬براي بررسي ‪ ،S/MIME‬ابتدا بايد پروتكل هاي ‪ RFC 822‬و‬


‫‪ MIME‬را بررسي نمود‪.‬‬

‫مبتني بر تكنولوژي ارائه شده توسط ‪.RSA Data Security‬‬ ‫‪‬‬

‫‪12‬‬
‫‪http://elearn.guilan.ac.ir‬‬ ‫مرکز اموزش های الک ترونیکی‬ ‫امنیت داده و شبکه‬
‫قالب پیام ‪RFC 822‬‬
‫‪ RFC 822 ‬قالب پيام هاي متني قابل ارسال از طريق ايميل را تعريف‬
‫مي نمايد‪.‬‬
‫‪ ‬هر پيام شامل دو بخش است‪:‬‬
‫‪ :Envelop ‬شامل اطالعات الزم براي ارسال و دريافت ايميل است‪.‬‬
‫‪ :Content ‬شامل هر آنچه كه بايد ارسال شود‪ ،‬است‪.‬‬
‫‪ Content ‬خود شامل دو بخش اصلي است‪:‬‬
‫‪ :Header ‬شامل تعدادي واژه كليدي به همراه عالمت (‪ ):‬و مقدار مرتبط با‬
‫واژه كليدي‪.‬‬
‫‪ :Body ‬حاوي متن پيام كه با يك خط خالي از‪ Header‬جدا شده است‪.‬‬

‫‪13‬‬
‫‪http://elearn.guilan.ac.ir‬‬ ‫مرکز اموزش های الک ترونیکی‬ ‫امنیت داده و شبکه‬
‫قالب پیام ‪RFC 822‬‬

‫‪14‬‬
‫‪http://elearn.guilan.ac.ir‬‬ ‫مرکز اموزش های الک ترونیکی‬ ‫امنیت داده و شبکه‬
‫پروتکل ‪MIME‬‬
‫‪Multipurpose Internet Mail Extensions = MIME ‬‬
‫‪ ‬براي رفع محدوديت ها و مشكالت ‪ SMTP‬و قالب ‪ RFC 822‬ارائه‬
‫شده است‪.‬‬
‫‪ ‬مهم ترين محدوديت ها و مشكالت‪:‬‬
‫‪ ‬عدم امكان ارسال داده هاي باينري (نياز به تبديل به داده هاي متني)‬
‫‪ ‬عدم امكان ارسال داده هاي اسكي با كد ‪ 128‬و يا باالتر (پشتيباني از‬
‫‪ ASCII‐7‬كه ‪ 7‬بيتي است)‬
‫‪ ‬محدوديت اندازه ايميل ارسالي‬
‫‪ ‬ناسازگاري برخي از پياده سازي هاي ‪ SMTP‬با استاندارد ‪RFC 821‬‬

‫‪15‬‬
‫‪http://elearn.guilan.ac.ir‬‬ ‫مرکز اموزش های الک ترونیکی‬ ‫امنیت داده و شبکه‬
‫پروتکل ‪MIME‬‬
‫پنج فيلد جديد به سرآيند قالب ‪ RFC 822‬اضافه شده است‪.‬‬ ‫‪‬‬

‫چند قالب براي ارسال ايميل هاي چندرسانه اي تدارك ديده شده است‪.‬‬ ‫‪‬‬

‫‪16‬‬
‫‪http://elearn.guilan.ac.ir‬‬ ‫مرکز اموزش های الک ترونیکی‬ ‫امنیت داده و شبکه‬
‫سرايند ‪MIME‬‬
‫‪ :MIME Version ‬در حال حاضر بايد ‪ 1.0‬باشد‪.‬‬
‫‪ :Content‐Type ‬توصيف نوع داده ارسالي و مكانيزم و يا عامل‬
‫موردنياز براي باز كردن آن )مثال‪.(video/quicktim:‬‬
‫‪ :Content‐Transfer‐Encoding ‬نوع كدگذاري داده ارسالي (مثال‪binary :‬‬
‫)‪.‬‬
‫‪:Content‐ID ‬براي شناسايي موجوديت هاي ‪ MIME‬در زمينه هاي‬
‫مختلف‪.‬‬
‫‪ :Content‐Description ‬توصيفي از داده ارسالي (براي داده هاي‬
‫صوتي كه قابل مشاهده نيستند‪ ،‬مناسب است)‪.‬‬
‫‪17‬‬
‫‪http://elearn.guilan.ac.ir‬‬ ‫مرکز اموزش های الک ترونیکی‬ ‫امنیت داده و شبکه‬
‫‪ Content-Type‬در ‪MIME‬‬

‫‪18‬‬
‫‪http://elearn.guilan.ac.ir‬‬ ‫مرکز اموزش های الک ترونیکی‬ ‫امنیت داده و شبکه‬
‫قالب پیام ‪MIME‬‬

‫‪19‬‬
‫‪http://elearn.guilan.ac.ir‬‬ ‫مرکز اموزش های الک ترونیکی‬ ‫امنیت داده و شبکه‬
‫کدگذاري در ‪MIME‬‬

‫‪20‬‬
‫‪http://elearn.guilan.ac.ir‬‬ ‫مرکز اموزش های الک ترونیکی‬ ‫امنیت داده و شبکه‬
‫قالب كانوني‬
‫‪ ‬يكي از مفاهيم اساسي در ‪ MIME‬و‪ S/MIME‬قالب كانوني داده ها‬
‫است‪.‬‬
‫‪ ‬قالب كانوني‪ ،‬قالبي مناسب نوع داده)‪ (Content‐Type‬است‪ ،‬كه براي‬
‫استفاده بين سيستم هاي مختلف استاندارد شده است‪.‬‬

‫ممكن است شامل تبديل مجموعه كاراكترها‪ ،EOL ،‬تبديل داده هاي‬ ‫‪‬‬
‫صوتي‪ ،‬فشرده سازي و ‪ ...‬باشد‪.‬‬

‫‪21‬‬
‫‪http://elearn.guilan.ac.ir‬‬ ‫مرکز اموزش های الک ترونیکی‬ ‫امنیت داده و شبکه‬
‫قابلیت هاي ‪S/MIME‬‬
‫‪ S/MIME ‬قابليت هايي مشابه قابليت هاي ‪ PGP‬را فراهم مي آورد‪.‬‬
‫‪ ‬چهار قابليت ارائه شده توسط ‪:S/MIME‬‬
‫‪ :Enveloped data ‬متن رمز شده همراه با كليد‬
‫‪:Signed data ‬داده همراه با امضاء كه با ‪ base 64‬كدگذاري شده اند‪.‬‬
‫‪ :Clear‐Signed data ‬داده همراه با امضاء كه در آن صرفاً امضاء‬
‫كدگذاري شده است‪.‬‬
‫‪ :Signed & Enveloped data ‬تركيبي از داده رمز شده و امضاء است‪.‬‬

‫‪22‬‬
‫‪http://elearn.guilan.ac.ir‬‬ ‫مرکز اموزش های الک ترونیکی‬ ‫امنیت داده و شبکه‬
‫الگوريتم هاي ‪S/MIME‬‬
‫‪ :DSS ‬الگوريتم امضاء توصيه شده‬
‫‪ :DH (EI-Gamal) ‬توصيه شده براي رمز كليد جلسه‬
‫‪ :RSA ‬براي امضاء و يا رمزنگاري‬
‫‪ : 3 DES/RC2 (40 bits) ‬براي رمزگذاري پيام‬
‫‪ :SHA‐1/MD5 ‬براي توليد چكيده پيام‬

‫در ‪ S/MIME‬تعدادي قاعده براي انتخاب الگوريتم درنظر گرفته شده است (قواعد‬ ‫‪‬‬
‫الزام‪ MUST -‬و قواعد اختيار‪.) SHOULD -‬‬

‫‪23‬‬
‫‪http://elearn.guilan.ac.ir‬‬ ‫مرکز اموزش های الک ترونیکی‬ ‫امنیت داده و شبکه‬
‫‪ Content-Type‬در ‪S/MIME‬‬

‫‪24‬‬
‫‪http://elearn.guilan.ac.ir‬‬ ‫مرکز اموزش های الک ترونیکی‬ ‫امنیت داده و شبکه‬
‫‪Enveloped Data‬‬
‫مراحل ايجاد يك موجوديت ‪ MIME‬از نوع ‪:Enveloped Data‬‬ ‫‪‬‬
‫‪ ‬توليد يك عدد شبه تصادفي به عنوان كليد جلسه (رمز‪ 3DES‬يا ‪(RC2/4‬‬
‫‪ ‬رمز كليد جلسه با كليد عمومي هر يك از گيرندگان ايميل‬
‫‪ ‬براي هر گيرنده ايجاد يك بلوك ‪ RecipientInfo‬حاوي‬
‫شناسه گواهي كليد عمومي گيرنده‬ ‫‪‬‬
‫شناسه الگوريتم رمز به كار رفته براي رمز كليد جلسه‬ ‫‪‬‬
‫كليد جلسه رمز شده‬ ‫‪‬‬

‫‪ ‬رمز محتواي پيام با كليد جلسه‬


‫بلوكهاي ‪ RecipientInfo‬به همراه محتواي رمز شده‪ ،‬پيام ‪ envelopedData‬را‬ ‫‪‬‬
‫حاصل مي نمايد‪ ،‬كه با ‪ base64‬كد شده است‪.‬‬

‫‪25‬‬
‫‪http://elearn.guilan.ac.ir‬‬ ‫مرکز اموزش های الک ترونیکی‬ ‫امنیت داده و شبکه‬
‫‪Signed Data‬‬
‫مراحل ايجاد يك موجوديت ‪ MIME‬از نوع ‪:Signed Data‬‬ ‫‪‬‬
‫‪ ‬انتخاب الگوريتم درهم ساز (‪ SHA‐1‬يا ‪ )MD5‬و محاسبه چكيده پيام‬
‫‪ ‬رمز چكيده با كليد خصوصي فرستنده‬
‫‪ ‬ايجاد يك بلوك ‪ SignerInfo‬حاوي‬
‫گواهي كليد عمومي فرستنده‬ ‫‪‬‬
‫شناسه الگوريتم درهم ساز توليد چكيده و شناسه الگوريتم رمز توليد امضاء‬ ‫‪‬‬
‫چكيده رمز شده‬ ‫‪‬‬

‫بلوك ‪ SignerInfo‬به همراه پيام امضاء شده (گاهي همراه با زنجيره گواهي هاي تا‬ ‫‪‬‬
‫ريشه) ‪ ،‬يك موجوديت ‪ signedData‬را حاصل مي نمايند‪ ،‬كه با ‪ base64‬كد شده‬
‫است‪.‬‬

‫‪26‬‬
‫‪http://elearn.guilan.ac.ir‬‬ ‫مرکز اموزش های الک ترونیکی‬ ‫امنیت داده و شبکه‬
‫‪Clear Signing‬‬
‫پيام قابل مشاهده توسط كارگزارهاي ‪( MIME‬كه از ‪S/MIME‬‬ ‫‪‬‬
‫پشتيباني نمي كنند)‪.‬‬

‫استفاده از پيام از نوع ‪ multipart/signed‬حاوي دو قطعه‪:‬‬ ‫‪‬‬


‫‪ ‬قطعه اول‪ :‬پيام آشكار كه بايد در طي ارسال بدون تغيير بماند‪ ،‬لذا در صورت نياز‬
‫بايد (قبل از امضاء) تبديل الزم بر روي آن صورت گيرد‪.‬‬
‫‪ ‬قطعه دوم‪ :‬امضاي پيام از نوع ‪ application/pkcs7‐signature‬كد شده با‬
‫‪.base64‬‬

‫‪27‬‬
‫‪http://elearn.guilan.ac.ir‬‬ ‫مرکز اموزش های الک ترونیکی‬ ‫امنیت داده و شبکه‬
‫درخواست ثبت گواهي كليد عمومي‬
‫‪ ‬درخواست ثبت گواهي كليد عمومي مي تواند با استفاده از موجوديت‬
‫‪ application/pkcs10‬ارسال شود‪.‬‬ ‫‪ MIME‬با نوع‬
‫‪ ‬درخواست گواهي شامل موارد زير است‪:‬‬
‫‪ ‬بلوك ‪ CertificateRequestInfo‬كه خود حاوي‬
‫‪ ‬نام عامل متقاضي گواهي‬
‫‪ ‬رشته كليد عمومي متقاضي‬
‫‪ ‬شناسه الگوريتم رمزگذاري كليد عمومي‬
‫‪ ‬امضاي بلوك ‪ CertificateRequestInfo‬با استفاده از كليد خصوصي‬
‫فرستنده‪.‬‬

‫‪28‬‬
‫‪http://elearn.guilan.ac.ir‬‬ ‫مرکز اموزش های الک ترونیکی‬ ‫امنیت داده و شبکه‬
‫پيام گواهي‬
‫‪Certificate‐Only Message ‬‬
‫‪ ‬يك پيام حاوي صرفاً گواهي ها و يا ليست گواهي هاي باطل شده به‬
‫عنوان پاسخ درخواست گواهي‪.‬‬
‫‪ ‬اين پيام از نوع ‪ application/pkcs7‐mime‬با پارامتر‬
‫‪ degenerate‬است‪.‬‬
‫‪ ‬مراحل ايجاد اين پيام مشابه ايجاد‪ signedData‬است‪ ،‬با اين تفاوت كه‬
‫محتواي پيام خالي است و فيلد ‪ signerInfo‬خالي است‪.‬‬

‫‪29‬‬
‫‪http://elearn.guilan.ac.ir‬‬ ‫مرکز اموزش های الک ترونیکی‬ ‫امنیت داده و شبکه‬
‫گواهی هاي کلید عمومی در‪S/MIME‬‬
‫‪ S/MIME ‬از گواهي كليد عمومي ‪ X.509 V3‬پشتيباني مي كند‪.‬‬
‫‪ ‬بهره گيري از روشي مركب از روش ‪ PGP‬و روش ‪ PKI‬براي مديريت‬
‫كليد‬

‫مديريت كليدها و گواهي هاي كليد عمومي به صورت محلي صورت مي‬ ‫‪‬‬
‫پذيرد وليكن هر گواهي امضاي يك مركز ‪ CA‬را دارد‪.‬‬

‫‪30‬‬
‫‪http://elearn.guilan.ac.ir‬‬ ‫مرکز اموزش های الک ترونیکی‬ ‫امنیت داده و شبکه‬
‫مديريت کلید در‪S/MIME‬‬
‫توليد كليد‪:‬‬ ‫‪‬‬
‫كاربر بايد با روشي مناسب كليدهاي تصافي مودنياز را توليد كرده‪ ،‬كليدهاي‬ ‫‪‬‬
‫خصوصي را به صورت امن نگهداري نمايد‪.‬‬
‫ثبت گواهي كليد عمومي‪:‬‬ ‫‪‬‬
‫كاربر بايد كليد عمومي خود را در يك مركز ‪ CA‬ثبت نموده‪ ،‬گواهي ‪X.509‬‬ ‫‪‬‬
‫كليد عمومي مورد نظر را دريافت نمايد‪.‬‬
‫ذخيره و بازيابي گواهي هاي كليد عمومي‪:‬‬ ‫‪‬‬
‫كاربر بايد به گواهي ها و ليست گواهي هاي باطل شده به صورت محلي‬ ‫‪‬‬
‫دسترسي داشته باشد‪.‬‬
‫مدير مي تواند براي تعدادي از كاربران يك ليست محلي نگهداري نمايد‪.‬‬ ‫‪‬‬
‫‪31‬‬
‫‪http://elearn.guilan.ac.ir‬‬ ‫مرکز اموزش های الک ترونیکی‬ ‫امنیت داده و شبکه‬

You might also like