با سلام خدمت دوستان گرامی ، چندی پیش بود که در رابطه با سیستم های کنترل دسترسی در امنیت اطلاعات مطالبی رو عنوان کردم در ادامه قصد این رو داشتم که به بررسی عملکرد کربروس در سیستم های کنترل دسترسی بپردازم لذا قبل از هر چیز شما عزیزان را به مطالعه مقاله مهندس نصیری در رابطه با کاملترین معرفی انواع روشهای احراز هویت + پروتکل ها و تکنیک هادعوت میکنم که در رابطه با Kerberos و تاریخچه و نوع کاری آن توضیحات لازم را داده اند بنابر این من فقط به مکانیسم کاری پروتکل Kerberos میپردازم که امیدوارم مفید واقع شود در ادامه با جزئیات بیشتری از نحوه تبادل پیام میان client و server TGS و سرور تایید هویت و سروری که به ارائه خدمات میپردازد آشنا میشویم.
برای شروع درخواست یک خدمات از یک 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 بپردازد و پس از پایان ارتباط کلاینت حافظه مورد استفاده برای این کلید امن را پاک میکند تا از به خطر افتادن آن جلوگیری نماید.
هنگامی که درخواست دسترسی به یک سرویس خواص بر روی شبکه به server tgs ارسال میشود دو پیام از سمت کلاینت به server tgs ارسال میشود. در یک پیام کلاینت TGT را که قبلا به دست آورده را ارائه میکند که با استفاده از کلید امن (K tgs) متعلق به server tgs رمزنگاری شده است. وشناسایی سرور ها و سرویسهای درخواست شده با استفاده از پیام دوم که با استفاده از کلید نشست اختصاص داده شده (Kc, tgs). انجام میشود که شامل شماره شناسه یا ID کلاینت , timestamp یا مهر زمان و کلید نشستهای اضافی اختیاری است . این دو پیام به شکل زیر عنوان میشود.
پس از دریافت TGT معتبر وتایید شده از طرف کلاینت مبنی بر درخواست سرویس , سرور TGS یک بلیت یا ( ticket (Tc, sرا برای کلاینتها به صورت رمز نگاری شده صادر میکند که شامل کلیدهای امن (Ks) secret key ) ویک کلید نشست( clientserver session key (Kc, sکه به صورت رمزنگاری شده در( clientTGS session key (Kc, tgs . میباشد. این دو پیام به شکل زیر میباشند .
برای دریافت خدمات از server ها یا سرویس دهنده ها , کلاینتها ( ticket (Tc, s برای سرور اهراز هویت ارسال میکنند و سرور دریافت کننده, پیام را با استفاده از( secret key (Ks رمزگشایی کرده و محتویات آن را چک میکند. محتویات کلاینت شامل آدرس کلاینت , زمان معتبر ویندوز کلاینت و( client/server session key (Kc, s, میشود که در حال حاظر برای ارتباطات بین کلاینت و سرور استفاده میشود . سرور هم در ادامه اعتبار هویت کلاینت و مهر زمانی معتبر کلاینت را چک میکند و در صورت تایید بودن سرویس مورد درخواست کلاینت را برای او فراهم میکند این تبادل به شکل زیر انجام میشود .
در جدول زیر ایتم ها و نمادهای مورد استفاده در kerberos میتونید مشاهده بکنید.
در پایان امیدوارم دوستانی که در این ضمینه تجربه بیشتری دارند با نظراتشان راهنمای من نیز باشند.
دانشجوی رشته شبکه و متخصص Passive
دانشجوی رشته اینترنت و شبکه های گسترده علاقه مند به یادگیری active شبکه
زمان پاسخ گویی روز های شنبه الی چهارشنبه ساعت 9 الی 18
فقط به موضوعات مربوط به محصولات آموزشی و فروش پاسخ داده می شود