<概要>
この文書では、WAS V6.1から追加されたLTPA鍵管理の新機能と、それに伴う注意点を解説します。
<内容/目次>
この文書は、WebSphere の Technical Exchange Webcasts にて紹介された 「LTPA key management in v6.1」 の内容を紹介するものです。
WAS V6.1では、LTPA暗号化鍵のライフサイクルを管理するための新機能が追加されました。
WAS V6.0以下では、1セットのLTPA鍵しか保管できないという制限があり、鍵を変更するときには、一度古い鍵を削除した後に新しい鍵を使う必要がありました。そのため、鍵を変更したいお客様にとっては、サービスの停止につながっていました。
WAS V6.1では複数のLTPA鍵バージョンを管理する事ができるようになりました。新しい鍵は、新しいトークンを暗号化・復号化するために使用されます。古い鍵は、まだ期限が切れていない古いトークンのために使用されます。
WAS V6.1では、まず新しい鍵を使用してLTPAトークンの復号化を試みます。新しい鍵で失敗した場合には、以前の鍵を使用して複合化を試みます。古い鍵にて作成されたLTPAトークンは、期限が消れる(タイムアウトになる)時点でなくなります。
WAS V6.1では、プロファイルが作成されたときに、最初のLTPA鍵セットが作成されます。
WAS V6.1では、LTPA暗号化鍵は、security.xmlには保管されず、鍵ストアの中で管理されるようになりました。このことにより、同時に複数バージョンのLTPA鍵を使用する事ができるようになっています。
LTPA鍵を保管する鍵ストアは、ltpa.jceksというファイル名で、各プロファイルのセル・レベルで保管されています。
<install_root>/profiles/<profile>/config/cells/<cell_name>/ltpa.jceks
デフォルト設定では、LTPA鍵は90日毎に自動で再生成されます。これは、同じ暗号化鍵を永遠に使い続けることのセキュリティー上のリスクを軽減するために追加された機能です。
LTPA鍵の自動再生成を無効化することもできます。最後の参照リンクをご参照ください。
コンソールから、「SSL証明書および鍵管理」 > 「鍵セット」 を選択します。
鍵セットは、特定の鍵タイプを管理します。鍵タイプは、対称鍵(秘密鍵) または 非対称の鍵ペア(公開鍵、秘密鍵)のどちらにもなれます。
鍵セットは、長さやアルゴリズムといった鍵の属性を決定することはありません。
鍵セットが定義されると、通常は、鍵セットグループの中に置かれます。
コンソールから、「SSL証明書および鍵管理」 > 「鍵セット・グループ」 を選択します。
鍵セット・グループでは、関連のある鍵セットをまとめ、同時に更新することができます。
スケジュールされた更新機能を使う場合、スケジューラーは、「次の開始日」をセットします。この「次の開始日」は管理コンソールから確認することができます。次の開始日に達すると、NDエディションではDeployment Managerで、スタンドアロンではBaseアプリケーション・サーバーで鍵の自動更新が行われます。
次の開始日にプロセスが起動していない場合、次にプロセスが開始した時点で鍵の生成が発生します。
IKEYMANで ltpa.jceks を開くことにより、LTPA鍵の名前を参照することができます。IKEYMANは、<profile_root>/bin または <install_root>/bin ディレクトリーにあります。また、デフォルトのパスワードは WebAS となっています。
最初に作成された鍵セットは、名前の最後に _1と付いています。2番目に作成された鍵セットには _2と付いています。
LTPA鍵では、IKEYMANの表示と編集のオプションは使えません。また、IKEYMANでは、実際の鍵の属性を参照することはできません。
鍵の属性を表示するには、テキストファイルにエクスポートする必要があります。管理コンソールから、「セキュリティー」 > 「管理、アプリケーションおよびインフラストラクチャーの保護」 > 「 認証メカニズムおよび有効期限」を選択します。パスワードとフルパス、名前(ltpa.txtなど)を指定し、エクスポートします。
コマンドラインのJavaユーティリティーである Keytool からエクスポートすることもできます。keytool は、<install_root>/java/bin ディレクテトリーにあります。
新しい鍵を生成、またはインポートした場合は、保管をクリックし、マスター構成に正しく保管してください。
LTPA認証では時間に依存したトークンを使用しているため、保護されたドメインに参加しているサーバーが、時刻やタイムゾーンについて正しく同期が取れいているか確認する必要があります。時刻、日付、タイムゾーンの更新は、アプリケーション・サーバーとは個別に実施されます。サーバー間で時刻のずれが大きくなった場合、LTPAトークンが予定より早く期限切れとなり、認証や妥当性検査に失敗することがあります。
鍵を生成する前に、セル、ノード、アプリケーション・サーバーを含む、全てのWASプロセスが稼動中であることを確認します。
鍵生成時にサーバーが停止しており、後から起動した場合には、これらのサーバーは古い鍵を持っている可能性があります。まず新しい鍵セットをこれらのサーバーにコピーし、その後サーバーを起動するようにします。
LTPA鍵の自動生成は、シングル・サインオン(SSO)環境を壊す可能性があります。
LTPA SSOが稼動するには、LTPA鍵がWebSphereのセル間で一致する必要があります。
1つのセルで鍵が自動生成されると、他のセルとの同期が取れなくなることがあります。
SSOに参加する場合は、鍵の自動生成を無効化する必要があります。鍵を置き換える場合は、手動で新しい鍵を作成し、他の全てのセルにコピーする必要があります。
PK51966 : LTPA鍵が複数回作成され、Deployment ManagerとNode間が不整合となる問題の修正。6.1.0.15に含まれます。
PK42118 : 自動生成をオフにしても、WASが新しい鍵を生成してしまう問題の修正。6.1.0.9以上に含まれます。
PK58040 : LTPA鍵が自動生成された後に、LTPAトークン・バリデーションのエラーが出る問題の修正。6.1.0.15に含まれます。
PK48880 : LTPA鍵の自動生成にて、「次の開始日」が正しくセットされない問題の修正。6.1.0.13以降に含まれます。
PK34717 : スクリプトを使った鍵のインポートが正しくできない問題の修正。6.1.0.9以降に含まれます。
LTPAを使用する場合は、必ず6.1.0.9以降をご利用ください。LTPA鍵の自動生成を使用する場合は、Fix Pack 15以降を適用してください。Fix Pack 15未満の環境では、LTPA鍵の自動生成を無効化することをお勧めいたします。
WAS V6.1で推奨される最新のFixPack情報および今後の提供予定時期については、こちらからご確認ください。
ログにLTPA鍵のexceptionが記録されている場合、または、管理コンソールやkeytoolにて鍵生成時にエラーが出た場合は、keytoolを使用してltps.jceksの内容を表示し、LTPA鍵ファイルが壊れていないかどうか確認してください。
<install_root>/java/binディレクトリーにあるkeytoolを起動します。
keytool -list storetype jceks -keystore ltpa.jceks -storepass WebAS
出力例
■ 壊れたファイルのリカバリー方法
1. 古いltpa.jceksのバックアップを取得します。
2. ltpa.jceksを削除します。
3. Deployment Managerを再起動します。このときに、新しいltpa.jceksが再作成されます。
4. NodeAgentを停止し、syncNode.shを実行し、Deployment ManagerとNode Agentの同期を取ります。
5. 管理コンソールを使用するには、Webブラウザーを終了し、再度ログインしてください。
LTPA鍵の管理方法については、以下のInfoCenterへのLinkをご参照ください。
■ LTPA鍵の生成
■ 複数の WebSphere Application Server セルからの LTPA 鍵の管理
■ 鍵バージョンの活動化
■ LTPA鍵のエクスポート
■ LTPA鍵の自動生成の使用不可化
日本で公開中のサポート情報については、以下のLinkをご参照ください。
■ LTPA鍵の再生成によりSSOが失敗する問題 (WAS-07-007)
---
更新履歴
2008/03/05 公開
2008/03/07 壊れたファイルのリカバリー方法の手順3を修正しました。
2008/03/11 FixPack 15の公開に伴い、推奨をFix Pack15に変更しました。
オリジナルの英文およびWebcastのリプレイ(英語)はこちらから入手することができます。
| WAS V6.1でのLTPA鍵に関する新機能 |
WAS V6.1では、LTPA暗号化鍵のライフサイクルを管理するための新機能が追加されました。
WAS V6.0以下では、1セットのLTPA鍵しか保管できないという制限があり、鍵を変更するときには、一度古い鍵を削除した後に新しい鍵を使う必要がありました。そのため、鍵を変更したいお客様にとっては、サービスの停止につながっていました。
WAS V6.1では複数のLTPA鍵バージョンを管理する事ができるようになりました。新しい鍵は、新しいトークンを暗号化・復号化するために使用されます。古い鍵は、まだ期限が切れていない古いトークンのために使用されます。
WAS V6.1では、まず新しい鍵を使用してLTPAトークンの復号化を試みます。新しい鍵で失敗した場合には、以前の鍵を使用して複合化を試みます。古い鍵にて作成されたLTPAトークンは、期限が消れる(タイムアウトになる)時点でなくなります。
WAS V6.1では、プロファイルが作成されたときに、最初のLTPA鍵セットが作成されます。
WAS V6.1では、LTPA暗号化鍵は、security.xmlには保管されず、鍵ストアの中で管理されるようになりました。このことにより、同時に複数バージョンのLTPA鍵を使用する事ができるようになっています。
LTPA鍵を保管する鍵ストアは、ltpa.jceksというファイル名で、各プロファイルのセル・レベルで保管されています。
<install_root>/profiles/<profile>/config/cells/<cell_name>/ltpa.jceks
デフォルト設定では、LTPA鍵は90日毎に自動で再生成されます。これは、同じ暗号化鍵を永遠に使い続けることのセキュリティー上のリスクを軽減するために追加された機能です。
LTPA鍵の自動再生成を無効化することもできます。最後の参照リンクをご参照ください。
| 鍵セットとは |
コンソールから、「SSL証明書および鍵管理」 > 「鍵セット」 を選択します。
鍵セットは、特定の鍵タイプを管理します。鍵タイプは、対称鍵(秘密鍵) または 非対称の鍵ペア(公開鍵、秘密鍵)のどちらにもなれます。
鍵セットは、長さやアルゴリズムといった鍵の属性を決定することはありません。
鍵セットが定義されると、通常は、鍵セットグループの中に置かれます。
| 鍵セット・グループとは |
コンソールから、「SSL証明書および鍵管理」 > 「鍵セット・グループ」 を選択します。
鍵セット・グループでは、関連のある鍵セットをまとめ、同時に更新することができます。
スケジュールされた更新機能を使う場合、スケジューラーは、「次の開始日」をセットします。この「次の開始日」は管理コンソールから確認することができます。次の開始日に達すると、NDエディションではDeployment Managerで、スタンドアロンではBaseアプリケーション・サーバーで鍵の自動更新が行われます。
次の開始日にプロセスが起動していない場合、次にプロセスが開始した時点で鍵の生成が発生します。
| LTPA鍵の参照方法 |
IKEYMANで ltpa.jceks を開くことにより、LTPA鍵の名前を参照することができます。IKEYMANは、<profile_root>/bin または <install_root>/bin ディレクトリーにあります。また、デフォルトのパスワードは WebAS となっています。
最初に作成された鍵セットは、名前の最後に _1と付いています。2番目に作成された鍵セットには _2と付いています。
LTPA鍵では、IKEYMANの表示と編集のオプションは使えません。また、IKEYMANでは、実際の鍵の属性を参照することはできません。
鍵の属性を表示するには、テキストファイルにエクスポートする必要があります。管理コンソールから、「セキュリティー」 > 「管理、アプリケーションおよびインフラストラクチャーの保護」 > 「 認証メカニズムおよび有効期限」を選択します。パスワードとフルパス、名前(ltpa.txtなど)を指定し、エクスポートします。
コマンドラインのJavaユーティリティーである Keytool からエクスポートすることもできます。keytool は、<install_root>/java/bin ディレクテトリーにあります。
| 注意点 |
新しい鍵を生成、またはインポートした場合は、保管をクリックし、マスター構成に正しく保管してください。
LTPA認証では時間に依存したトークンを使用しているため、保護されたドメインに参加しているサーバーが、時刻やタイムゾーンについて正しく同期が取れいているか確認する必要があります。時刻、日付、タイムゾーンの更新は、アプリケーション・サーバーとは個別に実施されます。サーバー間で時刻のずれが大きくなった場合、LTPAトークンが予定より早く期限切れとなり、認証や妥当性検査に失敗することがあります。
鍵を生成する前に、セル、ノード、アプリケーション・サーバーを含む、全てのWASプロセスが稼動中であることを確認します。
鍵生成時にサーバーが停止しており、後から起動した場合には、これらのサーバーは古い鍵を持っている可能性があります。まず新しい鍵セットをこれらのサーバーにコピーし、その後サーバーを起動するようにします。
| 重要情報 |
LTPA鍵の自動生成は、シングル・サインオン(SSO)環境を壊す可能性があります。
LTPA SSOが稼動するには、LTPA鍵がWebSphereのセル間で一致する必要があります。
1つのセルで鍵が自動生成されると、他のセルとの同期が取れなくなることがあります。
SSOに参加する場合は、鍵の自動生成を無効化する必要があります。鍵を置き換える場合は、手動で新しい鍵を作成し、他の全てのセルにコピーする必要があります。
| 重要Fix |
PK51966 : LTPA鍵が複数回作成され、Deployment ManagerとNode間が不整合となる問題の修正。6.1.0.15に含まれます。
PK42118 : 自動生成をオフにしても、WASが新しい鍵を生成してしまう問題の修正。6.1.0.9以上に含まれます。
PK58040 : LTPA鍵が自動生成された後に、LTPAトークン・バリデーションのエラーが出る問題の修正。6.1.0.15に含まれます。
PK48880 : LTPA鍵の自動生成にて、「次の開始日」が正しくセットされない問題の修正。6.1.0.13以降に含まれます。
PK34717 : スクリプトを使った鍵のインポートが正しくできない問題の修正。6.1.0.9以降に含まれます。
LTPAを使用する場合は、必ず6.1.0.9以降をご利用ください。LTPA鍵の自動生成を使用する場合は、Fix Pack 15以降を適用してください。Fix Pack 15未満の環境では、LTPA鍵の自動生成を無効化することをお勧めいたします。
WAS V6.1で推奨される最新のFixPack情報および今後の提供予定時期については、こちらからご確認ください。
| 壊れた鍵の確認および回復方法 |
ログにLTPA鍵のexceptionが記録されている場合、または、管理コンソールやkeytoolにて鍵生成時にエラーが出た場合は、keytoolを使用してltps.jceksの内容を表示し、LTPA鍵ファイルが壊れていないかどうか確認してください。
<install_root>/java/binディレクトリーにあるkeytoolを起動します。
keytool -list storetype jceks -keystore ltpa.jceks -storepass WebAS
出力例
| Keystore type: jceks Keystore provider: IBMJCE Your keystore contains 6 entries ltpasecret_2, Aug 20, 2007, keyEntry, ltpasecret_1, Jun 5, 2007, keyEntry, ltpakeypair_2_private, Aug 20, 2007, keyEntry, |
■ 壊れたファイルのリカバリー方法
1. 古いltpa.jceksのバックアップを取得します。
2. ltpa.jceksを削除します。
3. Deployment Managerを再起動します。このときに、新しいltpa.jceksが再作成されます。
4. NodeAgentを停止し、syncNode.shを実行し、Deployment ManagerとNode Agentの同期を取ります。
5. 管理コンソールを使用するには、Webブラウザーを終了し、再度ログインしてください。
| 参照 |
LTPA鍵の管理方法については、以下のInfoCenterへのLinkをご参照ください。
■ LTPA鍵の生成
■ 複数の WebSphere Application Server セルからの LTPA 鍵の管理
■ 鍵バージョンの活動化
■ LTPA鍵のエクスポート
■ LTPA鍵の自動生成の使用不可化
日本で公開中のサポート情報については、以下のLinkをご参照ください。
■ LTPA鍵の再生成によりSSOが失敗する問題 (WAS-07-007)
---
更新履歴
2008/03/05 公開
2008/03/07 壊れたファイルのリカバリー方法の手順3を修正しました。
2008/03/11 FixPack 15の公開に伴い、推奨をFix Pack15に変更しました。
<添付資料>
<文書情報>
製品/カテゴリー名
WebSphere Application Server
有効期限
2014年03月05日
発表日
資料番号
