Tuxedo CORBA アプリケーションのセキュリティ機能

     前  次    新しいウィンドウで目次を開く     
ここから内容の開始

SSL プロトコルのコンフィグレーション

ここでは、以下の内容について説明します。

注意 : Oracle Tuxedo CORBA Java クライアントと Oracle Tuxedo CORBA Java クライアント ORB は Tuxedo 8.1 で非推奨になり、今後はサポートされなくなりました。すべての Oracle Tuxedo CORBA Java クライアントおよび Oracle Tuxedo CORBA Java クライアント ORB のテキスト リファレンスとコード サンプルは、サード パーティ製の Java ORB ライブラリを実装または実行する際の参考や、プログラマの参照用としてのみ使用してください。
注意 : サード パーティの CORBA Java ORB のテクニカル サポートは、各ベンダによって提供されます。Oracle Tuxedo では、サード パーティの CORBA Java ORB に関する技術的なサポートやマニュアルは提供していません。

 


SSL プロトコルのパラメータの設定

IIOP リスナ/ハンドラまたは CORBA C++ オブジェクト リクエスト ブローカ (ORB) で SSL プロトコルを使用するには、以下の作業が必要です。

以下の節では、ISL コマンドや CORBA C++ ORB のオプションを使用して SSL パラメータを設定する方法について説明します。

 


SSL ネットワーク接続用のポートの定義

SSL ネットワーク接続用のポートを定義するには、以下の手順に従います。

注意 : 共同クライアント/サーバ アプリケーションで SSL プロトコルを使用する場合は、SSL ネットワーク接続用のポート番号を指定しなければなりません。デフォルト設定を使用することはできません。

SSL ネットワーク接続用の安全なポートを定義するには、SSL プロトコルのライセンスをインストールしておく必要があります。-S オプションまたは -ORBsecurePort コマンドライン オプションを実行したときに、SSL プロトコルを有効にするためのライセンスがインストールされていないと、IIOP リスナ/ハンドラまたは CORBA C++ ORB は起動しません。

 


ホスト照合の有効化

SSL プロトコルではメッセージを暗号化して機密性を保護できますが、暗号化は介在者の攻撃の防止策とはなりません。介在者の攻撃では、あるプリンシパルが、開始元アプリケーションがブートストラップ処理で使用する初期オブジェクト リファレンスの取得先となる場所を偽ります。

介在者の攻撃を防ぐには、SSL 接続で受信したデジタル証明書が意図したプリンシパルのものであることを確認します。ホスト照合とは、SSL 接続を確立するために使用されたオブジェクト リファレンスに指定されたホストが、対象のデジタル証明書に指定された識別名のサブジェクトの一般名と一致するかどうかをチェックすることです。ホスト照合は、SSL 接続の開始側によってのみ実行され、要求の対象が実際に対象のデジタル証明書のドメイン名で指定されたネットワーク アドレスにあることを確認されます。この照合が失敗した場合、SSL 接続の開始側は対象の認証を拒否し、SSL 接続を終了します。技術的には、ホスト照合は SSL の一部ではなく、Web ブラウザで行われるチェックに似ています。

デジタル証明書に含まれているドメイン名は、オブジェクト リファレンスに含まれているホスト情報と正確に一致しなければなりません。したがって、IP アドレスの代わりに DNS ホスト名を使用することをお勧めします。

デフォルトでは、ホスト照合は、IIOP リスナ/ハンドラおよび CORBA C++ ORB で有効になっています。ホスト照合を有効にする必要がある場合は、次のいずれかの手順を実行します。

-v オプションおよび -ORBpeerValidate コマンドライン オプションの値は、以下のとおりです。

Oracle Tuxedo ドメインで複数の IIOP リスナ/ハンドラが SSL 接続を使用するようにコンフィグレーションされている場合 (障害耐久性のためなど)、IIOP リスナ/ハンドラの DNS エリアス名を使用するか、それぞれの IIOP リスナ/ハンドラ用に別々のデジタル証明書を作成することをお勧めします。IIOP リスナの – H スイッチを使用すると、オブジェクト参照が正しく作成されるように、DNS エリアス名を指定できます。

 


暗号化レベルの設定

暗号化レベルを設定するには、以下の手順に従います。

-z オプションと -ORBminCrypto コマンドライン オプションは、アプリケーションが IIOP リスナ/ハンドラまたは CORBA C++ ORB と SSL 接続を確立する場合に使用する暗号化の最低レベルを設定します。有効な値は、0、40、56、および 128 です。値 0 はデータが署名されるだけで暗号化されないことを示し、40、56、および 128 は暗号鍵の長さ (ビット単位) を指定します。暗号化の最低レベルを満たさない場合、SSL 接続は失敗します。デフォルト値は 40 です。

-Z オプションと -ORBmaxCrypto コマンドライン オプションは、アプリケーションが IIOP リスナ/ハンドラまたは CORBA C++ ORB と SSL 接続を確立する場合に使用する暗号化の最大レベルを設定します。有効な値は、0、40、56、および 128 です。値 0 はデータが署名されるだけで暗号化されないことを示し、40、56、および 128 は暗号鍵の長さ (ビット単位) を指定します。デフォルトの最小値は 40 です。デフォルトの最大値は、ライセンスの指定に基づきます。

– z または – Z オプションと -ORBminCrypto および -ORBmaxCrypto コマンドライン オプションは、SSL プロトコル用のライセンスがインストールされている場合にのみ有効です。

現在 CORBA アプリケーションで使用されている暗号化のレベルを変更するには、IIOP リスナ/ハンドラまたは ORB を停止する必要があります。

設定する暗号化の値の組み合わせは非常に重要です。SSL 接続の開始側に設定する暗号化の値は、SSL 接続の対象に設定する暗号化の値のサブセットである必要があります。

表 6-1 は、暗号化の値の組み合わせと暗号化の動作を示したものです。

表 6-1 暗号化の値の組み合わせ
-z
-ORBminCrypto
-Z
-ORBmaxCrypto
説明
指定なし
指定なし
ORBminCrypto および ORBmaxCrypto に値を指定せず、これら以外のコマンドライン オプションまたはシステム プロパティを使用して SSL プロトコルを使用するように指定した場合、こうしたコマンドライン オプションやシステム プロパティにはデフォルト値が設定されます。
0
指定なし
暗号化の最大レベルは、ライセンスで指定された最大値にデフォルト設定されます。改ざんやリプレイの検出および暗号化レベルが調整されます。
指定なし
0
改ざんやリプレイの検出が調整されます。暗号化は行われません。
0
0
改ざんやリプレイの検出が調整されます。暗号化は行われません。
40, 56, 128
指定なし
暗号化の最大レベルは、ライセンスで指定された最大値にデフォルト設定されます。暗号化レベルは、SSL ライセンスで許可されている最大レベルまで調整できます。
指定なし
40, 56, 12
暗号化レベルは、SSL ライセンスで許可される最大値より小さい値である限り、-Z オプションで指定された値まで調整できます。-z オプションのデフォルト値は 40 です。
40, 56, 128
40, 56, 128
暗号化レベルは、SSL ライセンスで許可される最大値より小さい値である限り、-z オプションで指定した値と -Z オプションで指定した値の間で調整できます。

注意 : 最大ビット レベルは、表 6-1 に示した組み合わせの中で、SSL ライセンスの値によって制御されます。ラインセンスの最大値を超えてビット レベルを指定した場合、IIOP リスナ/ハンドラまたは ORB は起動せず、ビット レベルの設定が無効であることを示すメッセージが生成されます。最大値を引き下げて警告だけを表示する代わりに、IIOP リスナ/ハンドラまたは ORB を起動できないようにすることで、正しくコンフィグレーションされていないアプリケーションを意図しているよりも低い保護レベルで実行せずに済みます。
注意 : ライセンスの最大ビット レベルを超えて暗号化が調整された場合でも、SSL 接続は確立されません。

CORBA セキュリティ環境でサポートされている暗号スイートの一覧については、「サポートされている暗号スイート」を参照してください。

 


セッション再調整の間隔の設定

注意 : セッションを再調整する間隔を設定するのは、IIOP リスナ/ハンドラの場合だけです。

ISL コマンドの -R オプションを使用して、セッションを再調整する間隔を制御します。SSL セッションを定期的に再調整すると、対称鍵の有効期間を制限する情報を暗号化/復号化するための対称鍵が更新されます。暗号化用の対称鍵を定期的に変更することで、長時間の SSL 接続をより安全に継続できます。

– R オプションには、再調整の間隔を分単位で指定します。SSL 接続が指定した間隔で再調整を行う場合、IIOP リスナ/ハンドラは、インバウンド接続の SSL セッションの再調整をアプリケーションに要求するか、またはアウトバウンド接続の場合に実際に再調整を実行します。デフォルト値は 0 で、定期的なセッションの再調整は行われません。

ISL コマンドの -a オプションを使用して証明書による認証を有効にした場合は、セッションの再調整を使用できません。

 


IIOP リスナ/ハンドラのセキュリティ パラメータの定義

SSL 接続に参加する場合、IIOP リスナ/ハンドラは SSL 接続を開始したピアに対して自身を認証します。この認証には、デジタル証明書が必要となります。デジタル証明書に関連付けられたプライベート キーは、SSL 接続を確立する処理の中で使用されます。この処理では、プリンシパルとピア (この場合は、クライアント アプリケーションと IIOP リスナ/ハンドラ) がセッション キーについて合意します。セッション キーは、プライベート キー/公開鍵とは対照的に、SSL セッション中にデータを暗号化するための対称鍵です。ピアが認証できるように、IIOP リスナ/ハンドラに関して以下の情報を定義します。

注意 : IIOP リスナ/ハンドラのセキュリティ パラメータの定義が不正な場合、ULOG ファイルで次のエラーが報告されます。
注意 : ISH.28014: LIBPLUGIN_CAT:2008:ERROR:そのようなファイルまたはディレクトリ SEC_PRINCIPAL_LOCATION はありません。
ISH.28014:ISNAT_CAT:1552:ERROR:秘密鍵をオープンできませんでした。エラー =-3011
ISH.28104:ISNAT_CAT:1544:ERROR:ホスト/ポート//
IPADDRESS:PORT からの SSL 受け付けを実行できませんでした。
注意 : このエラーを解決するには、セキュリティ パラメータの情報を修正し、IIOP リスナ/ハンドラを再起動します。

これらのパラメータは、ISL システム プロセスを定義する UBBCONFIG ファイルの SERVERS セクションに含まれています。

また、tpusradd コマンドを使用して、IIOP リスナ/ハンドラを Oracle Tuxedo ドメインで認可されたユーザとして定義する必要があります。IIOP リスナ/ハンドラのパスワードの入力を求められます。SEC_PRINCIPAL_PASSVAR で定義したパス フレーズを入力します。

初期化時に、IIOP リスナ/ハンドラは、SEC_PRINCIPAL_NAME で定義されたプリンシパル名を引数としてインクルードして、資格を取得するための認証プラグインを呼び出します。CORBA アプリケーションと対話を試みるリモート クライアント アプリケーションを認証し、リモート クライアント アプリケーションの認証および監査トークンを取得できるように、IIOP リスナ/ハンドラには資格が必要です。

IIOP リスナ/ハンドラは、Oracle Tuxedo ドメインに対して自身の ID を認証しないと、信頼性のあるシステム プロセスになることができません。そのため、デフォルトの認証プラグインを使用する場合の認証サーバをコンフィグレーションする必要があります。詳細については、「認証サーバのコンフィグレーション」を参照してください。

 


ISL システム プロセスのパラメータの設定例

ISL サーバ プロセスに関する情報を定義する UBBCONFIGSERVERS セクションで SSL プロトコルのパラメータを設定します。コード リスト 6-1 は、SSL プロトコルおよび証明書による認証を使用する IIOP リスナ/ハンドラのコンフィグレーションのパラメータを設定する UBBCONFIG ファイルのコードです。

コード リスト 6-1 UBBCONFIG ファイルでの ISL コマンドの使い方
...
ISL
SRVGRP = SYS_GRP
SRVID = 5
CLOPT = “-A -- -a -z40 -Z128 -S3579 -n //ICEPICK:2569
SEC_PRINCIPAL_NAME=”BLOTTO”
SEC_PRINCIPAL_LOCATION=”BLOTTO.pem”
SEC_PRINCIPAL_VAR=”AUDIT_PASS”

 


CORBA C++ ORB のコマンドライン オプションの設定例

コード リスト 6-2 のサンプル コードは、SSL プロトコルを使用するように ORB をコンフィグレーションするための CORBA C++ ORB のコマンドライン オプションの使い方を示しています。

コード リスト 6-2 CORBA C++ ORB のコマンドライン オプションの設定例
ChatClient		-ORBid BEA_IIOP
-ORBsecurePort 2100
-ORBminCrypto 40
-ORBMaxCrypto 128
TechTopics

  ページの先頭       前  次