用途:

指令是用来展示用于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>代表所有的算法套件中的摘要算法为SHA1;B<SSLv3>代表所有的SSL v3相关的算法。

一个算法组件可以用B<+>字符把简单的算法字符连接起来。这是一个符合逻辑的B<and>操作。例如,B<SHA1+DES>代表所有的算法套件包含SHA1和DES算法。

可以在每个算法字符串之前使用字符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分别用RSA和DSS密钥签名的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<CAMELLIA>:算法套件使用CAMELLIA算法。

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<aGOST01>:算法套件使用GOST R 34.10-2001来执行验证操作。

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-94的HMAC算法。

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算法套件,根据RFC3268,TLS 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算法套件,根据RFC4132,TLS 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算法套件,根据RFC4132,TLS 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-cptls,TLS 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的更多相关文章

  1. OpenSSL命令系列

    1.1 ssl命令系列前言 openssl命令的格式是"openssl command command-options args",command部分有很多种命令,这些命令需要依赖 ...

  2. (2) OpenSSL命令

    openssl命令的格式是"openssl command command-options args",command部分有很多种命令,这些命令需要依赖于openssl命令才能执行 ...

  3. openssl命令用法

    openssl命令 配置文件:/etc/pki/tls/openssl.cnf 命令格式: openssl command [ command_opts ] [ command_args ] 众多子命 ...

  4. openssl命令行工具简介 - 指令x509

    原文链接: http://blog.csdn.net/allwtg/article/details/4982507 openssl命令行工具简介 - 指令x509 用法:           open ...

  5. 使用openssl命令剖析RSA私钥文件格式

    原文 https://blog.csdn.net/zhymax/article/details/7683925 Openssl提供了强大证书功能,生成密钥对.证书,颁发证书.生成crl.验证证书.销毁 ...

  6. openssl命令实例

    基本知识 1,证书标准 X.509 X.509 - 这是一种证书标准,主要定义了证书中应该包含哪些内容.其详情可以参考RFC5280,SSL使用的就是这种证书标准. X.509的证书文件,一般以.cr ...

  7. 用OpenSSL命令行生成证书文件

    用OpenSSL命令行生成证书文件 1.首先要生成服务器端的私钥(key文件): openssl genrsa -des3 -out server.key 1024 运行时会提示输入密码,此密码用于加 ...

  8. (转)openssl 命令: openssl req 命令详解

                                      openssl req命令主要的功能有,生成证书请求文件, 查看验证证书请求文件,还有就是生成自签名证书.本文就主要记录一下open ...

  9. OpenSSL命令---pkcs8

    用途: pkcs8格式的私钥转换工具.它处理在PKCS#8格式中的私钥文件.它可以用多样的PKCS#5 (v1.5 and v2.0)和 PKCS#12算法来处理没有解密的PKCS#8 Private ...

随机推荐

  1. volley(5) 参数total_remain:totalqty, data:[{ bar_status:XX , bar_code: "XX",bar_remain:XX, bar_whcode:"XX" , bar_prodcode:"XX",bar_id:XX,bar_location: "XX", pr_detail: "XX" , bar_batchcode:method:POST

    1. 来源  : WHCombineBatchFragment.java 2. 部分代码 WHCombineBatchFragmentCombineBtnClickEvent whc2;private ...

  2. 关于UNION ALL与 UNION 用法和区别

    (转自:http://www.cnblogs.com/EricaMIN1987_IT/archive/2011/01/20/1940188.html) UNION指令的目的是将两个SQL语句的结果合并 ...

  3. 信息熵 Information Theory

    信息论(Information Theory)是概率论与数理统计的一个分枝.用于信息处理.信息熵.通信系统.数据传输.率失真理论.密码学.信噪比.数据压缩和相关课题.本文主要罗列一些基于熵的概念及其意 ...

  4. 中文分词系列(二) 基于双数组Tire树的AC自动机

    秉着能偷懒就偷懒的精神,关于AC自动机本来不想看的,但是HanLp的源码中用户自定义词典的识别是用的AC自动机实现的.唉-没办法,还是看看吧 AC自动机理论 Aho Corasick自动机,简称AC自 ...

  5. 【英语】Bingo口语笔记(41) - 有关爱情的表达

  6. Linux/Unix shell 自动发送AWR report(二)

    观察Oracle数据库性能,Oracle自带的awr 功能为我们提供了一个近乎完美的解决方案,通过awr特性我们可以随时从数据库提取awr报告.不过awrrpt.sql脚本执行时需要我们提供一些交互信 ...

  7. Android 所有版本区别总结(转)

    Android 1.0 第一版商用操作系统 Android 1.1 更新了部分API,新增一些功能,修正了一些错误,同时增加com.google.android.maps包 Android 1.5 智 ...

  8. 从SVN导出指定版本号之间修改的文件(转)

    从SVN导出指定版本号之间修改的文件(转)   当一个网站项目进入运营维护阶段以后,不会再频繁地更新全部源文件到服务器,这个时间的修改大多是局部的,因此更新文件只需更新修改过的文件,其他没有修改过的文 ...

  9. ASP.NET 如何做出简单的验证码

    如果说要做验证码,那不得不提的就是GDI+绘图了.我们都知道验证码是以图片形式展示的,而且是动态生成的,这样就需要我们去画出它. 科普一下,什么是GDI+? GDI+是图形设备接口(GDI)的高级版本 ...

  10. leetcode:Longest Palindromic Substring(求最大的回文字符串)

    Question:Given a string S, find the longest palindromic substring in S. You may assume that the maxi ...