說明: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:!ADH:@STRENGTH'
詳細列出所有同時使用了3DES和RSA的ciphers
openssl ciphers -v '3DES:+RSA'
posted on 2009-11-27 17:35
零全零美 閱讀(2995)
評論(0) 編輯 收藏 所屬分類:
安全相關