维护连接之间的安全上下文
注意
从 Windows 11 22H2 开始,Microsoft 将弃用 Microsoft Digest,也称为 wDigest。 我们将继续在受支持的 Windows 版本上支持 Microsoft Digest。 未来版本的 Windows 将包含 Microsoft Digest 的有限功能,最终 Windows 将不再支持 Microsoft Digest。
为了减少域控制器流量并提高性能,Microsoft Digest 的客户端会缓存在服务器成功进行身份验证后收到的信息。 客户端应用程序只需将句柄缓存到已建立 的安全上下文 。 下表描述了安全包缓存的信息。
信息 | 说明 |
---|---|
服务器名称 | 已成功为用户创建安全上下文的服务器。 |
领域/域 | 成功身份验证中使用的域名。 |
Nonce | 与成功身份验证关联的服务器 nonce。 |
Nonce count | 客户端在对服务器的请求中包含 nonce 的次数。 这用于重播检测。 |
不透明值 | 身份验证成功后为不透明指令返回的值。 此值包含对用户安全上下文的引用。 |
当客户端向服务器发送消息时,服务器必须确定客户端是否具有现有安全上下文。 为此,服务器会将每个客户端请求传递给 AcceptSecurityContext (General) 函数。 此函数从请求中提取不透明指令的值(如果存在),并使用它来查找客户端的安全上下文。 如果找到安全上下文,则上下文的句柄将返回到服务器。 有关相关信息,请参阅 对后续请求进行身份验证。
作为检测欺骗和重播攻击的一种方法,客户端调用 MakeSignature 函数,该函数使用安全上下文对消息进行签名。 使用 MakeSignature 函数保护消息时,服务器将 VerifySignature 函数与缓存的上下文配合使用来验证消息的来源和 完整性。 有关详细信息,请参阅 保护消息。