none
请教几个关于WCF的安全方面的问题。 RRS feed

  • 问题

  • 1 如果采用WSHttpBinding 绑定,那么它默认的加密是对称加密还是非对称加密?并且它们的密钥是如何传送给对方的?

    2 如果采用WSHttpBinding 绑定,并且采用服务器端证书,并且服务器端证书发送给客户端,那么客户端发送给服务器端的消息的加密是由WSHttpBinding 的加密机制来加密的,还是用用服务器端证书的公钥来加密的?

    谢谢!

     

     





    2011年6月6日 16:15

答案

  • 1.WS绑定,默认的是 Message安全模式,也就是消息安全,这里使用的标准是WS-Security规范,这里密钥交换发生在主要数据传输之前,也就是有个密钥交换的规范,密钥交换和协商期间是 非对称加密,因为使用到了证书。后续主题数据加密使用的是对称加密。

    2.这个和问题1相关,服务器证书为了建立安全会话,但是前提必须协商出来一个密钥,协商的过程里的消息要使用证书的非对称密钥进行加密,但是协商结束之后,主要数据使用的是对称密钥进行加密


    Frank Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
     

    老徐的网站】:http://www.frankxulei.com/

    微软WCF中文技术论坛
    微软WCF英文技术论坛

    Windows Azure中文技术论坛

    • 已标记为答案 Jacky_shen 2011年6月7日 4:25
    • 取消答案标记 Jacky_shen 2011年6月7日 4:34
    • 已标记为答案 Jacky_shen 2011年6月7日 4:34
    2011年6月7日 4:01
    版主

全部回复

  • 1.WS绑定,默认的是 Message安全模式,也就是消息安全,这里使用的标准是WS-Security规范,这里密钥交换发生在主要数据传输之前,也就是有个密钥交换的规范,密钥交换和协商期间是 非对称加密,因为使用到了证书。后续主题数据加密使用的是对称加密。

    2.这个和问题1相关,服务器证书为了建立安全会话,但是前提必须协商出来一个密钥,协商的过程里的消息要使用证书的非对称密钥进行加密,但是协商结束之后,主要数据使用的是对称密钥进行加密


    Frank Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
     

    老徐的网站】:http://www.frankxulei.com/

    微软WCF中文技术论坛
    微软WCF英文技术论坛

    Windows Azure中文技术论坛

    • 已标记为答案 Jacky_shen 2011年6月7日 4:25
    • 取消答案标记 Jacky_shen 2011年6月7日 4:34
    • 已标记为答案 Jacky_shen 2011年6月7日 4:34
    2011年6月7日 4:01
    版主
  • 非常感谢老徐的回答,解决了我不少困惑!

     

    另外,我是否可以这样理解,

    1 只要使用了WSHttpBinding 绑定,服务器端就必须要提供一个证书,以用来加密交换的密钥?

    也就是说除了用证书来加密客户端发送给服务器端的密钥,没有别的加密方法了,

    不知道是不是这样?

     

    2 后续的数据的传输采用对称加密,那那些数据是如何签名的?

    因为客户端没有提供证书嘛 ,所有想知道客户端传递到服务器端的数据是如何sign的?




    2011年6月7日 4:31
  • 1.不是的,不启用安全不需要证书。这个交换密钥我前面说了,是基于一套规范,所以规范要求的东西,你必须提供的。

    2.签名使用的哈希算法也是协商过程中提供的。


    Frank Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
     

    老徐的网站】:http://www.frankxulei.com/

    微软WCF中文技术论坛
    微软WCF英文技术论坛

    Windows Azure中文技术论坛

    2011年6月7日 12:40
    版主
  • 1.不是的,不启用安全不需要证书。这个交换密钥我前面说了,是基于一套规范,所以规范要求的东西,你必须提供的。

    2.签名使用的哈希算法也是协商过程中提供的。


    Frank Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
     

    老徐的网站】:http://www.frankxulei.com/

    微软WCF中文技术论坛
    微软WCF英文技术论坛

    Windows Azure中文技术论坛


    感谢回答,

    只是我还是不知道那个协商过程到底发生了哪些事情,不知道有没有相关的资料来介绍


    2011年6月7日 13:32