TLSv1.2 是否支持 3DES

TLSv1.2 是否支持 3DES

我想知道如果我将我的 openssl 服务器配置为明确使用 TLSv1.2,是否还必须提及不要使用 3DES(通过在字符串中添加“!3DES”),或者明确使用 TLSv1.2 会删除对 3DES 的支持。

链接我可以看到 TLS1.2 的可用密码列表中没有 3DES。所以我猜它不支持?

我使用的字符串是"HIGH+TLSv1.2:!MD5:!SHA1"

答案1

TLS 1.2 可与为 SSL 3.0 及更高版本定义的任何密码一起使用。这包括 3DES (DES-CBC3) 密码。你指的是不是一个列出哪些密码可与哪个 SSL/TLS 版本一起使用的列表,而是一个列出在哪个 SSL/TLS 版本中引入了密码的列表。

证明:

terminal_1 $ openssl s_server -cipher '3DES' -cert cert.pem -key key.pem
...
terminal_2 $ openssl s_client -connect 127.0.0.1:4433
...
Protocol  : TLSv1.2
Cipher    : ECDHE-RSA-DES-CBC3-SHA
...

更多证据:TLS 1.2 标准 (RFC 5246)附录 A.5 列出了许多可用于 TLS 1.2 的密码,其中包括几个 3DES 密码。

我使用的字符串是“HIGH+TLSv1.2:!MD5:!SHA1”

使用此密码字符串,您仅允许使用 TLS 1.2 引入的密码。由于 TLS 1.2 未添加任何新的 3DES 密码,因此此字符串不会使用 3DES 密码。但是,由于这些旧客户端不支持您提供的任何密码,因此任何 TLS 1.0 或 TLS 1.1 客户端都将无法连接到服务器。虽然现代浏览器都支持 TLS 1.2,但有些应用程序仍然不支持。对于较旧的 Java 应用程序或 Mac OS X 上基于 OpenSSL 的应用程序尤其如此,因为它们附带的 OpenSSL 版本非常旧。

答案2

你是对的,TLSv1.2 不支持 DES:

$ openssl ciphers -tls1 -v | grep TLSv1.2
ECDHE-RSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH     Au=RSA  Enc=AESGCM(256) Mac=AEAD
ECDHE-ECDSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH     Au=ECDSA Enc=AESGCM(256) Mac=AEAD
ECDHE-RSA-AES256-SHA384 TLSv1.2 Kx=ECDH     Au=RSA  Enc=AES(256)  Mac=SHA384
ECDHE-ECDSA-AES256-SHA384 TLSv1.2 Kx=ECDH     Au=ECDSA Enc=AES(256)  Mac=SHA384
DHE-DSS-AES256-GCM-SHA384 TLSv1.2 Kx=DH       Au=DSS  Enc=AESGCM(256) Mac=AEAD
DHE-RSA-AES256-GCM-SHA384 TLSv1.2 Kx=DH       Au=RSA  Enc=AESGCM(256) Mac=AEAD
DHE-RSA-AES256-SHA256   TLSv1.2 Kx=DH       Au=RSA  Enc=AES(256)  Mac=SHA256
DHE-DSS-AES256-SHA256   TLSv1.2 Kx=DH       Au=DSS  Enc=AES(256)  Mac=SHA256
ECDH-RSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH/RSA Au=ECDH Enc=AESGCM(256) Mac=AEAD
ECDH-ECDSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH/ECDSA Au=ECDH Enc=AESGCM(256) Mac=AEAD
ECDH-RSA-AES256-SHA384  TLSv1.2 Kx=ECDH/RSA Au=ECDH Enc=AES(256)  Mac=SHA384
ECDH-ECDSA-AES256-SHA384 TLSv1.2 Kx=ECDH/ECDSA Au=ECDH Enc=AES(256)  Mac=SHA384
AES256-GCM-SHA384       TLSv1.2 Kx=RSA      Au=RSA  Enc=AESGCM(256) Mac=AEAD
AES256-SHA256           TLSv1.2 Kx=RSA      Au=RSA  Enc=AES(256)  Mac=SHA256
ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 Kx=ECDH     Au=RSA  Enc=AESGCM(128) Mac=AEAD
ECDHE-ECDSA-AES128-GCM-SHA256 TLSv1.2 Kx=ECDH     Au=ECDSA Enc=AESGCM(128) Mac=AEAD
ECDHE-RSA-AES128-SHA256 TLSv1.2 Kx=ECDH     Au=RSA  Enc=AES(128)  Mac=SHA256
ECDHE-ECDSA-AES128-SHA256 TLSv1.2 Kx=ECDH     Au=ECDSA Enc=AES(128)  Mac=SHA256
DHE-DSS-AES128-GCM-SHA256 TLSv1.2 Kx=DH       Au=DSS  Enc=AESGCM(128) Mac=AEAD
DHE-RSA-AES128-GCM-SHA256 TLSv1.2 Kx=DH       Au=RSA  Enc=AESGCM(128) Mac=AEAD
DHE-RSA-AES128-SHA256   TLSv1.2 Kx=DH       Au=RSA  Enc=AES(128)  Mac=SHA256
DHE-DSS-AES128-SHA256   TLSv1.2 Kx=DH       Au=DSS  Enc=AES(128)  Mac=SHA256
ECDH-RSA-AES128-GCM-SHA256 TLSv1.2 Kx=ECDH/RSA Au=ECDH Enc=AESGCM(128) Mac=AEAD
ECDH-ECDSA-AES128-GCM-SHA256 TLSv1.2 Kx=ECDH/ECDSA Au=ECDH Enc=AESGCM(128) Mac=AEAD
ECDH-RSA-AES128-SHA256  TLSv1.2 Kx=ECDH/RSA Au=ECDH Enc=AES(128)  Mac=SHA256
ECDH-ECDSA-AES128-SHA256 TLSv1.2 Kx=ECDH/ECDSA Au=ECDH Enc=AES(128)  Mac=SHA256
AES128-GCM-SHA256       TLSv1.2 Kx=RSA      Au=RSA  Enc=AESGCM(128) Mac=AEAD
AES128-SHA256           TLSv1.2 Kx=RSA      Au=RSA  Enc=AES(128)  Mac=SHA256

您不必明确拒绝 DES,因为在禁用旧套件的情况下它将不可用。

相关内容