連邦情報処理標準 (FIPS) Java セキュア・ソケット拡張機能ファイルの構成

このトピックを使用して、連邦情報処理標準 (FIPS) Java™ セキュア・ソケット拡張機能ファイルを構成します。

このタスクについて

WebSphere® Application Server で使用される Java Secure Socket Extension (JSSE) プロバイダーは、IBMJSSE2 プロバイダーです。 このプロバイダーは、暗号化およびシグニチャー機能を Java Cryptography Extension (JCE) プロバイダーに委任します。したがって、IBMJSSE2 は暗号化を行わないため、連邦情報処理標準 (FIPS) の承認は必要ありません。 ただし、JCE プロバイダーには FIPS の承認が必要です。
WebSphere Application Server は、IBMJSSE2 が使用可能な、FIPS の承認済みの IBMJCEFIPS プロバイダーを提供します。 WebSphere Application Server バージョン 9.0 に付属している IBMJCEFIPS プロバイダーは、以下の SSL 暗号をサポートしています。
  • 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

サーバーの「SSL 証明書および鍵管理」パネルで「連邦情報処理標準 (FIPS) アルゴリズムを 使用」オプションを有効にすると、SSL に対して指定される contextProvider (IBMJSSE または IBMJSSE2S) に関わらず、ランタイムは常に IBMJSSE2 を 使用します。 また、FIPS は SSL プロトコルが TLS であることを必要とするため、SSL レパートリーで設定されている SSL プロトコルに関係なく、FIPS が使用可能になっている場合は、ランタイムは常に TLS を使用します。これにより、管理者は サーバーの「SSL 証明書および鍵管理」パネルで「連邦情報処理標準 (FIPS) アルゴリズムを使用」オプションを使用可能にするだけで SSL を使用するすべてのトランスポートを使用可能にできるので、バージョン 9.0 における FIPS 構成が単純化されます。

手順

  1. 「セキュリティー」>「SSL 証明書および鍵管理」>「FIPS の管理」とクリックします。
  2. 「FIPS 140-2 を使用可能にする」オプションを選択して、「適用」をクリックします。 このオプションにより、IBMJSSE2 と IBMJCEFIPS はアクティブなプロバイダーとなります。
  3. エンタープライズ Bean にアクセスする必要のある Java クライアントに対応するようにします。

    profile_root/properties/ssl.client.props ファイルにある com.ibm.security.useFIPS プロパティー値を false から true に変更します。

  4. profile_root/properties/ssl.client.props ファイルの com.ibm.ssl.protocol プロパティーが TLS に設定されていることを確認します。
  5. java.security ファイルにプロバイダーが含まれていることを確認します。 [AIX Solaris HP-UX Linux Windows][IBM i]

    java.security ファイルを編集して IBMJCE プロバイダーの前に IBMJCEFIPS プロバイダー (com.ibm.crypto.fips.provider.IBMJCEFIPS) を挿入し、プロバイダー・リストにある他のプロバイダーを再番号付けします。 IBMJCEFIPS プロバイダーは、java.security ファイルのプロバイダー・リスト内に存在している必要があります。

    [IBM i]java.security ファイルは、profile_root/properties ディレクトリーに配置されています。

    [AIX Solaris HP-UX Linux Windows][z/OS]java.security ファイルは、WASHOME/java/jre/lib/security ディレクトリーに配置されています。

    IBM® SDK java.security ファイルは、このステップの完了後は以下の例のようになります。 [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]Oracle Java SE Development Kit を使用している場合、java.security ファイルは、このステップの完了後は以下の例のようになります。
    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]

    java.security ファイルを編集して IBMJCEFIPS プロバイダーの行のコメントを外し、プロバイダー・リストの残りを再番号付けします。 IBMJCEFIPS プロバイダーは、java.security ファイルのプロバイダー・リスト内に存在している必要があります。 java.security ファイルは、WASHOME/java/jre/lib/security ディレクトリーに配置されています。 ファイルを編集するには、以下のステップを実行します。

    [z/OS]
    1. 書き込み許可のあるディレクトリーに java.security ファイルをコピーします。
    2. java.security ファイルを編集して、IBMJCE プロバイダーの行をコメント化し、IBMJCEFIPS プロバイダーの行のコメントを外し、ファイルを保存します。

      このステップを完了する前は、IBM Software Development Kit (SDK) の java.security ファイルは次の例のようになっています。

      #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. セル内の各 Java 仮想マシン (JVM) ごとに、 security.overridePropertiesFile および java.security.properties システム・プロパティーを構成します。 以下のプロパティーと値のペアを追加します。
      表 1. java.security ファイルの新規のロケーションを指定するカスタム・プロパティー.

      この表は、java.security ファイルの新規のロケーションを指定するカスタム・プロパティーを示します。

      プロパティー名
      security.overridePropertiesFile true
      java.security.properties java.security ファイルの新規のロケーションを指定します。
      デプロイメント・マネージャー、ノード・エージェントおよび他のアプリケーション・サーバーに対して、 前のシステム・プロパティーのセットを指定する必要があります。 デプロイメント・マネージャーでは、コントロールとサーバントの両方に対してこのシステム・プロパティーのセットを指定します。 ノード・エージェントでは、コントロールに対してこのシステム・プロパティーのセットを指定します。 すべてのアプリケーション・サーバーでは、付加属性、コントロールおよびサーバントに対して、このシステム・プロパティーのセットを指定します。 例えば、アプリケーション・サーバー上のコントロールに対してこれらのシステム・プロパティーを指定するには、以下のステップを実行します。
      1. 管理コンソールで、「サーバー」>「アプリケーション・サーバー」>「server_name」とクリックします。
      2. 「サーバー・インフラストラクチャー」の下で、「Java およびプロセス管理」>「プロセス定義」>「コントロール」とクリックします。
      3. 「追加プロパティー」の下で、「Java 仮想マシン」>「カスタム・プロパティー」とクリックします。
      4. 名前と値のペアからなる 2 つのセットの形でプロパティーを入力します。
      5. 保存」をクリックします。

次のタスク

これらのステップが完了したら、FIPS 承認済み JSSE または JCE プロバイダーは、より高度な暗号化機能を提供します。 ただし、FIPS 承認済みプロバイダーを使用する場合は、以下のようにします。
  • デフォルトでは、Microsoft Internet Explorer は、TLS 対応になっていない可能性があります。 TLS を使用可能にするには、Internet Explorer ブラウザーを開き、 「ツール」>「インターネット オプション」をクリックします。 「詳細設定」タブで、「TLS 1.0 を使用する」オプションを選択します。
    注: Netscape Version 4.7.x 以前のバージョンは、TLS をサポートしていない可能性があります。
  • 「SSL 証明書および鍵管理」パネルで「連邦情報処理標準 (FIPS) を使用する」オプションを選択すると、Lightweight Third-Party Authentication (LTPA) トークン・フォーマットは WebSphere Application Server の旧リリースと後方互換でなくなります。 ただし、 アプリケーション・サーバーの旧バージョンから LTPA 鍵をインポートすることができます。
  • 注: 現在の WebSphere 制約は、秘密鍵の鍵の長さが FIPS sp800-131a に準拠しているかどうかを評価されないということです。鍵ストア内に秘密鍵がある場合、 {WebSphere_install_dir}¥java¥jre¥bin ディレクトリー内の iKeyman を使用するか、他の鍵ストア・ツールを使用して、鍵の長さを検査してください。
[AIX Solaris HP-UX Linux Windows]重要: FIPS オプションを使用可能にした後、 WebSphere Application Server を停止しようとすると、次のエラーが発生することがあります。
ADMU3007E: Exception com.ibm.websphere.management.exception.ConnectorException
java.security ファイルにある次のエントリーは、既に除去またはコメント化している場合は、コメントを外してからサーバーを再始動してください。
security.provider.2=com.ibm.crypto.provider.IBMJCE
注: FIPS を使用可能にする場合は、SSL レパートリーで暗号トークン装置を構成することはできません。IBMJSSE2 は、 FIPS 用の暗号サービスを使用する場合は、IBMJCEFIPS を使用する必要があります。
以下の FIPS 140-2 は、暗号プロバイダーを FIPS オプションでサポートされる唯一のデバイスであると承認しました。
  • IBMJCEFIPS (証明書 376)
  • IBM Cryptography for C (ICC) (証明書 384)
関連する証明書は NIST Web サイト Cryptographic Module Validation Program FIPS 140-1 and FIPS 140-2 Pre-validation List にリストされています。
FIPS プロバイダーの構成を解除するには、前のステップで行った変更を元に戻します。変更を元に戻した後、sas.client.propssoap.client.props および java.security の各ファイルに以下のような変更が行われていることを確認します。
  • ssl.client.props ファイルで、com.ibm.security.useFIPS 値を false に変更する必要があります。
  • [AIX Solaris HP-UX Linux Windows][z/OS]java.security ファイルで、FIPS プロバイダーを 非 FIPS プロバイダーに変更する必要があります。
    IBM SDK の java.security ファイルを使用している場合は、以下の例に示されているように、最初のプロバイダーを非 FIPS プロバイダーに変更する必要があります。
    #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
    Sun JDK の java.security ファイルを使用している場合は、以下の例に示されているように、3 つ目のプロバイダーを非 FIPS プロバイダーに変更する必要があります。
    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]java.security ファイルを編集して、FIPS プロバイダーを除去し、以下の例のようにプロバイダーを再番号付けします。
    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]FIPS プロバイダーを使用すると、IBM Software Development Kit (SDK) が、証明書の問題に関するエラー・メッセージを 発行する場合があります。このエラー・メッセージは、いろいろな理由が原因で生じる可能性が ありますが、セキュリティー構成を見直し、次のいずれかのアクションを 検討してください。
  • 暗号スイート・レベルが現在、「強」であれば、それを「中」に 下げます。
    トラブルの回避 (Avoid trouble) トラブルの回避 (Avoid trouble): 暗号スイート・レベルは、環境のレベル (ノード・レベル、 サーバー・レベルなど) ごとに、異なるレベルに変更できます。変更する場合は、変更が必要な環境のレベルに 限定してください。gotcha

    暗号スイートを変更する場合は、保護品質設定の資料内の 暗号スイート・グループの情報を参照してください。暗号スイート・レベルを「中」に変更したら、変更を 保存し、同期化します。「SSL 構成変更時にランタイムを動的に更新」オプションが選択されている場合、 サーバーを再始動する必要はありません。しかし、このオプションが選択されていない場合、 変更を有効にするには、サーバーを再始動する必要があります。「SSL 構成変更時にランタイムを動的に更新」オプションは、管理コンソールの 「SSL 証明書と鍵の管理」パネルで利用できます。このパネルにアクセスするには、「セキュリティー」 > 「SSL 証明書と鍵の管理」とクリックします。

  • z/OS® オペレーティング・システム用 Security Level 3 FMID JCPT3A1 をインストールします。

    Security Level 3 FMID JCPT3A1 は、FIPS 140-2 承認暗号プロバイダーの z/OS オペレーティング・システムによる実装です。


トピックのタイプを示すアイコン タスク・トピック



タイム・スタンプ・アイコン 最終更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tsec_fips
ファイル名:tsec_fips.html