1. 程式人生 > >OpenSSL命令---ciphers

OpenSSL命令---ciphers

用途:

指令是用來展示用於SSL加密演算法的工具。它能夠把所有openssl支援的加密演算法按照一定規律排列(一般是加密強度)。這樣可以用來做測試工具,決定使用什麼加密演算法。

用法:

openssl ciphers [-v] [-ssl2] [-ssl3] [-tls1] [cipherlist] 

選項說明:

-v:詳細列出所有加密套件。包括ssl版本(SSLv2 SSLv3以及 TLS)、金鑰交換演算法、身份驗證演算法、對稱演算法、摘要演算法以及該演算法是否可以出口。

-ssl2:只列出SSLv2使用的加密套件。

-ssl3:只列出SSLv3使用的加密套件。

-tls1:只列出tls使用的加密套件。

cipherlist:列出一個cipher list的詳細內容。用此項能列出所有符合規則的加密套件,如果不加-v選項,它只顯示各個套件名字;

演算法列表格式:

演算法列表包含一個或多個、用頓號隔開的I<cipher strings>。逗號或空格是可接受的分隔符,但是分號是普遍使用的。

真實的演算法字串可以從不同的表中提取。

也可以包含一個簡單的演算法元件,例如B<RC4-SHA>

一個演算法元件包含某幾個演算法,或者演算法套件的幾個型別值。例如B<SHA1>代表所有的演算法套件中的摘要演算法為SHA1B<SSLv3>代表所有的SSL v3相關的演算法。

一個演算法元件可以用B<+>字元把簡單的演算法字元連線起來。這是一個符合邏輯的B<and>操作。例如,B<SHA1+DES>代表所有的演算法套件包含SHA1DES演算法。

可以在每個演算法字串之前使用字元B<!>B<-> B<+>

如果使用字元B<!>則從演算法列表中刪除該演算法。根據明確的規定,刪除了的演算法將不會再出現。

如果使用字元B<->,則從演算法列表中刪除該演算法。但是可以通過後面的選項將一個或所有的演算法可以被再次新增。

如果使用字元B<+>,則將該演算法移到演算法列表的末尾。這個選項不會新增任何新的演算法,它只是緊緊的移動匹配的已經存在的演算法。

如果沒有上述字元被提出,則該字串則作為一個演算法列表中的一部分則僅僅被解釋。如果這個列表包含的演算法已經被提出,則他們將被忽略:因為他們不會被移到列表的末尾。

此外,演算法字串B<@STRENGTH>可以被用於到分類,可以讓目前有的演算法按加密演算法謎語而長度分類。

演算法字串:

下面是經過許可的所有演算法字串以及他們的詳細解釋:

B<DEFAULT>:預設的演算法列表。這個在編譯的時候決定,OpenSSL1.0.0以上的版本預設的是B<ALL:!aNULL:!eNULL>。這個必須是第一個有詳細說明的演算法字串。

B<COMPLEMENTOFDEFAULT>:這個演算法包含B<ALL>,但沒有被預設啟用。目前它的值是B<ADH>。需要注意的是這個規則不包括B<eNULL>(它不被包含在B<ALL>中)。

B<ALL>:所有的演算法套件但是不包括B<eNULL>演算法,因為B<eNULL>演算法必須被明確的啟用。作為OpenSSL的一部分,B<ALL>演算法套件被合理的被設定為預設演算法套件。

B<COMPLEMENTOFALL>:這個演算法套件不啟用B<ALL>,目前僅僅包含B<eNULL>演算法。

B<HIGH>:“high”加密演算法套件。目前意味著金鑰長度值大於128位,目前一些演算法套件是128位元組的金鑰。

B<MEDIUM>:“medium”加密演算法套件。目前一些演算法套件是128位元組的加密。

B<LOW>:“low”加密演算法套件。目前使用64位或56位金鑰的加密演算法,但是不包括export系列的演算法套件。

B<EXP>, B<EXPORT>export系列的加密演算法。包含40位元組和56位元組的演算法。

B<EXPORT40>40位元組的加密演算法。

B<EXPORT56>56位元組的加密演算法。在OpenSSL 0.9.8c版本以後後面的版本中56位元組的export演算法時空的,除非OpenSSL明確的表明支援實驗性的演算法。

B<eNULL>, B<NULL>:“NULL”型別的演算法,它表明不用進行任何加密操作。因為他們一直不提供不加密如果要顯示包含的資料則存在一些安全風險。

B<aNULL>:演算法套件中提供沒有驗證演算法。當前它是一個匿名的DH演算法。這些演算法套件是易受到中間攻擊的,於是不建議使用它。

B<kRSA>, B<RSA>:用RSA金鑰來進行金鑰交換。

B<kEDH>:使用短暫的DH金鑰協議。

B<kDHr>, B<kDHd>:演算法套件使用DH金鑰協議和CA分別用RSADSS金鑰簽名的DH證書。目前沒有進行運用。

B<aRSA>RSA金鑰來執行驗證操作。證書攜帶RSA金鑰。

B<aDSS>, B<DSS>:用DSS金鑰來執行驗證操作。證書攜帶DSS金鑰。

B<aDH>:用DH金鑰來執行驗證操作。證書攜帶DH金鑰。目前沒有進行運用。

B<kFZA>, B<aFZA>, B<eFZA>, B<FZA>:用FORTEZZA金鑰來進行金鑰交換、驗證、加密。目前沒有進行運用。

B<TLSv1>, B<SSLv3>, B<SSLv2>TLS v1.0, SSL v3.0 or SSL v2.0演算法套件。

B<DH>:演算法套件使用DH演算法,包括匿名的DH

B<ADH>:匿名的DH演算法套件。

B<AES>:演算法套件使用AES演算法。

B<3DES>演算法套件使用3des演算法。

B<DES>演算法套件使用des演算法。

B<RC4>演算法套件使用rc4演算法。

B<RC2>:演算法套件使用rc2演算法。

B<IDEA>:演算法套件使用IDEA演算法。

B<SEED>:演算法套件使用SEED演算法。

B<MD5>:演算法套件使用MD5演算法。

B<SHA1>, B<SHA>演算法套件使用SHA演算法。

B<aGOST>演算法套件使用GOST R 34.10 (either 2001 or 94)來執行驗證操作(需要一個支援GOST演算法的硬體引擎)。

B<aGOST94>:演算法套件使用GOST R 34.10-94來執行驗證操作(注意R 34.10-94的標準已經過期了,建議使用GOST R 34.10-2001)。

B<kGOST>:用VKO 34.10來執行金鑰交換操作。在RFC4357中指定。

B<GOST94>演算法套件,用基於GOST R 34.11-94HMAC演算法。

B<GOST89MAC>:演算法套件,用GOST 28147-89摘要演算法來代替HMAC

演算法套件名字:

下面的列表根據有關的規範給出了SSL 或者 TLS演算法套件名字。需要注意的是,一些演算法套件中沒有使用驗證演算法,例如DES-CBC3-SHA

SSL v3.0演算法套件:

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 v1.0演算法套件:

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


AES演算法套件,根據RFC3268TLS v1.0的擴充套件:

TLS_RSA_WITH_AES_128_CBC_SHA            AES128-SHA

 TLS_RSA_WITH_AES_256_CBC_SHA            AES256-SHA

 

 TLS_DH_DSS_WITH_AES_128_CBC_SHA         Not implemented.

 TLS_DH_DSS_WITH_AES_256_CBC_SHA         Not implemented.

 TLS_DH_RSA_WITH_AES_128_CBC_SHA         Not implemented.

 TLS_DH_RSA_WITH_AES_256_CBC_SHA         Not implemented.

 

 TLS_DHE_DSS_WITH_AES_128_CBC_SHA        DHE-DSS-AES128-SHA

 TLS_DHE_DSS_WITH_AES_256_CBC_SHA        DHE-DSS-AES256-SHA

 TLS_DHE_RSA_WITH_AES_128_CBC_SHA        DHE-RSA-AES128-SHA

 TLS_DHE_RSA_WITH_AES_256_CBC_SHA        DHE-RSA-AES256-SHA

 

 TLS_DH_anon_WITH_AES_128_CBC_SHA        ADH-AES128-SHA

 TLS_DH_anon_WITH_AES_256_CBC_SHA        ADH-AES256-SHA


Camellia演算法套件,根據RFC4132TLS v1.0的擴充套件:

TLS_RSA_WITH_CAMELLIA_128_CBC_SHA      CAMELLIA128-SHA

TLS_RSA_WITH_CAMELLIA_256_CBC_SHA      CAMELLIA256-SHA

 

TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA   Not implemented.

TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA   Not implemented.

TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA   Not implemented.

TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA   Not implemented.

 

TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA  DHE-DSS-CAMELLIA128-SHA

TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA  DHE-DSS-CAMELLIA256-SHA

TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA  DHE-RSA-CAMELLIA128-SHA

TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA  DHE-RSA-CAMELLIA256-SHA

 

TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA  ADH-CAMELLIA128-SHA

TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA  ADH-CAMELLIA256-SHA


SEED演算法套件,根據RFC4132TLS v1.0的擴充套件:

TLS_RSA_WITH_SEED_CBC_SHA              SEED-SHA

 
TLS_DH_DSS_WITH_SEED_CBC_SHA           Not implemented.

TLS_DH_RSA_WITH_SEED_CBC_SHA           Not implemented.

 
TLS_DHE_DSS_WITH_SEED_CBC_SHA          DHE-DSS-SEED-SHA

TLS_DHE_RSA_WITH_SEED_CBC_SHA          DHE-RSA-SEED-SHA

 
TLS_DH_anon_WITH_SEED_CBC_SHA          ADH-SEED-SHA


GOST演算法套件,從draft-chudov-cryptopro-cptlsTLS v1.0的擴充套件,需要注意的是演算法包含一個支援GOST加密演算法硬體引擎,例如B<ccgost>引擎,包含在OpenSSL分佈中。

TLS_GOSTR341094_WITH_28147_CNT_IMIT GOST94-GOST89-GOST89

TLS_GOSTR341001_WITH_28147_CNT_IMIT GOST2001-GOST89-GOST89

TLS_GOSTR341094_WITH_NULL_GOSTR3411 GOST94-NULL-GOST94

TLS_GOSTR341001_WITH_NULL_GOSTR3411 GOST2001-NULL-GOST94


附加的Export1024和其他的演算法套件(這些也可以包含在SSLv3中):

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


SSL v2.0演算法套件:

SSL_CK_RC4_128_WITH_MD5                 RC4-MD5

SSL_CK_RC4_128_EXPORT40_WITH_MD5        EXP-RC4-MD5

SSL_CK_RC2_128_CBC_WITH_MD5             RC2-MD5

SSL_CK_RC2_128_CBC_EXPORT40_WITH_MD5    EXP-RC2-MD5

SSL_CK_IDEA_128_CBC_WITH_MD5            IDEA-CBC-MD5

SSL_CK_DES_64_CBC_WITH_MD5              DES-CBC-MD5

SSL_CK_DES_192_EDE3_CBC_WITH_MD5        DES-CBC3-MD5

注意:

不短暫的DH模式目前是不實施的,是因為他們不支援DH格式的證書。

一些OpenSSL編譯版本不包含所有的演算法列表是因為一些演算法在編譯的時候被排除了。

示例:

列舉OpenSSL演算法套件包括NULL演算法:

openssl ciphers -v 'ALL:eNULL'

包括所有的演算法除空的以及匿名的DH演算法:

openssl ciphers -v 'ALL:!ADH:@STRENGTH'

包含3DES演算法和RSA演算法:

openssl ciphers -v '3DES:+RSA' 

包含所有的RC4演算法但是不包含驗證演算法:

openssl ciphers -v 'RC4:!COMPLEMENTOFDEFAUL

相關推薦

OpenSSL命令---ciphers

用途: 指令是用來展示用於SSL加密演算法的工具。它能夠把所有openssl支援的加密演算法按照一定規律排列(一般是加密強度)。這樣可以用來做測試工具,決定使用什麼加密演算法。 用法: openssl ciphers [-v] [-ssl2] [-ssl3] [-tls1]

使用openssl命令制作ecc證書

key onf ecc 用戶 caf conf -o 生成 str # openssl ecparam -out EccCA.key -name prime256v1 -genkey # openssl req -config openssl.cnf -key EccCA.

OpenSSL命令行工具

應用 openssl 數據的加密解密對於Linux系統來說,是至關重要的一個概念,必須懂的對數據進行保護,上次我們詳細說了關於數據加密的種種方式,如公鑰加密,單向加密,密鑰交換等,以及認證機構CA的存在;而OpenSSL命令就是一個可以幫助我們實現公鑰加密,創建私鑰,並根據私鑰創建出公鑰;還可以進

openssl命令雜記

openssl 生成密鑰 雜記 基礎openssl命令行 openssl基礎 顯示openssl版本號 [root@aa ~]# openssl version OpenSSL 1.0.1e-fips 11 Feb 2013 [root@aa ~]# enc [root@aa ~]# whatis enc

openssl命令生成密碼的方法

使用Linux命令生成隨機密碼是一種基本的Linux操作功能,並有多種實現形式,具體使用方式如下: 1. 使用openssl生成隨機密碼 具體用法如下: openssl rand -base64 20 幾乎所有Linux發行版都包含openssl。我們可以利用它的隨機功能來生成可以用

OpenSSL命令詳解

這一針在農信銀2代專案中有幸能碰到加密方面的東西,所以就好好學習了一下。不足之處還請前輩們見諒。 OpenSSL功能遠勝於KeyTool,可用於根證書,伺服器證書和客戶證書的管理 這裡使用的是Win32OpenSSL_Light-1_0_1e.exe http://www.

OpenSSL 命令詳解(二)——摘要演算法、簽名、驗籤

鋒影 email:[email protected] 如果你認為本系列文章對你有所幫助,請大家有錢的捧個錢場,點選此處贊助,贊助額0.1元起步,多少隨意 用什麼摘要演算法指令代替時,預設使用該演算法,但也可以指定其他演算法。 使用指令 

OpenSSL命令---s_client

用途: s_client為一個SSL/TLS客戶端程式,與s_server對應,它不僅能與s_server進行通訊,也能與任何使用ssl協議的其他服務程式進行通訊。 用法: openssl s_client [-host host] [-port port] [-conne

Windows下用openssl命令製作生成證書和自簽名

這些天領導讓我把web service 由原來的HTTP協議改用加密並且加上客戶認證,系統原本用的gsoap,沒辦法只好調查了,現在總結了一些有關openssl生產證書的步驟: 1、 新建工作目錄,將openssl安裝路徑下的apps/CA.pl 和 apps/openss

常用Openssl命令

申請證書 SSL常用於身份驗證、資料加密等應用中,要使用SSL,我們密碼有自己的證書。數字證書一般要向專業的認證公司(如VeriSign)申請,並且都是收費的,某些情況下,我們只是想使用加密的資料通訊,而不在乎認證,這時就可以自己製作一個證書,自己製作一個證書

openssl命令生成證書

也許很多人和本人一樣深有體會,使用OpenSSL庫寫一個加密通訊過程,程式碼很容易就寫出來了,可是整個工作卻花了了好幾天。除將程式編譯成功外(沒有可以使用的證書檔案,編譯成功了,它並不能跑起來,並不表示它能正常使用,所以......),還需生成必要的證書和私鑰檔案使雙方能夠成

OpenSSL命令詳解(一)——標準命令

OpenSSL命令分為以下3個部分。 標準命令Standard commands 1. asn1parse: asn1parse用於解釋用ANS.1語法書寫的語句(ASN一般用於定義語法的構成) 演示命令操作順序:4 -> 5

OpenSSL命令---CMS

用途: 該命令處理S/MIME v3.1郵件。可以用它對S/MIME訊息進行加密、解密、簽名、驗證簽名、壓縮以及解壓縮等操作。 用法: openssl cms [-encrypt] [-decrypt] [-sign] [-verify] [-cmsout] [-resig

linux之用openssl命令Base64編碼解碼、md5/sha1摘要、AES/DES3加密解密

1、我們先看openssl help命令會輸出什麼? 2、我們用openssl命令實現字串和文字的Base64編碼和解碼 openssl base64 openssl base64 -

使用openssl命令剖析RSA私鑰檔案格式

Openssl提供了強大證書功能,生成金鑰對、證書,頒發證書、生成crl、驗證證書、銷燬證書等。本文將j介紹如何利用openssl的命令分析RSA私鑰檔案格式,同時也將簡單介紹幾種常見的私鑰檔案格式。 1 生成私鑰檔案 openssl有多種方法生成私鑰: genrs

openSSL命令、PKI、CA、SSL證書原理

相關學習資料 http://baike.baidu.com/view/7615.htm?fr=aladdin http://www.ibm.com/developerworks/cn/security/se-pkiusing/index.html?ca=dr

openssl命令列進行RSA加密解密

openssl是一個功能強大的工具包,它集成了眾多密碼演算法及實用工具。我們即可以利用它提供的命令臺工具生成金鑰、證書來加密解密檔案,也可以在利用其提供的API介面在程式碼中對傳輸資訊進行加密。 RSA是一個非對稱加密演算法。簡單說來,非對稱加密演算法就是說加密解密一個

OpenSSL命令列工具驗證RSA加解密

openssl簡介-指令rsa     用法           openssl rsa [-inform PEM|NET|DER] [-outform PEM|NET|DER] [-in filename]           [-passin arg] [-out filename] [-passout

使用openssl命令進行加密解密及雜湊運算的命令

/*********************************************************************  * Author  : Samson  * Date    : 01/05/2014  * Test platform:  *               3.6.1

OpenSSL命令---asn1parse

用途:asn1parse命令是一種用來診斷ASN.1結構的工具,也能用於從ASN1.1資料中提取資料。 用法: openssl asn1parse [-inform PEM|DER] [-in filename] [-out filename] [-noout] [-