用途:

指令是用来展示用于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. swift2.0 Cannot assign a value of type '[CFString]' to a value of type '[String]'

    Cannot assign a value of type '[CFString]' to a value of type '[String]' 代码示例如下: picker.mediaTypes = ...

  2. POJ 2125 Destroying The Graph (二分图最小点权覆盖集+输出最小割方案)

    题意 有一个图, 两种操作,一种是删除某点的所有出边,一种是删除某点的所有入边,各个点的不同操作分别有一个花费,现在我们想把这个图的边都删除掉,需要的最小花费是多少. 思路 很明显的二分图最小点权覆盖 ...

  3. python 包管理

    如果导入的模块和主程序在同个目录下,直接import就行了 2.如果导入的模块是在主程序所在目录的子目录下,可以在子目录中增加一个空白的__init__.py文件,该文件使得python解释器将子目录 ...

  4. where group by联合使用

    where group by联合使用   select 列a,聚合函数 from 表名 where 过滤条件 group by 列a having 过滤条件 group by 字句也和where条件语 ...

  5. RegEx正则表达式学习笔记

    一.实用的例子 public static void main(String[] args) { // 简单练习 System.out.println("-123".matches ...

  6. Python 获得命令行参数的方法

    如果想对python脚本传参数,python中对应的argc, argv(c语言的命令行参数)是什么呢?需要模块:sys参数个数:len(sys.argv)脚本名:    sys.argv[0]参数1 ...

  7. IOS公司开发者账号申请详细教程

    谈到苹果开发者账号,我们需要区分一下个人账号.公司账号和企业账号这三种,还有一种是教育账号,这个就不多说了. 个人账号:个人申请用于开发苹果app所使用的账号,仅限于个人使用,申请比较容易,$99. ...

  8. crontab的安装及crontab命令介绍

    前一天学习了 at 命令是针对仅运行一次的任务,循环运行的例行性计划任务,linux系统则是由 cron (crond) 这个系统服务来控制的.Linux 系统上面原本就有非常多的计划性工作,因此这个 ...

  9. Loadrunner 性能指标定位系统瓶颈

    判断CPU瓶颈 1, %processor time 平均值大于95 2, processor queue length大于2 (大于处理器个数+1).可以确定CPU瓶颈 3, CPU空闲时间为零(z ...

  10. android启动页优化实践

    最近观看友盟统计发现App启动页跳出率很高,观看启动页的平均启动时间为2.8s,如下图: 所以一个很现实的问题就出来了,优化启动页面... (一)做了什么? 我们的启动页面主要用于展示启动页面,加载网 ...