مروری بر پروتکلهای احراز هویت – بخش دوم

در بخش اول مقاله مروری بر پروتکلهای احراز هویت به بررسی برخی از پروتکل های رایج در خصوص اجراز هویت پرداختیم. در این مقاله نیز به ادامه مباحث خواهیم پرداخت.

6) Kerberos protocol

نام یک پروتکل قابل اعتماد احراز هویت است که توسط انیستیتو تکنولوژی دانشگاه ماساچوست یا همان MIT تحت عنوان پروژه Athena طراحی و تولید شد . در افسانه های یونان باستان Kerberos نام سگ سه سری بود که از دروازه ورود به دنیای زیر زمین نگهبانی می کرد . با استفاده از رمزنگاری کلید متقارن Symmetric Key Cryptography ) 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 قابلیت صحت و تمامیت و محرمانگی اطلاعات را به ما می دهد اما در خصوص دسترسی پذیری و حملاتی مانند frequency analysis بصورت تخصصی نمی تواند کاری انجام دهد.

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

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

7) Sesame protocol

برای پوشش دادن و رفع یک سری از مشکلات و نقاط ضعف امنیت موجود در پروتکل 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 ضعیف عمل می کند.

8) Kryptonite protocol

سیستم 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 هماهنگ هستند .

9) NTLM protocol

پروتکل NTLM خلاصه شده عبارت NT LAN Manager است که این نام در زمانی که ویندوز پشتیبانی شبکه خود را تا حد مدیریت LANپیش برد، به آن داده شده است.
پروتکل NTLM، پروتکل پیش فرض احراز هویت در شبکه است که در سیستم عامل ویندوز NT 4.0 مورد استفاده قرار میگرفته است. NTLM یک پروتکل “Challenge Response” است که در حال حاضر برای ایجاد هماهنگی با نسخه های پایین تر از ویندوز 2000 مورد استفاده قرار میگیرد.
نکته: احراز هویت “Challenge Response” خانواده ای از پروتکل ها را شامل میشود که در آن یک طرف ارتباط سوالی (Challeng) را مطرح میکند و طرف دیگر باید برای آن جوابی معتبر (Response) ارائه کند.
پروتکل های احراز هویت NTLM شامل LAN Manager ورژن 1 و 2 و NTLM ورژن 1 و 2 است. تمام این پروتکل های در عمل یک فرایند را دنبال میکنند و تفاوت آن در میزان سطح رمزنگاری موجود در ذات امنیتیشان است.
پروتکل های احراز هویت NTLM، کلاینت را بر اساس یک مکانیزم “Challenge Response” که به سرور نشان میدهد که کلاینت پسورد متناظر با اکانت را میداند، احراز هویت میکند. پروتکل NTLM میتواند بصورت دلخواه در امنیت session و بخصوص یکپارچگی و محرمانگی پیام ها نیز مورد استفده قرار گیرد.

10) SSPI protocol

Microsoft Security Support Provider Interface (SSPI)

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

Security Support Providers (SSPs)
فرایند SSPها فرآیند اجرایی و پیاده سازی پروتکل های احراز هویتی هستند که بر روی فرمی از نوع DLL ها نصب شده اند. SSPها بصورت پیش فرض شامل پروتکل های احراز هویت Negotiate (SPNEGO)، Kerberos، NTLM، Schannel و Digest Authentication میباشند که بر روی SSPI سوار شده اند. این پروتکل های با شیوه های مختلف، امنیت احراز هویت را تامین میکنند.
نقشه کار به این صورت است که هنگامی که یه طرف ارتباط، طرف دیگرارتباط را احراز هویت میکند، درخواست های احراز هویت بسمت SSPI مسیردهی و هدایت میشوند و از آنجا SSPI این درخواست ها را بسوی یکی از SSP هایش میفرستند تا فرآیند احراز هویت را تکمیل نماید.

11) Negotiate protocol

این مکانیزم به عنوان یک لایه اپلیکیشن مابین SSPI و دیگر SSP ها عمل میکند. این SSP برای مذاکره با پروتکل احراز هویت خاصی مورد استفاده قرار میگیرد.
بصورت پیش فرض این خود اپلیکیشن است که SSP خاصی مانند Kerberos و یا NTLM را برای پردازش درخواست Logon انتخاب میکند اما اگر اپلیکیشن Negotiate SSP را انتخاب کند، Negotiate درخواست اپلیکیشن را تحلیل کرده و آن را بسمت بهترین SSP از لحاظ پیکربندی امنیتی سیستم هدایت میکند.
در حال حاضر Negotiate SSP انتخاب هایش را از میان دو پروتکل Kerberos و NTLM انجام میدهد. بصورت پیش فرض پروتکل Kerberos انتخاب اول Negotiate SSP خواهد بود مگر آنکه این پروتکل در یکی از دو طرف ارتباط نتواند مورد استفاده واقع شود و یا آن که محدودیت هایی مانند وجود User principal name (UPN)، Service Principal Name (SPN و یا NetBIOS account name در درخواست مانع از تکمیل فرآیند احراز هویت با Kerberos شود.

12)  Digest Authentication protocol

این پروتکل (Digest )یک استاندارد صنعتی بر اساس پروتکل احراز است که در (Lightweight Directory Access Protocol (LDAP و احراز هویت وب مورد استفاده قرار میگیرد. پروتکل Digest از نوع پروتکل های “challenge-response” است که اعتبار اکانت را از طریق شبکه و با استفاده از کلیدهای مخفی (Secret Keys) مانند یک هش MD5 یا message digest (الگوریتمی در MD5)، جابجا میکند.

13)  Schannel protocol

این پروتکل که مخفف شده Secure channel است، پیاده سازی های SSP در زمینه پروتکل های احراز هویت و استاندارد اینترنت SSL/TLS میباشد. Schannel در احراز هویت وب سرور مانند دسترسی کاربر به یک وب سرور امن مورد استفاده قرار میگیرد. از پروتکل های SSL/TLS در احراز هویت مشترک دو بخش کلاینت و سرور و همچنین در رمرنگاری پیام های بین آن ها استفاده میشود. پروتکل های SSL/TLS با ورژن های 2.0 و 3.0 بر اساس رمزنگاری کلید عمومی (Public Key) کار میکنند.

, , ,

Related Posts

برای نوشتن دیدگاه باید وارد بشوید.
فهرست