0

آموزش های تخصصی شبکه و امنیت و ضد امنیت

 
amindadaadad
amindadaadad
کاربر طلایی3
تاریخ عضویت : دی 1389 
تعداد پست ها : 3567
محل سکونت : سیستان و بلوچستان

پاسخ به:آموزش های تخصصی شبکه و امنیت و ضد امنیت
شنبه 28 مرداد 1391  1:21 AM

ايجاد يک ارتباط ايمن در برنامه های وب ( بخش دوم ) 
در بخش اول اين مقاله به ضرورت های وجود يک ارتباط ايمن بين سرويس گيرنده و سرويس دهنده اشاره و به بررسی برخی از ملزومات مورد نياز پرداخته گرديد. در بخش دوم اين مقاله به بررسی امضای ديجيتال و گواهينامه های ديجيتالی ، خواهيم پرداخت .برای ايجاد امنيت به چهار مولفه نياز می باشد : رمزنگاری ، الگوريتم های Hash ، امضای ديجيتال و گواهينامه های ديجيتال 
رمزنگاری ، فرآيندی است که هدف اصلی آن تبديل اطلاعات بگونه ای است که برای تمامی افراد بجزء افراد تائيد شده ، اطلاعات نامفهوم و عملا" غيرقابل استفاده باشد . در فرآيند فوق ، از فرمول های رياضی (الگوريتم های رمزنگاری ) و اعداد ( کليد ) ، به منظور رمزنگاری و رمزگشائی اطلاعات استفاده می شود . الگوريتم های رمزنگاری به دو گروه عمده تقسيم می گردند : 


  • <LI dir=rtl>الگوريتم های محدود : در اين نوع الگوريتم ها ، محور امنيت اطلاعات بر محرمانه نگه داشتن الگوريتم استفاده شده در فرآيند رمزنگاری استوار است .
  • الگوريتم های مبتنی بر کليد : در اين نوع الگوريتم ها ، کليد محرمانه تلقی شده و الگوريتم می تواند در دسترس عموم باشد . در اين رابطه از دو مدل رمزنگاری عمده استفاده می گردد : 
    کليد خصوصی ( متقارن ) : فرستنده و گيرنده از يک کليد يکسان به منظور رمزنگاری و رمزگشائی استفاده می نمايند . 
    کليد عمومی ( نامتقارن ) : به ازای هر کاربر از دو کليد استفاده می شود. يکی از کليدها عمومی بوده و در دسترس همگان قرار داشته و کليد دوم بصورت محرمانه می باشد.

ويژگی مدل رمزنگاری کليد خصوصی 


  • <LI dir=rtl>رمزنگاری و رمزگشائی داده با استفاده از کليد يکسانی انجام می شود . <LI dir=rtl>تمامی کاربرانی که در يک گروه عضويت داشته و قصد اشتراک داده را بين خود دارند ، می بايست دارای کليد يکسانی باشند . <LI dir=rtl>در صورتيکه يک کليد د چار مشکل گردد ( لورفتن ) ، تمامی کليد ها می بايست تعويض و با کليدی جديد جايگزين گردند .
  • مهمترين مسئله در ارتباط با اين مدل رمزنگاری ، عدم وجود امنيت لازم به منظور توزيع کليد است .

ويژگی مدل رمزنگاری کليد عمومی 


  • <LI dir=rtl>عدم استفاده از کليدهای مشابه <LI dir=rtl>هر کاربر دارای يک زوج کليد ( عمومی ، خصوصی ) می باشد . از کليد عمومی به منظور رمزنگاری داده و از کليد خصوصی به منظور رمزگشائی داده استفاده می گردد. <LI dir=rtl>اين مدل رمزنگاری تقريبا" 500 مرتبه کندتر از رمزنگاری کليد خصوصی ( متقارن ) است . <LI dir=rtl>از مدل رمزنگاری عمومی به منظور مبادله کليد خصوصی و امضای ديجيتال استفاده می شود .
  • شکل زير ، فرآيند رمزنگاری مبتنی بر کليد عمومی بين دو کاربر را نشان می دهد :

Hash 
يک Hash که به آن Checksum ، پيام Digest و يا اثرانگشت ، نيز گفته می شود ، فرآيندی است که بصورت رياضی حجم يک جريان از داده را به يک طول ثابت کاهش می دهد ( معمولا" 128 و يا 160 بيت ) . عملکرد hash ، مشابه اثرانگشت يک شخص می باشد. اثرانگشت ، پارامتری منحصربفرد به منظور تشخيص هويت افراد بوده و در ادامه با استفاده از آن امکان دستيابی به ساير مشخصات افراد نظير : رنگ چشم ، قد ، جنسيت و ساير موارد دلخواه ، فراهم می گردد . اکثر توابع Hash از لحاظ رمزنگاری دارای عملکردی مشابه توابع رمزنگاری می باشند . در حقيقت ، برخی توابع hash صرفا" تغييرات اندکی را در توابع رمزنگاری ايجاد نموده اند . اکثر عمليات با دريافت يک بلاک از داده شروع و در ادامه با استفاده از يک فرآيند تکرارشونده و بکارگيری يک الگوريتم رمزنگاری ، تغييرات لازم در ارتباط با بيت ها ، اعمال می شود. hash ، دارای ويژگی های مهم زير می باشد :


  • <LI dir=rtl>امکان استنتاج ورودی از طريق خروجی وجود ندارد .
  • نمی توان دو ورودی را پيدا کرد که به ازای آنان خروجی يکسانی توليد گردد : احتمال توليد مقادير Hash يکسان برای دو مجموعه متفاوت از داده ها کمتر از 001 . / درصد است .

الگوريتم های hashing ، از يک تابع ايمن رمزنگاری نظير Message Digest 5)MD5) و يا Secure Hash Algoritm)SHA) به منظور توليد يک مقدار Hash مرتبط با داده ورودی استفاده می نمايند . Hash ، يک نوع خاص از رمزنگاری يک طرفه است . برخی افراد ، hashing را به عنوان يک مدل رمزنگاری تلقی می نمايند . Hashing عملا" يک مدل رمزنگاری نمی باشد چراکه Hash نمی تواند رمزگشائی گردد ( بدست آوردن مقدار ورودی با اسنتاد و آناليز مقدار خروجی ) . شکل زير ، نحوه عملکرد الگوريتم SHA-1 ( نسخه شماره يک ، پياده سازی شده در سال 1994 ) را نشان می دهد : 


امضای ديجيتال 
امضای ديجيتال ، ماحصل رمزنگاری مقدار Hash داده مبادله شده بوده و روشی ايمن به منظور امضای الکترونيکی اطلاعات با استفاده از کدها ويا علائمی است که از لحاظ الکترونيکی معادل يک امضای دستی می باشند. امضای ديجيتالی، مبتنی بر ترکيب ايده سنتی Hashing داده و رمزنگاری کليد عمومی است .يک مرکز معتبر صدور گواهينامه های ديجيتال ، گواهينامه های ديجيتالی صادرشده را به کليدهای عمومی مربوط به هر يک نسبت می دهد . فرآيند امضاء ، مخالف فرآيند رمزنگاری است : از کليد خصوصی به منظور رمزنگاری Hash و از کليد عمومی برای بررسی صحت امضاء ( رمزگشائی ) استفاده می شود . 

فرآيند امضای داده توسط فرستنده پيام : 


  • <LI dir=rtl>دريافت پيام اوليه و محاسبه يک مقدار Hash با استفاده از يک الگوريتم hashing <LI dir=rtl>رمزنگاری Hash توسط يک تابع رمزنگاری و اعمال کليد خصوصی توسط فرستنده پيام ( پيام اوليه به همراه مقدار Hash رمز شده ، يک پيام ديجيتالی امضاء شده را تشکيل می دهند ) .
  • ارسال پيام ديجيتالی امضاء شده برای گيرنده

فرآيند بررسی صحت امضاء ارسالی همراه داده : 


  • <LI dir=rtl>پس از دريافت پيام توسط گيرنده ، در ابتدا ، Hash رمز شده با استفاده از کليد عمومی فرستنده رمزگشائی می گردد ( Hash رمزگشائی شده ) .
  • محاسبه محلی مقدار Hash پيام ارسالی با استفاده از يک الگوريتم Hashing
  • مقايسه نتايج بدست آمده در مراحل قبل : Hash رمزگشائی شده با مقدارمحلی Hash مقايسه و در صورتيکه نتيجه يکسان باشد ، صحت و اعتبار پيام ارسال شده توسط فرستنده تائيد می گردد .

لازم است به اين موضوع دقت شود که ضرورتی به رمزنگاری محتوی پيام وجود نداشته و صرفا" امضای ديجيتالی رمز می گردد( مگر اينکه شرايط خاصی در ارتباط با محرمانگی محتوی وجود داشته باشد که در چنين مواردی می بايست محتوی نيز رمزنگاری گردد ) . در صورتيکه به هر دليلی محتوی پيام توسط افراد غيرمجاز تغيير داده شود ، Hash رمز شده اوليه با مقداری که بصورت محلی مجددا" محاسبه می گردد ، مطابقت نداشته و صحت امضای فرستنده تائيد نمی گردد . همچنين ، ايجاد يک امضای تقلبی عملا" غيرممکن است ، چراکه افراد غير مجاز آگاهی لازم در ارتباط با کليد خصوصی را دارا نمی باشند ( رمزنگاری مقدار محاسبه شده Hash با در نظر گرفتن کليد خصوصی فرستنده انجام خواهد شد ) . 
گواهينامه ديجيتال 
قبل از اينکه کاربر B پيامی شامل امضای ديجيتال مربوط به کاربر A را قبول نمايد ( پذيرش ) ، می بايست اطمينان لازم در خصوص تعلق کليد عمومی به کاربر A را کسب نموده و مطمئن گردد که شخص ديگری خود را به عنوان کاربر A ، وانموده نکرده باشد. يکی از روش های موجود به منظور حصول اطمينان از ارسال پيام توسط کاربر A ، استفاده از يک مرکز معتبر به منظور تائيد تعلق کليد عمومی به کاربر A ، می باشد. چنين مراکزی CA) Certification Authority) ناميده می شوند. پس از تائيد هويت کاربر A ، مرکز صدور گواهينامه های ديجيتال ، پيامی شامل نام و کليد عمومی A صادر می نمايد . اين پيام ، گواهينامه ديجيتال ناميده می شود. گواهينامه ديجيتال ، يک فايل الکترونيکی است که بصورت منحصربفرد افراد و يا وب سايت ها را بر روی اينترنت شناسائی و امکان ارتباطات ايمن و محرمانه را فراهم می نمايد.عملکرد گواهينامه ديجيتال ، مشابه کارت شناسائی و يا گواهينامه رانندگی است . کارت های شناسائی با توجه به مجوزهای يک سازمان مسئول ، صادر می گردند . زمانيکه يک فرد درخواست يک کارت ملی را می نمايد ، يک موسسه مسئول ، بررسی لازم در ارتباط با هويت فرد متقاضی را انجام و پس از طی مراحل قانونی ( و ملزم نمودن متقاضی به تبعيت از قوانين موجود ) ، کارت شناسائی وی صادرمی گردد . زمانيکه يک کارت شناسائی نظير يک گواهينامه رانندگی صادر و به ديگران ارائه می گردد ، آنان قادر به شناسائی مالک آن می باشند. اين نوع کارت ها دارای مزايای امنيتی زير می باشند :


  • <LI dir=rtl>شامل اطلاعات شخصی به منظور تسهيل در شناسائی و رديابی صاحب کارت <LI dir=rtl>شامل عکس و در صورت لزوم امضای مالک آن بوده تا امکان شناسائی موثرتر صاحب آن فراهم گردد . <LI dir=rtl>شامل اطلاعات لازم و مورد نياز در ارتباط با شناسائی و تماس با مرکز صادرکننده مجوز <LI dir=rtl>مقاوم در مقابل دستکاری و جعل
  • صادر شده توسط يک مرکز مجاز تا در صورت بروز شرايطی خاص نظير گم شدن و يا سرقت ، امکان باطل نمودن آن وجود داشته باشد.

گواهينامه های ديجيتال توسط مراکز مجاز و معتبر ( CA) صادر و از آنان به منظور حصول اطمينان از شناسائی online موجوديت های متفاوت نظير افراد ، سايت ها و يا کامپيوترها ، استفاده می گردد . يک گواهينامه ديجيتال شامل اطلاعات متفاوتی در ارتباط با تشخيص هويت مالک آن بوده تا بتواند وی را به عنوان يک موجوديت بر روی شبکه ، شناسائی نمايد . گواهينامه ديجيتال يک ساختمان داده تعريف شده بر اساس استاندارد X.509 می باشد . در اين ساختمان داده اطلاعات متنوعی ذخيره می گردد. يک CA ، از کليد خصوصی خود به منظور شناسائی و تائيد گواهينامه های صادر شده توسط خود ، استفاده می نمايد . يکی از اطلاعات مهمی که در ساختمان داده فوق ، قرار می گيرد ، امضای ديجيتال مربوط به CA می باشد . CA ، يک مقدار Hash را در ارتباط با گواهينامه صادر شده ، ايجاد و آن را با استفاده از کليد خصوصی خود رمز و در نهايت آن را در گواهينامه صادر شده قرار می دهد . هر يک از کاربران می توانند به منظور اطمينان از معتبر بودن گواهينامه ديجيتالی صادر شده ، از تابع hash به همراه کليد عمومی CA استفاده نمايند. PKI ( زيرساخت کليد عمومی ) ، از فرمت X.509 نسخه شماره سه گواهينامه ديجيتال استفاده می نمايد . شکل زير ساختار اطلاعات موجود در گواهنيامه ديجيتال را با استفاده از فرمت X.509 نشان می دهد . 



  • <LI dir=rtl>شماره نسخه : شماره نسخه فرمت گواهينامه را نشان می دهد ( مثلا" نسخه شمار ه سه ) <LI dir=rtl>شماره سريال گواهنيامه : يک شماره سريال منحصربفرد که توسط CA ، در نظر گرفته شده تا در ادامه امکان رديابی آن و باطل نمودن آن وجود داشته باشد. <LI dir=rtl>شناسه الگوريتم گواهينامه : الگوريتم های رمزنگاری کليد عمومی و hashing که مراکز CA از آنان به منظور تائيد ديجيتالی گواهينامه ها استفاده می نمايند . <LI dir=rtl>مرکز صادر کننده : نام مرکز صادرکننده CA را مشخص می نمايد. <LI dir=rtl>مدت اعتبار : تاريخ شروع و سررسيد گواهينامه را مشخص می نمايد . <LI dir=rtl>Subject : نام مالک گواهينامه را مشخص می نمايد. <LI dir=rtl>اطلاعات کليد عمومی subject : کليد عمومی و ليستی از الگوريتم های رمزنگاری کليد عمومی را مشخص می نمايد . <LI dir=rtl>شناسه منحصربفرد صادرکننده : اطلاعات اختياری که در صورت ضرورت بصورت منحصربفرد اطلاعات صادرکننده را مشخص می نمايد . <LI dir=rtl>شناسه منحصربفرد مالک گواهينامه: اطلاعات اختياری که در صورت ضرورت بصورت منحصربفرد اطلاعات صاحب گواهينامه را مشخص می نمايد . <LI dir=rtl>ضمائم : اطلاعات اضافه ای که زير ساخت PKI درصورت ضرورت استفاده می نمايد.
  • امضای ديجيتال مجاز گواهينامه : امضای ديجيتالی CA که در آخرين مرحله ايجاد گواهينامه ، توليد می گردد .

استفاده از گواهينامه های ديجيتال ، اعتبار يک کليد عمومی و انتساب آن به يک فرد معتبر را امکان پذير می نمايد. بدين ترتيب وضعيت مديريت کليد بهبود يافته و گيرندگان گواهينامه های ديجيتال قادر به تائيد CA ، با توجه به آگاهی از کليد عمومی آن می باشند. گيرندگان گواهينامه های ديجيتال ، در مقابل اينکه از کليدهای عمومی متعلق به تمامی کاربران آگاهی داشته باشند ، با آگاهی از صرفا" يک کليد عمومی (مربوط به CA ) ، قادر به تائيد هويت ارسال کنندگان اطلاعات ،خواهند بود. 

مراکز CA ، دارای ويژگی های زير می باشند : 


  • <LI dir=rtl>در صورت تائيد CA صادرکننده گواهينامه توسط کاربر ، امکان تائيد گواهينامه نيز وجود خواهد داشت . <LI dir=rtl>مسئوليت تائيد و معتبرسازی تمامی مشترکين <LI dir=rtl>مسئوليت صدور و مديريت گواهينامه ها ( درخواست های ارسالی توسط نامه الکترونيکی و يا اينترفيس های وب ) . <LI dir=rtl>مسئوليت ابطال و يا تمديد گواهينامه های صادر شده <LI dir=rtl>مسئوليت ايجاد سياست ها و رويه ها
  • چندين CA می تواند در يک ساختار سلسله مراتبی وجود داشته باشد. در صورتيکه CA ريشه معتبر شناخته گردد، هر يک از مراکز CA در سطوح پائين تر نيز معتبر شناخته خواهند ش.د

مشاهده گواهينامه های ديجيتال 
برای مشاهده آخرين وضعيت گواهينامه های ديجيتال بر روی سيستم خود ، برنامه IE را فعال نموده و از طريق منوی Tools گزينه Internet Options را فعال و درادامه با انتخاب Content Tab و فعال نمودن Certificate می توان از وضعيت گواهينامه های ديجيتال ، آگاهی يافت .
در بخش سوم اين مقاله به بررسی پروتکل SSL ، خواهيم پرداخت 

** دارالولایه **

درباره امضاء

تشکرات از این پست
دسترسی سریع به انجمن ها