我想了解当“Windows”凭据与传输安全性一起使用时 NetTcpBinding 使用的消息加密和签名机制。如果我的 AD 使用 NTLM 而不是 Kerberos 怎么办?消息仍然会被签名和加密吗?如果是,如何签名和加密?
提前致谢,
Akshat
简短的回答是,是的,如果您将传输安全保护级别设置为 EncryptAndSign(默认值),则使用 NTLM 身份验证,消息仍将被签名和加密。
以下是其工作原理的概述:
- 选择运输安全
配置一个
WindowsStreamSecurityBindingElement
在通道堆栈中。这会插入一个
流升级提供商(见下文)
- 在 NetTcpBinding 中,消息
客户与客户之间的交换
服务发生在.NET消息
成帧协议 http://msdn.microsoft.com/en-us/library/cc219293(v=PROT.10).aspx,它同时提供了
消息框架和机制
客户和服务商进行谈判
流升级,主要用途
也就是建立运输
安全。如果有一条流
升级提供程序中配置的
通道堆栈,这将被调用
在序言阶段
客户端时的成帧协议
打开通道。
- 升级
提供者
WindowsStreamSecurityBindingElement 使用 SPNEGO 安全包在客户端和服务器之间调用 SSPI 握手:在 NetTcpBinding 中,这通常会导致选择 Kerberos 作为底层安全提供程序(如果可用),但如果不可用,则会选择 NTLM。
- 如果 NTLM 是最终的身份验证提供程序,则 SSPI 握手将涉及令牌的三腿 NTLM 质询-响应交换,如NTLM规范 http://msdn.microsoft.com/en-us/library/cc236621(v=PROT.10).aspx。该协议包括交换消息签名和加密密钥的机制。一旦 SSPI 握手生成了适当的安全上下文,所有交换的消息都会在发送通道堆栈的流升级提供程序中进行签名和加密,并在接收通道堆栈的流升级提供程序中进行解密和验证,在每种情况下都通过调用 NTLM通过抽象的安全提供者SSPI消息支持函数 http://msdn.microsoft.com/en-us/library/aa374731(v=VS.85).aspx#message_support.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)