跳到主要内容

3.7. User-to-User Authentication Exchanges (用户到用户身份验证交换)

3.7. User-to-User Authentication Exchanges (用户到用户身份验证交换)

用户到用户身份验证提供了一种在验证者无权访问长期服务密钥时执行身份验证的方法。这可能是在工作站上以用户身份运行服务器 (例如, 窗口服务器) 的情况。在这种情况下, 服务器可能有权访问用户登录到工作站时获得的 TGT, 但由于服务器以非特权用户身份运行, 因此它可能无权访问系统密钥。在运行对等应用程序时可能会出现类似的情况。

摘要

消息方向消息类型章节
0. 来自应用程序服务器的消息未指定
1. 客户端到 KerberosKRB_TGS_REQ3.3 & 5.4.1
2. Kerberos 到客户端KRB_TGS_REP 或 KRB_ERROR3.3 & 5.4.2 / 5.9.1
3. 客户端到应用程序服务器KRB_AP_REQ3.2 & 5.5.1

为了解决这个问题, Kerberos 协议允许客户端请求 KDC 颁发的票据使用颁发给将验证身份验证的一方的 TGT 的会话密钥进行加密。此 TGT 必须通过 Kerberos 协议外部的交换从验证者获得, 通常作为应用程序协议的一部分。此消息在上面的摘要中显示为消息 0。请注意, 由于 TGT 使用 KDC 的密钥加密, 因此如果没有相应的密钥, 则无法将其用于身份验证。此外, 由于验证者不透露相应的密钥, 因此提供验证者的 TGT 副本不允许冒充验证者。

上表中的消息 0 表示客户端和服务器之间的特定于应用程序的协商, 在此结束时, 双方都确定他们将使用用户到用户身份验证, 并且客户端已获得服务器的 TGT。

接下来, 客户端将服务器的 TGT 作为附加票据包含在其对 KDC 的 KRB_TGS_REQ 请求中 (上表中的消息 1), 并在其请求中指定 ENC-TKT-IN-SKEY 选项。

如果根据第 3.3.3 节中的说明进行验证, 返回给客户端的应用程序票据 (上表中的消息 2) 将使用附加票据中的会话密钥进行加密, 并且客户端在使用或存储应用程序票据时将注意到这一点。

当使用为用户到用户身份验证获得的票据联系服务器时 (上表中的消息 3), 客户端必须 (MUST) 在 ap-options 字段中指定 USE-SESSION-KEY 标志。这告诉应用程序服务器使用与其 TGT 相关的会话密钥来解密应用程序请求中提供的服务器票据。