要启动验证过程,客户机需要向验证服务器发送针对特定用户主体的验证请求。该请求在发送时未加密。由于请求中不包含安全信息,因此无需使用加密。
验证服务收到请求后,将在 KDC 数据库中查找该用户的主体名称。如果主体与数据库中的项匹配,验证服务会获取该主体的私钥。然后,验证服务将生成一个供客户机和票证授予服务使用的会话密钥(称为会话密钥 1),以及一个用于票证授予服务的票证(称为票证 1)。此票证也称作票证授予票证 (ticket-granting ticket, TGT)。会话密钥和票证均使用该用户的私钥进行加密,并且会将信息发回客户机。
客户机通过使用该用户主体的私钥,借助此信息对会话密钥 1 和票证 1 进行解密。由于该私钥仅对此用户和 KDC 数据库公开,因此包中的信息应该是安全的。客户机将该信息存储在凭证高速缓存中。
在此过程中,通常会提示用户输入口令。如果用户指定的口令与用于生成存储在 KDC 数据库中的私钥的口令相同,则客户机可以成功解密验证服务发送的信息。这样,客户机便拥有了用于票证授予服务的凭证,并已准备好请求获取某个服务器的凭证。
图 2-5 获取用于票证授予服务的凭证