Deprecated CipherSpecs

A list of deprecated CipherSpecs that we are able to use with IBM MQ if necessary.

For information about enabling deprecated CipherSpecs, see Enable deprecated CipherSpecs on IBM MQ for Multiplatforms or Enable deprecated CipherSpecs on z/OS.

Deprecated CipherSpecs that we can use with IBM MQ TLS support are listed in the following table.

Platform support 1 CipherSpec name Protocol used Data integrity Encryption algorithm Encryption bits FIPS 2 Suite B Update when deprecated
CipherSpecs for SSL 3.0

AES_SHA_US 3 SSL 3.0 SHA-1 AES 128 No No 9.0.0.0
All DES_SHA_EXPORT 3 4 5 SSL 3.0 SHA-1 DES 56 No No 9.0.0.0

DES_SHA_EXPORT1024 3 6 SSL 3.0 SHA-1 DES 56 No No 9.0.0.0

FIPS_WITH_DES_CBC_SHA 3 SSL 3.0 SHA-1 DES 56 No7 No 9.0.0.0

FIPS_WITH_3DES_EDE_CBC_SHA 3 SSL 3.0 SHA-1 3DES 168 No8 No 9.0.0.1 and 9.0.1
All NULL_MD5 3 SSL 3.0 MD5 None 0 No No 9.0.0.1
All NULL_SHA 3 SSL 3.0 SHA-1 None 0 No No 9.0.0.1
All RC2_MD5_EXPORT 3 4 5 SSL 3.0 MD5 RC2 40 No No 9.0.0.0
All RC4_MD5_EXPORT 4 3 SSL 3.0 MD5 RC4 40 No No 9.0.0.0
All RC4_MD5_US 3 SSL 3.0 MD5 RC4 128 No No 9.0.0.0
All RC4_SHA_US 3 5 SSL 3.0 SHA-1 RC4 128 No No 9.0.0.0

RC4_56_SHA_EXPORT1024 3 6 SSL 3.0 SHA-1 RC4 56 No No 9.0.0.0
All TRIPLE_DES_SHA_US 3 5 SSL 3.0 SHA-1 3DES 168 No No 9.0.0.1 and 9.0.1
CipherSpecs for TLS 1.0

TLS_RSA_EXPORT_WITH_RC2_40_MD5 3 TLS 1.0 MD5 RC2 40 No No 9.0.0.0

TLS_RSA_EXPORT_WITH_RC4_40_MD53 4 TLS 1.0 MD5 RC4 40 No No 9.0.0.0
All TLS_RSA_WITH_DES_CBC_SHA 3 TLS 1.0 SHA-1 DES 56 No9 No 9.0.0.0

TLS_RSA_WITH_NULL_MD5 3 TLS 1.0 MD5 None 0 No No 9.0.0.1

TLS_RSA_WITH_NULL_SHA 3 TLS 1.0 SHA-1 None 0 No No 9.0.0.1

TLS_RSA_WITH_RC4_128_MD5 3 TLS 1.0 MD5 RC4 128 No No 9.0.0.0

TLS_RSA_WITH_AES_128_CBC_SHA TLS 1.0 SHA-1 AES 128 Yes No 9.0.5

TLS_RSA_WITH_AES_256_CBC_SHA 6 TLS 1.0 SHA-1 AES 256 Yes No 9.0.5
All TLS_RSA_WITH_3DES_EDE_CBC_SHA10 TLS 1.0 SHA-1 3DES 168 Yes No 9.0.0.1 and 9.0.1
CipherSpecs for TLS 1.2

ECDHE_ECDSA_NULL_SHA256 3 TLS 1.2 SHA-1 None 0 No No 9.0.0.1

ECDHE_ECDSA_RC4_128_SHA256 3 TLS 1.2 SHA-1 RC4 128 No No 9.0.0.0

ECDHE_RSA_NULL_SHA256 3 TLS 1.2 SHA-1 None 0 No No 9.0.0.1

ECDHE_RSA_RC4_128_SHA256 TLS 1.2 SHA-1 RC4 128 No No 9.0.0.0

TLS_RSA_WITH_NULL_NULL 3 TLS 1.2 None None 0 No No 9.0.0.1
All TLS_RSA_WITH_NULL_SHA256 3 TLS 1.2 SHA-256 None 0 No No 9.0.0.1

TLS_RSA_WITH_RC4_128_SHA256 3 TLS 1.2 SHA-1 RC4 128 No No 9.0.0.0

ECDHE_ECDSA_3DES_EDE_CBC_SHA256 10 TLS 1.2 SHA-1 3DES 168 Yes No 9.0.0.1 and 9.0.1

ECDHE_RSA_3DES_EDE_CBC_SHA256 10 TLS 1.2 SHA-1 3DES 168 Yes No 9.0.0.1 and 9.0.1
Notes:
  1. For a list of platforms covered by each platform icon, see Release and platform icons in the product documentation.
  2. Specifies whether the CipherSpec is FIPS-certified on a FIPS-certified platform. See Federal Information Processing Standards (FIPS) for an explanation of FIPS.
  3. These CipherSpecs are disabled when TLS 1.3 is enabled (through the AllowTLSV13 property in the qm.ini).

    IBM MQ for z/OS queue managers created at Version 9.2.0 or later enable TLS 1.3 by default, which disables these CipherSpecs. We can enable these CipherSpecs, if required, by turning off TLS V1.3. This is done by adding AllowTLSV13=FALSE to the TransportSecurity stanza of the QMINI data set in the queue manager JCL. Queue managers migrated to Version 9.2.0 from an earlier version don't have TLS 1.3 enabled by default, and therefore have these CipherSpecs enabled.

  4. The maximum handshake key size is 512 bits. If either of the certificates exchanged during the SSL handshake has a key size greater than 512 bits, a temporary 512-bit key is generated for use during the handshake.
  5. These CipherSpecs are no longer supported by IBM MQ classes for Java or IBM MQ classes for JMS. For more information, see SSL/TLS CipherSpecs and CipherSuites in IBM MQ classes for Java or SSL/TLS CipherSpecs and CipherSuites in IBM MQ classes for JMS.
  6. The handshake key size is 1024 bits.
  7. This CipherSpec was FIPS 140-2 certified before 19 May 2007. The name FIPS_WITH_DES_CBC_SHA is historical and reflects the fact that this CipherSpec was previously (but is no longer) FIPS-compliant. This CipherSpec is deprecated and its use is not recommended.
  8. The name FIPS_WITH_3DES_EDE_CBC_SHA is historical and reflects the fact that this CipherSpec was previously (but is no longer) FIPS-compliant. The use of this CipherSpec is deprecated.
  9. This CipherSpec was FIPS 140-2 certified before 19 May 2007.
  10. This CipherSpec can be used to transfer up to 32 GB of data before the connection is terminated with error AMQ9288. To avoid this error, either avoid using triple DES, or enable secret key reset when using this CipherSpec.


Enable deprecated CipherSpecs on IBM MQ for Multiplatforms

By default, we are not allowed to specify a deprecated CipherSpec on a channel definition. If you attempt to specify a deprecated CipherSpec on IBM MQ for Multiplatforms, you receive message AMQ8242: SSLCIPH definition wrong, and PCF returns MQRCCF_SSL_CIPHER_SPEC_ERROR.

We cannot start a channel with a deprecated CipherSpec. If you attempt to do so with a deprecated CipherSpec, the system returns MQCC_FAILED (2), together with a Reason of MQRC_SSL_INITIALIZATION_ERROR (2393) to the client.

We can re-enable one or more of the deprecated CipherSpecs for defining channels, at runtime on the server, by setting the environment variable AMQ_SSL_WEAK_CIPHER_ENABLE.

The AMQ_SSL_WEAK_CIPHER_ENABLE environment variable accepts:

  • A single CipherSpec name, or
  • A comma separated list of CipherSpec names to re-enable, or
  • The special value of ALL, representing all CipherSpecs.

Attention: Although ALL is a valid option, we should use it only in a specific situation that your enterprise requires, as re-enabling ALL CipherSpecs enables SSL 3.0 and TLS 1.0 protocols, as well as a large number of weak cryptographic algorithms. For example, if we want to re-enable ECDHE_RSA_RC4_128_SHA256, set the following environment variable:

  export AMQ_SSL_WEAK_CIPHER_ENABLE=ECDHE_RSA_RC4_128_SHA256
or, alternatively change the SSL stanza in the qm.ini file, by setting:
SSL:
  AllowTLSV1=Y
  AllowWeakCipherSpec=ECDHE_RSA_RC4_128_SHA256


Enable deprecated CipherSpecs on z/OS

By default, we are not allowed to specify a deprecated CipherSpec on a channel definition. If you attempt to specify a deprecated CipherSpec on z/OS, you receive message CSQM102E, message CSQX616E, or CSQX674E.

On IBM MQ for z/OS, the current method of controlling weak or broken CipherSpecs is as follows:

  • To re-enable the use of weak CipherSpecs, you do so by adding a dummy data definition (DD) statement named CSQXWEAK to the channel initiator JCL; for example:
    //CSQXWEAK DD DUMMY
  • To re-enable the use of SSLv3 CipherSpecs, you do so by also adding a dummy DD statement named CSQXSSL3 to the channel initiator JCL; for example:
    //CSQXSSL3 DD DUMMY
  • To re-enable the deprecated TLS V1 protocol, you do so by also adding a dummy DD statement named TLS10ON (turn TLS V1.0 ON) to the channel initiator JCL; for example:
    //TLS10ON DD DUMMY
  • To explicitly turn off the deprecated TLS V1 protocol, you do so by adding a dummy DD statement named TLS10OFF (turn TLS V1.0 OFF) to the channel initiator JCL; for example:
    //TLS10OFF DD DUMMY

If we do not want to negotiate with the listener using weak or broken cipher specifications, you need to define the following DD statement in the CHINIT JCL:

JCL: //WCIPSOFF DD DUMMY 
To only negotiate with the listener using the cipher specifications listed on the System SSL default cipher specification list, we need to define the following DD statement in the CHINIT JCL:
JCL: //GSKDCIPS DD DUMMY 
Important: For IBM MQ for z/OS Version 9.2.0 and later, the previously listed DD cards and the value of AllowTLSV13 are taken into account when displaying messages during channel initiator startup to indicate which protocols are enabled and which are not. So, even if one of the previously listed DD cards is specified, it could mean that, due to a combination of these settings, a certain protocol cannot be enabled with another protocol. For example, protocol SSL 3.0 is not allowed if TLS 1.3 is enabled. Parent topic: Enable CipherSpecs


Related concepts


Related information