第 3 章 Red Hat build of OpenJDK 功能
3.1. 新功能及功能增强 复制链接链接已复制到粘贴板!
本节论述了本发行版本中引入的新功能。它还包含有关现有功能更改的信息。
3.1.1. 添加了自定义 PKCS12 密钥存储生成 复制链接链接已复制到粘贴板!
添加了新的系统和安全属性,以便用户能够自定义 PKCS TOTP 密钥存储的生成。这包括用于密钥保护、证书保护和 MacData 的算法和参数。在 java.security 文件的 "PKCS12 KeyStore properties" 部分查找这些属性的详细解释和可能的值。
另外,为 SunJCE 供应商添加了对基于 SHA-2 的 HmacPBE 算法的支持:
- HmacPBESHA224
- HmacPBESHA256
- HmacPBESHA384
- HmacPBESHA512
- HmacPBESHA512/224
- HmacPBESHA512/256
如需更多信息,请参阅 JDK-8215293。
3.1.2. 删除了带有 1024 位密钥的 root 证书 复制链接链接已复制到粘贴板!
以下带有弱 1024 位 RSA 公钥的 root 证书已从 cacerts 密钥存储中删除:
别名名称:thawtepremiumserverca [jdk]
可分辨名称:EMAILADDRESS=premium-server@thawte.com, CN=Thawte Premium Server CA, OU=Certification Services Division, O=Thawte Consulting cc, L=Cape Town, ST=Western Cape, C=ZA
别名名称:verisignclass2g2ca [jdk]
可分辨名称:OU=VeriSign Trust Network, OU=" (c) 1998 VeriSign, Inc. - 用于授权使用", OU=Class 2 Public Primary Certification Authority - G2, O="VeriSign, Inc.", C=US
别名名称:verisignclass3ca [jdk]
可分辨名称:OU=Class 3 公共主要认证机构, O="VeriSign, Inc.", C=US
别名名称:verisignclass3g2ca [jdk]
可分辨名称:OU=VeriSign Trust Network, OU=" (c) 1998 VeriSign, Inc. - 用于仅授权使用", OU=Class 3 Public Primary Certification Authority - G2, O="VeriSign, Inc.", C=US
别名名称:verisigntsaca [jdk]
可分辨名称:CN=Thawte Timestamping CA, OU=Thawte Certification, O=Thawte, L=Durbanville, ST=Western Cape, C=ZA
如需更多信息,请参阅 JDK-8256902。
3.1.3. 删除了 Telia company 的 Sonera Class2 CA 证书 复制链接链接已复制到粘贴板!
以下 root 证书已从 cacerts 信任存储中删除:
别名名称:soneraclass2ca
区分名称:CN=Sonera Class2 CA、O=Sonera、C=FI
如需更多信息,请参阅 JDK-8261361。
3.1.4. 升级默认的 PKCS12 加密和 MAC 算法 复制链接链接已复制到粘贴板!
更新了 PKCSencoding 密钥存储中使用的默认加密和 MAC 算法。基于 AES-256 和 SHA-256 的新算法比基于 RC2、DESede 和 SHA-1 的旧算法更强大。如需了解更多详细信息,请参阅 java.security 文件中以 keystore.pkcs12 开头的安全属性。
定义了一个名为 keystore.pkcs12.legacy 的新系统属性以保持兼容性。它将恢复算法以使用较旧的较弱算法。没有为此属性定义值。
如需更多信息,请参阅 JDK-8242069。
SunJSSE 供应商无法读取或写入特定的 TLS ALPN 值。这是因为,选择 Strings 作为 API 接口,以及 UTF-8 字符集的内部使用,它会将大于 U+00007F (7-bit ASCII)的字符转换为多字节数组。
ALPN 值现在使用 peer 期望的网络字节表示表示,这不需要修改基于 7 位 ASCII 的标准字符字符串。但是,SunJSSE 现在将字符串字符编码为 8 位 ISO_8859_1/LATIN-1 字符。其意味着使用 U+000007F 编码的字符的应用程序可能需要修改,以执行 UTF-8 转换,或者您可以将 Java 安全属性 jdk.tls.alpnCharset 设置为 "UTF-8" 以恢复行为。
如需更多信息,请参阅 JDK-8257548。
3.1.6. 添加了对 certificate_authorities 扩展的支持 复制链接链接已复制到粘贴板!
certificate_authorities 扩展是 TLS 1.3 中引入的可选扩展。它指示证书颁发机构(CA),端点支持和接收端点用于指导证书选择。
此红帽构建的 OpenJDK 发行版本支持客户端和服务器端的 TLS 1.3 的 certificate_authorities 扩展。此扩展始终存在于客户端证书选择中,而对于服务器证书选择是可选的。
通过将 jdk.tls.client.enableCAExtension 系统属性设置为 true,应用程序可以为服务器证书选择启用此扩展。属性的默认值为 false。
如果客户端信任的 CA 超过扩展的大小限制(小于 2^16 字节),则不会启用扩展。另外,一些服务器实现不允许握手消息超过 2^14 字节。因此,当 jdk.tls.client.enableCAExtension 设为 true 且客户端信任比服务器实施限制更多的 CA 时,可能会出现互操作性问题。
如需更多信息,请参阅 JDK-8244460。