کربروس (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 رد و بدل می شود.
منبع:www.radcom.ir
کربروس یک پادمان رایگان است (مانند 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 رد و بدل می شود.
منبع:www.radcom.ir