3.3. The Ticket-Granting Service (TGS) Exchange (票据授予服务交换)
摘要
| 消息方向 | 消息类型 | 章节 |
|---|---|---|
| 1. 客户端到 Kerberos | KRB_TGS_REQ | 5.4.1 |
| 2. Kerberos 到客户端 | KRB_TGS_REP 或 KRB_ERROR | 5.4.2 或 5.9.1 |
客户端与 Kerberos TGS 之间的 TGS 交换由客户端在寻求获取给定服务器的认证凭证 (该服务器可能在远程域中注册) 时、在寻求续期或验证现有票据时或在寻求获取代理票据时发起。在第一种情况下, 客户端必须已经使用 AS 交换获取了票据授予服务的票据 (TGT 通常在客户端最初向系统认证时获得, 例如当用户登录时)。TGS 交换的消息格式几乎与 AS 交换相同。主要区别在于 TGS 交换中的加密和解密不在客户端的密钥下进行。相反, 使用 TGT 或可续期票据的会话密钥, 或来自认证器的子会话密钥。与所有应用程序服务器一样, TGS 不接受过期的票据, 因此一旦可续期或 TGT 过期, 客户端必须使用单独的交换来获取有效票据。
TGS 交换由两条消息组成: 从客户端到 Kerberos 票据授予服务器的请求 (KRB_TGS_REQ) 和回复 (KRB_TGS_REP 或 KRB_ERROR)。KRB_TGS_REQ 消息包括对客户端进行认证的信息加上对凭证的请求。认证信息由认证头 (KRB_AP_REQ) 组成, 其中包括客户端先前获得的票据授予、可续期或无效票据。在 TGT 和代理情况下, 请求可以 (MAY) 包括以下一项或多项: 网络地址列表、要密封在票据中供应用程序服务器授权使用的类型化授权数据集合或附加票据 (其使用将在后面描述)。TGS 回复 (KRB_TGS_REP) 包含请求的凭证, 在 TGT 或可续期票据的会话密钥中加密, 或者如果存在, 在来自认证器 (认证头的一部分) 的子会话密钥中加密。KRB_ERROR 消息包含错误代码和解释出错原因的文本。KRB_ERROR 消息未加密。KRB_TGS_REP 消息包含可用于检测重放并将其与它回复的消息关联的信息。KRB_ERROR 消息还包含可用于将其与它回复的消息关联的信息。第 3.1 节中提到的关于 KRB_ERROR 消息完整性保护的相同评论适用于 TGS 交换。