کربروس (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