捕风之巢

统计

留言簿(3)

java友情链接

阅读排行榜

评论排行榜

openssl简介(九)--指令cipher

 

九.     指令 cipher

说明: cipher 就是加密算法的意思。 ssl cipher 主要是对称加密算法和不对称加密算法的组合。 本指令是用来展示用于 SSL 加密算法的工具。它能够把所有 openssl 支持的加密算法按照一定规律排列(一般是加密强度)。这样可以用来做测试工具,决 定使用什么加密算法。
   
   
   
用法:
    openssl ciphers [-v] [-ssl2] [-ssl3] [-tls1] [cipherlist]
        
    COMMAND OPTIONS
    -v
   
详细列出所有符合的 cipher 的所有细节。列出该 cipher 使用的 ssl 的版本,公共密钥交换算法,身份验证方法,对称加密算法以及哈希算法。还列出该算法是否可以出口。
   
算法出口? 趁这个机会可以给大家来点革命教育。米国的加密算法研究是世界上最先进的,其国家安全局 (NSA) 在这方面的研究水平已经多次证明比 " 最先进水平 " 领先 10 15 年。他们的预算据说是每年 200 亿美圆。他们的数学家比你知道的还多,他们还是全世界最大的计算机硬件买家。 DES 就是他们最先弄出来的。到了 70 年代, IBM 也有人在实现室弄出这个算法。都弄出来 30 年了,还使用的这么广泛。
   
该算法的最隐蔽的是一个叫 S 匣的东西,是一个常数矩阵。研究 DES 你就会知道这玩意。因为 NSA IBM 都没有给出这个 S 匣的解释,所以大家都怀疑使用这个东西是否是 NSA IBM 搞出来的后门?
   
一直到了 90 年代,才有俩个以色列人发现了原因,这个是为了对付一种叫什么微分密码分析的破解法而如此设置的,对 S 匣的任何改动都将使微分密码分析比较容易的将 DES K 掉。 S 匣不仅不是后门,还是最大限度的增加了加密强度。
   
说远了,大意就是:老米在这方面领先的可怕。但他们怕他们的研究成果给其他国家的人用,搞的自己也破解不了,那就麻烦了。所以他们用法律规定了,一定强度以上的加密算法禁止给其他国家用。那些加密强度很弱的就可以出口。
   
这个故事教育我们,为了中国的崛起,还有很多路要走呐。
   
如果没有 -v 这个参数, 很多 cipher 可能重复出现,因为他们可以同时被不同版本的 SSL 协议使用。
   
     -ssl3
   
只列出 SSLv3 使用的 ciphers
     -ssl2
   
只列出 SSLv2 使用的 ciphers
    -tls1
   
只列出 TLSv1 使用的 ciphers
    -h, -?
   
打印帮助信息
    cipherlist
   
列出一个 cipher list 的详细内容。一般都这么用:
   openssl -v XXXXX
   
这个 XXXXX 就是 cipher list. 如果是空的话,那么 XXXXX 代表所有的 cipher.
   CIPHER LIST
的格式
   cipher list
由许多 cipher string 组成,由冒号,逗号或者空格分隔开。但一般最常用的是用冒号。
   cipher string
又是什么?
   
它可以仅仅包含一个 cipher, 比如 RC4-SHA.
   
它也可以仅仅包含一个加密算法,比如 SHA, 那就表示所有用到 SHA cipher 都得列出来。
   
你还可以使用三个符号来捏合各种不同的 cipher, 做出 cipher string. 这三个符号是 +, -, ! 。我想这个很好理解吧, MD5+DES 表示同时使用了这俩种算法的 cipher !SHA 就表示所有没有有用到 SHA cipher IDEA-CBC 就表示使用了 IDEA 而没有使用 CBC 的所有 cipher.
    openssl
还缺省的定义了一些通用的 cipher string, 有:
    DEFAULT:
缺省的 cipher list.
    ALL:
所有的 cipher
    HIGH, LOW, MEDIUM:
分别代表 高强度,中等强度和底强度的 cipher list. 具体一点就是对称加密算法的 key 的长度分别是 >;128bit <128bit ==128bit cipher.
    EXP, EXPORT, EXPORT40:
老米的垄断体现,前俩者代表法律允许出口的加密算法,包括 40bit, 56bit 长度的 key 的算法,后者表示只有 40bit 长度的 key 的加密算法。
    eNULL, NULL:
表示不加密的算法。 ( 那也叫加密算法吗? )
    aNULL:
不提供身份验证的加密算法。目前只有 DH 一种。该算法很容易被监听者,路由器等中间设备攻击,所以不提倡使用。
   
   
下表列出了 SSL/TLS 使用的 cipher, 以及 openssl 里面如何表示这些 cipher.
    SSL v3.0 cipher suites OPENLLS
表示方法
   
     SSL_RSA_WITH_NULL_MD5 NULL-MD5
   
     SSL_RSA_WITH_NULL_SHA NULL-SHA
   
     SSL_RSA_EXPORT_WITH_RC4_40_MD5 EXP-RC4-MD5
   
     SSL_RSA_WITH_RC4_128_MD5 RC4-MD5
   
     SSL_RSA_WITH_RC4_128_SHA RC4-SHA
   
     SSL_RSA_EXPORT_WITH_RC2_CBC_40_MD5 EXP-RC2-CBC-MD5
   
     SSL_RSA_WITH_IDEA_CBC_SHA IDEA-CBC-SHA
   
     SSL_RSA_EXPORT_WITH_DES40_CBC_SHA EXP-DES-CBC-SHA
   
     SSL_RSA_WITH_DES_CBC_SHA DES-CBC-SHA
   
     SSL_RSA_WITH_3DES_EDE_CBC_SHA DES-CBC3-SHA
        
     SSL_DH_DSS_EXPORT_WITH_DES40_CBC_SHA Not implemented.
   
     SSL_DH_DSS_WITH_DES_CBC_SHA Not implemented.
   
     SSL_DH_DSS_WITH_3DES_EDE_CBC_SHA Not implemented.
   
     SSL_DH_RSA_EXPORT_WITH_DES40_CBC_SHA Not implemented.
   
     SSL_DH_RSA_WITH_DES_CBC_SHA Not implemented.
   
     SSL_DH_RSA_WITH_3DES_EDE_CBC_SHA Not implemented.
   
     SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA EXP-EDH-DSS-DES-CBC-SHA
   
     SSL_DHE_DSS_WITH_DES_CBC_SHA EDH-DSS-CBC-SHA
   
     SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA EDH-DSS-DES-CBC3-SHA
   
     SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA EXP-EDH-RSA-DES-CBC-SHA
   
     SSL_DHE_RSA_WITH_DES_CBC_SHA EDH-RSA-DES-CBC-SHA
   
     SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA EDH-RSA-DES-CBC3-SHA
   
     
     SSL_DH_anon_EXPORT_WITH_RC4_40_MD5 EXP-ADH-RC4-MD5
   
     SSL_DH_anon_WITH_RC4_128_MD5 ADH-RC4-MD5
   
     SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA EXP-ADH-DES-CBC-SHA
   
     SSL_DH_anon_WITH_DES_CBC_SHA ADH-DES-CBC-SHA
   
     SSL_DH_anon_WITH_3DES_EDE_CBC_SHA ADH-DES-CBC3-SHA
   
     
   
     SSL_FORTEZZA_KEA_WITH_NULL_SHA Not implemented.
   
     SSL_FORTEZZA_KEA_WITH_FORTEZZA_CBC_SHA Not implemented.
   
     SSL_FORTEZZA_KEA_WITH_RC4_128_SHA Not implemented.
   
     
   
     TLS_RSA_EXPORT1024_WITH_DES_CBC_SHA EXP1024-DES-CBC-SHA
   
     TLS_RSA_EXPORT1024_WITH_RC4_56_SHA EXP1024-RC4-SHA
   
     TLS_DHE_DSS_EXPORT1024_WITH_DES_CBC_SHA EXP1024-DHE-DSS-DES-CBC-SHA
   
     TLS_DHE_DSS_EXPORT1024_WITH_RC4_56_SHA EXP1024-DHE-DSS-RC4-SHA
   
     TLS_DHE_DSS_WITH_RC4_128_SHA DHE-DSS-RC4-SHA
   
     
   
     
   
    TLS v1.0 cipher suites.
   
     TLS_RSA_WITH_NULL_MD5 NULL-MD5
   
     TLS_RSA_WITH_NULL_SHA NULL-SHA
   
     TLS_RSA_EXPORT_WITH_RC4_40_MD5 EXP-RC4-MD5
   
     TLS_RSA_WITH_RC4_128_MD5 RC4-MD5
   
     TLS_RSA_WITH_RC4_128_SHA RC4-SHA
   
     TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5 EXP-RC2-CBC-MD5
   
     TLS_RSA_WITH_IDEA_CBC_SHA IDEA-CBC-SHA
   
     TLS_RSA_EXPORT_WITH_DES40_CBC_SHA EXP-DES-CBC-SHA
   
     TLS_RSA_WITH_DES_CBC_SHA DES-CBC-SHA
   
     TLS_RSA_WITH_3DES_EDE_CBC_SHA DES-CBC3-SHA
   
     
   
     TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA Not implemented.
   
     TLS_DH_DSS_WITH_DES_CBC_SHA Not implemented.
   
     TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA Not implemented.
   
     TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA Not implemented.
   
     TLS_DH_RSA_WITH_DES_CBC_SHA Not implemented.
   
     TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA Not implemented.
   
     TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA EXP-EDH-DSS-DES-CBC-SHA
   
     TLS_DHE_DSS_WITH_DES_CBC_SHA EDH-DSS-CBC-SHA
   
     TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA EDH-DSS-DES-CBC3-SHA
   
     TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA EXP-EDH-RSA-DES-CBC-SHA
   
     TLS_DHE_RSA_WITH_DES_CBC_SHA EDH-RSA-DES-CBC-SHA
   
     TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA EDH-RSA-DES-CBC3-SHA
   
     
   
     TLS_DH_anon_EXPORT_WITH_RC4_40_MD5 EXP-ADH-RC4-MD5
   
     TLS_DH_anon_WITH_RC4_128_MD5 ADH-RC4-MD5
   
     TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA EXP-ADH-DES-CBC-SHA
   
     TLS_DH_anon_WITH_DES_CBC_SHA ADH-DES-CBC-SHA
   
     TLS_DH_anon_WITH_3DES_EDE_CBC_SHA ADH-DES-CBC3-SHA
   
    NOTES
    DH
算法由于老米没有允许人家使用,所有 openssl 都没有实现之。
   
举例时间:
   
详细列出所有 openssl 支持的 ciphers, 包括那些 eNULL ciphers:
    openssl ciphers -v 'ALL:eNULL'
   
按加密强度列出所有加密算法 :
    openssl ciphers -v 'ALL:!ADHSTRENGTH'
   
详细列出所有同时使用了 3DES RSA ciphers
    openssl ciphers -v '3DES:+RSA'

posted on 2006-10-17 15:29 捕风 阅读(1106) 评论(0)  编辑  收藏 所属分类: java安全


只有注册用户登录后才能发表评论。


网站导航: