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.
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.
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.
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 | nein |
ECDHE_ECDSA_RC4_128_SHA256 | SSL_ECDHE_ECDSA_WITH_RC4_128_SHA | TLS_ECDHE_ECDSA_WITH_RC4_128_SHA | TLSv1.2 | nein |
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 | nein |
ECDHE_RSA_RC4_128_SHA256 | SSL_ECDHE_RSA_WITH_RC4_128_SHA | TLS_ECDHE_RSA_WITH_RC4_128_SHA | TLSv1.2 | nein |
RC4_MD5_EXPORT | SSL_RSA_EXPORT_WITH_RC4_40_MD5 | SSL_RSA_EXPORT_WITH_RC4_40_MD5 | SSLv3 | nein |
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 | nein |
NULL_MD5 | SSL_RSA_WITH_NULL_MD5 | SSL_RSA_WITH_NULL_MD5 | SSLv3 | nein |
NULL_SHA | SSL_RSA_WITH_NULL_SHA | SSL_RSA_WITH_NULL_SHA | SSLv3 | nein |
TLS_RSA_WITH_NULL_SHA256 | SSL_RSA_WITH_NULL_SHA256 | TLS_RSA_WITH_NULL_SHA256 | TLSv1.2 | nein |
RC4_MD5_US | SSL_RSA_WITH_RC4_128_MD5 | SSL_RSA_WITH_RC4_128_MD5 | SSLv3 | nein |
TLS_RSA_WITH_RC4_128_SHA256 | SSL_RSA_WITH_RC4_128_SHA | SSL_RSA_WITH_RC4_128_SHA | TLSv1.2 | nein |
- 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.
- 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.
- Die folgende Cipher-Suite wird nicht mehr unterstützt:
- SSL_RSA_EXPORT_WITH_RC2_CBC_40_MD5
Anwendung für die Verwendung von IBM Java -oder Oracle Java CipherSuite -Zuordnungen konfigurieren
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 .
- 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-Verschlüsselungen, Nicht-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.
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 |
- 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.