WCF消息安全在删除证书后继续工作



我正在开发一个由一个WCF服务和几个部署在不同位置的WCF客户端组成的产品。为了保护服务,我将WCF配置为通过证书使用消息安全。

详细来说,这些是我的服务配置文件:网络。配置,App.config

据我所知,这是正常工作的,即使证书存储在智能卡上(WCF甚至弹出一个对话框,要求我输入智能卡的PIN码以解锁证书)。

但是在初始安全协商后移除智能卡对连接没有任何影响-我仍然可以在web服务上调用方法。

发生了什么?

  • WCF消息安全工作是否类似于HTTPS,在初始安全协商期间建立对称密钥,之后不再需要证书?

  • 或者可能是我已经将服务设置为仅使用证书对客户端进行身份验证,但消息根本没有加密?

这是因为您的安全配置使用了安全上下文(默认为WsHttpBinding)。安全上下文(WS-SecureConversation的实现)的工作方式确实类似于HTTPS。它仅使用证书进行初始身份验证和生成安全令牌,安全令牌用于保护来自同一服务代理实例的后续通信。上下文是在服务代理实例中建立的,它还建立了超时的WCF会话。

  <security mode="Message">
    <message clientCredentialType="Certificate" negotiateServiceCredential="false" establishSecurityContext="false" />
  </security>

尝试将establishSecurityContext设为false

相关内容

最新更新