捕風之巢

          統計

          留言簿(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 捕風 閱讀(1148) 評論(0)  編輯  收藏 所屬分類: java安全

          主站蜘蛛池模板: 景宁| 潮安县| 阜新市| 平湖市| 西乌珠穆沁旗| 南投县| 和平区| 西青区| 昌黎县| 静安区| 西宁市| 白沙| 岑巩县| 中江县| 永新县| 友谊县| 游戏| 兰考县| 仪征市| 中江县| 和林格尔县| 湟中县| 桦川县| 乳源| 辽阳市| 中牟县| 安宁市| 宁河县| 乌拉特前旗| 深水埗区| 怀集县| 墨玉县| 河津市| 忻州市| 靖宇县| 同江市| 五大连池市| 新干县| 四子王旗| 新平| 平利县|