Oracle Tuxedo のセキュリティ機能

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

ATMI のセキュリティについて

以下の節では、Oracle Tuxedo の ATMI アプリケーション用のさまざまなセキュリティ機能について説明します。

注意 : Oracle Tuxedo には、ATMI (アプリケーション トランザクション モニタ インタフェース) アプリケーションと CORBA アプリケーションを作成するための 2 種類の環境が用意されています。この章では、ATMI アプリケーションに対するセキュリティ機能の実装方法を説明します。CORBA アプリケーションに対するセキュリティ機能の実装方法については、『Tuxedo CORBA アプリケーションのセキュリティ機能』を参照してください。

 


セキュリティとは

セキュリティとは、コンピュータ内のデータまたはコンピュータ間で送受信されるデータが損なわれないことを保証する技術のことです。ほとんどのセキュリティ機能では、パスワードおよびデータの暗号化を使用してセキュリティを実現します。パスワードとは、秘密の文字列であり、ユーザは、これを入力することにより特定のプログラムやシステムにアクセスできます。データの暗号化とは、データを理解できない形式に変換することであり、変換されたデータは復号化のメカニズムがないと解読できません。

電子商取引などで使用される分散アプリケーションには、悪質なユーザがデータを傍受したり、操作を中断したり、不正な情報を入力できるアクセス ポイントが多数あります。ビジネスがより広い範囲に分散されるほど、こうした悪質なユーザによる攻撃を受けやすくなります。したがって、このようなアプリケーションの基盤となる分散型のコンピューティング ソフトウェア、つまりミドルウェアは、セキュリティ機能を備えている必要があります。

Oracle Tuxedo 製品には、ATMI アプリケーション用のセキュリティ機能がいくつか用意されており、その大部分は、特定のニーズに合わせてカスタマイズできます。

関連項目

 


セキュリティ プラグイン

次の図に示すように、Oracle Tuxedo システムで利用できるセキュリティ機能は、プラグイン インタフェースによって実装されています (ただし、例外が 1 つあります)。プラグイン インタフェースにより、Oracle Tuxedo のユーザは、独自のセキュリティ プラグインを定義し、動的に追加することができます。セキュリティ プラグインは、特定のセキュリティ機能を実装するコード モジュールです。

図 1-1 Oracle Tuxedo ATMI のセキュリティ プラグイン アーキテクチャ

Oracle Tuxedo ATMI のセキュリティ プラグイン アーキテクチャ

セキュリティ プラグインのインタフェースの仕様は一般には公開されていませんが、サード パーティのセキュリティ ベンダには公開されています。サード パーティのセキュリティ ベンダは、Oracle 社と専用契約を結ぶことで Oracle Tuxedo のセキュリティ プラグインを開発することができます。セキュリティ機能をカスタマイズする場合は、これらのセキュリティ ベンダにお問い合わせください。たとえば、公開鍵によるセキュリティ機能をカスタマイズする場合は、適切なセキュリティ プラグインを提供するサード パーティのセキュリティ ベンダに問い合わせる必要があります。セキュリティ プラグインの詳細 (インストール手順およびコンフィグレーション手順を含む) については、Oracle 社の営業担当者にお問い合わせください。

関連項目

 


ATMI セキュリティ機能

Oracle Tuxedo システムでは、さまざまな方法でセキュリティを実現できます。たとえば、ホスト オペレーティング システムのセキュリティ機能を使用して、ファイル、ディレクトリ、およびシステム リソースへのアクセスを制御することができます。次の表では、Oracle Tuxedo システムの ATMI 環境で利用できるセキュリティ機能を説明します。

表 1-1 ATMI セキュリティ機能
セキュリティ機能
説明
プラグイン インタフェース
デフォルトの実装
ファイル、ディレクトリ、およびシステム リソースへのアクセスを制御します。
該当なし
該当なし
ユーザまたはシステム プロセスに対して指定されている ID を証明し、ID 情報を安全に記録および転送し、必要に応じて ID 情報を利用可能にします。
1 つのインタフェースとして実装されます。
デフォルトの認証プラグインには、認証なし、アプリケーション パスワードを使用、ユーザ レベルの認証を実行という 3 つのセキュリティ レベルが用意されています。このデフォルトのプラグインは、Oracle Tuxedo システムで最初に実現された、Oracle Tuxedo の従来の認証の実装と同じように機能します。
ID およびその他の情報に基づいて、リソースへのアクセスを制御します。
1 つのインタフェースとして実装されます。
デフォルトの認可プラグインには、2 つのセキュリティ レベル、つまりオプションのアクセス制御リストまたは必須のアクセス制御リストが用意されています。このデフォルトのプラグインは、Oracle Tuxedo システムで最初に実現された、Oracle Tuxedo の従来の認可の実装と同じように機能します。
操作要求とその結果に関する情報を安全に収集、格納、および配布します。
1 つのインタフェースとして実装されます。
デフォルトの監査機能は、Oracle Tuxedo イベント ブローカおよび userlog (ULOG) 機能によって実装されます。
対称鍵による暗号化を使用して、Oracle Tuxedo アプリケーション内のマシン間をつなぐネットワーク リンク上で送受信されるメッセージの秘密性を保護します。
該当なし
RC4 形式の対称鍵による暗号化
業界標準である TLS 1.0 プロトコルを使用して、Oracle Tuxedo アプリケーション内のマシン間をつなぐネットワーク リンク上で送受信されるメッセージの秘密性を保護します。
(TLS は、SSL プロトコルの後継となる標準です。)
該当なし
Certicom 3.1.8 SSL ソフトウェア
公開鍵 (非対称鍵) による暗号化を使用して、ATMI アプリケーションのクライアントとサーバ間でエンド ツー エンドのデジタル署名とデータの秘密性を実現します。この機能は、PKCS-7 標準に準拠しています。
6 つのインタフェースとして実装されます。
デフォルトの公開鍵セキュリティでは、次のアルゴリズムがサポートされます。

関連項目

 


オペレーティング システム (OS) のセキュリティ

ファイルに対するパーミッション設定などのセキュリティ機能を備えた、ホスト側のオペレーティング システムでは、オペレーティング システム レベルのセキュリティが、第一レベルのセキュリティ機能になります。アプリケーション管理者は、ファイルに対してパーミッションを設定することにより、特定のユーザまたはユーザ グループに対して、アクセス特権を付与したり、拒否することができます。

ほとんどの場合、ATMI アプリケーションは、アプリケーション管理者によって管理されます。アプリケーション管理者は、アプリケーションをコンフィグレーションし、起動し、実行中のアプリケーションを動的にモニタし、必要に応じて変更します。ATMI アプリケーションは、管理者が起動し、実行するため、サーバ プログラムは、管理者のパーミッションで実行されます。これで、サーバ プログラムは安全であり、「信頼性がある」と見なされます。この方法は、基盤となるオペレーティング システムのログイン メカニズムとパーミッション設定 (ファイル、ディレクトリ、およびシステム リソースに対する読み取り権と書き込み権の設定) に基づいています。

クライアント プログラムは、自分のパーミッションを持つユーザによって直接実行されます。さらに、ネイティブ クライアント (サーバ プログラムと同じマシンで実行中のクライアント) を実行するユーザは、UBBCONFIG コンフィグレーション ファイルにアクセスしたり、掲示板 (ATMI アプリケーションを制御するパラメータおよびアプリケーションの統計情報を格納するために確保されている共有メモリの一部) などのプロセス間通信 (IPC) のメカニズムにアクセスできます。

より高度なセキュリティ機能を備えたプラットフォーム上の ATMI アプリケーションでは、ファイルおよび IPC メカニズムに対するアクセスをアプリケーション管理者だけに限定し、管理者のパーミッション (UNIX ホスト マシンの setuid コマンドまたは別のプラットフォームでの同等のコマンド) を使用して「信頼性のある」クライアント プログラムを実行すると、より安全です。最も高いレベルのオペレーティング システムのセキュリティを実現するには、ワークステーション クライアントだけがアプリケーションにアクセスできるようにし、アプリケーション サーバおよび管理プログラムを実行するマシンではクライアント プログラムを実行できないようにします。

関連項目

 


認証

認証機能とは、通信するプロセスどうしがお互いの ID を証明し合うことです。Oracle Tuxedo システムの ATMI 環境の認証プラグイン インタフェースは、共有シークレット パスワード、ワンタイム パスワード、CHALLENGE 応答、Kerberos などの認証技術を使用して、セキュリティ プロバイダによるさまざまな認証プラグインに対応できます。インタフェースは、必要に応じて GSSAPI (Generic Security Service Application Programming Interface) の仕様に厳密に従います。GSSAPI は、公開されている IETF (Internet Engineering Task Force) の標準です。認証プラグイン インタフェースは、サード パーティ ベンダのセキュリティ製品をできるだけ簡単に Oracle Tuxedo システムに統合できるように設計されています。ただし、セキュリティ製品は GSSAPI を使用して記述しておく必要があります。

認証プラグインのアーキテクチャ

認証機能を使用するためのプラグイン インタフェースは、1 つのプラグインとして実装され、デフォルトの認証プラグインを使用することも、カスタマイズした認証プラグインを使用することもできます。

委任された信用認証について

Oracle Tuxedo システムなどの分散型のエンタープライズ ミドルウェア環境で、エンド ツー エンドの相互認証を直接行う場合、特に、長時間の接続用に最適化されたセキュリティ メカニズムでは、大幅にコストがかかります。クライアントから各サーバ プロセスに対して直接ネットワーク接続を確立したり、サービス要求の処理時に複数の認証メッセージを交換および検証するのは、非効率的です。代わりに、ATMI アプリケーションは、次の図のような、高信頼性委託型認証モデルを使用します。

図 1-2 ATMI 高信頼性委託型認証モデル

ATMI 高信頼性委託型認証モデル

ワークステーション クライアントは、起動時に、信頼性のあるシステム ゲートウェイ プロセスであるワークステーション ハンドラ (WSH: Workstation Handler) に対して認証を行います。ネイティブ クライアントの場合は、自身に対して認証を行います (後で説明)。認証が成功すると、認証ソフトウェアは、クライアントにセキュリティ トークンを割り当てます。トークンとは、プロセス間の転送に適したオペークなデータ構造体です。WSH は、認証済みのワークステーション クライアントのトークンを安全に格納します。ネイティブ クライアントの場合は、認証済みのネイティブ クライアント自身のトークンを安全に格納します。

信頼性のあるゲートウェイは、通過するクライアント要求にセキュリティ トークンを添付します。添付されたセキュリティ トークンは、クライアント要求のメッセージと共に送信され、送信先のサーバ プロセスでの認可と監査で使用されます。

このモデルのゲートウェイでは、認証ソフトウェアがクライアントの ID を検証し、適切なトークンを生成することが期待されています。一方、サーバサイドでは、ゲートウェイ プロセスで適切なセキュリティ トークンが添付され、そのセキュリティ トークンが、クライアント要求を処理するその他のサーバに安全に格納されることが期待されています。

セッションの確立

次の図は、ワークステーション クライアントと WSH との間でセッションが確立されているときの、Oracle Tuxedo システムの ATMI 環境内の制御フローを示しています。ここでは、ワークステーション クライアントと WSH が、メッセージを交換して相互に認証し合い、長期間にわたる接続を確立する様子を示しています。

図 1-3 クライアントと WSH 間の認証

クライアントと WSH 間の認証

まず、開始プロセス (ミドルウェアのクライアント プロセスなど) が、Oracle Tuxedo の「セキュリティ コンテキストの開始」関数を呼び出して、戻りコードとして成功または失敗が返されるまで繰り返し、セッション コンテキストを作成します。セッション コンテキストは、認証されたユーザと ID 情報を関連付けます。

ワークステーション クライアントが、ATMI アプリケーションに参加するために C の tpinit(3c) または COBOL の TPINITIALIZE(3cbl) を呼び出すと、Oracle Tuxedo システムは、まず内部の「資格取得」関数を呼び出して、セッション資格ハンドルを取得し、応答を返します。次に、内部の「セキュリティ コンテキストの開始」関数を呼び出して、セッション コンテキストを取得します。「セキュリティ コンテキストの開始」関数は、呼び出し時に入力セッション トークンを取り (セッション トークンがある場合)、出力セッション トークンを返します。セッション トークンでは、ユーザの ID を確認するためのプロトコルを使用します。開始プロセスが出力セッション トークンをセッションの対象プロセス (WSH) に渡すと、出力セッション トークンは、別の入力トークンと交換されます。トークンの交換は、双方のプロセスが相互認証を完了するまで繰り返されます。

セキュリティ プロバイダの認証プラグインでは、セキュリティ実装用のセッション トークンおよびセッション コンテキストの内容が定義されています。したがって、Oracle Tuxedo の認証セキュリティでは、セッション トークンとセッション コンテキストをオペークなオブジェクトとして扱う必要があります。交換されるトークンの数は定義されておらず、認証システムのアーキテクチャに応じて異なります。

ネイティブ クライアントでセッションを開始する場合、開始プロセスと対象プロセスは同じです。このプロセスは、ミドルウェア クライアント プロセスと見なすことができます。ミドルウェア クライアント プロセスは、セキュリティ プロバイダの認証プラグインを呼び出してネイティブ クライアントを認証します。

認可トークンおよび監査トークンの取得

認証に成功すると、信頼性のあるゲートウェイは、Oracle Tuxedo の内部関数を 2 つ呼び出し、クライアント用の認可トークンおよび監査トークンを取得します。これらのトークンは、ゲートウェイによって格納されます。これらのトークンの組み合わせは、セキュリティ コンテキストのユーザ ID を表します。セキュリティ トークンという用語は、集合的に認可トークンと監査トークンを表します。

デフォルトの認証の認可トークンには、次の 2 つの情報が設定されています。

また、デフォルトの認証を使用する場合、監査トークンにも、プリンシパル名とアプリケーション キーが設定されます。

セッション トークンと同様に、認可トークンと監査トークンもオペークであり、内容は、セキュリティ プロバイダごとに異なります。認可トークンを使用すると、認可 (パーミッション) をチェックすることができます。監査トークンを使用すると、監査情報を記録することができます。ATMI アプリケーションによっては、認可用と監査用のユーザ ID を別々に設定すると便利です。

クライアント トークンとサーバ トークンの交換

クライアントのサービス要求がサーバサイドで転送されるとき、サーバの ID が付く場合があります。次の図はその様子を示しています。サーバは、サービス要求に添付されたクライアント トークンを自らのトークンに置き換えてから、そのサービス要求を適切なサービスに転送します。

図 1-4 サーバ パーミッションのアップグレード例

サーバ パーミッションのアップグレード例

注意 : サーバが自らの認可トークンと監査トークンを取得する方法、およびこれらのトークンを必要とする理由については、「プリンシパル名の指定」を参照してください。

上の図に示す機能を、サーバ パーミッションのアップグレードと呼びます。この機能では、ドット付きのサービス (.TMIB のように名前の先頭にピリオドが付いた、システムに組み込まれているサービス) をサーバが呼び出すたびに、サービス要求にサーバの ID が付き、サーバに対するアクセス権が取得されます。サーバのアクセス権とは、アプリケーション管理者 (システム管理者) のアクセス権のことです。つまり、クライアントからドット付きのサービスを直接呼び出すことはできなくても、まずサーバに要求を送信し、そのサーバからドット付きのサービスに要求を転送することはできます。ドット付きサービスの詳細については、『Oracle Tuxedo のファイル形式とデータ記述方法』の「MIB(5)」のリファレンス ページにある .TMIB サービスの説明を参照してください。

カスタマイズされた認証の実装

ATMI アプリケーションで認証機能を実行するには、デフォルトのプラグインまたはカスタマイズしたプラグインを使用します。どちらのプラグインを使用するかは、Oracle Tuxedo のレジストリをコンフィグレーションして決めます。これは、すべてのセキュリティ プラグインを制御するツールです。

デフォルトの認証プラグインを使用する場合、レジストリをコンフィグレーションする必要はありません。ただし、カスタマイズされた認証プラグインを使用する場合は、ブラグインをインストールする前に、プラグインに合わせてレジストリをコンフィグレーションする必要があります。レジストリの詳細については、「Oracle Tuxedo レジストリの設定」を参照してください。

関連項目

 


認可

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

認可プラグインのアーキテクチャ

ファンアウトとは、さまざまなプラグインの実装が接続された、アンブレラ (傘) 型のプラグインです。次の図に示すように、認可プラグインのインタフェースは、ファンアウトの構成で実装されます。

図 1-5 認可プラグインのアーキテクチャ

認可プラグインのアーキテクチャ

デフォルトの認可プラグインの実装は、ファンアウト プラグインとデフォルトの認可プラグインで構成されます。カスタマイズされたプラグインの実装は、ファンアウト プラグイン、デフォルトの認可プラグイン、および 1 つ以上のカスタム認可プラグインで構成されます。

ファンアウト プラグイン モデルでは、まず、呼び出し側がファンアウト プラグインに要求を送信します。受信された要求は、下位のプラグインに渡され、各プラグインから応答が返されます。最後に、ファンアウト プラグインは、受け取った複数の応答を 1 つの応答にまとめ (コンポジット応答)、呼び出し側に送信します。

認可要求の目的は、クライアント操作を許可するか、または操作の結果をそのまま残すかを決めることです。各認可プラグインは、permitdeny、または abstain のいずれかの応答を返します。abstain 応答が返されると、認可プラグインの作成者は、元のプラグインでは対応できないこと、たとえば、プラグインのインストール後にシステムに追加された操作名などに対処できます。

次の表は、認可のファンアウト プラグインで作成されるコンポジット応答を示しています。デフォルトの認可の場合、コンポジット応答は、デフォルトの認可プラグインによってのみ決まります。

表 1-2 認可のコンポジット応答
プラグインから返される値
コンポジット応答
すべて permit、または permitabstain の組み合わせの場合
permit
少なくとも 1 つが deny の場合
deny
すべて abstain の場合
deny
ATMI アプリケーションの UBBCONFIG ファイルの SECURITY パラメータが MANDATORY_ACL に設定されている場合
permit
ATMI アプリケーションの UBBCONFIG ファイルの SECURITY パラメータが設定されていないか、または、MANDATORY_ACL 以外の値に設定されている場合

カスタマイズした認可として、銀行アプリケーションを例に取ります。この例では、ユーザを Customer グループのメンバーとし、以下の条件が適用されるとします。

Customer グループのユーザは、月曜日の午前 10 時に 500 ドルを引き出すことはできます。ただし、同じユーザが、土曜日の午前中に同じ操作を行おうとしてもできません。

このほかにも、さまざまな状況が考えられます。色々な状況を想定し、ビジネス上のニーズに合った最適な状況を定義してください。

認可プラグインのしくみ

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

Oracle Tuxedo システムのプロセスまたはサーバ (/Q サーバの TMQUEUE(5) またはイベント ブローカ サーバの TMUSREVT(5) など) は、クライアントからの要求を受け取ると認可プラグインを呼び出します。これに対し、認可プラグインは、操作前のチェックを行い、操作を許可するかどうかを示す応答を返します。

クライアント操作が許可されると、Oracle Tuxedo システムのプロセスまたはサーバは、クライアント操作が完了した後で認可プラグインを呼び出すことができます。これに対し、認可プラグインは、操作後のチェックを行い、操作の結果を許可するかどうかを示す応答を返します。

これらの呼び出しは、アプリケーション レベルの呼び出しではなく、システム レベルの呼び出しです。ATMI アプリケーションは、認可プラグインを呼び出せません。

Oracle Tuxedo システムに組み込まれているデフォルトの認可プラグインを使用する場合と、カスタマイズした認可プラグインを 1 つ以上使用する場合では、認可のプロセスが多少異なります。デフォルトのプラグインでは、操作後のチェックをサポートしていません。したがって、デフォルトの認可プラグインが、操作後のチェックを行う要求を受け取っても、要求は直ちに返され、何も実行されません。

カスタマイズしたプラグインでは、操作前と操作後の両方のチェックをサポートしています。

デフォルトの認可

クライアントから操作前のチェックの実行が要求され、それに対して Oracle Tuxedo のプロセスによってデフォルトの認可が呼び出されると、認可プラグインは、次のタスクを実行します。

  1. 認証プラグインを呼び出して、クライアントの認可トークンから情報を取得します。
  2. 認可トークンは、認証プラグインによって作成されるため、認可プラグインにはトークンの内容が記録されていません。ただし、認可プロセスではこの情報が必要です。

  3. 操作前のチェックを実行します。
  4. 認可プラグインは、クライアントの認可トークン、アクセス制御リスト (ACL: Access Control List)、および ATMI アプリケーションのセキュリティ レベル (ACL のコンフィグレーション (オプションまたは必須)) を調べて、操作を許可するかどうかを決めます。

  5. 操作を実行するかどうかを決定します。
  6. 認可のファンアウト プラグインは、デフォルトの認可プラグインの決定 (permit または deny) を受け取ると、その決定に従って動作します。

    • クライアント操作が許可された場合、ファンアウト プラグインは呼び出し側のプロセスに permit を返します。システムはクライアント要求を実行します。
    • クライアント操作が拒否された場合、ファンアウト プラグインは呼び出し側のプロセスに deny を返します。システムはクライアント要求を実行しません。

カスタマイズした認可

カスタマイズした 1 つ以上の認可プラグインを使用するユーザは、Oracle Tuxedo 製品の ATMI 環境で提供される別の機能を利用できます。つまり、操作の実行後にさらにチェックを行うことができます。

クライアントから操作前のチェックの実行が要求され、それに対して Oracle Tuxedo のプロセスによってカスタマイズした認可が呼び出されると、認可プラグインは、次のタスクを実行します。

  1. 認証プラグインを呼び出して、クライアントの認可トークンから情報を取得します。
  2. 操作前のチェックを実行します。
  3. 認可プラグインは、操作、クライアントの認可トークン、および関連するデータを調べて、操作を許可するかどうかを決めます。関連するデータには、ユーザ データおよび ATMI アプリケーションのセキュリティ レベルが含まれます。

    認可プラグインは、認可の要件に合うよう、必要に応じてユーザ データを変更してから操作を実行します。

  4. 操作を実行するかどうかを決定します。
  5. 認可のファンアウト プラグインは、下位にある個々のプラグインの応答 (permitdeny、または abstain) をチェックして、最終的な決定を行います。

    • クライアント操作が許可された場合、ファンアウト プラグインは呼び出し側のプロセスに permit を返します。システムはクライアント要求を実行します。
    • 操作が拒否された場合、ファンアウト プラグインは呼び出し側のプロセスに deny を返します。システムはクライアント要求を実行しません。

クライアント操作が許可されると、Oracle Tuxedo システムのプロセスは、クライアント操作が完了した後でカスタマイズした認可を呼び出すことができます。その場合、認可プラグインは次のタスクを実行します。

  1. 認証プラグインを呼び出して、クライアントの認可トークンから情報を取得します。
  2. 操作後のチェックを行います。
  3. 認可プラグインは、操作、クライアントの認可トークン、および関連するデータを調べて、操作の結果を許可するかどうかを決めます。関連するデータには、ユーザ データおよび ATMI アプリケーションのセキュリティ レベルが含まれます。

  4. 操作の結果を許可するかどうかを決定します。
  5. 認可のファンアウト プラグインは、下位にある個々のプラグインの応答 (permitdeny、または abstain) をチェックして、最終的な決定を行います。

    • 操作の結果が許可された場合、ファンアウト プラグインは呼び出し側のプロセスに permit を返します。システムは操作の結果を受け付けます。
    • 操作が拒否された場合、ファンアウト プラグインは呼び出し側のプロセスに deny を返します。システムは、操作の結果を変更するか、または操作をロールバックし (元に戻し) ます。

操作後のチェック機能は、ラベル付けされた文書を扱うセキュリティ モデルで便利です。たとえば、機密文書へのアクセスを許可されたユーザが、最高機密文書を取り出す操作を実行したとします (通常、文書を識別するラベルの内容は、その文書が取り出されるまでわかりません)。この場合、操作後のチェックにより、操作の拒否または出力データの変更 (機密情報の削除) を効率的に行うことができます。

カスタマイズした認可の実装

ATMI アプリケーションで認可機能を実行するには、デフォルトのプラグインを使用するか、または 1 つ以上のプラグインをカスタマイズします。プラグインを選択するには、すべてのセキュリティ プラグインを制御するツールである、Oracle Tuxedo レジストリをコンフィグレーションします。

デフォルトの認可プラグインを使用する場合、レジストリをコンフィグレーションする必要はありません。ただし、カスタマイズした認可プラグインを使用する場合は、ブラグインをインストールする前に、プラグインに合わせてレジストリをコンフィグレーションする必要があります。レジストリの詳細については、「Oracle Tuxedo レジストリの設定」を参照してください。

関連項目

 


監査

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

監査方法 (情報の収集、処理、保護、および配布の方法) は、監査プラグインによって異なります。

監査プラグインのアーキテクチャ

ファンアウトとは、さまざまなプラグインの実装が接続された、アンブレラ (傘) 型のプラグインです。次の図は、ファンアウト型で実装された、監査プラグインのインタフェースを示しています。

図 1-6 監査プラグインのアーキテクチャ

監査プラグインのアーキテクチャ

デフォルトの監査プラグインの実装は、ファンアウト プラグインとデフォルトの監査プラグインで構成されます。カスタマイズされたプラグインの実装は、ファンアウト プラグイン、デフォルトの監査プラグイン、および 1 つ以上のカスタム監査プラグインで構成されます。

ファンアウト プラグイン モデルでは、まず、呼び出し側がファンアウト プラグインに要求を送信します。受信された要求は、下位のプラグインに渡され、各プラグインから応答が返されます。最後に、ファンアウト プラグインは、受け取った複数の応答を 1 つの応答にまとめ (コンポジット応答)、呼び出し側に送信します。

監査要求の目的は、イベントを記録することです。success (監査は成功し、イベントが記録される) または failure (監査は失敗し、イベントは記録されない) のどちらかの応答を返します。監査のファンアウト プラグインでは、下位のすべてのプラグインから応答として success が返されると、コンポジット応答は success になります。それ以外の場合、コンポジット応答は failure になります。

デフォルトの監査の場合、コンポジット応答は、デフォルトの監査プラグインによってのみ決まります。カスタマイズした監査の場合、コンポジット応答は、ファンアウト プラグインの下位プラグインの応答によって決まります。ファンアウト プラグインの動作については、「認可プラグインのアーキテクチャ」を参照してください。

監査プラグインのしくみ

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

Oracle Tuxedo システムのプロセスまたはサーバ (/Q サーバの TMQUEUE(5) またはイベント ブローカ サーバの TMUSREVT(5) など) は、クライアントからの要求を受け取ると監査プラグインを呼び出します。監査プラグインは、操作が開始する前に呼び出されるため、操作の実行そのものを記録したり、データを格納することができます。データは、操作後の監査で使用できます。これに対し、監査プラグインは、操作前の監査を実行して、監査が成功したかどうかを返します。

Oracle Tuxedo システムのプロセスまたはサーバは、クライアント操作が実行された後で監査プラグインを呼び出すことができます。これに対し、監査プラグインは、操作後の監査を実行して、監査が成功したかどうかを示す応答を返します。

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

これらの呼び出しは、アプリケーション レベルの呼び出しではなく、システム レベルの呼び出しです。ATMI アプリケーションは、監査プラグインを呼び出せません。

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

カスタマイズしたプラグインでは、操作前と操作後の両方の監査をサポートしています。

デフォルトの監査

デフォルトの監査の実装は、Oracle Tuxedo イベント ブローカとユーザ ログ (ULOG) で構成されます。これらのユーティリティは、セキュリティ違反だけをレポートします。試行された操作、失敗した操作、および成功した操作についてはレポートしません。

セキュリティ違反の疑いに対して操作後の監査を実行するため、Oracle Tuxedo プロセスによってデフォルトの監査が呼び出されると、監査プラグインは、次のタスクを実行します。

  1. 認証プラグインを呼び出して、クライアントの監査トークンから情報を取得します。
  2. 監査トークンは、認証プラグインによって作成されるため、監査プラグインにはトークンの内容が記録されていません。ただし、監査プロセスではこの情報が必要です。

  3. 操作後の監査を行います。
  4. 監査プラグインは、クライアントの監査トークン、および操作後の監査要求で配信されたセキュリティ違反を調べます。

  5. 操作後の監査が成功したかどうかの結果を発行します。
  6. 監査のファンアウト プラグインは、デフォルトの監査プラグインからの決定 (success または failure) を受け取ると、その決定に従って動作します。

    • success は、操作後の監査が成功したことを示します。監査のファンアウト プラグインは、呼び出し側のプロセスに success を返し、セキュリティ違反を記録します。
    • failure は、操作後の監査が失敗したことを示します。監査のファンアウト プラグインは、呼び出し側のプロセスに failure を返します。

カスタマイズした監査

カスタマイズした 1 つ以上の監査プラグインを使用するユーザは、Oracle Tuxedo 製品の ATMI 環境で提供されるの別の機能を利用できます。つまり、操作の実行前に監査を行うことができます。

クライアントから操作前の監査の実行が要求され、それに対して Oracle Tuxedo のプロセスによってカスタマイズした監査が呼び出されると、監査プラグインは、次のタスクを実行します。

  1. 認証プラグインを呼び出して、クライアントの監査トークンから情報を取得します。
  2. 操作前の監査を行います。
  3. 監査プラグインはクライアントの監査トークンを調べて、そのデータが後で操作後の監査に必要となる場合は、ユーザ データを格納することができます。

  4. 操作前の監査が成功したかどうかの結果を発行します。
  5. 監査のファンアウト プラグインは、下位にある個々のプラグインの応答 (success または failure) をチェックして、最終的な決定を行います。

    • コンポジット応答が success の場合は、操作前の監査が成功したことを示します。監査のファンアウト プラグインは、呼び出し側のプロセスに success を返し、クライアントによる操作の試行を記録します。
    • コンポジット応答が failure の場合は、操作前の監査が失敗したことを示します。監査のファンアウト プラグインは、呼び出し側のプロセスに failure を返します。

クライアント操作が実行されると、Oracle Tuxedo プロセスは、カスタマイズした監査を呼び出して操作後の監査を実行できます。その場合、監査プラグインは次のタスクを実行します。

  1. 認証プラグインを呼び出して、クライアントの監査トークンから情報を取得します。
  2. 操作後の監査を行います。
  3. 監査プラグインは、クライアントの監査トークン、操作後の監査要求で配信された完了ステータス、および操作前の監査時に格納されたデータを調べます。

  4. 操作後の監査が成功したかどうかの結果を発行します。
  5. 監査のファンアウト プラグインは、下位にある個々のプラグインの応答 (success または failure) をチェックして、操作後の監査が成功したか、または失敗したかを決定します。

    • コンポジット応答が success の場合は、操作後の監査が成功したことを示します。監査のファンアウト プラグインは、呼び出し側のプロセスに success を返し、操作が完了したことを示すステータスを記録します。
    • コンポジット応答が failure の場合は、操作後の監査が失敗したことを示します。監査のファンアウト プラグインは、呼び出し側のプロセスに failure を返します。

操作前と操作後の監査を両方通過し、操作自体が成功した場合、その操作は成功したものと見なされます。操作前と操作後の両方の監査データを収集および格納する企業もありますが、これらのデータは大量のディスク領域を消費する可能性があります。

カスタマイズした監査の実装

ATMI アプリケーションで監査機能を実行するには、デフォルトのプラグインを使用するか、または 1 つ以上のプラグインをカスタマイズします。プラグインを選択するには、すべてのセキュリティ プラグインを制御するツールである、Oracle Tuxedo レジストリをコンフィグレーションします。

デフォルトの監査プラグインを使用する場合、レジストリをコンフィグレーションする必要はありません。ただし、カスタマイズした認可プラグインを使用する場合は、ブラグインをインストールする前に、プラグインに合わせてレジストリをコンフィグレーションする必要があります。レジストリの詳細については、「Oracle Tuxedo レジストリの設定」を参照してください。

 


リンク レベルの暗号化

リンク レベルの暗号化 (LLE: Link-Level Encryption) は、ATMI アプリケーション内のマシン間をつなぐネットワーク リンク上で送受信されるメッセージの秘密性を保護します。また、対称鍵による暗号化技術である RC4 を使用します。RC4 では、暗号化と復号化の際に同じ鍵を使用します。

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

LLE は、ATMI アプリケーションの次の種類のリンクで使用できます。

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

LLE のしくみ

LLE の制御パラメータおよび基本となる通信プロトコルは、リンクの種類によって異なります。ただし、以下の点では基本的に同じです。

以降の説明では、上記の 2 つのパラメータを (min, max) の形式で表記します。たとえば、あるプロセスの値が (56, 128) の場合は、56 ビットから 128 ビットまでの暗号化がサポートされることを示します。

暗号化キー サイズの調整

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

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

min-max 値の決定

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

共通のキー サイズの検索

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

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

表 1-3 プロセス間の調整結果
 
(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

LLE の旧バージョンとの互換性

Oracle Tuxedo システムの ATMI 環境は、LLE の旧バージョンと互換性があります。

Oracle Tuxedo リリース 6.5 との相互運用性

次の表は、ATMI アプリケーションの 2 つのプロセスのうち、片方がリリース 6.5 で動作しており、もう一方がリリース 7.1 以上で動作しているときの、調整結果のキー サイズを示しています。上段のヘッダ行は、リリース 7.1 以上で動作するプロセスの min-max 値を示しています。左側のカラムは、リリース 6.5 で動作するプロセスの min-max 値を示しています。

表 1-4 Oracle Tuxedo リリース 6.5 と相互運用するときのキー サイズの調整結果
 
(0, 0)
(0, 56)
(0, 128)
(56, 56)
(56, 128)
(128, 128)
(0, 0)
0
0
0
エラー
エラー
エラー
(0, 40)
0
56
56
56
56
エラー
(0, 128)
0
56
128
56
128
128
(40, 40)
エラー
56
56
56
56
エラー
(40, 128)
エラー
56
128
56
128
128
(128, 128)
エラー
エラー
128
エラー
128
128

現在インストールされている Oracle Tuxedo が (0, 56)、(0, 128)、(56,56)、または (56, 128) にコンフィグレーションされているときに、LLE の最大レベルが 40 ビットにコンフィグレーションされている ATMI アプリケーションのリリース 6.5 と相互運用させようとすると、調整結果のキー サイズは、常に 56 に自動アップグレードされます。

この調整結果は、2 つのサイトで共にリリース 6.5 が動作しており、LLE のレベルが 40 ビットにコンフィグレーションされている場合の結果と同じです。どちらの場合も、調整を行うと、56 に自動的にアップグレードされます。

Oracle Tuxedo リリース 6.5 より前のバージョンとの相互運用性

次の表は、ATMI アプリケーションの 2 つのプロセスのうち、片方がリリース 6.5 より前のバージョンで動作しており、もう一方がリリース 7.1 以上で動作しているときの、調整結果のキー サイズを示しています。上段のヘッダ行は、リリース 7.1 以上で動作するプロセスの min-max 値を示しています。左側のカラムは、リリース 6.5 より前のバージョンで動作するプロセスの min-max 値を示しています。

表 1-5 Oracle Tuxedo リリース 6.5 より前のバージョンと相互運用するときのキー サイズの調整結果
 
(0, 0)
(0, 56)
(0, 128)
(56, 56)
(56, 128)
(128, 128)
(0, 0)
0
0
0
エラー
エラー
エラー
(0, 40)
0
40
40
エラー
エラー
エラー
(0, 128)
0
40
128
エラー
128
128
(40, 40)
エラー
40
40
エラー
エラー
エラー
(40, 128)
エラー
40
128
エラー
128
128
(128, 128)
エラー
エラー
128
エラー
128
128

現在インストールされている Oracle Tuxedo が (0, 56) または (0, 128) にコンフィグレーションされているときに、LLE の最大レベルが 40 ビットにコンフィグレーションされている、リリース 6.5 より前のバージョンの ATMI アプリケーションと相互運用させようとすると、調整結果のキー サイズは、常に 40 になります。

現在インストールされている Oracle Tuxedo が (56, 56)、(56, 128)、または (128, 128) にコンフィグレーションされていると、LLE の最大レベルが 40 にコンフィグレーションされている、ATMI アプリケーションのリリース 6.5 より前のバージョンとは相互運用できません。共通のキー サイズを調整しようとしてもできません。

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

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

LLE のインストールとライセンス供与

LLE ソフトウェアは、Oracle Tuxedo システムの一部として、Oracle Tuxedo CD-ROM に収められています。米国およびカナダで LLE を使用するための Oracle Tuxedo リリース 7.1 のライセンスが供与されている場合、56 ビットまたは 128 ビットの暗号化が可能です。米国およびカナダ以外で LLE を使用するためのライセンスが供与されている場合、56 ビットの暗号化が可能です。

Oracle Tuxedo のライセンスは、UNIX ホスト マシンの場合は $TUXDIR/udataobj/lic.txt ファイル、Windows ホスト マシンの場合は %TUXDIR%\udataobj\lic.txt ファイルにすべて格納されています。

次のリストは、米国およびカナダで LLE を実行するためのライセンス ファイルのサンプルからの抜粋です。

[Oracle Tuxedo]
VERSION=9.1
LICENSEE=ACME CORPORATION
SERIAL=155566678
ORDERID=
USERS=1000
EXPIRATION=2006-01-31
SIGNATURE=TXmtx+AhQdJgr3sjjznBqRB7SP9Jgr3UzAKctjz+e6RmsFSAhUAhStj
   znBQdL9n=
[LINK ENCRYPTION]
VERSION=9.1
LICENSEE=ACME CORPORATION
SERIAL=155566678
ORDERID=
USERS=1000
STRENGTH=128
EXPIRATION=2006-01-31
SIGNATURE=TXUAhSPnx2C9kMC0CFG+e6Rgr3UzmsFKRBPdJASAhU7KctjznBqFQsj
   jznBdh0h=
   .
   .
   .

関連項目

 


SSL 暗号化

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

注意 : 実際に使用されているネットワーク プロトコルは、SSL プロトコルの後継にあたる TLS 1.0 です。しかしながらこのドキュメントでは、一般的な用法に従い、このプロトコルを SSL 暗号化と呼んでいます。

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

SSL は、ATMI アプリケーションの次の種類のリンクで使用できます。

SSL セキュリティには、0 ビット (暗号化なし)、56 ビット、128 ビット、および 256 ビットの 4 つのレベルがあります。Tuxedo ライセンス ファイルの SSL セクションで STRENGTH=56 と指定した場合は、0 ビットおよび 56 ビットの SSL 暗号のみを使用できます。Tuxedo ライセンス ファイルの SSL セクションに STRENGTH=128 と指定されている場合は、0 ビット、56 ビット、128 ビット、および 256 ビットの SSL 暗号を使用できます。

SSL プロトコルのしくみ

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

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

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

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

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

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

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

注意 : 256 ビット SSL は、ライセンス ファイルに STRENGTH=128 と指定されている場合でも使用できます。

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

暗号化キー サイズの調整

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

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

min-max 値の決定

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

共通のキー サイズの検索

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

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

表 1-6 プロセス間の調整結果 : (0, 0) から (56, 256)
 
(0, 0)
(0, 56)
(0, 128)
(0, 256)
(56, 56)
(56, 128)
(56, 256)
(0, 0)
0
0
0
0
エラー
エラー
エラー
(0, 56)
0
56
56
56
56
56
56
(0, 128)
0
56
128
128
56
128
128
(0, 256)
0
56
128
256
56
128
256
(56, 56)
エラー
56
56
56
56
56
56
(56, 128)
エラー
56
128
128
56
128
128
(56, 256)
エラー
56
128
256
56
128
256
(128, 128)
エラー
エラー
128
128
エラー
128
128
(128,256)
エラー
エラー
128
256
エラー
128
256
(256,256)
エラー
エラー
エラー
256
エラー
エラー
256

表 1-7 プロセス間の調整結果 : (128, 128) から (256, 256)
 
(128, 128)
(128, 256)
(256, 256)
(0, 0)
エラー
エラー
エラー
(0, 56)
エラー
エラー
エラー
(0, 128)
128
128
エラー
(0, 256)
128
256
256
(56, 56)
エラー
エラー
エラー
(56, 128)
128
128
エラー
(56, 256)
128
256
256
(128, 128)
128
128
エラー
(128,256)
128
256
256
(256,256)
エラー
256
256

SSL の旧バージョンとの互換性

2 つの Tuxedo プロセスの間で SSL を使用するには、両方のプロセスで Tuxedo 10.0 以降を実行している必要があります (ただし、『Tuxedo CORBA アプリケーションのセキュリティ機能』で説明されている CORBA SSL 機能を使用する場合を除きます)。WSL プロセスと JSL プロセスに非 SSL ポートと SSL ポートの両方を指定し、*DM_TDOMAIN 内の個別のエントリに SSL 接続または LLE 接続を指定できます。この方法により、個別のワークステーション クライアントおよび Tuxedo ドメインを Tuxedo 10 にアップグレードするのに合わせ、ワークステーションやドメイン アプリケーションを徐々に SSL に移行できます。

注意 : MP モード アプリケーションでは、Tuxedo ドメイン内のすべてのマシンを Tuxedo 10.0 にアップグレードするまでは、BRIDGE プロセスと tlisten プロセスの間で SSL を使用することはできません。

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

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

サポートされている暗号スイート

暗号スイートとは、通信の整合性を保護するための鍵暗号アルゴリズム、対称暗号アルゴリズム、および Secure Hash Algorithm からなる SSL 暗号化方式のことです。たとえば、暗号スイート RSA_WITH_RC4_128_MD5 では、鍵暗号用に RSA、バルク暗号化用に 128 ビット鍵の RC4、メッセージ ダイジェスト用に MD5 を使用します。

ATMI セキュリティ環境では、表 1-8 の暗号化スイートがサポートされています。

表 1-8 ATMI セキュリティ環境でサポートされている SSL 暗号スイート
暗号スイート
鍵暗号の種類
対称鍵の
強度
TLS_RSA_WITH_AES_256_CBC_SHA
RSA
256
SSL_RSA_WITH_RC4_128_SHA
RSA
128
SSL_RSA_WITH_RC4_128_MD5
RSA
128
SSL_RSA_WITH_DES_CDC_SHA
RSA
56
SSL_RSA_EXPORT_WITH_RC4_40_MD5
RSA
40
SSL_RSA_EXPORT_WITH_DES40_CBC_SHA
RSA
40
SSL_RSA_EXPORT_WITH_RC2_CBC_40_MD5
RSA
40
SSL_DH_DSS_EXPORT_WITH_DES40_CBC_SHA
Diffie- Hellman
40
SSL_DH_RSA_EXPORT_WITH_DES40_CBC_SHA
Diffie- Hellman
40
SSL_RSA_WITH_3DES_EDE_CBC_SHA
RSA
112
SSL_RSA_WITH_NULL_SHA
RSA
0
SSL_RSA_WITH_NULL_MD5
RSA
0

SSL のインストールとライセンス供与

SSL ソフトウェアは、Oracle Tuxedo システムの一部として、Oracle Tuxedo CD-ROM に収められています。SSL を使用するための Oracle Tuxedo リリース 7.1 のライセンスが供与されている場合は、256 ビットの暗号化が可能です。

Oracle Tuxedo のライセンスは、UNIX ホスト マシンの場合は $TUXDIR/udataobj/lic.txt ファイル、Windows ホスト マシンの場合は %TUXDIR%\udataobj\lic.txt ファイルにすべて格納されています。

次のリストは、SSL を実行するためのライセンス ファイルのサンプルからの抜粋です。

[Oracle Tuxedo]
VERSION=10.0
LICENSEE=ACME CORPORATION
SERIAL=155566678
ORDERID=
USERS=1000
EXPIRATION=2006-01-31
SIGNATURE=TXmtx+AhQdJgr3sjjznBqRB7SP9Jgr3UzAKctjz+e6RmsFSAhUAhStj
   znBQdL9n=
[SSL ENCRYPTION]
VERSION=10.0
LICENSEE=ACME CORPORATION
SERIAL=155566678
ORDERID=
USERS=1000
STRENGTH=128
EXPIRATION=2006-01-31
SIGNATURE=TXUAhSPnx2C9kMC0CFG+e6Rgr3UzmsFKRBPdJASAhU7KctjznBqFQsj
   jznBdh0h=
   .
   .
   .

関連項目

 


公開鍵によるセキュリティ機能

公開鍵によるセキュリティは、エンド ツー エンドのデジタル署名およびデータの暗号化を実現する、次の 2 つの機能を提供します。

メッセージ ベースのデジタル署名により、メッセージの受信者は、送信元と送信メッセージの両方を識別し、認証できます。デジタル署名では、送信元と送信メッセージの内容が確実に証明されます。送信メッセージには、送信者の署名が添付されているため、送信者はメッセージを送信した事実を否認することはできません。たとえば、ある人が自分の銀行口座から引き出しを行った後で、その処理が別の人によって行われたと主張することはできません。

さらに、メッセージ ベースの暗号化では、指定した受信者だけがメッセージを復号化できるため、メッセージの機密性が保たれます。

PKCS-7 への準拠

RSA Laboratories を中心とする主要な通信会社のグループによって規定された、非公式でありながら業界では認知されている公開鍵ソフトウェアの標準があります。これを PKCS (Public-Key Cryptography Standards) と言います。Oracle Tuxedo の ATMI 環境の公開鍵ソフトウェアは、PKCS-7 標準に準拠しています。

PKCS-7 は、ハイブリッド型の暗号化システムのアーキテクチャです。つまり、メッセージを暗号化するときは、ランダムなセッション キーを用いた対称鍵のアルゴリズムを使用し、ランダムなセッション キーを暗号化するときは、公開鍵のアルゴリズムを使用します。乱数ジェネレータにより、通信のたびに新しいセッション キーが作成されます。これで、以前の通信を利用した攻撃を防ぐことができます。

サポートされている公開鍵のアルゴリズム

公開鍵の基底のアルゴリズムは、いずれもよく知られており、一般に市販されています。ATMI アプリケーションに最も適したアルゴリズムを選択するには、処理速度、セキュリティのレベル、およびライセンスに関する制約を考慮してください。たとえば、米国政府は、外国に輸出できるアルゴリズムを制限しています。

公開鍵のアルゴリズム

Oracle Tuxedo の ATMI 環境の公開鍵によるセキュリティでは、RSA、ElGamal、Rabin など、基盤となるプラグインでサポートされるすべての公開鍵のアルゴリズムがサポートされます (RSA は、RSA アルゴリズムの発明者の頭文字 (Rivest、Shamir、Adelman) を取ったものです)。これらのアルゴリズムはすべて、デジタル署名と暗号化に使用できます。

RSA など、公開鍵 (または非対称鍵) のアルゴリズムは、次の 2 つの鍵の組み合わせによって実装されます。これらの鍵は異なりますが、数学的には関連性があります。

デジタル署名のアルゴリズム

Oracle Tuxedo の ATMI 環境のデジタル署名によるセキュリティでは、RSA、ElGamal、Rabin、Digital Signature Algorithm (DSA) など、基盤となるプラグインでサポートされるすべてのデジタル署名アルゴリズムがサポートされます。DSA 以外のすべてのアルゴリズムは、デジタル署名と暗号化に使用できます。DSA は、デジタル署名には使用できますが、暗号化には使用できません。

デジタル署名のアルゴリズムは、単にデジタル署名を実現するための公開鍵アルゴリズムです。DSA も公開鍵アルゴリズム、つまり、公開鍵とプライベート キーの組み合わせによって実装するアルゴリズムですが、デジタル署名用です。暗号化には適用できません。

対称鍵のアルゴリズム

公開鍵セキュリティでは、以下の 3 つの対称鍵アルゴリズムをサポートしています。

Oracle Tuxedo をお使いのお客様は、このアルゴリズムのリストを拡張したり変更することはできません。

対称鍵アルゴリズムでは、同じ鍵を使用して、メッセージの暗号化と復号化を行います。公開鍵による暗号化システムでは、通信し合う 2 つのエンティティ間で送信されるメッセージの暗号化に対称鍵暗号化を使用します。対称鍵暗号は、公開鍵暗号より、少なくとも 1000 倍速く実行されます。

ブロック暗号は、対称鍵アルゴリズムの一種であり、固定長の平文 (暗号化されていないテキスト) のブロックを、同じ長さの暗号文 (暗号化されたテキスト) のブロックに変換します。この変換は、ランダムに生成されたセッション キーの値に基づいて行われます。固定長は、ブロック サイズと呼ばれます。

メッセージ ダイジェスト アルゴリズム

公開鍵によるセキュリティでは、MD5、SHA-1 (Secure Hash Algorithm 1) など、基盤となるプラグインでサポートされるすべてのメッセージ ダイジェスト アルゴリズムがサポートされます。MD5 と SHA-1 は、どちらも有名な一方向のハッシュ アルゴリズムです。一方向のハッシュ アルゴリズムでは、メッセージが「メッセージ ダイジェスト」または「ハッシュ値」と呼ばれる固定長の数値文字列に変換されます。

MD5 は、128 ビットのハッシュ値を生成する、高速のアルゴリズムです。32 ビットのマシンでの使用に適しています。SHA-1 は、160 ビットのハッシュ値を生成する、セキュリティ レベルの高いアルゴリズムですが、処理速度は MD5 よりやや遅くなります。

公開鍵のインストールとライセンス供与

メッセージ ベースのデジタル署名およびメッセージ ベースの暗号化のソフトウェアは、Oracle Tuxedo システムの一部として、Oracle Tuxedo CD-ROM に収められていますが、これを使用するには別個のライセンスが必要です。Oracle Tuxedo のライセンスは、UNIX ホスト マシンの場合は $TUXDIR/udataobj/lic.txt ファイル、Windows 2003 ホスト マシンの場合は %TUXDIR%\udataobj\lic.txt ファイルにすべて格納されています。

次のリストは、メッセージ ベースのデジタル署名およびメッセージ ベースの暗号化用のライセンス ファイルのサンプルからの抜粋です。

[Oracle Tuxedo]
VERSION=9.1
LICENSEE=ACME CORPORATION
SERIAL=155566678
ORDERID=
USERS=1000
EXPIRATION=2006-01-31
SIGNATURE=TXmtx+AhQdJgr3sjjznBqRB7SP9Jgr3UzAKctjz+e6RmsFSAhUAhStj
   znBQdL9n=
   .
   .
   .
[PK ENCRYPTION]
VERSION=9.1
LICENSEE=ACME CORPORATION
SERIAL=155566678
ORDERID=
USERS=1000
STRENGTH=128
EXPIRATION=2006-01-31
SIGNATURE=TX0CFHkaBpKpAlXGEtQqi+/jJvMo1VB9AhUAUAkizwsgYefRwQJDNTF
   0205b1ik=
[PK SIGNATURE]
VERSION=9.1
LICENSEE=ACME CORPORATION
SERIAL=155566678
ORDERID=
USERS=1000
STRENGTH=128
EXPIRATION=2006-01-31
SIGNATURE=TX0CiqA5FCAXJFXUEGvAki+gL+i09eRep9hYdshS/8a70MIJQChUAk9
   zIAhUIH4=

関連項目

 


メッセージ ベースのデジタル署名

メッセージ ベースのデジタル署名は、メッセージの送信者の ID を証明し、その内容を特定のメッセージ バッファとバインドすることにより、Oracle Tuxedo のセキュリティ機能を強化します。企業間または企業と一般ユーザの間で、インターネットを介してデータを送受信する多くのアプリケーションでは、送信側と受信側の両方で認証を行い、送信妨害のない通信を実現することが重要です。これらの条件は、セキュリティ保護されていない社内ネットワークを使用して ATMI アプリケーションを導入する場合にも特に重要です。

メッセージ ベースのデジタル署名では、エンド ツー エンドで内容がセキュリティ保護されます。つまり、メッセージ バッファは、送信プロセスで発信され、受信プロセスで受け取られるまで保護されます。送信中には、一時的なメッセージ キュー、ディスク ベース キュー、システム プロセスなどの中継ポイントでも保護され、サーバ間のネットワーク リンクで転送される間も保護されます。

次の図は、エンド ツー エンド型のメッセージ ベースのデジタル署名のしくみを示しています。

図 1-8 ATMI PKCS-7 のエンド ツー エンドのデジタル署名

ATMI PKCS-7 のエンド ツー エンドのデジタル署名

メッセージ ベースのデジタル署名では、メッセージのメッセージ ダイジェストを計算し、次に送信者のプライベート キーでメッセージ ダイジェストを暗号化して、デジタル署名を生成します。受信者は、暗号化されたメッセージ ダイジェストを署名者の公開鍵を使って復号化し、復号化したメッセージ ダイジェストと、別途計算したメッセージ ダイジェストを比較することによって、署名を検証します。署名者の公開鍵は、署名者の情報に含まれているデジタル証明書から参照するか、または、公開鍵の証明をユニークに識別する、発行者識別名および発行者固有のシリアル番号を参照して取得します。

デジタル証明書

デジタル証明書は、インターネットなどのネットワーク経由で、個人およびリソースを識別するために使用される電子ファイルです。デジタル証明書は、信頼性のある第三者機関である「認証局」によって認定された個人またはリソースの ID を特定の公開鍵に安全な方法でバインドします。公開鍵は重複しないため、公開鍵からオーナーを特定できます。

デジタル証明書は、特定の公開鍵が特定のサブスクライバ (所有者) に属することを検証します。証明書の受信者は、証明書に記載されている公開鍵を使用して、その公開鍵に対応するプライベート キーでデジタル署名が作成されたことを検証します。検証が成功すると、証明書で指定されたサブスクライバが、対応するプライベート キーの所有者であること、および、そのサブスクライバによってデジタル署名が作成されたことを、一連の処理で確認できたことになります。

証明書には、次のようなさまざまな情報が含まれています。

最も広く知られている証明書の形式は、ITU-T X.509 国際規格によって定義された形式です。したがって、X.509 準拠の ATMI アプリケーションであれば、証明書の読み書きを行えます。Oracle Tuxedo の ATMI 環境の公開鍵によるセキュリティ機能では、X.509 バージョン 3 (X.509v3) 準拠の証明書が認識されます。

認証局

証明書は、認証局 (CA: Certification Authority) によって発行されます。証明書と公開鍵の発行対象に対して ID を保証できる、信頼性のある第三者機関または企業は、CA となることができます。CA は、証明書の作成時にプライベート キーを使用して証明書に署名し、デジタル署名を取得します。次に、CA は署名付きの証明書をサブスクライバに返します。証明書と CA の署名の組み合わせにより、有効な証明書が作成されます。

サブスクライバおよびその他の人が、CA のデジタル署名を検証するには、CA の公開鍵を使用します。CA は、そのキーを公開するか、または上位レベルの CA の証明書 (下位レベルの CA の公開鍵の有効性を証明) を発行して、公開鍵を利用可能にします。2 つ目の方法を用いると、CA が階層化されます。

暗号化メッセージの受信者が、信頼する上位 CA によって署名された証明書を持ち、この証明書に CA の公開鍵が含まれている場合は、CA のプライベート キーの信頼性を再帰的に高めることができます。この意味で、証明書は、デジタル署名の信頼性を確認する足がかりとなります。つまり、最終的には、いくつかの上位 CA の公開鍵の信頼性を確認するだけで済みます。一連の証明書を確認することにより、多数のユーザ署名の信頼性を証明できます。

つまり、デジタル署名は通信エンティティの ID を証明しますが、署名の信頼度は、署名を検証するための公開鍵を信頼できる、というレベルと同じです。

Oracle が CA となる予定はありません。Oracle の公開鍵のプラグイン インタフェースにより、Oracle Tuxedo のユーザは、CA を自由に選択できます。

証明書のリポジトリ

特定のサブスクライバ用の公開鍵およびその ID を利用可能にし、検証に使用できるようにするため、デジタル証明書をリポジトリに公開したり、その他の方法で公開できます。リポジトリは、証明書およびその他の情報で構成されるデータベースであり、リポジトリ内の情報は、取得したり、デジタル署名を検証するために使用できます。情報を取得するには、検証プログラムを実行し、直接リポジトリ内の証明書を要求することにより、自動的に行います。

PKI (Public-Key Infrastructure)

PKI (Public-Key Infrastructure) は、公開鍵暗号のアプリケーションをサポートするプロトコル、サービス、および標準で構成されます。PKI は比較的新しい技術であるため、定義はあいまいです。たとえば、単に、公開鍵証明書に基づいた、信頼性を示す階層構造を指す場合があります。また、別のコンテキストでは、エンド ユーザ用アプリケーションのデジタル署名および暗号化サービスを意味する場合もあります。

PKI を規定する単一の標準はありませんが、標準の策定を進める動きはあります。現時点では、標準が策定されるかどうか、またはさまざまな相互運用レベルの PKI が複数誕生するかどうかは不明です。この意味で、PKI 技術の現状は、インターネットによる広範囲の接続が可能になるまでの、1980 年代の LAN および WAN 技術に似ていると言えます。

PKI には、次のようなサービスがあります。

次の図は、PKI の処理の流れを示します。

図 1-9 PKI の処理の流れ

PKI の処理の流れ

  1. サブスクライバは、認証局 (CA) にデジタル証明を申し込みます。
  2. CA は、サブスクライバの ID を検証し、デジタル証明書を発行します。
  3. CA は、リポジトリに証明書を公開します。
  4. サブスクライバは、プライベート キーで電子メッセージにデジタル署名して、送信者が認証済みであること、メッセージが完全であること、およびメッセージを否認できないことを確認します。その後、メッセージを受信者に送信します。
  5. 受信者は、メッセージを受信すると、サブスクライバの公開鍵でデジタル署名を検証し、リポジトリでサブスクライバの証明書のステータスと有効性をチェックします。
  6. サブスクライバの証明書に関するステータス チェックの結果が、リポジトリから受信者に返されます。

Oracle が PKI ベンダとなる予定はありません。Oracle の公開鍵のプラグイン インタフェースにより、Oracle Tuxedo のユーザは、PKI ソフトウェアのベンダを自由に選択し、PKI のセキュリティ ソリューションを使用できます。

関連項目

 


メッセージ ベースの暗号化

メッセージ ベースの暗号化では、データが秘密に扱われます。これは、企業間または企業と一般ユーザの間で、インターネットを介してデータを送受信する ATMI アプリケーションでは重要です。データの秘密性は、セキュリティ保護されていない社内ネットワークを使用して ATMI アプリケーションを導入する場合にも特に重要です。

メッセージ ベースの暗号化では、メッセージが意味のわからない状態に変換され、内容を変更しようとしてもできないため、メッセージの整合性が保たれます。

メッセージ ベースの暗号化では、エンド ツー エンドで内容がセキュリティ保護されます。つまり、メッセージ バッファは、送信プロセスで発信され、受信プロセスで受け取られるまで保護されます。送信中には、一時的なメッセージ キュー、ディスク ベース キュー、システム プロセスなどの中継ポイントでも保護され、サーバ間のネットワーク リンクで転送される間も保護されます。

次の図は、エンド ツー エンド型のメッセージ ベースの暗号化のしくみを示しています。

図 1-10 ATMI PKCS-7 のエンド ツー エンドの暗号化

ATMI PKCS-7 のエンド ツー エンドの暗号化

メッセージは、対称鍵アルゴリズムとセッション キーによって暗号化されます。次に、セッション キーが受信者の公開鍵によって暗号化されます。さらに、受信者は、受信者のプライベート キーを使用して、暗号化されたセッション キーを復号化します。最後に、受信者は、セッション キーを使用して暗号化されたメッセージを復号化し、メッセージ内容を取得します。

注意 : この図では、(1) メッセージを暗号化する直前にデータを圧縮する、および (2) メッセージを復号化した直後にデータを解凍する、という 2 つの手順が説明されていません。

暗号化は、ATMI のメッセージ バッファ単位で行われます。したがって、メッセージ ベースの暗号化は、既存の ATMI のプログラミング インタフェースおよび通信パラダイムと互換性があります。暗号化のプロセスは、単一のマシン内にある 2 つのプロセス間で送受信されるメッセージに対して行われる場合も、2 つのマシン間でネットワークを介して送受信されるメッセージに対して行われる場合も同じです。

関連項目

 


公開鍵の実装

公開鍵セキュリティのベースとなるプラグイン インタフェースは、6 つのコンポーネント インタフェースから成り、それぞれのコンポーネントは、1 つ以上のプラグインを必要とします。これらのインタフェースを好みのプラグインでインスタンス化すれば、メッセージ ベースのカスタム デジタル署名とメッセージ ベースの暗号化を ATMI アプリケーションに持ち込むことができます。

6 つのコンポーネント インタフェースを次に示します。

公開鍵の初期化

公開鍵の初期化インタフェースによって、公開鍵ソフトウェアは、公開鍵とプライベート キーを開くことができます。たとえば、ゲートウェイ プロセスでは、メッセージを復号化してから転送するために、特定のプライベート キーへのアクセスが必要なこともあります。このインタフェースは、ファンアウトとして実装されます。

鍵の管理

鍵管理インタフェースによって、公開鍵ソフトウェアは、公開鍵とプライベート キーを管理および使用することができます。なお、メッセージ ダイジェストとセッション キーは、このインタフェースを使用して暗号化および復号化されますが、公開鍵暗号を使用するバルク データの暗号化は行われません。バルク データの暗号化は、対称鍵暗号を使用して行われます。

証明書のルックアップ

証明ルックアップ インタフェースによって、公開鍵ソフトウェアは、所定のプリンシパルに対する X.509v3 証明を取得できます。プリンシパルは認証されたユーザです。証明データベースは、Lightweight Directory Access Protocol (LDAP)、Microsoft Active Directory、Netware Directory Service (NDS)、またはローカル ファイルなど、適切なツールを使用して格納することができます。

証明書の解析

証明解析インタフェースによって、公開鍵ソフトウェアは、簡単なプリンシパル名と X.509v3 証明を関連付けることができます。パーサは、証明を解析して、証明に関連付けるプリンシパル名を生成します。

証明書の検証

証明検査インタフェースによって、公開鍵ソフトウェアは、特定のビジネス ロジックに基づいて X.509v3 証明を検証することができます。このインタフェースはファンアウトとして実装されているため、Oracle Tuxedo のユーザは、自分自身のビジネス ルールを使用して証明の有効性を判定できます。

証明資料のマッピング

証明資料のマッピング インタフェースによって、公開鍵ソフトウェアは、鍵を開くために必要な証明資料へのアクセス、認可トークンの提供、および監査トークンの提供を行うことができます。

カスタマイズした公開鍵の実装

ATMI アプリケーションに公開鍵セキュリティを提供するには、カスタム プラグインを使用します。プラグインを選択するには、すべてのセキュリティ プラグインを制御するツールである、Oracle Tuxedo レジストリをコンフィグレーションします。

カスタム公開鍵プラグインを使用する場合は、公開鍵プラグイン用のレジストリをコンフィグレーションしてから、それらのプラグインをインストールする必要があります。レジストリの詳細については、「Oracle Tuxedo レジストリの設定」を参照してください。

デフォルトの公開鍵の実装

デフォルト公開鍵の実装では、以下のアルゴリズムをサポートしています。

関連項目

 


デフォルトの認証と認可

Oracle Tuxedo システムの ATMI 環境に用意されている、デフォルトの認証および認可のプラグインは、Oracle Tuxedo で最初に実現された、従来の Oracle Tuxedo の認証および認可の実装と同じように機能します。

アプリケーション管理者は、デフォルトの認証および認可のプラグインを使用して、5 つのうち、1 つのセキュリティ レベルを ATMI アプリケーションにコンフィグレーションできます。5 つのセキュリティ レベルは、以下のとおりです。

最も低いセキュリティ レベルでは、認証は行われません。最も高いセキュリティ レベルでは、アクセス制御リストの機能により、サービスを実行し、イベントをポストし、アプリケーション キューのメッセージをキューに登録 (または登録解除) するユーザが決定されます。次の表は、セキュリティ レベルを簡単にまとめたものです。

表 1-9 デフォルトの認証と認可のセキュリティ レベル
セキュリティ レベル
説明
認証なし
ATMI アプリケーションに参加する前にクライアントを検証する必要はありません。
このセキュリティ レベルで ATMI アプリケーションに参加すると、ユーザはすべてのアプリケーション リソースにアクセスできます。
アプリケーション パスワード
アプリケーション管理者は、ATMI アプリケーション全体に対して 1 つのパスワードを定義します。クライアントがアプリケーションに参加するには、パスワードを提示しなければなりません。
このセキュリティ レベルで ATMI アプリケーションに参加できると、ユーザはすべてのアプリケーション リソースにアクセスできます。
ユーザ レベルの認証
ATMI アプリケーションに参加するには、各クライアントは、アプリケーション パスワードのほか、有効なユーザ名とユーザ固有のデータ (パスワードなど) を提示しなければなりません。
このセキュリティ レベルで ATMI アプリケーションに参加できると、ユーザはすべてのアプリケーション リソースにアクセスできます。
オプションのアクセス制御リスト (ACL)
クライアントは、アプリケーション パスワード、ユーザ名、およびユーザ固有のデータ (パスワードなど) を提示しなければなりません。
このセキュリティ レベルで ATMI アプリケーションに参加すると、ユーザによるアプリケーション リソースへのアクセスは制限されます。つまり、ACL データベースに格納されているアプリケーション リソースのリストにより、各リソースを使用できるユーザが制限されます。特定のリソースのリストに含まれていないユーザは、オプションの ACL または必須の ACL が使用されていても、そのリソースにはアクセスできません。
ATMI アプリケーションのセキュリティ レベルが「オプションの ACL」に設定されている場合、ACL データベースにエントリがないリソースには、誰でもアクセスできます。
必須のアクセス制御リスト (ACL)
クライアントは、アプリケーション パスワード、ユーザ名、およびユーザ固有のデータ (パスワードなど) を提示しなければなりません。
このセキュリティ レベルで ATMI アプリケーションに参加すると、ユーザによるアプリケーション リソースへのアクセスは制限されます。つまり、ACL データベースに格納されているアプリケーション リソースのリストにより、各リソースを使用できるユーザが制限されます。特定のリソースのリストに含まれていないユーザは、オプションの ACL または必須の ACL が使用されていても、そのリソースにはアクセスできません。
ATMI アプリケーションのセキュリティ レベルが「必須の ACL」に設定されている場合、ACL データベースにエントリがないリソースには、どのユーザもアクセスできません。

注意 : 「クライアント」という用語は「クライアント プロセス」と同義であり、実行中のクライアント プログラムの特定のインスタンスを意味します。ATMI のクライアント プログラムは、任意の数の個別インスタンスのアクティブ メモリ内に存在することができます。

アプリケーション管理者は、UBBCONFIG コンフィグレーション ファイルの SECURITY パラメータに適切な値を設定することにより、セキュリティ レベルを指定できます。

セキュリティ レベル
SECURITY パラメータに設定する値
認証なし
NONE
アプリケーション パスワードによるセキュリティ
APP_PW
ユーザ レベルの認証
USER_AUTH
オプションのアクセス制御リスト (ACL)
ACL
必須のアクセス制御リスト (ACL)
MANDATORY_ACL

デフォルト値は NONE です。SECURITYUSER_AUTHACL、または MANDATORY_ACL を設定した場合、アプリケーション管理者は、システム側で提供される AUTHSVR という名前の認証サーバをコンフィグレーションしなければなりません。AUTHSVR は、ユーザ単位で認証を行います。

アプリケーション開発者は、AUTHSVR を、ATMI アプリケーションに固有のロジックを持つ認証サーバに置き換えることができます。たとえば、広く使用されている Kerberos のメカニズムを使用して認証を行うため、認証サーバをカスタマイズすることもできます。

クライアントの名前付け

クライアント プロセスは、ATMI アプリケーションに参加すると、ユーザ クライアント名 (ユーザとクライアントを組み合わせた名前) およびアプリケーション キー (ユニークなクライアント識別子) を持ちます。

2 つのクライアント名 tpsysadm および tpsysop が、特殊なセマンティクス用に用意されています。tpsysadm はアプリケーション管理者として扱われ、tpsysop はアプリケーション オペレータとして扱われます。

ユーザ/クライアント名

認証されたクライアントは、ATMI アプリケーションに参加すると、ユーザ名とクライアント名を TPINIT バッファの tpinit(3c) に渡すか (アプリケーションが C で記述されている場合)、または、TPINFDEF-REC レコードの TPINITIALIZE(3cbl) に渡します (アプリケーションが COBOL で記述されている場合)。次の表では、ユーザ名とクライアント名、および、TPINIT バッファまたは TPINFDEF-REC レコード内のその他のセキュリティ関連フィールドを説明します。

表 1-10 TPINIT バッファおよび TPINFDEF-REC レコードのセキュリティ関連フィールド
TPINIT
TPINFDEF-REC
説明
usrname
USRNAME
30 文字までの文字列で構成するユーザ名。USER_AUTHACL、または MANDATORY_ACL のセキュリティ レベルには必須です。ユーザ名は呼び出し側を表します。
cltname
CLTNAME
30 文字までの文字列で構成するクライアント名。USER_AUTHACL、または MANDATORY_ACL のセキュリティ レベルには必須です。クライアント名はクライアント プログラムを表します。
passwd
PASSWD
アプリケーション パスワード。APP_PWUSER_AUTHACL、または MANDATORY_ACL のセキュリティ レベルには必須です。tpinit() または TPINITIALIZE() は、このパスワードを TUXCONFIG ファイル * に格納されたコンフィグレーション済みのアプリケーション パスワードと比較して検証します。
datalen
DATALEN
後に続くユーザ固有のデータ** の長さ。
data
該当なし
ユーザ固有のデータ**。USER_AUTHACL、または MANDATORY_ACL のセキュリティ レベルには必須です。tpinit() または TPINITIALIZE() は、ユーザ固有のデータを認証サーバに転送し、検証します。認証サーバは AUTHSVR です。
* バイナリ形式の UBBCONFIG ファイル。
** 通常はユーザ パスワード。

認証されたセキュリティ レベル (USER_AUTHACL、または MANDATORY_ACL) では、ユーザ名、クライアント名、およびユーザ固有のデータは、Oracle Tuxedo システムで変換されることなく AUTHSVR に転送されます。これらの情報が変換されるとすれば、ワークステーション クライアントからネットワーク経由で送信されるときに暗号化が行われる場合のみです。

アプリケーション キー

クライアントが ATMI アプリケーションに参加するたびに、Oracle Tuxedo システムはクライアントに 32 ビットのアプリケーション キーを割り当てます。クライアントは、アプリケーションとの関連付けを解除し、別のユーザとして ATMI アプリケーションに参加しない限り、このアプリケーション キーをリセットできません。

割り当てられたアプリケーション キーは、クライアントのセキュリティ資格です。クライアントは、TPSVCINFO 構造体の一部として、すべてのサービス呼び出しに appkey フィールドを指定します。TPSVCINFO の詳細については、『Oracle Tuxedo C リファレンス』の tpservice(3c) を参照してください。

次の表は、さまざまなセキュリティ レベルとクライアントに割当てられるアプリケーション キーを示します。アプリケーション キーの割り当ては、最後の項目を除き、すべてハードコーディングされます。

表 1-11 アプリケーション キーの割り当て
セキュリティ レベル
メッセージのタイプ
割り当てられるアプリケーション キー
任意のセキュリティ レベル
管理者 (tmadmin(1) など) が起動する、ATMI のネイティブ クライアントからのメッセージ
0x80000000
(管理者のアプリケーション キー)
NONE または APP_PW
tpsysadm というクライアント名で tpinit() または TPINITIALIZE() を呼び出し、管理者によって実行されるネイティブ クライアントからのメッセージ
0x80000000
(管理者のアプリケーション キー)
tpsysop というクライアント名で tpinit() または TPINITIALIZE() を呼び出し、管理者によって実行されるネイティブ クライアントからのメッセージ
0xC0000000
(オペレータのアプリケーション キー)
tpsysadm および tpsysop 以外の任意のクライアントからのメッセージ
-1
USER_AUTHACL、または MANDATORY_ACL
tpsysadm というクライアント名で tpinit() または TPINITIALIZE() を呼び出し、管理者とバイパス認証によって実行されるネイティブ クライアントからのメッセージ
0x80000000
(管理者のアプリケーション キー)
tpsysadm というクライアント名で tpinit() または TPINITIALIZE() を呼び出す認証済みクライアントからのメッセージ
0x80000000
(管理者のアプリケーション キー)
tpsysop というクライアント名で tpinit() または TPINITIALIZE() を呼び出す認証済みクライアントからのメッセージ
0xC0000000
(オペレータのアプリケーション キー)
tpsysadmtpsysop 以外のクライアント名で tpinit() または TPINITIALIZE() を呼び出す認証済みクライアントからのメッセージ
アプリケーション キーは、下位 17 (UID) と次の上位 14 ビットのグループ識別子 (GID) です。残りの上位ビットは 0 です。AUTHSVR は、このアプリケーション キーの値を返します。

さらに、C プログラムの tpsvrinit(3c) または tpsvrdone(3c) (COBOL では TPSVRINIT(3cbl) または TPSVRDONE(3cbl)) から発信されるメッセージには、管理者のアプリケーション キーである 0x80000000 が割り当てられます。クライアントのアプリケーション キーは、クライアントからサーバに送信されるメッセージに割り当てられます。この規則の例外については、「クライアント トークンとサーバ トークンの交換」を参照してください。

ユーザ識別子 (UID) は、特定のユーザを示すため、アプリケーション側で使用される識別子であり、0 ~ 128K の整数で表されます。グループ識別子 (GID) は、アプリケーション グループを示すため、アプリケーション側で使用される識別子であり、0 ~ 16K の整数で表されます。

ユーザ、グループ、および ACL のファイル

アクセス制御機能を使用するため、アプリケーション管理者は、(1) ユーザ、(2) グループ、および (3) グループとアプリケーション エンティティ (サービス、イベント、およびアプリケーション キューなど) のマッピング リストを管理する必要があります。3 つ目のアプリケーション エンティティへのグループのマッピング リストは、アクセス制御リスト (ACL) と呼ばれます。

クライアントがサービスなどのアプリケーション リソースに対してアクセスを試みると、システム側では、クライアントのアプリケーション キーをチェックし、ユーザが属するグループを識別します。次に、システムは、ACL にある対象リソースをチェックし、そのリソースに対するアクセス権がクライアントのグループに付与されているかどうかを判別します。アプリケーション管理者、アプリケーション オペレータ、およびアプリケーション管理者またはオペレータの特権で実行中のプロセスやサービス要求は、ACL によるパーミッションのチェックの対象にはなりません。

ユーザ、グループ、および ACL のファイルは、application_root ディレクトリに置かれています。application _root は、APPDIR 変数に定義された最初のパス名です。次の図は、これらのファイルと、各リストを制御するための管理コマンドを示しています。

図 1-11 デフォルトのユーザ、グループ、および ACL のファイル

デフォルトのユーザ、グループ、および ACL のファイル

注意 : Compaq VMS オペレーティング システムで動作する ATMI アプリケーションでは、ユーザ、グループ、および ACL ファイルの名前に .dat 拡張子が付きます (tpusr.dattpgrp.dat、および tpacl.dat)。

これらのファイルは、コロンで区切られたフラットなテキスト ファイルであり、アプリケーション管理者 (TUXCONFIG 変数が参照する TUXCONFIG ファイルのオーナー) だけが読み書きできます。これらのファイルは一連の専用コマンドで完全に管理されるため、ファイルの形式は無関係です。これらのコマンドを使用できるのは、アプリケーション管理者だけです。

アプリケーション管理者は、tpaclcvt(1) コマンドを使用して、セキュリティに関するデータ ファイルを ACL チェック用の形式に変換できます。たとえば、UNIX ホスト マシンで tpaclcvt を実行して /etc/password ファイルを変換し、変換後のファイルを tpusr ファイルに保存できます。この管理者は、tpaclcvt を実行して /etc/group ファイルを変換し、変換後のファイルを tpgrp ファイルに保存することもできます。

AUTHSVR サーバは、tpusr ファイル内のユーザ情報を使用して、ATMI アプリケーションに参加しようとするユーザを認証します。

省略可能な ACL と必須の ACL

ACL および MANDATORY_ACL のセキュリティ レベルは、Oracle Tuxedo システムの ATMI 環境でのデフォルトの認可実装です。

セキュリティ レベルが ACL の場合、対象アプリケーションのエンティティに関連するエントリが tpacl ファイルになくても、クライアントはそのエンティティにアクセスできます。管理者は、このセキュリティ レベルを使用して、セキュリティを強化したいリソースに対してのみアクセス権をコンフィグレーションできます。つまり、すべてのユーザにアクセスを許可するサービス、イベント、およびアプリケーション キューについて、tpacl ファイルにエントリを追加する必要はありません。

一方、セキュリティ レベルが MANDATORY_ACL の場合、対象アプリケーションのエンティティに関連するエントリが tpacl ファイルにないと、クライアントはそのエンティティにアクセスできません。したがって、このレベルは「必須」と呼ばれます。クライアントがアクセスを必要とするアプリケーション エンティティごとに、tpacl ファイル内にエントリが必要です。

ACL および MANDATORY_ACL のセキュリティ レベルで、クライアントが、tpacl ファイルにエントリがあるエンティティに対してアクセスしようとする場合、クライアントに関連するユーザは、そのエンティティへのアクセスを許可されたグループのメンバーでなければなりません。そうでない場合、アクセスは拒否されます。

ATMI アプリケーションによっては、システム レベルとアプリケーション レベルの両方の認可を使用することが必要な場合もあります。tpacl ファイルのエントリを使用すると、サービスに対するアクセスを許可するユーザを制限できます。また、アプリケーションのロジックを使用して、データ依存型のアクセスを制御することもできます。たとえば、100 万ドル以上のトランザクションを処理するユーザを指定することができます。

先頭にピリオド (.) が付く管理サービス、イベント、およびアプリケーション キューは、ACL によるパーミッションのチェック対象にはなりません。たとえば、.SysMachineBroadcast.SysNetworkConfig、および .SysServerCleaning などの管理イベントには、どのクライアントもサブスクライブできます。さらに、アプリケーション管理者、アプリケーション オペレータ、およびアプリケーション管理者またはオペレータの特権で実行中のプロセスやサービス要求は、ACL によるパーミッションのチェックの対象にはなりません。

関連項目

 


セキュリティの相互運用性

ATMI アプリケーションを Oracle Tuxedo リリース 7.1 より前 (6.5 以前) の Oracle Tuxedo ソフトウェアと相互運用させる場合、アプリケーションの開発者および管理者は、いくつかのセキュリティに関する問題を認識しておく必要があります。

この節で説明する「相互運用性」とは、最新版の Oracle Tuxedo ソフトウェアが、以前のリリースの Oracle Tuxedo ソフトウェアとネットワーク経由で通信する機能のことです。具体的には、「ドメイン間の相互運用性」と「ドメイン内の相互運用性」があり、それぞれ次のことを意味します。

Oracle Tuxedo リリース 7.1 より前のバージョンとの相互運用性

Oracle Tuxedo リリース 7.1 より前のバージョンのソフトウェアと相互運用するかどうかは、認証のセキュリティ レベルによって決まります。Oracle Tuxedo リリース 7.1 以上のソフトウェアで実装される認証機能では、通信プロセスにより相互の ID が証明されます。

デフォルトでは、リリース 7.1 より前の Oracle Tuxedo ソフトウェアを実行しているマシンとの相互運用は許可されません。このデフォルト設定を変更するには、アプリケーション管理者が CLOPT -t オプションを使用して、リリース 7.1 以上の ATMI アプリケーション内のワークステーション ハンドラ (WSH)、ドメイン ゲートウェイ (GWTDOMAINs)、およびサーバを、リリース 7.1 より前の Oracle Tuxedo ソフトウェアと相互運用できるようにします。CLOPT -t オプションの使い方、および CLOPT -t を使用するときの認証と認可に関するセキュリティ問題については、「相互運用性のポリシーの指定」を参照してください。

リンク レベルの暗号化の相互運用性

Oracle Tuxedo ソフトウェアを実行するマシン間でネットワーク リンクが確立されると、リンク レベルの暗号化を使用してデータを暗号化してからネットワーク リンク経由で送信し、データがネットワーク リンクを離れると復号化することができます。ただし、リンク レベルの暗号化は、送信側と受信側の両方のマシンの両方に LLE がインストールされている場合にのみ使用できます。

LLE と Oracle Tuxedo リリース 7.1 より前のソフトウェアとの相互運用性については、「LLE の旧バージョンとの互換性」を参照してください。

SSL 暗号化の相互運用性

Oracle Tuxedo ソフトウェアを実行しているマシン間のネットワーク リンクで SSL 暗号化を使用できるのは、両方のマシンで Tuxedo 10.0 以降を実行している場合のみです。LLE 暗号化は、それ以前のバージョンの Tuxedo を実行しているマシン間のネットワーク リンクでも使用できます。

注意 : SSL 暗号化の相互運用性規則には 1 つだけ例外があります。『Tuxedo CORBA アプリケーションのセキュリティ機能』で説明されている CORBA 関連の SSL 機能は、Tuxedo 8.0 との相互運用および以前の WLE 製品との相互運用に使用できます。

公開鍵によるセキュリティ機能の相互運用性

公開鍵によるセキュリティに関する以下の相互運用性の規則は、Oracle Tuxedo7.1 以上を実行するマシンと、Oracle Tuxedo 7.1 より前のバージョンを実行するマシンが相互運用する場合に適用されます。規則の内容を明確にするため、各規則では、Oracle Tuxedo 7.1 より前のバージョンを実行するワークステーション クライアントの例を示しています。

表 1-12 公開鍵によるセキュリティ機能の相互運用性に関する規則
相互運用性の規則
備考
Oracle Tuxedo リリース 7.1 より前のソフトウェアを実行するマシン宛の暗号化済みのメッセージ バッファは、マシンに送信されません。
Oracle Tuxedo リリース 7.1 より前のワークステーション クライアント宛の暗号化済みのメッセージ バッファは、ワークステーション クライアントに送信されません。
「暗号化済み」とは、リンク レベルの暗号化ではなく、メッセージ ベースの公開鍵の暗号化を意味します。
Oracle Tuxedo リリース 7.1 より前のソフトウェアを実行するマシンから受信したメッセージ バッファは、暗号化を必要とするプロセスに転送されると、受け付けられません。
Oracle Tuxedo リリース 7.1 より前のワークステーション クライアントからの受信したメッセージ バッファには、暗号化エンベロープが添付されておらず、暗号化を必要とするプロセスに転送された場合は、受け付けられません。
ENCRYPTION_REQUIRED コンフィグレーション パラメータについては、「暗号化ポリシーの設定」を参照してください。
Oracle Tuxedo リリース 7.1 より前のソフトウェアを実行するマシン宛に送信されたメッセージ バッファは、デジタル署名が検証および削除されてから、古いマシンに送信されます。
デジタル署名は、検証されると、Oracle Tuxedo リリース 7.1 より前のワークステーション クライアント宛の送信メッセージ バッファから削除されます。
送信するメッセージ バッファは、デジタル署名されていても暗号化はされていないと見なされます。送信メッセージ バッファがデジタル署名されており、さらに暗号化されている場合、そのメッセージは復号化されず、デジタル署名は検証されないため、メッセージは古いマシンに送信されません。
リリース 7.1 より前の Oracle Tuxedo ソフトウェアを実行しているマシンからの着信メッセージ バッファは、デジタル署名を必要とするプロセスに転送された場合は、受け付けられません。
Oracle Tuxedo リリース 7.1 より前のワークステーション クライアントからの受信メッセージ バッファには、デジタル署名が添付されていないため、デジタル署名を必要とするプロセスに転送された場合は受け付けられません。
SIGNATURE_REQUIRED コンフィグレーション パラメータについては、「デジタル署名ポリシーの設定」を参照してください。

ドメイン間の相互運用性の場合、リリース 7.1 以上のドメイン ゲートウェイ (GWTDOMAIN) プロセスには、公開鍵によるセキュリティの相互運用性の規則が適用されます。

ドメイン内の相互運用性の場合、リリース 7.1 以上のネイティブ クライアント、ワークステーション ハンドラ (WSH)、またはローカル ブリッジ プロセスと通信するサーバ プロセスには、次の図のような、公開鍵によるセキュリティの相互運用性の規則が適用されます。ブリッジ プロセスは、パイプ役を果たすだけであり、メッセージ バッファの内容の復号化やデジタル署名の検証は行いません。

図 1-14 公開鍵によるセキュリティ機能の相互運用性規則の適用

公開鍵によるセキュリティ機能の相互運用性規則の適用

注意 : 一般に、リリース 7.1 以上の WSH はデジタル署名を検証しません。しかし、リリース 7.1 より前の Oracle Tuxedo ソフトウェアを実行しているプロセスにデジタル署名付きのメッセージ バッファを転送すると、WSH は、デジタル署名を検証してから削除します。

関連項目

 


セキュリティ機能の互換性

Oracle Tuxedo リリース 7.1 以上のソフトウェアを実行する ATMI アプリケーションでは、デフォルトまたはカスタマイズした認証、認可、監査、および公開鍵セキュリティを自由に組み合わせることができます。さらに、これらの 4 つのセキュリティ機能の任意の組み合わせは、リンク レベルの暗号化とも互換性があります。

デフォルトまたはカスタマイズした認証と認可の組み合わせ

認可セキュリティ トークンに少なくとも (1) 認証されたユーザ名またはプリンシパル名、および (2) アプリケーション キーの値 (「アプリケーション キー」で定義) が必要であることがアプリケーション開発者側で認識されていれば、デフォルトの認証とカスタマイズした認可、またはカスタマイズした認証とデフォルトの認可を組み合わせて使用できます。

認可に関する一部の決定は、認可トークンに格納されているユーザ ID に基づいて行われます。認可トークンは、認証プラグインによって生成されるため、認証プラグインと認可プラグインのプロバイダは、これらのプラグインが協調動作することを保証する必要があります。詳細については、「認証」および「認可」を参照してください。

デフォルトまたはカスタマイズした認証と監査の組み合わせ

監査セキュリティ トークンに少なくとも (1) 認証されたユーザ名またはプリンシパル名、および (2) アプリケーション キーの値 (「アプリケーション キー」で定義) が必要であることがアプリケーション開発者側で認識されていれば、デフォルトの認証とカスタマイズした監査、またはカスタマイズした認証とデフォルトの監査を組み合わせて使用できます。

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

公開鍵によるセキュリティ機能の互換性の問題

公開鍵によるセキュリティは、Oracle Tuxedo リリース 7.1 以上のソフトウェアでサポートされる、圧縮機能以外のすべての機能やプロセスと互換性があります。暗号化されたメッセージ バッファは、圧縮機能を使用しても圧縮できません。ただし、公開鍵によるソフトウェアでは、メッセージ バッファを暗号化する前に内容が圧縮されるため、ある程度サイズを節約できます。

この節では、公開鍵によるセキュリティと、次の機能またはプロセスとの互換性および相互運用性について説明します。

データ依存型ルーティングとの互換性および相互運用性

データ依存型ルーティング機能の中心となるのは、プロセスが、受信したメッセージ バッファの内容を調べることです。受信したメッセージ バッファが暗号化されている場合、データ依存型ルーティング用にコンフィグレーションされたプロセスでは、受信者のプライベート キーを開き、公開鍵ソフトウェアがそのキーを使用してメッセージ バッファを復号化できるようにしておく必要があります。データ依存型ルーティングでは、公開鍵ソフトウェアは、デジタル署名を検証しません。

復号化キーを使用できない場合、ルーティング操作は失敗します。システムから userlog(3c) エラー メッセージが返され、操作が失敗したことがレポートされます。

復号化キーを使用できる場合、プロセスは、暗号化されたメッセージ バッファを復号化したコピーに基づいて、ルーティングに関する決定を行います。次の手順で実行されます。

  1. 公開鍵ソフトウェアは、暗号化されたメッセージ バッファのコピーを作成し、復号化キーを使用してそのバッファを復号化します。
  2. プロセスは、これによって得られた平文 (暗号化されていないテキスト) のメッセージ内容を読み取り、ルーティングに関する決定を行います。
  3. 公開鍵ソフトウェアは、プライバシーを保護するため、平文のメッセージ内容をゼロ値で上書きします。

その後、システムは、ルーティングに関する決定に基づいて、元の暗号化されたメッセージ バッファを送信します。

スレッドとの互換性および相互運用性

公開鍵とプライベート キーは、ハンドルを介して表現および操作されます。ハンドルには、それに関連付けられたデータがあります。公開鍵のアプリケーション プログラミング インタフェース (API: Application Programming Interface) では、ハンドルのデータを使用することにより、ハンドルで指定される項目の検索やアクセスを行います。プロセスは、デジタル署名の生成、メッセージの暗号化、およびメッセージの復号化のために、キー ハンドルを開きます。

キー ハンドルはプロセスのリソースです。特定のスレッドやコンテキストにバインドされることはありません。キーを開くために必要な Oracle Tuxedo の通信は、スレッドで現在アクティブなコンテキストの内部で実行されます。その後は、コンテキストが同じ ATMI アプリケーションに関連付けられているかどうかとは無関係に、プロセス内のどのコンテキストでもそのキーを使用できます。

キーの内部データ構造はスレッド セーフです。つまり、複数のスレッドが 1 つのキーに同時にアクセスできます。

イベント ブローカとの互換性および相互運用性

一般に、TMUSREVT(5) システム サーバは、暗号化されたメッセージ バッファを復号化しないで処理します。つまり、メッセージが Oracle Tuxedo のイベント ブローカ コンポーネントを通過しても、デジタル署名と暗号化エンベロープは何の影響も受けません。ただし、以下の場合、イベント ブローカ コンポーネントは、ポストされたメッセージ バッファを復号化する必要があります。

/Q との互換性および相互運用性

一般に、TMQUEUE(5) または TMQFORWARD(5) のシステム サーバは、暗号化されたメッセージ バッファを復号化しないで処理します。つまり、メッセージが Oracle Tuxedo の /Q コンポーネントを通過しても、署名と暗号化エンベロープは何の影響も受けません。ただし、以下の場合、/Q コンポーネントは、キューに登録されたメッセージ バッファを復号化する必要があります。

呼び出し側プロセスに有効な復号化キーがないと、非トランザクション型の tpdequeue(3c) 操作により、キューに登録された暗号化済みメッセージが破壊されます。

無効な署名が添付されたメッセージがキューに登録された場合 (またはそのメッセージがキュー内で破壊または改ざんされた場合) にそのメッセージをキューから取り出そうとすると失敗します。非トランザクション型の tpdequeue() 操作は、このようなメッセージを破壊します。トランザクション型の tpdequeue() 操作を行うと、トランザクションのロールバックが発生し、以降、キューからメッセージを取り出そうとしても失敗します。

トランザクションとの互換性および相互運用性

公開鍵によるセキュリティ操作 (キーの開閉、デジタル署名の要求、暗号化の要求) はトランザクション型ではないため、トランザクションのロールバックによって元に戻すことはできません。ただし、トランザクションは、公開鍵の操作時に発生する以下の障害によってロールバックされる場合があります。

ドメイン ゲートウェイとの互換性および相互運用性

Oracle Tuxedo リリース 7.1 以上のソフトウェアを実行する 2 つの ATMI アプリケーションを接続するドメイン ゲートウェイ (GWTDOMAIN) プロセスには、デジタル署名および暗号化エンベロープがあります。さらに、これらのドメイン ゲートウェイ プロセスは、デジタル署名を検証し、デジタル署名と暗号化に関する管理システムポリシーを適用します。

次の図は、ドメイン ゲートウェイ プロセスが、ローカルおよびリモートの ATMI アプリケーションと対話する様子を示しています。この図に続く表では、デジタル署名が添付された暗号化メッセージ バッファが、リリース 7.1 以上のドメイン ゲートウェイ プロセスでどのように扱われるかを示しています。

図 1-15 ATMI アプリケーション間の通信

ATMI アプリケーション間の通信

表 1-13 リリース 7.1 以上のドメイン ゲートウェイ (GWTDOMAIN) プロセスの動作
メッセージのタイプ
条件
結果
インバウンド メッセージ (リモート プロセスから発信され、ネットワーク接続を経由して受信されるメッセージ)
暗号化エンベロープあり。デジタル署名はどちらでも可。
ドメイン ゲートウェイ プロセスはメッセージを受け付け、暗号化された形式で転送します。
データ依存型ルーティング機能が適用され、ドメイン ゲートウェイ プロセスが適切な復号化キーを持たない場合、ゲートウェイ プロセスはメッセージを拒否します (詳細については、「データ依存型ルーティングとの互換性および相互運用性」を参照)。
インバウンド メッセージ
暗号化エンベロープもデジタル署名もなし。
ドメイン ゲートウェイ プロセスが、暗号化を必要とするグループ、ドメイン、またはマシンの内部で実行されている場合、ゲートウェイ プロセスはメッセージを拒否します。ドメイン ゲートウェイによって宣言されたサービスが暗号化を必要とする場合、ゲートウェイ プロセスはメッセージを拒否します (詳細については、「暗号化ポリシーの設定」を参照)。
ドメイン ゲートウェイが暗号化を必要としない場合、ゲートウェイ プロセスはメッセージを受け付け、転送します。
インバウンド メッセージ
デジタル署名あり。暗号化なし。
ドメイン ゲートウェイ プロセスは、デジタル署名を検証し、メッセージにデジタル署名を添付して転送します。
インバウンド メッセージ
デジタル署名なし。暗号化なし。
ドメイン ゲートウェイ プロセスが、デジタル署名を必要とするグループ、ドメイン、またはマシンの内部で実行されている場合、ゲートウェイ プロセスはメッセージを拒否します。ドメイン ゲートウェイによって宣言されたサービスがデジタル署名を必要とする場合、ゲートウェイ プロセスはメッセージを拒否します (詳細については、「デジタル署名ポリシーの設定」を参照)。
ドメイン ゲートウェイがデジタル署名を必要としない場合、ゲートウェイ プロセスはメッセージを受け付け、転送します。
アウトバウンド メッセージ (ローカル プロセスから発信され、ネットワーク接続を経由して転送されるメッセージ)
暗号化エンベロープあり。デジタル署名はどちらでも可。
ドメイン ゲートウェイ プロセスはメッセージを受け付け、暗号化してネットワーク経由で転送します。
データ依存型ルーティング機能が適用され、ドメイン ゲートウェイ プロセスが適切な復号化キーを持たない場合、ゲートウェイ プロセスはメッセージを拒否します (詳細については、「データ依存型ルーティングとの互換性および相互運用性」を参照)。
暗号化されたメッセージが、Oracle Tuxedo リリース 7.1 より前の (6.5 以前) Oracle Tuxedo ソフトウェアを実行するプロセスに送信される場合、ドメイン ゲートウェイ プロセスはメッセージを拒否します (詳細については、「Oracle Tuxedo リリース 7.1 より前のバージョンとの相互運用性」および「公開鍵によるセキュリティ機能の相互運用性」を参照)。
アウトバウンド メッセージ
暗号化エンベロープもデジタル署名もなし。
ドメイン ゲートウェイ プロセスが、暗号化を必要とするグループ、ドメイン、またはマシンの内部で実行されている場合、ゲートウェイ プロセスはメッセージを拒否します。ドメイン ゲートウェイによって宣言されたサービスが暗号化を必要とする場合、ゲートウェイ プロセスはメッセージを拒否します (詳細については、「暗号化ポリシーの設定」を参照)。
ドメイン ゲートウェイが暗号化を必要としない場合、ゲートウェイ プロセスはメッセージを受け付け、ネットワーク経由で転送します。
アウトバウンド メッセージ
デジタル署名あり。暗号化なし。
ドメイン ゲートウェイ プロセスは、デジタル署名を検証し、メッセージにデジタル署名を添付してネットワーク経由で転送します。
メッセージが、Oracle Tuxedo リリース 7.1 より前の Oracle Tuxedo ソフトウェアを実行するプロセスに送信され、リリース 7.1 より前の Oracle Tuxedo ソフトウェアとの相互運用性が可能であると見なされている場合、ドメイン ゲートウェイ プロセスは、デジタル署名の検証と削除を行ってから、ネットワーク経由でメッセージを転送します (詳細については、「Oracle Tuxedo リリース 7.1 より前のバージョンとの相互運用性」および「公開鍵によるセキュリティ機能の相互運用性」を参照)。
アウトバウンド メッセージ
デジタル署名なし。暗号化なし。
ドメイン ゲートウェイ プロセスが、デジタル署名を必要とするグループ、ドメイン、またはマシンの内部で実行されている場合、ゲートウェイ プロセスはメッセージを拒否します。ドメイン ゲートウェイによって宣言されたサービスがデジタル署名を必要とする場合、ゲートウェイ プロセスはメッセージを拒否します (詳細については、「デジタル署名ポリシーの設定」を参照)。
ドメイン ゲートウェイがデジタル署名を必要としない場合、ゲートウェイ プロセスはメッセージを受け付け、ネットワーク経由で転送します。

ほかのベンダのゲートウェイとの互換性および相互運用性

Oracle Tuxedo リリース 7.1 以上の ATMI アプリケーションと、別のベンダのゲートウェイ プロセスを接続するドメイン ゲートウェイ (GWTDOMAIN) のプロセスは、アウトバウンド メッセージ バッファに対して次のように動作します。

  1. 暗号化されたメッセージを復号化します。
  2. デジタル署名がある場合は、デジタル署名を検証してから削除します。
  3. 平文メッセージをネットワーク経由でベンダのゲートウェイ プロセスに送信します。

さらに、ドメイン ゲートウェイ プロセスは、ATMI アプリケーションの暗号化とデジタル署名に関する管理システムのポリシーを適用します。たとえば、ATMI アプリケーションのドメイン レベルで、暗号化またはデジタル署名、あるいはその両方が必要な場合、ローカル ドメイン ゲートウェイのプロセスは、ほかのベンダのゲートウェイ プロセスから受信するすべてのメッセージを拒否します。

関連項目

 


サービス拒否 (DoS) の防御

分散型のマルチ ドメイン Tuxedo アプリケーションがパブリック ネットワークや安全性の低い環境に拡張された場合、Tuxedo ドメイン ゲートウェイを潜在的脅威から確実に防御する必要があります。これらの環境には、安全性に問題のあるネットワークや、サービス拒否 (DoS) 攻撃 (図 1-16 を参照) などの悪意のある攻撃を開始または拡大させる信頼されていない参加者が含まれます。

図 1-16 サービス拒否 (DoS) 攻撃

サービス拒否 (DoS) 攻撃

Tuxedo TDomain ゲートウェイ (GWTDOMAIN) では、DoS 攻撃に対する防御に以下の機能が使用されます。

接続数の制限

メッセージ正常性チェック

メッセージ認証コード (MAC) の使用

接続数の制限

デーモン サーバである GWTDOMAIN は、既知の TCP ポートで待機して受信時接続要求を受け付けます。この場合、接続フラッド攻撃 (攻撃者がポート スキャン プログラムなど何らかのツールを使用して GWTDOMAIN と多数の接続を連続して確立しようとする DoS 攻撃の一種) の危険にさらされます。この攻撃により、ドメイン ゲートウェイは、接続要求を受け付けて各接続にリソースを割り当てることにコンピューティング パワー (時間やメモリなど) を浪費してしまいます。

この問題は、GWTDOMAIN で接続数を制限することによって回避できます。GWTDOMAIN の詳細については、「GWTDOMAIN(5)」を参照してください。

接続制限数の設定

接続数の制限機能を使用するには、UBBCONFIG ファイルの *SERVERS セクションを変更する必要があります。

UBBCONFIG ファイル

GWTDOMAIN のパラメータの指定に使用される CLOPT の構文は、-x limit[:{[duration][:period]}] です (「-x」が指定される)。各オプションはコロン (:) で区切ります。

注意 : コロン (:) は、2 つのオプション間でのみ使用します。たとえば、「:duration」や「limit::」などのコンフィグレーションは無効です。
注意 : オプション duration と period は、値が指定されなければデフォルト値が使用されます。
注意 : パフォーマンス上の理由からタイミングは正確ではありません。1 秒の誤差が生じる可能性があります。

現在のアクティブな接続数と指定した前の期間 (period) で閉じられた接続数の合計が limit より大きい場合、GWTDOMAIN は秒単位で指定した時間 (duration) だけ一時停止します。

注意 : 現在のアクティブな接続数には、アクティブな受信時接続とアクティブな送信時接続の両方が含まれます。前の「period」で閉じられた接続数には、閉じられた受信時接続と閉じられた送信時接続の両方が含まれます。しかし、GWTDOMAIN が一時停止した場合、閉じられた接続はカウントされません。

limit、duration、period の定義は次のとおりです。

コード リスト 1-1 に、GWTDOMAIN 制限 (limit) が 512 同時ソケット接続数に設定されている例を示します。制限 (limit) が 512 に達しているときに受信時接続があった場合、GWTDOMAIN は 300 秒 (5 分) 間だけポーリングと新たな受信時接続要求の受け付けを停止します。期間 (period) は 0 に指定しているので、アクティブな接続数のみがカウントされます。

コード リスト 1-1 UBBCONFIG ファイルの例 1
# UBBCONFIG
...
*SERVERS
GWTDOMAIN SRVGRP=GWGRP1 SRVID=2 CLOPT= “-A -- -x 512:300:0”

コード リスト 1-2 に、GWTDOMAIN 制限 (limit) が 200 同時ソケット接続数に設定されている例を示します。制限 (limit) が 200 に達しているとき、以下のような状況であるとします。

duration 値が指定されていないので、GWTDOMAIN は duration のデフォルト値 (SCANUNIT * SANITYSCAN 秒) だけポーリングと新たな受信時接続要求の受け付けを停止します。

注意 : 一時停止をトリガした現在の受信時接続も受け付けらず、一時停止時間の終了時に閉じられます。
コード リスト 1-2 UBBCONFIG ファイルの例 2
# UBBCONFIG
...
*SERVERS
GWTDOMAIN SRVGRP=GWGRP1 SRVID=2 CLOPT= “-A -- -x 200::60”

メッセージ

以下のような場合、USERLOG にメッセージが出力されます。

メッセージ正常性チェック

メッセージの正常性チェックは、この機能を使用して強化され、GWTDOMAIN が攻撃を受けてクラッシュしないように保護します。この機能はインストール後に自動的にデプロイされるため、コンフィグレーション作業は必要ありません。

メッセージ認証コード (MAC) の使用

メッセージ認証コード (MAC) をメッセージと関連付けると、Tuxedo ドメイン ゲートウェイでメッセージを検証および認証することができます。MAC を使用すると、ドメイン ゲートウェイは、各種 DoS 攻撃 (メッセージの改ざん、メッセージの偽造、メッセージのリプレイ攻撃など) に対して防御することができます。

この機能は、LLE またはドメイン SECURITY がコンフィグレーションされている場合にのみ有効です。MAC は接続が確立した後に機能します。リモート ドメイン ゲートウェイからの MAC メッセージが検証および認証に失敗すると、対応する接続が切断されます。保留メッセージもすべて破棄され、現行のすべてのサービス要求が失敗します。

セッションで MAC を有効にするかどうかは、セッション調整フェーズ時に GWTDOMAIN によって決定されます。MAC を有効にできるのは、セッションで LLE または SECURITY がサポートされていて、アクティブになっている場合のみです。

注意 : SSL では、MAC は使用できません。

MAC を有効にするために SECURITY 機能をサポートする必要はありませんが、SECURITY は「介在者」の攻撃に対する防御に使用できるのでお勧めします。

パフォーマンスの影響

MAC が有効な場合、ドメイン間の要求に対するスループットと応答時間が低下する可能性があります。

メッセージ認証コード (MAC) の設定

MAC 機能をコンフィグレーションする場合、2 つの方法が利用できます。DMCONFIG ファイル コンフィグレーションMIB コンフィグレーションです。

DMCONFIG ファイル コンフィグレーション

この機能は、2 つの新しいキーワード (MAC と MACLEVEL) を使用して、DMCONFIG ファイルの DM_TDOMAIN セクションでコンフィグレーションできます。MAC はセッションで MAC の機能を切り替えるために使用され、MACLEVEL は MAC レベルを指定するために使用されます。

注意 : MACLEVEL の数値が大きいければ、暗号化という点ではより強力なアルゴリズムになりますが、同時にパフォーマンスは低下します。

表 1-14 DMCONFIG ファイルのキーワード
キーワード
オプション
説明
MAC
OFF
機能をオフにする。これがデフォルト値です。
 
ON
機能をオンにする。確立されたセッションの MAC サポートは、2 つのドメイン ゲートウェイ間の調整結果に依存します。
 
MANDATORY
機能をオンにする。以下の場合は、セッションを設定できません。
  • リモート ドメインで MAC 機能がサポートされていないか、無効になっている。
  • LLE とドメイン SECURITY が利用できない。
MACLEVEL
0
MAC でメッセージ ヘッダのみを保護。これがデフォルト値です。
 
1
MD5 ベースのアルゴリズムを使用して MAC でメッセージ全体を保護。
 
2
SHA1 ベースのアルゴリズムを使用して MAC でメッセージ全体を保護。
 
3
SHA256 ベースのアルゴリズムを使用して MAC でメッセージ全体を保護。

コード リスト 1-3 に、DMCONFIG コンフィグレーションの例を示します。

コード リスト 1-3 DMCONFIG ファイル コンフィグレーション
# DMCONFIG
...
*DM_TDOMAIN
“RDOM” NWADDR=”//RHOST:RPORT”
MAC=”ON”
MACLEVEL=1

MIB コンフィグレーション

MIB を使用して MAC を動的に設定する場合、既存のドメイン セッションは影響を受けません。この設定は、新しい接続でのみ有効です。

MIB インタフェースをサポートするための 2 つの新しい属性 (TA_DMMAC と TA_DMMACLEVEL) が T_DM_TDOMAIN クラス定義の属性表に追加されます。

表 1-15 DM_MIB(5): T_DM_TDOMAIN クラス定義の属性表
属性
パーミッション
デフォルト値
string
rw-------
string
“{OFF|ON|MANDATORY}”
“OFF”
string
rw-------
string
"{0|1|2|3}"
“0”

TA_DMMAC="{OFF|ON|MANDATORY}"

リモート ドメイン アクセス ポイントでのみ有効です。リモート ドメインへの接続時に MAC 機能をアクティブにするかどうか指定します。サポートされる値は、"OFF"、"ON"、"MANDATORY" です。

"OFF"

ドメイン ゲートウェイへの接続で MAC 機能を使用しない場合に指定します。

"ON"

ドメイン ゲートウェイへの接続で MAC 機能を使用する場合に指定します。

"MANDATORY"

ドメイン ゲートウェイへの接続で MAC 機能を使用する必要がある場合に指定します。使用しない場合は接続を正常に確立できません。

TA_DMMACLEVEL="{0|1|2|3}"

リモート ドメイン アクセス ポイントでのみ有効です。MAC でメッセージ全体を保護する場合に指定します。"0" は、MAC でメッセージ ヘッダのみを保護する場合に指定します。"1"、"2"、"3" は、MD5、SHA1、SHA256 に基づいたアルゴリズムを使用して MAC でメッセージ全体を保護する場合に指定します。

コード リスト 1-4コード リスト 1-5 に、ud32 を使用して MAC 属性を取得および更新する例をそれぞれ示します。

コード リスト 1-4 MAC 属性を取得するサンプル スクリプト
SRVCNM  .TMIB
TA_OPERATION GET
TA_CLASS T_DM_TDOMAIN
TA_DMACCESSPOINT RDOM
TA_DMNWADDR //host:port
コード リスト 1-5 MAC 属性を更新するサンプル スクリプト
SRVCNM  .TMIB
TA_OPERATION SET
TA_CLASS T_DM_TDOMAIN
TA_DMACCESSPOINT RDOM
TA_DMNWADDR //host:port
TA_DMLACCESSPOINT LDOM
TA_DMMAC MANDATORY
TA_DMMACLEVEL 2
MAC 調整

表 1-17 に、2 つのドメイン (DOM1 と DOM2) を示します。DOM1 (開始側) が DOM2 (受信側) とのセッションを確立している場合、MAC 調整結果は (1) MAC = ON、(2) MACLEVEL = 2 になります。

表 1-17 MAC 調整の例

サービス拒否 (DoS) 攻撃

表 1-18表 1-19 に、MAC と MACLEVEL の詳細をそれぞれ示します。

各表の最初のカラムには、DOM1 DMCONFIG ファイルの DM_TDOMAIN セクション内の DOM2 に対するコンフィグレーション パラメータが記入されています。ヘッダ行には、DOM2 DMCONFIG ファイルの DM_TDOMAIN セクション内の DOM1 に対するコンフィグレーション パラメータが記入されています。

表 1-18 の "ERROR" 結果は、接続が確立できないことを示します。MAC 調整結果が ON の場合、メッセージ全体の MACLEVEL が決定されます (表 1-19 を参照)。

MAC が有効な場合、使用される MACLEVEL は安全上の理由からより高い数値 (max (m1,m2)) に設定されます。これは、両方のエンドポイントでサポートされる必要があります (min (Max1,Max2) 以下)。つまり、調整された MACLEVEL は次の関係を満たす必要があります。
max(m1, m2)<=negotiated MACLEVEL<=min(Max1, Max2)。この関係が満たされていない場合は、接続が閉じられて対応するエラー メッセージが USERLOG に記録されます。

表 1-18 MAC 調整結果 (パラメータ : MAC)

サービス拒否 (DoS) 攻撃

表 1-19 MAC 調整結果 (パラメータ : MACLEVEL)

サービス拒否 (DoS) 攻撃

メッセージ

USERLOG に以下のメッセージが出力されます。

INFO メッセージ

以下の INFO メッセージは、MAC に関する合意がなされて 1 つのセッションで MAC 機能が設定された後に出力されます。

ERROR メッセージ

以下のエラー メッセージは、セッション調整および MAC 検証フェーズ時に表示されます。これらのメッセージが出力されると、接続は切断されます。

 


パスワード ペア保護

パスワード ペア保護機能はインストール後に自動的にデプロイされるため、コンフィグレーション作業は必要ありません。この機能により、GWTDOMAIN セキュリティ メカニズムが強化され、また、同じリモート パスワードによるデュアル パスワード ペアが使用できなかった以前のセキュリティの制限もなくなります。

パスワード ペア保護は、ローカル ドメインとリモート ドメインの両方でサポートされている場合にのみ機能します。ローカル ドメインとリモート ドメインの両方でサポートされてない場合は、既存の動作が変更されることはありません。


  ページの先頭       前  次