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

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

CORBA のセキュリティの基本概念

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

注意 : 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 に関する技術的なサポートやマニュアルは提供していません。

 


リンク レベルの暗号化

リンク レベルの暗号化 (LLE) は、ネットワーク リンク上で送受信されるメッセージのデータ機密性を保護します。LLE の目的は、Oracle Tuxedo システムのメッセージや CORBA アプリケーションが生成したメッセージの内容を、ネットワーク上の侵入者に知られないようにすることです。また、対称鍵による暗号化技術である RC4 を使用します。RC4 では、暗号化と復号化の際に同じ鍵を使用します。

LLE を使用する場合、Oracle Tuxedo システムは、データを暗号化してからネットワーク リンク上に送信し、データがネットワーク リンクを離れると復号化します。システムは、データが通過するすべてのリンクで、この暗号化/復号化プロセスを繰り返します。したがって、LLE はポイント ツー ポイント機能と呼ばれます。

LLE を使用すると、CORBA アプリケーション内のマシンとドメイン間の通信を暗号化できます。

注意 : LLE は、リモート CORBA クライアント アプリケーションと IIOP リスナ/ハンドラ間の接続の保護には使用できません。

LLE セキュリティには、0 ビット (暗号化なし)、56 ビット (国際版)、128 ビット (米国およびカナダ版) の 3 つのレベルがあります。国際版の LLE では、0 ビットと 56 ビットの暗号化が可能です。米国およびカナダ版の LLE では、0 ビット、56 ビット、および 128 ビットの暗号化が可能です。

LLE のしくみ

LLE は次のように機能します。

  1. システム管理者が、暗号化レベルを制御するために LLE を使用するプロセスのパラメータを設定します。
    • 1 つ目は、プロセスで受け付ける暗号化の最低レベルを設定するコンフィグレーション パラメータです。これは、0、56、128 のいずれかのキー長で指定します。
    • 2 つ目は、プロセスでサポートされる暗号化の最高レベルを設定するコンフィグレーション パラメータです。これも、0、56、128 のいずれかのキー長で指定します。
    • 便宜上、上記の 2 つのパラメータを (min, max) の形式で表記します。たとえば、あるプロセスの値が (56, 128) の場合は、56 ビットから 128 ビットまでの暗号化がサポートされることを示します。

  2. 開始プロセスが通信セッションを開始します。
  3. 対象プロセスは初期接続を受け取り、通信する 2 つのプロセスが使用する暗号化レベルを調整します。
  4. 2 つのプロセスは、双方がサポートするキーの最大サイズについて合意します。
  5. コンフィグレーションした最大キー サイズは、インストールされているソフトウェアの機能に合わせて縮小されます。この手順はリンクの調整時に行う必要があります。コンフィグレーション時には、特定のマシンにインストールされている暗号化パッケージを確認できないからです。
  6. プロセスは、調整済みの暗号化レベルでメッセージをやり取りします。

図 3-1 に、これらの手順を示します。

図 3-1 LLE のしくみ

LLE のしくみ

暗号化キー サイズの調整

ネットワーク リンクの両端にある 2 つのプロセスが通信し合うには、まず、これらのプロセスの暗号化キーのサイズが合っていなければなりません。これは、次の 2 段階の手順で確認されます。

  1. 各プロセスで、それぞれの min-max 値が確認されます。
  2. 両方のプロセスでサポートされる、キーの最大サイズが算出されます。

min-max 値の決定

2 つのプロセスのうち、どちらかが起動すると、Oracle Tuxedo システムは、(1) lic.txt ファイルの LLE 情報を参照して、インストール済みの LLE のバージョンのビット暗号化機能をチェックし、(2) 両方のプロセスのコンフィグレーション ファイルで指定されている、特定の種類のリンクでの LLE の min-max 値をチェックします。続いて、Oracle Tuxedo システムは次の処理を実行します。

共通のキー サイズの検索

2 つのプロセスの min-max 値が決まると、キー サイズの調整が開始します。この調整プロセスを暗号化したり、見えないようにする必要はありません。調整されたキー サイズは、ネットワーク接続が確立されている間は有効です。

表 3-1 は、2 つのプロセス間で可能な min-max 値のすべての組み合わせを調整した結果のキー サイズを示しています。上段のヘッダ行は、2 つのプロセスのうち、片方のプロセスの min-max 値を示しています。左側の列は、もう一方のプロセスの min-max 値を示しています。

表 3-1 プロセス間の調整結果
 
(0, 0)
(0, 56)
(0, 128)
(56, 56)
(56, 128)
(128, 128)
(0, 0)
0
0
0
エラー
エラー
エラー
(0, 56)
0
56
56
56
56
エラー
(0, 128)
0
56
128
56
128
128
(56, 56)
エラー
56
56
56
56
エラー
(56, 128)
エラー
56
128
56
128
128
(128, 128)
エラー
エラー
128
エラー
128
128

初期化時の WSL および WSH の接続タイムアウト

ワークステーション クライアントが初期化に費やせる時間は制限されています。デフォルトでは、LLE を使用しないアプリケーションでは 30 秒、LLE を使用するアプリケーションでは 60 秒に制限されています。この 60 秒には、暗号化されたリンクを調整する時間も含まれます。ただし、LLE がコンフィグレーションされている場合は、UBBCONFIG ファイルの MAXINITTIME パラメータでワークステーション リスナ (WSL) のサーバの値を変更するか、または WS_MIB(5) にある T_WSL クラスの TA_MAXINITTIME 属性の値を変更することによって、制限を変更できます。

開発プロセス

CORBA アプリケーションで LLE を使用するには、LLE を有効にするライセンスをインストールする必要があります。ライセンスのインストール方法については、『Oracle Tuxedo システムのインストール』を参照してください。

LLE の実装は管理タスクの 1 つです。各 CORBA アプリケーションのシステム管理者は、暗号化のレベルを制御する min-max 値を UBBCONFIG ファイルで設定します。2 つの CORBA アプリケーションは、通信を確立すると、メッセージのやり取りに使用する暗号化のレベルを調整します。調整されたキー サイズは、ネットワーク接続が確立されている間は有効です。

 


パスワードによる認証

CORBA セキュリティ環境では、PKI (Public Key Infrastructure) を全面的にデプロイする準備が整っていない既存の CORBA アプリケーションおよび新しい CORBA アプリケーションに対して認証機能を提供するためのパスワード メカニズムをサポートしています。パスワードによる認証を使用すると、CORBA オブジェクトを呼び出すアプリケーションは、定義されているユーザ名およびパスワードを提示して、Oracle Tuxedo ドメインに対して自身を認証します。

利用できるパスワード認証レベルは以下のとおりです。

パスワードによる認証を使用する場合、クライアント アプリケーションで Tobj::PrincipalAuthenticator::logon() メソッドを使用する方法と、SecurityLevel2::PrincipalAuthenticator::authenticate() メソッドを使用する方法があります。

パスワードによる認証を使用する場合、SSL プロトコルによって、アプリケーション間の通信の機密性と整合性を保護できます。詳細については、「SSL プロトコル」を参照してください。

パスワードによる認証のしくみ

パスワードによる認証は次のように機能します。

  1. 開始元アプリケーションは、次のいずれかの方法で Oracle Tuxedo ドメインにアクセスします。
    • CORBA Interoperable Naming Service (INS) のブートストラップ処理メカニズムを使用します。このメカニズムを使用するのは、別のベンダのクライアント ORB を使用する場合です。CORBA INS の使い方については、Oracle Tuxedo オンライン マニュアルの『Tuxedo CORBA プログラミング リファレンス』を参照してください。
    • Oracle のブートストラップ処理メカニズムを使用します。このメカニズムを使用するのは、Oracle CORBA クライアント アプリケーションを使用する場合です。
  2. 開始元アプリケーションは、ユーザの資格を取得します。開始元アプリケーションは、Oracle Tuxedo ドメインが使用する証明資料を提示して、ユーザを認証する必要があります。この証明資料は、ユーザ名とパスワードで構成されています。
    • 開始元アプリケーションは、PrincipalAuthenticator オブジェクトを使用してセキュリティ コンテキストを作成します。認証要求は、IIOP リスナ/ハンドラに送信されます。認証要求に含まれた証明資料は、提示された情報を検証する認証サーバまで安全に転送されます。
    • 検証が成功すると、Oracle Tuxedo システムは、以降の呼び出しで使用される Credentials オブジェクトを作成します。ユーザの Credentials オブジェクトは、セキュリティ コンテキストを表す Current オブジェクトに関連付けられます。
  3. 開始元アプリケーションは、オブジェクト リファレンスを使用して Oracle Tuxedo ドメイン内の CORBA オブジェクトを呼び出します。要求は IIOP 要求にパッケージ化され、すでに確立されているセキュリティ コンテキストとの関連付けを行う IIOP リスナ/ハンドラに転送されます。
  4. IIOP リスナ/ハンドラは、開始元アプリケーションから要求を受信します。
  5. IIOP リスナ/ハンドラは、要求を開始元アプリケーションの資格と一緒に、適切な CORBA オブジェクトに転送します。

図 3-2 に、これらの手順を示します。

図 3-2 パスワードによる認証のしくみ

パスワードによる認証のしくみ

パスワードによる認証用の開発プロセス

パスワードによる認証を CORBA アプリケーションに定義するには、管理手順とプログラミング手順を実行する必要があります。表 3-2表 3-3 に、パスワード認証の管理手順とプログラミング手順をそれぞれ示します。パスワードによる認証の管理手順の詳細については、「認証のコンフィグレーション」を参照してください。プログラミング手順の詳細については、「セキュリティを実装する CORBA アプリケーション」を参照してください。

表 3-2 パスワードによる認証の管理手順
手順
説明
1
UBBCONFIG ファイルの SECURITY パラメータを、APP_PWUSER_AUTHACL、または MANDATORY_ACL に設定します。
2
SECURITY パラメータを USER_AUTH、ACL、または MANDATORY_ACL にコンフィグレーションした場合は、認証サーバ (AUTHSRV) を UBBCONFIG ファイルでコンフィグレーションします。
3
tpusradd および tpgrpadd コマンドを使用して、許可されたユーザおよびグループ (IIOP リスナ/ハンドラを含む) のリストを定義します。
4
tmloadcf コマンドを使用して、UBBCONFIG ファイルをロードします。UBBCONFIG ファイルがロードされると、システム管理者はパスワードの入力を求められます。ここで入力するパスワードが CORBA アプリケーションのパスワードになります。

表 3-3 パスワードによる認証のプログラミング手順
手順
説明
1
Bootstrap オブジェクトを使用して Oracle Tuxedo ドメインの SecurityCurrent オブジェクトへのリファレンスを取得するコード、または CORBA INS を使用して PrincipalAuthenticator オブジェクトへのリファレンスを取得するコードを記述します。
2
SecurityCurrent オブジェクトから PrincipalAuthenticator オブジェクトを取得するアプリケーション コードを記述します。
3
Tobj::PrincipalAuthenticator::logon() または SecurityLevel2::PrincipalAuthenticator::authenticate() オペレーションを使用して、Oracle Tuxedo ドメインのセキュリティ コンテキストを取得するアプリケーション コードを記述します。
4
UBBCONFIG ファイルがロードされたときに定義したパスワードの入力をユーザに要求するアプリケーション コードを記述します。

 


SSL プロトコル

Oracle Tuxedo 製品では、業界標準の SSL プロトコルを使用して、クライアント アプリケーションとサーバ アプリケーション間で安全な通信を確立します。SSL プロトコルを使用する場合、プリンシパルはデジタル証明書を使用して、自身の ID をピアに対して証明します。

CORBA セキュリティ環境の SSL プロトコルのデフォルト動作では、IIOP リスナ/ハンドラが自身の ID を、デジタル証明書を使用して SSL 接続を開始したプリンシパルに対して証明します。デジタル証明書は、各デジタル証明書が改ざんされていないこと、また有効期限が切れていないことを確認されます。一連の処理でデジタル証明書に問題があった場合、SSL 接続は終了します。また、デジタル証明書の発行者は信頼性のある認証局のリストと照合され、IIOP リスナ/ハンドラから受信したデジタル証明書が Oracle Tuxedo ドメインの信頼する認証局が署名したものであるかどうか確認されます。

LLE と同じく、SSL プロトコルをパスワードによる認証で使用すると、クライアント アプリケーションと Oracle Tuxedo ドメイン間の通信の機密性と整合性を保護できます。SSL プロトコルをパスワードによる認証で使用する場合、tmloadcf コマンドを入力したときに SEC_PRINCIPAL_NAME パラメータで定義した IIOP リスナ/ハンドラのパスワードの入力を求められます。

SSL プロトコルのしくみ

SSL プロトコルは次のように機能します。

  1. IIOP リスナ/ハンドラは、デジタル証明書を開始元アプリケーションに提示します。
  2. 開始元アプリケーションは、信頼性のある認証局のリストと IIOP リスナ/ハンドラのデジタル証明書を照合します。
  3. 開始元アプリケーションが IIOP リスナ/ハンドラのデジタル証明書を検証すると、アプリケーションと IIOP リスナ/ハンドラ間で SSL 接続が確立されます。
  4. 開始元アプリケーションは、パスワードまたは証明書による認証を使用して、自身を Oracle Tuxedo ドメインに対して認証します。

図 3-3 に、SSL プロトコルのしくみを示します。

図 3-3 CORBA アプリケーションでの SSL プロトコルのしくみ

CORBA アプリケーションでの SSL プロトコルのしくみ

SSL プロトコルを使用するための要件

CORBA アプリケーションで SSL プロトコルを使用するには、SSL プロトコルおよび PKI を有効にするライセンスをインストールする必要があります。セキュリティ機能のライセンスのインストール方法については、『Oracle Tuxedo システムのインストール』を参照してください。

SSL プロトコルの実装は柔軟性が高いので、ほとんどの PKI に対応します。Oracle Tuxedo 製品では、デジタル証明書を LDAP 対応のディレクトリに保存する必要があります。LDAP 対応であれば、どのディレクトリ サービスでもかまいません。また、CORBA アプリケーションで使用するデジタル証明書およびプライベート キーの取得先の認証局を選択する必要があります。LDAP 対応のディレクトリ サービスおよび認証局を準備してからでないと、SSL プロトコルを CORBA アプリケーションで使用できません。

SSL プロトコル用の開発プロセス

CORBA アプリケーションで SSL プロトコルを使用するための準備は、主に管理プロセスです。表 3-5 は、SSL プロトコルを使用できるようにインフラストラクチャを設定し、SSL プロトコルに合わせて IIOP リスナやハンドラをコンフィグレーションするための管理手順の一覧です。管理手順の詳細については、「公開鍵によるセキュリティ機能の管理」および「SSL プロトコルのコンフィグレーション」を参照してください。

管理手順を実行したら、パスワードによる認証と証明書による認証のどちらも CORBA アプリケーションで使用できます。詳細については、「セキュリティを実装する CORBA アプリケーション」を参照してください。

注意 : Oracle CORBA C++ ORB をサーバ アプリケーションとして使用している場合、ORB でも SSL プロトコルを使用するようにコンフィグレーションできます。詳細については、「SSL プロトコルのコンフィグレーション」を参照してください。

SSL プロトコルをパスワードによる認証で使用する場合、UBBCONFIG ファイルの SECURITY パラメータを目的の認証レベルに設定し、必要であれば、認証サーバ (AUTHSRV) をコンフィグレーションします。パスワード認証の管理手順については、「パスワードによる認証」を参照してください。

図 3-4 に、SSL プロトコルを使用する場合の CORBA アプリケーションのコンフィグレーションを示します。

図 3-4 CORBA アプリケーションで SSL プロトコルを使用するコンフィグレーション

CORBA アプリケーションで SSL プロトコルを使用するコンフィグレーション

 


証明書による認証

証明書による認証では、SSL 接続の両端がそれぞれの ID を互いに証明する必要があります。CORBA セキュリティ環境では、IIOP リスナ/ハンドラは自身のデジタル証明書を、SSL 接続を開始したプリンシパルに対して提示します。開始側は、IIOP リスナ/ハンドラが使用する一連のデジタル証明書を提示して、開始側の ID を証明します。

一連のデジタル証明書の検証に成功すると、IIOP リスナ/ハンドラはデジタル証明書のサブジェクトから識別名の値を取り出します。CORBA セキュリティ環境では、サブジェクトの識別名の電子メール アドレス要素をプリンシパルの ID として使用します。IIOP リスナ/ハンドラは、プリンシパルの代わりにプリンシパルの ID を使用して、開始元アプリケーションと Oracle Tuxedo ドメイン間のセキュリティ コンテキストを確立します。

プリンシパルが認証されたら、要求を開始したプリンシパルと IIOP リスナ/ハンドラは、双方がサポートしている暗号化の種類とレベルを表す暗号スイートについて合意します。また、暗号鍵についても合意し、以降のすべてのメッセージについて同時に暗号化を開始します。

図 3-5 に、証明書による認証の概念を示します。

図 3-5 証明書による認証

証明書による認証

一般に、X509 V3 CA 証明書には、認証局 (CA) からのもの、かつクリティカルな拡張 (IETF RFC 2459 を参照) として識別されている基本制約拡張が含まれている必要があります。V3 CA 証明書は、CA 以外の証明書が中間 CA 証明書を偽装するのを防ぎます。

詳細については、次の URL を参照してください。

http://www.ietf.org/rfc/rfc2459.txt

注意 : このデフォルトの動作では、X.509 V1 および V2 証明書に対して基本制約はチェックされません。これらのバージョンの X.509 証明書は、証明書拡張をサポートしていません。

顧客のアプリケーションでの問題を回避するために実行される強制レベルを制御するために、あるメカニズムが用意されています。

このメカニズムを使用するには、環境変数 TUX_SSL_ENFORCECONSTRAINTS の値を設定します。強制レベルは以下のとおりです。

0

このレベルでは、強制が完全に無効になります。このレベルは、他に選択肢がない場合以外はお勧めしません。
たとえば、顧客が CA から証明書を購入し、証明書チェーンが新しいチェックをパスしなかった場合などです。現在のほとんどの CA 証明書は、デフォルトのレベル 1 で正常に機能します。 TUX_SSL_ENFORCECONSTRAINTS=0

1

これがデフォルトの設定です。証明書チェーンの V1 または V2 証明書に対してはチェックは行われません。V3 CA 証明書の基本制約がチェックされ、証明書が CA 証明書であることが検証されます。
TUX_SSL_ENFORCECONSTRAINTS=1

2

このレベルでは、レベル 1 と同じチェックに加え、以下の 2 つの条件が適用されます。
現在使用できる V3 CA 証明書の一部では基本制約がクリティカルとして指定されないため、これはデフォルトではありません。 TUX_SSL_ENFORCECONSTRAINTS=2

証明書による認証のしくみ

証明書による認証は次のように機能します。

  1. 開始元アプリケーションは、次のいずれかの方法で Oracle Tuxedo ドメインにアクセスします。
    • CORBA INS のブートストラップ処理メカニズムを使用します。このメカニズムを使用するのは、別のベンダのクライアント ORB を使用する場合です。CORBA INS の使い方については、Oracle Tuxedo オンライン マニュアルの『Tuxedo CORBA プログラミング リファレンス』を参照してください。
    • Oracle のブートストラップ処理メカニズムを使用します。このメカニズムを使用するのは、Oracle クライアント ORB を使用する場合です。
  2. 開始元アプリケーションは、URL (corbaloc://host:port または corbalocs://host:port の形式) を使用して Bootstrap オブジェクトをインスタンス化し、SecurityLevel2::PrincipalAuthenticator::authenticate オペレーションの結果として返される SecurityLevel2::Credentials オブジェクトの属性を設定して、保護の要件を制御します。
注意 : SecurityLevel2::Current::authenticate() メソッドを使用しても、ブートストラップ処理のセキュリティを確保し、証明書による認証を使用するように指定できます。
  1. 開始元アプリケーションは、プリンシパルのデジタル証明書およびプライベート キーを取得します。この情報を取得するには、プリンシパルのプライベート キーおよび証明書にアクセスするための証明資料を提示しなければならない場合があります。通常、証明資料はパスワードではなくパス フレーズです。
  2. SecurityLevel2::PrincipalAuthenticator::authenticate() メソッドの結果として、セキュリティ コンテキストが確立されます。

    IIOP リスナ/ハンドラは、認証プロセスの一部として、アプリケーションのデジタル証明書を受信して検証します。

  3. 検証が成功すると、Oracle Tuxedo システムは Credentials オブジェクトを作成します。プリンシパルの Credentials オブジェクトは、現在の実行スレッドのセキュリティ コンテキストを表します。
  4. 開始元アプリケーションは、オブジェクト リファレンスを使用して Oracle Tuxedo ドメイン内の CORBA オブジェクトを呼び出します。
  5. 要求は IIOP 要求にパッケージ化され、すでに確立されているセキュリティ コンテキストとの関連付けを行う IIOP リスナ/ハンドラに転送されます。
  6. 要求はデジタル署名され、暗号化されてから、IIOP リスナ/ハンドラに送信されます。Oracle Tuxedo システムは、要求の署名と暗号化を実行します。
  7. IIOP リスナ/ハンドラは、開始元アプリケーションから要求を受信します。要求が復号化されます。
  8. IIOP リスナ/ハンドラは、プリンシパルの subjectDN の電子メール コンポーネントを受信し、ユーザの ID として使用します。
  9. IIOP リスナ/ハンドラは、要求をプリンシパルの関連トークンと一緒に、適切な CORBA オブジェクトに転送します。
  10. 図 3-6 証明書による認証のしくみ


    証明書による認証のしくみ

証明書による認証用の開発プロセス

CORBA アプリケーションで証明書による認証を使用するには、SSL プロトコルおよび PKI を有効にするライセンスをインストールする必要があります。ライセンスのインストール方法については、『Oracle Tuxedo システムのインストール』を参照してください。

証明書による認証を CORBA アプリケーションで使用するには、管理手順とプログラミング手順を実行する必要があります。表 3-5表 3-6 に、証明書による認証の管理手順とプログラミング手順をそれぞれ示します。管理手順の詳細については、「公開鍵によるセキュリティ機能の管理」および「SSL プロトコルのコンフィグレーション」を参照してください。

表 3-5 証明書による認証の管理手順
手順
説明
1
LDAP 対応ディレクトリ サービスをコンフィグレーションします。Oracle Tuxedo 製品のインストール時に、LDAP サーバの名前を入力する必要があります。
2
SSL プロトコルを使用するためのライセンスをインストールします。
3
IIOP リスナ/ハンドラのデジタル証明書およびプライベート キーを認証局から取得します。
4
CORBA クライアント アプリケーションのデジタル証明書およびプライベート キーを認証局から取得します。
5
CORBA クライアント アプリケーションおよび IIOP リスナ/ハンドラのプライベート キー ファイルをユーザのホーム ディレクトリまたは $TUXDIR/udataobj/security/keys に格納します。
6
IIOP リスナ/ハンドラ、CORBA アプリケーション、および認証局のデジタル証明書を LDAP 対応ディレクトリ サービスで公開します。
7
ISL サーバ プロセスの SEC_PRINCIPAL_NAMESEC_PRINCIPAL_LOCATION、および SEC_PRINCIPAL_PASSVARUBBCONFIG ファイルで定義します。
8
UBBCONFIG ファイルの SECURITY パラメータを USER_AUTHACL、または MANDATORY_ACL に設定します。
9
認証サーバ (AUTHSRV) を UBBCONFIG ファイルでコンフィグレーションします。
10
tpusradd および tpgrpadd コマンドを使用して、CORBA アプリケーションの許可されたユーザおよびグループを定義します。
11
ISL コマンドの -S オプションを使用して、IIOP リスナ/ハンドラの SSL 通信用のポートを定義します。
12
ISL コマンドの -a オプションを使用して、IIOP リスナ/ハンドラで証明書による認証を有効にします。
13
IIOP リスナ/ハンドラが信頼する認証局を定義する信頼性のある認証局ファイル (trust_ca.cer) を作成します。
12
CORBA クライアント アプリケーションが信頼する認証局を定義する信頼性のある認証局ファイル (trust_ca.cer) を作成します。
13
tmloadcf コマンドを使用して、UBBCONFIG ファイルをロードします。SEC_PRINCIPAL_NAME パラメータで定義されている IIOP リスナ/ハンドラのパスワードの入力を求められます。
14
オプションで、CORBA クライアント アプリケーションおよび IIOP リスナ/ハンドラのピア規則ファイル (peer_val.rul) を作成します。
15
オプションで、社内のディレクトリ階層構造に合わせて LDAP 検索フィルタ ファイルを変更します。

図 3-7 に、証明書による認証を使用する場合の CORBA アプリケーションのコンフィグレーションを示します。

図 3-7 CORBA アプリケーションで証明書による認証を使用するコンフィグレーション

CORBA アプリケーションで証明書による認証を使用するコンフィグレーション

表 3-6 は、CORBA アプリケーションで証明書による認証を使用するためのプログラミング手順をまとめたものです。詳細については、「セキュリティを実装する CORBA アプリケーション」を参照してください。

表 3-6 証明書による認証のプログラミング手順
手順
説明
1
Bootstrap オブジェクトの URL アドレス形式 (corbaloc または corbalocs) を使用するアプリケーション コードを記述します。IIOP リスナ/ハンドラの証明書の識別名の CommonName が URL アドレス形式で指定されたホスト名と正確に一致している必要があります。URL アドレス形式の詳細については、「ブートストラップ処理メカニズムの使用」を参照してください。
CORBA INS ブートストラップ処理メカニズムを使用しても、Oracle Tuxedo ドメインの PrincipalAuthenticator オブジェクトへのリファレンスを取得できます。CORBA INS の詳細については、『Tuxedo CORBA プログラミング リファレンス』を参照してください。
2
SecurityLevel2::PrincipalAuthenticator インタフェースの authenticate() メソッドを使用するアプリケーション コードを記述します。メソッドの引数として Tobj::CertificateBased を指定し、Security::Opaqueauth_data 引数としてプライベート キーのパス フレーズを指定します。

 


認証プラグインの使い方

Oracle Tuxedo 製品では、認証プラグインを CORBA アプリケーションに統合することができます。Oracle Tuxedo 製品は、共有シークレット パスワード、ワンタイム パスワード、CHALLENGE 応答、Kerberos などの認証技術を使用して、さまざまな認証プラグインに対応できます。認証インタフェースは、必要に応じて GSSAPI (Generic Security Service Application Programming Interface) に基づいており、認証プラグインが GSSAPI に合わせて記述されていることを想定しています。

認証プラグインを使用する場合、Oracle Tuxedo システムのレジストリで認証プラグインをコンフィグレーションする必要があります。レジストリの詳細については、「セキュリティ プラグインのコンフィグレーション」を参照してください。

認証プラグインの詳細 (インストール手順およびコンフィグレーション手順を含む) については、Oracle 社の営業担当者にお問い合わせください。

 


認可

認可の機能により、管理者は CORBA アプリケーションへのアクセスを制御できます。つまり、管理者は、認可機能を使用して、CORBA アプリケーションのリソースまたはサービスに対するアクセス権をプリンシパル (認証されたユーザ) に許可するかどうかを決定します。

CORBA セキュリティ環境では、認可プラグインを統合できます。認可は、認証トークンで提示されたユーザ ID に基づいて決定されます。認証トークンは認証プロセスで生成されるので、認証プラグインと認可プラグインとの間で調整する必要があります。

認可プラグインを使用する場合、Oracle Tuxedo システムのレジストリで認可プラグインをコンフィグレーションする必要があります。レジストリの詳細については、「セキュリティ プラグインのコンフィグレーション」を参照してください。

認可プラグインの詳細 (インストール手順およびコンフィグレーション手順を含む) については、Oracle 社の営業担当者にお問い合わせください。

 


監査

監査とは、操作要求とその結果に関する情報を収集、格納、および配布する方法です。監査証跡の記録からは、CORBA のセキュリティ ポリシーに違反するアクションを実行したプリンシパルや、そのようなアクションを実行しようとしたプリンシパルを判別できます。また、これらの記録から、試行された操作、失敗した操作、および成功した操作を判別することもできます。

監査機能の現在の実装では、ログオンの失敗、偽装の失敗、および許可されなかった操作を ULOG ファイルに記録できます。操作が許可されなかった場合、どの操作のパラメータの順序もデータ型もわからないので、操作のパラメータ値は提供されません。ログオンおよび偽装に関する監査のエントリには、認証を受けようとしたプリンシパルの ID が含まれます。ULOG ファイルの設定については、『Oracle Tuxedo アプリケーションの設定』を参照してください。

監査プラグインを使用すると、CORBA アプリケーションの監査機能を拡張できます。Oracle Tuxedo システムは、定義済みの実行ポイントで監査プラグインを呼び出します。通常、実行ポイントは、操作を試行する前、セキュリティ違反につながる現象を検出した場合、または操作が成功した場合です。監査情報を収集、処理、保護、および配布するためのアクションは、監査プラグインの機能によって異なります。監査情報を収集する場合はパフォーマンスへの影響を十分に考慮する必要があります。特に、成功した操作の監査には、大きなコストが発生することがあります。

監査に関する一部の決定は、監査トークンに格納されているユーザ ID に基づいて行われます。監査トークンは、認証プラグインによって生成されるため、認証プラグインと監査プラグインのプロバイダは、これらのプラグインが協調動作することを保証する必要があります。

監査要求の目的は、イベントを記録することです。各監査プラグインは、success (監査が成功し、イベントが記録される) または failure (監査は失敗し、イベントは記録されない) のどちらかの応答を返します。監査プラグインは、操作の実行前と実行後にそれぞれ一度呼び出されます。

CORBA アプリケーションで監査プラグインの複数の実装を使用することができます。複数の認可プラグインを使用すると、操作前および操作後の監査操作が複数実行されます。

複数の監査プラグインを使用する場合、すべてのプラグインは、1 つのマスタ監査プラグインの下に配置されます。それぞれの従属認可プラグインは、SUCCESS または FAILURE を返します。いずれかのプラグインが操作に失敗すると、マスタ プラグインが出力を FAILURE と決定します。その他のエラーも FAILURE と見なされます。それ以外の場合、SUCCESS が出力されます。

さらに、Oracle Tuxedo システムのプロセスは、セキュリティ違反につながる現象を検出すると、監査プラグインを呼び出す場合があります。たとえば、操作前または操作後の認可のチェックが失敗したり、セキュリティに対する攻撃が検出された場合などです。これに対し、監査プラグインは、操作後の監査を実行して、監査が成功したかどうかを示す応答を返します。

Oracle Tuxedo 製品に組み込まれている監査機能を使用する場合と、監査プラグインを使用する場合では、監査のプロセスが多少異なります。デフォルトの監査機能では、操作前の監査をサポートしていません。したがって、デフォルトの監査機能が、操作前の監査を行う要求を受け取っても、要求は直ちに返され、何も実行されません。

デフォルトの監査プラグイン以外の監査プラグインを使用する場合、Oracle Tuxedo システムのレジストリでその認証プラグインをコンフィグレーションする必要があります。レジストリの詳細については、「セキュリティ プラグインのコンフィグレーション」を参照してください。

監査プラグインの詳細 (インストール手順およびコンフィグレーション手順を含む) については、Oracle 社の営業担当者にお問い合わせください。

 


PKI プラグイン

Oracle Tuxedo 製品には、CORBA アプリケーションでデジタル証明書を使用するために必要な SSL プロトコルとインフラストラクチャを含む PKI 環境が用意されています。ただし、PKI インタフェースを使用して、カスタム メッセージ ベースのデジタル署名およびメッセージ ベースの暗号化機能を CORBA アプリケーションに提供する PKI プラグインを統合できます。表 3-7 に、これらの手順を示します。

表 3-7 PKI インタフェース
PKI インタフェース
説明
公開鍵の初期化
公開鍵ソフトウェアが公開鍵およびプライベート キーを開けるようにします。たとえば、ゲートウェイ プロセスでは、メッセージを復号化してから転送するために、特定のプライベート キーへのアクセスが必要なこともあります。
鍵管理
公開鍵ソフトウェアが公開鍵およびプライベート キーを管理および使用できるようにします。なお、メッセージ ダイジェストとセッション キーは、このインタフェースを使用して暗号化および復号化されますが、公開鍵暗号を使用するバルク データの暗号化は行われません。バルク データの暗号化は、対称鍵暗号を使用して行われます。
証明ルックアップ
公開鍵ソフトウェアが、所定のプリンシパルに対する X.509v3 デジタル証明書を取得できるようにします。デジタル証明書は、Lightweight Directory Access Protocol (LDAP) など、適切な証明書リポジトリを使用して格納することができます。
証明解析
公開鍵ソフトウェアが、簡単なプリンシパル名と X.509v3 デジタル証明書を関連付けることができるようにします。パーサは、デジタル証明書を解析して、デジタル証明書に関連付けるプリンシパル名を生成します。
証明書の検証
公開鍵ソフトウェアが特定のビジネス ロジックに基づいて X.509v3 デジタル証明書を検証することができます。
証明資料のマッピング
公開鍵ソフトウェアは、鍵を開くために必要な証明資料にアクセスしたり、認可トークンおよび監査トークンを提供したりすることができます。

PKI インタフェースは、次のアルゴリズムをサポートしています。

PKI プラグインを使用する場合、Oracle Tuxedo システムのレジストリで PKI プラグインをコンフィグレーションする必要があります。レジストリの詳細については、「セキュリティ プラグインのコンフィグレーション」を参照してください。

PKI プラグインの詳細 (インストール手順およびコンフィグレーション手順を含む) については、Oracle 社の営業担当者にお問い合わせください。

 


CORBA のセキュリティ機能に関してよくある質問

ここでは、CORBA のセキュリティ機能についてよく寄せられる質問をいくつか取り上げて回答します。

既存の CORBA アプリケーションのセキュリティ機能を変更する必要がありますか

いいえ、必要ありません。CORBA アプリケーションで以前のバージョンの WebLogic Enterprise のセキュリティ インタフェースを使用している場合、CORBA アプリケーションを変更する必要はありません。現在のセキュリティ スキーマをそのまま使用しても、既存の CORBA アプリケーションは 8.0 以降の Oracle Tuxedo でビルドした CORBA アプリケーションと協調動作します。

たとえば、CORBA アプリケーションが、接続したすべてのクライアント アプリケーションに一般的な情報を提供する一連のサーバで構成されている場合、セキュリティ スキーマを強化する必要はまったくありません。CORBA アプリケーションが、スニッファを検出できるだけのセキュリティ機能を持つ内部ネットワークのクライアント アプリケーションに情報を提供する一連のサーバ アプリケーションで構成されている場合、新たなセキュリティ機能を実装する必要はありません。

既存の CORBA アプリケーションで SSL プロトコルを使用できますか

はい、できます。SSL プロトコルを既存の CORBA アプリケーションで使用すると、さらにセキュリティ機能を強化することができます。たとえば、株価を特定のクライアント アプリケーションに提供する CORBA サーバ アプリケーションでは、SSL プロトコルを使用すると、クライアント アプリケーションが正しい CORBA サーバ アプリケーションに接続しており、不正なデータを持つ偽の CORBA サーバ アプリケーションにルーティングされていないことを保証できます。クライアント アプリケーションを認証する証明資料としては、ユーザ名とパスワードで十分です。しかし、SSL プロトコルを使用することで、メッセージの要求/応答情報をさらに高いレベルのセキュリティ機能で保護できます。

SSL プロトコルを使用すると、CORBA アプリケーションに次の利点があります。

CORBA アプリケーションで SSL プロトコルを使用するには、デジタル証明書を使用するインフラストラクチャを設定し、SSL プロトコルを使用するように ISL サーバ プロセスのコマンドライン オプションを変更した上で、IIOP リスナ/ハンドラの安全な通信用のポートをコンフィグレーションします。既存の CORBA アプリケーションがパスワードによる認証を使用する場合、SSL プロトコルでそのコードを使用できます。CORBA C++ クライアント アプリケーションが、Bootstrap オブジェクトへの初期リファレンスを解決して認証を実行する場合に、InvalidDomain 例外を捕捉しない場合は、この例外を処理するコードを記述します。詳細については、「PKI プラグイン」を参照してください。

証明書による認証をいつ使用すればいいですか

既存の CORBA アプリケーションを移行して、CORBA アプリケーションと市販の Web ブラウザ間でインターネット接続を使用するときです。たとえば、CORBA アプリケーションのユーザがインターネット上で買い物をするとします。ユーザに対して以下の点を保証する必要があります。

こうした場合、SSL プロトコルおよび証明書による認証を使用すると、CORBA アプリケーションで最高レベルの保護機能が提供されます。SSL プロトコルによる利点以外にも、証明書による認証を使用すると、CORBA アプリケーションに以下の利点があります。

詳細については、「PKI プラグイン」を参照してください。


  ページの先頭       前  次