Service refresh 7

Read about the changes in service refresh 7, and subsequent fix packs.

Skip to Service refresh 7 fix pack 5.

Skip to Service refresh 7 fix pack 10.

Skip to Service refresh 7 fix pack 15.

Skip to Service refresh 7 fix pack 20.

Service refresh 7

This release contains changes to the IBMJCEPlus provider, the IBM JSSE2 implementation, and the most recent Oracle Critical Patch Update (CPU).

IBMJCEPlus is the default JCE security provider on some operating systems
IBMJCEPlus is now the default JCE security provider on AIX®, Linux®, and Windows operating systems. You can revert this update by changing the order of the providers in the jre/lib/security/java.security file in your SDK installation directory.
Before reverting the update:
security.provider.1=com.ibm.jsse2.IBMJSSEProvider2
security.provider.2=com.ibm.crypto.plus.provider.IBMJCEPlus
security.provider.3=com.ibm.crypto.provider.IBMJCE
security.provider.4=com.ibm.security.jgss.IBMJGSSProvider
After reverting the update:
security.provider.1=com.ibm.jsse2.IBMJSSEProvider2
security.provider.2=com.ibm.crypto.provider.IBMJCE
security.provider.3=com.ibm.crypto.plus.provider.IBMJCEPlus
security.provider.4=com.ibm.security.jgss.IBMJGSSProvider

For more information, see Enabling the IBMJCEPlus and IBMJCEPlusFIPS providers.

AES-GCM algorithm support update for IBMJCEPlus and IBMJCEPlusFIPS providers
The IBMJCEPlus and IBMJCEPlusFIPS providers now support Cipher.update operations for the AES-GCM encryption/decryption algorithm. For more information, see IBMJCEPlus and IBMJCEPlusFIPS providers.
HMAC-SHA3 and SHA3 algorithm support update for IBMJCEPlus provider
The IBMJCEPlus provider now supports the following algorithms:
  • HMAC-SHA3 algorithms for message authentication code
  • SHA3 algorithms for creating message digests
For more information, see IBMJCEPlus and IBMJCEPlusFIPS providers.
End of FIPS 140-2 certification for IBMJCEFIPS provider
The FIPS 140-2 cryptographic module certification for the IBM JCE FIPS Provider (IBMJCEFIPS), as documented in Cryptographic Module Validation Program CMVP, Certificate #2715, expired on 21 August 2021. For more information, see Changes not associated with a specific service refresh or fix pack.
Update to signing of security providers and policy files
The IBM security providers and the JCE jurisdiction policy files are signed with the SHA256withRSA signature algorithm to enhance the security of JAR file signing and verification. For more information about the security policy files, see SDK Security policy files.
New system property for specifying IBMJSSE2 behavior when a connection is not closed properly
As stated in the TLS 1.1 standard: Note that as of TLS 1.1, failure to properly close a connection no longer requires that a session not be resumed. This is a change from TLS 1.0 to conform with widespread implementation practice.

However, as stated in the API documentation, an SSLException is thrown on a SSLEngine.closeInbound() method call if the engine did not receive the proper SSL/TLS close notification peer message from the peer. Throwing this SSLException causes the SSL session to be invalidated and therefore the SSL session cannot be resumed.

A new system property, com.ibm.jsse2.sslEngineCloseNotifyReceive, is provided to specify whether the IBM JSSE2 implementation throws an SSLException in this situation. This property has the following possible values:
  • true (default): The implementation behaves as specified in the SSLEngine.closeInputBound() API documentation and throws an SSLException if the engine did not receive the proper SSL/TLS close notification from the peer
  • false: The implementation does not throw an SSLException in the same situation. This behavior complies with the TLS 1.1 and later standards and allows SSL session resumption when a close/notify message is not received from the peer.
This property is documented along with other system properties in Customization.
Change to Oracle's JSSE "TLS" protocol alias
Oracle's "TLS" alias is changed to include TLS 1.3 on the server. As a result, the value of the com.ibm.jsse2.overrideDefaultTLS=true system property, which matches the IBM implementation of the SSLContext.getInstance("TLS") method to the Oracle implementation, is also changed. For more information about this property, see Matching the behavior of SSLContext.getInstance("TLS") to Oracle.

Service refresh 7 fix pack 5

Fix pack 5 contains the latest IBM fixes, the most recent Oracle Critical Patch Update (CPU), and the following new features:

Support for AES-CTR added to IBMJCEPlus and IBMJCEPlusFIPS providers
The IBMJCEPlus and IBMJCEPlusFIPS providers now support the use of the AES algorithm with the Counter (CTR) mode. For a list of supported algorithms, see IBMJCEPlus and IBMJCEPlusFIPS providers .
Changes to the priority order of JSSE cipher suites
To improve security, the default priority order of the cipher suites for TLS 1.0 to TLS 1.3 is adjusted. Some of the intermediate suites are lowered in priority for TLS 1.0 to TLS 1.2 as follows:
  • Cipher suites that do not preserve forward secrecy are moved lower in priority than those that do support forward secrecy.
  • Cipher suites that use SHA-1 are moved lower in priority.
For TLS 1.3, TLS_AES_256_GCM_SHA384 is preferred over TLS_AES_128_GCM_SHA256. Note that TLS 1.0 and 1.1 are no longer considered secure and are disabled by default. For a list of cipher suites in the order of preference and whether they are enabled or disabled by default, see Cipher suites.

Service refresh 7 fix pack 10

Fix pack 10 contains the latest IBM fixes, the most recent Oracle Critical Patch Update (CPU), and the following updates:

New security properties jdk.tls.client.disableExtensions and jdk.tls.server.disableExtensions
These system properties block specific TLS extensions used on the client and server side respectively. For more information about these properties, see Configuring default extensions.

Service refresh 7 fix pack 15

Fix pack 15 contains the latest IBM fixes, the most recent Oracle Critical Patch Update (CPU), and the following updates:

IBMJCEPlus and IBMJCEPlusFIPS providers now support Brainpool elliptic curves
Support is added to IBMJCEPlus and IBMJCEPlusFIPS providers to implement Brainpool elliptic curves. For a list of supported curves, see Supported elliptic curves.
Enabling TLSv1.3 by default on the client and server
TLSv1.3 is enabled by default on the client and server for SDK version 8. For more information, see Protocols.
New security property jdk.disabled.namedCurves
A new security property, jdk.disabled.namedCurves, is added to simplify the disabling of named curves. This property is referenced by the following security properties, by using the include keyword:
  • jdk.tls.disabledAlgorithms
  • jdk.certpath.disabledAlgorithms
  • jdk.jar.disabledAlgorithms
For example:
jdk.jar.disabledAlgorithms=MD2, MD5, RSA keySize < 1024, DSA keySize < 1024, include jdk.disabled.namedCurves

Therefore, you can use this property to add a named curve to the security properties jdk.tls.disabledAlgorithms, jdk.certpath.disabledAlgorithms, and jdk.jar.disabledAlgorithms. The default values for all these properties are listed in the $JAVA_HOME/jre/lib/security/java.security property file.

Service refresh 7 fix pack 20

Fix pack 20 contains the latest IBM fixes, the most recent Oracle Critical Patch Update (CPU), and the following updates:

JGSS Kerberos 3DES and RC4 encryption types are disabled by default
The JGSS Kerberos encryption types des3-cbc-sha1, and rc4-hmac are now disabled by default. For more information, see Supported Encryption Types.
IBMJCECCA RSA cipher support for OAEP padding
The IBMJCECCA security provider now supports Optimal Asymmetric Encryption Padding (OAEP padding) for RSA encryption and decryption that uses keys from a PKA data set (PKDS) that you manage with ICSF. You can now specify OEAP algorithms in the OAEPParameters class. For more information, see OAEPParameters class documentation.