none
wce3.0 ,webserver 传输加密问题!! RRS feed

  • 问题

  • 我有webserver需求 一个客户端 要访问多个webserver

    如果做传输加密 网上大多说是用证书!不对称加密!  服务端做证书导出公钥,客户端安装上使用 (用WSE3.0实现)

    我的服务端如果太多  这个客户端岂不是要安装很多个证书(公钥?)

     

    有没有实现更好的方案 在传输加密方面!?


    vc815
    2010年11月20日 15:12

答案

  • 你说的是身份验证

    可是身份验证是建立在 公钥私钥数据加密 好使的情况下

    如果(恶意)他人 都有公钥了  数据已经可以解密了   里面的用户名 密码 直接替换 或者转发 一样你的验证没有意义

    我感觉还是加密(公钥私钥对加密)安全 认证只是建立在加密里面的二次认证而已。。

     

     

    总结下:公钥还得保护好啊!!


    vc815

    vc815 你可能没能理解清楚我的意思

    可以加密不代表可以解密

    他虽然知道公钥 可以用公钥加密自己的信息 但是不代表他能解密,因为解密公钥加密的内容需要私钥,而这个只有你服务器端知道 所以是安全的

     


    Raymond Tang (Microsoft C# MVP)
    Denn Ich Gehoer nur mir
    .NET交流群71840452
    微软中文论坛同城社区成都QQ群:74268428
    My Chinese Blog
    Chengdu,Sichuan Province,China
    2010年11月30日 3:06
    版主
  • 你可以尝试做一个认证服务器,所有服务端和客户端都和认证服务器信任。当客户要和服务端通信的时候,由认证服务器认证双方身份,然后生成临时的对称秘钥。这样你的客户端只要有认证服务器的证书就可以了。不过认证服务器是要给所有的信任的服务端和客户分发证书,或者有所有其它终端的公钥。你可以看看Kerberos协议。微软的域的安全认证就是建立在这个协议之上。
    2011年2月22日 3:42

全部回复

  • 你好 建议你参考这篇文章 http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WSESecurity.mspx?mfr=true
    Raymond Tang (Microsoft C# MVP)
    Denn Ich Gehoer nur mir
    .NET交流群71840452
    微软中文论坛同城社区成都QQ群:74268428
    My Chinese Blog
    Chengdu,Sichuan Province,China
    2010年11月22日 8:07
    版主
  • 我有webserver需求 一个客户端 要访问多个webserver

    如果做传输加密 网上大多说是用证书!不对称加密!  服务端做证书导出公钥,客户端安装上使用 (用WSE3.0实现)

    我的服务端如果太多  这个客户端岂不是要安装很多个证书(公钥?)

     

    有没有实现更好的方案 在传输加密方面!?


    vc815

    更好的办法实际有的。

    你说的WSE3.0,我写过一个系列文章。

    其实,针对你的情况,简单的就是使用HTTPS使用传输加密,但是如果客户端很多,而且分布于互联网上,那最好购买商业证书。而不是自己制作的证书。

    这个客户端验证服务证书,就不需要导入服务证书了。


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

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

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

    Windows Azure中文技术论坛

    2010年11月26日 1:48
    版主
  • 你好 建议你参考这篇文章 http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WSESecurity.mspx?mfr=true
    Raymond Tang (Microsoft C# MVP)
    Denn Ich Gehoer nur mir
    .NET交流群71840452
    微软中文论坛同城社区成都QQ群:74268428
    My Chinese Blog
    Chengdu,Sichuan Province,China


    你的说的这文章已经看过

    实例程序也看了 问题就出在这个程序上!!!  我的本地电脑都没有安装证书 他怎么能运行好使???

    程序里 也请用策略了!?!?


    vc815
    2010年11月26日 2:01
  • 我有webserver需求 一个客户端 要访问多个webserver

    如果做传输加密 网上大多说是用证书!不对称加密!  服务端做证书导出公钥,客户端安装上使用 (用WSE3.0实现)

    我的服务端如果太多  这个客户端岂不是要安装很多个证书(公钥?)

     

    有没有实现更好的方案 在传输加密方面!?


    vc815

    更好的办法实际有的。

    你说的WSE3.0,我写过一个系列文章。

    其实,针对你的情况,简单的就是使用HTTPS使用传输加密,但是如果客户端很多,而且分布于互联网上,那最好购买商业证书。而不是自己制作的证书。

    这个客户端验证服务证书,就不需要导入服务证书了。


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

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

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


    又没看明白的我意思????

    我的说的是“服务端多,客户端 就一个!!!! 一个客户端连接很多webserver ”


    vc815
    2010年11月26日 2:03
  • 你好 我们说的证书一般就是指的公钥证书,如果你没有安装你又怎么解密呢?

    如果你想要非对称加密,那么就需要公私玥对,客户端如果不安装,就无法解密私钥加密的信息。

    公钥加密后的信息只有私钥可以解密,在传递的时候别人 由于你只发布了公钥 其他人只可以加密信息传送给你,但是无法破解传递过程中的信息因为他没有私钥这就保证了安全性。

     


    Raymond Tang (Microsoft C# MVP)
    Denn Ich Gehoer nur mir
    .NET交流群71840452
    微软中文论坛同城社区成都QQ群:74268428
    My Chinese Blog
    Chengdu,Sichuan Province,China
    2010年11月26日 14:02
    版主
  • 你好 我们说的证书一般就是指的公钥证书,如果你没有安装你又怎么解密呢?

    如果你想要非对称加密,那么就需要公私玥对,客户端如果不安装,就无法解密私钥加密的信息。

    公钥加密后的信息只有私钥可以解密,在传递的时候别人 由于你只发布了公钥 其他人只可以加密信息传送给你,但是无法破解传递过程中的信息因为他没有私钥这就保证了安全性。

     


    Raymond Tang (Microsoft C# MVP)
    Denn Ich Gehoer nur mir
    .NET交流群71840452
    微软中文论坛同城社区成都QQ群:74268428
    My Chinese Blog
    Chengdu,Sichuan Province,China


    那就说只能 防止  中途的信息外泄? 如果公钥被别人(恶意)获取到 这人也可以和服务器通信?

    公钥也得保护好?

     


    vc815
    2010年11月30日 2:21
  • 你好 我们说的证书一般就是指的公钥证书,如果你没有安装你又怎么解密呢?

    如果你想要非对称加密,那么就需要公私玥对,客户端如果不安装,就无法解密私钥加密的信息。

    公钥加密后的信息只有私钥可以解密,在传递的时候别人 由于你只发布了公钥 其他人只可以加密信息传送给你,但是无法破解传递过程中的信息因为他没有私钥这就保证了安全性。

     


    Raymond Tang (Microsoft C# MVP)
    Denn Ich Gehoer nur mir
    .NET交流群71840452
    微软中文论坛同城社区成都QQ群:74268428
    My Chinese Blog
    Chengdu,Sichuan Province,China


    那就说只能 防止  中途的信息外泄? 如果公钥被别人(恶意)获取到 这人也可以和服务器通信?

    公钥也得保护好?

     


    vc815


    你好,举个简单的例子,如果你的钥匙掉了,或者这个钥匙是提供给任何人都可以使用的,那么你就无法防止其他人用钥匙开门

    不过你可以在开门的时候再加一道程序,需要开门的人提供自己的个人信息,如果他在你的合法钥匙使用者中,你的系统才让它打开门

    这相当于在服务器端需要客户端提供自己的信息 服务器端再多一次验证


    Raymond Tang (Microsoft C# MVP)
    Denn Ich Gehoer nur mir
    .NET交流群71840452
    微软中文论坛同城社区成都QQ群:74268428
    My Chinese Blog
    Chengdu,Sichuan Province,China
    2010年11月30日 2:27
    版主
  • 你说的是身份验证

    可是身份验证是建立在 公钥私钥数据加密 好使的情况下

    如果(恶意)他人 都有公钥了  数据已经可以解密了   里面的用户名 密码 直接替换 或者转发 一样你的验证没有意义

    我感觉还是加密(公钥私钥对加密)安全 认证只是建立在加密里面的二次认证而已。。

     

     

    总结下:公钥还得保护好啊!!


    vc815
    2010年11月30日 2:45
  • 你说的是身份验证

    可是身份验证是建立在 公钥私钥数据加密 好使的情况下

    如果(恶意)他人 都有公钥了  数据已经可以解密了   里面的用户名 密码 直接替换 或者转发 一样你的验证没有意义

    我感觉还是加密(公钥私钥对加密)安全 认证只是建立在加密里面的二次认证而已。。

     

     

    总结下:公钥还得保护好啊!!


    vc815

    vc815 你可能没能理解清楚我的意思

    可以加密不代表可以解密

    他虽然知道公钥 可以用公钥加密自己的信息 但是不代表他能解密,因为解密公钥加密的内容需要私钥,而这个只有你服务器端知道 所以是安全的

     


    Raymond Tang (Microsoft C# MVP)
    Denn Ich Gehoer nur mir
    .NET交流群71840452
    微软中文论坛同城社区成都QQ群:74268428
    My Chinese Blog
    Chengdu,Sichuan Province,China
    2010年11月30日 3:06
    版主
  • 你可以尝试做一个认证服务器,所有服务端和客户端都和认证服务器信任。当客户要和服务端通信的时候,由认证服务器认证双方身份,然后生成临时的对称秘钥。这样你的客户端只要有认证服务器的证书就可以了。不过认证服务器是要给所有的信任的服务端和客户分发证书,或者有所有其它终端的公钥。你可以看看Kerberos协议。微软的域的安全认证就是建立在这个协议之上。
    2011年2月22日 3:42
  • 关于 证书 对称加密 请参考我这两篇博客

    http://hi.baidu.com/1987raymond/blog/item/8681980f0db965feab6457e0.html

    http://hi.baidu.com/1987raymond/blog/item/b91630d728eb34cea044df6f.html


    Raymond Tang (Microsoft C# MVP)
    Denn Ich Gehoer nur mir
    .NET交流群71840452
    微软中文论坛同城社区成都QQ群:74268428
    My Chinese Blog
    Chengdu,Sichuan Province,China
    2011年3月7日 13:55
    版主