Secure Sockets Layer (SSL) サポートの使用

SSL を使用するには、クライアント (IMS™ TM リソース・アダプター) とサーバー (IMS Connect) の両方を構成する必要があります。
以下の表では、IMS TM リソース・アダプター、IMS Connector for Java™、 および IMS Connect for SSL を構成する際に実行すべきステップの概要を説明します。
SSL クライアント (IMS Connector for Java) SSL サーバー (IMS Connect)
  1. クライアント認証が必要かどうかを決定します。 クライアント認証が不要な場合は、ステップ 5 にスキップします。
注: IMS Connect への無許可アクセスから保護するために、クライアント認証を使用することを 強くお勧めします。
2. クライアント認証が必要な場合は、署名付き証明書および秘密鍵を取得します。  
3. クライアント認証が必要な場合は、鍵ストアを作成し、クライアントの秘密鍵および証明書を挿入します。 詳しくは、以下の説明を参照してください。  
  4. クライアント認証が必要な場合は、クライアントの公開鍵証明書を鍵リングに挿入します。 詳しくは、「IMS Connect 手引きおよび解説書」(SC88-8911) を参照してください。
5. トラストストア (別のオプションの鍵ストア) を作成し、サーバーの公開鍵証明書を挿入します。 あるいは、トラステッド証明書と非トラステッド証明書が同じ鍵ストアに保管されている場合は、サーバーの公開鍵証明書をクライアントの鍵ストアに挿入します。  
  6. 使用する IMS Connect SSL ポートを決定します。 適切な値を使用して IMS Connect および SSL 構成メンバーをセットアップしてください。 構成メンバーのセットアップについて詳しくは、「IMS Connect 手引きおよび解説書」(SC88-8911) を参照してください。
7. ステップ 6 のポート番号も含め、適切な SSL パラメーターで接続ファクトリーをセットアップします。 詳しくは、下記の説明を参照してください。  
8 アプリケーションを SSL 接続ファクトリーにバインドします。  

クライアントの鍵ストアまたはトラストストアの作成

クライアントとサーバーが相互に認証するためには、 クライアント側とサーバー側の両方で、JKS 鍵ストアまたは RACF® 鍵リングに 有効な X.509 証明書を指定する必要があります。 サーバーによるクライアント認証が不要な場合には、クライアント証明書を 作成してそれをサーバーの鍵ストアまたは鍵リングに追加する必要はありません。 鍵ストアを管理するためにいくつかのツールを使用できます。 クライアント側とサーバー側の両方に JKS 鍵ストアを設定するには、以下のステップを実行する必要があります。
  • クライアントである IMS Connector for Java を セットアップするには、証明書を作成し、認証局 (例えば、VeriSign など) の 署名を付けるか、または OpenSSL などのソフトウェアを使用して独自の認証局 (CA) を 作成し、自分の証明書に署名 (自己署名) します。
  • 鍵ストアを作成するには、Ikeyman や Keytool などの鍵管理ツールを使用します。 鍵ストアを作成したら、クライアント証明書 (使用可能な場合) を鍵ストアにインポートします。
  • トラストストアを作成するには、別の鍵ストアを作成し、サーバーの (IMS Connect の) 証明書をインポートします。 : 鍵ストアを 1 つだけ作成する場合は、クライアントの証明書を保管するのに使用したものと同じ鍵ストアに サーバーの証明書をインポートします。 鍵ストアまたはトラストストアとして使用する RACF 鍵リングを 作成する場合のガイダンスについては、RACF の資料を 参照してください。

SSL 構成

Java クライアント・ アプリケーションと IMS Connect の間のセキュア SSL 接続は、Java クライアント・ アプリケーションが使用する接続ファクトリーで、その SSL プロパティーに適切な 値を指定することによって作成されます。 SSL プロパティー値の説明については、『接続プロパティー』を参照してください。

例えば、IBM の WebSphere® および Rational® 製品を 使用する場合、SSL プロパティーのセットアップには複数の方法があります。

: 通知メッセージおよび警告については、WebSphere Application Server によって生成された trace.log ファイルを参照してください。 IMS Connector for Java の ロギングおよびトレースについて詳しくは、『IMS TM リソース・アダプターを使用したロギングおよびトレース』を参照してください。

実行時に、Java クライアント・ アプリケーションが IMS との 対話を実行すると、その対話は機密保護機能のある (SSL) 接続上で、SSL クライアントである IMS Connector for Java と SSL サーバーである IMS Connect の間を流れます。 クライアントとサーバー間の SSL 接続を開始するために、SSL ハンドシェーク処理が行われます。Java クライアント・ アプリケーションに対しては透過的なこの SSL ハンドシェークは、次のように起こります。
  • SSL クライアントである IMS Connector for Java は、 クライアントに hello を送信して接続を開始します。 サーバーである IMS Connect は、サーバーの hello と、公開鍵を含む証明書で応答します。
  • この証明書がサーバーによって正常に認証されると、両方の側で セッション鍵が確立され、接続で使用される暗号化のタイプを決定する 暗号仕様が折衝されます。 暗号は STRONG、WEAK、または ENULL です。その後、SSL ハンドシェークが完了します。
  • サーバーがクライアント認証を要求する場合は、クライアントは証明書から 得られるサーバーの公開鍵を使用してサーバーの証明書を認証します。 この認証が正常に行われると、クライアント証明書がクライアントの鍵ストアから送られます。 この証明書がサーバーによって正常に認証されると、両方の側で セッション鍵が確立され、接続で使用される暗号化のタイプを決定する 暗号仕様が折衝されます。 その後、SSL ハンドシェークが完了します。
  • これで、クライアントおよびサーバーは暗号化されたデータを送受信する準備ができます。
(SSL ハンドシェーク処理のオーバーヘッドのため、SSL 接続を使用する場合に 強く推奨されているとおり、) アプリケーションを管理環境で実行する際は、IMS TM リソース・アダプターは 永続的ソケット接続のみを使用して IMS Connect と通信を行うことを覚えておくことが重要です。 実際、IMS TM リソース・アダプター は 常に永続的ソケット接続を使用します。しかし非管理環境では、このような 永続的接続は別のアプリケーションで再使用できるようになるのでは なく、使用後は常にアプリケーションによって切断されます。WebSphere Application Server の Connection Manager を使用する場合は、その他のクライアント・ アプリケーションが接続を連続して再利用することができます。 接続マネージャーは、必要であれば接続を作成し、それらの接続を必要に応じてアプリケーションに提供します。 接続を使用したアプリケーションが終了したとき、接続マネージャーはその接続をフリー・プールに戻し、 このタイプの接続を必要とする、その他のアプリケーションで再利用可能にします。 しかし、クライアント認証およびサーバー認証は、ハンドシェーク中に各ソケットごとに 1 回ずつ発生します。 これは、そのソケットが最初に作成され、SSL ソケットとして初期化されるときに実行されます。 ソケットが再利用される場合、SSL クライアントである IMS TM リソース・アダプターと、 サーバーである IMS Connect は変更されません。 したがって、ソケットが再利用されたときは、(再びハンドシェーク処理を介して) クライアントとサーバーを再度認証する理由はありません。 これは、ソケットが再利用されるたびに、ソケットを識別するクライアント ID が同じままで残るという事実と矛盾しません。

SSLEncryption 値が ENULL に設定されると、 Strong または Weak 暗号化を使用した SSL 接続よりもパフォーマンスが高速になります。改善レベルはハードウェア暗号化が使用されているか、またはソフトウェア暗号化が使用されているかなど、いくつかの要因に依存します。ハードウェア暗号化が使用されている場合は、ハードウェア暗号化の方がソフトウェア暗号化よりも高速であるため改善量はより少なくなります。


フィードバック