
The algorithms are becoming a security issue now especially for the key protection algorithms which is used to protect private keys.

PKCS12 is the default keystore format since JDK 9, but we have been using weak algorithms which was the standard of 1990s.
#KEYSTORE EXPLORER READ ENCRYPTED VALUE UPGRADE#
Upgrade the default algorithms used in PKCS 12 to use new PBES2 based encryption and stronger algorithms like AES and SHA-2. JDK 8u has a problem recognizing PBES2 parameters ( JDK-8202837, JDK-8214513 ), and JDK 11u does not recognize HmacPBESHA256 ( JDK-8076190 ). Newly generated pkcs12 files will not be recognized by older versions of JDK. However, openssl 3.0.0 will not accept it unless -legacy is provided.ġ. This style will be recognized by Firefox but not macOS. One alternative is to only enhance the algorithm for key protection and leave the other 2 algorithms unchanged. It makes sense to be more strict for Java when choosing default protection algorithms. However, while other tools use pkcs12 as an exchange format, Java uses it as the primary keystore format. Since this is a crypto roadmap enhancement, we are going to backport this fix and JDK-8076190 to make sure #1 above do not happen after every release is updated to the latest baseline.Īs for #2, a keytool command can be used to downgrade a pkcs12 file to use weaker algorithms.

On the other hand, openssl 3.0.0 (the next release) will only accept PBES2 pkcs12 files and reject the original algorithms (unless -legacy is added on the command line).
#KEYSTORE EXPLORER READ ENCRYPTED VALUE WINDOWS#
They are not recognized by Windows Server 2016, macOS 10.15, and the latest Firefox. Only openssl and Windows Server 2019 supports these algorithms. Newly generated pkcs12 files might not be recognized by browsers and key/certificate managers on various systems. JDK 8u has a problem recognizing PBES2 parameters ( JDK-8202837, JDK-8214513), and JDK 11u does not recognize HmacPBESHA256 ( JDK-8076190).Įven if the new keystore using stronger algorithm is recognized by an older version of JDK, when such a keystore is loaded and then stored by an old version of keytool, it will use weaker algorithms in certificate protection and integrity protection (MacData).Ģ.

These are 2 kinds of compatibility impacts:ġ.
