我想在WCF场景中加密消息,其中绑定是tcp.NetBinding并且安全性绑定在传输上。
我发现,如果我不加密消息,我就不必在客户端和服务器之间进行客户端凭证处理。 但如果我想加密,似乎必须有某种形式 客户端身份验证(Windows凭据,证书...)。
WCF服务器无法启动凭据设置为Null并且加密已启用。 是否可以在不验证客户端的情况下加密客户端和服务器之间的消息?
非常感谢
答案 0 :(得分:0)
是的,该方案称为Transport Security with an Anonymous Client:
此Windows Communication Foundation(WCF)方案使用传输 安全性(HTTPS)以确保机密性和完整性。服务器 必须使用安全套接字层(SSL)证书进行身份验证, 并且客户端必须信任服务器的证书。客户不是 通过任何机制进行身份验证,因此是匿名的。
裸骨骼绑定设置如下:
var binding = new NetTcpBinding();
binding.Security.Mode = SecurityMode.Transport;
binding.Security.Transport.ClientCredentialType = TcpClientCredentialType.None;
同样在此特定情况下,安全性由 TLS over TCP 提供,以确保机密性和完整性。同样,所需要的只是让客户端信任服务器提供的证书。客户端未经过服务器身份验证,因此称为匿名客户端。