Kerberos — протокол аутентификации для открытых сетей, разработанный в Массачусетском технологическом институте (MIT) в рамках проекта Athena. Актуальная версия — Kerberos 5, описана в RFC 4120 (2005). Протокол использует принцип единого входа (SSO): после одной аутентификации пользователь получает доступ ко всем сервисам сети без повторного ввода пароля. Именно Kerberos лежит в основе Active Directory.
Как работает
Участники схемы:
- Клиент — пользователь или сервис, запрашивающий доступ.
- KDC (Key Distribution Center) — доверенный центр распределения ключей. Включает Authentication Server (AS) и Ticket Granting Server (TGS).
- Сервер ресурса — сервис, к которому запрашивается доступ.
Процесс аутентификации (упрощённо):
- Клиент отправляет AS-REQ в KDC: имя пользователя и временную метку.
- KDC возвращает TGT (Ticket Granting Ticket), зашифрованный ключом пользователя. Клиент расшифровывает его своим паролем (пароль никогда не передаётся по сети).
- Клиент предъявляет TGT серверу TGS с запросом на сервис (TGS-REQ).
- TGS выдаёт Service Ticket (ST) — билет для конкретного сервиса.
- Клиент предъявляет ST серверу ресурса. Сервер проверяет билет и предоставляет доступ.
Билеты имеют срок действия (обычно 8–10 часов). После истечения пользователь автоматически получает новый TGT при наличии активной сессии. Шифрование: AES-256 в современных реализациях (RC4-HMAC — устаревший вариант).
История
Kerberos разработан в MIT в 1980-х годах как часть проекта Athena. Версия 4 (1989) получила широкое распространение в Unix-среде. Версия 5, преодолевающая ограничения v4, вышла в 1993 году. RFC 1510 (1993) → RFC 4120 (2005, актуальный). Microsoft интегрировала Kerberos 5 в Windows 2000 как основной механизм аутентификации в доменах. В 2012 году добавлена поддержка AES-256 в Windows через RFC 4757 (заменил RC4).
Связь с хостингом
Kerberos применяется в корпоративных инфраструктурах: аутентификация в Active Directory, доступ к SMB-ресурсам, работа с кластерами Hadoop (где KDC обязателен для HDFS и YARN), аутентификация в PostgreSQL (метод gss). На VPS Windows с ролью Domain Controller KDC работает как часть AD DS. Для Linux-серверов в домене Windows используется MIT Kerberos или Heimdal.
На что обращать внимание
Kerberos критически зависит от точности времени: расхождение более 5 минут между клиентом, KDC и сервером приводит к ошибке KRB_AP_ERR_SKEW. Обязательно настраивайте NTP на всех участниках. Атаки на Kerberos: Pass-the-Ticket (кража и воспроизведение билета), Kerberoasting (брутфорс Service Account по хэшу ST). Для защиты используйте сложные пароли сервисных аккаунтов, мониторинг AS-REQ аномалий.
Kerberos в хостинговой инфраструктуре
Kerberos применяется в корпоративных средах с Active Directory: все Windows-сервера аутентифицируются через KDC. В Linux-окружении Kerberos интегрируется через MIT Kerberos 5 или Heimdal. Samba 4 реализует полноценный Kerberos KDC для Linux-доменов. На практике для хостинга Kerberos актуален в enterprise-инфраструктуре, где десятки серверов должны аутентифицировать пользователей через единый каталог.
Типичные ошибки при настройке Kerberos
- Рассинхронизация времени между клиентами и KDC: Kerberos допускает расхождение не более 5 минут (RFC 4120). Настройте NTP на всех серверах.
- Слабые ключи сервисных аккаунтов (servicePrincipalName) — уязвимы к Kerberoasting-атакам.
- KDC без резервирования: отказ единственного KDC блокирует всю аутентификацию.
- Использование DES/RC4 шифрования вместо AES256-SHA1 — устаревшие алгоритмы.
Kerberos vs LDAP vs SAML vs OAuth
| Протокол | Назначение | Применение |
|---|---|---|
| Kerberos | аутентификация в сети | Active Directory, корпоративные сети |
| LDAP | каталог пользователей | хранение данных аккаунтов |
| SAML | SSO для веб | корпоративные порталы |
| OAuth 2.0 | авторизация API | веб-приложения, мобильные |