امنیت

authentication چیست؛ تفاوت authentication و authorization

در این مقاله ابتدا به این موضوع می پردازیم که منظور از تایید هویت یا authentication چیست و چه تفاوتی با authorization دارد؟ و در ادامه در مورد مدل های مختلف Authentication صحبت می کنیم.

فهرست این مقاله ( با کلیک روی هر عنوان به آن قسمت منتقل می شوید) پنهان

authentication چیست؟

تایید هویت، یک روش امنیتی برای ورود به سایت و یا استفاده از برنامه های تحت وب می باشد . ولی همین چرخه تایید هویت ، خود ، دارای الگوریتم های متفاوتی برای جلوگیری از افشای رمز کاربر و حملات سایبری می باشد. بطور کلی Authentication سازوکاری است که هویت افراد را هنگام استفاده از وب سایت شما و یا یک برنامه تحت وب تایید می نماید. معمولا انتخاب اینکه افراد چگونه به محتوای سایت و یا برنامه ها دسترسی داشته باشند از سیاست هایی است که مدیران شبکه اتخاذ می کنند. برخی اوقات کاربران دارای یک اکانت و رمز عبور هستند و در بعضی مواقع بازدیدکنندگان عادی بوده و بدون اکانت و رمز عبور می توانند به سایت و مطالب آن دسترسی پیدا کنند.

تفاوت authentication و authorization

حال به بررسی تفاوت authentication و authorization می پردازیم. علاوه بر این، هنگامیکه شما از Authentication برای تایید هویت افراد در بدو ورود به سایت استفاده می نمایید در کنار آن از Authorization برای کنترل دسترسی آنها به بخش های مختلف سایت نیز استفاده می کنید. در واقع این دو سازوکار دو عمل متفاوت را انجام می دهند.

بعنوان مثال در یک شرکت مدیر بخش فروش و مدیر بخش فنی هردو دارای اکانت های مخصوص خود (با یک نوع تایید هویت که جلوتر توضیح داده خواهد شد.) برای ورود به وب سایت هستند، اما دسترسی آنها به محتوای سایت متفاوت است. مثلا مدیر بخش فنی نمی تواند فاکتورهای فروش و میزان فروش روزانه را مشاهده نماید و مدیر بخش فروش نیز به‌ همین ترتیب به اطلاعات فنی دسترسی نخواهد داشت. حال که با مفهوم authorization چیست آشنا شدیم در ادامه ی مقاله به بررسی شش روش امنیتی برای تایید هویت می پردازیم.

شش روش امنیتی برای تایید هویت در IIS7.5

چرخه تایید هویت ، خود ، دارای الگوریتم های متفاوتی برای جلوگیری از افشای رمز کاربر و حملات سایبری می باشد. منظور از ۶ روش نیز ، تفاوت الگوریتم ها و کدگذاری رمز ها می باشد. این روش ها عبارتند از :

مدیریت احراز هویت کاربران از طریق ماژول Authentication در IIS7.5

  • – Anonymous Authentication : تایید هویت بی نام ( بدون تایید هویت )
  • – Basic Authentication : تایید هویت پایه ای
  • – Digest Authentication : تایید هویت مختصر
  • – Windows Authentication : تایید هویت ویندوز
  • – Forms Authentication : تایید هویت فرم
  • – ASP .Net Impersonation : هویت دلخواه  ASP .Net

روش های دیگری را نیز میتوان بعنوان ماژول های Third party به این قسمت اضافه نمود. پس از نصب هر یک از ماژول ها ، برای استفاده از آنها نخست باید فعال گردند و سپس در سایت ، برنامه و یا سرویس های تحت وب استفاده شوند.

بطور پیشفرض در IIS 7.5 تایید هویت Anonymous فعال میباشد. برای غیر فعال نمودن آن ، در داخل صفحه IIS به قسمت Connections بروید. در این قسمت سایت خود را انتخاب نمایید. در سمت راست صفحه از قسمت Security گزینه Authentication را انتخاب کنید. در صفحه تنظیمات Authentication برروی گزینه Anonymous کلیک کنید. در سمت راست صفحه قاب Action نمایان می شود. از داخل آن برروی گزینه Disable کلیک نمایید. این روش تایید هویت، عموما به تمام کاربران و بازدیدکنندگان اجازه ورود به همه قسمت های سایت اعم از FTP و وب را میدهد. در ضمن با استفاده از این روش نیازی به اکانت و رمز عبور نمی باشد. با معرفی اکانت IUSR به IIS ، بطور پیشفرض دسترسی بی نام (Anonymous) داده شده است.

annynomous

در روش دوم (Basic Authentication) اکانت و رمز عبور جدا از هم (unencrypted) در شبکه فرستاده می شوند. این روش بطور گسترده در سطح استاندارد صنعتی برای جمع آوری اطلاعات اکنتها و رمزها بکار می رود. همچنین می توانید برای امنیت بیشتر Basic Authentication را با پروتکل SSL تلفیق نمایید. که در اینصورت اطلاعات کاربران بصورت امن در داخل و خارج شبکه رد و بدل می گردد. برای فعال نمودن Basic Authentication در داخل صفحه IIS به قسمت Connections بروید. در این قسمت سایت خود را انتخاب نمایید. در سمت راست صفحه از قسمت Security گزینه Authentication را انتخاب کنید. در صفحه تنظیمات Authentication برروی گزینه Basic کلیک کنید. در سمت راست صفحه قاب Action نمایان می شود. از داخل آن برروی گزینه Enable کلیک نمایید. در قاب Action گزینه دیگری بنام Edit وجود دارد. هنگامیکه بر روی این گزینه کلیک کنید پنجره جدیدی باز میشود. در داخل این پنجره دو قسمت بنام های Default Domain , Realm وجود دارد. در داخل Default Domain نام دامنه ی پیشفرض که از قبل ثبت شده و کاربر قصد ورود به آن را دارد وارد نمایید و در قسمت Realm نام حوزه امنیتی که باید تایید هویت برای آن انجام شود را بنویسید. ( برای خرید دامنه سایت می توانید از خدمات ایران هایت استفاده نمایید.)

احراز هویت ساده

Digest Authentication به اندازه ی Basic Auth. عمومیت ندارد اما برخلاف Windows Auth. و Basic Auth. دارای مزیت های بسیاری است.بزرگترین اشکالی که می توان به Basic Auth. گرفت اینست که اطلاعات کاربران بصورت پیام متنی base-64-encoded  برروی شبکه انتشار می یابد و اگر کاربر مزاحمی در این بین پیام ها را بازیابی کند، براحتی اطلاعات اکانت و رمز عبور را بدست خواهد آورد. از سوی دیگر Windows Auth. توانسته با راهکارهای امنیتی بر این نقطه ضعف غلبه کند اما چه بسا  Windows Auth. در محیط اینترنت کارایی ندارد. بر خلاف دو روشی که گفته شد Digest Auth. توانسته محدودیت های ذکر شده را پشت سر بگذارد. بطور کلی در روش Digest Auth. اطلاعات اکانت و رمز عبورکاربران بصورت مخلوط (HASH) برروی شبکه انتقال می یابد ، که در صورت استراق سمع اطلاعات توسط کاربران مزاحم ، به هیچ وجه رمز عبور و اکانت کاربران قابل تفکیک از اطلاعات گرفته شده نخواهد بود. از سوی دیگر این روش ، برخلاف Windows Auth.  کاملا کاربردی بوده و در فضای اینترنت با دیگر سیستم عامل ها ارتباط برقرار میکند. برای فعال نمودن Digest Authentication در داخل صفحه IIS به قسمت Connections بروید. در این قسمت سایت خود را انتخاب نمایید. در سمت راست صفحه از قسمت Security گزینه Authentication را انتخاب کنید. در صفحه تنظیمات Authentication برروی گزینه Digest کلیک کنید. در سمت راست صفحه قاب Action نمایان می شود. از داخل آن برروی گزینه Enable کلیک نمایید. در قاب Action گزینه دیگری بنام Edit وجود دارد. هنگامیکه بر روی این گزینه کلیک کنید پنجره جدیدی باز میشود. در داخل این پنجره  قسمتی بنام Realm وجود دارد. در قسمت Realm نام حوزه امنیتی که باید تایید هویت برای آن انجام شود را بنویسید.

ntlm چیست؟

Windows Authentication یکی دیگر از روش های تایید هویت می باشد. این روش پیشتر به NTLM و Windows NT Challenge/Response authentication معروف بود. تایید هویت Windows نیز از امن ترین الگوریتم ها استفاده می کند. به این ترتیب که اطلاعات اکانت کاربر و رمز عبور مخلوط (HASH) میگردد و سپس بر روی شبکه انتقال می یابد. Windows Auth. دو پروتکل را پشتیبانی می نماید . این دو پروتکل عبارتند از Kerberos و NTLM . هنگامیکه در IIS تایید هویت Windows Auth. را فعال کنید بطور پیشفرض از پروتکل Kerberos استفاده می نماید.

ntlm

استفاده از Windows Auth. بهترین راه حل در شبکه های اینترانت میباشد . ممکن است این سوال برای شما پیش بیاید ، چرا اینترانت ؟

بدلیل اینکه کامپیوتر های کاربران و سرور هر دو در یک دامنه هستند. که در اینجا می توان به شبکه های دامین اشاره کرد. از طرفی مدیر شبکه اطمینان خاطر دارد که تمامی کاربران از اینترنت اکسپلورر ۲ به بالا استفاده می کنند.نیازی به ارتباطات HTTP proxy که بوسیله NTLM پشتیبانی نمی شود ، نخواهد بود. استفاده از Kerberos  ورژن ۵ که نیاز به ارتباط با شبکه دامین (active directory) دارد نیز نمیتواند در شبکه اینترنت امکانپذیر باشد.

برای فعال نمودن Windows Authentication در داخل صفحه IIS به قسمت Connections بروید. در این قسمت سایت خود را انتخاب نمایید. در سمت راست صفحه از قسمت Security گزینه Authentication را انتخاب کنید. در صفحه تنظیمات Authentication برروی گزینه Windows کلیک کنید. در سمت راست صفحه قاب Action نمایان می شود. از داخل آن برروی گزینه Enable کلیک نمایید. در قاب Action دو گزینه دیگر بنام های Advanced Settings و Providers وجود دارد. در قسمت Advanced Settings دو گزینه برای تنظیم وجود دارد. گزینه اول Extended Protection است که دارای سه حالت میباشد. حالت اول خاموش (OFF) است. حالت دوم Accept  و حالت سوم Required می باشد.

ntlm

Extended Protection قابلیتی است که عملکرد امنیتی تایید هویت را بالا می برد و از وقوع حملاتی موسوم به “مرد میانی” (man in the middle) [ که در اوایل سال ۲۰۱۱ این حمله برای تایید هویت کاربران ایرانی که به اکانتهای گوگل متصل می شدند اتفاق افتاد. به این صورت که یک سیستم مزاحم بین شما و سرور قرار میگیرد و با نام جعلی اطلاعات هویتی شما را به سرقت می برد. این سیستم مزاحم به هیچ وجه توسط شما و سرور قابل شناسایی نیست ] جلوگیری می نماید. گزینه دوم نیز  Enable kernel-mode Authentication میباشد ،که بصورت پیشفرض فعال می باشد . با کلیک برروی چک باکس کنار آن میتوانید آنرا غیر فعال کنید. برای جلوگیری از تداخل بین تایید هویت و تنظیمات شخصی application pool این گزینه همیشه فعال است.

گزینه دومی که در قاب Action وجود دارد Providers است . برروی این گزینه کلیک نمایید . در پنجره جدید Provider هایی که فعال هستند را مشاهده می نمایید. دو نوع ارائه دهنده Negotiate و NTLM در این قسمت فعال هستند. Negotiate از پروتکل Kerberos و NTLM نیز از پروتکل NT LAN Manager برای تایید هویت استفاده می کنند.

Forms Authentication گونه ی دیگری از تایید هویت است که در آن بازدید کنندگان از سایت دارای هیچ گونه اکانت و رمز عبوری نمی باشند. و برای ورود به صفحات خصوصی باید یک اکانت و رمز عبور ایجاد نمایند. این اکانت با ورود اطلاعات توسط کاربر و تایید توسط مدیر سایت ایجاد میشود. باید توجه داشت که اطلاعات کاربر در شبکه بصورت یک پیام متنی انتقال می یابد و برای اطمینان بیشتر باید از پروتکل SSL در کنار این روش استفاده شود. برای فعال نمودن Form Authentication در داخل صفحه IIS به قسمت Connections بروید. در این قسمت سایت خود را انتخاب نمایید. در سمت راست صفحه از قسمت Security گزینه Authentication را انتخاب کنید. در صفحه تنظیمات Authentication برروی گزینه Form کلیک کنید. در سمت راست صفحه قاب Action نمایان می شود. از داخل آن برروی گزینه Enable کلیک نمایید.

اگر می خواهید پیشفرض های امنیتی که برای تایید هویت در برنامه های ASP .NET بکار می روند ، مزاحمتی برای شما ایجاد نکنند، می توانید از تایید هویت  ASP .Net Impersonation استفاده نمایید. برای مثال اگر برای برنامه ای تایید هویت Anonymous Auth. تعریف گردد ، این برنامه در اختیار عموم قرار خواهد گرفت ، اما هنگامیکه تایید هویت اکانت دلخواه برای آن تعریف نمایید ، فقط به افراد خاص اجازه استفاده از آن برنامه را داده اید.این روش بطور پیشفرض غیر فعال است. برای فعال نمودن ASP .Net Impersonation در داخل صفحه IIS به قسمت Connections بروید. در این قسمت سایت خود را انتخاب نمایید. در سمت راست صفحه از قسمت Security گزینه Authentication را انتخاب کنید. در صفحه تنظیمات Authentication برروی گزینه ASP .Net Impersonation کلیک کنید. در سمت راست صفحه قاب Action نمایان می شود. از داخل آن برروی گزینه Enable کلیک نمایید. برای تعیین کاربرانی که اجازه ورود دارند، گزینه Edit را از قاب Action انتخاب نمایید. در این پنجره در قسمت Specific User میتوانید یک کاربر خاص را تعریف کنید و یا کاربران تایید هویت شده (Authenticated Users) را انتخاب نمایید.

به شما پیشنهاد می کنیم مقاله ی ما با موضوع “۱۰ نکته حیاتی برای حفظ امنیت وب سایت” را برای کسب اطلاعات بیشتر مطالعه نمایید.

ایران هاست

مشخصات مدیر

یک دیدگاه

دیدگاهتان را بنویسید

نوشته های مشابه

دکمه بازگشت به بالا