-
Enhancement
-
Resolution: Fixed
-
P2
-
None
-
b21
-
Fix failed
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8267022 | 16u-cpu | Prajwal Kumaraswamy | P2 | Closed | Fixed | master |
JDK-8264339 | 16.0.2 | Prajwal Kumaraswamy | P2 | Closed | Fixed | b04 |
JDK-8266298 | 11-pool | Severin Gehwolf | P2 | Closed | Won't Fix | |
JDK-8264354 | 11.0.13-oracle | Prajwal Kumaraswamy | P2 | Resolved | Fixed | b01 |
JDK-8269320 | 11.0.12.0.1-oracle | Prajwal Kumaraswamy | P2 | Resolved | Fixed | b01 |
JDK-8267030 | 11.0.12-oracle | Prajwal Kumaraswamy | P2 | Closed | Fixed | b04 |
JDK-8264355 | 8u311 | Prajwal Kumaraswamy | P2 | Resolved | Fixed | b01 |
JDK-8264357 | 7u321 | Prajwal Kumaraswamy | P2 | Resolved | Fixed | b01 |
JDK-8266515 | 7u311 | Prajwal Kumaraswamy | P2 | Closed | Fixed | b04 |
Restricting signed JARs is more complicated than TLS, due to the higher risk of breaking code that has been previously timestamped and may be still in use. The jdk.certpath.disabledAlgorithms and jdk.jar.disabledAlgorithms security properties support a denyAfter constraint which can help mitigate this risk by only restricting SHA-1 JARs timestamped after a specific date, ex:
jdk.jar.disabledAlgorithms=SHA1 denyAfter 2020-04-02
The Root CAs included in the JDK that support code signing should all be issuing SHA-2 code signing certificates by default, although some may still allow SHA-1 to be requested, mainly for compatibility with older Windows systems that do not support SHA-2.
The compatibility risk of disabling SHA-1 JARs is much lower in JDK 11 and up, since signed applets and WebStart applications are not supported.
The current proposal is to disable SHA-1 JARs with the following exceptions:
1. Any JAR signed and timestamped prior to January 01, 2019 is not restricted. This will allow SHA-1 JARs timestamped prior to this date and still in use to continue to work, but we encourage them to be replaced, as this exception will likely be removed in a future update.
2. Any JAR signed with SHA-1 certificates that were not issued by (or chain back to) one of the Root CAs that are included in the JDK cacerts keystore is not restricted. Thus, if you are using a CA that is not included in the JDK you will not be affected. This is consistent with the TLS SHA-1 certificate restriction. But also like 1, this exception will likely be removed in a future update.
- backported by
-
JDK-8264354 Disable SHA-1 Signed JARs
- Resolved
-
JDK-8264355 Disable SHA-1 Signed JARs
- Resolved
-
JDK-8264357 Disable SHA-1 Signed JARs
- Resolved
-
JDK-8269320 Disable SHA-1 Signed JARs
- Resolved
-
JDK-8264339 Disable SHA-1 Signed JARs
- Closed
-
JDK-8266298 Disable SHA-1 Signed JARs
- Closed
-
JDK-8266515 Disable SHA-1 Signed JARs
- Closed
-
JDK-8267022 Disable SHA-1 Signed JARs
- Closed
-
JDK-8267030 Disable SHA-1 Signed JARs
- Closed
- csr for
-
JDK-8264362 Disable SHA-1 Signed JARs
- Closed
- is blocked by
-
JDK-8242565 Policy initialization issues when the denyAfter constraint is enabled
- Closed
- relates to
-
JDK-8269039 Disable SHA-1 Signed JARs
- Closed
-
JDK-8267100 [BACKOUT] JDK-8196415 Disable SHA-1 Signed JARs
- Closed
-
JDK-8266971 JDK-8196415 cause significant startup regressions on apps that include any SHA-1 signed JAR
- Closed
-
JDK-8266022 Update jdk.certpath.disabledAlgorithms and jdk.jar.disabledAlgorithms in the JSSE Reference Guide
- Resolved
- links to
-
Commit openjdk/jdk16u/4ea26b89
-
Commit openjdk/jdk/27805775
-
Review openjdk/jdk16u/111
-
Review openjdk/jdk/3694
-
Review openjdk/jdk/3700