Skip to content

JEP 332: Transport Layer Security (TLS) 1.3 | 传输层安全性(TLS)1.3

摘要

实现传输层安全性(TLS)协议版本 1.3,遵循 RFC 8446

非目标

本提案的目标不包括支持数据报传输层安全性(DTLS)协议版本 1.3。同时,也不是为了支持 TLS 1.3 的每一项特性;更多关于将实现哪些特性的详细信息,请参见描述部分。

动机

TLS 1.3 是 TLS 协议的一次重大更新,与前一个版本相比,它提供了显著的安全性和性能改进。目前,其他供应商已经提供了几种早期实现。我们需要支持 TLS 1.3 以保持竞争力并跟上最新的标准。

描述

TLS 1.3 是一个新的 TLS 版本,它取代了并废弃了包括版本 1.2(RFC 5246)在内的以前的 TLS 版本。它还废弃或更改了其他 TLS 特性,如 OCSP stapling 扩展(RFC 6066RFC 6961),以及会话哈希和扩展主密钥扩展(RFC 7627)。

JDK 中的 Java 安全套接字扩展(JSSE)提供了 SSL、TLS 和 DTLS 协议的框架和 Java 实现。目前,JSSE API 和 JDK 实现支持 SSL 3.0、TLS 1.0、TLS 1.1、TLS 1.2、DTLS 1.0 和 DTLS 1.2。通过本提案,将增加对 TLS 1.3 的支持。

这个 JEP 的主要目标是实现一个可互操作且兼容的 TLS 1.3 最小版本。最小实现应该支持以下功能:

  • 协议版本协商
  • TLS 1.3 完整握手
  • TLS 1.3 会话恢复
  • TLS 1.3 密钥和初始化向量(iv)更新
  • TLS 1.3 更新的 OCSP stapling
  • TLS 1.3 向后兼容模式
  • TLS 1.3 所需的扩展和算法
  • RSASSA-PSS 签名算法(8146293

对于最小实现,不需要新的公共 API。但是,需要以下新的 标准算法名称

  • TLS 协议版本名称:TLSv1.3
  • javax.net.ssl.SSLContext 算法名称:TLSv1.3
  • TLS 1.3 的 TLS 密码套件名称:TLS_AES_128_GCM_SHA256TLS_AES_256_GCM_SHA384

此外,KRB5 密码套件将从 JDK 中移除,因为它们不再被认为是安全的。

与此 JEP 并行,我们将为以下可选的 TLS 1.3 功能开发加密算法支持:

  • ChaCha20/Poly1305 密码套件(8140466
  • X25519/X448 椭圆曲线算法(8171279
  • edDSA 签名算法(8166596

如果时间允许,这些功能可能会包含在此 JEP 中;否则,它们将被作为单独的功能进行开发和集成。

以下重要功能将不会作为此 JEP 的一部分来实现:

  • 0-RTT(零次往返时间)数据
  • 握手后认证
  • 签名证书时间戳(SCT):RFC 6962

TLS 1.3 与之前的版本并不直接兼容。尽管 TLS 1.3 可以通过向后兼容模式来实现,但在使用此模式时仍存在一些兼容性风险:

  • TLS 1.3 使用半关闭策略,而 TLS 1.2 及更早版本使用双工关闭策略。对于依赖双工关闭策略的应用程序,在升级到 TLS 1.3 时可能会遇到兼容性问题。

  • signature_algorithms_cert 扩展要求使用预定义的签名算法进行证书认证。然而,在实践中,应用程序可能会使用不受支持的签名算法。

  • TLS 1.3 不支持 DSA 签名算法。如果服务器配置为仅使用 DSA 证书,则无法升级到 TLS 1.3。

  • TLS 1.3 支持的密码套件与 TLS 1.2 及更早版本不同。如果应用程序硬编码了不再支持的密码套件,那么它可能需要在不修改应用程序代码的情况下无法使用 TLS 1.3。

为了降低兼容性风险,这个 TLS 1.3 实现将实现并默认启用向后兼容模式。应用程序可以根据需要关闭向后兼容模式,并开启或关闭 TLS 1.3。

测试

将开发或增强测试,以验证以下一般要求:

  • 验证(D)TLS 1.2 及之前版本没有兼容性问题。
  • 验证实现不会以意想不到的方式破坏向后兼容性。
  • 验证实现不会引入任何意外的互操作性问题。
  • 验证没有显著的性能影响。
  • 验证在客户端和服务器模式下,实现都能与其他 TLS 1.3 实现进行互操作。

风险和假设

为了进行互操作性测试,需要一个支持 RFC 的第三方 TLS 1.3 实现。

依赖项

TLS 1.3 需要支持 RSASSA-PSS 签名算法(8146293)。

Page Layout Max Width

Adjust the exact value of the page width of VitePress layout to adapt to different reading needs and screens.

Adjust the maximum width of the page layout
A ranged slider for user to choose and customize their desired width of the maximum width of the page layout can go.

Content Layout Max Width

Adjust the exact value of the document content width of VitePress layout to adapt to different reading needs and screens.

Adjust the maximum width of the content layout
A ranged slider for user to choose and customize their desired width of the maximum width of the content layout can go.