В Kerberos сервер аутентификации (AS) и сервер предоставления билетов (TGS) обычно реализуются на одном сервере. Эта машина называется центром распространения ключей (KDC).
Конечно, имеет смысл реализовать эти сервисы на одной и той же физической машине, поскольку в небольших и средних сетях было бы излишним разделять эти две службы. Кроме того, у меня есть относительно надежный источник, который говорит (переведено):
TGS и AS должны иметь доступ к одной и той же базе данных => нет смысла внедрять TGS и AS на разных машинах
Однако я не вижу, какая база данных должна быть разделена между ними.
Это моя идея, как бы я разделил AS и TGS, нет общих баз данных:
- Поскольку AS и TGS разделены, у них есть другой главный секрет
- AS имеет базу данных со всеми пользователями с соответствующим мастер-секретом (используется при входе пользователя для шифрования ключа сеанса), а также мастер-секрет TGS (для шифрования запрошенных TGT).
- TGS имеет базу данных, которая позволяет ему определить, какой пользователь может использовать какую службу (ACL, список отзыва, ...), а также базу данных со всеми службами с соответствующими мастер-секретами (для шифрования билетов).
Когда пользователь хочет использовать сервис (упрощенно):
- Аутентификация в AS
- Получите билет для предоставления билета (TGT), зашифрованный с помощью главного секрета TGS, а также ключ сеанса, зашифрованный с помощью главного секрета пользователя.
- Связаться с TGS с TGT
- Получить билет, зашифрованный с помощью главного секрета Сервиса
- Обратитесь в Сервис с Билетом
Я что-то упускаю или вообще нет проблем с разделением AS и TGS?