امنيت برنامه های وب ( بخش اول )
هر برنامه کامپيوتری که برای اجراء در محيط شبکه، طراحی و پياده سازی می گردد ، می بايست توجه خاصی به مقوله امنيت داشته باشد .برنامه های وب از زيرساخت شبکه ( اينترانت ، اينترانت ) برای ارائه خدمات خود به کاربران استفاده نموده و لازم است نحوه دستيابی کاربران به اين نوع از برنامه ها ، کنترل و با توجه به سياست های موجود ، امکان دستيابی فراهم گردد .در ابتدا می بايست کاربران شناسائی و پس از تائيد هويت آنان ، امکان دستيابی به برنامه با توجه به مجوزهای تعريف شده ، فراهم گردد. 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 مراحل زير را دنبال می نمائيم :
-
بر دکمه Browse کليک نموده و فايل aspnet_isapi.dll را انتخاب می نمائيم .فايل فوق در دايرکتوری Windows Microsoft .Net Framework قرار داشته و مسير آن مشابه زير است :
|
Path for aspnet_isapi.dll |
|
C:\windows\Microsoft.NET\Framework\versionnumber\aspnet_isapi.dll |
-
htm. را در فيلد File Extension تايپ می نمائيم .
-
مراحل فوق ، برای فايل های با انشعاب html ، تکرار می گردد.
در بخش دوم اين مقاله به بررسی Windows Authentication خواهيم پرداخت .
---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------