Skip to main content

Как работает Kerberos — основы для инженера Принтум

Как работает Kerberos — основы для инженера Принтум

Назначение

Kerberos — сетевой протокол аутентификации на основе тикетов (RFC 4120). Позволяет пользователям доказывать свою идентичность сервисам без передачи пароля по сети.

Основные компоненты

Компонент Описание
KDC (Key Distribution Center) Центр выдачи тикетов, обычно совмещён с AD
AS (Authentication Service) Выдаёт TGT после проверки пароля
TGS (Ticket Granting Service) Выдаёт тикеты сервисов на основе TGT
TGT (Ticket Granting Ticket) Первичный тикет, подтверждает личность пользователя
ST (Service Ticket) Тикет для доступа к конкретному сервису
Realm Административный домен Kerberos (обычно = DNS-домен, UPPER CASE)

Процесс аутентификации

1. Клиент  →  AS:   AS-REQ (имя пользователя)
2. AS      →  Клиент: AS-REP (TGT, зашифрован ключом KDC)
3. Клиент  →  TGS:  TGS-REQ (TGT + имя сервиса)
4. TGS     →  Клиент: TGS-REP (Service Ticket)
5. Клиент  →  Сервис: AP-REQ (Service Ticket)
6. Сервис  →  Клиент: AP-REP (подтверждение)

Почему вход прозрачный (SSO)

После получения TGT (шаги 1–2, выполняются при входе в Windows/Linux) все последующие обращения к сервисам (шаги 3–6) происходят автоматически — пользователь не вводит пароль повторно.

TGT имеет срок жизни — как правило, 8–10 часов (настраивается в политиках домена). По истечении требуется повторная аутентификация или продление (renewal).

Ключевые свойства

  • Пароль пользователя никогда не передаётся по сети.
  • Используется симметричное шифрование (AES-256 в современных реализациях).
  • Все тикеты ограничены по времени (timestamp + skew до 5 минут).
  • Расхождение системных часов более 5 минут приводит к ошибке KRB_AP_ERR_SKEW.

Связь с SSO в Принтум

Принтум может использовать Kerberos/GSSAPI для прозрачной аутентификации пользователей в среде Active Directory — пользователь, вошедший в домен, получает доступ к сервисам Принтум без повторного ввода пароля.

TODO: уточнить — поддерживается ли Kerberos SSO напрямую или только через промежуточный IdP (например, ADFS/Keycloak).