وبسمتر هاست | ارائه دهنده خدمات میزبانی هاست ، دامنه و سرور
با عضویت در کانال تلگرام انجمن قاطی میتونید از آخرین اخبار انجمن و کلی مطالب داغ و جالب لذت ببرید! و هر هفته برنده جوایز ارزنده بشید! Id Channle:   @ghati_ir

نمایش نتایج: از 1 به 6 از 6

موضوع: رعایت برخی مسائل برای جلوگیری از درز اطلاعات شخصی

  1. Top | #1
    کاربر تازه وارد

    عنوان کاربر
    کاربر تازه وارد
    تاریخ عضویت
    23.06.2016
    شماره عضویت
    3429
    نوشته ها
    9
    تـــشـــکـــر
    1
    مورد پسند : 1 بار در 1 پست

    رعایت برخی مسائل برای جلوگیری از درز اطلاعات شخصی

    اينترنت و به دنبال آن وب ، دنيای نرم افزار را دستخوش تحولات فراوانی نموده است . ظهور نسل جديدی از برنامه های كامپيوتری موسوم به "برنامه های وب " از جمله اين تحولات عظيم است . پس از ارائه سرويس وب در سال 1991، وب سايت های متعددی ايجاد گرديد . اينگونه سايت ها به منظور ارائه اطلاعات به مخاطبان خود از صفحات وب ايستا استفاده می كردند . در چنين وب سايت هائی ، امكان تعامل كاربر با برنامه وجود نداشت .
    با توجه به اين كه رويكرد فوق با ماهيت و يا روح نرم افزار چندان سازگار نمی باشد ، تلاش های گسترده ای در جهت ايجاد محتويات پويا انجام و متعاقب آن ، فن آوری های متعددی ايجاد گرديد . به عنوان نمونه ، با پياده سازی فن آوری CGI ( برگرفته از Common Gateway Interface ) ، امكان استفاده از برنامه های خارجی به منظور توليد محتويات پويا فراهم گرديد . بدين ترتيب ، كاربران قادر به درج اطلاعات و ارسال آنها برای يك برنامه خارجی و يا اسكريپت سمت سرويس دهنده شدند . برنامه موجود در سمت سرويس دهنده پس از دريافت اطلاعات و انجام پردازش های تعريف شده ، نتايج را توليد و آنها را برای كاربر ارسال می نمود .
    رويكرد فوق ، به عنوان نقطه عطفی در برنامه های وب تلقی می گردد چراكه برای اولين مرتبه امكان توليد محتويات پويا در وب سايت ها فراهم گرديد . از آن زمان تاكنون فن آوری های متعددی به منظور توليد برنامه های وب ايجاد شده است . PHP و ASP.NET نمونه هائی در اين زمينه می باشند . صرفنظر از اين كه از كدام فن آوری به منظور ايجاد برنامه های وب استفاده می گردد ، ايمن سازی آنان از جمله اهداف مشترك تمامی پياده كنندگان است .

    امنيت برنامه های وب و برداشت های اوليه
    زمانی كه در رابطه با امنيت برنامه های وب سخن به ميان می آيد ، تهاجم عليه يك سايت ، سرقت كارت های اعتباری ، بمباران وب سايت ها در جهت مستاصل كردن آنان به منظور ارائه خدمات و سرويس های تعريف شده ، ويروس ها ، تروجان ها ، كرم ها و ... در ذهن تداعی می گردد . صرفنظر از نوع برداشت ما در رابطه با موارد فوق ، می بايست بپذيريم كه تهديدات امنيتی متعددی متوجه برنامه های وب با توجه به ماهيت آنان می باشد . سازمان ها و يا موسساتی كه از اينگونه برنامه ها استفاده می نمايند و يا در صدد طراحی و پياده سازی آنان می باشند ، می بايست به اين نكته مهم توجه نمايند كه ايمن سازی يك برنامه وب ، محدود به بكارگيری يك فن آوری خاص نبوده و فرآيندی است مستمر كه عوامل انسانی و غيرانسانی متعددی می توانند بر روی آن تاثيرگذار باشند .
    امنيت برنامه های وب را می بايست با توجه به
    نوع معماری و رفتار آنان بررسی نمود .
    برداشت های غيرواقعی از امنيت برنامه های وب
    متاسفانه به دليل عدم شناخت لازم در خصوص ماهيت برنامه های وب از يك طرف و از سوی ديگر عدم آشنائی لازم با مفاهيم امنيت ، شاهد برداشت های نادرست در خصوص امنيت برنامه های وب می باشيم . اجازه دهيد به چند نمونه در اين خصوص اشاره نمائيم :
    • ما ايمن هستيم چون از يك فايروال استفاده می نمائيم . اين تصور كاملا" اشتباه است و به نوع تهديد بستگی خواهد داشت . مثلا" يك فايروال قادر به تشخيص داده ورودی مخرب جهت ارسال به يك برنامه وب نمی باشد . فايروال ها دارای عملكردی قابل قبول در رابطه با اعمال محدوديت بر روی پورت ها می باشند و برخی از آنان می توانند همزمان با بررسی اطلاعات مبادله شده ، امكانات برجسته حفاظتی را ارائه نمايند . فايروال ها جزء لاينفك در يك فريمورك امنيتی می باشند ولی نمی توان آنان را به عنوان يك راهكار جامع به منظور ايجاد و برپائی يك محيط ايمن در نظر گرفت .
    • ما ايمن هستيم چون از SSL ( برگرفته ازSecure Sokets Layer ) استفاده می نمائيم . SSL برای رمزنگاری ترافيك موجود بر روی شبكه يك گزينه ايده آل است ولی قادر به بررسی داده ورودی يك برنامه نمی باشد .
    • ما ايمن هستيم چون از سيستم عاملی استفاده می نمائيم كه نسبت به ساير سيستم های عامل دارای امنيت بيشتری است . استدلال فوق با فرض درست بودن اصل قضيه ، نادرست و غيرمنطقی است چراكه امنيت يك فرآيند است نه يك محصول . بنابراين با بكارگيری يك محصول خاص ( به عنوان نمونه يك سيستم عامل ) نمی توان اين ادعا را داشت كه ما به يك محيط ايمن به منظور ايجاد برنامه های وب دست يافته ايم .
    با رد امنيت يك سيستم عامل نمی توان امنيت يك سيستم عامل ديگر را تائيد نمود.
    ( من خوبم چون شما بد هستيد ! )
    امنيت چيست ؟
    اولين رسالت امنيت ، حفاظت از سرمايه های يك سازمان است كه ممكن است شامل آيتم های ملموسی نظير يك صفحه وب و يا بانك اطلاعاتی مشتريان و يا آيتم های غيرملموسی نظير شهرت و اعتبار يك سازمان باشد. امنيت يك مسير است نه يك مقصد و به موازات تجزيه و تحليل زيرساخت و برنامه های موجود ، می بايست اقدام به شناسائی تهديدات و خطرات ناشی از آنان نمود . در واقع ، امنيت به مديريت خطرات و پياده سازی يك سيستم به منظور پاسخگوئی و مقابله با تهديدات اشاره داشته و در ارتباط با عتاصر كليدی زير است :
    • Authentication ، فرآيندی است كه به كمك آن به صورت منحصربفرد سرويس گيرندگان يك برنامه شناسائی می گردند . كاربران ، سرويس ها ، فرآيندها و كامپيوترها ، نمونه هائی از سرويس گيرندگان يك برنامه می باشند . در واقع ، authentication هويت استفاده كنندگان يك برنامه را بررسی می نمايد .
    • Authorization ، فرآيندی است كه به كمك آن دستيابی سرويس گيرندگان تائيد شده به منابع و عملياتی كه قصد انجام آن را دارند بررسی و مجوز لازم صادر می گردد. فايل ها ، بانك های اطلاعاتی ، جداول ، سطرها ، منابع موجود در سطح سيستم نظير كليدهای ريجتسری و داده پيكربندی ، نمونه هائی از منابع مورد درخواست سرويس گيرندگان می باشند . انجام تراكنش هائی خاص نظير خريد يك محصول ، واريز و انتقال پول از يك حساب به حساب ديگر و يا افزايش اعتبار يك كارت اعتباری از جمله عملياتی می باشند كه می بايست مجوز استفاده از آنان برای سرويس گيرندگان صادر گردد . در واقع ، authorization محدوده مجاز عملياتی را كه يك سرويس گيرنده می تواند انجام دهد را مشخص می نمايد .
    • Auditing : مميزی موثر و ثبت عمليات انجام شده يكی از اصول مهم در جلوگيری از انجام اعمال خلاف قانون است . بدين ترتيب اين اطمينان ايجاد خواهد شد كه يك كاربر نمی تواند باعث عدم انحام يك كار و يا فعاليت در سيستم گردد و يا يك تراكنش را مقداردهی اوليه نمايد . مثلا" در يك سيستم e-commerce می بايست از مكانيزم هائی استفاده گردد تا اين اطمينان حاصل گردد كه يك مصرف كننده نمی تواند سفارش انجام شده برای خريد يكصد نسخه از يك كتاب را انكار نمايد .
    • Confidentiality ، كه از آن با نام privacy نيز نام برده می شود ، فرآيندی است كه به كمك آن اين اطمينان ايجاد می گردد كه حريم خصوصی داده رعايت و امكان مشاهده آن توسط كاربران غيرمجاز و يا ساير افرادی كه قادر به رديابی ترافيك يك شبكه می باشند ، وجود نخواهد داشت .
    • Integrity ، فرآيندی است كه به كمك آن اين اطمينان ايجاد می گردد كه داده در مقابل تغييرات تصادفی و يا تعمدی حفاظت خواهد شد . همانند privacy ، يكپارچگی اطلاعات يك فاكتور اساسی در خصوص امنيت داده محسوب می گردد ، خصوصا" در مواردی كه داده در طول شبكه مبادله خواهد شد . يكپارچگی داده در حال حمل ،عموما" با استفاده از روش هائی نظير hashing و يا كدهای تائيد پيام انجام می شود .
    • Availability ، فرآيندی است كه به كمك آن اين اطمينان ايجاد خواهد شد كه همواره داده برای كاربران مجاز در دسترس و قابل استفاده خواهد بود . در اغلب حملات از نوع DoS ، مهاجمان اين هدف را دنبال می نمايند كه بتوانند امكان استفاده و در دسترس بودن برنامه برای كاربران مجاز را غيرممكن و عملا" آن را از كار بيندازند .
    تعاريف اوليه برخی از اصطلاحات امنيتی : تهديدات ، نقاط آسيب پذير و حملات
    • تهديد ( threat ) : به هرگونه پتانسيل بروز يك رويداد مخرب و يا ساير موارد ديگر كه می تواند به سرمايه های يك سازمان آسيب برساند ، تهديد گفته می شود . به عبارت ديگر، هر رويدادی كه بتواند به سرمايه های يك سازمان آسيب برساند ، در زمره تهديدات محسوب می گردد .
    • نقاط آسيب پذير (vulnerability) : ضعف های موجود در يك سيستم می باشند كه پتانسيل اوليه بروز يك رويداد مخرب را فراهم می نمايند . ضعف در طراحی ، پيكربندی اشتباه ، استفاده از روش های كدينگ غيرايمن مهمترين دلايل ايجاد يك ضعف در سيستم می باشند . ضعف در بررسی صحت داده ورودی توسط كاربر ، نمونه ای از يك لايه آسيب پذير در يك برنامه است كه می تواند زمينه بروز يك تهاجم را فراهم نمايد .
    • تهاجم (attack) : عملياتی است كه محوريت آن سوء استفاده از نقاط آسيب پذير و پتانسيل های بروز يك رويداد مخرب می باشد . ارسال ورودی مخرب به يك برنامه و يا flooding يك شبكه به منظور از كار انداختن يك سرويس ، نمونه هائی در اين زمينه می باشد .
    يك تهديد پتانسيل بروز يك رويداد مخرب را فراهم می نمايد كه می تواند به سرمايه های يك سازمان آسيب برساند
    در حالی كه در يك تهاجم موفقيت آميز از نقاط آسيب پذير موجود در سيستم استفاده می گردد .
    چگونه می توان يك برنامه وب ايمن را ايجاد نمود ؟
    تا زمانی كه شناخت مناسبی نسبت به تهديدات وجود نداشته باشد ، امكان ايجاد يك برنامه وب ايمن وجود نخواهد داشت . بنابراين قبل از هر چيز لازم است كه با "مدل تهديدات " موجود آشنا شويم . هدف مدل فوق، آناليز معماری و نحوه طراحی برنامه به منظور شناسائی نقاط آسيب پذيری است كه ممكن است به صورت تصادفی توسط يك كاربر ناآگاه و يا مهاجمان با اهداف مخرب مورد سوء استفاده قرار گرفته تا با استناد به آنان بتوانند موجوديت و امنيت سيستم را با خطر مواجه نمايند .
    پس از آسنائی با تهديدات ، می بايست با بكارگيری مجموعه ای از اصول امنيتی اقدام به طراحی سيستم نمود . در ادامه ، پياده كنندگان می بايست از روش های ايمن به منظور نوشتن كدهای مطمئن ، مستحكم و قابل اعتماد استفاده نمايند . پس از طراحی و پياده سازی برنامه ، می بايست از يك شبكه ايمن ، يك host مطمئن و يك پيكربندی مناسب بر روی سرويس دهنده ، استفاده گردد .
    ايجاد يك برنامه وب ايمن ، مستلزم اقدامات امنيتی چند جانبه ای است كه موفقيت در تمامی آنان ، ايمن بودن برنامه های وب را تضمين خواهد كرد . ايمن سازی شبكه ، host و برنامه ، رئوس مثلث امنيتی ايجاد برنامه های وب ايمن را تشكيل می دهند .
    ايمن سازی شبكه ، host و برنامه
    به منظور ايجاد برنامه های وب ايمن ، تبعيت از يك رويكرد جامع امری است الزامی . بنابراين ، می بايست امنيت برنامه های وب را در سه لايه متفاوت بررسی و اقدامات لازم را در هر لايه با توجه به جايگاه آن انجام داد . شكل زير سه لايه مهم به منظور ايجاد برنامه های وب ايمن را نشان می دهد .

    وجود يك نقطه آسيب پذير در شبكه وب و یا سرویس دهنده SQL به يك مهاجم اجازه می دهد تا كنترل يك host و يا برنامه را بدست بگيرد .
    وجود يك نقطه آسيب پذير در host به يك مهاجم اجازه می دهد تا بتواند كنترل يك شبكه و يا برنامه را بدست بگيرد .
    وجود يك نقطه آسيب پذير در برنامه به يك مهاجم اجازه می دهد تا كنترل يك host و يا شبكه را بدست بگيرد .
    در بخش دوم به بررسی هر يك از لايه های فوق خواهيم پرداخت .
    انجمن قاطی , انجمن تفریحی

    اصول امنيت برنامه های وب ( بخش دوم )
    در بخش اول به اين موضوع اشاره گرديد كه به منظور ايجاد برنامه های وب ايمن ، می بايست از يك رويكرد جامع تبعيت و بر روی سه لايه متفاوت شبكه ، host و برنامه متمركز گرديد. در اين بخش به بررسی ايمن سازی شبكه خواهيم پرداخت .

    موضوعات مشابه (تصادفی) :

    تصاوير پيوست شده تصاوير پيوست شده
    ویرایش توسط ADMIN : 23.06.2016 در ساعت 01:47 دلیل: حذف لینک

  2. Top | #2
    کاربر تازه وارد

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

    عناصر شبكه : روتر ، فايروال و سوئيچ
    يك برنامه وب بر روی يك زيرساخت شبكه ای ايمن فعاليت و به كاربران خود سرويس های لازم را ارائه می نمايد . برای ايمن سازی شبكه ، علاوه بر اين كه شبكه می بايست در مقابل حملات مبتنی بر TCP/IP از خود محافظت نمايد ، بلكه لازم است اقدامات متعدد ديگری نيز در اين رابطه انجام شود . ايجاد اينترفيس های مديريتی ايمن، استفاده از رمزهای عبور قدرتمند ، حصول اطمينان از صحت ترافيك ارسالی از جمله اقدامات ديگر در خصوص ايجاد يك شبكه ايمن می باشد . بدين منظور لازم است كه پورت ها و پروتكل های استفاده شده در هر لايه به دقت بررسی و در صورتی كه وجود آنها غيرضروری تشخيص داده شود و يا استفاده از آنها زمينه بروز تهديداتی را فراهم می نمايد ، می بايست در همان لايه با آنان برخورد و از يك راهكار مناسب امنيتی استفاده گردد .
    وجود ضعف امنيتی در يك شبكه زمينه بروز تهديدات متعددی را فراهم می نمايد . بدون شناسائی اينگونه تهديدات ، امكان مقابله منطقی با آنان وجود نخواهد داشت .
    تهديدات
    يك مهاجم به منظور برنامه ريزی حملات خود به دنبال دستگاه های شبكه ای است كه بر روی آنها پيكربندی ضعيفی اعمال شده است . تنظيمات ضعيف پيش فرض ، دستيابی بدون ضابطه به منابع موجود بر روی شبكه ، وجود دستگاه هائی كه به درستی patch و يا بهنگام نشده اند، حفره های امنيتی متعددی را در يك شبكه ايجاد می نمايد . وجود حفره های امنتيی فوق و عدم برخورد مناسب با آنها ، احتمال موفقيت مهاجمان را افزايش می دهد .
    مهمترين تهديدات در يك شبكه عبارتند از :
    • جمع آوری اطلاعات
    • sniffing
    • spoofing
    • session hijacking
    • DoS ( برگرفته از Denial of Service )
    با آگاهی از ماهيت هر يك از تهديدات فوق و نحوه تاثير آنها بر روی عملكرد شبكه ، می توان امكانات حفاظتی و تدافعی مناسبی را در يك شبكه پيش بينی و پياده سازی نمود.
    در ادامه به بررسی مختصر هر يك از تهديدات فوق خواهيم پرداخت .
    جمع آوری اطلاعات
    مهاجمان در اولين مرحله ،اقدام به جمع آوری اطلاعات در رابطه با اهداف خود می نمايند . جمع آوری اطلاعات می تواند باعث افشای اطلاعات توپولوژی شبكه ، پيكربندی سيستم و دستگاه های شبكه ای گردد . يك مهاجم می تواند در ادامه با استفاده از اطلاعات جمع آوری شده بر روی نقاط آسيب پذير متمركز و از حفره های امنيتی موجود در جهت تامين خواسته های مخرب خود استفاده نمايد .

    نقاط آسيب پذير
    متداولترين نقاط آسيب پذيری كه شبكه را مستعد اين نوع از حملات می نمايد عبارتند از :
    • ماهيت غيرايمن ذاتی پروتكل TCP/IP
    • پيكربندی ضعيف دستگاه های شبكه ای
    • استفاده غيرايمن از سرويس هائی كه به وجود آنها در يك شبكه نياز نمی باشد .
    حملات
    متداولترين حملات مبتنی بر "جمع آوری اطلاعات" عبارتند از :
    • استفاده از Tracert به منظور تشخيص توپولوژی شبكه
    • استفاده از Telnet به منظور باز نمودن پورت ها و جمع آوری اطلاعات اوليه
    • استفاده از پويشگرهای پورت به منظور تشخيص وضعيت پورت ها
    • استفاده از درخواست های broadcast برای شمارش تعداد host موجود بر روی يك subnet
    پيشگيری و مقابله با تهديدات
    به منظور پيشگيری و مقابله با اين نوع حملات می توان از روش های زير استفاده نمود :
    • استفاده از امكاناتی كه اطلاعات اضافه ای را در خصوص پيكربندی نظير نام و شماره نسخه نرم افزار ارائه نمی نمايد .
    • استفاده از فايروال ها به منظور پوشش سرويس هائی كه نمی بايست در معرض ديد و استفاده عموم قرار داده شوند .
    sniffing
    sniffing كه به آن "استراق سمع " نيز گفته می شود ، مانيتورينگ ترافيك شبكه برای داده هائی نظير رمزهای عبور ( رمزنشده) و يا اطلاعات پيكربندی است . با استفاده از يك برنامه packet sniffer ، می توان به سادگی تمامی ترافيك plain text ( رمز نشده ) را مشاهده نمود .
    نقاط آسيب پذير
    متداولترين نقاط آسيب پذيری كه شبكه را مستعد اين نوع از حملات می نمايد عبارتند از :
    • ضعف امنيت فيزيكی
    • ضعف رمزنگاری در زمان ارسال داده حساس و مهم
    • وجود سرويس هائی كه با يكديگر به صورت متن معمولی ( رمز نشده ) ارتباط برقرار می نمايند .
    • استفاده از الگوريتم های ضعيف رمزنگاری
    حملات
    مهاجمان با قرار دادن يك packet sniffer بر روی شبكه می توانند تمامی ترافيك را capture و آناليز نمايند .
    پيشگيری و مقابله با تهديدات
    به منظور پيشگيری و مقابله با اين نوع حملات می توان از روش های زير استفاده نمود :
    • استفاده از يك سيستم امنيت فيزيكی مناسب به منظور پيشگيری از نصب دستگاه های مخرب بر روی شبكه
    • رمزنگاری اطلاعات حساس و ترافيك برنامه بر روی شبكه
    Spoofing
    spoofing ، كه به آن "هويت مبهم " نيز گفته می شود ، به كتمان هويت واقعی بر روی شبكه اطلاق می گردد . در اين رابطه از يك آدرس مبداء جعلی كه بيانگر آدرس اوليه صادركننده پيام نمی باشد ، استفاده می گردد . در بسياری موارد از spoofing به منظور مخفی كردن منبع بروز يك تهاجم استفاده می شود. در برخی موارد كه دستيابی به منابع موجود بر روی شبكه بر اساس آدرس متقاضيان انجام می شود ، مهاجمان با تغيير آدرس مبداء سعی می نمايند به اينگونه از منابع دستيابی پيدا نمايند .
    نقاط آسيب پذير
    متداولترين نقاط آسيب پذيری كه شبكه را مستعد اين نوع از حملات می نمايد عبارتند از :
    • ماهيت غيرايمن ذاتی پروتكل TCP/IP
    • ضعف در فيلترينگ بسته های اطلاعاتی ورودی و خروجی : ترافيك ورودی و خروجی شبكه به درستی كنترل و فيلتر نمی گردد (ingress & egress filtering )
    حملات
    يك مهاجم می تواند از ابزارهای متعددی به منظور تغيير آدرس بسته های خروجی استفاده نمايد تا اينچنين وانمود نمايد كه آنها از يك host و يا شبكه ديگر ارسال شده اند .
    پيشگيری و مقابله با تهديدات
    به منظور پيشگيری و مقابله با اين نوع حملات می توان از از فيلترينگ egress و ingress بر روی روتر های perimeter استفاده نمود .

    session Hijacking
    با استفاده از اين نوع حملات كه به آنها man in middle نيز گفته می شود ، مهاجمان می توانند از يك برنامه برای تغيير شكل ظاهری خود به عنوان يك سرويس گيرنده و يا سرويس دهنده موجه استفاده نمايند . بدين ترتيب ، يك سرويس دهنده و يا سرويس گيرنده واقعی فريب خورده و فكر می كنند كه با يك host معتبر و مجاز ارتباط برقرار نموده اند . در واقع ، اين نوع كامپيوترهای ميزبان متعلق به مهاجمان بوده كه سعی می نمايند با دستكاری شبكه خود را به عنوان مقصد مورد نظر وانمود نمايند . از اين نوع حملات به منظور آگاهی از اطلاعات logon و دستيابی به سيستم و ساير اطلاعات محرمانه استفاده می گردد .
    نقاط آسيب پذير
    متداولترين نقاط آسيب پذيری كه شبكه را مستعد اين نوع از حملات می نمايد عبارتند از :
    • ضعف در امنيت فيزيكی
    • ماهيت غيرايمن ذاتی پروتكل TCP/IP
    • مبادله اطلاعات به صورت رمزنشده
    حملات
    يك مهاجم می تواند از ابزارهای متعددی به منظور انجام عمليات spoofing ، تغيير روتينگ و دستكاری بسته های اطلاعاتی استفاده نمايد.

    پيشگيری و مقابله با تهديدات
    به منظور پيشگيری و مقابله با اين نوع حملات می توان از روش های زير استفاده نمود :
    • رمزنگاری Session
    • استفاده از روش Stateful inspection در سطح فايروال
    DoS
    در اين نوع از حملات ، امكان دستيابی كاربران مجاز به يك سرويس دهنده و يا سرويس خاص سلب می گردد .در حملات DoS لايه شبكه ، معمولا" مهاجمان با ارسال سيلابی از بسته های اطلاعاتی امكان استفاده از يك سرويس توسط ساير كاربران را سلب می نمايند . علاوه بر مشكل فوق ، در چنين مواردی از پهنای باند و منابع موجود بر روی شبكه استفاده بهينه نخواهد شد .
    نقاط آسيب پذير
    متداولترين نقاط آسيب پذيری كه شبكه را مستعد اين نوع از حملات می نمايد عبارتند از :
    • ماهيت غيرايمن ذاتی پروتكل TCP/IP
    • ضعف در پيكربندی روتر و سوئيچ
    • باگ در سرويسهای نرم افزاری
    حملات
    متداولترين حملات DoS عبارتند از :
    • ارسال سيلابی از بسته های اطلاعاتی نظير حملات cascading broadcast
    • بسته های اطلاعاتی SYN flood
    • سوء استفاده از برخی سرويس ها
    پيشگيری و مقابله با تهديدات
    به منظور پيشگيری و مقابله با اين نوع حملات می توان از روش های زير استفاده نمود :
    • فيلترينگ درخواست های broadcast
    • فيلترينگ درخواست های ICMP ( برگرفته از Internet Control Message Protocol )
    • بهنگام سازی و نصب patches سرويس های نرم افزاری
    بدون آناليز صحيح تهديدات ،
    امكان ايجاد يك محيط و يا شبكه ايمن وجود نخواهد داشت .
    برای ايمن سازی شبكه از كجا می بايست شروع كرد ؟
    برای ايمن سازی شبكه می بايست بر روی هر يك از دستگاه های استفاده شده در شبكه متمركز و پس از بررسی چالش های امنيتی هر يك ، از راهكارهای خاصی به منظور ايمن سازی آنها استفاده نمود.
    همانگونه كه اشاره گرديد در زيرساخت شبكه از روتر ، فايروال و سوئيچ استفاده می گردد كه می بايست ضمن آشنائی با جايگاه آنها در يك شبكه با نحوه عملكرد و ايمن سازی آنها از منظر برنامه های وب نيز آشنا شويم . در بخش سوم به بررسی موارد فوق خواهيم پرداخت .
    ________________________________________
    اصول امنيت برنامه های وب (بخش سوم)
    در بخش اول به اين موضوع اشاره گرديد كه به منظور ايجاد برنامه های وب ايمن ، می بايست از يك رويكرد جامع تبعيت و بر روی سه لايه متفاوت شبكه ، host و برنامه متمركز گرديد. در بخش دوم با تمركز بر روی شبكه ، انواع تهديدات موجود بررسی گرديد . در اين بخش ضمن بررسی عناصر موجود در زير ساخت شبكه نظير روتر ، فايروال ، سوئيچ با ملاحظات امنيتی در خصوص بكارگيری روتر بيشتر آشنا خواهيم شد .
    عناصر موجود در زيرساخت شبكه
    زير ساخت شبكه را می توان به سه لايه متفاوت دستيابی ، توزيع و هسته تقسيم نمود . اين لايه ها شامل تمامی سخت افزارهای مورد نياز به منظور كنترل دستيابی به منابع داخلی و خارجی است . روتر ،سوئيچ و فايروال مهمترين عناصر موجود در زير ساخت يك شبكه می باشند .
    • روتر ، حلقه ارتباطی شبكه به دنيای خارج است و كانال بسته های اطلاعاتی به پورت ها و پروتكل های مورد نياز در برنامه های وب را ايجاد می نمايد . مسئوليت روتر ارسال بسته های اطلاعاتی IP به شبكه هائی است كه به آنها متصل شده است . بسته های اطلاعاتی ممكن است درخواست های ارسالی سرويس گيرندگان به سرويس دهنده وب ، پاسخ به درخواست های ارسالی و يا درخواست های صادره توسط سرويس گيرندگان داخلی شبكه باشد . پيكربندی روتر می بايست بگونه ای انجام شود تا ترافيك غيرضروری و غير مجاز را بين شبكه ها فيلتر نمايد . همچنين ، روتر می بايست در مقابل پيكربندی مجدد غيرمطمئن حفاظت و از اينترفيس های مديريتی ايمن به منظور پيكربندی مطمئن آن استفاده نمود . با توجه به نقش كليدی نرم افزار IOS در روتر ، می بايست همواره آخرين patch و نسخه های بهنگام شده بر روی آنها نصب گردد .
    • فايروال ، مسئوليت بلاك كردن تمامی پورت های غيرضروری را برعهده داشته و اين امكان را فراهم می نمايد كه ترافيك صرفا" از طريق پورت های شناخته شده انجام پذيرد. فايروال ها به منظور پيشگيری از حملات شناخته شده ، می بايست دارای امكانات مناسبی به منظور مانيتورينگ درخواست های ورودی باشند . فايروال ها با همكاری نرم افزارهائی كه از آنها به منظور تشخيص مزاحمين استفاده می گردد ، قادر به ايجاد يك محيط ايمن عملياتی می باشند . همانند روتر ، فايروال ها بر روی محيطی اجراء می گردند كه مسئوليت مديريت آن بر عهده يك سيستم عامل گذاشته شده است . بنابراين لازم است كه در فواصل زمانی خاص نرم افزارهای تكميلی و بهنگام شده بر روی آنها نصب گردد . همچنين ، مديريت فايروال می بايست از طريق اينترفيس های ايمن انجام و پورت هائی كه به وجود آنها نياز نمی باشد را غيرفعال نمود .
    • از سوئيچ به منظور تقسيم شبكه به چندين سگمنت استفاده می گردد . سوئيچ دارای كمترين نقش در خصوص ايمن سازی يك شبكه می باشد . يكی از علل طراحی سوئيچ ، بهبود كارآئی و تسهيل در امر مديريت شبكه است .
    روتر و ملاحظات امنيتی آن
    اولين خط دفاعی در يك شبكه را روتر تشكيل می دهد . روتر علاوه بر قابليت روتينگ بسته های اطلاعاتی می تواند بگونه ای پيكربندی گردد تا بسته های اطلاعاتی را بر اساس نوع آنها شناسائی و آندسته از بسته های اطلاعاتی را كه ممكن است زمينه بروز حملات و تهديدات در يك شبكه را ايجاد نمايد ، بلاك نمايد . نظير ICMP ( برگرفته از Internet Control Message Protocol ) و يا SNMP ( برگرفته از Simple Network Management Protocol ) .
    برای پيكربندی روتر با رعايت ملاحظات امنيتی ، اقدامات متعددی را می بايست در هر يك از گروه های زير انجام داد :
    • نصب آخرين نسخه های بهنگام شده و patch ارائه شده
    • پروتكل ها
    • دستيابی مديريت
    • سرويس ها
    • تشخيص مزاحمين
    • مميزی و لاگ نمودن
    در ادامه به بررسی هر يك از موارد فوق خواهيم پرداخت .
    نصب آخرين نسخه های بهنگام شده و patch ارائه شده
    با عضويت در خبرنامه شركت هائی كه از محصولات نرم افزاری و يا سخت افزاری آنها در زيرساخت فن آوری اطلاعات استفاده شده است ، می توان به سرعت از توصيه های امنيتی آنها آگاهی يافت . شركت های معتبر در صورت بروز مشكل در يك محصول سخت افزاری و يا نرم افزاری در اولين فرصت اقدام به ارائه patch مربوطه می نمايند و اين موضوع را از طريق پست الكترونيكی به اطلاع مشتركان خود می رسانند . توجه داشته باشيد كه همواره قبل از بكارگيری نسخه های بهنگام شده در يك محيط عملياتی ، آنها را تست و پس از حصول اطمينان از صحت عملكرد اقدام به نصب نهائی آنها در محيط واقعی نمود .
    پروتكل ها
    برخی از حملات نظير DoS به دليل وجود ضعف امنيتی در پروتكل ها اتفاق می افتد . به عنوان نمونه ، مهاجمان می توانند با ارسال سيلابی از بسته های اطلاعاتی سرويس و يا سرويس های ارائه شده توسط يك سرويس دهنده را غيرفعال نمايند. به منظور پيشگيری و پاسخ به موقع به اين نوع از حملات می بايست اقدامات زير را انجام داد :
    • استفاده از فيلترينگ ورودی و خروجی : بسته های اطلاعاتی مشكوك می تواند بيانگر كنكاش در شبكه ، تهاجم و يا يك كسب آگاهی لازم از وضعيت شبكه موجود توسط يك مهاجم باشد . بسته های اطلاعاتی دريافتی شامل يك آدرس داخلی می تواند نشاندهنده تلاش جهت نفوذ به شبكه و آناليز آن باشد . با اين نوع بسته های اطلاعاتی می بايست در اولين محل ممكن برخورد نمود ( Perimeter network ) . همچنين ، می بايست پيكربندی روتر بگونه ای انجام شود كه صرفا" اجازه خروج بسته های اطلاعاتی با آدرس های IP داخلی معتبر را بدهد . بررسی بسته های اطلاعاتی خروجی ، يك شبكه را در مقابل حملات از نوع DoS محافظت نخواهد كرد ولی اين تضمين را ايجاد خواهد كرد كه حمله ای با محوريت يكی از سرويس گيرندگان شبكه داخلی شكل نخواهد گرفت .
    • مشاهده ترافيك ICMP از شبكه داخلی : ICMP يك پروتكل stateless است كه اجازه بررسی اطلاعات در دسترس هاست را از يك هاست به هاست ديگر فراهم می نمايد . از پيام های مبتتی بر ICMP در موارد متداول زير استفاده می گردد :
    Echo request : مشخص می نمايد كه يك گره IP ( يك هاست و يا روتر ) بر روی شبكه در دسترس است .
    Echo reply : پاسخ به يك درخواست ICMP echo
    Destination unreachable : به هاست اعلام می شود كه ديتاگرام نمی تواند توزيع گردد .
    Source quench : به هاست اعلام می شود كه ديتاگرام ارسالی را با نرخ پائين تری ارسال نمايد ( به دليل شلوغی )
    Redirect : به هاست يك مسير روت بهتر اعلام می شود .
    Time Exceeded : نشاندهنده اين موضوع است كه عمر مفيد (TTL : Time to live ) يك ديتاگرام به اتمام رسيده است .
    بلاك كردن ترافيك ICMP برروی روتر perimeter باعث حفاظت شبكه در مقابل حملاتی نظير Cascading ping floods می گردد . برای بلاك كردن اين پروتكل دلايل قانع كننده متعددی وجود دارد . عليرغم ديد انتقادی امنيتی نسبت به اين پروتكل ، از آن در موارد متعددی نظير اشكال زدائی شبكه استفاده می گردد. بنابراين لازم است كه استفاده از پروتكل ICMP كاملا" كنترل شده باشد .

    • پيشگيری از پيام های TTL كه اعتبار آنها به اتمام رسيده است با مقادير صفر و يك : برای شمارش تعداد hop بين يك سرويس گيرنده و يك سرويس دهنده ، trace routing از مقادير TTL صفر و يا يك استفاده می نمايد . trace routing ، به مفهوم جمع آوری اطلاعات توپولوژی شبكه است . با بلاك كردن اينچنين بسته های اطلاعاتی ، از ارائه اطلاعات تكميلی كه بيانگر جزئيات شبكه موجود است پيشگيری می گردد .

    • عدم دريافت و يا فوروارد ترافيك directed broadcast : ترافيك هائی اينچنين قادر به شمارش تعداد هاست موجود بر روی يك شبكه می باشند و از آن به عنوان ابزاری جهت آماده سازی و تدارك حملات DoS استفاده می گردد . بسته های اطلاعاتی كه حاوی آدرس های مبداء زير می باشند را می بايست بلاك نمود :
    شرح آدرس مبداء
    Historical broadcast 0.0.0.0/8
    RFC 1918 Private network 10.0.0.0/8
    Loopback 127.0.0.0/8
    Link local networks 169.254.0.0/16
    RFC 1918 private network 172.16.0.0/12
    TEST-NET 192.0.20.0/24
    RFC 1918 private network 192.168.0.0/16
    Class D multicast 224.0.0.0/4
    Class E reserved 240.0.0.0/5
    Unallocated 248.0.0.0/5
    Broadcast 255.255.255.255/32
    دستيابی مديريت
    پيكربندی روتر از چه مكانی و به چه صورت انجام می شود ؟ كدام پورت ها و اينترفيس ها فعال است و مديران شبكه از چه شبكه و يا هاستی برای پيكربندی روتر استفاده می نمايند ؟ دستيابی به مكان پيكربندی روتر میبايست محدود و هرگز از اينترفيس های مديريتی تحت وب بدون رمزنگاری و رعايت مسائل امنيتی نمی بايست استفاده گردد . علاوه بر اين رعايت موارد زير نيز توصيه می گردد :
    • غيرفعال كردن اينترفيس هائی كه از آنان استفاده نمی گردد : صرفا" می بايست اينترفيس های مورد نياز بر روی روتر فعال گردند .
    • ايجاد رمزهای قوی : از رمزهای عبور مناسب و قدرتمند به منظور استفاده در هر mode روتر می بايست استفاده گردد . استفاده تركيبی از حروف الفبائی ، اعداد و حروف ويژه به منظور تعريف يك رمز عبور مناسب توصيه می گردد .
    • استفاده از روتينگ استاتيك : روتينگ ايستا از تغيير اطلاعات موجود در جدول روتينگ پيشگيری می نمايد . يك مهاجم ممكن است بتواند با تغيير مسيرها حملات از نوع DoS را برنامه ريزی و يا درخواست ها را به يك سرويس دهنده مخرب هدايت نمايد .
    • بازبينی اينترفيس های مديريتی وب : حتی المقدور سعی گردد كه اينترفيس های مديريتی خارجی غيرفعال و از روش های دستيابی داخلی به همراه ليست های دستيابی استفاده گردد .
    سرويس ها
    بر روی يك روتر پيكربندی شده هر پورت فعال با يك سرويس خاص مرتبط می گردد . به منظور كاهش ميدان عملياتی مهاجمان ، سرويس های پيش فرض كه به وجود آنان نياز نمی باشد را می بايست غيرفعال نمود . به عنوان نمونه سرويس های bootps و finger كه از آنان بندرت استفاده می گردد را می توان غيرفعال نمود . همچنين لازم است پورت هایفعال بر روی روتر بررسی و پورت هائی را كه به وجود آْنها نياز نمی باشد را غيرفعال نمود.
    بازبينی و لاگينگ
    به صورت پيش فرض ، روتر تمامی عمليات deny را لاگ می نمايد . وضعيت فوق نمی بايست تغيير داده شود .همچنين لازم است كه فايل های لاگ شده به صورت اداواری بررسی تا از وقوع حملات احتمالی پيشگيری بعمل آيد . برخی از روترهای مدرن دارای مجموعه ای از امكانات جديد به منظور انجام عمليات مختلف و آماری بر روی داده لاگ شده می باشند .
    تشخيص مزاحمين
    به منظور پيشگيری از حملات مبتنی بر TCP/IP ، روتر می بايست قادر به شناسائی زمان بروز يك تهاجم و اعلام آن به مدير سيستم باشد . مهاجمان در ابتدا سعی می نمايند كه با اولويت های امنيتی يك شبكه آشنا شده و در ادامه با تمركز بر روی آنها حملات خود را برنامه ريزی می نمايند . با استفاده از سيستم های تشخيص دهنده مزاحمين ( IDS برگرفته شده از Intrusion Detection Systems ) ، می توان زمان و ماهيت وقوع يك تهاجم را بررسی نمود .
    خلاصه
    در اين مطلب ضمن بيان عناصر كليدی موجود در زيرساخت يك شبكه به مسائل امنيتی مرتبط با روتر اشاره گرديد . به منظور پيكربندی ايمن روتر ، اقدامات متعددی را می بايست انجام داد :
    • نصب آخرين patch و نسخه های بهنگام شده
    • عضويت در خبرنامه امنيتی توليد كنندگان (سخت افزار، نرم افزار )
    • بلاك كردن پورت های شناخته شده
    • كنترل و نظارت بر ترافيك ورودی و خروجی شبكه
    • مانيتورينگ ترافيك ICMP
    • مديريت و كنترل ايمن اينترفيس ها
    • غيرفعال كردن امكان مديريت از طريق وب
    • استفاده از روتينگ ايستا
    • غيرفعال كردن سرويس های استفاده نشده نظير bootps و Finger
    • استفاده از از رمزهای عبور قدرتمند
    • لاگ كردن فعاليت ها به منظور تشخيص و بررسی ادواری ترافيك غيرطبيعی
    • مشاهده و كنترل ping بسته های اطلاعاتی با ظرفيت بالا
    • غير فعال كردن بسته های اطللاعاتی RIP ( برگرفته از Routing Information Protocol ) در صورت استفاده بر روی روتر مرزی
    در بخش چهارم به بررسی فايروال و ملاحظات امنيتی در ارتباط با آن خواهيم پرداخت .
    ________________________________________
    اصول امنيت برنامه های وب (بخش چهارم)

    آنچه تاكنون گفته شده است :
    • بخش اول : تبعيت از يك رويكرد جامع به منظور ايجاد برنامه های وب ايمن و تمركز بر روی سه لايه شبكه ، host و برنامه
    • بخش دوم : بررسی انواع تهديدات در شبكه های كامپيوتری ( لايه شبكه و جايگاه آن در ايمن سازی محيط های عملياتی )
    • بخش سوم : بررسی ملاحظات امنيتی در خصوص بكارگيری روتر ( لايه شبكه و بررسی عناصر موجود در زير ساخت شبكه )
    در اين بخش به بررسی فايروال و ملاحظات امنيتی در ارتباط با آن خواهيم پرداخت .
    همانگونه كه در بخش دوم اشاره گرديد ، زير ساخت شبكه را می توان به سه لايه متفاوت دستيابی ، توزيع و هسته تقسيم نمود . اين لايه ها شامل تمامی سخت افزارهای مورد نياز به منظور كنترل دستيابی به منابع داخلی و خارجی است . روتر ،سوئيچ و فايروال مهمترين عناصر موجود در زير ساخت يك شبكه می باشند .
    فايروال می بايست در هر مكانی كه شبكه شما با يك شبكه غيرايمن تعامل دارد ، نصب و پيكربندی گردد ( خصوصا" اگر اين شبكه اينترنت باشد ). توصيه می گردد كه سرويس دهندگان وب و بانك اطلاعاتی توسط يك فايروال داخلی حفاظت گردند .
    پس از روتر كه امكانات متعددی را به منظور فيلترينگ بسته های اطلاعاتی در اختيار قرار می دهد ( استفاده از ليست های كنترل دستيابی ) ، فايروال ها دارای جايگاهی مهم در ايجاد سيستم تدافعی و حفاظتی در يك شبكه می باشند . بديهی است كه مهاجمان برای نفوذ در يك شبكه بر روی دو نقطه فوق بيش از ساير نقاط متمركز شده و از ضعف امنيتی آنان در جهت اهداف مخرب استفاده نمايند. تعداد زيادی از فيلترها و ليست های كنترل دستيابی ( ACLs ) كه در رابطه با روتر اعمال شده است را می توان بر روی يك فايروال نيز پياده سازی نمود .
    برای نصب و پيكربندی فايروال با رعايت ملاحظات امنيتی ، اقدامات متعددی را می بايست در هر يك از گروه های زير انجام داد :
    • بهنگام سازی و نصب patches
    • تعريف فيلترها متناسب با سيستم فيلترينگ انتخابی
    • مميزی و لاگ حوادث امنيتی
    • استفاده مناسب و بهينه از شبكه های Perimeter
    • تشخيص مزاحمين
    در ادامه به تشريح عمليات مرتبط با هر يك از گروه های فوق خواهيم پرداخت .
    بهنگام سازی و نصب patches
    با عضويت در خبرنامه شركت هائی كه از محصولات نرم افزاری و يا سخت افزاری آنها در زيرساخت فن آوری اطلاعات استفاده شده است ، می توان به سرعت از توصيه های امنيتی آنها آگاهی يافت . شركت های معتبر در صورت بروز مشكل در يك محصول سخت افزاری و يا نرم افزاری در اولين فرصت اقدام به ارائه patch مربوطه می نمايند و اين موضوع را از طريق پست الكترونيكی به اطلاع مشتركان خود می رسانند . توجه داشته باشيد كه همواره قبل از بكارگيری نسخه های بهنگام شده در يك محيط عملياتی ، آنها را تست و پس از حصول اطمينان از صحت عملكرد ، اقدام به نصب نهائی آنها در محيط واقعی نمود .
    فيلترها
    فيلترينگ پورت ها بر روی فايروال روشی موثر و كارآمد برای بلاك كردن بسته های اطلاعاتی مخرب و payload می باشد. امروزه از فناوری های متعددی به منظور فيلترينگ بسته های اطلاعاتی استفاده می گردد . عملكرد اين فايروال ها می تواند ساده نظير فايروال های packet filter باشد كه با بررسی هدر IP در لايه شبكه قادر به فيلترينگ بسته های اطلاعاتی بر اساس آدرس مبداء ، آدرس مقصد و شماره پورت می باشند و يا فايروال های پيچيده نظير فايروال هائی باشد كه قادر به بررسی payload يك برنامه خاص می باشند . در استراتژی دفاع در عمق ، استفاده از فيلترهای لايه ای به عنوان يك روش موثر به منظور بلاك كردن حملات پيشنهاد می گردد .
    فايروال ها برای فيلترينگ از روش های متعددی استفاده می نمايند :
    • Packet filters : اين نوع فيلترها قادر به فيلترينگ بسته های اطلاعاتی بر اساس پروتكل ، آدرس مبداء و مقصد ، شماره پورت مبداء و مقصد و يا نام كامپيوتر می باشند . فيلترينگ بسته های اطلاعاتی IP ايستا می باشد و مبادله داده از طريق يك پورت خاص بلاك و يا امكان پذير می گردد . بسته های اطلاعاتی بلاك شده لاگ می گردد تا در آينده بتوان رفتار غيرطبيعی شبكه را در مقاطع زمانی خاص بررسی نمود . در لايه شبكه ، payload ناشناخته است و می تواند خطرناك باشد . بدين منظور لازم است از نوع های خاصی از فيلترينگ هوشمند استفاده گردد تا امكان بررسی payload و اتخاذ تصميم بر اساس قوانين كنترل دستيابی فراهم گردد .
    • Circuit-level filters : در اين نوع فيلترها در مقابل بررسی داده payload ، اطلاعات مربوط به session بررسی می گردد . پس از ايجاد يك درخواست توسط سرويس گيرنده و ارسال مستقيم آن برای فايروال ( و يا gateway ) ، در پاسخ gateway يك ارتباط به سرويس دهنده برای وی را مقداردهی اوليه كرده و خود به عنوان يك كارگزار بين دو نقطه ارتباطی ايفای وظيفه می نمايد . اين نوع فيلترها با آگاهی از قوانين اتصال سطح برنامه ها اين اطمينان را ايجاد می نمايند كه صرفا" بين سرويس گيرنده و سرويس دهنده ارتباطات معتبر برقرار می گردد . همانگونه كه اشاره گرديد فيلترهای فوق payload واقعی را بررسی نمی نمايند و در مقابل ، به منظور حصول اطمينان از يكپارچگی بسته های اطلاعاتی و پيشگيری از سرقت session ، اقدام به شمارش تعداد فريم ها می نمايند .
    • Application filters : فيلترهای هوشمند application قادر به آناليز داده ارسالی برای يك برنامه بوده و می توانند پردازش های مختص برنامه شامل بررسی ، گزينش ، بلاك نمودن ، تغيير مسير و حتی تغيير داده را در زمان ارسال از طريق فايروال انجام دهند . اين نوع فيلترها قادر به ارائه يك سيستم تدافعی مناسب در مقابل حملاتی نظير دستورات غيرايمن SMTP ، تهاجم بر عليه سرويس دهندگان داخلی DNS ، حملات مبتنی بر HTTP ( نظير Code Red و Nimda كه از دانش در ارتباط با برنامه ها استفاده می كردند ) ، می باشند . به عنوان نمونه ، يك application filter قادر به بلاك نمودن يك دستور HTTP DELETE می باشد ولی امكان اجرای دستوری نظير يك HTTP GET را فراهم می نمايد . قابليت گزينش محتويات شامل تشخيص ويروس و آناليز واژه ای ، اين نوع فايروال ها را به عنوان گزينه ای مطلوب در وب مطرح نموده است .
    • Stateful inspection : فيلترهای Application محدود به دانش Payload يك بسته اطلاعاتی می باشند و صرفا" سيستم تصميم گيری آنها بر اساس payload انجام می شود . فيلترهای Stateful از payload و context آن به منظور تشخيص قوانين فيلترينگ استفاده می نمايند . استفاده از payload و محتويات بسته اطلاعاتی توسط فايروال های فوق، يكپارچگی session و communication را تضمين می نمايد .
    • Custom application filters : اين نوع فيلترها يكپارچگی مبادله اطلاعات بين سرويس دهنده و سرويس گيرنده را ايجاد می نمايند .
    در صورت استفاده از فيلترينگ در چندين سطح شبكه ، امنيت محيط عملياتی بيشتر می گردد . به عنوان نمونه ، از يك packet filter می توان به منظور بلاك نمودن ترافيك IP بر روی هر پورتی غير از پورت 80 استفاده نمود و از يك application filter به منظور اعمال محدوديت در ترافيك بر اساس ماهيت توابع HTTP استفاده نمود ( به عنوان نمونه می توان HTTP DELETE را بلاك نمود ) .
    مميزی و لاگ
    تمامی درخواست های ورودی و خروجی را می بايست صرفنظر از قوانين فايروال لاگ نمود تا امكان تشخيص تلاش برای نفوذ در شبكه و يا حملات موفيقت آميزی كه قبلا" اتفاق افتاده و امكان تشخيص آنها وجود نداشته است ، فراهم گردد . مديران شبكه در برخی موارد مجبور خواهند بود به منظور آگاهی از نحوه انجام يك تهاجم موفقيت آميز ، لاگ های سيستم را بررسی تا نقاط ضعف امنيتی موجود را ترميم و سيستم تدافعی خود را مستحكم تر نمايند . برای ايجاد لاگ و مميزی بكارگيری قوانين زير پيشنهاد می گردد :
    • لاگ نمودن تمامی ترافيكی كه از طريق فايروال انجام می شود
    • نگهداری ايمن و مطمئن فايل های لاگ و بررسی آن در بازه های زمانی خاص ( حتی المقدور می بايست سعی شود كه حجم فايل های لاگ زياد نگردد چراكه بررسی آنها به همان ميزان به زمان بيشتری نياز خواهد داشت ) .
    • يكسان نمودن زمان و تاريخ فايروال با ساير تجهيزات شبكه ای

  3. Top | #3
    کاربر تازه وارد

    عنوان کاربر
    کاربر تازه وارد
    تاریخ عضویت
    23.06.2016
    شماره عضویت
    3429
    نوشته ها
    9
    تـــشـــکـــر
    1
    مورد پسند : 1 بار در 1 پست
    شبكه های Perimeter
    از يك فايروال می بايست در هر مكانی كه سرويس دهندگان شما با يك شبكه تائيد نشده تعامل دارند ، استفاده گردد . در صورتی كه سرويس دهندگان وب شما به يك شبكه back-end متصل می شوند ( نظير سرويس دهندگان بانك اطلاعاتی ) ، می بايست دو شبكه را از يكديگر تفكيك نمود . محل استقرار سرويس دهندگان وب ( ناحيه وب ) در معرض ديد عموم قرار دارد . بديهی است كه بروز خطر در ناحيه فوق نمی بايست شبكه های درونی سازمان را با مشكل مواجه نمايد . به صورت پيش فرض ، شبكه Perimeter می بايست تمامی ارتباطات خروجی را بجز آنانی كه انتظارشان را داريم ، بلاك نمايد .
    مزايای يك شبكه Perimeter
    شبكه های Perimeter دارای مزايای زير می باشند :
    • هاست ها مستقيما" در معرض ديد شبكه های تائيد نشده نمی باشند .
    • سرويس های فعال تنها نقطه حملات خارجی می باشند .
    • از قوانين امنيتی می توان به منظور كنترل دستيابی بين شبكه ها استفاده نمود .
    معايب يك شبكه Perimeter
    شبكه های Perimeter دارای معايب زير می باشند :
    • پيچيدگی شبكه
    • مديريت و اختصاص آدرس IP
    • ايجاد هماهنگی لازم بين معماری برنامه و طراحی شبكه Perimeter
    خلاصه
    در اين مطلب به مسائل امنيتی مرتبط با فايروال اشاره گرديد . به منظور پيكربندی ايمن فايروال ، اقدامات متعددی را می بايست انجام داد :
    • نصب آخرين patch و نسخه های بهنگام شده : نرم افزار فايروال و سيستم عامل می بايست با استفاده از آخرين نسخه های امنيتی بهنگام گردند.
    • عضويت در خبرنامه امنيتی توليد كنندگان (سخت افزار، نرم افزار )
    • لاگ و مميزی : تمامی ترافيك مجاز می بايست ثبت و در فواصل زمانی مشخص بررسی گردد .
    • يكسان نمودن زمان و تاريخ فايروال با ساير تجهيزات شبكه ای
    • استفاده از يك سيستم فيلترينگ چند لايه
    • استفاده از شبكه های Perimeter ( در مواردی كه لازم است چندين شبكه به سرويس دهندگان دستيابی داشته باشند ) .
    • استفاده از فايروال در نقاطی كه شبكه شما با يك شبكه تائيد نشده تعامل دارد .
    در بخش پنجم به بررسی سوئيچ و ملاحظات امنيتی در ارتباط با آن و جمع بندی ايمن سازی شبكه خواهيم پرداخت .
    ________________________________________
    ايجاد يک ارتباط ايمن در برنامه های وب( بخش اول )
    پرداختن به مقوله امنيت در برنامه های وب با توجه به ماهيت اين نوع از برنامه ها و جايگاه آنان در ارائه سرويس ها و خدمات پيشرفته ای همچون تجارت الکترونيکی بسيار حايز اهميت است . زمانيکه در رابطه با امنيت برنامه های وب بحث می شود، می بايست بر روی دو محور اساسی متمرکز گرديد:
    • با استفاده از چه مکانيزمهائی می توان دستيابی کاربران به يک برنامه را کنترل و پس از شناسائی آنان ، امکان استفاده از برنامه را برای کاربران تائيد شده و متناسب با سطح دستيابی فراهم نمود؟
    • برخی از برنامه های وب ، اطلاعات حساس متعددی را از طريق محيط انتقال و زير ساخت ايجاد شده ، ارسال و يا دريافت می دارند . در اين رابطه از چه نوع مکانيزمهائی می بايست استفاده گردد تا اين اطمينان حاصل شود که اطلاعات حساس ارسالی (نظير اطلاعات مربوط به کارت های اعتباری ) ، توسط افراد غير مجاز قابل خواندن نبوده و امکان دستکاری آنان نيز وجود نداشته باشد.دريافت کننده اطلاعات، می بايست از صحت اطلاعات ارسالی،اطمينان حاصل نمايد . اين نوع از برنامه های وب ، نيازمند استفاده از يک ارتباط ايمن بين سرويس گيرنده و سرويس دهنده می باشند . وجود يک ارتباط ايمن بين سرويس گيرنده و سرويس دهنده در برنامه ها ی وب تجاری و يا سايت هائی که بر روی آنان کالا و يا خدماتی عرضه می گردد ، بسيار حائز اهميت بوده و از موارد حياتی در موفقيت آنان محسوب می گردد .
    در مجموعه مقالاتی که با عنوان "امنيت برنامه های وب " ارائه گرديد، اولين محور امنيتی در رابطه با برنامه های وب ، بررسی و در اين راستا با تمرکز بر روی پلت فرم دات نت مايکروسافت ، با روش های پياده سازی آن در برنامه های وب دات نت ، آشنا شديم . در مجموعه مقالاتی که ارائه خواهد شد ، به بررسی محور دوم امنيت در برنامه های وب خواهيم پرداخت . در اين رابطه لازم است در ابتدا با ملزومات لازم به منظور ايجاد يک ارتباط ايمن بين سرويس گيرنده و سرويس دهنده آشنا شده و در ادامه به بررسی نحوه پياده سازی يک ارتباط ايمن در برنامه های وب دانت نت ، خواهيم پرداخت .
    ضرورت ايجاد يک ارتباط ايمن بين سرويس گيرنده و سرويس دهنده
    همانگونه که اشاره گرديد ، برخی از برنامه های وب ، اطلاعات حساسی را از سرويس گيرنده اخذ و در ادامه ، اطلاعات دريافتی بر اساس زيرساخت موجود برای سرويس دهنده ارسال می گردد. سرويس گيرنده نيز ممکن است اطلاعات حساسی را ( اغلب به منظور تائيد دريافت ) برای سرويس گيرنده ارسال نمايد . بنابراين اين نوع از برنامه ها نيازمند وجود يک کانال ارتباطی ايمن به منظور مبادله اطلاعات می باشند . به منظور آشنائی بيشتر با اهميت و جايگاه يک ارتباط ايمن بين سرويس گيرنده و سرويس دهنده ، به بررسی تجارت الکترونيکی و از زاويه برنامه های وب و ارتباطات ايمن ، اشاره می گردد .
    اينترنت فرصتی استثنائی و طلائی را برای سازمان ها و موسسات ارائه دهنده کالا و يا خدمات فراهم نموده است که بتوانند با استفاده از زيرساخت موجود ، خدمات و يا کالای خود را در اخيتار متقاضيان و در عرصه جهانی قرار دهند .حجم فروش online در سال 2002 ، نشاندهنده رشد چشمگير تجارت الکترونيکی است : امريکا 47 / 43 ميليارد دلار ، اروپا 29 / 28 ميليارد دلار ، آسيای جنوب شرقی 15 ميليارد دلار ، امريکای لاتين 3 / 2 ميليارد دلار و افريقا ، 4 ميليون دلار . بر اساس گزارش DoC)Department of Commerce) امريکا ، فروش Online در سه ماهه چهارم سال 2002 بالغ بر 33 / 14 ميليارد دلار بوده که نسبت به مدت مشابه در سال 2001 ، بيش از 2 / 28 درصد رشد و نسبت به سه ماهه سوم سال 2002 ، بيش از 3 / 29 درصد را داشته است .
    عليرغم وجود مزايا و فرصت های تجاری online ، در اين رابطه چالش ها و مسائل خاصی وجود داشته که می بايست به دقت بررسی و راهکار مناسب برای آنان انتخاب گردد. بر اساس مطالعه ای که توسط موسسه Yankelovich Partners ، انجام شده است ، هشتاد و پنج درصد افراد شرکت کننده درنظر سنجی ، به اين موضوع اشاره داشته اند که آنان اطمينان لازم در خصوص ارسال شماره کارت اعتباری خود را در اينترنت ندارند. خريداران صرفا" پس از حصول اطمينان از وجود امنيت لازم ، اقدام به ارسال اطلاعات و خريد کالا و يا خدمات از طريق وب سايت ها ی مربوطه می نمايند. بديهی است شرط اوليه موفقيت سايت های تجاری Online ، افزايش ضريب اعتماد کاربران می باشد .در اين راستا، ايجاد يک زيرساخت ارتباطی ايمن ، جايگاه و اهميت خاص خود را پيدا می کند . به منظور ايمن سازی تجارت الکترونيکی ، می بايست از يک زيرساخت قابل اعتماد و ايمن ، استفاده گردد.
    با استفاده از رمزنگاری PKI) Public Key Infrastructure ) و تکنولوژی امضای ديجيتالی از طريق گواهينامه های ديجتالی SSL) Secure Sockets Layer) ، امکان تائيد کاربران ، پيوستگی و انسجام داده ها ، حصول اطمينان از عدم خواندن و يا دستکاری اطلاعات ارسالی و ساير ملزومات امنيتی لازم در خصوص تجارت الکترونيکی، فراهم می گردد .به منظور ايجاد يک زيرساخت ايمن برای فعاليت های تجاری ، به دو عنصر مهم زير نياز می باشد :
    • گواهينامه های ديجيتالی برای سرويس دهندگان وب تا امکان تائيد ، پيوستگی و محرمانگی اطلاعات در زمان رمزنگاری ، فراهم گردد .
    • يک سيستم مديريت پرداخت online ايمن که امکان فعاليت های تجاری online را برای وب سايت های مربوطه فراهم و بصورت اتوماتيک درخواست ها را مديريت نمايد (دريافت ، پردازش ، پرداخت ) .
    در ادامه با عناصر لازم به منظور ايجاد يک ارتباط ايمن بين سرويس گيرنده و سرويس دهنده ، آشنا خواهيم شد .
    رمزنگاری کليد عمومی و گواهينامه ديچِيتالی
    رمزنگاری کليد عمومی و سيستم زيربنائی SSL از جمله ملزومات مورد نياز برای هر زيرساخت مطمئن در تجارت الکترونيکی می باشند. رمزنگاری ، فرآيندی است که در آن اطلاعات بگونه ای تبديل می گردند که برای تمامی افراد ( به غير از گيرندگان تائيد شده )، نامفهوم و عملا" غيرقابل استفاده باشند . در فرآيند فوق ، از فرمول های رياضی (الگوريتم های رمزنگاری ) و اعداد ( کليد ) ، به منظور رمزنگاری و رمزگشائی اطلاعات استفاده می گردد .
    رمزنگاری کليد خصوصی ( private key )
    منداولترين نوع رمزنگاری مبتنی بر کليد ، رمزنگاری "کليد خصوصی" است . به اين نوع رمزنگاری ، متقارن ، سنتی ، رمز مشترک ، کليد رمز ، نيز گفته می شود . در اين نوع رمزنگاری ، فرستنده و گيرنده از کليد استفاده شده به منظور رمزنگاری اطلاعات ، آگاهی دارند. رمزنگاری کليدخصوصی ، گزينه ای مناسب به منظور مبادله اطلاعات بر روی اينترنت و يا ذخيره سازی اطلاعات حساس در يک بانک اطلاعاتی ، ريجستری و يا يک فايل می باشد . از روش فوق ، به منظورايمن سازی ارسال اطلاعات در شبکه های عمومی استفاده می گردد ( از گذشته تا کنون ) . ايده اوليه و اساسی در چنين سيستم هائی ، "اشتراک يک رمز" بوده و دو گروه شرکت کننده در مبادله اطلاعات ، بر روی يک "کليد رمزمشترک " ، با يکديگر توافق می نمايند. بدين ترتيب امکان رمزنگاری و رمزگشائی پيام ها برای هر يک از آنان با توجه به آگاهی از "کليد رمز " ، فراهم می گردد . شکل زير نحوه عملکرد رمزنگاری کليد خصوصی را نشان می دهد .

    رمزنگاری متقارن و يا کليد خصوصی دارای چندين نقطه ضعف می باشد. مبادله کليدهای رمز در شبکه های بزرگ امری دشوار و مشکل است .علاوه بر اين ، اشتراک کليدهای رمز ، مستلزم اين واقعيت است که فرستندگان و گيرندگان می بايست معتبر بوده و قبل از برقراری ارتباط ، آشنائی لازم را نسبت به يکديگر داشته باشند( با تمام افراديکه قصد ارتباط ايمن با آنان وجود داشته باشد ) . همچنين ، اين نوع سيستم های رمزنگاری ، نيازمند استفاده از يک کانال ايمن به منظور توزيع کليدهای " رمز" می باشند . در صورتيکه چنين کانال ايمنی وجود داشته باشد ، چرا از آن به منظور ارسال تمامی پيام رمز استفاده نشود ؟ درسيستم های مبتنی بر وب که دارای تعاملات گذرا و کاربران متعددی می باشند، به امکانات قدرتمندتری در ارتباط با رمزنگاری نياز خواهد بود.بنابراين ، رمزنگاری مبتنی بر کليد، عملا" به منظورايجاد يک ارتباط ايمن به تنهائی کافی نخواهد بود. توزيع و عرضه کليد ( يکی از مسائل مهم در ارتباط با مديريت کليد ) ، از جمله مسائل مهم و درعين حال موثر به منظور شناخت سيستم های رمزنگاری جديد می باشد. رمزنگاری کليد خصوصی دارای نقشی مهم در پروتکل SSL است( به همراه رمزنگاری کليد عمومی نامتقارن ) .
    رمزنگاری کليد عمومی ( Public Key )
    رمزنگاری کليد عمومی که از آن با نام رمزنگاری نامتقارن نيز ياد می گردد ، دارای يک تفاوت مهم با رمزنگاری کليد خصوصی است . رمزنگاری کليد عمومی از دو کليد متفاوت استفاده می نمايد : يک کليد برای رمزنگاری و کليدی ديگر برای رمزگشائی . در رمزنگاری کليد خصوصی ، فرض بر اين است که فرستنده و گيرنده دارای آگاهی لازم دررابطه با کليد استفاده شده در فرآيند رمزنگاری می باشند . در رمزنگاری کليد عمومی ، با استفاده از يک روش کاملا" ايمن يک کليد برای ارسال کننده اطلاعات ايجاد و وی با استفاده از کليد فوق ، اقدام به رمزنگاری و ارسال پيام رمز شده برای گيرنده می نمايد . امکان رمزگشائی پيام رمز شده صرفا" توسط دريافت کننده ، امکان پذير خواهد بود. در رمزنگاری کليد عمومی ، سيستم يک زوج کليد خصوصی و عمومی ايجاد می نمايد . کليد عمومی برای شخصی که از آن به منظور رمزنگاری يک پيام استفاده می نمايد ، ارسال می گردد. وی پس از رمزنگاری پيام با استفاده از کليد عمومی که دراختيار دارد ، پيام رمز شده را ارسال می نمايد . دريافت کننده با استفاده از کليد خصوصی ، اقدام به رمزگشائی پيام می نمايد .( ماهيت کليد خصوصی استفاده شده در رمزنگاری کليد عمومی ، مشابه کليد خصوصی استفاده شده در رمزنگاری کليد خصوصی نمی باشد ) .حتی اگر يک فرد مزاحم ، به کليد عمومی دستيابی پيدا نمايد وی نمی تواند با استفاده از آن اقدام به رمزگشائی پيام رمز شده نمايد ، چراکه رمزگشائی پيام ، صرفا" با استفاده از کليد خصوصی امکان پذير می باشد . برخلاف رمزنگاری کليد خصوصی ، کليد های استفاده شده در رمزنگاری کليد عمومی چيزی بمراتب بيشتر از رشته های ساده می باشند . کليد در اين نوع رمزنگاری دارای يک ساختار خاص با هشت فيلد اطلاعاتی است : از دو فيلد آن به منظور رمزنگاری با استفاده از کليد عمومی استفاده می گردد و شش فيلد ديگر به منظور رمزگشائی پيام با استفاده از کليد خصوصی مورد استفاده قرار می گيرد. در سيستم رمزنگاری کليد عمومی با توجه به عدم ضرورت مبادله رمز مشترک ، اولين مسئله در مديريت کليد برطرف می گردد. رمزنگاری کليد عمومی ، شامل مراحل زير است :
    • مرحله اول : وب سايت مورد نظر ، يک زوج کليد عمومی و خصوصی را ايجاد می نمايد .

    • مرحله دوم : وب سايت موردنظر ، کليد عمومی را برای کاربر ارسال می نمايد .

    • مرحله سوم : کاربر از کليد عمومی به منظور رمزنگاری داده مورد نظر خود استفاده می نمايد ( مثلا" شماره کارت اعتباری)

    • مرحله چهارم : کاربر پيام رمز شده ( در اين مثال عدد رمز شده ) را برای سرويس دهنده ارسال می نمايد .

    • مرحله پنجم : سرويس دهنده با استفاده از کليد خصوصی ، پيام رمز شده دريافتی را رمزگشائی می نمايد .

    سيستم های مدرن رمزنگاری : يک رويکرد ترکيبی
    در سيستم های جديد رمزنگاری از ترکيب رمرنگاری مبتنی بر کليد عمومی و کليد خصوصی ، استفاده می گردد. هر يک از روش های فوق دارای مزايای خاص خود بوده که با استفاده و ترکيب مزايای موجود در هر يک می توان يک مدل جديد رمزنگاری را ايجاد نمود. حجم عمليات محاسباتی در مدل رمزنگاری کليد عمومی بالا می باشد ( در مقايسه با مدل رمزنگاری کليد خصوصی ) . با توجه به سرعت مناسب مدل رمزنگاری کليد خصوصی ( متقارن ) در رابطه با حجم گسترده ای از اطلاعات ، در سيستم های رمزنگاری پيشرفته ، عموما" از مدل رمزنگاری کليد عمومی به منظور عرضه کليد استفاده شده و در ادامه از مدل رمزنگاری خصوصی به منظور رمزنگاری حجم بالائی از اطلاعات استفاده می گردد . از سيستم های پيشرفته رمزنگاری در پروتکل SSL و به منظور ايمن سازی تراکنش های وب و يا ايمن سازی مدل نامه های الکترونيکی نظير S/MIME که در محصولاتی نظير مرورگر نت اسکيپ و IE پيش بينی شده است ، استفاده می گردد .
    مسئله مديريت کليد
    در هر سيستم رمزنگاری ،مجموعه ای از مسائل عملی و سوالات مختلف در رابطه با وجود امنيت لازم ، ميزان اعتماد پذيری سيستم و رعايت حريم اطلاعات خصوصی ، مطرح می گردد. روش های رمزنگاری کليد عمومی و خصوصی که به آنان اشاره گرديد، دارای امکانات لازم به منظور پاسخگوئی وارائه اطمينان لازم در خصوص امنيت اطلاعات می باشند . مثلا" مرورگرهای وب از کليد عمومی يک وب سايت به منظور ارسال شماره کارت اعتباری برروی وب استفاده می نمايند . با روشی مشابه ، شخصی که به فايل ها و يا اطلاعات حفاظت شده و رمز شده دستيابی پيدا می نمايد ، می تواند با استفاده از يک کليد خصوصی ، اقدام به رمزگشائی آنان نمايد . در عمل ، هر يک از مسائل فوق ، نيازمند استفاده از يک کليد عمومی تضمين شده بوده که با استفاده از آن صحت عمليات رمزنگاری بين دو طرف درگير در فرآيند رمزنگاری تضمين و امکان دخالت افراد غير مجاز نيز سلب گردد . رويکرد فوق ، سوالات متنوع ديگری را ذهن ايجاد می نمايد :
    • چگونه می توان اطمينان حاصل نمود که کليد عمومی استفاده شده توسط مرورگر به منظور ارسال اطلاعات کارت اعتباری ، همان کليد عمومی مورد نظر وب سايت دريافت کننده اطلاعات کارت اعتباری می باشد؟ ( کليد عمومی تقلبی نباشد ) .
    • چگونه می توان با اطمينان اقدام به مبادله کليدهای عمومی خود برای متقاضيان نمود تا آنان با استفاده از آن اقدام به رمزنگاری و ارسال اطلاعات نمايند ؟
    به منظور پاسخگوئی به اين نوع از سوالات و رفع نگرانی های موجود ، می بايست فرآيند نسبت دهی يک کليد عمومی ( يک ارتباط ايمن با يک کليد عمومی ، آغاز می گردد) به يک entity ( يک شی دلخواه که در يک تراکنش فعاليت دارد ) بصورت ايمن و مطمئن انجام شود ( Secure Binding ) .
    در بخش دوم اين مقاله با امضای ديجيتالی ، گواهينامه های ديجيتالی X.509 ، گواهينامه ديجيتالی سرويس دهنده SSL و پروتکل SSL ، آشنا خواهيم شد.
    ايجاد يک ارتباط ايمن در برنامه های وب ( بخش دوم )
    در بخش اول اين مقاله به ضرورت های وجود يک ارتباط ايمن بين سرويس گيرنده و سرويس دهنده اشاره و به بررسی برخی از ملزومات مورد نياز پرداخته گرديد. در بخش دوم اين مقاله به بررسی امضای ديجيتال و گواهينامه های ديجيتالی ، خواهيم پرداخت .برای ايجاد امنيت به چهار مولفه نياز می باشد : رمزنگاری ، الگوريتم های Hash ، امضای ديجيتال و گواهينامه های ديجيتال
    رمزنگاری ، فرآيندی است که هدف اصلی آن تبديل اطلاعات بگونه ای است که برای تمامی افراد بجزء افراد تائيد شده ، اطلاعات نامفهوم و عملا" غيرقابل استفاده باشد . در فرآيند فوق ، از فرمول های رياضی (الگوريتم های رمزنگاری ) و اعداد ( کليد ) ، به منظور رمزنگاری و رمزگشائی اطلاعات استفاده می شود . الگوريتم های رمزنگاری به دو گروه عمده تقسيم می گردند :
    • الگوريتم های محدود : در اين نوع الگوريتم ها ، محور امنيت اطلاعات بر محرمانه نگه داشتن الگوريتم استفاده شده در فرآيند رمزنگاری استوار است .
    • الگوريتم های مبتنی بر کليد : در اين نوع الگوريتم ها ، کليد محرمانه تلقی شده و الگوريتم می تواند در دسترس عموم باشد . در اين رابطه از دو مدل رمزنگاری عمده استفاده می گردد :
    کليد خصوصی ( متقارن ) : فرستنده و گيرنده از يک کليد يکسان به منظور رمزنگاری و رمزگشائی استفاده می نمايند .
    کليد عمومی ( نامتقارن ) : به ازای هر کاربر از دو کليد استفاده می شود. يکی از کليدها عمومی بوده و در دسترس همگان قرار داشته و کليد دوم بصورت محرمانه می باشد.
    ويژگی مدل رمزنگاری کليد خصوصی
    • رمزنگاری و رمزگشائی داده با استفاده از کليد يکسانی انجام می شود .
    • تمامی کاربرانی که در يک گروه عضويت داشته و قصد اشتراک داده را بين خود دارند ، می بايست دارای کليد يکسانی باشند .
    • در صورتيکه يک کليد د چار مشکل گردد ( لورفتن ) ، تمامی کليد ها می بايست تعويض و با کليدی جديد جايگزين گردند .
    • مهمترين مسئله در ارتباط با اين مدل رمزنگاری ، عدم وجود امنيت لازم به منظور توزيع کليد است . . .
    ويژگی مدل رمزنگاری کليد عمومی
    • عدم استفاده از کليدهای مشابه
    • هر کاربر دارای يک زوج کليد ( عمومی ، خصوصی ) می باشد . از کليد عمومی به منظور رمزنگاری داده و از کليد خصوصی به منظور رمزگشائی داده استفاده می گردد.
    • اين مدل رمزنگاری تقريبا" 500 مرتبه کندتر از رمزنگاری کليد خصوصی ( متقارن ) است .
    • از مدل رمزنگاری عمومی به منظور مبادله کليد خصوصی و امضای ديجيتال استفاده می شود .
    • شکل زير ، فرآيند رمزنگاری مبتنی بر کليد عمومی بين دو کاربر را نشان می دهد :

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

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

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

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

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

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

    مراکز CA ، دارای ويژگی های زير می باشند :
    • در صورت تائيد CA صادرکننده گواهينامه توسط کاربر ، امکان تائيد گواهينامه نيز وجود خواهد داشت .
    • مسئوليت تائيد و معتبرسازی تمامی مشترکين
    • مسئوليت صدور و مديريت گواهينامه ها ( درخواست های ارسالی توسط نامه الکترونيکی و يا اينترفيس های وب ) .
    • مسئوليت ابطال و يا تمديد گواهينامه های صادر شده
    • مسئوليت ايجاد سياست ها و رويه ها
    • چندين CA می تواند در يک ساختار سلسله مراتبی وجود داشته باشد. در صورتيکه CA ريشه معتبر شناخته گردد، هر يک از مراکز CA در سطوح پائين تر نيز معتبر شناخته خواهند ش.د
    مشاهده گواهينامه های ديجيتال
    برای مشاهده آخرين وضعيت گواهينامه های ديجيتال بر روی سيستم خود ، برنامه IE را فعال نموده و از طريق منوی Tools گزينه Internet Options را فعال و درادامه با انتخاب Content Tab و فعال نمودن Certificate می توان از وضعيت گواهينامه های ديجيتال ، آگاهی يافت .
    در بخش سوم اين مقاله به بررسی پروتکل SSL ، خواهيم پرداخت .
    ________________________________________
    ايجاد يک ارتباط ايمن در برنامه های وب (بخش سوم)
    آنچه تاکنون گفته شده است :
    • بخش اول ضرورت ها ی وجود يک ارتباط ايمن بين سرويس گيرنده و سرويس دهنده
    • بخش دوم : بررسی امضای ديجيتال و گواهينامه های ديجيتالی
    در بخش سوم اين مقاله به بررسی موارد اشاره شده در دو مقاله قبل و از زاويه ديگر پرداخته و با پارامترهای لازم به منظور انتقال اطلاعات حساس در يک شبکه بيشتر آشنا خواهيم شد. انتقال اطلاعات حساس بر روی يک شبکه مستلزم بکارگيری مکانيزمی است که سه ويژگی زير را تضمين نمايد:
    • امنيت : داده ارسالی نمی بايست توسط افراد غير مجاز، استفاده ( خواندن ) گردد .
    • هويت : افراد شرکت کننده در ارتباط همان افرادی می باشند که ادعا می نمايند .
    • غيرجعلی بودن اطلاعات : داده دريافت شده در مقصد با داده ارسال شده در مبداء يکسان بوده و اطلاعات دستکاری نشده باشد.
    ویرایش توسط a00b : 24.06.2016 در ساعت 01:05 دلیل: حذف لینک

  4. Top | #4
    کاربر تازه وارد

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

    رمزنگاری کليد عمومی و امنيت
    روش رمزنگاری کليد عمومی ، مبتنی بر رابطه رياضی بين کليدهای عمومی و خصوصی بوده و دارای قدرت مناسب و تضمين لازم در خصوص ارائه امنيت بالا در مقابل تهاجمات اطلاعاتی است .ارتباط رياضی بين کليد عمومی و خصوصی بسيار پيچيده می باشد . رابطه موجود مبتنی بر مضرب اعداد بزرگ است . مضرب استفاده شده يک عدد دويست رقمی می باشد که با توجه به امکانات سخت افزاری موجود به چهار ميليارد سال زمان به منظور تشخيص ارتباط موجود بين دو کليد ، نياز می باشد( با اين فرض که زمان اجرای هر دستورالعمل يک ميکروثانيه در نظر گرفته شود) . همانگونه که ملاحظه می گردد امنيت روش رمزنگاری فوق ، بسيار بالا می باشد.رمزنگاری کيلد عمومی، زيرساخت اساسی و اوليه در يک ارتباط ايمن بر روی يک شبکه را فراهم نموده و از آن در پروتکل های ارتباطی ايمن نظير SSL)Secure Socket Layer) استفاده می گردد. پروتکل SSL ، يک مدل handshake امنيتی است که از آن به منظور ارائه يک ارتباط ايمن بين سرويس دهنده و سرويس گيرنده ، استفاده می گردد .
    رمزنگاری کليد عمومی و تشخيص هويت
    رمزنگاری کليد عمومی عليرغم دارا بودن پتانسيل لازم در خصوص ايجاد يک ارتباط ايمن ،تضمين لازم در خصوص اينکه فرستنده همان شخصی است که ادعا می نمايد را ارائه نمی نمايد .در چنين وضعيتی ، به مدلی به منظور بررسی و تائيد هويت افراد ، نياز می باشد.فرض کنيد شما نامه ای الکترونيکی را از شخصی دريافت نموده ايد که می دانيد متعلق به يکی از دوستانتان است . به منظور ممانعت از خواندن متن نامه توسط افراد غير مجاز ، از مدل رمزنگاری کليد عمومی که به آن اشاره گرديد ، استفاده می گردد. بدين ترتيب اطمينان لازم در خصوص عدم خواندن اطلاعات محرمانه شما توسط ساير افراد، حاصل می گردد. اما يک سوال باقی می ماند و آن اينکه چگونه مطمئن می گرديد که نامه ارسالی ، توسط دوست شما ارسال شده است ؟ کليد عمومی شما می تواند توسط هر شخص ديگر دريافت گردد و چنين شخصی می تواند خود را به عنوان دوست شما قلمداد نموده و يک نامه جعلی را برای شما ارسال نمايد . در چنين مواردی ، تشخيص هويت و شناسائی فرد ارسال کننده پيام بسيار حائز اهميت می باشد . صرفا" با حصول اطمينان از شناسائی و تائيد فرد ارسال کننده است که می توان به صحت نامه ارسال شده ، اطمينان نمود .
    موضوع فوق ، يکی از مسائل اساسی و مهم در برنامه های وب تجارت الکترونيکی محسوب می گردد . در چنين برنامه های تشخيص و شناسائی افراد درگير در يک ارتباط بسيار حائز اهميت می باشد . کاربران تمايل دارند که از سايت هائی کالائی را خريداری نمايند که نسبت به هويت و معتبر بودن آنان اطمينان لازم وجود داشته باشد و فروشندگان نيز می بايست اطمينان حاصل نمايند که مشتريان و خريداران آنان ، دقيقا" همان افرادی می باشند که ادعا می نمايند . به عبارت ديگر ، هويت خريداران کالا و يا خدمات می بايست قبل از خريد ،شناسائی و تائيد گردد . مسئله تشخيص هويت می تواند به به ساير موارد نيز تعميم يابد که در آن هدف تشخيص هويت فردی است که قفصد مبادله اطلاعات با آن وجود دارد . تشخيص هويت ، مکانيزمی به منظور شناسائی يک فرد ، سازمان ، شرکت و يا موسسه می باشد . در حقيقت از اين طريق يک موجوديت واقعی نظير انسان و يا يک شرکت به يک موجوديت اينترنتی نظير يک وب سايت ، يک مرورگر وب و يا يک برنامه پست الکترونيکی ، مپ می گردد .
    دراين رابطه و به منظور ارائه راهکار مناسب در جهت تشخيص هويت وشناسائی افراد درگير در يک ارتباط ، می توان از همان روش رمزنگاری کليد عمومی (نامتقارن) که در بخش قبل به آن اشاره گرديد، استفاده نمود. چيزی که با استفاده از کليد عمومی رمز می شود را می توان صرفا" با استفاده از کليد خصوصی رمزگشائی نمود. عکس حالت فوق نيز صادق است . يعنی چيزی که با استفاده از کليد خصوصی رمز می شود را می توان صرفا" با استفاده از کليد عمومی رمزگشائی نمود. بنابراين با تعويض نقش زوج کليد ( عمومی ، خصوصی ) می توان مکانيزمی را به منظور بررسی و تشحيص هويت افراد ايجاد نمود. فرستنده ، اقدام به ارسال پيامی می نمايد که با استفاده از کليد خصوصی خود آن را رمز نموده است ، گيرنده با استفاده از کليد عمومی فرستنده ، قادر به رمزگشائی پيام ارسالی می باشد . بدين ترتيب اطمينان لازم در خصوص دريافت پيام از صاحب واقعی مرتبط با کليد خصوصی ، فراهم می گردد. شکل زير نحوه تشخيص هويت افراد را نشان می دهد .

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

    فرآيند توليد امضای ديجيتالی برای يک سند، signing ناميده می گردد .فرآيند فوق ، محتوی يک سند را تغيير نداده و صرفا" يک امضای ديجيتالی توليد که می توان آن را همراه سند و يا بصورت جداگانه ارسال نمود.

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

    يک گواهينامه چيست ؟
    گواهيينامه ديجيتال ،رکوردی منحصربفرد مشتمل بر اطلاعاتی ضروری به منظور بررسی هويت يک فرد و يا يک سازمان می باشد . گواهينامه های ديجيتال از فرمت استاندارد X.509 تبعيت می نمايند . استاندارد فوق ، برخی از ملزومات موردنياز گواهينامه را تشريح می نمايد : فرمت نسخه استفاده شده توسط گواهينامه ، شماره سريال گواهينامه ، شناسه الگوريتم استفاده شده به منظور تائيد گواهينامه ،مرکز صادرکننده گواهينامه ، تاريخ صدور و سررسيد اعتبار گواهينامه ، مشخصات صاحب گواهينامه ، کليد عمومی صاحب گواهينامه ، امضای ديجيتال مرکز صادر کننده گواهينامه .
    هر يک از فيلدهای اطلاعاتی فوق متناظر با فيلدهای خاصی در ساختار تعريف شده برای يک گواهنيامه می باشد. گواهينامه ها ، ممکن است شامل اطلاعات ديگری نظير آدرس پستی ، آدرس پست الکترونيکی ، نام کشور ، سن ، جنسيت نيز باشند . اطلاعات اضافی فوق اختياری بوده و بستگی به نوع خاص گواهينامه دارد .

    مراکز صدور گواهينامه (CA:Certificate Authority )
    مراکز صدور گواهينامه که از آنان با عنوان CA نيز نام برده می شود ،مراکزی امين و معتبر بوده که مسئوليت تطبيق کليدها ی عمومی به منظور شناسائی و تائيد هويت را برعهده دارند. به عبارت ديگر ، مراکز فوق تعلق يک کليد عمومی خاص به يک کاربر معتبر را تائيد می نمايند . مراکز CA ، مسئوليت صدور ، ابطال و تمديد يک گواهينامه را برعهده دارند. مراکز CA ،همچنين می بايست رويه های بسيار دقيق و سختگيرانه ای را به منظور تائيد افراد و سازمان ها ئی که درخواست گواهنيامه می نمايند را نيز دنبال نمايند .بدين ترتيب ، پس از تائيد يک فرد و يا سازمان توسط يک مرکز معتبر و امين CA ، امکان تطبيق کليد ( انطباق کليد عمومی با کليد خصوصی مرتبط با آن ) آنان از يک مرکز ايمن ، فراهم می گردد. عملکرد چنين مراکزی نظير دفاتراسناد رسمی در اينترنت است .
    در ساختار گواهينامه ، دو فيلد اطلاعاتی مرتبط با CA نيز وجود دارد : نام صادرکننده گواهينامه و امضای ديجيتالی صادرکننده . وجود فيلدهای فوق در گواهينامه صادر شده ، تضمين لازم در خصوص تعلق کليد عمومی به صاحب آن را ارائه می نمايد.بدين ترتيب مسئله امين بودن از افراد به مراکز CA منتقل می گردد.وجود يک مرکز امين و معتبر ، از جمله مهمترين دلايل حضور CA ، محسوب می گردد . در حال حاضر ، سازمان های متعددی ، اقدام به صدور گواهينامه می نمايند و هر روز نيز تعداد آنان افزايش می يابد . زمانيکه دو کاربر و يا دو سازمان قصد مبادله گواهينامه را داشته باشند ، هر يک از آنان می تواند هويت طرف مقابل خود را با استفاده از تائيديه مراکز CA و گواهينامه های صادرشده توسط مراکز CA ، انجام دهد. هر گواهينامه شامل کليد عمومی مربوط به خود نيز می باشد ، بنابراين می توان از آن به منظور رمزنگاری داده برای ارسال به صاحب گواهينامه استفاده نمود. گواهينامه ها همچنين شامل امضای ديجيتال مرکز CA صادرکننده گواهينامه نيز می باشند. يک امضای ديجيتال با استفاده از کليد خصوصی مولف سند ايجاد می گردد . بنابراين به منظور بررسی يک گواهينامه که توسط يک مرکز CA خاص تائيد شده است ، به کليد عمومی مرکز CA نيز نياز خواهد بود. کليد ها ی عمومی اکثر مراکز CA به همراه مرورگرها ، برنامه های پست الکترونيکی و ساير پکيج های نرم افراری توزيع می گردد .
    انواع گواهينامه ها
    در اينترنت از چهار نوع گواهينامه ديجيتال استفاده می گردد که هر يک دارای حوزه عملکردی خاص خود می باشند :
    • گواهينامه های سرويس دهنده ، که از آنان با نام Server IDs نيز نام برده می شود،به سرويس دهندگان امکان استفاده از يک پروتکل ايمن ارتباطی نظير SSL را خواهند داد . گواهينامه های فوق ، امکان شناسائی سرويس دهنده و يا وب سايت مربوطه را برای کاربران نيز فراهم می نمايد( قبل از ارسال اطلاعات محرمانه توسط کاربران ) .
    • گواهينامه های شخصی ، مسوليت شناسائی افراد را برعهده داشته و ممکن است به منظور تائيد کاربران در يک سرويس دهنده و يا فعال نمودن نامه الکترونيکی ايمن، مورد استفاده قرارگيرند.
    • گواهينامه های ناشر نرم افزار ، به منظور تائيد نرم افزارهای توزيع شده بر روی اينترنت استفاده می گردند.
    • گواهينامه های مراکز CA ، باعث شناسائی يک CA می گردند. مراکز CA را می توان به دو گروه عمده تقسيم نمود : مراکز CA ريشه و مراکز CA ميانی . تفاوت بين اين دو گروه بشرح زير است :
    يک مرکز CA ريشه ، قادر به صدور هر نوع گواهينامه بوده و شناسائی و تائيد آنان توسط خود مرکز انجام می شود. يک مرکز CA ميانی ، قادر به صدور هر نوع گواهينامه بجزء يک گواهينامه برای خودش ، می باشد.گواهينامه صادر شده توسط يک مرکز CA ريشه ، تنها نوع گواهينامه ای است که صادرکننده و مالک گواهينامه متعلق به يک محل بوده و مشابه يکديگر می باشند. اينچنين مراکز ، می توانند برای يک مرکز CA ميانی ديگر ، گواهينامه صادر نمايند و يک مرکز CA ميانی نيز می تواند يک گواهينامه برای يک مرکز CA ميانی ديگر صادر نمايد . نوع گواهينامه صادر شده توسط يک مرکز CA برای مرکز CA ديگر ، گواهينامه CA ناميده می شود . ماحصل فرآيند فوق ، ايجاد يک ساختار سلسله مراتبی CA است . يکی از مزايای مهم ساختار سلسله مراتبی فوق ، بررسی و تائيد گواهينامه در تعدادی اندک از مراکز ريشه CA ، می باشد. به عبارت ديگر در صورتيکه يک مرکز CA تائيد گردد ، تمامی مراکز زيرمجموعه ( مراکز ميانی CA ) نيز تائيد خواهند شد .
    دريافت يک گواهينامه سرويس دهنده
    در صورتيکه تصميم به گرفتن يک گواهينامه وجود داشته باشد ، می بايست با يک مرکز CA تماس گرفته شود. فرآيند دريافت يک گواهينامه که Enrollment ( ثبت نام ) ناميده می شود ، با توجه به نوع گواهينامه متفاوت می باشد . همانگونه که اشاره گرديد ، يک گواهينامه سرويس دهنده ، مسئوليت شناسائی يک سرويس دهنده را با استفاده از پروتکل SSL برای يک ارتباط ايمن بر روی وب ، برعهده دارد. زمانيکه يک مرورگر ارتباط خود را با يک سرويس دهنده وب تائيد شده از طريق پروتکل HTTPS ( نسخه ايمن پروتکل HTTP ) برقرار می نمايد ، کليد عمومی سرويس دهنده را از طريق گواهينامه مربوطه خود دريافت می نمايد . بدين ترتيب مرورگر ، قادر به شناسائی ايمن صاحب سرويس دهنده و استفاده از کليد عمومی وی به منظور رمزنگاری داده می باشد .به منظور فعال نمودن يک سرويس دهنده وب برای استفاده از SSL و گواهينامه ها ، می بايست يک رويه خاص با توجه به نوع سرويس دهنده وب و مرکز صادر کننده CA ، دنبال گردد. مراحل دريافت يک گواهينامه به شرح ذيل می باشد :
    • يک گواهينامه سرويس دهنده به يک Domain اينترنت نسبت داده می شود ، بنابراين لازم است از ثبت Domain وب سايت مربوطه ، اطمينان حاصل نمود ( قبل از اقدام به دريافت يک گواهينامه می بايست Domain ثبت گردد) .
    • با استفاده از ابزارهای ارائه شده همراه نرم افزار سرويس دهنده ، می بايست يک زوج کليد و يک Certificate Signing Request )CSR) ، ايجاد گردد. ماحصل عمليات فوق توليد کليد خصوصی و عمومی مرتبط با سرويس دهنده می باشد . فرآيند فوق بسيار مهم می باشد ، چراکه CSR توليد شده شامل يک نسخه از کليد عمومی سرويس دهنده می باشد .در زمان توليد CSR ، می بايست اطلاعات ديگری نظير URL وب سايت ، نام شرکت و يا سازمان متقاضی و آدرس مربوطه ، نيز مشخص گردد. ماحصل عمليات فوق ، يک فايل ASCII بوده که شامل درخواست گواهينامه با استفاده از يک فرمت شناخته شده با نام PKCS#10 می باشد .
    • در ادامه،می توان CSR را به مرکز CA انتخاب شده ، ارسال نمود.بدين منظور می توان از روش های متفاوتی نظير ارسال توسط نامه الکترونيکی و يا استفاده از فرم های ثبت نام Online موجود بر روی وب سايت مرکز CA ، استفاده نمود.
    • پس از ارسال CSR به مرکز CA ،بررسی لازم در خصوص اطلاعات انجام و در صورت لزوم درخواست اطلاعات تکميلی می گردد. پس از اتمام مراحل بررسی ، CA يک گواهينامه را بهمراه اطلاعات ذيربط نظير : کليد عمومی ، تاريخ سررسيد و ساير موارد ، صادر و آن را با استفاده از کليد خصوصی خود ، Sign و در ادامه آن را برای متقاضی ارسال و يا بر روی يک وب سايت مستقر تا امکان دريافت آن فراهم گردد.گواهينامه دريافت شده يک فايل ASCII شامل داده با فرمت استاندارد PKCS#7 ، می باشد.
    • در مرحله آخر، می بايست گواهينامه صادر شده بر روی سرويس دهننده وب ، نصب گردد. بدين منظور می توان از مستندات ارائه شده به همراه سرويس دهنده وب استفاده نمود.به منظور حفاظت از گواهينامه صادرشده ، لازم است يک نسخه Backup از آن تهيه گردد. در صورتيکه گواهينامه سرويس دهنده گم گردد ، می بايست يک CSR جديد ارسال و مراحل فوق مجددا" تکرار گردد.
    در بخش چهارم اين مقاله با پروتکل SSL آشنا خواهيم شد .
    ________________________________________
    ايجاد يک ارتباط ايمن در برنامه های وب (بخش چهارم)
    آنچه تاکنون گفته شده است :
    • بخش اول ضرورت وجود يک ارتباط ايمن بين سرويس گيرنده و سرويس دهنده
    • بخش دوم : بررسی امضای ديجيتال و گواهينامه های ديجيتالی
    • بخش سوم : بررسی پارامترهای لازم به منظور انتقال اطلاعات حساس در يک شبکه
    در بخش چهارم اين مقاله به بررسی پروتکل SSL ، خواهيم پرداخت.
    مبادله اطلاعات در اينترنت مبتنی بر پروتکل TCP/IP بوده که در آن از پروتکل های متعددی نظير HTTP (Hypertext Transfer Protocol )، Telnet و( FTP(File Transfer Protocol ، استفاده می گردد . پروتکل های فوق ، گزينه مناسبی برای ايجاد يک ارتباط ايمن نمی باشند ، چراکه مبادله اطلاعات به صورت Plaintext انجام می شود . اطلاعات محرمانه و يا حساسی که با استفاده از اينچنين پروتکل هائی منتقل می گردد ، بسادگی قابل ره گيری و خواندن بوده و در اين رابطه لازم است ،اطلاعات ارسالی با استفاده از روش های متفاوت رمزنگاری ، رمز گردند. سرويس گيرندگان وب ، درخواست های خود را با استفاده از پروتکل HTTP برای سرويس دهندگان وب ارسال می نمايد . مبادله اطلاعات با استفاده از پروتکل فوق و با توجه به ماهيت آن ، چالش های امنيتی خاصی را برای سرويس دهندگان و سرويس گيرندگان به دنبال خواهد داشت . سرويس دهندگان وبی که صرفا" از استاندارد HTTP به منظور ارتباط با سرويس گيرندگان استفاده می نمايند ، اهداف مناسبی برای حملاتی از نوع ( DoS (Denial-of-Service و ساير حملاتی از اين نوع می باشند. علاوه براين ، سرويس دهندگانی اينچنين، اهداف مناسبی برای سرويس دهندگان وب تائيد نشده محسوب خواهند شد. . اين نوع سرويس دهندگان ، وب سايت هائی می باشند که خود را به عنوان يک سايت مثبت وانمود کرده و نرم افزارهائی شامل ويروس های کامپيوتری و يا اسکريپت های مخرب را بر روی سايت مستقر تا کاربران با دريافت و نصب آنان ، دچار مشکلات امنيتی گردند.
    پروتکل های ارتباطی ايمن وب ، روشی به منظور تائيد سرويس گيرندگان و سرويس دهندگان بر روی وب وحفاظت لازم درخصوص محرمانگی ارتباط بين سرويس گيرندگان و سرويس دهندگان را ارائه می نمايند. تاکنون استانداردهای ارتباطی ايمن متعددی با استفاده از تکنولوژی رمزنگاری کليد عمومی ، پياده سازی شده است. پروتکل های Secure Hypertext Transfer Protocol ) SHTTP ، ( IP Security) IPSec) و PPTP نمونه هائی در اين زمينه می باشند . پروتکل ( SSL ( Secure Socket Layer ، پيشگام تمامی پروتکل های ايمن ارتباطی بوده که در ابعاد گسترده ای به منظور ارائه کانال ايمن ارتباطی و مبادله اطلاعات حساس و محرمانه بر روی وب ، استفاده می گردد .
    در پروتکل SSL از مدل رمزنگاری کليد عمومی به عنوان زيرساخت اوليه و در جهت ارائه يک ارتباط ايمن در شبکه استفاده می شود.گواهينامه های سرويس دهنده ، که از آنان با نام Server IDs نيز نام برده می شود،به سرويس دهندگان امکان استفاده از يک پروتکل ايمن ارتباطی نظير SSL را داده و همچنين ، امکان شناسائی سرويس دهنده و يا وب سايت مربوطه نيز برای کاربران و قبل از ارسال اطلاعات محرمانه ، فراهم می گردد . لازم است به اين موضوع مجددا" اشاره گردد که وجود يک کانال ارتباطی ايمن يکی از مهمترين عوامل در ارتباط با گسترش تجارت الکترونيکی محسوب می گردد. حصول اطمينان از وجود يک ارتباط ايمن بين خريداران ( سرويس گيرندگان ) و ارائه دهندگان کالا و يا خدمات (سرويس دهندگان ) از مهمترين عوامل موفقيت در برپاسازی يک سايت تجارت الکترونيکی است . نقش و جايگاه پروتکل SSL در اين نوع سايت ها بسيار حياتی و تعيين کننده است . در ادامه با اين پروتکل بيشتر آشنا می شويم .
    پروتکل SSL
    پروتکل SSL ، توسط نت اسکيپ و با هدف مبادله ايمن اطلاعات بر روی اينترنت پياده سازی گرديده است . پس از گذشت مدت زمانی اندک ، پروتکل SSL به عنوان استانداردی در جهت تائيد وب سايت ها برای کاربران و سرويس دهندگان وب و به منظور مبادله اطلاعات رمز شده بين آنان ، مطرح گرديد . گواهينامه های سرويس دهنده از طريق مراکز صدور گواهينامه ها ( CA ) برای سازمان ها ، افراد و وب سايت ها ، صادر می گردد . مراکزصدور گواهينامه ها ، از روش های متفاوتی به منظور بررسی و حصول اطمينان از معتبر بودن گواهينامه کاربران ، استفاده می نمايند . گواهينامه ديجيتال SSL مربوط به مراکز معتبر صدور گواهينامه ، در تمامی مرورگرها ( نظير مرورگر وب مايکروسافت و مرورگر نت اسکيپ ) و سرويس دهندگان وب اصلی ، پيش بينی شده است. بدين ترتيب ، با نصب يک گواهينامه ديجيتال بر روی يک سرويس دهنده وب ، امکان استفاده از قابليت های SSL در زمان مبادله اطلاعات با مرورگرهای وب ، فراهم می گردد.گواهينامه های سرويس دهنده SSL به منظور برقراری يک ارتباط ايمن دو عمليات اساسی زير را انجام می دهند :
    • SSL Server Authentication ، گواهينامه های سرويس دهنده امکان شناسائی يک سرويس دهنده وب را برای کاربران فراهم می نمايند. مرورگرهای وب به صورت اتوماتيک ، بررسی لازم در خصوص اعتبار يک گواهينامه سرويس دهنده ، شناسه عمومی و صدور آن توسط يک مرکز صدور گواهينامه (CA ) معتبر را انجام می دهند.تائيد سرويس دهنده SSL ، امری حياتی برای ايمن سازی تراکنش های تجارت الکترونيکی بوده که در آن هر يک از کاربران شماره کارت اعتباری خود را بر روی وب ارسال و تمايل دارند در ابتدا بررسی لازم در خصوص هويت سرويس دهنده دريافت کننده را انجام دهند .
    • SSL Encryption ، گواهينامه های سرويس دهنده يک کانال ايمن به منظور مبادله اطلاعات بين مرورگر کاربر و يک سرويس دهنده وب را با استفاده از ارسال نرم افزار و رمزگشائی توسط نرم افزار دريافت کننده و حفاظت اطلاعات خصوصی در مقابل ره گيری اطلاعات برروی اينترنت را ارائه می نمايند. علاوه بر اين ، تمامی داده ارسالی از طريق يک ارتباط رمز شده SSL با استفاده از مکانيزم های لازم به منظور عدم دستکاری اطلاعات ، حفاظت می گردد. بدين ترتيب ، کاربران اطمينان لازم به منظور ارسال اطلاعات خصوصی و محرمانه خود را برای يک وب سايت پيدا می نمايند.
    نحوه عملکرد گواهينامه های سرويس دهنده SSL
    شناسه های سرويس دهنده (Server IDs) ، از مزايای SSL به منظور ارائه يک ارتباط ايمن بين وب سايت ها و مرورگرهای وب کاربران استفاده می نمايند. پروتکل SSL از ترکيب مدل رمزنگاری کليد عمومی و رمزنگاری سريع متقارن، استفاده می نمايد .فرآيند ايجاد يک ارتباط ايمن با برقراری يک SSL Handshake ، آغاز می گردد.در اين راستا ، سرويس دهنده خود را برای مرورگر کاربر تائيد نموده و در ادامه به سرويس دهنده و سرويس گيرنده اجازه داده می شود که با همکاری يکديگر کليدهای خصوصی لازم به منظور استفاده در رمزنگاری ، رمزگشائی و تشخيص عدم دستکاری داده را ايجاد نمايند .
    • سرويس گيرنده با يک سايت و به منظور دستيابی به يک URL ايمن ( يک URL که با https در مقابل http شروع شده است) ، ارتباط برقرار می نمايد . صفحه ايمن درخواستی ، می تواند يک فرم خريد Online باشد که در آن اطلاعات خصوصی کاربران، نظير : آدرس ، شماره تلفن و شماره کارت اعتباری اخذ می گردد.
    • مرورگر سرويس گيرنده بصورت اتوماتيک شماره نسخه SSL مرورگر ، تنظيمات رمز، داده توليد شده بصورت تصادفی و ساير اطلاعات مورد نياز به منظور برقراری يک ارتباط ايمن را برای سرويس دهنده ارسال می نمايد.
    • سرويس دهنده بصورت اتوماتيک پاسخ لازم را در اين رابطه داده و گواهيينامه ديجيتال ، شماره نسخه SSL سرويس دهنده ، تنظيمات رمز و ساير موارد مورد نياز را برای مرورگر سرويس گيرنده ،ارسال می نمايد .
    • مرورگر سرويس گيرنده بررسی لازم در خصوص اطلاعات موجود در گواهينامه سرويس دهنده را انجام می دهد :
    - آيا گواهينامه سرويس دهنده و تاريخ آن معتبر می باشند ؟
    - آيا مرکزی که گواهينامه را صادر نموده است ، يکی از مراکز صدورمعتبری است که گواهينامه آنان به همراه مرورگر ارائه شده است ؟
    - آيا کليد عمومی مرکز صادرکننده گواهينامه ( ايجاد شده درون مرورگر ) ، معتبر بودن امضای ديجيتالی صادر کننده را تائيد می نمايد ؟
    - آيا نام Domain مشخص شده توسط گواهينامه ديجيتال با نام واقعی Domain سرويس دهنده ، مطابقت می نمايد ؟
    در صورتی که ، سرويس دهنده تائيد نگردد به کاربر اعلام می گردد که امکان برقراری يک ارتباط رمزشده و مطمئن وجود ندارد .
    • در صورتی که سرويس دهنده بصورت موفقيت آميز تائيد گردد ، مرورگر سرويس دهنده يک "session key " منحصربفرد را به منظور رمزنگاری تمامی اطلاعات مبادله شده با سرويس دهنده با استفاده از مدل رمزنگاری کليد عمومی ، ايجاد می نمايد .
    • مرورگر سرويس گيرنده ، session key را با استفاده از کليد عمومی سرويس دهنده ( وب سايت مورد نظر ) ، رمز و آن را برای سرويس دهنده ارسال می نمايد. بدين ترتيب ، صرفا" سرويس دهنده قادر به خواندن session key ، خواهد بود .
    • سرويس دهنده با استفاده از کليد خصوصی مربوط به خود ، اقدام به رمزگشائی session key می نمايد .
    • مرورگر سرويس گيرنده در ادامه پيامی را برای سرويس دهنده ارسال و به وی اعلام می نمايد که پيام های آتی خود را با استفاده از session key رمز و ارسال می نمايد .
    • سرويس دهنده در ادامه ، پيامی را برای سرويس گيرنده ارسال و به وی اعلام می نمايد که پيام های آتی خود را با استفاده از session key رمز و ارسال می نمايد .
    • با اتمام مراحل فوق ، يک ارتباط ايمن مبتنی بر SSL بين سرويس گيرنده و سرويس دهنده برقرار می گردد . در ادامه پروتکل SSL به منظور رمزنگاری و رمزگشائی پيام ها از مدل رمزنگاری متقارن که بمراتب سريعتر نسبت به رمزنگاری کليد عمومی می باشد ، استفاده می نمايد .
    • پس از اتمام ارتباط بين سرويس دهنده و سرويس گيرنده ، session key حذف می گردد .
    مراحل فوق در زمان بسيار کوتاهی ( چندين ثانيه ) انجام و کاربران در اين رابطه ضرورتی به انجام عملياتی خاص نخواهند داشت . مرورگرهای نت اسکيپ و IE ، دارای مکانيزم های امنيتی از قبل تعبيه شده ای به منظوريشگيری در خصوص ارسال ناخواسته اطلاعات شخصی می باشند. در صورتی که کاربری قصد ارسال اطلاعات برای يک سايت غيرايمن ( سايتی که دارای يک گواهينامه سرويس دهنده SSL نمی باشد ) را داشته باشد ، مرورگر يک پيام هشداردهنده را نمايش خواهند داد :

    در صورتی که ، کاربران شماره کارت اعتباری و ساير اطلاعات خود را برای سايتی ارسال نمايند که دارای يک گواهينامه سرويس دهنده معتبر و يک ارتباط SSL می باشد ، پيام فوق نمايش داده نمی گردد . عليرغم اعتبار ارتباط ايمن ايجاد شده ، کاربران می توانند با توجه به نکات زير اطمينان لازم در خصوص ايمن بودن ارتباط برقرار شده با يک وب سايت را پيدا نمايند:
    • URL مشخص شده در پنجره مرورگر با https در مقابل http آغاز می گردد .
    • درمرورگر IE ، يک آيکون Podlock ، در قسمت پائين پنجره نمايش داده می شود .

    در صورت کليک بر روی آيکون فوق ، می توان اطلاعات جامعی را در ارتباط با گواهينامه مشاهده نمود .

    انواع SSL ( چهل بيتی و يکصدوبيست و هشت بيتی )
    پروتکل SSL به دو صورت 40 و 128 بيتی که به طول session key توليد شده بستگی دارد ، ارائه شده است . هر اندازه طول کليد بيشتر باشد ، امکان شکستن رمز مشکل تر خواهد بود . رمزنگاری SSL از نوع 128 بيتی ، قويترين نوع رمزنگاری بوده که با استفاده از تکنولوژی های موجود به ميلياردها سال زمان برای شکستن رمز آن نياز خواهد بود. قدرت رمزنگاری 128 بيتی تقريبا" 26 10 * 3 مرتبه قويتر از رمزنگاری 40 بيتی SSL است. مرورگرهای IE و نت اسکيپ ، سطوح متفاوتی از رمزنگاری را بر اساس نوع گواهينامه سرويس دهنده SSL ارائه می نمايند ( گواهينامه های سرويس دهنده SSL از نوع 40 بيتی ، گواهينامه های سرويس دهنده SSL از نوع 128 بيتی ) .
    در رمان ايجاد يک مشخصه سرويس دهنده ( Server ID ) و به منظور استفاده از رمزنگاری 128 بيتی می بايست کليد خصوصی به درستی ايجاد گردد. در صورتی که کليد خصوصوصی 1024 بيتی انتخاب گردد ، امکان رمزنگاری 128 بيتی و در صورتيکه کليد خصوصی 512 بيتی در نظر گرفته شود، صرفا" امکان رمزنگاری 40 بيتی وجود خواهد داشت . نوع کليد خصوصی در زمان ايجاد يک CSR) Certificate Signing Request ) به همراه سرويس دهنده وب ، مشخص می گردد .
    در بخش پنجم اين مقاله به بررسی مراحل لازم به منظور استفاده از SSL دربرنامه های وب دات نت ، خواهيم پرداخت .
    ________________________________________
    امنيت برنامه های وب ( بخش اول )
    هر برنامه کامپيوتری که برای اجراء در محيط شبکه، طراحی و پياده سازی می گردد ، می بايست توجه خاصی به مقوله امنيت داشته باشد .برنامه های وب از زيرساخت شبکه ( اينترانت ، اينترانت ) برای ارائه خدمات خود به کاربران استفاده نموده و لازم است نحوه دستيابی کاربران به اين نوع از برنامه ها ، کنترل و با توجه به سياست های موجود ، امکان دستيابی فراهم گردد .در ابتدا می بايست کاربران شناسائی و پس از تائيد هويت آنان ، امکان دستيابی به برنامه با توجه به مجوزهای تعريف شده ، فراهم گردد. ASP.NET ( پلات فرم مايکروسافت برای طراحی و پياده سازی برنامه های وب ) ، از سه روش عمده به منظور شناسائی کاربران و اعطای مجوزهای لازم در جهت دستيابی و استفاده از يک برنامه وب ، استفاده می نمايد :
    • Windows Authentication
    • Forms Authentication
    • Passport Authentication
    در مجموعه مقالاتی که ارائه خواهد شد به بررسی هر يک از روش های فوق در جهت پياده سازی امنيت در برنامه های وب خواهيم پرداخت . در بخش اول اين مقاله ، به بررسی نحوه برخورد ASP.NET با کاربران ناشناس ( Anonymous ) ، روش های متفاوت شناسائی کاربران و پارامترهای لازم در خصوص انتخاب يک استراتژی به منظور شناسائی کاربران با توجه به نوع برنامه ها ، خواهيم پرداخت .
    شناسائی و تائيد کاربران
    Authentication ، فرآيندی است که بر اساس آن کاربران شناسائی می گردند . Authorization ، فرآيند اعطای دستيابی به کاربران با توجه به هويت آنان می باشد . با تلفيق Authentication و Authorization، امکان ايمن سازی برنامه های وب در مقابل افراد مزاحم و غير مجاز ، فراهم می گردد .
    دستيابی از طريق کاربران ناشناس ( Anonymous )
    اغلب سايت های وب از روش دستيابی "Anonymous" ، استفاده می نمايند . در چنين مواردی ، اطلاعات موجود بر روی سايت جنبه عمومی داشته و امکان دستيابی تمامی کاربران به اطلاعات وجود خواهد داشت . اين نوع سايت ها ، ضرورتی به بررسی مجاز بودن کاربران برای استفاده از منابع موجود ، نخواهند داشت . برنامه های وب ASP.NET ، امکان دستيابی Anonymous را به منابع موجود بر روی سرويس دهنده توسط Impersonation ارائه می نمايند . Impersonation ، فرآيند نسبت دهی يک Account به يک کاربر ناشناس است . Account دستيابی Anonymous بصورت پيش فرض ، IUSER_computername ، می باشد. با استفاده از Account فوق ، امکان کنترل کاربران ناشناس که به منابع موجود بر سرويس دهنده دستيابی دارند ، وجود خواهد داشت . به منظور مشاهده و تغيير مجوزهای دستيابی در نظر گرفته شده برای Account فوق از برنامه Computer Management استفاده می گردد :
    • ورود به شبکه ( Logon ) به عنوان مديريت شبکه
    • اجرای Computer Management ( از طريق : Start | Programs | Administrator Tools )
    • انتخاب فولدر Users به منظور نمايش ليست کاربران
    • مشاهده گروههائی که Account فوق به عنوان عضوی از آنان می باشد( کليک بر روی Member of ) . کاربران Anonymous ، بصورت پيش فرض ، عضوی از گروه Guests بوده که دارای مجوزهای اندکی می باشد. ASP.NET از ASP.NET Account ( با توجه به تنظيمات پيش فرض) ، به منظور اجرای برنامه وب استفاده می نمايد . بدين ترتيب ، در صورتيکه برنامه ای سعی در انجام عملياتی نمايد که در ليست مجوزهای ASP.NET Account وجود نداشته باشد ، يک مورد خاص امنيتی بوجود آمده و امکان دستيابی آن تائيد نخواهد شد.
    به منظور اعمال محدوديت در دستيابی کاربران ناشناس می توان از تنظيمات مربوط به مجوزهای فايل ويندوز استفاده نمود . برای ايمن سازی ، سرويس دهنده می بايست دارای سيستم فايل NTFS باشد . سيستم های فايل FAT و يا FAT32 ، ايمن سازی در سطح فايل را ارائه نمی نمايند .
    دستيابی از طريق کاربران تائيد شده
    دستيابی Anonymous ، گزينه ای مناسب برای دستيابی به اطلاعات عمومی و عام است . در صورتيکه برنامه های وب شامل اطلاعاتی خاص و خصوصی باشند ، می بايست در ابتدا کاربران شناسائی و در ادامه با توجه به مجوزهای تعريف شده ، امکان دستيابی فراهم گردد. در برنامه های وب ASP.NET از سه روش عمده به منظور Authentication و Authorization کاربران استفاده می گردد :
    • Windows integrated authentication : در روش فوق ، شناسائی و تائيد کاربران بر اساس ليست کاربران تعريف شده بر روی سرويس دهنده انجام خواهد شد. در ادامه با توجه به مجوزها و امتيازات نسبت داده شده به هر Account ، امکان دستيابی و يا عدم دستيابی به منابع موجود بر روی سرويس دهنده ، فراهم می گردد.
    • Forms authentication : در روش فوق ، کاربران به يک فرم وب Logon ، هدايت می گردند . در ادامه ، اطلاعات مربوط به نام و رمز عبور آنان اخذ و فرآيند شناسائی و تائيد بر اساس يک لسيت کاربران و يا از طريق يک بانک اطلاعاتی که برنامه حمايت می نمايد ، انجام خواهد شد.
    • Passport authentication : در روش فوق ، کاربران جديد به يک سايت که توسط مايکروسافت ميزبان شده است ، هدايت می گردند .پس از ريجستر شدن کاربران ، امکان دستيابی آنان به چندين سايت ، فراهم خواهد شد( تمرکز در شناسائی کاربران و استفاده از سايت های متعدد با توجه به تائيد بعمل آمده ) .
    هر يک از رويکردهای فوق ، به همراه روش دستيابی Anonymous ، دارای مزايای مختص به خود بوده و برای نوع خاصی از برنامه های وب ، مناسب می باشند :
    • نوع برنامه : برنامه وب عمومی اينترنت
    روش تائيد کاربران : Anonymous
    توضيحات : روش عمومی دستيابی برای اغلب سايت های وب ، می باشد. در اين روش ، ضرورتی به Logon وجود نداشته و با استفاده از مجوزهای سيستم فايل NTFS ، می توان ايمن سازی منابعی را که قصد اعمال محدوديت در رابطه با دستيابی به آنان وجود دارد را انجام داد .
    • نوع برنامه : برنامه وب اينترانت
    روش تائيد کاربران : Windows integrated
    توضيحات : در روش فوق ، سيستم معتبر سازی ويندوز ، کاربران شبکه را از طريق کنترل کننده Domain ، تائيد می نمايد. امکان دستيابی به منابع برنامه های وب بر اساس مجوزهای تعريف شده بر روی سرويس دهنده ، برای هر يک از کاربران فراهم می گردد .
    • نوع برنامه : برنامه های وب تجاری
    روش تائيد کاربران : Forms
    توضيحات : برنامه هائی که نيازمند دريافت اطلاعات مالی می باشند ، می بايست از روش فوق به منظور اخذ و ذخيره سازی اطلاعات ، استفاده نمايند .
    • نوع برنامه : برنامه های متعدد تجاری
    روش تائيد کاربران : Passport
    توضيحات : در روش فوق ، کاربران يک مرتبه Sign in نموده ( از طريق يک مرکز تائيد کاربران ) و امکان دستيابی و استفاده آنان از تمامی برنامه هائی که از Passport SDK استفاده می نمايند ، وجود خواهد داشت . اطلاعات کاربران در يک Passport profile نگهداری خواهدشد ( در مقابل استفاده از يک بانک اطلاعاتی محلی ) .
    استفاده از Authentication در فايل های HTM و يا HTML
    سه روش تائيد کاربران که توسط ASP.NET ارائه شده است ، صرفا" در رابطه با فايل هائی که به عنوان بخشی از برنامه وب می باشند ، بکار گرفته می شود .فرم های وب ( فايل هائی با انشعاب aspx . ) ، ماژول ها ( فايل هائی با انشعاب asax . ) ، نمونه هائی در اين زمينه می باشند. فرآيند فوق ، صفحات HTML ( فايل هائی با انشعاب HTM و يا HTML ) را شامل نمی گردد و مسئوليت آن بصورت پيش فرض به IIS ( در مقابل ASP.NET ) واگذار شده است. در صورتيکه فصد تائيد کاربرانی ( استفاده از يکی از روش های Windows,Forms و Passport ) را داشته باشيم که به صفحات HTML از طريق برنامه وب دستيابی دارند ، می بايست اين نوع فايل ها به ASP.NET executable ، مپ گردند .به منظور مپ نمودن فايل های html به ASP.NET executable ، پس از اجرای IIS مراحل زير را دنبال می نمائيم :
    • انتخاب فولدر شامل برنامه وب و Properties از طريق Action Menu . در ادامه برنامه IIS ، جعبه محاوره ای Properties را نمايش خواهد داد .

    • بر روی Directory Tab کليک نموده و در ادامه گزينه Configuration را انتخاب می نمائيم . IIS در ادامه جعبه محاوره ای Application Configuration را نمايش خواهد داد :

    • بر روی دکمه Add کليک نموده و در ادامه IIS جعبه محاوره ای Add/Edit Application Extension Mapping را نمايش خواهد داد .

    • بر دکمه Browse کليک نموده و فايل aspnet_isapi.dll را انتخاب می نمائيم .فايل فوق در دايرکتوری Windows Microsoft .Net Framework قرار داشته و مسير آن مشابه زير است :
    Path for aspnet_isapi.dll
    C:\windows\Microsoft.NET\Framework\versionnumber\a spnet_isapi.dll
    • htm. را در فيلد File Extension تايپ می نمائيم .
    • مراحل فوق ، برای فايل های با انشعاب html ، تکرار می گردد.
    در بخش دوم اين مقاله به بررسی Windows Authentication خواهيم پرداخت .
    ________________________________________
    منيت برنامه های وب ( بخش دوم )
    در بخش اول اين مقاله ، به نحوه برخورد ASP.NET با کاربران ناشناس ( Anonymous ) ، روش های متفاوت شناسائی کاربران و پارامترهای لازم در خصوص انتخاب يک استراتژی به منظور شناسائی کاربران با توجه به نوع برنامه ها ، اشاره گرديد.در بخش دوم اين مقاله به بررسی Windows Authentication خواهيم پرداخت .
    همانگونه که در بخش اول اين مقاله اشاره گرديد ، برنامه های وب ASP.NET از سه روش عمده به منظور تائيد کاربران استفاده می نمايند :
    • Windows Authentication
    • Forms Authentication
    • Passport Authentication
    در Windows Authentication ، برنامه های وب مسئوليتی را در ارتباط با تائيد کاربران برعهده نگرفته و اين وظيفه تماما" به سيستم عامل ويندوز ، واگذار می گردد. فرآيند تائيد کاربران در روش فوق، بصورت زير است :
    • کاربر درخواستی مبنی بر دريافت يک صفحه وب ايمن را از برنامه وب ، می نمايد .
    • پس از دريافت درخواست توسط سرويس دهنده وب ، IIS عمليات بررسی صلاحيت کاربر را انجام خواهد داد . در اين راستا ، اطلاعات ارائه شده توسط کاربر در زمان logon ( نام و رمز عبور) ، با اطلاعات موجود بر روی سرويس دهنده وب و يا Domain ، مقايسه می گردد .
    • در صورتيکه پس از بررسی مدارک ارائه شده توسط کاربر ( نام و رمز عبور ) ، وی به عنوان کاربر غير مجاز تشخيص داده شود ، درخواست وی ناديده گرفته خواهد شد .
    • کامپيوتر سرويس گيرنده ، يک جعبه محاوره ای Logon را توليد و از کاربر درخواست درج اطلاعات مورد نياز ( نام و رمز عبور ) ، می گردد . پس از درج اطلاعات درخواستی توسط کاربر و ارسال آنان برای سرويس دهنده ، مجددا" IIS بررسی لازم در خصوص صحت آنان را انجام خواهد داد . در صورتيکه صحت اطلاعات ارسالی کاربر ( نام و رمز عبور ) تائيد گردد ، IIS درخواست اوليه کاربر را به سمت برنامه وب هدايت می نمايد .
    • در آخرين مرحله و پس از بررسی و تائيد صلاحيت کاربر ، صفحه وب درخواستی برای کاربر ارسال می گردد .
    مهمترين مزيت روش Windows Authentication ، استفاده مشترک از يک مدل امنيتی به منظور دستيابی به منابع موجود در شبکه و برنامه های وب است . پس از تعريف و اعطای مجوزهای لازم به کاربر ، امکان دستيابی وی به منابع موجود در شبکه و برنامه های وب بر اساس يک سيستم امنيتی مشابه و يکسان ، فراهم می گردد .

  5. Top | #5
    مدیریت کل سایت
    رعایت برخی مسائل برای جلوگیری از درز اطلاعات شخصیرعایت برخی مسائل برای جلوگیری از درز اطلاعات شخصیرعایت برخی مسائل برای جلوگیری از درز اطلاعات شخصیرعایت برخی مسائل برای جلوگیری از درز اطلاعات شخصیرعایت برخی مسائل برای جلوگیری از درز اطلاعات شخصیرعایت برخی مسائل برای جلوگیری از درز اطلاعات شخصیرعایت برخی مسائل برای جلوگیری از درز اطلاعات شخصی

    عنوان کاربر
    مدیر کل سایت
    تاریخ عضویت
    20.04.2013
    شماره عضویت
    1
    نوشته ها
    6,457
    تـــشـــکـــر
    19,006
    مورد پسند : 11,000 بار در 5,010 پست
    سلام خوش امدید دوست محترم
    خواهشمند است طبق قوانین کلمات را لینک نکنید ، تمام پست های شما ویرایش گردید و اکیدا از تکرار خودداری نمایید .
    سپاس.


  6. Top | #6
    کاربر تازه وارد

    عنوان کاربر
    کاربر تازه وارد
    تاریخ عضویت
    23.06.2016
    شماره عضویت
    3429
    نوشته ها
    9
    تـــشـــکـــر
    1
    مورد پسند : 1 بار در 1 پست
    نقل قول نوشته اصلی توسط ADMIN نمایش پست ها
    سلام خوش امدید دوست محترم
    خواهشمند است طبق قوانین کلمات را لینک نکنید ، تمام پست های شما ویرایش گردید و اکیدا از تکرار خودداری نمایید .
    سپاس.
    سلام.
    چشم
    انجام خواهد شد.

کلمات کلیدی این موضوع

انجمن قاطی , انجمن تفریحی مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  
انجمن قاطی , انجمن تفریحی
© تمامی حقوق برای انجمن تفریحی قاطی محفوظ میباشد. ثبت شده در ستاد ساماندهی جمهوری اسلامی ایران. میزبانی شده توسط سرور های قدرتمند وبمستر هاست .