Поделиться через


Билеты Ticket-Granting

Так как протокол Kerberos был изначально разработан, ключ master для пользователя был получен из пароля, предоставленного пользователем. Когда пользователь вошел в систему, клиент Kerberos на рабочей станции пользователя принял пароль от пользователя и преобразовал его в ключ шифрования, передав текст через односторонняя хэш-функцию . Полученный хэш был ключом master пользователя. Клиент использовал этот ключ master для расшифровки ключей сеанса, полученных из KDC.

Проблема с исходной конструкцией Kerberos заключается в том, что клиенту требуется ключ master пользователя каждый раз, когда он расшифровывает ключ сеанса из KDC. Это означает, что клиент должен запрашивать у пользователя пароль в начале каждого обмена клиентом или сервером, или клиент должен хранить ключ пользователя на рабочей станции. Частые перерывы в работе пользователя слишком навязчивы. Хранение ключа на рабочей станции может поставить под угрозу ключ, производный от пароля пользователя, который является долгосрочным ключом.

Решение этой проблемы протокола Kerberos заключается в том, чтобы клиент получить временный ключ из KDC. Этот временный ключ подходит только для этого сеанса входа. Когда пользователь входит в систему, клиент запрашивает билет для KDC так же, как он запрашивает билет для любой другой службы. KDC отвечает путем создания ключа сеанса входа и билета для специального сервера, службы полного предоставления билетов KDC. Одна копия ключа сеанса входа встраивается в билет, а билет шифруется с помощью ключа master KDC. Другая копия ключа сеанса входа шифруется с помощью ключа master пользователя, полученного из пароля пользователя для входа. Клиенту отправляются как билет, так и зашифрованный ключ сеанса.

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

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