- SAML چیست ؟
- SAML Assertions چیست ؟
- SAML-related terms چیست ؟
- توکنهای SAML Tokens چیست ؟
- پروتکل Lightweight Directory Access Protocol
- sso چیست ؟
- SAML چه مشکلاتی را برطرف میکند؟
- آشنایی با ارایهدهندگان خدمات هویتی
- SAML چگونه کار میکند؟
- کسبوکارها و مدیران چگونه میتوانند از SAML استفاده کنند؟
- نکاتی مهم درباره Golden SAML و سولارویندز چیست ؟
- استاندارد SAML ، پروتکل احراز هویت مدرن
- مزایای پروتکل SAML
- آیا پروتکل SAML آسیب پذیر هست؟
- چطور آسیب پذیری پروتکل SAML را کاهش دهیم؟
شاید شما هم نام «زبان نشانه گذاری ادعای امنیت (Security Assertion Markup Language)» یا به اختصار SAML را شنیده باشید و احتمالاً حداقل روزی یکبار نیز از آن برای ورود به سامانه های سازمانی تان استفاده کنید. با این حال، آیا میدانید SAML چیست، چگونه کار میکند و چرا باید با آن آشنا شوید؟ قرار در این مقاله از فراست در مورد هر آن چیزی که باید در مورد پرتوکل SAML بدانید را به شما بگوییم. پس با ما تا انتهای این مقاله همراه باشید.
SAML چیست ؟
SAML یک استاندارد مبتنی بر زبان نشانهگذاری گسترده (Extensible Markup Language) یا XML است که برای برقراری ارتباطات استاندارد، بین ارایهدهنده هویت و ارایهدهندگان خدمات یا به عبارت دیگر انجام فرایند احراز هویت در برنامههای کاربردی تحت وب مثل باکس، مایکروسافت 365، سِیلزفورس و جیمیل از آن استفاده میشود.
این پروتکل اقدامات یکپارچهسازی، مدیریت هویت و شناسایی یکپارچه (SSO) را انجام میدهد. این کار به معنای آن است که کاربر تنها پس از یکبار احراز هویت و وارد کردن نام کاربری و رمز عبورش، دیگر مجوز ورود به هر سامانه ای که از این استاندارد استفاده میکند را خواهد داشت. در واقع یکپارچهسازی هویت، امکان ذخیره هویت کاربران در برنامهها و کسبوکارهای مختلف را فراهم می کند. با وجود SAML، سامانهها و کسبوکارها میتوانند به کاربران یکدیگر اعتماد کنند.
زبان نشانهگذاری ادعای امنیت، پروتکل تصدیق هویت در سامانههای نرم افزاری تحت وب است که کاربران معمولاً به صورت روزانه از آن برای ورود به سامانهها استفاده می کنند. این زبان باعث آسانتر شدن احراز هویت برای کاربران و مدیران سامانهها میشود. به عبارت دیگر پروتکل SAML ارتباط امنی را بین سامانهها برقرار کرده و به کاربران امکان میدهد تا با یکبار استفاده از نام کاربری و کلمه عبور خود، مجوز دسترسی به سامانه های مختلف را به دست آورند.
Identity Federation، یا فدراسیون هویت، به فرایند واگذاری مسئولیت احراز هویت به ارائهدهندگان هویت معتبر اشاره دارد. استفاده از پروتکلهای مانند SAML، OAuth و WS-Fed برای ارتقاء امنیت و تجمیع هویت در اپلیکیشنها و خدمات وب بسیار مفید است.
SAML Assertions چیست ؟
اظهارات SAML مجموعهای از اطلاعات تصدیق هویت، ویژگیها، یا مجوزها هستند که توسط ارائهدهنده هویت به ارائهدهنده خدمات ارسال میشوند. این اظهارات میتوانند تأیید یا عدم تأیید هویت کاربر را به ارائهدهنده خدمات اعلام کنند.
SAML-related terms چیست ؟
به کاربران اجازه میدهد که تنها یکبار اطلاعات ورود خود را وارد کنند و سپس به چندین برنامه و خدمت دسترسی داشته باشند. این به کاربران امکان میدهد که بهوسیله یک ورود مشترک به تمام برنامههای خود دسترسی داشته باشند.
توکنهای SAML Tokens چیست ؟
توکنهای SAML اسنادی با قالب XML هستند که اطلاعات تصدیق هویت و اظهارات SAML را حاوی میشوند. این توکنها توسط ارائهدهنده هویت دیجیتالی امضا میشوند و بهعنوان مدرک به ارائهدهنده خدمات ارسال میشوند.
پروتکل Lightweight Directory Access Protocol –
یک استاندارد باز است که برای دسترسی به اطلاعات دایرکتوری از طریق شبکه IP استفاده میشود. LDAP و SAML هر دو پروتکلهای احراز هویت هستند، اما برای اهداف متفاوتی استفاده میشوند. LDAP معمولاً برای احراز هویت داخلی مورداستفاده قرار میگیرد، درحالیکه SAML به اعتبارنامههای کاربر به برنامههای ابری گسترش میدهد.
sso چیست ؟
Single Sign-On (SSO) یک خدمت تمرکزی برای تأیید هویت است که به کاربر اجازه میدهد تا با استفاده از یک حساب کاربری (نام کاربری و رمز عبور) به چندین برنامه یا وبسایت دسترسی داشته باشد. پیادهسازی SSO در یک سازمان به مدیریت راحتتر رمز عبورها و افزایش امنیت کمک میکند، زیرا به کاربران این امکان را میدهد که به برنامههای موجود در داخل و بیرون شرکت دسترسی داشته باشند.
این اصطلاحات و مفاهیم به بهبود تفهیم و اجرای سیستمهای احراز هویت و تجمیع هویت کمک میکنند.
حتما این مقاله را هم بخوانید: احراز هویت بیومتریک چیست؟ ویژگیها و انواع بیومتریکSAML چه مشکلاتی را برطرف میکند؟
معمولاً سامانهها برای حفظ دادهها و اعتبارنامههای مربوط به حسابهای کاربری و همچنین ذخیره تمامی دادههای مورد نیاز برای اعتبارسنجی هویت کاربران، یک پایگاه داده یا پروتکل دسترسی سبکوزن راهنما (LDAP) دارند.
هنگامی که فردی قصد ورود به سامانه را داشته باشد این مخزن، اطلاعات کاربر را بررسی و اعتبارسنجی نموده و سپس آنها را ثبت میکند؛ اما وقتی قرار است شخصی وارد چندین سامانه شود که هر کدام از آنها نیازمند اطلاعات هویتی مختلف است، از این جهت که کاربران باید اطلاعات ورود به همه حسابهای کاربری شان را حفظ کرده و مدیران هم باید این اطلاعات را ثبت و در صورت نیاز لغو کنند، پس ممکن است مشکلاتی ایجاد شود.
فناوری SAML در تلاش برای رفع چنین چالشهایی بوده و فرایند احراز هویت برای ورود به وب سایتها و برنامههایی که از SAML پشتیبانی میکنند را سادهتر کرده است. SAML پرکاربردترین پروتکل برای شناسایی یکپارچه بر مبنای وب محسوب میشود. هر سازمان یک صفحه ورود (لاگین) داشته و میتواند هر برنامه تحت وب یا ارایهدهنده سرویس (SP) که از پروتکل SAML پشتیبانی میکند را انتخاب کند تا کاربران برای ورود به تمام برنامههای کاربردی تحت وب آن، تنها به یکبار احراز هویت نیاز داشته باشند.
اخیراً به دلیل ایجاد یک روش حمله جدید با نام “Golden SAML” که در حادثه امنیتی SolarWinds از آن استفاده شد، پروتکل SAML دوباره خبرساز شده است. این روش، امکان دسترسی به هر سرویس یا دارایی که از استاندارد احراز هویت SAML استفاده میکند را به مهاجمان میدهد. استفاده گسترده از این روش، اهمیت پیروی از اصول امنیتی را برای مدیریت دسترسی کاربران، بیش از پیش نشان میدهد.
به گفته توماس هارجونو، مدیر ارشد فناوری در بخش مهندسی و علوم ارتباطی مؤسسه فناوری ماساچوست و رئیس خدمات امنیتی OASIS بیان کرده که نیاز به وجود استانداردی مثل SAML، در اواخر دهه 90 میلادی و با افزایش تعداد وب سایتهای تجاری شکل گرفته است. او گفته که هر فروشندهای به دنبال مالکیت فرایند احراز هویت مشتریان خود بود که این امر منجر به ایجاد مشکل برای کاربران گردید چرا که باید نام کاربری و کلمه عبور دهها حساب کاربری مختلف را به خاطر میسپردند.
هارجونو میگوید: «مشکل کلمه عبور، یک مشکل 30 ساله است. ایده SAML این بود که آیا میتوان یک موجودیت خاص به نام «ارایهدهنده هویت» ایجاد کرد که در واقع موجودیت مجوزدهنده باشد؟».
حتما این مقاله را هم بخوانید: چطور یک رمز عبور امن بسازیم؟آشنایی با ارایهدهندگان خدمات هویتی
وظیفه یک ارایهدهنده خدمات هویتی (IdP)، اعتبارسنجی هویت کاربران و برقراری ارتباط با SP برای ارایه مجوز ورود افراد به سامانه ها است تا بتوانند با کمترین تعداد احراز هویت (لاگین)، به منابع بیشتری دسترسی داشته باشند.
امروزه چندین IdP وجود دارد که بعضی از مهمترین آنها عبارتند از: Okta، OneLogin، Microsoft Active Directory Federation Services، Microsoft Active Directory Federation Services و Ping Identity است. وجود SAML برای اعلام این موضوع که IdP کاربر را احراز هویت کرده، ضروری است. هارجونو تعامل بین SP، IdP و کاربر را «یک رابطه یا جریان مثلثی» میداند.
SAML چگونه کار میکند؟
SAML به SPها یا برنامهها امکان میدهد احراز هویت را به یک سرویس اختصاصی یا IdP دیگر محول کنند. SPها به گونهای پیکربندی میشوند که در فرایندهای هماهنگی و یکپارچهسازی، به IdPهای خاصی اعتماد کنند. برای SP مهم نیست که IdP چگونه هویت کاربر را بررسی و تأیید میکند بلکه فقط احراز هویت و تأیید کاربر برای آن اهمیت دارد. از طرف دیگر کاربر نیز فقط به یک نام کاربری و کلمه عبور نیاز دارد که توسط ارایهدهنده خدمات هویتی مدیریت میشود.
جان مگوایر، مهندس ارشد نرمافزار برای تشریح این سازوکار از مثال ورود به کنفرانس تماسی استفاده میکند. فرض کنید کارمندی برای ورود به یک جلسه Webex برای شرکت در کنفرانسی ویدیویی، بر روی لینکی کلیک کرده و پس از ورود به صفحه Webex بررسی میشود که از چه IdP برای احراز هویت او استفاده شده است (نکته قابل توجه این است که کسبوکارها این تنظیمات را از قبل انجام میدهند).
سپس Webex کاربر را به IdP خودش هدایت کرده و پیامی حاوی درخواست احراز هویت را برای وی ارسال میکند. IdP برای انجام این کار از چند روش می تواند استفاده کند که عبارتند از:
- وضعیت حساب کاربری و اعتبارنامه کاربر را بررسی کند
- دستگاهی که از آن برای دسترسی به برنامه استفاده شده است را بررسی نماید
- شبکهای که کاربر در آن است را بررسی کند
همچنین Webex میتواند از احراز هویت چندمرحلهای استفاده کند. در این صورت راهبر برنامه، مراحل لازم برای احراز هویت وی را تنظیم میکند. مگوایر میگوید: «همه این عوامل مشخص میکند که اولاً چه سطحی از احراز هویت باید مورد استفاده قرار گیرد؛ از جمله احراز هویت تک عاملی، دوعاملی یا سه عاملی و ثانیاً اینکه آیا اصلاً اجازه احراز هویت را داد یا خیر».
برای مثال اگر IdP متوجه شود امکان شناسایی موقعیت مکانی کاربر وجود ندارد، اجازه احراز هویت را نخواهد داد. IdP این دادهها را بررسی کرده و یک پیام به نام «ادعای SAML» تولید میکند که هویت کاربر و ویژگیهای او در آن تأیید شده و برای اثبات اعتبار آنها از الگوریتمهای رمزنگاری استفاده مینماید. سپس این دادهها را از طریق فرایند ریدایرکت مرورگر (تغییر فرایند آدرس سایت یا تغییر URL آن)، به Webex که امضا را اعتبارسنجی و دادههای کاربر را بررسی میکند، ارسال نموده و در صورت تأیید، مجوز دسترسی کاربر به برنامه مورد نظر را صادر میکند.
جیمی پرینگل، مهندس ارشد نرمافزار در این خصوص گفته است که: «همه این ارتباطات با استفاده از مرورگر کاربر صورت میگیرد. دو طرف هیچ وقت با یکدیگر گفتگو نمیکنند». بنابراین معمولاً چندین SP برای یک IdP تنظیم میشود. در چنین مواقعی ممکن است کاربر احراز هویت شده، داشبوردی را مشاهده کند که در آن سایر SPهای قابل دسترس برای وی ظرف 6 ساعت آینده (یا مدتی معین برای حفظ اعتبار نشست) هم مشخص شدهاند.
احراز هویت مبتنی بر SAML به دو روش امکان پیاده سازی دارد. در فرایندی که توسط SP آغاز میشود، کاربر سعی میکند به درگاه وب ارایهدهنده سرویس وارد شود. به جای درخواست اطلاعات اعتبارنامه، مرورگر همراه با یک درخواست SAML برای احراز هویت، به سمت این IdP هدایت میشود. در فرایندی نیز که IdP آن را آغاز کرده باشد، کاربر به IdP وارد و احراز هویت شده، سپس با ادعای SAML به سمت SP هدایت میشود. بعضی از SPها روش شروع فرایند توسط SP را پشتیبانی نمیکنند و در چنین مواردی تنها میتوان از روش دوم استفاده کرد.
کسبوکارها و مدیران چگونه میتوانند از SAML استفاده کنند؟
از زمان طراحی و توسعه SAML، این پروتکل تبدیل به استانداردی برای احراز هویت یکپارچه بر مبنای وب شده و توانسته خیلی سریع توجه مشاغل را به خود جلب کرده تا برای احراز هویت کارمندانشان از آن استفاده کنند.
مدیر ارشد تحقیقات در گروه توانمندسازی کسبوکار امن مؤسسه گارتنر میگوید: «با افزایش اهمیت مدیریت دسترسی، همواره شرکتهای بیشتری از برنامههای در خارج از محیط شبکه خود استفاده میکردند. به این ترتیب اهمیت SAML برای سازمانها و کاربرانی که نیاز به احراز هویت یکپارچه داشتند، بیشتر شد».
مزایای این رویکرد برای کاربران و مدیران شبکهها مشخص است. کاربران دیگر نیازی به وارد کردن اطلاعات اعتبارنامههای دیجیتال (نام کاربری و کلمه عبور) در برنامه های مختلف ندارند. در مجموع همانطور که ارن پارکی، مدیر ارشد راهبرد امنیت در شرکت Okta گفته، احراز هویت به روشی امنتر انجام خواهد شد.
پس از انجام احراز هویت، کاربران میتوانند در بین سامانههای مختلف جا به جا شوند، بدون اینکه نیاز به چندین بار احراز هویت داشته باشند. پارکی همچنین گفته: «این روش از نظر امنیت برای کاربر، کارایی بیشتری دارد؛ چون کاربر، اطلاعات اعتبارنامه دیجیتالی خودش را تنها در سروری که این اطلاعات را دارد یعنی محلی که حساب کاربری او در آن ایجاد شده است، وارد میکند. اگر قرار باشد وارد یک برنامه شوید دیگر لازم نیست به آن برنامه اعتماد کنید تا اطلاعات اعتبارنامه شما را مدیریت کند».
به گفته مگوایر، SAML به مدیران امکان میدهد تا از یک نقطه دسترسی واحد برای پیادهسازی کنترلهای امنیتی در برنامههای مختلف استفاده کنند. بنابراین به جای اینکه نیاز به نگرانی درباره 20 برنامه مختلف و روشهای احراز هویت آنها داشته باشند میتوانند IdP را برای بررسی هویت همه کاربران شان تنظیم کنند.
به این ترتیب مدیران میتوانند سیاستهایی مثل احراز هویت چندعاملی را به سرویسهایی که از آنها پشتیبانی نمیکنند، بیافزایند. همچنین یک نقطه واحد نیز برای بررسی و تحقیق درباره حوادث امنیتی خواهند داشت. با وجود اینکه سادگی و راحتی پیادهسازی SAML و امنیت آن هم برای کاربران و هم برای مشاغل اثبات شده است ولی باید به نواقص و معایب آن که با ظهور فناوریهای جدید برجستهتر میشوند نیز توجه داشت.
کلی میگوید: «این پروتکل نیز معایب خاص خود را دارد؛ از جمله اینکه فاقد امکانات و قابلیتهای موجود در سایر پروتکلهای جدیدتر و مدرنتر است. با این حال در صورتی که یک برنامه کاربردی تحت وب داشته باشید که به صورت بومی از آن پشتیبانی کند، کار با این پروتکل برای شما آسان بوده و به حفاظت از امنیت سازمان کمک میکند».
نکاتی مهم درباره Golden SAML و سولارویندز چیست ؟
شاید در خبرها حادثه امنیتی شرکت سولارویندز که باعث جلب توجه به روش حمله Golden SAML شد و نام پروتکل SAML را شنیده باشید. در این حمله، وقتی کاربری سعی در دسترسی به یک سرویس داشت و درخواست او به سرویسهای همبسته اکتیو دایرکتوری (Active Directory Federated Services) منتقل میشد مهاجم با استفاده از کلید سرقت شده، پاسخ SAML را جعل میکرد تا بتواند دسترسی غیرمجاز مدنظرش را به دست آورد.
Golden SAML به مهاجمان امکان میدهد به هر برنامه کاربردی که از احراز هویت SAML پشتیبانی میکند، دسترسی دائم پیدا کنند. هر چند کارشناسان تأکید دارند این حمله، پروتکل SAML را نقض نکرده اما کلی در این باره میگوید:«شاید این حادثه باعث شود سایر مهاجمان به دنبال اجرای حملاتی مشابه، با هدف دستیابی به اطلاعات حساس باشند».
او همچنین گفته: «اگرچه نفوذی به خود SAML صورت نگرفته ولی مهاجمان به اعتبارنامههایی با سطوح دسترسی قابل توجه دسترسی پیدا کردهاند. آنها با در اختیار داشتن این اطلاعات توانستهاند اعتبارنامههای SAML معتبری را صادر کنند. اگر از این دیدگاه به ماجرا نگاه کنیم، در صورتی که سطوح دسترسی را در محیط به خوبی مدیریت نکنید، مهاجمان میتوانند از این روش استفاده کنید».
بنابراین نکته مهمی که وجود دارد این است که SAML کاملاً امن است. به گفته هارجونو بسیاری از مشکلات مربوط به SAML در واقع ناشی از پیکربندی نادرست یا سوءاستفاده از این پروتکل هستند. برای مثال ممکن است یک توسعهدهنده تازهکار فراموش کند قابلیت خاصی را پیادهسازی کند یا گروهی که بر روی SAML کار میکنند، آن قابلیت را به صورت کامل پیادهسازی نکرده باشند.
مگوایر میگوید: «سختترین بخش کار با SAML، پیادهسازی آن است. هر برنامه ای که کاربران میبایست وارد آن شوند، خواستار اطلاعات کمی متفاوت با سایر برنامه ها است». شاید یک برنامه، نام کاربری یا آدرس ایمیل یا هر دوی آنها را با استفاده از روشهای نامگذاری مختلف درخواست کند.
یکی از مشکلات SAML این است که حوزه ویژگیها و مشخصات آن بسیار وسیع است و خیلی هم دقیق و مشخص نیست. بنابراین این موضوع می تواند تفاوتهایی را در پیادهسازی آن ایجاد کند. بعضی از SPها اسناد مبهمی درباره نحوه پیکربندی SAML ارایه میکنند که باعث سختتر شدن پیادهسازی آن میشود.
به گفته پرینگل برای ارسال پیام SAML مناسب باید فیلدهای اطلاعاتی خاصی پر شوند. او میگوید: «ما به عنوان یک ارایهدهنده سرویسهای هویتی شاهد هستیم که ارایهدهندگان سرویسهای مختلف برای بعضی از این حوزهها که تعریف دقیقی هم ندارند از تفاسیر متفاوتی استفاده میکنند و ممکن است IdPها نیز چنین اشتباهی را مرتکب شوند».
عواقب پیکربندی اشتباه می تواند با توجه به نوع پیادهسازی SP متفاوت باشد. ممکن است کاربران از برنامه خارج شوند، امکان احراز هویت آنها وجود نداشته باشد یا پس از ورود، اطلاعات نادرستی را مشاهده کنند. در بعضی از مواقع حتی احتمال دارد دسترسی کاربران، قطع شده و برای رفع مشکل نیاز به تماس با SP داشته باشند.
استاندارد SAML ، پروتکل احراز هویت مدرن
پرتوکل SAML یکی از اولین استانداردهایی بود که برای حل مشکل احراز هویت مبتنی بر وب طراحی شد و به همین دلیل کاربرد وسیعی نسبت به سایر پروتکل های مشابه دارد. بیشتر سرویسهای ابری که به کسبوکارها فروخته میشوند امکان یکپارچهسازی آنها با SAML وجود دارد. عموماً IdPها نیز اسنادی از برنامهها که فرایند ادغام و یکپارچهسازی قبلاً در آنها صورت گرفته است را دارند.
پرتوکل SAML عضو خانوادهای بزرگ از پروتکلهای احراز هویت مدرن است که استانداردهایی مثل OAuth و Open ID Connect (OIDC) هم در این خانواده قرار دارند. از پروتکل OAuth برای احراز هویت کاربران استفاده شده و به برنامهها امکان میدهد از طرف کاربر، اقدامات خاصی را انجام داده یا به منابع ویژه ای دسترسی پیدا کند؛ بدون اینکه نیازی به اعتبارنامه آنها داشته باشد. پروتکل OIDC نیز بر روی OAuth ایجاد شده و یک استاندارد باز است که کسبوکارها می توانند از آن برای اعتبارسنجی هویت کاربران استفاده کنند. پارکی این استاندارد را «نسخه مدرن SAML» مینامد.
او میگوید: «تغییرات اساسی زیادی در دنیای فناوری ایجاد شده که SAML برای مقابله با آنها رشد و توسعه نیافته است». وی برای مثال به “OpenID Connect” اشاره میکند که برای کار با گوشیهای تلفن همراه هوشمند ساخته شده و به جای XML، با JSON طراحی شده است. او معتقد است که: «به نظرم وقتی قرار است از SAML برای فناوریهای مدرن استفاده کنید، خیلی سریع با محدودیت روبرو میشوید».
به گفته پارکی شاید SAML به بحث یکپارچهسازی احراز هویت پرداخته باشد اما برای دنیای مبتنی بر API که امروزه در آن زندگی میکنیم، طراحی نشده است. برنامههای امروزی علاوه بر دانستن هویت کاربر نیاز به دسترسی به API هم دارند که به گفته پارکی، OIDC و OAuth این کار را با بهرهوری بیشتری انجام میدهند.
کلی میگوید: «همه کارها با API انجام میشود. توسعهدهندگان به همین روش کار توسعه را انجام میدهند. آنها ترجیح میدهند در مسیر توسعه برنامهها از APIها برای احراز هویت استفاده کنند».
به این ترتیب امکانات و عملکرد OAuth و OIDC همواره بیشتر و پیچیدهتر میشود. برای مثال SAML سادهتر است اما فاقد قابلیتهای جانبی پردازشهای مبتنی بر API است. هر چند کلی اعتقاد دارد پذیرش و استفاده از OAuth و ODIC افزایش پیدا میکند اما پیش بینی کرده که پیشی گرفتن آنها از SAML از نظر میزان کاربرد، 8 الی 10 سال زمان ببرد.
مزایای پروتکل SAML
پروتکل SAML مجموعهای از مزایای ویژهای را برای کاربران و سازمانها فراهم میکند. از میان این مزایا، کاهش پیچیدگی در استفاده از چندین برنامه وب به طور همزمان بهعنوان یکی از مهمترین آنها برجسته است. مزایای ویژه دیگر شامل موارد زیر میشود:
1. بهبود تجربه کاربری
استفاده از پروتکل SAML نهتنها ورود به برنامهها و سامانهها را آسان میکند، بلکه کاربران را در بهرهوری بیشتر نیز یاری میرساند. این به آن دلیل است که کاربران بهراحتی به ابزارهای موردنیاز برای انجام وظایف خود دسترسی پیدا میکنند.
2. کاهش خطر از دست رفتن اعتبارنامه
داشتن حسابهای کاربری متعدد معمولاً منجر به فراموشی گذرواژهها توسط افراد میشود یا در شرایط بدتر، افراد ممکن است گذرواژهها را یادداشت کنند که خطر سرقت اطلاعات افزایش یابد، اما با استفاده از پروتکل SAML کاربران فقط نیاز به یک ترکیب نام کاربری و رمز عبور دارند.
3. افزایش امنیت
پروتکل SAML یک تأیید اعتبار واحد را از یک ارائهدهنده هویت امن ارائه میدهد و اطلاعات هویتی کاربران را به ارائهدهندگان خدمت انتقال میدهد. این جریان اطمینان میدهد که مدارک هویتی تنها به طور مستقیم ارسال میشوند و ریسکهایی مانند حملات فیشینگ یا سرقت هویت را به حداقل میرساند.
4. کاهش هزینهها
پیادهسازی پروتکل SAML به صرفهجویی قابلتوجهی در زمان مدیران منابع میکند، چرا که به شما کمک میکند درخواستهای پشتیبانی و بازنشانی رمز عبور را کاهش دهید. همچنین با کمک بهحداقلرساندن هزینههای توسعه (که اغلب با روشهای احراز هویت اختصاصی اتفاق میافتد)، اقتصادیتر میشود.
5. مدیریت سادهتر کاربران
وجود کارمندانی که از چندین برنامه مختلف استفاده میکنند میتواند برای ادارات فناوری اطلاعات مشکلساز باشد که باید تغییرات در حقوق دسترسی کارمندان را مدیریت کنند، بهخصوص در صورت تغییر نقش کارمندان یا جذب افراد جدید به شرکت است. پروتکل SAML این مسئله را ساده میکند چرا که هر کاربر میتواند توسط یک دایرکتوری متمرکز مدیریت شود.
با استفاده از پروتکل SAML، امکان بهرهبرداری از این مزایا و بهرهوری بهتر در سیستمها و سرویسهای آنلاین فراهم میشود.
آیا پروتکل SAML آسیب پذیر هست؟
SAML یک پروتکل امنیتی برای تبادل اطلاعات هویتی و اجازه دسترسی استفاده میشود. این پروتکل طراحی شده تا امکان استفاده از آن در محیطهای مختلف و برای موارد متعددی را فراهم کند. طراحان SAML هنگام توسعه این پروتکل، با درنظرگرفتن انعطافپذیری و قابلیت اطمینان بالا عمل کردهاند.
در ساختار SAML، ارسال signature بهتنهایی برای اعتبارسنجی کافی نیست و باید همراه با محتوای contentToSign ارسال شود. این رویکرد به نظر میرسد که ممکن است انعطافپذیری را کاهش دهد. اگر از روش دیگری استفاده میشد و signature بهصورت جداگانه ارسال میشد، ممکن بود که ساختار و انتقال اطلاعات به شکلی سادهتر انجام شود.
بااینحال، انتخاب طراحان SAML برای جایدادن تمام اطلاعات در یک فایل XML بهسادگی و انعطافپذیری بیشتر در ارتباطهای میان سرور و مشتری منجر شده است. این انتخاب به معنای این است که میتوان تمام اطلاعات مرتبط باهویت و اجازه دسترسی را در یک فایل قرارداد و بهسادگی آن را انتقال داد.
از نظر فنی، در ساختار فعلی SAML، signature در سطح پایینتری از contentToSign قرار دارد. این موقعیت ممکن میکند که signature در فرایند ارزیابی نادیده گرفته شود؛ اگر signature به contentToSign اضافه میشد، این میتوانست به مشکلات فنی بسیاری منجر شود.
در عمل، استفاده از امضای خروجی عملیات واکاوی XML بسیار دشوار است، زیرا نیاز بهدقت بسیار بالا برای حفظ امضای ورودی از خروجی عملیات واکاوی دارد. از آنجا که خروجی عملیات واکاوی بسته به کتابخانهها و زبانهای برنامهنویسی ممکن است متفاوت باشد، امضای خروجی نیز ممکن است متغیر باشد؛ بنابراین برای ارزیابی signature، ابزار XML dsig استفاده میشود که ترتیب ثابتی از بایتها را تضمین میکند و این امر امکان ارزیابی بر اساس بایت را فراهم میکند.
به طور خلاصه، امضا و اعتبارسنجی زیرشاخههای فایلهای XML دشواری دارد، اما ابزارها و روشهایی وجود دارند که این چالش را برطرف میکنند. شواهد تجربی نیز نشان میدهد که این یک مسئله امنیتی جدی است. به نظر میرسد که تمام پروتکلهایی که از رویکردهای مشابه با SAML استفاده میکنند، در معرض آسیبپذیریهای امنیتی قوی هستند.
چطور آسیب پذیری پروتکل SAML را کاهش دهیم؟
جهت کاهش آسیبپذیریها و بهمنظور افزایش امنیت در مسائل امنیتی، میبایست فرایند ارزیابی پایداری قبل از پردازش فایلهای XML انجام شود. به طور خلاصه، برای ارزیابی امضا بهجای استفاده از روشهای ارزیابی مبتنی بر بایت، میتوان مراحل زیر را طی کرد:
ارزیابی پایداری round-trip : در این مرحله، فایل XML باید بهصورت کامل تجزیهوتحلیل شود و سپس مجدداً ترکیب شود. این عملیات برای اطمینان از اینکه اطلاعاتی در هنگام تجزیهوتحلیل فایل گم نشده باشد و همچنین تغییرات ناخواستهای در فایل ایجاد نشده باشد، انجام میشود.
انجام مجدد واکاوی فایل XML : پس از مرحله اول، فایل XML مجدداً باید تجزیهوتحلیل شود. این اقدام از جهت اطمینان از صحت محتوای فایل بسیار مهم است.
ایجاد canonical XML : در این مرحله، یک نسخه کانونیکال از فایل XML ایجاد میشود. این نسخه کانونیکال با استفاده از قوانین و تبدیلات پیچیدهتر از XML design، بازسازی میشود. این کار از جهت حفظ یکنوایی و تبدیل محتوای XML به شکل استاندارد و تعیینی مهم است.
همانطور که ذکر شده، این مراحل پیچیده هستند و از این پیچیدگی میتواند خطاها و مشکلات امنیتی به وجود بیاید. به همین دلیل، انجام صحیح و دقیق این مراحل ضروری است تا از آسیبپذیریها جلوگیری شود و امنیت اطلاعات حفظ شود.
چه پرتوکل های امنیتی، جایگزین SAML هستند
پروتکل SAML از مزایای مهمی در زمینه تجمیع هویت برخوردار است، اما همچنین استانداردهای جایگزینی و انتخابهای دیگری نیز در دسترس هستند که به مشاغل و خدمات در امور ایمنی و تأیید هویت کاربر کمک میکنند. در زیر، تعدادی از این استانداردهای جایگزین را معرفی میکنیم:
OpenID
OpenID یک استاندارد هویت منبعباز است که به کاربران اجازه میدهد بدون نیاز بهاشتراکگذاری اطلاعات اضافی وارد چندین وبسایت و برنامه شوند. این استاندارد به کاربران امکان میدهد باهویت OpenID خود به وبسایتها و برنامههای مختلف دسترسی پیدا کنند.
OAuth
OAuth یا OpenAuth استانداردی است که به طور گسترده توسط گوگل و توییتر توسعه داده شده است. این پروتکل برای سادهتر کردن ورود به وبسایتها استفاده میشود. در اصل، OAuth به تبادل اطلاعات هویتی بین برنامهها کمک میکند و در این زمینه به SAML شباهت دارد. بااینحال، OAuth از نشانههای JSON برای تأیید اعتبار کاربران استفاده میکند که آن را برای استفاده در برنامههای موبایل مناسب میکند.
WS-Federation
این پروتکل برای تأیید اعتبار از ارائهدهندگان خدمت به ارائهدهندگان هویت استفاده میشود. در مقایسه با SAML، WS-Federation به نظر میرسد که اجرای آن برای توسعهدهندگان سادهتر است و توسط ارائهدهندگان هویتی مانند Active Directory بهخوبی پشتیبانی میشود. این پروتکل معمولاً برای اتصال به سیستمهای سنتی مناسبتر به نظر میآید.
هریک از این استانداردها مزایا و معایب خود را دارند و انتخاب بین آنها باید بر اساس نیازها و شرایط خاص شرکت و سرویسها انجام شود. این انتخاب میتواند به بهبود امنیت و تجمیع هویت کمک کند.
حتما این مقاله را هم بخوانید: احراز هویت دو مرحلهای چیست و چرا همین حالا باید آن را فعال کرد؟