SSL/TLS CipherSpecs und CipherSuites in IBM MQ classes for Java

Die Fähigkeit von IBM® MQ classes for Java -Anwendungen, Verbindungen zu einem WS-Manager herzustellen, hängt von der CipherSpec ab, die am Serverende des MQI-Kanals angegeben ist, und von der CipherSuite , die am Clientende angegeben ist.

In der folgenden Tabelle sind die CipherSpecs aufgelistet, die von IBM MQ unterstützt werden, sowie die entsprechenden CipherSuites.

Sie sollten den Abschnitt Veraltete CipherSpecs lesen, um festzustellen, ob eine der CipherSpecs, die in der folgenden Tabelle aufgelistet sind, von IBM MQ nicht mehr verwendet wird, und wenn ja, bei welcher Aktualisierung die CipherSpec nicht weiter unterstützt wird.

Wichtig: Die aufgelisteten CipherSuites werden von der IBM Java Runtime Environment (JRE) unterstützt, die mit IBM MQbereitgestellt wird. Ab IBM MQ 8.0.0Fixpack 2enthalten die aufgelisteten CipherSuites die von der Oracle Java JRE unterstützten Cipher-Suites. Weitere Informationen zur Konfiguration Ihrer Anwendung für die Verwendung einer Oracle Java JRE finden Sie unter Anwendung für die Verwendung von IBM Java-oder Oracle Java CipherSuite -Zuordnungen konfigurieren.
In der Tabelle ist außerdem das Protokoll (SSL oder eine bestimmte TLS-Version) angegeben, das für die Kommunikation verwendet wird; darüber hinaus ist angegeben, ob die Cipher-Suite dem FIPS 140-2-Standard entspricht.
Anmerkung: Ab IBM MQ 8.0.0Fixpack 2wird das Protokoll SSLv3 und die Verwendung einiger IBM MQ CipherSpecs nicht mehr verwendet. Weitere Informationen finden Sie unter Veraltete CipherSpecs.

Wenn die Anwendung nicht so konfiguriert ist, dass eine Einhaltung des FIPS 140-2-Standards erzwungen wird, können Cipher-Suites, die als FIPS 140-2-konform gekennzeichnet sind, verwendet werden. Wurde die Anwendung für eine Einhaltung des FIPS 140-2-Standards konfiguriert (siehe die folgenden Hinweise zur Konfiguration), können nur die Cipher-Suites verwendet werden, die als FIPS 140-2-konform gekennzeichnet sind. Bei einem Versuch, eine andere Cipher-Suite zu verwenden, wird ein Fehler zurückgegeben.

Hinweis: Jede JRE kann über mehrere verschlüsselte Sicherheitsprovider verfügen, von denen jeder eine Implementierung derselben CipherSuitebeitragen kann. Nicht alle Sicherheitsprovider sind allerdings FIPS 140-2-zertifiziert. Wenn für eine Anwendung keine Einhaltung des FIPS 140-2-Standards erzwungen wird, besteht die Möglichkeit, dass eine nicht zertifizierte Implementierung der Cipher-Suite verwendet wird. Nicht zertifizierte Implementierungen arbeiten allerdings unter Umständen nicht FIPS 140-2-konform, auch wenn die Cipher-Suite theoretisch die von diesem Standard geforderten Mindestsicherheitsanforderungen erfüllt. Weitere Informationen zum Konfigurieren der FIPS 140-2-Durchsetzung in IBM MQ Java -Anwendungen finden Sie in den folgenden Hinweisen.

Weitere Informationen zur FIPS 140-2-und Suite-B-Konformität für CipherSpecs und CipherSuitesfinden Sie im Abschnitt CipherSpecs. Möglicherweise müssen Sie auch Informationen berücksichtigen, die sich auf die US-amerikanischen Federal Information Processing Standardsbeziehen.

Damit damit alle Cipher-Suites verwendet werden können und FIPS 140-2- und/oder Suite-B-zertifiziert arbeiten, ist eine entsprechende JRE erforderlich. IBM Java 7 Serviceaktualisierung 4 Fixpack 2 oder eine höhere Version von IBM JRE bietet die entsprechende Unterstützung.

Hinweis: Zur Verwendung einiger CipherSuitesmüssen die 'uneingeschränkten ' Richtliniendateien in der JRE konfiguriert werden. Weitere Informationen zur Einrichtung von Richtliniendateien in einem SDK oder einer JRE finden Sie im Abschnitt IBM SDK-Richtliniendateien in der Sicherheitsreferenz für IBM SDK Java Technology Edition Version 7.
Tabelle 1. CipherSpecs , die von IBM MQ unterstützt werden, und die entsprechenden CipherSuites
CipherSpec Funktional entsprechende CipherSuite (IBM JRE) Äquivalente Cipher-Suite (Oracle JRE) Protokoll FIPS 140-2-konform
ECDHE_ECDSA_3DES_EDE_CBC_SHA256 SSL_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA TLSv1.2 ja
ECDHE_ECDSA_AES_128_CBC_SHA256 SSL_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 TLSv1.2 ja
ECDHE_ECDSA_AES_128_GCM_SHA256 SSL_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 TLSv1.2 ja
ECDHE_ECDSA_AES_256_CBC_SHA384 SSL_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 TLSv1.2 ja
ECDHE_ECDSA_AES_256_GCM_SHA384 SSL_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 TLSv1.2 ja
ECDHE_ECDSA_NULL_SHA256 SSL_ECDHE_ECDSA_WITH_NULL_SHA TLS_ECDHE_ECDSA_WITH_NULL_SHA TLSv1.2 Kein
ECDHE_ECDSA_RC4_128_SHA256 SSL_ECDHE_ECDSA_WITH_RC4_128_SHA TLS_ECDHE_ECDSA_WITH_RC4_128_SHA TLSv1.2 Kein
ECDHE_RSA_3DES_EDE_CBC_SHA256 SSL_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA TLSv1.2 ja
ECDHE_RSA_AES_128_CBC_SHA256 SSL_ECDHE_RSA_WITH_AES_128_CBC_SHA256 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 TLSv1.2 ja
ECDHE_RSA_AES_128_GCM_SHA256 SSL_ECDHE_RSA_WITH_AES_128_GCM_SHA256 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 TLSv1.2 ja
ECDHE_RSA_AES_256_CBC_SHA384 SSL_ECDHE_RSA_WITH_AES_256_CBC_SHA384 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 TLSv1.2 ja
ECDHE_RSA_AES_256_GCM_SHA384 SSL_ECDHE_RSA_WITH_AES_256_GCM_SHA384 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 TLSv1.2 ja
ECDHE_RSA_NULL_SHA256 SSL_ECDHE_RSA_WITH_NULL_SHA TLS_ECDHE_RSA_WITH_NULL_SHA TLSv1.2 Kein
ECDHE_RSA_RC4_128_SHA256 SSL_ECDHE_RSA_WITH_RC4_128_SHA TLS_ECDHE_RSA_WITH_RC4_128_SHA TLSv1.2 Kein
RC4_MD5_EXPORT SSL_RSA_EXPORT_WITH_RC4_40_MD5 SSL_RSA_EXPORT_WITH_RC4_40_MD5 SSLv3 Kein
FIPS_WITH_3DES_EDE_CBC_SHA SSL_RSA_FIPS_WITH_3DES_EDE_CBC_SHA   SSLv3 Nein1
FIPS_WITH_DES_CBC_SHA SSL_RSA_FIPS_WITH_DES_CBC_SHA   SSLv3 Nein1
TLS_RSA_WITH_3DES_EDE_CBC_SHA 1 SSL_RSA_WITH_3DES_EDE_CBC_SHA SSL_RSA_WITH_3DES_EDE_CBC_SHA TLSv1 ja
TLS_RSA_WITH_AES_128_CBC_SHA SSL_RSA_WITH_AES_128_CBC_SHA TLS_RSA_WITH_AES_128_CBC_SHA TLSv1 ja
TLS_RSA_WITH_AES_128_CBC_SHA256 SSL_RSA_WITH_AES_128_CBC_SHA256 TLS_RSA_WITH_AES_128_CBC_SHA256 TLSv1.2 ja
TLS_RSA_WITH_AES_128_GCM_SHA256 SSL_RSA_WITH_AES_128_GCM_SHA256 TLS_RSA_WITH_AES_128_GCM_SHA256 TLSv1.2 ja
TLS_RSA_WITH_AES_256_CBC_SHA SSL_RSA_WITH_AES_256_CBC_SHA TLS_RSA_WITH_AES_256_CBC_SHA TLSv1 ja
TLS_RSA_WITH_AES_256_CBC_SHA256 SSL_RSA_WITH_AES_256_CBC_SHA256 TLS_RSA_WITH_AES_256_CBC_SHA256 TLSv1.2 ja
TLS_RSA_WITH_AES_256_GCM_SHA384 SSL_RSA_WITH_AES_256_GCM_SHA384 TLS_RSA_WITH_AES_256_GCM_SHA384 TLSv1.2 ja
TLS_RSA_WITH_DES_CBC_SHA SSL_RSA_WITH_DES_CBC_SHA SSL_RSA_WITH_DES_CBC_SHA TLSv1 Kein
NULL_MD5 SSL_RSA_WITH_NULL_MD5 SSL_RSA_WITH_NULL_MD5 SSLv3 Kein
NULL_SHA SSL_RSA_WITH_NULL_SHA SSL_RSA_WITH_NULL_SHA SSLv3 Kein
TLS_RSA_WITH_NULL_SHA256 SSL_RSA_WITH_NULL_SHA256 TLS_RSA_WITH_NULL_SHA256 TLSv1.2 Kein
RC4_MD5_US SSL_RSA_WITH_RC4_128_MD5 SSL_RSA_WITH_RC4_128_MD5 SSLv3 Kein
TLS_RSA_WITH_RC4_128_SHA256 SSL_RSA_WITH_RC4_128_SHA SSL_RSA_WITH_RC4_128_SHA TLSv1.2 Kein
Hinweis:
  1. Die CipherSpec TLS_RSA_WITH_3DES_EDE_CBC_SHA wird nicht weiter unterstützt. Nach wie vor sind mit dieser CipherSpec jedoch noch Datenübertragungen bis zu 32 GB möglich, bevor die Verbindung mit Fehler AMQ9288 beendet wird. Zur Vermeidung dieses Fehlers sollten Sie entweder auf Triple DES verzichten oder, wenn Sie diese CipherSpec verwenden möchten, die Zurücksetzung von geheimen Schlüsseln aktivieren.
  2. Die Namen dieser Cipher-Suites sind noch die ursprünglichen Namen, aus denen hervorgeht, dass diese Cipher-Suites früher FIPS-konform waren. Sie sind jetzt nicht mehr FIPS-konform und die Verwendung dieser Cipher-Suites wird nicht mehr unterstützt.
  3. Die folgende Cipher-Suite wird nicht mehr unterstützt:
    • SSL_RSA_EXPORT_WITH_RC2_CBC_40_MD5
    Jeder Versuch, diese CipherSuite und die entsprechende IBM MQ CipherSpec RC2_MD5_EXPORT zu verwenden, schlägt mit einer entsprechenden Ausnahmebedingung fehl. In Installationen, in denen diese Cipher-Suite/CipherSpec-Kombination verwendet wird, sollte zur Verwendung einer unterstützten Kombination übergegangen werden.

Anwendung für die Verwendung von IBM Java -oder Oracle Java CipherSuite -Zuordnungen konfigurieren

Ab IBM MQ 8.0.0Fixpack 2können Sie konfigurieren, ob Ihre Anwendung die Standardzuordnungen von IBM Java CipherSuite zu IBM MQ CipherSpec oder die Zuordnungen von Oracle CipherSuite zu IBM MQ CipherSpec verwendet. In jedem Fall können Sie TLS-Cipher-Suites verwenden, unabhängig davon, ob Ihre Anwendung eine IBM JRE oder eine Oracle-JRE verwendet. Welche Zuordnungen verwendet werden, steuert die Java-Systemeigenschaft com.ibm.mq.cfg.useIBMCipherMappings. Für diese Eigenschaft sind folgende Werte möglich:
true
Verwenden Sie die Zuordnungen IBM Java CipherSuite zu IBM MQ CipherSpec .
Dies ist der Standardwert.
false
Verwenden Sie die Zuordnungen von Oracle CipherSuite zu IBM MQ CipherSpec .

Weitere Informationen zur Verwendung von IBM MQ Java und TLS-Verschlüsselungen finden Sie im MQdev-Blogbeitrag MQ Java, TLS Ciphers, Non-IBM JREs & APARs IT06775, IV66840, IT09423, IT10837.

SSL-Cipher-Suites und FIPS-Konformität in einer IBM MQ classes for Java -Anwendung konfigurieren

  • Eine Anwendung, die IBM MQ classes for Java verwendet, kann eine von zwei Methoden verwenden, um die SSL CipherSuite für eine Verbindung festzulegen:
    • Setzen Sie das Feld 'sslCipherSuite' in der Klasse 'MQEnvironment' auf den Namen der Cipher-Suite.
    • Setzen Sie die Eigenschaft CMQC.SSL_CIPHER_SUITE_PROPERTY in der Hashtabelle mit Eigenschaften, die an den MQQueueManager-Konstruktor übergeben wurde, auf den Namen der Cipher-Suite.
  • Eine Anwendung, die IBM MQ classes for Java verwendet, kann eine von zwei Methoden verwenden, um die Konformität mit FIPS 140-2 durchzusetzen:
    • Setzen Sie das Feld 'sslFipsRequired' in der Klasse 'MQEnvironment' auf 'true'.
    • Setzen Sie die Eigenschaft CMQC.SSL_FIPS_REQUIRED_PROPERTY in der Hashtabelle mit den Eigenschaften, die an den MQQueueManager-Konstruktor übergeben wurde, auf 'true'.

Einschränkungen bei der Interoperabilität

Bestimmte CipherSuites können je nach verwendetem Protokoll mit mehr als einer IBM MQ CipherSpeckompatibel sein: SSLv3 oder eine bestimmte Version von TLS. Es wird jedoch nur die Kombination CipherSuite/CipherSpec unterstützt, die die in Tabelle 1 angegebene TLS-Version verwendet. Versuche, eine der nicht unterstützten Cipher-Suite/CipherSpecs-Kombinationen zu verwenden, schlagen mit einer entsprechenden Ausnahmebedingung fehl. In Installationen, in denen eine dieser Cipher-Suite/CipherSpec-Kombinationen verwendet wird, sollte zur Verwendung einer unterstützten Kombination übergegangen werden.

In der folgenden Tabelle sind die Cipher-Suites aufgeführt, für die diese Einschränkung gilt.

Tabelle 2. Cipher-Suites und die unterstützten bzw. nicht unterstützten CipherSpecs
CipherSuite Unterstützte TLS-CipherSpec Nicht unterstützte SSL-CipherSpec
SSL_RSA_WITH_3DES_EDE_CBC_SHA TLS_RSA_WITH_3DES_EDE_CBC_SHA 1 TRIPLE_DES_SHA_US
SSL_RSA_WITH_DES_CBC_SHA TLS_RSA_WITH_DES_CBC_SHA DES_SHA_EXPORT
SSL_RSA_WITH_RC4_128_SHA TLS_RSA_WITH_RC4_128_SHA256 RC4_SHA_US
Hinweis:
  1. Die CipherSpec TLS_RSA_WITH_3DES_EDE_CBC_SHA wird nicht weiter unterstützt. Nach wie vor sind mit dieser CipherSpec jedoch noch Datenübertragungen bis zu 32 GB möglich, bevor die Verbindung mit Fehler AMQ9288 beendet wird. Zur Vermeidung dieses Fehlers sollten Sie entweder auf Triple DES verzichten oder, wenn Sie diese CipherSpec verwenden möchten, die Zurücksetzung von geheimen Schlüsseln aktivieren.