发行版要点说明
IANA Data 2017b
JDK 8u151 包含 IANA 时区数据版本 2017b。有关详细信息,请参阅 JRE 软件中的时区数据版本。
证书更改:删除已撤销的 Swisscom 根证书 "swisscomrootevca2"
Swisscom 已经撤销并删除了一个 Swisscom 根证书:Swisscom Root EV CA 2
别名:"swisscomrootevca2 [jdk]"
DN:CN=Swisscom Root EV CA 2,OU=数字证书服务,O=Swisscom,C=ch
JDK-8186330(非公共)
新增功能:用于控制加密策略的新安全属性
本发行版引入了一项新功能,使得可以通过新安全属性控制 JDK 使用的 JCE 权限策略文件。在以前的发行版中,JCE 权限文件必须单独下载和安装,才能允许 JDK 使用不受限加密。现在,不再需要下载和安装步骤。要启用不受限加密,用户可以使用新的 crypto.policy 安全属性。如果在 java.security 文件中设置了新安全属性 (crypto.policy),或者在初始化 JCE 框架之前已经使用 Security.setProperty() 调用来动态设置了该安全属性,则将遵循该设置。默认情况下,此属性未定义。如果此属性未定义,并且传统 lib/security 目录中不存在传统的 JCE 权限文件,则默认加密级别将保留为“受限”。要将 JDK 配置为使用不受限加密,请将 crypto.policy 设置为“无限制”值。有关详细信息,请参阅本发行版随附的 java.security 文件中的说明。注:在 Solaris 上,建议删除旧 SVR4 包,然后再安装新的 JDK 更新。如果在早于 6u131、7u121、8u111 的 JDK 发行版上完成了基于 SVR4 的升级(不卸载旧包),则您应在 java.security 文件中设置新的 crypto.policy 安全属性。由于旧 JCE 权限文件保留在 <java-home>/lib/security 中,这些文件可能不符合最新的安全 JAR 签名标准,这些签名标准已经在 6u131、7u121、8u111 和更高版本中进行更新。如果使用旧文件,可能会出现类似下面这样的异常错误:原因:java.lang.SecurityException:权限策略文件未由可信签名者签名!位置:javax.crypto.JceSecurity.loadPolicies(JceSecurity.java:593),javax.crypto.JceSecurity.setupJurisdictionPolicies(JceSecurity.java:524)
请参阅 JDK-8157561
更改:重构现有提供方以引用相同的密钥长度默认值常量
针对此问题,已经进行了两项重要更改:引入了一个新的系统属性,使得用户可以配置 KeyPairGenerator 和 AlgorithmParameterGenerator 的 JDK 提供方实现所使用的默认密钥大小。此属性的名称为 "jdk.security.defaultKeySize",其值为逗号分隔条目的列表。每个条目包含不区分大小写的算法名称和对应的默认密钥大小(以十进制表示),由 ':' 分隔。另外,忽略空格。默认情况下,此属性没有值,JDK 提供方将使用自己的默认值。将忽略包含无法识别的算法名称的条目。如果指定的默认密钥大小不是可进行语法分析的十进制整数,也将忽略此条目。SUN 提供方的 DSA KeyPairGenerator 实现不再实现 java.security.interfaces.DSAKeyPairGenerator。将 SUN 提供方的 DSA KeyPairGenerator 对象转换为 java.security.interfaces.DSAKeyPairGenerator 的应用程序可以设置系统属性 "jdk.security.legacyDSAKeyPairGenerator"。如果此属性的值为 'true',则 SUN 提供方将返回 DSA KeyPairGenerator 对象,该对象可实现 java.security.interfaces.DSAKeyPairGenerator 接口。此传统实现将使用该接口中的 javadoc 指定的相同默认值。
默认情况下,此属性没有值,SUN 提供方将返回 DSA KeyPairGenerator 对象,该对象不实现前述接口,因此可以确定它自己的提供方特定默认值,该默认值由 java.security.KeyPairGenerator 类或 'jdk.security.defaultKeySize' 系统属性(如果设置)规定。
JDK-8181048(非公共)
Java 到期日期
8u151 的到期日期是 2018 年 1 月 16 日。只要具有安全漏洞修复的新发行版可用,Java 就会到期。对于无法访问 Oracle 服务器的系统,辅助机制将使此 JRE(版本 8u151)于 2018 年 2 月 16 日到期。满足两个条件中的任何一个(新发行版可用或到达到期日期)后,JRE 将向用户提供其他警告和提醒以更新到较新版本。
Bug 修复
此发行版包含对 Oracle Java SE 关键补丁程序更新指导中所述安全漏洞的修复。有关此发行版中包含的 Bug 修复的更完整列表,请参阅 JDK 8u151 Bug 修复页。