معرفی 6 روش احراز هویت : SSO چیست؟ مقایسه SESAME و Kerberos

قابلیت Single Sign On یا SSO برای برطرف کردن مشکل ورود کاربر با نامهای کاربری و رمزهای عبور متعدد به سیستم های مختلف برای دسترسی به منابع را برطرف می کند. یک کاربر برای پیدا کردن دسترسی به منابع مختلف در شبکه مجبور است تعداد زیادی رمز عبور را حفظ باشد و یا آنها را در جایی یادداشت کند که این رمز ها فراموش نشوند ، معمولا همین رمز ها هستند که توسط مهاجمین مورد سوء استفاده قرار می گیرند . در ساختار SSO کاربر صرفا یک نام کاربری و رمز عبور یکتا در شبکه دارد که بلافاصله بعد از اینکه وارد یک سیستم در ساختار SSO شود می تواند از تمامی منابعی که برای وی در شبکه تعریف شده است استفاده کند ، بدون نیاز به اینکه برای هر منبع اطلاعاتی نام کاربری و رمز عبور جدیدی وارد کند .

قابلیت Single Sign On  یا ورود یکپارچه به سیستم



برای امنیت SSO مهمترین مسئله این است که رمزهای عبوری که در بین سیستم های اطلاعاتی رد و بدل می شوند بایستی بصورت رمزنگاری شده استفاده شوند ، این رمز ها نبایستی بر روی سیستم ها ذخیره شده و یا اینکه بصورت رمزنگاری نشده در شبکه منتقل شوند . نرم افزارهای کاربردی که با قابلیت SSO کار می کنند ، هم می توانند بر روی ایستگاه کاری کاربر باشند و یا بر روی سرورهای احراز هویت قرار داشته باشند.

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

می تواند به صورت آزادانه به تمامی منابع شبکه ای که در شبکه وجود دارد بدون محدودیت دسترسی پیدا کند. گروه Open Group که در حقیقت یکی از بزرگترین کنسرسیوم هایی است که به سازمان ها در جهت رسیدن به اهدافشان با توجه به استانداردهای فناوری اطلاعات کمک می کند ، اهداف عملیاتی را برای پشتیبانی رابط کاربری در محیط SSO تدوین کرده است که مهمترین این اهداف به شرح ذیل می باشند :

 

  1. رابط بایستی از نوع احراز هویت اطلاعات مستقل باشد.
  2. رابط نبایستی زمانبندی فعالیت های Secondary Logon Service را از پیش تعریف کند .
  3. برای ایجاد پروفایل کاربری پیشفرض برای یک شیء پشتیبانی کامل بایستی انجام شود .


مکانیزم های احراز هویتی مانند کارت های هوشمند و علائم مغناطیسی استفاده شوند . کنترل های سخت گیرانه ای بایستی در خصوص جلوگیری از تغییر تنظیمات توسط کاربران پیاده سازی شود. قلمرو استانداردهای Open Group برای SSO ، تعیین سرویس ها در پشتیبانی از موارد زیر تعیین شده است :

  • توسعه نرم افزارهای کاربردی برای ایجاد یک رابط کاربری یکپارچه برای کل سازمان
  • توسعه نرم افزارهای کاربردی برای مدیریت هدایت شده اطلاعات حسابهای کاربری چندگانه در کل سازمان


SSO ها می توانند به شکل یک اسکریپت که اطلاعات مربوط به نام کاربری و رمز عبور را به سیستم های احراز هویت بصورت رمزنگاری شده و برای ورود به سیستم های اطلاعاتی مختلف ارسال می کنند نیز پیاده سازی شوند و پس از احراز هویت توسط این سیستم ها به منابع اطلاعاتی موجود در آنها دسترسی پیدا کنند .

مدیریت یکپارچه تاسیسات اقتصادی کلان یا Enterprise Access Management) EAM ) سرویس مدیریت کنترل های دسترسی برای سیستم های سازمانی تحت وب را که شامل قابلیت SSO نیز می شوند را ارائه می دهد. SSO به روش های متنوعی قابل پیاده سازی می باشد. برای مثال می توان ساختار SSO را به شکلی پیاده سازی کرد که نرم افزارهای کاربردی تحت وب که در یک دامنه اینترنتی ( Domain ) اما بر روی سرورهای مختلف قرار دارند ، برای احراز هویت مرکزی از کوکی های رمزنگاری شده مستقر بر روی کامپیوترهای کلاینت ها استفاده کنند و به این نحو در تمامی سرور ها احراز هویت شوند ، بدون نیاز به وارد کردن مجدد اطلاعات احراز هویت .

اینکار به وسیله ارسال کوکی موجود بر روی سیستم کاربر به سمت هر سروی که کاربر قصد ورود به آن را دارد انجام می شود . یکی دیگر از راهکارهای پیاده سازی SSO ایجاد یک شناسه ایمن برای هر کاربر بر روی یک Reverse Proxy که در مقابل سرویس دهنده وب مستقر شده است ، می باشد . هز زمانی که کاربر بخواهد به یک نرم افزار کاربردی تحت وب محافظت شده وارد شود ، رمز عبور و نام کاربری به آن نرم افزار نمایش داده می شود . پروتکل های Kerberos ، SESAME ، Kryptoknight و NetSP از انواع سیستم های احراز هویت هستند که قابلیت های مربوط به SSO را پشتیبانی می کنند.

 

معرفی پروتکل Kerberos کربروس

Kerberos نام یک پروتکل قابل اعتماد احراز هویت است که توسط انیستیتو تکنولوژی دانشگاه ماساچوست یا همان MIT تحت عنوان پروژه Athena طراحی و تولید شد . در افسانه های یونان باستان Kerberos نام سگ سه سری بود که از دروازه ورود به دنیای زیر زمین نگهبانی می کرد . با استفاده از رمزنگاری کلید متقارن ( Symmetric Key Cryptography ) Kerberos این قابلیت را دارد که کلاینت ها را برای معرفی به سرویس های دیگر تحت شبکه احراز هویت و معرفی کند. ساختار و الگوی کارکرد پروتکل Kerberos را می توان با ساختار کاری محیط یک دانشگاه تشریح کرد . در چنین محیطی ممکن است هزاران مکان مختلف برای ایستگاه های کاری ، شبکه های محلی ، کامیپوترهای شخصی و بسیاری از کامیپوترهای دیگری که ایمن نشده اند وجود داشته باشد .

Kerberos  یا سگ سه سر



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

این سرور های متمرکز شده با همدیگر تشکیل Kerberos-trusted Key Distribution Center که به اختصار KDC می نامیم ، Kerberos Ticket Granting Ticket که به اختصار TGS می نامیم و Kerberos Authentication Service که به اختصار AS می نامیم را می دهند . از ویندوز سرور 2000 و بعد از آن پروتکل Kerberos توسط سیستم عامل های شرکت مایکروسافت پشتیبانی می شود. قاعده کلی فعالیت پروتکل Kerberos در محیط های عملیاتی به شکل زیر است :

  1. KDC تمامی کلید های سری مربوط به کلاینت ها و سرورهای شبکه را می داند.
  2. KDC با استفاده از این کلیدها تبادل اطلاعات بین سرورها و کلاینت ها را انجام می دهد .
  3. Kerberos با استفاده از TGS درخواست های سرویس مربوط به کلاینت ها را ابتدا احراز هویت کرده و برای هر یک از نشست هایی که بین این سرویس ها مانند کلاینت ها و KDC ، سرور و KDC و همچنین کلاینت و سرور برقرار می شود ، یک کلید متقارن نشست موقتی تولید می کند.
  4. در این لحظه ارتباطات با استفاده از کلیدهای تولید شده در مرحله قبلی برقرار می شود .

 

شیوه کارکرد پروتکل احراز هویت Kerberos



نقاط ضعف Kerberos کربروس

پروتکل Kerberos قابلیت صحت و تمامیت و محرمانگی اطلاعات را به ما می دهد اما در خصوص دسترسی پذیری و حملاتی مانند frequency analysis بصورت تخصصی نمی تواند کاری انجام دهد. علاوه بر این به دلیل اینکه تمامی کلید های سری و تمامی عملیات های احراز هویت توسط TGS و سرورهای احراز هویت انجام می شود ، این سرورها هم در برابر حملات فیزیکی و هم در برابر کدهای مخرب بسیار آسیب پذیرند.

در صورتیکه مهاجم بتواند در وهله زمانی که در Kerberos بصورت پیشفرض در نظر گرفته شده است بتواند کلیدی را بدست بیاورد می تواند از حمله Replay برای حمله به سرور یا کلاینت استفاده کند. به دلیل اینکه رمز عبور کاربر برای برقراری درخواست کنترل سرویس Kerberos مورد استفاده قرار می گیرد ، حملاتی از نوع حدس زدن رمز عبور یا Password Guessing نیز می تواند در این میان انجام شود . حتی کلیدهایی که برای تبادل اطلاعات در Kerberos استفاده می شود دارای نقاط ضعف امنیت هستند . تمامی کلید های سری کلاینت ها بصورت موقتی بر روی خود کامپیوتر کلاینت و یا سرورها درخواست کنند قرار می گیرند و امکان دستکاری و سوء استفاده از این کلید ها بسیار محتمل است.

 

پروتکل SESAME

برای پوشش دادن و رفع یک سری از مشکلات و نقاط ضعف امنیت موجود در پروتکل Kerberos پروژه SESAME ایجاد شد. SESAME مخفف Secure European System for Applications in multi-vendor Environment است . در این پروژه از ساختار رمزنگاری کلید عمومی برای توزیع کلید های سری و همچنین پشتیبانی از سیستم های کنترل دسترسی بیشتر استفاده می شود . SESAME از پروتکل Needham-Schroeder و همچنین سرور احراز هویت مورد اعتماد در هر میزبان برای کاهش نیازمندی های مدیریت کلید استفاده می کند.

SESAME از الگوریتم های Hashing یک طرفه MD5 و crc32 در عملیات خود استفاده می کند. علاوه بر این SESAME دو certificate و یا Ticket را با یکدیگر ترکیب می کند. یکی از این Certificate ها سرویس احراز هویت همانند پروتکل Kerberos انجام می دهد و دیگری سطح دسترسی های کاربر را که به وی اختصاص داده شده است را تعیین می کند. یکی از نقاط ضعفی که در SESAME وجود دارد این است که این سیستم احراز هویت را صرفا با بلوک اول پیغام انجام می دهد و از کل پیغام برای احراز هویت استفاده نمی کند. SESAME هم همانند Kerberos در برابر حملات Password Guessing ضعیف عمل می کند.

 

پروتکل Kryptonite

سیستم Kryptonite متعلق به شرکت IBM است که سرویس های احراز هویت ، SSO و توزیع کلید را در یکجا در خود ارائه می دهد. این سیستم برای استفاده در کامپیوترهایی طراحی شد که قابلیت های محاسباتی متنوعی داشتند. این سیستم نیز دارای یک KDC است که تمامی کلید های سری در هر سمت از شبکه را در خود نگه می دارد. یکی از تفاوت هایی که Kryptonite با Kerberos دارد این است که در این پروتکل یک رابطه Peer-to-Peer بین طریفت ارتباط و KDC برقرار می شود.

برای پیاده سازی SSO ، KDC دارای کلید سری طرف مقابل می باشد که رمز را بصورت Hash شده منتقل می کند. اولین اطلاعات رد و بدل شده بین KDC طرف مقابل ارتباط نام کاربری و یک مقدار است ، این مقدار در نقش Nonce ( یک وسیله احراز هویت یکبار مصرف که بصورت تصادفی تولید می شود ) عمل می کند . در اینجا KDC کاربر را احراز هویت کرده و برای کاربر Ticket رمزنگاری شده را به همراه کلید سری کاربر ارسال می کند.

کاربر در این لحظه Ticket را رمزگشایی کرده و می تواند از آن برای احراز هویت شدن توسط سرورها جهت دریافت سرویس ها از سیستم های موجود در شبکه استفاده کند . NetSP نیز یکی محصول مشابه kryptonite است با این تفاوت که از ایستگاه های کاری مستقر در شبکه به عنوان سرور احراز هویت استفاده می کند ، Ticket های تولید شده توسط NetSP با یک سری از سرویس های کنترل دسترسی مانند Resource Access Control Facility یا RACF هماهنگ هستند .


نویسنده : محمد نصیری
منبع : جزیره امنیت اطلاعات و ارتباطات وب سایت توسینسو
هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد

عنوان
1 معرفی 6 روش احراز هویت : تفاوت Token و احراز هویت بیومتریک رایگان
2 معرفی 6 روش احراز هویت : SSO چیست؟ مقایسه SESAME و Kerberos رایگان
زمان و قیمت کل 0″ 0
7 نظر
زهرا مرشدی

با سلام.خسته نباشیدآقای نصیری.مقالتون خیلی جالب بود.فقط یه سوال دارم.واسه ی پروتکل Kerberos این ticket ها

زمان اعتبار خاصی ندارن؟فقط محدود به همون نشست موقتی میشن؟

محمد نصیری

توی مقاله هم عرض کردم ، Ticket های Kerberos بر اساس زمان صادر میشن یعنی Timing دارند و در صورتیکه هکر بتونه در وهله زمانی تعیین شده برای این ارتباط که معمولا پیشفرض 5 دقیقه هست بتونه اطلاعات Session رو بدست بیاره ( حمله نوع Replay ) و در همون مدت زمان حمله کنه حملش می تونه موفق باشه ، اما اگر از این بازه زمانی خارج شد حمله Replay که به همین روش انجام میشه که کارآمد نیست . البته خود Kerberos مشکلاتی داره که تا حدی ایمنیش رو زیر سئوال می بره و به همین دلیلم هست که پروتکل SESAME رو ارائه کردند.

hosseinii

با عرض سلام

جناب مهندس نصیری بنده دانشجوی ارشد امنیت اطلاعات هستم و مقاله ی شما رو در خصوص "شناسایی و احراز هویت قسمت دوم - SSO , Kerberos , SESAME و kryptonite" مطالعه کردم اما قسمت اول این مقاله رو میخوام اما تو سایت پیدا نکردم. میشه برام ارسال بفرمایین؟؟؟؟

چناچه منبع فارسی که توضیح بیشتری در مورد پروتکل SESAME و kryptonite داره برام معرفی یا ارسال بفرمایین بسیار ممنون میشم ازتون

fairy7

با سلام و خسته نباشید.

مقالتون جالب بود. یک سوال داشتم امیدوارم بتونید بهم کمک کنید..

ایا پروتکل kerberos میشه با matlab شبیه سازی کرد؟ در صورت امکان راهنماییم کنید

با تشکر ،شاد باشید.

محمد نصیری

لطفا سئوالتون رو در قالب یک تاپیک جدید در تالار گفتمان مطرح کنید با تشکر

mdf77

سلام

بین 3 پروتکلی که معرفی شد کدام بهتر و مطمئن تر است؟

اگر مقاله کاملی در مورد Sesame و kryptonite دارید معرفی کنید بنده نیاز مبرمی با انها دارم

ممنون

محمد نصیری

لطفا سئوال خودتون رو در قالب یک تاپیک در تالار پرسش و پاسخ مطرح کنید ، با تشکر

نظر شما
برای ارسال نظر باید وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

تو می تونی بهترین نتیجه رو تضمینی با بهترین های ایران بدست بیاری ، پس مقایسه کن و بعد خرید کن : فقط توی جشنواره پاییزه می تونی امروز ارزونتر از فردا خرید کنی ....