Single Sign-on یا احراز هویت یکپارچه چیست و چگونه کار میکند؟ کاربرد آن در فراگستر
زمان تقریبی مطالعه: 10 دقیقه
به خاطر سپردن و وارد کردن نام کاربری و رمز عبور برای استفاده از نرمافزارها و سامانههای متعدد در یک سازمان، زمان و انرژی زیادی از کاربران میگیرد و معایب متعددی دارد. سازوکار Single sign-on (SSO) یا شناسایی یگانه روشی است که این مشکل را برطرف میکند. برای آشنایی با نحوه کارکرد این سازوکار، مزایای آن و کاربرد آن در اتوماسیون اداری فراگستر با همراه باشید.
مشاهده فهرست مطالب
Single Sign-on یا شناسایی یگانه (SSO) چیست؟
استفاده از بسیاری از سامانهها و نرم افزارهای سازمانی نیازمند داشتن یک حساب کاربری و وارد کردن نام کاربری و رمز عبور آنهاست، اما بخاطر سپردن و استفاده از تعداد زیادی اطلاعات کاربری و رمز عبور عملاً روشی ناکارآمد است. شناسایی یگانه یا Single sign-on (SSO) یکی از زیرمجموعههای سازوکارهای مدیریت هویت فدرال در سامانههای کامپیوتری است که با ارائه یک سامانه متمرکز تایید هویت، به کاربران امکان میدهد با استفاده از تنها یک مجموعه دادههای احراز هویت (به عنوان مثال، یک نام کاربری و رمز عبور)، به روشی امن در چند سیستم نرم افزاری و وبسایت مستقل و در عین حال مرتبط وارد شوند.
این سازوکار به کاربران امکان میدهد با یک اعتبارنامه ورود، به چندین برنامه و وبسایت دسترسی داشته باشند. پیادهسازی SSO میتواند توسط شرکتها، سازمانهای کوچک و متوسط و حتی افراد، برای سهولت مدیریت اطلاعات کاربریشان مورد استفاده قرار بگیرد. این فناوری به بهبود امنیت نیز کمک میکند و هم برای دسترسی به برنامههای محلی (Local) و هم دسترسی به برنامههای موجود در فضای ابری بکار میرود. یک راهکار واقعی شناسایی یگانه، به کاربر این امکان را میدهد که یک بار وارد سیستم شود و بدون وارد کردن مجدد اطلاعات مربوط به احراز هویت، بتوانند به خدمات مورد نظرشان دسترسی پیدا کند. از نمونههای مشهور چنین سازوکاری میتوان به نرمافزارهای تحت وب گوگل و مایکروسافت اشاره کرد که از یک سامانه متمرکز تایید هویت استفاده کنند. به طوری که اگر وارد یکی از سرویسهای گوگل مانند جیمیل شوید، امکان دسترسی به سایر سرویسهای گوگل مانند گوگل درایو، یوتیوب، گوگل داکز و … را نیز خواهید داشت.
Single Sign-on یا شناسایی یگانه (SSO) چطور کار میکند؟
پیش از اینکه به مزایا و نکات فنی سازوکارهای Single Sign-on بپردازیم، شاید کنجکاو باشید که چنین سامانهای دقیقاً چطور کار میکند. برای پاسخ به این سوال، ابتدا نحوه احراز هویت بدون SSO را بررسی میکنیم. در حالت عادی وقتی میخواهید وارد برنامه یا سامانهای شوید، باید نام کاربری و رمز عبور خود را وارد کنید. سامانه یا وبسایت مورد نظر، اطلاعات کاربری که توسط شما وارد شده را با اطلاعات کاربری موجود در پایگاه داده خود مقایسه و صحت آن را بررسی میکند و در صورت تایید هویت به شما اجازه میدهد به صفحات مختلف وبسایت یا بخشهای مختلف سامانه دسترسی پیدا کنید.
در مقابل، در روش Single Sign-on یا SSO، احراز هویت به جای نام کاربری و رمز عبور به اعتماد بین دامنهها و نرم افزارها متکی است. یعنی در این روش، رمز عبور توسط کاربر یا حتی یک نرمافزار وارد نمیشود و احراز هویت کاربر تنها بنا بر اساس اعتبار یک سرویس ارائهدهنده هویت صورت میگیرد. در این حالت، اپلیکیشن یا وبسایت مورد نظر که ارائهدهنده سرویس/خدمت نامیده میشود، برای احراز هویت کاربر از یک ارائهدهنده هویت مانند گوگل استعلام میکند. سرویس SSO مورد نظر نیز یک گواهینامه به شکل توکن را که شامل اطلاعات شناسایی کاربر میشود، برای ارائهدهنده خدمت (نرمافزار یا وبسایت) ارسال میکند تا از هویت کاربر مطمئن شود.
نحوه عملکرد این سازوکار در عمل نیز اینگونه است که شما برای احراز هویت در یک وبسایت یا یک نرم افزار، کافیست تا تنها یکبار نام کاربری و رمز عبور سرویس SSO را وارد کنید. سامانه Single Sign-On اطلاعات وارد شده از سوی شما را با یک مخزن اطلاعات کاربران، مثلا با استفاده از پروتکل اِلدَپ یا قرارداد دسترسی سبکوزن راهنما، مقایسه کرده و احراز هویت میکند و در صورت تایید، نشست کاربر در سامانه SSO ایجاد میگردد. پس از تایید هویت، این سرویس فرآیند احراز هویت شما را برای تمام وبسایتها و برنامههای متصل به این سرویس که شما حق دسترسی به آنها را دارید، به صورت خودکار احراز هویت میکند و تا زمانی که شما در سرویس SSO لاگین هستید، نیازی به ورود مجدد رمز عبور و نام کاربری در هیچکدام از سامانههای مرتبط نخواهید داشت.
نحوه پیادهسازی Single Sign-On چگونه است؟
ساختار پیادهسازی SSO از مراحل زیر تشکیل شده است:
- استفاده از دایرکتوری مرکزی جهت Authentication
- تصدیق کاربران بر اساس این دایرکتوری
- تعیین مجوزهای کاربران بر اساس Credential های مربوطه
پیادهسازی SSO به روشهای مختلفی صورت میپذیرد که 2 روش آن در زیر آورده شده است:
- اسکریپت: در این روش، اسکریپت اطلاعات اکانت کاربر را بصورت رمزگذاری شده به سیستم تشخیص هویت ارسال میکند و پس از تائید هویت، کاربر وارد سیستم میشود.
- کوکی: در این روش کوکیهای سیستم کاربر به سروری که کاربر میخواهد به آن وارد شود ارسال میشود. در واقع سیستمهای نرمافزاری تحت وبی که دامنه (Domain) مشابه دارند، اما بر روی چند سرور قرارگرفتهاند، جهت تشخیص هویت کاربر از کوکیهایی استفاده مینمایند که بصورت رمزنگاریشده هستند و بر روی سیستم کاربر قرارگرفتهاند. به این ترتیب هویت کاربر در تمامی سرورها تائید میشود.
انواع روشهای احراز هویت با Single Sign-On کدام است؟
شناسایی و احراز هویت 2 هسته اصلی در بیشتر سیستمهای کنترل دسترسی هستند.
شناسایی عملی است که یک کاربر برای معرفی خود به یک سیستم اطلاعاتی استفاده میکند که معمولا در قالب یک شناسه ورود یا Login ID وجود دارد. در واقع شناسایی، فرایندی است که طی آن، فرد هویتی را اظهار میکند و از این نقطه، پاسخگویی آغاز میشود. ارائه نام کاربری، شناسه ورود، شماره شناسایی یا کارت هوشمند توسط کاربر، نمایانگر فرایند شناسایی است.
احراز هویت عبارتست از فرآیند بررسی اعتبار هویت ادعا شده. احراز هویت نیازمند ارائه اطلاعات دیگری توسط فرد است که باید دقیقاً با هویت مذکور، مرتبط باشد و یکی از مهمترین مباحث در حوزه امنیت سیستمهای کامپیوتری میباشد. احراز هویت، هویت فرد را بوسیله مقایسه یک یا چند عامل با پایگاه دادهای از هویتهای معتبر، بررسی میکند. بطور کلی روشهای احراز هویت یا Authentication در حوزه امنیت اطلاعات، به چهار تیپ ساده تقسیمبندی میشود. انواع روشهیا احراز هویت با با Single Sign-On نیز همین شامل موارد است:
چیزی که شما میدانید (What You Know) :
سادهترین و البته پرکاربردترین روش احراز هویت استفاده از نام کاربری و رمز عبور یا همان Username و Password میباشد.
احراز هویت با رمز عبور
این روش بعنوان ضعیفترین شکل حفاظت محسوب میشود. رمزهای عبور ممکن است افشا شوند و به همین دلیل بایستی از آنها محافظت شود.
چیزی که شما دارید (What You Have):
درواقع داشتن وسیلهای برای احراز هویت است که این وسیله معمولاً بعنوان کارت هوشمند یا Smartcard ، در قالب قفلها یا Token های USB و یا سایر مواردی از این قبیل میباشد و کاربر برای احراز هویت حتماً باید این وسیله را همراه خود داشته باشد. برای احراز هویت شدن در چنین روشی کاربر میبایست Smartcard یا Token خود را در دستگاهی که ویژه احراز هویت طراحی شده است وارد کند.
احراز هویت با Token
token ها ابزارهای فیزیکی هستند که در اندازهایی مانند کارتهای هوشمند و یا حافظههای فلش وجود دارند و دستگاههای مولد رمز عبور هستند که افراد باید آنها را همراه خود داشته باشند. این ابزارها وظیفه نگهداری یا تولید رمزهای عبور ایستا و یا پویا را برعهده دارند.
چند نوع توکن داریم:
- توکنهای رمز عبور ایستا
- توکنهای رمزهای عبور پویای همگام
- توکنهای رمزهای عبور پویای ناهمگام
چیزی که شما هستید (What You Are):
درواقع احراز هویت با استفاده از ویژگیهای خاص بدن شماست، چهره شما، اثر انگشت شما، DNA شما، شبکیه و مردمک چشم شما از مواردی است که جزو این عامل به حساب میایند و قطعاً تا به حال اثبات شده است که اثر انگشت و DNA شما در کل دنیا منحصربه فرد میباشد.
احراز هویت با عوامل بیومتریک
عامل بیومتریک، عبارتست از یک ویژگی و خصیصه رفتاری یا فیزیولوژیکی که برای هر فرد یکتا است. بیومتریک یک سیستم خودکار است که انسانها را از روی ویژگیهای فیزیولوژیکی و همچنین رفتارهای فرد شناسایی و احراز هویت میکند. در اینگونه سیستمها یک پایگاه داده از تصاویر مربوط به ویژگیهای فیزیولوژیکی افراد وجود دارد که به محض درخواست فرد برای احراز هویت، این تصاویر با تصویر ویژگیهای فرد مقایسه شده و درنهایت درصورتیکه تصویر مربوطه در پایگاه داده وجود داشته باشد شخص احراز هویت میشود. مقیاسهای کارایی تجهیزات بیومتریک را میتوان در درصد خطاهای رخ داده بشمار آورد:
- خطای (FRR ( False Rejection Rate
- خطای (FAR ( False Acceptance Rate
- خطای (CER (Crossover Error Rate
آنچه که شما انجام میدهید (What You DO):
برخی اوقات میتوان فاکتور چهارمی نیز به این موارد اضافه کرد که معمولاً به آن چیزی که شما انجام میدهید نیز گفته میشود. برای مثال، میتوان افراد را با استفاده از روش و ریتم استفاده از Keyboard و تایپ کردن توسط آن (KeyStroke Dynamics) شناسایی و احراز هویت کرد؛ که این یک تکنیک احراز هویت بیومتریک یا شیوه رفتاری شما میباشد و جزو دستهبندی Two – Factor Authentication هاست. هر فردی زمان استفاده از کیبورد و تایپ کردن رفتار و روش استفاده خاص خود را دارد که پارامترهایی همچون زمان و نحوه فشردن کلیدها از این دسته رفتارها میباشد.
در سازمانها، به مرور زمان نرمافزارهای مختلفی نصب و راهاندازی شدهاند که هرکدام قسمتی از سازمان را مکانیزه مینمایند. بنابراین کاربران سازمان برای ورود به هرکدام از این برنامههای کاربردی، نیاز به کلمه عبور و نام کاربری مجزایی دارند که مشکلات زیر را برای مدیران و کاربران سازمان ایجاد کرده است
- نیاز مکرر به واردکردن نام کاربری و کلمه عبور برای ورود به هرکدام از برنامههای کاربردی
- فراموش کردن کلمه عبور و نام کاربری بعضی از این نرمافزارها و درخواستهای مکرر برای بازنشانی آنها
- عدم وجود امکان ردگیری ورود و خروج کاربران به نرمافزارهای مختلف
- عدم توانایی برقراری ارتباطات اتوماتیک بین سیستمهای Front-end مانند پرتالها با سیستمهای end-Back مانند اتوماسیون اداری
تفاوت SSO با مکانیزم Central Authentication service) CAS) چیست؟
در یک ورود به سیستم (SSO)، کاربران تنها یک بار احراز هویت می شوند، صرف نظر از اینکه پس از ورود اولیه به چه تعداد سرور یا سرویس بخواهند دسترسی پیدا کنند. اساساً، شبکه اطلاعات و هویت کاربران را به خاطر می سپارد و هر زمان که کاربران تلاش می کنند به یک منبع دسترسی پیدا کنند از آنها استفاده می کند. بنابراین یک سازوکار SSO، دو مشکل عمده را حل میکند: کاربران دیگر نیازی نخواهند داشت تا چندین بار اطلاعات احراز هویت خود را وارد کنند و کاربران مجبور نخواهند بود چندین مجموعه از اطلاعات احراز هویت را به خاطر بسپارند.
اما در CAS یا احراز هویت متمرکز، فرآیند احراز هویت متفاوت است. به طوری که ورود به سایر نرمافزارها و وبسایتها به طور خودکار انجام نمیشود. بلکه کاربر باید برای به ورود به هر سایت جدید، اطلاعات احراز هویت خود را مجدداً وارد کند. با این حال، مزیت آن این است که اطلاعات وارده، یکسان خواهد بود. بنابراین سازوکار احراز CAS تنها یک مشکل را حل میکند: کاربران مجبور نخواهند بود چندین مجموعه از اطلاعات احراز هویت را به خاطر بسپارند.
بنابراین، سرویس مرکزی احراز هویت، توانایی یکپارچهسازی فرآیند تصدیق هویت را دارد. برای پیادهسازی امن، احراز هویت مبتنی بر وب باید سرویس یا درگاهی را بهعنوان مرجع انتخاب کرده و کلیه درخواستهای تصدیق هویت سرویسهای درون سازمانی و پورتال را به این مرکز ارجاع داده و نتیجه احراز هویت را از این مرکز دریافت نمائیم. این به زبان ساده، شمای کلی کاری که CAS انجام میدهد را بیان میکند. از قابلیتهای اصلی این سرویس ایجاد یک تونل امنیتی میان کامپیوتر کاربر و سرور مرکزی است که باعث میشود اطلاعات محرمانه کاربران سایت تحت پروتکلهای امنیتی SSL جابجا شوند.
CAS، از ۳ واحد کاری تشکیل شده است:
مرورگر کاربر – مرجع ارتباط دهنده درخواستهای تصدیق هویت به سرویس احراز هویت – سرویس دهنده
در اینجا CAS نقش دوم (یعنی مرجع ارتباط دهنده درخواستهای تصدیق هویت به سرویس احراز هویت) را ایفا میکند.
بمحض درخواست کاربر برای دسترسی به سرویسهای درونسازمانی، درخواستهای تصدیق هویت از سرویسهای مربوطه به پورتال ارسال میشود که در ادامه با استعلام واحد سرویس گیرنده CAS از سرویس دهنده هویت کاربر تعیین و تائید و یا رد میگردد.
سرویس دهنده CAS میتواند برای پروسه تصدیق هویت از منابع اطلاعاتی گستردهای همچون بانکهای اطلاعاتی رابطهای یا سرویسدهنده دایرکتوری (LDAP) و… بهرهبرداری نماید. مکانیزم پشتیبانی شده توسط این سیستم را Single Sign-On (SSO) مینامند.
۴- انواع پروتکلهای پشتیبان قابلیت SSO
پروتکلهای Kerberos ، SESAME ، Kryptoknight و NetSP از انواع سیستمهای احراز هویت هستند که قابلیتهای مربوط به SSO را پشتیبانی میکنند.
معرفی پروتکل Kerberos
Kerberos نام یک پروتکل قابل اعتماد احراز هویت است که با استفاده از رمزنگاری کلید متقارن، این قابلیت را دارد که کلاینتها را برای معرفی به سرویسهای دیگر تحت شبکه احراز هویت کند این پروتکل در برابر حملاتPassword Guessingضعیف عمل میکند.
معرفی پروتکل SESAME
برای پوشش دادن و رفع یک سری از مشکلات و نقاط ضعف امنیت موجود در پروتکل Kerberos پروژه SESAME ایجاد شد. SESAME مخفف Secure European System for Applications in multi-vendor Environment است. در این پروژه از ساختار رمزنگاری کلید عمومی برای توزیع کلیدهای سری و همچنین پشتیبانی از سیستمهای کنترل دسترسی بیشتر استفاده میشود.
معرفی پروتکل Kryptonite
سیستم Kryptonite متعلق به شرکت IBM است که سرویسهای احراز هویت، SSO و توزیع کلید را در یکجا در خود ارائه میدهد. این سیستم برای استفاده در کامپیوترهایی طراحی شد که قابلیتهای محاسباتی متنوعی داشتند.
یکی از تفاوتهایی که Kryptonite با Kerberos دارد این است که در این پروتکل یک رابطه Peer-to-Peer بین طرفین ارتباط برقرار میشود.
فاکتورهای برقراری یک محیط امن
امروزه یافتن یک برنامه کاربردی جدی که در آن نیازهای امنیتی و کنترل دسترسی وجود نداشته باشد، اگر ناممکن نباشد کاری بسیار سخت خواهد بود. در دنیای اینترنت و در جایی که تمامی ارتباطات، تبادلات بانکی، تماسها و… در حال الکترونیکیشدن هستند، اثبات وجود خود در اینترنت، اهمیت بسیاری پیدا میکند و با گسترش فناوری اطلاعات و ارتباطات، امنیت به یکی از مهمترین مباحث در فرآیند طراحی و مدیریت سازمانها تبدیل شده است و در تمام زیرسیستمها و سرویسهای درونسازمانی برای استفاده از خدمات اختصاصی باید به طریقی هویت خود را آشکار سازید. بطور کلی، برای برقراری یک محیط امن، چند فاکتور اساسی باید موجود باشد. این فاکتورها عبارتند از:
جامعیت:
اطمینان از اینکه اطلاعات، صحیح و کامل است؛ یعنی دستخوردگی و عدم تغییر پیام و اطمینان از آنکه دادهها با اطلاعات مخرب مثل یک ویروس آلوده نشدهاند.
محرمانگی:
اطمینان از اینکه اطلاعات تنها توسط افراد یا سازمانهای مجاز قابل استفاده است و هیچگونه فاشسازی اطلاعات برای افراد تشخیص و تأیید هویت نشده، صورت نخواهد گرفت.
شناسایی و احراز هویت:
گیرنده و فرستنده، هر دو باید بتوانند از هویت طرف مقابل خود مطمئن باشند و اطمینان از اینکه پیام حقیقت از کسی که تصور میکنید، رسیده باشد.
انکارناپذیری:
هیچیک از دو سوی ارتباط نتوانند مشارکت خود در ارتباط را انکار کنند؛ یعنی تمام امکانات شبکه بدون دردسر و زحمت در اختیار آنها که مجاز به استفاده از شبکه هستند، باشند و در ضمن هیچکس نتواند در دسترسی به شبکه ایجاد اشکال نماید.
در مقالهای که پیش رو دارید ابتدا به مبحث شناسایی و احراز هویت و انواع تکنیکهای احراز هویت بعنوان یکی از مهمترین عوامل امنیت اطلاعات پرداخته میشود. در ادامه تعاریف سیستم SSO و مکانیزم پشتیبان آن CAS بعنوان یکی از انواع سیستمهای احراز هویت ارائه میشود. درنهایت ساختار پیادهسازی SSO توضیح داده خواهد شد.
- ۱٫ Data Integrity
- ۲٫ Confidentiality
- ۳٫ Identification & Authentication
- ۴٫ Non-repudiation