Kerberos: разделение AS и TGS

9

В Kerberos сервер аутентификации (AS) и сервер предоставления билетов (TGS) обычно реализуются на одном сервере. Эта машина называется центром распространения ключей (KDC).

Конечно, имеет смысл реализовать эти сервисы на одной и той же физической машине, поскольку в небольших и средних сетях было бы излишним разделять эти две службы. Кроме того, у меня есть относительно надежный источник, который говорит (переведено):

TGS и AS должны иметь доступ к одной и той же базе данных => нет смысла внедрять TGS и AS на разных машинах

Однако я не вижу, какая база данных должна быть разделена между ними.

Это моя идея, как бы я разделил AS и TGS, нет общих баз данных:

  • Поскольку AS и TGS разделены, у них есть другой главный секрет
  • AS имеет базу данных со всеми пользователями с соответствующим мастер-секретом (используется при входе пользователя для шифрования ключа сеанса), а также мастер-секрет TGS (для шифрования запрошенных TGT).
  • TGS имеет базу данных, которая позволяет ему определить, какой пользователь может использовать какую службу (ACL, список отзыва, ...), а также базу данных со всеми службами с соответствующими мастер-секретами (для шифрования билетов).

Когда пользователь хочет использовать сервис (упрощенно):

  • Аутентификация в AS
  • Получите билет для предоставления билета (TGT), зашифрованный с помощью главного секрета TGS, а также ключ сеанса, зашифрованный с помощью главного секрета пользователя.
  • Связаться с TGS с TGT
  • Получить билет, зашифрованный с помощью главного секрета Сервиса
  • Обратитесь в Сервис с Билетом

Я что-то упускаю или вообще нет проблем с разделением AS и TGS?

Миш
источник
1
Похоже, вы слишком глубоко во внутренности Kerberos. Обычный способ масштабирования - просто добавить больше KDC, поэтому я не совсем уверен, чего вы пытаетесь достичь.
Майкл Хэмптон
1
Правильно - с какой проблемой вы на самом деле столкнулись, которую вы пытаетесь решить?
mfinni
1
Я не пытаюсь решить какую-то конкретную проблему. Я просто пытаюсь понять внутренности Kerberos (для экзамена), фактически не желая использовать это в настоящее время. Вопрос чисто теоретический, я просто хочу узнать, правильно ли я что-то понял или цитата в моем вопросе не совсем верна.
Миш

Ответы:

4

Ваш вопрос - это все теория. Поэтому я отвечу тем же. AS и TGS являются логическими серверами, и теоретически они могут быть разделены. Но на практике не было веских причин для их реализации на отдельных машинах, и никто не делает этого в реальной жизни. Даже самые крупные и загруженные сети в мире с точки зрения аутентификации Kerberos не нуждаются в выделении логических компонентов KDC. В реальных реализациях Kerberos все данные, которые нужны AS, и все данные, которые нужны TGS, хранятся в одной базе данных. Это может теоретически быть разделено , но есть просто не хороший повод , чтобы сделать это , и не будет делать ничего , но напрасно усложняет реализацию.

Райан Райс
источник
1
Я только что обнаружил еще одну проблему при разделении AS и TGS: не только можно получить TGT от AS, но вы также можете запросить билет для любой другой услуги (например, если вы знаете, что вам нужен только один этот билет, поэтому нет необходимости в обходе через TGT). Это означает, что AS дополнительно нужны все данные, которые, как я предполагал, нужны только TGS.
Миш