首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么‘`openssl密码器-v eNULL`’列表`TLS_CHACHA20_POLY1305_SHA256` (和类似的)?

为什么‘`openssl密码器-v eNULL`’列表`TLS_CHACHA20_POLY1305_SHA256` (和类似的)?
EN

Security用户
提问于 2022-04-01 09:34:48
回答 1查看 180关注 0票数 0

我希望这个问题的主题是:

了解了eNULL的“加密”和相关警告,我想列出比包括eNULL在内的所有密码:

代码语言:javascript
运行
复制
~> openssl ciphers -v eNULL
TLS_AES_256_GCM_SHA384  TLSv1.3 Kx=any      Au=any  Enc=AESGCM(256) Mac=AEAD
TLS_CHACHA20_POLY1305_SHA256 TLSv1.3 Kx=any      Au=any  Enc=CHACHA20/POLY1305(256) Mac=AEAD
TLS_AES_128_GCM_SHA256  TLSv1.3 Kx=any      Au=any  Enc=AESGCM(128) Mac=AEAD
ECDHE-ECDSA-NULL-SHA    TLSv1 Kx=ECDH     Au=ECDSA Enc=None      Mac=SHA1
ECDHE-RSA-NULL-SHA      TLSv1 Kx=ECDH     Au=RSA  Enc=None      Mac=SHA1
AECDH-NULL-SHA          TLSv1 Kx=ECDH     Au=None Enc=None      Mac=SHA1
NULL-SHA256             TLSv1.2 Kx=RSA      Au=RSA  Enc=None      Mac=SHA256
ECDHE-PSK-NULL-SHA384   TLSv1 Kx=ECDHEPSK Au=PSK  Enc=None      Mac=SHA384
ECDHE-PSK-NULL-SHA256   TLSv1 Kx=ECDHEPSK Au=PSK  Enc=None      Mac=SHA256
ECDHE-PSK-NULL-SHA      TLSv1 Kx=ECDHEPSK Au=PSK  Enc=None      Mac=SHA1
RSA-PSK-NULL-SHA384     TLSv1 Kx=RSAPSK   Au=RSA  Enc=None      Mac=SHA384
RSA-PSK-NULL-SHA256     TLSv1 Kx=RSAPSK   Au=RSA  Enc=None      Mac=SHA256
DHE-PSK-NULL-SHA384     TLSv1 Kx=DHEPSK   Au=PSK  Enc=None      Mac=SHA384
DHE-PSK-NULL-SHA256     TLSv1 Kx=DHEPSK   Au=PSK  Enc=None      Mac=SHA256
RSA-PSK-NULL-SHA        SSLv3 Kx=RSAPSK   Au=RSA  Enc=None      Mac=SHA1
DHE-PSK-NULL-SHA        SSLv3 Kx=DHEPSK   Au=PSK  Enc=None      Mac=SHA1
NULL-SHA                SSLv3 Kx=RSA      Au=RSA  Enc=None      Mac=SHA1
NULL-MD5                SSLv3 Kx=RSA      Au=RSA  Enc=None      Mac=MD5 
PSK-NULL-SHA384         TLSv1 Kx=PSK      Au=PSK  Enc=None      Mac=SHA384
PSK-NULL-SHA256         TLSv1 Kx=PSK      Au=PSK  Enc=None      Mac=SHA256
PSK-NULL-SHA            SSLv3 Kx=PSK      Au=PSK  Enc=None      Mac=SHA1

显然,这些行(包括Enc=None )是预期的,但不是这些行(它们的名字中也没有NULL ):

代码语言:javascript
运行
复制
TLS_AES_256_GCM_SHA384  TLSv1.3 Kx=any      Au=any  Enc=AESGCM(256) Mac=AEAD
TLS_CHACHA20_POLY1305_SHA256 TLSv1.3 Kx=any      Au=any  Enc=CHACHA20/POLY1305(256) Mac=AEAD
TLS_AES_128_GCM_SHA256  TLSv1.3 Kx=any      Au=any  Enc=AESGCM(128) Mac=AEAD

谁能解释,或者它是openssl中的一个bug?

我使用的是openssl-1.1.1d-1.46.noarchopenssl-1_1-1.1.1d-11.43.1.x86_64 of openSUSE Leap 15.3。

EN

回答 1

Security用户

回答已采纳

发布于 2022-04-01 10:44:34

这是因为OpenSSL处理TLSv1.3密码不同于TLSv1.2及更低版本。

基本上,密码命令的输出将始终包括TLSv1.3密码器,而不管您提供的字符串是什么。因此,如果您指定了一个字符串,比如eNULL (就像您已经指定的那样),或者任何其他字符串,那么它将包括TLSv1.3密码以及实际相关的密码。例如:

代码语言:javascript
运行
复制
$ openssl ciphers -v SEED
TLS_AES_256_GCM_SHA384  TLSv1.3 Kx=any      Au=any  Enc=AESGCM(256) Mac=AEAD
TLS_CHACHA20_POLY1305_SHA256 TLSv1.3 Kx=any      Au=any  Enc=CHACHA20/POLY1305(256) Mac=AEAD
TLS_AES_128_GCM_SHA256  TLSv1.3 Kx=any      Au=any  Enc=AESGCM(128) Mac=AEAD
DHE-RSA-SEED-SHA        SSLv3 Kx=DH       Au=RSA  Enc=SEED(128) Mac=SHA1
DHE-DSS-SEED-SHA        SSLv3 Kx=DH       Au=DSS  Enc=SEED(128) Mac=SHA1
ADH-SEED-SHA            SSLv3 Kx=DH       Au=None Enc=SEED(128) Mac=SHA1
SEED-SHA                SSLv3 Kx=RSA      Au=RSA  Enc=SEED(128) Mac=SHA1

如果要指定TLSv1.3密码,则必须使用-ciphersuites选项:

-ciphersuites val设置TLSv1.3密件列表。此列表将与已配置的任何TLSv1.2及以下密件组合。此列表的格式是一个简单的冒号(":")分隔的TLSv1.3密件名称列表。默认情况下,此值为:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256

这实际上是在手册页上记录的:

将TLSv1.2及以下的密码列表转换为密码首选列表的密码列表。此列表将与任何已配置的TLSv1.3密件组合。如果不包括它,那么将使用默认的密码列表。格式说明如下。

因此,虽然我认为这在技术上不是一个bug,但它肯定是意外的(也可能是不受欢迎的)行为。我不清楚他们为什么决定这样做(在他们的维基中提到过,但没有太多细节),但我确信这是有原因的。

票数 1
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/260853

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档