محمد حسن پزشکیان
عاشق امنیت و نفوذ ، رد تیم و دوستدار بزن بکش :)

معرفی نحوه کارکرد سیستم احراز هویت پروتکل Kerberos Authentication

بریم سراغ Kerberos Authentication

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

در این مقاله میخوایم احراز هویت در kerberos رو کامل بیان کنیم (با جزئیات) چیزی که من از پرچمداران آموزش امنیت در جهان مثل Offensive و Sans و HTB میبینم خیلی ماسمالیه ، بعد توضیح من کامل درک میکنید دلیلشو :)

بررسی ساده Kerboros :

معرفی نحوه کارکرد سیستم احراز هویت پروتکل Kerberos Authentication

چون Kerboros خیلی پیچدس من اول ساده میگمش :

ما یه DC داریم که در اینجا مسئولیت KDC داره " Key Distribution Center " وظیفه توضیع کلید

در وهله اول کاربر در ریکوئست اول اطلاعاتشو میده به KDC ما و در ریکوئست دوم که از سمت KDC هست ، KDC میاد یوزر پسورد رو احراز میکنه و اگر معتبر بود TGT رو میفرسته به کاربر

حالا کاربر میاد TGT ای که گرفته رو میده به سرور و میگه و میگه TGS میخوام برای اینکه با یه سرویس یا سروری صحبت کنه و بتونه پیشش احراز بشه

حالا KDC میاد و یه TGS معتبر میده کاربر و کاربر اون TGS رو میده به Service و احراز میشه پیش اون و میتونه احراز بشه و ازش استفاده کنه

بررسی تخصصی احراز با Kerberos :

معرفی نحوه کارکرد سیستم احراز هویت پروتکل Kerberos Authentication

شکلش یکم شاید پیچیده و بزرگ باشه ولی نترسید هیچ چیز سختی نیست

ما یه DC داشتیم که نقش KDC داشت ؟ اینجا امدیم بازش کردیم ، KDC دوتا نقش داره :

Authentication Server (AS) و Ticket Granting Server (TGS) و یه سرویس داریم اون پایین (مثلا فایل سرور)

در وهله اول کاربر که رو خودش Kerberos Client داره میاد و Credential شو با NTLM رمز میکنه (کلید آبی) و میده به AS

بعد AS میاد و Credential ای که کاربر فرستاده سمتش رو نگا میکنه تو دیتابیسش و احرازش میکنه و براش یه TGS Session Key (کلید سبز) میفرسته و با Credential اصلی کاربر اونو قفل میکنه و میفرسته

بعد یه پیام دیگه هم AS میده به کاربر و اونم یه TGT (کلید بنفش) هست با TGS Session Key که قبلا داده بودش و اینو میاد با یه کلید خاصی که فقط خودش داره رمز میکنه (به کلیده میگن ONLY TGT KEY که با رنگ صورتیم کشیدمش)

وقتی کلاینت دوتا پیامی ک AS داده بهش رو میگیره اولی رو با کلید خودش میاد و باز میکنه ، اگر کلیدی که داره درست باشه میتونه TGS Key رو بفهمهو پیام دومم نمیتونه باز کنه

حالا کلاینت میخواد به File server ما دسترسی بگیره ، میره به TGS پیام میده

اول یه کپی از پیام حاوی TGT ای که گرفته از AS رو میفرسته براش

دوم یه Authenticator که حاوی id کلاینت و زمانیه که پیامو میفرسته هست و با TGS اون روز رمز میکنه و میفرسته به سرور

حالا سرور TGS میاد درخواستشو بررسی میکنه که با چه سرویسی کار داره ، اول میاد TGT رو باز میکنه ببینه سالمه یا نه

بعد با TGS پیام Authenticator رو باز میکنه که ببینه پیام سالمه و کلید درسته یا ن

 حالا TGS میاد در جواب به کلاینت ما دوتا پیام میده

یکی یه Client / Server Key یا همون Client/ Server Ticket (کلید مشکی) و با کلید مخصوص خود سرویس اونو رمز میکنه (این پیام فقط برای سرویسه و کلاینت حق خوندنشو نداره)

همون Client / Servcer Ticket ای که بالا دادو اینبار با TGS کلاینت بهش میده که بتونه بخونش

حالا کلاینت میره سراغ سرویس

کلاینت اینجا پیام TGS رو میده به سرویس که شامل Client / Server Ticket با کلید خود سرویسه

بعد یه Authenticator میده بهش عین مرحله قبل فقط تفاوتش اینه که بجز id ثابت خودش یه زمان جدید باید بده و با کلید مشکیه یعنی Client/ Server Ticket باید رمزش کنه

و دراینجا سرویس وقتی دوتا پیام بهش رسید با کلید نارنجی خودش پیامو باز میکنه و از توش کلید مشکیو بر میداره و با اون پیام کلاینتو باز میکنه و بعد تایید بهش مجوز میده


یکم مفهوم پیچیدس هرجاش سوال داشتید در خدمتم

موفق باشید - یاعلی :)


محمد حسن پزشکیان
محمد حسن پزشکیان

عاشق امنیت و نفوذ ، رد تیم و دوستدار بزن بکش :)

کارشناس تست نفوذ سنجی ، علاقه مند به امنیت تهاجمی و رد تیمینگ | عضو انجمن بین المللی ورزش های رزمی کشور آلمان و دارای احکام بین المللی و داخلی کمربند مشکی در سبک های کیوکوشین ، هاپکیدو ، کیک بوکسینگ و چند تام قهرمانی کشوری

نظرات