Linux
TLSv1.2 是否支持 3DES
我想知道我是否將我的 openssl 伺服器配置為顯式使用 TLSv1.2,我是否還必須提及不使用 3DES(通過在字元串中添加“!3DES”),或者顯式使用 TLSv1.2 刪除支持 3DES。
從這個連結我可以看到 TLS1.2 在其可用密碼列表中沒有 3DES。所以我猜它不支持?
我正在使用的字元串是
"HIGH+TLSv1.2:!MD5:!SHA1"
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 的非常舊版本一起提供的。