بریم سراغ Kerberos Authentication
در این مقاله میخوایم احراز هویت در kerberos رو کامل بیان کنیم (با جزئیات) چیزی که من از پرچمداران آموزش امنیت در جهان مثل Offensive و Sans و HTB میبینم خیلی ماسمالیه ، بعد توضیح من کامل درک میکنید دلیلشو :)
بررسی ساده Kerboros :
چون Kerboros خیلی پیچدس من اول ساده میگمش :
ما یه DC داریم که در اینجا مسئولیت KDC داره " Key Distribution Center " وظیفه توضیع کلید
در وهله اول کاربر در ریکوئست اول اطلاعاتشو میده به KDC ما و در ریکوئست دوم که از سمت KDC هست ، KDC میاد یوزر پسورد رو احراز میکنه و اگر معتبر بود TGT رو میفرسته به کاربر
حالا کاربر میاد TGT ای که گرفته رو میده به سرور و میگه و میگه TGS میخوام برای اینکه با یه سرویس یا سروری صحبت کنه و بتونه پیشش احراز بشه
حالا KDC میاد و یه TGS معتبر میده کاربر و کاربر اون TGS رو میده به Service و احراز میشه پیش اون و میتونه احراز بشه و ازش استفاده کنه
بررسی تخصصی احراز با Kerberos :
شکلش یکم شاید پیچیده و بزرگ باشه ولی نترسید هیچ چیز سختی نیست
ما یه 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 باید رمزش کنه
و دراینجا سرویس وقتی دوتا پیام بهش رسید با کلید نارنجی خودش پیامو باز میکنه و از توش کلید مشکیو بر میداره و با اون پیام کلاینتو باز میکنه و بعد تایید بهش مجوز میده
یکم مفهوم پیچیدس هرجاش سوال داشتید در خدمتم
موفق باشید - یاعلی :)
سلام وقت بخیر
در فرایند احراز هویت کربروس ، ما کلاینت داریم و سرور که DC هست ، درست ؟
در DC ما دیتابیس داریم که کل پسورد کاربر ها اونجاست ، اینم درست ؟
در سمت راست AS و TGS من چندین کلید رنگی کشیدم، یعنی همه این کلیدارو هم AS داره هم TGS
حالا اینجا من گفتم کاربر میاد کردنشیال شو با NTLM رمز میکنه که کلید ابیه و میده به AS
اینجا NTLM همون پسورد خود یوزره ! و از اون جهتی که اینجا ما دامین داریم و پسورد کل یوزر هارو دامین کنترلر داره، پس این NTLM رو DC داره
اگر باز هرجاش نامفهوم بود بفرمایید
سلام ، خیلی عالی و مفید بود . فقط یه قسمت اش من نمی فهمم ، کلید آبی که مرحله اول کلاینت میاد اطلاعات باهاش رمز می کنه و می فرسته به AS . خب این کلید تو هیچ مرحله ای share نشده ، وقتی share نشده هر دو طرف چجوری به یه کلید مشترک می رسن این ابهام داره برام .
مگر اینکه ادمین به صورت لوکال یه بار پشت سیستم کلاینت بشینه و یه بار هم پشت AS و برا هر کدوم شون کلید آبی تعریف کنه .
ممنون میشم اگر میشه توضیحی بدید مرسی 🙏🙏🙏