FIPS-JSSE-Dateien konfigurieren

Verwenden Sie diesen Artikel, um FIPS-JSSE-Dateien (Federal Information Processing Standard Java™ Secure Socket Extension) zu konfigurieren.

Informationen zu diesem Vorgang

Der in WebSphere Application Server verwendete JSSE-Provider ist IBMJSSE2. Dieser Provider delegiert Verschlüsselungs- und Signaturfunktionen an den JCE-Provider (Java Cryptography Extension). Der Provider IBMJSSE2 muss deshalb nicht dem Federal Information Processing Standard (FIPS) entsprechen, da er keine Verschlüsselung durchführt. Der JCE-Provider muss jedoch FIPS-konform sein.
WebSphere Application Server stellt für IBMJSSE2 den Provider IBMJCEFIPS bereit, der die Bedingungen von FIPS erfüllt. Der im Lieferumfang von WebSphere Application Server Version 9.0 enthaltene Provider IBMJCEFIPS unterstützt die folgenden SSL-Verschlüsselungen:
  • SSL_RSA_WITH_AES_128_CBC_SHA
  • SSL_RSA_WITH_3DES_EDE_CBC_SHA
  • SSL_RSA_FIPS_WITH_3DES_EDE_CBC_SHA
  • SSL_DHE_RSA_WITH_AES_128_CBC_SHA
  • SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA
  • SSL_DHE_DSS_WITH_AES_128_CBC_SHA
  • SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA

Wenn auf der Seite "Verwaltung von SSL-Zertifikaten und Schlüsseln" für den Server die Option Die FIPS-Algorithmen (Federal Information Processing Standard) verwenden aktiviert wird, verwendet die Laufzeitumgebung immer IBMJSSE2, unabhängig vom Kontextprovider, den Sie für SSL angegeben haben (IBMJSSE oder IBMJSSE2S).Da FIPS das SSL-Protokoll TLS fordert, verwendet die Laufzeitumgebung immer TLS, sobald FIPS aktiviert ist. Dies gilt unabhängig von der Einstellung für das SSL-Protokoll im SSL-Repertoire. Dadurch wird die FIPS-Konfiguration in Version 9.0 vereinfacht, da der Administrator lediglich die Option Die FIPS-Algorithmen (Federal Information Processing Standard) verwenden in der Anzeige "Verwaltung von SSL-Zertifikaten und Schlüsseln" für den Server aktivieren muss, um alle Transporte mit SSL zu aktivieren.

Vorgehensweise

  1. Klicken Sie auf Sicherheit>Verwaltung von SSL-Zertifikaten und Schlüsseln>FIPS verwalten.
  2. Wählen Sie die Option FIPS 140-2 aktivieren aus und klicken Sie auf Anwenden. Diese Option bewirkt, dass IBMJSSE2 und IBMJCEFIPS zu den aktiven Providern werden.
  3. Berücksichtigen Sie die Java-Clients, die auf Enterprise-Beans zugreifen müssen.

    Ändern Sie den Wert der Eigenschaft com.ibm.security.useFIPS in der Datei Profilstammverzeichnis/properties/ssl.client.props von false in true.

  4. Stellen Sie sicher, dass die Eigenschaft "com.ibm.ssl.protocol" in der Datei Profilstammverzeichnis/properties/ssl.client.props auf "TLS" gesetzt ist.
  5. Vergewissern Sie sich, dass die Datei java.security den Provider enthält. [AIX Solaris HP-UX Linux Windows][IBM i]

    Editieren Sie die Datei java.security und fügen Sie den Provider IBMJCEFIPS (com.ibm.crypto.fips.provider.IBMJCEFIPS) vor dem Provider IBMJCE ein. Außerdem müssen Sie die anderen Provider in der Liste umnummerieren. Der Provider IBMJCEFIPS muss in der Providerliste in der Datei java.security enthalten sein.

    [IBM i]Die Datei java.security befindet sich im Verzeichnis Profilstammverzeichnis/properties.

    [AIX Solaris HP-UX Linux Windows][z/OS]Die Datei java.security befindet sich im Verzeichnis WASHOME/java/jre/lib/security.

    Die Datei IBM® SDK java.security gleicht nach der Ausführung dieses Schritts dem folgenden Beispiel: [AIX Solaris HP-UX Linux Windows][z/OS]
    security.provider.1=com.ibm.crypto.fips.provider.IBMJCEFIPS 
    security.provider.2=com.ibm.crypto.provider.IBMJCE
    security.provider.3=com.ibm.jsse.IBMJSSEProvider
    security.provider.4=com.ibm.jsse2.IBMJSSEProvider2
    security.provider.5=com.ibm.security.jgss.IBMJGSSProvider
     security.provider.6=com.ibm.security.cert.IBMCertPath
    security.provider.7=com.ibm.crypto.pkcs11impl.provider.IBMPKCS11Impl
    security.provider.8=com.ibm.security.cmskeystore.CMSProvider
    security.provider.9=com.ibm.security.jgss.mech.spnego.IBMSPNEGO
    security.provider.10=com.ibm.security.sasl.IBMSASL 
    security.provider.11=com.ibm.xml.crypto.IBMXMLCryptoProvider 
    security.provider.12=com.ibm.xml.enc.IBMXMLEncProvider  
    security.provider.13=org.apache.harmony.security.provider.PolicyProvider
    [IBM i]
    security.provider.1=com.ibm.crypto.fips.provider.IBMJCEFIPS
    security.provider.2=com.ibm.crypto.provider.IBMJCE
    security.provider.3=com.ibm.jsse.IBMJSSEProvider
    security.provider.4=com.ibm.jsse2.IBMJSSEProvider2
    security.provider.5=com.ibm.security.jgss.IBMJGSSProvider
    security.provider.6=com.ibm.security.cert.IBMCertPath
    security.provider.7=com.ibm.i5os.jsse.JSSEProvider
    security.provider.8=com.ibm.crypto.pkcs11.provider.IBMPKCS11
    security.provider.9=com.ibm.security.jgss.mech.spnego.IBMSPNEGO
    security.provider.10=com.ibm.security.cmskeystore.CMSProvider
    security.provider.11=com.ibm.security.sasl.IBMSASL
    security.provider.12=com.ibm.xml.crypto.IBMXMLCryptoProvider
    security.provider.13=com.ibm.xml.enc.IBMXMLEncProvider
    security.provider.14=org.apache.harmony.security.provider.PolicyProvider
    [AIX Solaris HP-UX Linux Windows][IBM i]Wenn Sie das Java SE Development Kit von Sun verwenden, gleicht die Datei java.security nach der Ausführung dieses Schrittes dem folgenden Beispiel:
    security.provider.1=sun.security.provider.Sun  
    security.provider.2=com.ibm.crypto.fips.provider.IBMJCEFIPS
    security.provider.3=com.ibm.crypto.provider.IBMJCE
    security.provider.4=com.ibm.jsse.IBMJSSEProvider
    security.provider.5=com.ibm.jsse2.IBMJSSEProvider2
    security.provider.6=com.ibm.security.jgss.IBMJGSSProvider
    security.provider.7=com.ibm.security.cert.IBMCertPath
    #security.provider.12=com.ibm.crypto.pkcs11.provider.IBMPKCS11
    security.provider.8=com.ibm.security.jgss.mech.spnego.IBMSPNEGO
    security.provider.9=com.ibm.security.cmskeystore.CMSProvider 
    security.provider.10=com.ibm.security.sasl.IBMSASL 
    security.provider.11=com.ibm.xml.crypto.IBMXMLCryptoProvider 
    security.provider.12=com.ibm.xml.enc.IBMXMLEncProvider   
    [z/OS]

    Bearbeiten Sie die Datei java.security und entfernen Sie das Kommentarzeichen aus der Zeile mit dem Provider IBMJCEFIPS. Nummerieren Sie anschließend die verbleibenden Einträge in der Providerliste neu. Der Provider IBMJCEFIPS muss in der Providerliste in der Datei java.security enthalten sein. Die Datei java.security befindet sich im Verzeichnis WASHOME/java/jre/lib/security. Führen Sie die folgenden Schritte aus, um die Datei zu editieren:

    [z/OS]
    1. Kopieren Sie die Datei java.security in ein Verzeichnis mit Schreibberechtigung.
    2. Editieren Sie die Datei java.security, setzen Sie die Zeile mit dem Provider IBMJCE auf Kommentar und entfernen Sie das Kommentarzeichen aus der Zeile mit dem Provider IBMJCEFIPS. Speichern Sie anschließend die Datei.

      Die Datei java.security des IBM Software Development Kit (SDK) gleicht dem folgenden Beispiel vor der Ausführung des Schritts:

      #security.provider.1=com.ibm.crypto.fips.provider.IBMJCEFIPS
      security.provider.1=com.ibm.crypto.provider.IBMJCE
      security.provider.2=com.ibm.jsse.IBMJSSEProvider
      security.provider.3=com.ibm.jsse2.IBMJSSEProvider2
      security.provider.4=com.ibm.security.jgss.IBMJGSSProvider
      security.provider.5=com.ibm.security.cert.IBMCertPath
      security.provider.6=com.ibm.crypto.pkcs11.provider.IBMPKCS11
      security.provider.7=com.ibm.security.cmskeystore.CMSProvider
      security.provider.8=com.ibm.security.jgss.mech.spnego.IBMSPNEGO
    3. Konfigurieren Sie die Systemeigenschaften security.overridePropertiesFile und java.security.properties für jede JVM (Java Virtual Machine) in der Zelle. Fügen Sie die folgenden Eigenschaft/Wert-Paare hinzu:
      Tabelle 1. Angepasste Eigenschaften zur Angabe einer neuen Position für die Datei java.security. .

      In dieser Tabelle sind die angepassten Eigenschaften beschrieben, mit denen eine neue Position für die dAtei java.security angegeben wird.

      Eigenschaftsname Wert
      security.overridePropertiesFile true
      java.security.properties Geben Sie die neue Position der Datei java.security an.
      Sie müssen die vorherige Gruppe von Systemeigenschaften für den Deployment Manager, den Node Agent und andere Anwendungsserver angeben. Geben Sie für den Deployment Manager diese Gruppe von Systemeigenschaften für die Steuerung und den Servant an. Geben Sie für den Node Agent diese Gruppe von Systemeigenschaften für die Steuerung an. Geben Sie für alle Anwendungsserver diese Gruppe von Systemeigenschaften für den Adjunct, die Steuerung und den Servant an. Führen Sie beispielsweise die folgenden Schritte aus, um diese Systemeigenschaften für die Steuerung auf einem Anwendungsserver anzugeben:
      1. Klicken Sie in der Administrationskonsole auf Server > Anwendungsserver > Servername.
      2. Klicken Sie unter "Serverinfrastruktur" auf Java- und Prozessverwaltung > Prozessdefinition > Steuerung.
      3. Klicken Sie unter "Weitere Eigenschaften" auf Java Virtual Machine > Angepasste Eigenschaften.
      4. Geben Sie die Eigenschaften als zwei Gruppen von Name/Wert-Paaren ein.
      5. Klicken Sie auf Speichern.

Nächste Schritte

Nach Ausführung dieser Schritte bietet ein FIPS-konformer JSSE- oder JCE-Provider erweiterte Verschlüsselungsmöglichkeiten. Wenn Sie FIPS-konforme Provider verwenden, müssen Sie jedoch Folgendes berücksichtigen:
  • In Microsoft Internet Explorer ist TLS möglicherweise nicht standardmäßig aktiviert. Wenn Sie TLS aktivieren möchten, öffnen Sie den Browser Internet Explorer und klicken Sie auf Extras > Internetoptionen. Wählen Sie auf der Registerkarte "Erweitert" die Option "TLS 1.0 verwenden" aus.
    Anmerkung: In Netscape Version 4.7.x und früher wird TLS unter Umständen nicht unterstützt.
  • Wenn Sie in der Anzeige "Verwaltung von SSL-Zertifikaten und Schlüsseln" die Option Federal Information Processing Standard (FIPS) verwenden auswählen, ist das LTPA-Tokenformat mit früheren Releases von WebSphere Application Server nicht abwärtskompatibel. LTPA-Schlüssel können jedoch aus einer früheren Version des Anwendungsservers importiert werden.
  • Anmerkung: Aufgrund der aktuellen WebSphere-Einschränkung wird die Schlüssellänge in geheimen Schlüsseln nicht auf Konformität mit FIPS sp800-131a ausgewertet. Wenn geheime Schlüssel im Keystore enthalten sind, prüfen Sie die Schlüssellänge mit iKeyman im Verzeichnis {WebSphere_install_dir}\java\jre\bin oder mit einem anderen Keystore-Tool.
[AIX Solaris HP-UX Linux Windows]Achtung: Der folgende Fehler kann auftreten, wenn Sie nach dem Aktivieren der Option FIPS versuchen, WebSphere Application Server zu stoppen:
ADMU3007E: Exception com.ibm.websphere.management.exception.ConnectorException
Entfernen Sie das Kommentarzeichen für den folgenden Eintrag in der Datei java.security, wenn dieser Eintrag zuvor auf Kommentar gesetzt wurde, und starten Sie anschließend den Server erneut:
security.provider.2=com.ibm.crypto.provider.IBMJCE
Anmerkung: Wenn Sie FIPS aktivieren, können Sie in den SSL-Repertoires keine Einheiten für Verschlüsselungstoken konfigurieren. IBMJSSE2 muss IBMJCEFIPS verwenden, wenn Verschlüsselungsservices gemäß FIPS genutzt werden.
Die folgenden FIPS-140-2-konformen Verschlüsselungsprovider sind die einzigen Einheiten, die von der Option FIPS unterstützt werden:
  • IBMJCEFIPS (Zertifikat 376)
  • IBM Cryptography for C (ICC) (Zertifika 384)
Die relevanten Zertifikate sind auf der Website von NIST aufgelistet: Cryptographic Module Validation Program FIPS 140-1 and FIPS 140-2 Pre-validation List..
Möchten Sie den FIPS-Provider dekonfigurieren, müssen Sie die Änderungen, die Sie in den vorherigen Schritten vorgenommen haben, zurücknehmen. Vergewissern Sie sich nach dem Zurücknehmen der Änderungen, dass Sie in den Dateien sas.client.props, soap.client.props und java.security die folgenden Änderungen vorgenommen haben:
  • In der Datei ssl.client.props müssen Sie den Wert com.ibm.security.useFIPS in false ändern.
  • [AIX Solaris HP-UX Linux Windows][z/OS]In der Datei java.security müssen Sie den FIPS-Provider in einen Provider ändern, der nicht FIPS ist.
    Wenn Sie die Datei java.security des IBM SDK verwenden möchten, müssen Sie den ersten Provider in einen anderen Provider als FIPS ändern, wie im folgenden Beispiel dargestellt:
    #security.provider.1=com.ibm.crypto.fips.provider.IBMJCEFIPS
    security.provider.1=com.ibm.crypto.provider.IBMJCE
    security.provider.2=com.ibm.jsse.IBMJSSEProvider
    security.provider.3=com.ibm.jsse2.IBMJSSEProvider2
    security.provider.4=com.ibm.security.jgss.IBMJGSSProvider
    security.provider.5=com.ibm.security.cert.IBMCertPath
    #security.provider.6=com.ibm.crypto.pkcs11.provider.IBMPKCS11
    Wenn Sie die Datei java.security des Sun SDK verwenden möchten, müssen Sie den dritten Provider in einen Provider ändern, der nicht FIPS ist, wie im folgenden Beispiel dargestellt:
    security.provider.1=sun.security.provider.Sun
    security.provider.2=com.ibm.security.jgss.IBMJGSSProvider
    security.provider.3=com.ibm.crypto.fips.provider.IBMJCEFIPS
    security.provider.4=com.ibm.crypto.provider.IBMJCE
    security.provider.5=com.ibm.jsse.IBMJSSEProvider
    security.provider.6=com.ibm.jsse2.IBMJSSEProvider2
    security.provider.7=com.ibm.security.cert.IBMCertPath
    #security.provider.8=com.ibm.crypto.pkcs11.provider.IBMPKCS11
  • [IBM i]Öffnen Sie die Datei java.security in einem Editor, entfernen Sie den Provider FIPS und nummerieren Sie die Provider neu. Beispiel:
    security.provider.1=sun.security.provider.Sun
    #security.provider.2=com.ibm.crypto.fips.provider.IBMJCEFIPS
    security.provider.2=com.ibm.crypto.provider.IBMJCE
    security.provider.3=com.ibm.jsse.IBMJSSEProvider
    security.provider.4=com.ibm.jsse2.IBMJSSEProvider2
    security.provider.5=com.ibm.security.jgss.IBMJGSSProvider
    security.provider.6=com.ibm.security.cert.IBMCertPath
    security.provider.7=com.ibm.i5os.jsse.JSSEProvider
    #security.provider.8=com.ibm.crypto.pkcs11.provider.IBMPKCS11
    security.provider.8=com.ibm.security.jgss.mech.spnego.IBMSPNEGO
[z/OS]Wenn Sie den FIPS-Provider verwenden, kann IBM Software Development Kit (SDK) eine Fehlernachricht ausgeben, die auf ein ungültiges Zertifikat verweist. Obwohl diese Fehlernachricht mehrere Gründe haben kann, sollten Sie Ihre Sicherheitskonfiguration überprüfen und eine der folgenden Aktionen in Erwägung ziehen:
  • Reduzieren Sie die Cipher-Suite-Stufe auf "Mittel", wenn Sie momentan mit der Cipher-Suite-Stufe "Stark" arbeiten.
    Fehler vermeiden Fehler vermeiden: Sie können die Cipher-Suite-Stufe für verschiedene Ebenen Ihrer Umgebung ändern, z. B. für die Knoten- oder Serverebene. Beschränken Sie die Änderung auf die Ebene Ihrer Umgebung, auf der die Änderung erforderlich ist.gotcha

    Zum Ändern der Cipher Suite sehen Sie sich die Informationen zu den Cipher-Suite-Gruppen in der Dokumentation zu den Datenschutzniveaueinstellungen an. Wenn Sie die Cipher-Suite-Stufe in "Mittel" ändern, speichern und synchronisieren Sie die Änderungen. Wenn die Option Laufzeitumgebung bei Änderungen in der SSL-Konfiguration dynamisch aktualisieren ausgewählt ist, müssen Sie den Server nicht erneut starten. Ist die Option jedoch nicht ausgewählt, müssen Sie den Server erneut starten, damit die Änderungen wirksam werden. Die Option Laufzeitumgebung bei Änderungen in der SSL-Konfiguration dynamisch aktualisieren ist in der Anzeige "Verwaltung von SSL-Zertifikaten und -Schüsseln" der Administrationskonsole verfügbar. Für den Zugriff auf diese Anzeige klicken Sie auf Sicherheit > Verwaltung von SSL-Zertifikaten und Schlüsseln.

  • Installieren Sie FMID JCPT3A1 der Sicherheitsstufe 3 für das Betriebssystem z/OS.

    FMID JCPT3A1 der Sicherheitsstufe 3 ist die Implementierung der nach FIPS 140-2 genehmigten Verschlüsselungsprovider für das Betriebssystem z/OS.


Symbol, das den Typ des Artikels anzeigt. Taskartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tsec_fips
Dateiname:tsec_fips.html