حجت رستمی
دانشجوی رشته شبکه و متخصص Passive

کربروس چیست و چگونه کار می کند؟ معرفی روش کار Kerberos

با سلام خدمت دوستان گرامی ، چندی پیش بود که در رابطه با سیستم های کنترل دسترسی در امنیت اطلاعات مطالبی رو عنوان کردم در ادامه قصد این رو داشتم که به بررسی عملکرد کربروس در سیستم های کنترل دسترسی بپردازم لذا قبل از هر چیز شما عزیزان را به مطالعه مقاله مهندس نصیری در رابطه با کاملترین معرفی انواع روشهای احراز هویت + پروتکل ها و تکنیک هادعوت میکنم که در رابطه با Kerberos و تاریخچه و نوع کاری آن توضیحات لازم را داده اند بنابر این من فقط به مکانیسم کاری پروتکل Kerberos میپردازم که امیدوارم مفید واقع شود در ادامه با جزئیات بیشتری از نحوه تبادل پیام میان client و server TGS و سرور تایید هویت و سروری که به ارائه خدمات میپردازد آشنا میشویم.

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران

1-تبادل اولیه در Client-TGS Server

برای شروع درخواست یک خدمات از یک server یا سرویس , کاربر یک شناسه یا ID و یک رمز عبور را بر روی client وارد میکند . client به طور موقتی با استفاده از تابع one-way hash یک (Kc) یا کلیدی امن از رمز عبور میسازد (تابع one-way hash یا تابع هش یکطرفه انجام یک عملیات ریاضی رمزنگاری است که برگشت پذیر نمیباشد )

در ادامه کلاینتها یک درخواست احراز هویت به server TGS را بااستفاده از یک شناسه یا ID به صورت clear ارسال میکنند. به این نکته توجه داشته باشید که بدون اینکه رمز عبور یا کلید امن (secret key) را ارسال بکنند این کار انجام میشود. اگر کلاینت در پایگاه داده یا database سرور احراز هویت (Authentication Server) وجود داشته باشد سرور TGS یک (client//TGS session key (Kc, tgs , را به درخواست کننده برمیگرداند که با استفاده از یک کلید مخفی برای کلاینت رمزنگاری میشود و یک( Ticket Granting Ticket (TGT که با یک کلید امن (K tgs ) رمزنگاری شده است از طرف server TGS ایجاد میشود

بنابر این نه کلاینت و نه هیچ نهاد دیگری بجز server tgs نمیتواند از محتویات tgt اطلاع یابد زیرا که فقط server tgs از Ktgs اطلاع دارد . tgt شامل شناسه یا id کلاینت , آدرس شبکه کلاینت , شروع و پایان زمانی که Ticket برای کلاینت معتبر است( valid (V و همچنین client//TGS session key که همان کلید برقراری نشست برای کلاینت است میشود این پیام اولیه از server tgs به کلاینت با استفاده از نمادها به شکل زیر نمایش داده میشود.

وب سایت توسینسو

در ادامه کلاینت با استفاده از کلید امنی که تحت عنوان (Kc) در اختیار دارد متن پیام( session key (Kc, tgs را رمزگشایی میکند و اکنون میتواند با استفاده از این کلید به برقراری ارتباط با server tgs بپردازد و پس از پایان ارتباط کلاینت حافظه مورد استفاده برای این کلید امن را پاک میکند تا از به خطر افتادن آن جلوگیری نماید.

2-Client to TGS Server: Request for Service

هنگامی که درخواست دسترسی به یک سرویس خواص بر روی شبکه به server tgs ارسال میشود دو پیام از سمت کلاینت به server tgs ارسال میشود. در یک پیام کلاینت TGT را که قبلا به دست آورده را ارائه میکند که با استفاده از کلید امن (K tgs) متعلق به server tgs رمزنگاری شده است. وشناسایی سرور ها و سرویسهای درخواست شده با استفاده از پیام دوم که با استفاده از کلید نشست اختصاص داده شده (Kc, tgs). انجام میشود که شامل شماره شناسه یا ID کلاینت , timestamp یا مهر زمان و کلید نشستهای اضافی اختیاری است . این دو پیام به شکل زیر عنوان میشود.

وب سایت توسینسو

3-: TGS Server to Client: Issuing of Ticket for Servic

پس از دریافت TGT معتبر وتایید شده از طرف کلاینت مبنی بر درخواست سرویس , سرور TGS یک بلیت یا ( ticket (Tc, sرا برای کلاینتها به صورت رمز نگاری شده صادر میکند که شامل کلیدهای امن (Ks) secret key ) ویک کلید نشست( clientserver session key (Kc, sکه به صورت رمزنگاری شده در( clientTGS session key (Kc, tgs . میباشد. این دو پیام به شکل زیر میباشند .

وب سایت توسینسو

4-Client to Server Authentication: Exchange and Providing of Service

برای دریافت خدمات از server ها یا سرویس دهنده ها , کلاینتها ( ticket (Tc, s برای سرور اهراز هویت ارسال میکنند و سرور دریافت کننده, پیام را با استفاده از( secret key (Ks رمزگشایی کرده و محتویات آن را چک میکند. محتویات کلاینت شامل آدرس کلاینت , زمان معتبر ویندوز کلاینت و( client/server session key (Kc, s, میشود که در حال حاظر برای ارتباطات بین کلاینت و سرور استفاده میشود . سرور هم در ادامه اعتبار هویت کلاینت و مهر زمانی معتبر کلاینت را چک میکند و در صورت تایید بودن سرویس مورد درخواست کلاینت را برای او فراهم میکند این تبادل به شکل زیر انجام میشود .

وب سایت توسینسو

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

وب سایت توسینسو

در پایان امیدوارم دوستانی که در این ضمینه تجربه بیشتری دارند با نظراتشان راهنمای من نیز باشند.


حجت رستمی
حجت رستمی

دانشجوی رشته شبکه و متخصص Passive

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

نظرات