目次 前 次 PDF


SSLプロトコルの構成

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プロトコルまたは証明書認証を使用するには、次の作業が必要です。
SSL接続を受け入れる安全なポートを指定します。
データを暗号化する際のレベルを指定します。
オプションで、セッションの再ネゴシエーションの間隔を設定します(IIOPリスナー/ハンドラのみ)。
次の項では、ISLコマンドやCORBA C++ ORBのオプションを使用してSSLパラメータを設定する方法について説明します。
SSLネットワーク接続用のポートの定義
SSLネットワーク接続用のポートを定義するには、次の手順に従います。
ISLコマンドの-Sオプションを使用して、IIOPリスナー/ハンドラがSSLプロトコルを使用した安全な接続をリスニングするポートを指定します。IIOPリスナー/ハンドラがSSL接続のみを許可するように構成するには、ISLコマンドの-Sオプションと-nオプションを同じ値に設定します。
リモートCORBA C++ ORBを使用する場合は、ORBの-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で有効になっています。ホスト照合を有効にする必要がある場合は、次のいずれかの手順を実行します。
IIOPリスナー/ハンドラでは、ISLコマンドの-vオプションを指定します。
CORBA C++ ORBでは、–ORBpeerValidateコマンド行オプションを指定します。
-vオプションおよび-ORBpeerValidateコマンド行オプションの値は、次のとおりです。
none - ホスト照合は実行されません。
detect - SSL接続を確立するためのオブジェクト参照がターゲットのデジタル証明書のホスト名と一致しない場合、IIOPリスナー/ハンドラまたはORBはターゲットを認証できないので、SSL接続を終了します。detectがデフォルト値です。
warn - SSL接続を確立するためのオブジェクト参照がターゲットのデジタル証明書のホスト名と一致しない場合、IIOPリスナー/ハンドラまたはORBはメッセージをユーザー・ログに送信し、処理を続行します。
Oracle Tuxedoドメインで複数のIIOPリスナー/ハンドラがSSL接続を使用するように構成されている場合(フォルト・トレランスのためなど)、IIOPリスナー/ハンドラのDNS別名を使用するか、それぞれのIIOPリスナー/ハンドラ用に別々のデジタル証明書を作成することをお薦めします。IIOPリスナーの–Hスイッチを使用すると、オブジェクト参照が正しく作成されるように、DNS別名を指定できます。
暗号化レベルの設定
暗号化レベルを設定するには、次の手順に従います。
ISLコマンドの-zおよび-Zオプションを使用して、IIOPリスナー/ハンドラでの暗号化のレベルを設定します。
ORBの-ORBminCryptoおよび-ORBmaxCryptoコマンド行オプションを使用して、CORBA C++ ORBでの暗号化のレベルを設定します。
-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セキュリティ環境でサポートされている暗号スイートの一覧については、2-10ページの「サポートされている暗号スイート」を参照してください。
セッション再ネゴシエーションの間隔の設定
注意:
セッションを再ネゴシエーションする間隔を設定するのは、IIOPリスナー/ハンドラの場合だけです。
ISLコマンドの-Rオプションを使用して、セッションを再ネゴシエートする間隔を制御します。SSLセッションを定期的に再ネゴシエートすると、対称鍵の有効期間を制限する情報を暗号化/復号化するための対称鍵がリフレッシュされます。暗号化用の対称鍵を定期的に変更することで、長時間のSSL接続をより安全に継続できます。
– Rオプションには、再ネゴシエーション間隔を分単位で指定します。SSL接続が指定した間隔で再ネゴシエーションを行う場合、IIOPリスナー/ハンドラは、インバウンド接続のSSLセッションの再ネゴシエーションをアプリケーションにリクエストするか、またはアウトバウンド接続の場合に実際に再ネゴシエーションを実行します。デフォルトは0で、定期的なセッションの再ネゴシエーションは行われません。
ISLコマンドの-aオプションを使用して証明書による認証を有効にした場合は、セッションの再ネゴシエーションを使用できません。
IIOPリスナー/ハンドラのセキュリティ・パラメータの定義
SSL接続に参加する場合、IIOPリスナー/ハンドラはSSL接続を開始したピアに対して自身を認証します。この認証には、デジタル証明書が必要となります。デジタル証明書に関連付けられた秘密鍵は、SSL接続を確立する処理の中で使用されます。この処理では、プリンシパルとピア(この場合は、クライアント・アプリケーションとIIOPリスナー/ハンドラ)がセッション・キーについて合意します。セッション・キーは、秘密鍵/公開鍵とは対照的に、SSLセッション中にデータを暗号化するための対称鍵です。ピアが認証できるように、IIOPリスナー/ハンドラに関して次の情報を定義します。
SEC_PRINCIPAL_NAME
IIOPリスナー/ハンドラのIDを指定します。
SEC_PRINCIPAL_LOCATION
秘密鍵ファイルの場所を指定します。たとえば、$TUXDIR/udataobj/security/keys/milozzi.pemです。
SEC_PRINCIPAL_PASSVAR
tmloadcfコマンドを対話形式で実行しない場合に、IIOPリスナー/ハンドラの秘密鍵用のパス・フレーズを保持する環境変数を指定します。それ以外の場合は、tmloadcfコマンドを入力するときにパス・フレーズの入力を求められます。
注意:
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を認証しないと、信頼性のあるシステム・プロセスになることができません。そのため、デフォルトの認証プラグインを使用する場合の認証サーバーを構成する必要があります。詳細は、7-2ページの「認証サーバーの構成」を参照してください。
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
 
 

Copyright ©1994, 2017,Oracle and/or its affiliates. All rights reserved