6. Рабочая станция создает сообщение, состоящее из sealed-ticket, sealed-authenticator и имени сервера, которое посылается TGS. Authenticator состоит из login-name, WS-net-address и текущего времени. Закрытый аутентификатор (sealed-authenticator) получается шифрованием.
7. TGS, получив сообщение, прежде всего, расшифровывает sealed-ticket и sealed-authenticator, используя ключ TGS. Таким образом, TGS получает все параметры для проверки достоверности:
· Login-name,
· TGS-name,
· Сетевой адрес рабочей станции.
Наконец, сравнивается текущее время в authenticator, чтобы определить, что сообщение сформировано недавно. Это требует, чтобы все рабочие станции и сервера держали время в пределах допустимого интервала. TGS по имени сервера из сообщения определяет ключ шифрования сервера.
8. TGS формирует новый ticket, который базируется на имени сервера. Этот ticket шифруется на ключе сервера и посылается на рабочую станцию.
9. Рабочая станция получает сообщение, содержащее sealed-ticket, который она расшифровать не может.
10. Рабочая станция посылает сообщение, содержащее sealed-ticket, sealed-authenticator и имя сервера (сообщение не шифруется).
11. Сервер принимает это сообщение и прежде всего дешифрует sealed-ticket, используя ключ, который только этот сервер и Secret Net знают.
Сервер далее расшифровывает authenticator и делает проверку также как в пункте 7.
Ticket и аутентификаторы являются ключевыми моментами для понимания применения сервера безопасности. Для того, чтобы рабочая станция использовала сервер, требуется билет (ticket). Все билеты, кроме первого, получаются из TGS. Первый билет является специальным: это билет для TGS и он получается из сервера аутентификации.
Билеты, получаемые рабочей станцией, не являются исчерпывающей информацией для нее. Они зашифрованы на ключе сервера, для которого они будут использованы. Каждый билет имеет время жизни. Когда билет уничтожается, пользователь должен идентифицировать себя снова, введя свое имя и пароль. Чтобы выполнить это уничтожение, каждый билет содержит время его создания (выпуска) и количество времени, в течении которого он действителен.
В отличие от билета, который может повторно использоваться, новый аутентификатор требуется каждый раз, когда клиент инициирует новое соединение с сервером. Аутентификатор несет временной штамп (метку), и уничтожается в течение нескольких минут после создания. Вот почему мы предполагаем, что все рабочие станции и серверы должны поддерживать синхронизацию часов. Точность этой синхронизации и размер сети определяют максимум рационального времени жизни аутентификатора.
Сервер должен поддерживать историю предыдущих запросов клиента, для которых временная метка аутентификатора еще действительна (т.е. историю всех запросов внутри последних нескольких минут). Таким образом, сервер может отсечь дубликаты запросов, которые могут возникнуть в результате украденных билетов и аутентификаторов.
Поскольку, как билет, так и аутентификатор содержат сетевой адрес клиента, другая рабочая станция не может использовать украденные копии без изменения их сущности, связанной с сетевым адресом владельца. Далее, поскольку аутентификатор имеет короткое время жизни и действителен только один раз, то взломщик должен проделать это до смерти аутентификатора, обеспечив также уверенность, что оригинальная копия билета и аутентификатора не достигнет нужного конечного сервера, и модифицировать их сетевой адрес, чтобы выглядеть как истинный клиент.
Поскольку сервер подтверждает запрос клиента на обслуживание, то клиент и сервер разделяют одинаковый ключ шифрования. При желании клиент и сервер могут шифровать все данные их сессии, используя этот ключ, или они могут выбрать не шифровать данные вообще.
Поскольку сервер удостоверил клиента, остальные шаги служат для удостоверения сервера. Это решает проблему неперсонифицированного вторжения в качестве сервера (т.е. подмены сервера). Клиент в этом случае требует, чтобы сервер послал назад сообщение, состоящее из временного штампа и аутентификатора клиента вместе со значением временной марки. Это сообщение зашифровано. Если сервер поддельный, он не знает действительного ключа шифрования сервера.