会话票证

KDC 将客户端和服务器的会话密钥副本发送到客户端,而不是将加密的会话密钥发送到这两个主体。 客户端的会话密钥副本使用客户端 的主密钥 进行加密,因此不能由任何其他实体解密。 服务器会话密钥副本与客户端授权数据一起嵌入到称为票证的数据结构中。 票证使用服务器的主密钥完全加密,因此客户端或无权访问服务器主密钥的任何其他实体无法读取或更改票证。 客户端负责安全地存储票证,直到与服务器联系。

注意

KDC 仅提供票证授予服务。 客户端和服务器负责确保其各自的主密钥的安全。

 

当客户端收到 KDC 的响应时,它会提取票证及其自己的会话密钥副本,将这两者放在安全缓存中。 为了与服务器建立安全会话,它会向服务器发送包含票证的消息,该消息仍使用服务器的主密钥进行加密,并使用会话密钥加密 的验证器消息 。 票证和验证器消息共同是客户端对服务器的 凭据

当服务器从客户端接收凭据时,它会使用 主密钥解密票证,提取 会话密钥,并使用会话密钥解密客户端的验证器消息。 如果所有内容都检查出来,服务器会知道客户端的凭据是由 KDC(受信任的颁发机构)颁发的。 对于相互身份验证,服务器通过使用会话密钥加密客户端验证器消息的时间戳来做出响应。 此加密消息将发送到客户端。 然后,客户端解密消息。 如果返回的消息与原始验证器消息中的时间戳相同,则会对服务器进行身份验证。

作为一个额外的好处,服务器不需要存储与客户端一起使用的会话密钥。 每个客户端都有责任在其票证缓存中管理服务器的票证,并在每次访问服务器时提供该票证。 每当服务器从客户端收到票证时,它都使用其主密钥来解密票证并提取会话密钥。 当服务器不再需要会话密钥时,会删除该密钥。

客户端不需要每次想要访问此特定服务器时访问 KDC。 可重复使用票证。 为了防止票证被盗的可能性,票证有一个过期时间,由 KDC 在票证结构中指定。 票证的有效期取决于该领域的 Kerberos 策略。 通常,票证的期限不超过 8 小时,大约是正常 登录会话的时长。 客户端工作站上的用户注销时,将刷新客户端票证缓存,并销毁所有票证和客户端会话密钥。