Kerberos (произнася се /ˈkɜrbərəs/ "kur-ber-uhs") е протокол за удостоверяване в компютърната мрежа, който позволява на участниците, комуникиращи по [защитена мрежа, да докажат самоличността си — например Mohammed Hasan, потребител на Gmail — по сигурен начин. Това е и пакет от безплатен софтуер, публикуван от Масачузетския технологичен институт (MIT), който реализира този протокол. Неговите създатели са се насочили предимно към модела клиент-сървър; Kerberos поддържа взаимно удостоверяване, при което както Mohammed Hasan, така и сървърът могат да проверят самоличността си. Съобщенията на протокола Kerberos са защитени срещу шпионски атаки и атаки за преиграване.
Kerberos извършва удостоверяване като услуга, предоставяна от доверена трета страна, и използва криптографска споделена тайна. Проектиран е при предположението, че съобщенията, пътуващи по несигурната мрежа, могат да бъдат прочетени, модифицирани или повторени от нападател. Kerberos се основава основно на криптография със симетричен ключ и изисква център за разпределение на ключове (KDC). Разширенията на Kerberos позволяват използването на криптография с публичен ключ по време на определени фази на удостоверяване, например за първоначално установяване на доверие без споделен таен ключ.
Основни компоненти
- KDC (Key Distribution Center) — централен сървър, който съдържа два логически компонента: Authentication Server (AS) и Ticket Granting Server (TGS). KDC е доверената трета страна, която издава тикети и сесийни ключове.
- Клиент — потребител или процес, който иска достъп до услуга в мрежата.
- Сървър на услугата — ресурсът, към който клиентът иска достъп; приема тикети от клиентите, за да провери техния произход.
- Тикет (ticket) — криптирано съобщение, издавано от TGS и предназначено за сървъра на услугата; съдържа ключ за сесия и идентификационни данни, валидни за определено време.
- Authenticator — допълнителен доказателствен елемент, генериран от клиента и съдържащ например времеви печат, който предотвратява повторното използване на тикети (replay).
Как работи (стъпка по стъпка)
- Клиентът иска удостоверяване от AS, като посочва своя идентификатор и идентификатора на TGS.
- AS проверява идентичността (на база споделена тайна, обикновено парола) и издава Ticket Granting Ticket (TGT), криптиран с ключа на TGS. Част от отговора е криптирана и с ключ, получен от паролата на клиента, за да може той да я разшифрова.
- Клиентът разшифрова полученото и използва TGT, за да поиска конкретен сервизен тикет от TGS.
- TGS издава сервизен тикет за желания ресурс; този тикет е криптиран за сървъра на услугата и съдържа сесионен ключ.
- Клиентът представя сервизния тикет на сървъра заедно с authenticator; сървърът проверява тикета и може да отговори с доказателство за валидност (позволявайки взаимно удостоверяване).
- След успешна проверка клиентът има краткотраен сесионен ключ и може да използва защитена комуникация със сървъра.
Защита и свойства
- Използват се криптирани тикети и авторизации, за да се предотврати подслушване и фалшифициране.
- Таймстамповете и кратката валидност на тикетите предпазват от атаки за преиграване.
- Kerberos работи предимно със симетрични ключове, но може да се комбинира с публично-ключова криптография за първоначално удостоверяване или обмен на ключове.
- Поддържа трансфер на доверие между различни административни домейни (cross-realm authentication).
Ограничения и рискове
- KDC е критичен компонент и представлява единна точка на отказ и цел за атаки; защитата и наличността на KDC са от съществено значение.
- Kerberos изисква синхронизирани часовници между участниците (часово отклонение), за да проверява времевите печати.
- Атаки върху пароли (brute-force) могат да компрометират ключове, ако паролите са слаби; внедряване на допълнителни мерки (многофакторна автентикация) е препоръчително.
- Някои реализации и конфигурации могат да имат уязвимости — поддържането на софтуера актуален е важно.
Практически приложения и реализации
MIT Kerberos е оригиналната и едната от най-разпространените реализации; има и други реализации като Heimdal и вградената поддръжка в Microsoft Active Directory (където Kerberos е основният механизъм за удостоверяване в домейн среда). Kerberos (въведен в RFC 4120 като Kerberos version 5) се използва широко в корпоративни мрежи, системи за единично влизане (SSO) и други среди, където е необходимо централизирано и защитено управление на удостоверяването.
Разширения
Съвременните разширения позволяват интеграция с публично-ключови инфраструктури, делегиране на права (forwardable tickets), подновяване и продължаване на сесии, както и адаптиране към различни протоколи на приложения (например HTTP, SSH, SMB и др.).
Kerberos остава широко използван и развит стандарт за удостоверяване, който осигурява баланс между сигурност и ефективност, но неговата правилна конфигурация и поддръжка са ключови за надеждна работа.