注: | 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に関する技術的なサポートまたはドキュメントは提供していません。 |
IIOPリスナー/ハンドラまたはCORBA C++オブジェクト・リクエスト・ブローカ(ORB)でSSLプロトコルまたは証明書認証を使用するには、次の作業が必要です。
次の項では、ISLコマンドやCORBA C++ ORBのオプションを使用してSSLパラメータを設定する方法について説明します。
SSLネットワーク接続用のポートを定義するには、次の手順に従います。
-S
オプションを使用して、IIOPリスナー/ハンドラがSSLプロトコルを使用した安全な接続をリスニングするポートを指定します。IIOPリスナー/ハンドラがSSL接続のみを許可するように構成するには、ISLコマンドの-S
オプションと-n
オプションを同じ値に設定します。-ORBsecurePort
コマンド行オプションを使用して、ORBがSSLプロトコルを使用した安全な接続をリスニングするポートを指定します。コールバック・オブジェクトまたはCORBA通知サービスを使用する場合は、このコマンド行オプションを設定する必要があります。注: | 共同クライアント/サーバー・アプリケーションで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に示した組合せの中で、SSLライセンスの値によって制御されます。ライセンスの最大値を超えてビット・レベルを指定した場合、IIOPリスナー/ハンドラまたはORBは起動せず、ビット・レベルの設定が無効であることを示すメッセージが生成されます。最大値を引き下げて警告だけを表示するかわりに、IIOPリスナー/ハンドラまたはORBを起動できないようにすることで、正しく構成されていないアプリケーションを意図しているよりも低い保護レベルで実行せずに済みます。 |
注: | ライセンスの最大ビット・レベルを超えて暗号化が調整された場合でも、SSL接続は確立されません。 |
CORBAセキュリティ環境でサポートされている暗号スイートの一覧については、「サポートされている暗号スイート」を参照してください。
注: | セッションを再ネゴシエーションする間隔を設定するのは、IIOPリスナー/ハンドラの場合だけです。 |
ISLコマンドの-R
オプションを使用して、セッションを再ネゴシエートする間隔を制御します。SSLセッションを定期的に再ネゴシエートすると、対称鍵の有効期間を制限する情報を暗号化/復号化するための対称鍵がリフレッシュされます。暗号化用の対称鍵を定期的に変更することで、長時間のSSL接続をより安全に継続できます。
– R
オプションには、再ネゴシエーション間隔を分単位で指定します。SSL接続が指定した間隔で再ネゴシエーションを行う場合、IIOPリスナー/ハンドラは、インバウンド接続のSSLセッションの再ネゴシエーションをアプリケーションにリクエストするか、またはアウトバウンド接続の場合に実際に再ネゴシエーションを実行します。デフォルトは0で、定期的なセッションの再ネゴシエーションは行われません。
ISLコマンドの-a
オプションを使用して証明書による認証を有効にした場合は、セッションの再ネゴシエーションを使用できません。
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 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サーバー・プロセスに関する情報を定義するUBBCONFIG
のSERVERS
セクションでSSLプロトコルのパラメータを設定します。リスト6-1は、SSLプロトコルおよび証明書による認証を使用するIIOPリスナー/ハンドラの構成のパラメータを設定するUBBCONFIG
ファイルのコードです。
...
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”
リスト6-2のサンプル・コードは、SSLプロトコルを使用するようにORBを構成するためのCORBA C++ ORBのコマンド行オプションの使い方を示しています。
ChatClient -ORBid BEA_IIOP
-ORBsecurePort 2100
-ORBminCrypto 40
-ORBMaxCrypto 128
TechTopics