我已经阅读了 MSDN 提供的文档以及该站点上的其他一些帖子。但是,在使用带有证书的消息安全性时,WCF(特别是 NetTcpBinding)是否会真正加密消息内容仍然有点不清楚。有人有确切消息么?
例如,您可以在配置中指定传输和消息凭据:
<security mode="TransportWithMessageCredential">
<transport clientCredentialType="Certificate"/>
<message clientCredentialType="Certificate"
negotiateServiceCredential="true" />
</security>
据我所知,MSDN 文档暗示消息安全性仅依赖于用户名/密码或基于证书的身份验证(协商),但并未明确说明消息本身实际上是在消息级别加密的。
例如,如果我只使用基于证书的协商的消息安全性,我不认为消息内容实际上是加密的(即数据包嗅探器可以拦截原始消息内容——即使服务强制执行身份验证)?
如果真正的消息级加密是可能的(使用 NetTcpBinding)它是如何在代码中完成的?我相信这与算法套件有关,虽然我不确定,
binding.Security.Mode = SecurityMode.Message;
binding.Security.Message.ClientCredentialType = MessageCredentialType.Windows;
binding.Security.Message.AlgorithmSuite = new System.ServiceModel.Security.TripleDesSecurityAlgorithmSuite();