我希望这个问题的主题是:
了解了eNULL
的“加密”和相关警告,我想列出比包括eNULL
在内的所有密码:
~> 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
):
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.noarch
和openssl-1_1-1.1.1d-11.43.1.x86_64
of openSUSE Leap 15.3。
发布于 2022-04-01 10:44:34
这是因为OpenSSL处理TLSv1.3密码不同于TLSv1.2及更低版本。
基本上,密码命令的输出将始终包括TLSv1.3密码器,而不管您提供的字符串是什么。因此,如果您指定了一个字符串,比如eNULL
(就像您已经指定的那样),或者任何其他字符串,那么它将包括TLSv1.3密码以及实际相关的密码。例如:
$ 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,但它肯定是意外的(也可能是不受欢迎的)行为。我不清楚他们为什么决定这样做(在他们的维基中提到过,但没有太多细节),但我确信这是有原因的。
https://security.stackexchange.com/questions/260853
复制相似问题