none
WCF Security 安全为什么要提供证书? RRS feed

  • 问题

  •    有谁对这个问题比较了解,一起讨论一下。
       因为安全问题,一旦牵扯到证书的问题上,就变的复杂了。所以大家都不高兴使用证书了。
    很想再不使用证书的情况下,来实现WCF安全。
       WCF Security 安全为什么要提供证书?
       这个问题也是很有意思的问题,
    Frank.Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
    老徐的博客:http://frank_xl.cnblogs.com
    2009年7月29日 16:12
    版主

答案

  • Hi,
       我之前也有关于这个问题的疑惑。因为之前Web Service 和 WSE3.0 里都可以使用用户名和密码方式来实现身份验证。Web Service可以直接在Soap 消息头部加入UserName 和Password信息。WSE3.0对此进行了扩展,加入了安全验证机制,要求客户端在服务调用以前,必须设置用户令牌信息,服务获取请求以后,先进行消息的还原和验证。WCF里的UserNamePasswordValidator验证方式应该就是对扩展。不过他是重写了UsernameTokenManager的AuthenticateToken方法。但是机制应该类似。大家有兴趣可以看看WSE3.0构建Web服务安全(1):WSE3.0安全机制与实例开发

        主要原因就是WCF的安全直接提升了一个层次,使用WS-Secrity安全规范。这里核心就是X.509证书加密消息。也就是WCF强制支持WS-Security规范的话,无论服务器还是客户端通信,就必须使用证书。
       要么不使用安全,即:none.一旦使用,必须要求至少服务端,提供一个证书。
       WCF因为是面向服务的程序,所以对信息安全的要求就比较高,它基于的假设就是如果消息是不安全的,因为一旦被截获,就可以破译,这个等于安全形同虚设。任何人都可以冒充客户端发送消息。
    此外目前我所知道的不需要证书的安全策略是基于Windows 域账号的,这个针对的是企业内部局域网。

      这个是主要原因:WS-Secrity安全规范,要求使用X.509证书。


    Frank.Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
    老徐的博客:http://frank_xl.cnblogs.com
    欢迎访问Microsoft WCF中文技术论坛:Welcome to Microsoft Chinese WCF Forum
    2009年7月30日 8:56
    版主