зачем kerberos нужен TGT?

#kerberos

#kerberos

Вопрос:

Я изучаю дизайн KDC и нахожу, что для протокола требуется 3 раунда обмена информацией. Но я думаю, что шаг TGT дублируется и не нужен, поскольку KDC может просто отправить билет в 1-м раунде. Итак, почему дизайн второго раунда? Какая польза от обмена TGT?

введите описание изображения здесь

Ответ №1:

Это не лишнее. Это там как долгосрочная оптимизация.

С Kerberos у вас есть два потока между KDC и клиентом:

  • КАК-ЗАПРОС: Обменивает предоставленные пользователем учетные данные на билет (например, пароль, сертификат и т.д.).
  • TGS-REQ обменивает билет, предоставленный KDC, на другой билет.

AS-REQ может запросить любой запрос, который он хочет. На практике это только запросы krbtgt . AS-REQ предназначен для оценки используемых учетных данных, поиска идентификатора в каталоге резервного копирования, применения любой политики и всего остального, что, по мнению KDC, на самом деле является дорогостоящей операцией. Проверка учетных данных / деривация / и т.д. может быть дорогостоящей операцией. Запрашивать каталог для таких вещей, как (скажем, в случае Active Directory) членство в группе, невероятно дорого. Это дорого для клиента, потому что он, скорее всего, всегда выполняет деривацию ключа, и это дорого для KDC, потому что он всегда будет запрашивать каталог.

Если вы запросите krbtgt , вы разблокируете доступ к потоку TGS-REQ.

Поток TGS-REQ проверяет krbtgt , ищет запрошенную службу в каталоге и копирует внутреннее содержимое билета krbtgt в запрошенный билет службы. Это на порядки быстрее, потому что пропускает большую часть того, что происходило в потоке AS-REQ. Он по-прежнему запрашивает каталог, но это дешево по сравнению со всем остальным. Клиент сейчас не выполняет никакого вывода ключа.

Что еще более важно, теперь вам больше не нужно хранить долгосрочные учетные данные в памяти, потому что у вас есть TGT.

Комментарии:

1. Что такое ttl для TGT?