本文へジャンプ

【要対応】 IBM JCE 1.2.1 証明書期限切れ問題 WASに関するFAQ

資料作成日 2006年04月26日
資料更新日 2006年05月18日

<内容/目次>

【要対応】 IBM JCE 1.2.1 証明書期限切れ問題 WASに関するFAQ

IBM JCE 1.2.1証明書の有効期限切れ問題に関して、よくあるご質問をまとめました。

参照

WebSphere Application Serverに関するFAQ

1.JCE一般

1-1 JCEとはなんでしょうか?

    JCE(Java Cryptography Extension:Java 暗号化拡張機能)とは、Javaで暗号化や署名などを行うためのライブラリです。暗号化、鍵生成と鍵協定、およびメッセージ認証コード (MAC) アルゴリズム用のフレームワークおよび実装を提供します。

    JCEは、Java2 SDK Standard Edtion(J2SE) 1.2/1.3ではオプションパッケージとして提供されていましたが、J2SE 1.4以降は標準APIとして統合されています。

1-2 JCEの署名の有効期限切れ問題とはなんでしょうか?

    JCEのフレームワークは、さまざまなベンダーから提供されるセキュリティ実装を選択して使用できるようになっています。初期のJCE仕様では、この実装を提供するJARファイルには有効な署名がされていることが必須であり、JCEライブラリは使用されるたびに署名の検証を行わなければならないとされていました。しかし署名には通常有効期限があるため、(この仕様を厳密に実装した場合)有効期限切れ後にはJCEのライブラリを使用した処理がすべて失敗してしまうこととなります。

    これがJCE署名の有効期限切れの問題です。この当時のJCE仕様に従った実装は、署名の有効期限が切れた後は使用できなくなります。

    Sun Microsystemsから提供されているJCE 1.2.1実装では、2005年7月28日6時43分(日本標準時)に証明書の有効期限が切れます。また、IBMから提供されている同レベルのJCE実装は2006年5月19日6時59分(日本標準時) に証明書の有効期限が切れます。

    その後改定されたJCE仕様では、JARファイルに対する署名は、有効期限が切れていも(他の検証に成功すれば)かまわないというように変更になっています。

1-3 どういう場合に、この証明書問題が発生するのですか?

    以下の全ての条件を満たした場合に発生します。
    1. IBM JCE を使用している
    2. JDK 1.2 または 1.3を使用している
    3. IBM JCEに含まれるibmjcefw.jarのビルド日が040219よりも古いものである (040219は問題ありません)
      ibmjcefw.jarのビルド日の確認方法はこちらをご参照ください。

2.WASでのJCE証明書期限切れ問題

2-1 対象となるWASのバージョンを教えてください。

    以下のバージョンが対象となります。(注1)
    • WebSphere Application Server 4.0
      • 全てのバージョン
    • WebSphere Application Server 5.0 Base / Network Deployment
      • Version 5.0
      • Version 5.0.1
      • Version 5.0.2~5.0.2.4
    • WebSphere Application Server 5.0 Express
      • 5.0.xの全てのバージョン

    IBM JCEはJ2SE 1.2以降でしか使用できないので、JDK 1.1を使用しているWAS 2.0/3.0では発生しません。

    WAS 3.5では、標準ではJCE実装は製品に添付されておりません。ただし、別途JCE実装を入手の上、WAS 3.5に組み込んで使用することは可能です。そのような構成をとっている場合には、対処が必要になるケースがあります。

    WAS 5.1/6.0は、J2SE 1.4を使用しています。J2SE 1.4に組み込まれているJCE実装は、JARファイルの署名の検証を行うときに、日付の有効期限をチェックしない仕様になっているため、この問題は発生しません。

    (注1)
    iSeries上のWASをお使いのお客様は、こちらの文書をご参照ください。
    JCE 1.2.1の証明書の期限切れ問題とOS/400について (IBM Systems サポート)

    z/OS上のWASをお使いのお客様は、こちらの文書をご参照ください。
    IBM JCE1.2.1有効期限切れに伴うWAS for z/OSへの影響について (IBMソフトウェア・サポート) 

2-2 対象となるバージョンを確認する方法を教えてください。

    WAS 4.0 をお使いのお客様は全バージョンで該当します。

    WAS 5.0 Express をお使いのお客様は全バージョンで該当します。

    WAS 5.0 Base / Network Deployment をお使いのお客様は、<WAS_ROOT>/bin/versionInfo.sh(またはversionInfo.bat)コマンドでFixPackのレベルを確認することができます。
      インストール済み製品
      ---------------------------

      名前 IBM WebSphere Application Server
      バージョン 5.0.2.4
      ID BASE
      ビルド・レベル cf40408.03
      ビルド日 02/27/2004

      ※最後の0は表示されない場合があります。「5.0.2」のように表示された場合は「5.0.2.0」になります。

2-3 どのような現象が発生するのですか?

    JCEのライブラリを使用した機能の全てでエラーが発生します。

    具体的には、「java.lang.ExceptionInInitializerError」や「java.lang.SecurityException: Cannot set up certs for trusted CAs」のような文字列を含んだエラーが発生し、WASが起動しなくなります。また、稼動中のWASについても、同様のエラーメッセージを出力して停止する場合があります。

2-4 該当する製品でのエラーの発生条件を教えてください。

    JCEのライブラリが使用された場合です。

    WASでJCEライブラリが使用される例としては、以下のようなものがありますが、これに限定されません。これ以外にもJCEの機能を使用している機能は多数あります。
    • WASでグローバルセキュリティを有効にしている場合
    • WASのHTTPトランスポートでSSLの使用を有効にしている場合
    • WASにデータベースなどのリソースアクセスのためのパスワードを管理している場合
    • アプリケーションで暗号化ライブラリ(javax.crypto.*やjavax.security.*以下のクラス)を使用している場合

2-5 該当するバージョンでの対処方法を教えてください。

    こちらを参照に、該当のFixを適用してください。
    http://www.ibm.com/jp/software/support/techflash/4925704300058D7C.html
    • WAS 4.0

      WAS_Security_JCE_cummulativeFix PQ91005を適用します。
    • WAS 5.0.0 / 5.0.1 Express, Base, Network Deployment

      方法1. 5.0.2.5以上を適用します。最新のFix Listはこちらをご参照ください。(注4)
      方法2. JDK Interim Fix PK23895を適用します。(PQ85933を適用済みの場合は、一旦削除してからPK23895を適用してください。 )
      方法3. PK23458を適用します。 (注4) (注5)
    • WAS 5.0.2.0 - 5.0.2.4 Base, Network Deployment

      方法1. 5.0.2.5以上を適用します。最新のFix Listはこちらをご参照ください。
      方法2. WAS用JDK131SR8、またはSR9以降を適用します。(注2,3) 最新のWAS用JDK累積修正はこちらをご参照ください。
      方法3. PK23458を適用します。(注5)
    • WAS 5.0.2.0 - 5.0.2.17 Express

      方法1. WAS用JDK131SR8、またはSR9以降を適用します。(注2,3) 最新のWAS用JDK累積修正はこちらをご参照ください。
      方法2. PK23458を適用します。(注4) (注5)


      (注2)
      WAS用JDK131SR8とは以下のレベルです。
        • IBM JDK1.3.1 SR8 (AIX/Linux/Win)
        • Sun JDK1.3.1-12
        • HP-UX JDK1.3.1-13
      WAS用JDK131SR9とは以下のレベルです。
        • IBM JDK1.3.1 SR9 (AIX/Linux/Win)
        • Sun JDK1.3.1-16
        • HP-UX JDK1.3.1-17
      (注3)
      Sun Alert ID 102171対応の以下のJDK更新パッケージにはIBM JCEの更新が含まれていませんのでご注意ください。
        • IBM JDK1.3.1 SR9-1 (PK19792) (AIX/Linux/Win)
        • Sun JDK1.3.1-17 (PK20739) 
         
      (注4)
      Expressでは、前提となるprereq.jce.componentファイルがないために、iFix PK23458を適用できません。そのため、5.0.0-5.0.2.16の全てのレベルで対応が必要となります。
      ExpressへのPK23458適用方法についてはこちらをご参照ください。

      (注5)
      PK23458は、PQ85933に代わる新しいFixで、PQ85933と同じくJCE用の単体のFixとなります。PQ85933を既に適用済みのお客様は、新たにこのFixを適用する必要はございません。
         
2-6 対象となるバージョンであれば、絶対にFixの適用が必要ですか?

    環境によってはJCEのライブラリが使用されておらず、実際に日付をずらしてテストをしてみると正常に動くケースもあります。しかしこのような場合でも、何らかの構成変更を行ったとたんに今まで使われなかった機能が使われるようになり、JCEの問題が発生するようになるというリスクがあります。

    そのため、該当するバージョンのWASを使用している場合には、Fixの適用をお願いします。


3.WASでのFixについて

3-1 Fixを適用することによりアプリケーションに影響がありますか?

    アプリケーションへの影響は特にありません。WAS 4.0用の『WAS_Security_JCE_cummulativeFix』や、WAS 5.0用のPK23458は、JCE問題を解決するための最小限のFixとなります。

3-2 英語版しかFixが提供されていないようですが、適用しても問題ないでしょうか?

    WAS 4.0/5.0では、提供されている全ての言語環境で共通の実行ファイル・ライブラリ等が導入されています。製品自体にOSの言語環境による違いはありません。そのため、Fixは全ての言語環境で適用することができます。

3-3 Fixの適用手順を教えてください。
    こちらの手順書をご参照ください。
    また、各Fix掲載サイトのInstallation InstructionsにあるReadmeもご参照ください。

3-4 Fixの適用後の確認方法を教えてください。

    Fixが正しく適用されていることを確認してください。必要に応じてアプリケーションのテストを実施ください。
    また、Fix適用の結果、ibmjcefw.jarのビルド日は040219以降になります。

3-5 Fix適用後、次の有効期限はいつになりますか?

    Fixの適用では、JCE証明書の有効期限をチェックしないようにロジックが変更になります。よって、有効期限が切れた証明書でも問題なく使用できることになり、期限切れの問題は発生しなくなります。

---
修正履歴
2006/04/26 公開
2006/05/08 WAS 5.0対応策修正
2006/05/13 Expressの対応方法に追記
2006/05/15 WAS Express 5.0.2.17公開に伴い、対象バージョンを追記
2006/05/17 3-3 Fix適用手順書へのLinkを追加
2006/05/18 2-5, 3-1 JCE用iFix PQ85933を、新しいiFix PK23458に修正しました。この修正に伴い、「PQ85933は5.0.2.5以上に含まれます。」という記述を削除しました。

<添付資料>

<文書情報>

  1. 製品/カテゴリー名

    WebSphere Application Server

  2. 有効期限

    2010年04月26日

  3. 発表日

  4. 資料番号