کربروس (Kerberos)
چیست؟
کربروس (Kerberos)
یک پادمان (Protocol)
اعتبارسنجی در شبکه است و برای انجام اعتبارسنجی های قوی، در برنامه های کاربر-
کارگزار تعبیه شده است. این پادمان توسط دانشگاه MIT
طراحی و پیاده سازی شده است.
کربروس یک پادمان رایگان است (مانند
BSDها) و تحت قانون حق مؤلف (Copyright)
می توانید از آن استفاده کنید. نکته جالبی که در مورد کربروس وجود
دارد این است که کربروس یک سگ سه سر است که از دروازه ی جهنم
محافظت می کند. البته کمی املای آن فرق دارد (Cerberus)
ولی همان مفهوم مدنظر بوده است.
آخرین نسخه آن نیز، نسخه 5 است.
کربروس بر مبنای این تئوری بنا شده است که شبکه
یک مکان ناامن و خطرناک است و اطلاعات ارسالی در شبکه قابل تغییر و دستکاری
هستند.
کربروس یک سرویس thrid-party
و تأیید شده است. این بدان معنی است که یک کارگزار کربروس در شبکه وجود دارد که
مورد اعتماد Principalها (Principalها
اجزایی هستند که هویت آنها در سیستم تأیید شده است مانند کاربران و سرویس ها) است.
Principalها یک کلید عمومی
را بین خود و کارگزار به رسمیت می شناسند و بدین ترتیب
principalها قادر خواهند بود پیام هایی که از کارگزار می
آید را درک کنند.
Principalها به رد و بدل کردن بلیط می پردازند و با همین
بلیط ها هویت principalها معلوم
می شود.
جزییات بیشتر در مورد نحوه عملکرد
kerberos
را با یک مثال و شکل نشان می دهیم.
مثال
1- کاربر (Clinet)
از متصدی اعتبارسنجی (Kerberos Authentication Server)
یک بلیط درخواست می کند که بعداً آن را به متصدی صدور بلیط(Ticket
Granting Server)
بدهد. متصدی اعتبارسنجی، در پایگاه داده خود جستجو می کند و در صورت یافتن کاربر
در فهرست خود، یک کلید (Session Key
1 - SK1)
می سازد که برای استفاده بین کاربر و متصدی بلیط
بکار خواهد رفت. متصدی اعتبارسنجی، بلیط را که شامل
SK1
است را با کلید A
کد کرده و برای کاربر ارسال می کند.
متصدی اعتبارسنجی، همچنین از کد مخفی متصدیان بلیط
که فقط بین متصدی اعتبارسنجی و متصدیان بلیط معتبر است، استفاده کرده و یک بلیط
صدورِ بلیط (Ticket Granting Ticket
) برای کاربر می سازد و
برای کاربر می فرستد.
|
2- کاربر پس از دریافت پیام، آن را رمزگشایی کرده و
SK1
را بدست می آورد. سپس یک Authenticator
می سازد (شامل نام کاربر، آدرس و تاریخ و زمان فعلی)و آن را به همراه بلیط صدورِ
بلیط (TGT)
، برای دریافت اجازه دسترسی به کارگزار موردنظر به متصدی صدور بلیط (TGS)
می فرستند.
متصدی صدور بلیط (TGS)
، بلیط صدورِ بلیط (TGT)
را می گیرد و آن را رمزگشایی می کند. پس از بدست آوردن SK1 که
از رمزگشایی بلیط صدورِ بلیط (TGT)
بدست آمده است، Authenticator
را نیز رمزگشایی می کند. اگر زمان و نام A
معتبر بود، روند کار ادامه پیدا می کند.
متصدی صدور بلیط (TGS)
یک کلید جدید (Session Key 2 – SK2)
تولید کرده و آن را با SK1
کد می کند و برای کاربر می فرستد تا بین کاربر و کارگزار استفاده شود.
همچنین متصدی صدور بلیط (TGS)
یک بلیط جدید شامل نام کاربر، IP(آدرس)،
تاریخ و زمان، زمان اعتبار (که همه با کلید کارگزار کد شده اند) و نام کارگزار
می سازد و برای کاربر می فرستد.
3- کاربر پس از گرفتن بلیط آن را رمزگشایی کرده
SK2
را بدست می آورد. حال کاربر آماده است تا با کارگزار ارتباط برقرار کند. کاربر
یک Authenticator
جدید می سازد و با SK2
آن را کد می کند. سپس کاربر،
Authenticator
را به همراه بلیطی که با کلید کارگزار کد شده بود را به کارگزار می فرستد.
کارگزار با دریافت
Authenticatorی
که با SK2
رمز شده است، می فهمد که کاربر، SK2
را دارد. زمان و تاریخ تعبیه شده در بلیط، این امکان را شنودگرها می گیرد که این
بلیط ها را ذخیره کنند و بعدها دوباره آن را برای کارگزار بفرستند و خود را جای
کاربر جا بزنند. برای برنامه های که نیاز به اعتبارسنجی دوطرفه دارند، یک بلیط
دیگر از طرف کارگزار به کاربر فرستاده می شود که با SK2
کد شده است. که انجام این عمل به کاربر نیز اطمینان کامل را می دهد.
4- اطلاعات بین کاربر و کارگزار با استفاده از
SK2
رد و بدل می شود.