c# - 将 NetTCPBinding 与 TcpClientCredentialType.Windows 结合使用的 WCF 安全性

标签 c# .net wcf security service

我是 WCF 的新手,我有一个相对简单的问题,我似乎找不到简单的答案。我正在尝试查看是否必须明确使用证书来验证绑定(bind)的两端是否真实。我更愿意使用 TcpClientCredentialType.Windows 安全性通过 ProtectionLevel.EncryptAndSign 为我完成这一切。这足以让客户端和服务器相互信任它们没有被篡改吗?我的客户端 dll 和服务器进程都使用相同的证书签名,但是有人可以创建一个使用我的契约(Contract)的虚假服务而我的客户端不会意识到吗?

最佳答案

MSDN 包含使用 Windows Communication Foundation (WCF) 创建安全应用程序时要考虑的最佳做法列表。

WCF 提供两种对等身份验证机制:X509 证书(由对等 channel 使用)和 Windows 身份验证,其中 SSPI 协商从 Kerberos 降级为 NTLM。出于以下几个原因,使用 1024 位或更多 key 大小的基于证书的身份验证优于 NTLM:

  • 相互认证的可用性,
  • 使用更强大的加密算法,以及
  • 使用转发的 X509 凭据的难度更大。

就其值(value)而言,您可能需要考虑证书,甚至是自签名证书,以确保最佳端点安全性。

关于c# - 将 NetTCPBinding 与 TcpClientCredentialType.Windows 结合使用的 WCF 安全性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27604127/

相关文章:

c# - 为 Windows Phone 8 开发 2D 游戏

c# - 从随机字符串中查找单词列表中的单词

c# - 无法在 .net core 2.1 中读取用户 secret

c# - WCF:MessageContract、DataContract……一头雾水?

web-services - 使用 Soap 请求发送客户端证书和授权 header 的理想方式是什么

c# - WinRT : Open previously opened files again after close

c# - 使用 SSH 连接 Unix/Solaris 和 .NET

c# - .net 3.5 匿名 foreach

.net - .NET将数字转换为字符串表示形式(1到1、2到2等,等等)

c# - 在fiddler中捕获内部请求调用