Kerberos یک پروتکل امنیتی برای احراز هویت در شبکه است که برای کاربران مجاز امکان ورود به شبکه پس از تایید هویت را فراهم میآورد.
کاربران تیکت یا بلیطهایی را ازمرکز توزیع کربروس (KDC) دریافت میکنند و پس از آن هنگامی که ارتباط با شبکه فراهم شد کاربران این بلیطها را به سرور ارائه میکنند و در صورت تایید مجوز ورود به شبکه فراهم میشود. بلیطهای کربروس اعتبار کاربران شبکه را نشان میدهند.
قبل از این که ارتباط امنی در شبکه برقرار شود پروتکل کربروس یک مکانزیم برای تایید دو طرفه اطلاعات بین موجودیتهای شبکه فراهم میکنند. اگرچه این ارتباط امن بین سرورها نیز میتواند به وجود آید، اما بر اساس این مستندات این دو موجودیت کاربر و سرور نامیده میشوند. در پروتکل امنیتی کربروس کاربر و سرور به عنوان اصول امنیتی در نظر گرفته میشوند.
پروتکل کربروس فرض میکند که معادلات بین کاربر و Server بر روی یک شبکه محافظت نشده قرار دارد به گونهای که بیشتر کاربران و بسیاری از سرورها از امنیت کافی برخوردار نیستند و بستههایی که از طریق شبکه در حال جابجایی هستند میتوانند نظارت و دستکاری شوند.
محیط فرضی پروتکل امنیتی کربروس مانند اینترنت امروزی است که هکرها میتوانند در نقش سرورها و یا کاربران ظاهر شوند و به راحتی ارتباطات بین سرور و کاربر را مورد نظارت و دستکاری قرار دهند.
روش کار در الگوریتم کربروس به این صورت است که وقتی کاربری به یک شبکه Kerberos وارد میشود، یک پیغام درخواست به سرور مربوط به نام و کلمه عبور حساب خود میفرستد. آن سرور با یک TGT که بر مبنای کلمه عبور سرویس گیرنده رمزنگاری شده است جواب میدهد. محض دریافت TGT از کاربر درخواست میشود که کلمه عبور خود را وارد کند و سپس از آن کلمه عبور برای رمزگشایی TGT استفاده میکند.
چون در واقع فقط یک کاربر باید دارای کلمه عبور درست باشد، این روند به عنوان احراز هویت عمل میکند. اگر رمزگشایی TGT با موفقیت انجام شود، کاربر میتواند یک درخواست، حاوی یک کپی رمزنگاری شده از TGT به یک سرور TGS، که الزاماً همان سرور احراز هویت اول نمیباشد، بفرستد و به منابع شبکه دسترسی پیدا کند.
سرور TGS بعد از رمزگشایی TGT و تشخیص وضعیت کاربر یک بلیط سرور (Server Ticket) ایجاد میکند و به برای او میفرستد. این بلیط، کاربر را قادر میسازد برای مدت زمان محدودی به یک سرور مشخص دسترسی داشته باشد. این بلیط همچنین حاوی یک کلید نشست (Session key) میباشد که کاربر و سرور از آن میتوانند برای رمزنگاری دادههای در حال انتقال بین خود استفاده کنند.
کاربر در صورت نیاز به یک منبع، بلیط سرور را به آن سرور میفرستد. سرور بعد از رمزگشایی آن بلیط، امکان دستیابی به منبع مورد نظر را فراهم میکند.