none
在不使用证书的情况下,哪种方式能取得比较好的信息加密效果呢? RRS feed

答案

  • 谢谢各位关注。

    至于加密算法或怎么加密,我的理解是如果我们选择了传输安全模式或消息安全模式后,WCF会为我们处理这些的,有些需要证书我想它是用非对称的加密方式,那么不用证书呢,它的加密能保证到什么程度呢。我对此也不太熟悉,看来得需要更多的学习了。


    呵呵,
    不需要客气。
       其实加密或者签名,都是信息安全的一种措施。防止破译或者修改,这个数据传输与交互过程中很重要的内容。WCF提供的安全框架其实本质上也是加密算法的应用,他只是利用或者支持了微软已有的加密和解密类库。这些类库里封装了主流的加密算法。早期的这些加密算法是不对中国公布的,NET Framwork里的很多加密算法都是牵扯到知识版权的问题,还有就是美国政府对技术输出限制很严格。
         证书只是非对称加密解密算法的一个包装,所有WCF提供的安全机制,或者NET Framwork的加密算法你都可以重新开发或者实现。这些算法也有复杂度和破译难度,取决于你key的设置了。key长度越大,越难以破译,但是带来的另外一个问题就是性能问题,你如果进行大量的数据加密和解密,时间耗费可以想象。
       任何算法都有有点和缺点,你可以根据自己的需求来选择加密算法,在安全度和性能等方面综合取舍。加密算法我们更多是应用,做加密算法研究的都是数学天才,呵呵,我们只有崇拜的份了~
         貌似山东大学的王小云教授,曾经破译过MD5加密,很强的一个人,你可以搜索一下相关的新闻~
    更多加密算法你可以参考这个: http://www.pediy.com/tutorial/chap6/Chap6-3-1.htm
    Frank.Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
    老徐的博客:http://frank_xl.cnblogs.com
    • 已标记为答案 wyssoft 2009年7月11日 23:47
    2009年7月11日 3:32
    版主
  • WCF目前知道的不需要配置证书的情况;
    1.Security Mode为None,也就是不启用安全,这里不需要证书。
    2.NetTcpBinding 在使用Windows安全验证的时候,不需要证书,安全由Windows Domain提供。
    3.如果不想使用证书,可以在basicHttpBinding下使用TransportCredentialOnly安全模式,这里客户端凭据信息都是明文传递的。
    Frank Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
    欢迎访问老徐的中文技术博客:Welcome to My Chinese Technical Blog
    欢迎访问微软WCF中文技术论坛:Welcome to Microsoft Chinese WCF Forum
    欢迎访问微软WCF英文技术论坛:Welcome to Microsoft English WCF Forum
    2010年1月23日 15:18
    版主

全部回复

  • Hi,
       你的问题其实在这个帖子里有涉及到:   关于x.509数字证书已订阅
       证书也是非对称加密的一种。密钥和公钥是分开的。这个和对称加密不同。证书的制作和管理是比较复杂的一个过程。
    每个证书里都包含公钥,用来加密信息,服务端使用对应的私钥来解密信息。为了保证信息不被传该,鉴别发送的客户端唯一,这里还是用了签名机制。
       如果你想避免麻烦,就直接使用。NET提供的加密类库。
      非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。

        公钥加密:公钥加密使用一个必须对未经授权的用户保密的私钥和一个可以对任何人公开的公钥。公钥和私钥都在数学上相关联;用公钥加密的数据只能用私钥解密,而用私钥签名的数据只能用公钥验证,.NET 通过抽象基类 (System.Security.Crytography.AsymmetricAlgorithm) 提供下列非对称(公钥/私钥)加密算法:

    DSACryptoServiceProvider

    RSACryptoServiceProvider


       相对来说。非对称加密比对称加密安全,对称加密只有一个密钥,用来加密和解密。非对称的安全性较高。
    其他的概念你可以再msdn中查找这几个类的说明都有详细介绍,安全的概念可以参考:WSE3.0构建Web服务安全(2):非对称加密、公钥、密钥、证书、签名的区别和联系以及X.509 证书的获得和管理


    Frank.Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
    老徐的博客:http://frank_xl.cnblogs.com
    2009年7月10日 4:36
    版主
  • 收藏收藏收藏,向Frank.Xu Lei学习。
    2009年7月10日 5:19
  • 收藏收藏收藏,向Frank.Xu Lei学习。

    晕~各有所长,互相学习~呵呵
    Frank.Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
    老徐的博客:http://frank_xl.cnblogs.com
    2009年7月10日 11:25
    版主
  • 总觉得用证书有点太严谨了,我只是想能应付一般情况就可以了,客户端与服务端之间的通信数据加密不致于很容易被破解就可以了。不知道有没有比较简单的一些配置方式。

    2009年7月10日 11:41
  • 总觉得用证书有点太严谨了,我只是想能应付一般情况就可以了,客户端与服务端之间的通信数据加密不致于很容易被破解就可以了。不知道有没有比较简单的一些配置方式。


    简单的方式多的是啊~
    1.替换几个字符,你在发送以前。接受完毕后在替换回来;
    2.直接全部替换或者运算,这个运算的值,其实也就是key,只有你自己知道;接手后反运算;
    3.对称加密,很多对称加密的算法,其实也是这个思路,使用一个key对数据加密,揭秘也使用同一个key。
       发送前加密和接收后解密,都使用一个key。私钥加密算法:使用单个私钥来加密和解密数据。由于具有密钥的任意一方都可以使用该密钥解密数据私钥加密又称为对称加密,因为同一密钥既用于加密又用于解密。私钥加密并不能实现数据完整性,即防止数据被更改;也无法完成对身份的验证,即确保数据发自特定的一方。.NET 提供以下实现类以提供对称的密钥加密算法:

    DESCryptoServiceProvider

    RC2CryptoServiceProvider

    RijndaelManaged

    TripleDESCryptoServiceProvider


    Frank.Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
    老徐的博客:http://frank_xl.cnblogs.com
    2009年7月10日 12:42
    版主
  • 谢谢各位关注。

    至于加密算法或怎么加密,我的理解是如果我们选择了传输安全模式或消息安全模式后,WCF会为我们处理这些的,有些需要证书我想它是用非对称的加密方式,那么不用证书呢,它的加密能保证到什么程度呢。我对此也不太熟悉,看来得需要更多的学习了。

    2009年7月10日 14:25
  • 哈,别晕,楼主的问题,正是我想问的,借楼主光。同时感觉您回答的很详尽。
    2009年7月10日 14:55
  • 谢谢各位关注。

    至于加密算法或怎么加密,我的理解是如果我们选择了传输安全模式或消息安全模式后,WCF会为我们处理这些的,有些需要证书我想它是用非对称的加密方式,那么不用证书呢,它的加密能保证到什么程度呢。我对此也不太熟悉,看来得需要更多的学习了。


    呵呵,
    不需要客气。
       其实加密或者签名,都是信息安全的一种措施。防止破译或者修改,这个数据传输与交互过程中很重要的内容。WCF提供的安全框架其实本质上也是加密算法的应用,他只是利用或者支持了微软已有的加密和解密类库。这些类库里封装了主流的加密算法。早期的这些加密算法是不对中国公布的,NET Framwork里的很多加密算法都是牵扯到知识版权的问题,还有就是美国政府对技术输出限制很严格。
         证书只是非对称加密解密算法的一个包装,所有WCF提供的安全机制,或者NET Framwork的加密算法你都可以重新开发或者实现。这些算法也有复杂度和破译难度,取决于你key的设置了。key长度越大,越难以破译,但是带来的另外一个问题就是性能问题,你如果进行大量的数据加密和解密,时间耗费可以想象。
       任何算法都有有点和缺点,你可以根据自己的需求来选择加密算法,在安全度和性能等方面综合取舍。加密算法我们更多是应用,做加密算法研究的都是数学天才,呵呵,我们只有崇拜的份了~
         貌似山东大学的王小云教授,曾经破译过MD5加密,很强的一个人,你可以搜索一下相关的新闻~
    更多加密算法你可以参考这个: http://www.pediy.com/tutorial/chap6/Chap6-3-1.htm
    Frank.Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
    老徐的博客:http://frank_xl.cnblogs.com
    • 已标记为答案 wyssoft 2009年7月11日 23:47
    2009年7月11日 3:32
    版主
  • 哈,别晕,楼主的问题,正是我想问的,借楼主光。同时感觉您回答的很详尽。

    呵呵,一起讨论,我也有收获啊~
    Frank.Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
    老徐的博客:http://frank_xl.cnblogs.com
    2009年7月11日 3:33
    版主
  • 谢谢各位。

    2009年7月11日 23:46
  • WCF目前知道的不需要配置证书的情况;
    1.Security Mode为None,也就是不启用安全,这里不需要证书。
    2.NetTcpBinding 在使用Windows安全验证的时候,不需要证书,安全由Windows Domain提供。
    3.如果不想使用证书,可以在basicHttpBinding下使用TransportCredentialOnly安全模式,这里客户端凭据信息都是明文传递的。
    Frank Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
    欢迎访问老徐的中文技术博客:Welcome to My Chinese Technical Blog
    欢迎访问微软WCF中文技术论坛:Welcome to Microsoft Chinese WCF Forum
    欢迎访问微软WCF英文技术论坛:Welcome to Microsoft English WCF Forum
    2010年1月23日 15:18
    版主
  •   关于x.509数字证书

    这个数字证书,如果是自己的ca服务器发布的,用户访问的时候,会提示安装证书吗,会提示证书不安全吗
    2010年1月26日 1:27
  • 不需要。验证不通过,IE会提示这些信息。
    Frank Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
    欢迎访问老徐的中文技术博客:Welcome to My Chinese Technical Blog
    欢迎访问微软WCF中文技术论坛:Welcome to Microsoft Chinese WCF Forum
    欢迎访问微软WCF英文技术论坛:Welcome to Microsoft English WCF Forum
    2010年1月26日 13:34
    版主