(58)【調査した分野】(Int.Cl.,DB名)
前記DSIマッピング・データ構造を用いて前記暗号化されたDCRを処理するステップが、前記DSIアドレスを用いて前記セッションに関するDSIデータを取得するステップをさらに含む、請求項3に記載の方法。
前記セキュリティ・デバイスが、前記復号されたDCRおよび前記DSIデータの分析の結果に基づいて1つまたは複数のセキュリティ操作を実行する、請求項5に記載の方法。
前記1つまたは複数のセキュリティ操作が、前記データ処理システムから前記クライアント・コンピューティング・デバイスへの応答を認可すること、前記データ処理システムから前記クライアント・コンピューティング・デバイスへの応答を遮断すること、前記データ処理システムからの応答を修正すること、前記DCRの処理の通知をユーザに送信すること、または前記DCRの前記処理に対応するログのエントリを生成することのうちの少なくとも1つを含む、請求項6に記載の方法。
【発明を実施するための形態】
【0013】
例示的な実施形態は、安全なデータベース・サーバ・ティアを通じてセッション属性を伝播するためのメカニズムを提供する。上述のように、データの暗号化された送信が増え続けており、特にデータベース・アクセスに関連して広く行われている。つまり、データベース・アクセスは、保護されている(暗号化されている)か、または保護されていない(暗号化されていない)かのどちらかである可能性がある。用語、安全なおよび安全でないは、それらがローカル・エージェントに言及するために本明細書において使用されるとき、ローカル・エージェントがデータを暗号化する/復号するための暗号化エンジンと連携して動作するか否かを特定するように意図されており、保護されていないアクセスのローカル・エージェントは、平文または暗号化されていないデータに関連して動作し、一方、安全なアクセスのローカル・エージェントは、暗号化エンジンおよび暗号化されたデータに関連して動作する。データベースに対するアクセスの監視は、データベース・アクセスが保護されているかまたは保護されていないかに応じて異なる。
【0014】
保護されたデータベース・アクセスのためのデータベース・アクセス監視メカニズムの例は、2010年5月27日に公開された「Nondestructive Interception of Secure Data in Transit」と題された米国特許出願第2010/0131758号に記載されている。米国特許出願第2010/0131758号のメカニズムによれば、クライアントの要求が、暗号化されるようにしてネットワークを介してインターフェースで受信される。暗号操作が、受信されたデータベース・クライアント要求(DCR)を復号し、データベース・サーバ応答(DSR:database server response)を暗号化するためにデータベース・サーバ・ティアで呼び出される。米国特許出願第2010/0131758号においてはデータベース・モニタ・エージェントと呼ばれる安全なアクセスのローカル・エージェント(LA1)が、データベース・サーバとクライアント・コンピューティング・デバイスとの間のデータの中心的なフローを途絶させることなく暗号操作による復号の後または暗号化の前に平文のDCRおよびDSRデータを傍受する。安全なアクセスのローカル・エージェント(LA1)は、傍受された平文のDCRおよびDSRデータをさらなる分析のために外部のデータベース・モニタに転送する。
【0015】
図1は、保護されたデータベース・アクセスで使用するのに好適な例示的な管理された情報環境のコンテキスト図である。
図1を参照すると、管理された情報環境100が、ネットワーク130を介してホスト120に結合されたユーザ・ノード110−1...110−n(集合的に110)を含む。概して、ユーザ・ノード110は、ホスト120と双方向通信するように動作するグラフィカル・ユーザ・インターフェース(GUI)112を有するPCまたはその他のローカル・コンピューティング・デバイスである。ホスト120は、相手のGUI112に結合されたホスト・アプリケーション112−1...112−n(集合的に122)を介してデータ・アクセスおよび検索サービスなどのサービスを提供する。ホスト・アプリケーション122は、ユーザ110へのサービスの配信を実行する命令を実行するための1つまたは複数のデータベース・サーバ・プロセス128への結合を含む。例示的な構成において、ホスト・アプリケーション122は、データベース126によってユーザ110にデータ・アクセスおよび検索サービスを提供するためのデータベース管理システム(DBMS)124に結合されたデータベース・サーバであり、したがって、プロセス128は、インターフェース125をDBMS124と結合する役割を担うデータベース・サーバまたはエージェント・プロセスである。
【0016】
典型的なデータベース環境100は、データ・レベル・セキュリティ・メカニズム154を使用することが多い。そのようなデータ・レベル・セキュリティ・メカニズムは、呼び出すアプリケーション122の特権またはアクセス制御リストではなく、データベースへのおよびデータベースからのデータ・アクセス・トランザクション140、142に焦点を当てる。データ・レベル・セキュリティ・メカニズム154は、データ・レベル・セキュリティ・メカニズム(データベース・モニタ)154を実質的に定義する外部データベース・セキュリティ・モニタ150、データベース・モニタ・エージェント160、またはこれらの組み合わせを含み得る。
【0017】
上で示されたように、データベース126のデータのセキュリティは、最も重要である。したがって、データベース・モニタ154は、インターフェースへのネットワーク接続を介したトランザクション140’を傍受することによるか、またはトランザクション140’’としてデータベース・エージェント152によってかのどちらかでデータ・アクセス・トランザクション140を傍受し、精査する。性能上の理由で、ホスト120からセキュリティ処理をオフロードするために、インターフェース125の前のネットワーク接続132上でアクセス・トランザクション140を捕捉することが求められることが多い。しかし、以下でさらに検討されるように、特定の状況は、ホスト120上の、本明細書においては安全なアクセスのローカル・エージェント(LA1)とも呼ばれるデータベース・モニタ・エージェント160も使用する。
【0018】
上で検討されたように、多くのデータベース管理システム124は、アプリケーションのGUI112からデータベース126への移動の間の機密データ項目の露出を避けるためにデータ・アクセス・トランザクション140を暗号化する。データ・アクセス応答142が、同様に隠される可能性がある。しかし、データベース・モニタ124(安全なアクセスのローカル・エージェント(LA1))は、平文の(暗号化されていない)データに対して動作する。したがって、データベース・モニタ124は、暗号文から平文への移行に対応する傍受点172−1...172−4(集合的に172)を特定し、精査するために平文のトランザクション140’’を捕捉する。特定のDBMS124によって使用される暗号化に応じて、傍受点172は、いくつかの場所のうちの1つに現れる可能性がある。傍受点172−4として示されるDBMSのIPCの傍受(つまり、ポートの読み取りの監視)の場合、傍受点172−4は、矢印99を通ってインターフェース125からポート187に渡されるデータを読み取るためのポート187の読み取りによってトリガされる。通信は、インターフェース125から暗号化されて到着し、サービス・プロセス(SVC)158’が、暗号操作158を呼び出すことによってデータを復号する。そして、サービス・プロセス(SVC)158’は、以下でさらに検討される、実際に傍受が行われる場所であるDBMS124に暗号化されていないデータを渡す。
【0019】
復号のための暗号操作158がインターフェース125から呼び出されるとき、概して、傍受ゾーン170−1に示されるソケットにおけるポートの読み取りによって、ネットワーク接続132からのデータベース・アクセス・トランザクション140をインターフェース125において傍受するために、プロセス間通信(IPC)メカニズムが使用される。傍受点172−1は、データベース・アクセス・トランザクション140を受信するためにDBMS124によって使用される所定のポートであり、所定のポートでトリガされる傍受を監視または確立することによって実現される。このようにして、データベース・トランザクション140に対応するポートを読むオペレーティング・システム(OS)呼び出しが、データベース・モニタがポートを読み、データを精査し、そのデータを意図されたようにDBMS124に渡す結果をもたらす。
【0020】
傍受は、暗号操作に対する動的リンク・リスト(DLL:dynamicallylinked list)呼び出しが使用されるとき、ゾーン170−2で行われる。復号操作158に対応する呼び出しシグネチャ(call signature)が、ゾーン170−2において傍受点172−2で復号操作の前にデータベース・モニタの呼び出しシグネチャを挿入することによって優先される。DLL処理は、暗号操作158の元々意図されていたシグネチャ180の前にモニタのシグネチャ182とのリンクを履行する。データベース・モニタ152は、暗号操作158を呼び出し、トランザクション140を精査し、その後、制御を返す。
【0021】
エンド・ツー・エンドの暗号化方式では、DBMSプロセス124自体が、静的リンクによる復号操作158に対する呼び出し172−3を含む。この場合、実行可能イメージの命令(メモリにあるマシン・エポード(machine epode))が、復号操作に対する呼び出し、典型的にはスタック呼び出しを特定するために調べられる。命令は、データベース・モニタ154に対する制御を延期する命令で置き換えられ、そのとき、延期する命令は、復号操作158を呼び出し、トランザクション140を精査する。
【0022】
保護されていないデータベース・アクセスのためのデータベース・アクセス監視メカニズムの例は、2008年9月16日にRon Ben-Natanに発行された米国特許第7,426,512号に記載されている。‘512号特許に記載されているように、ローカル・クライアントが、プロセス間通信(IPC)メカニズムにアクセスの試みを送信する。IPC傍受メカニズムは、アクセスの試みを傍受し、そのアクセスの試みを安全でないアクセスのローカル・エージェント(LA2)に転送し、安全でないアクセスのローカル・エージェント(LA2)が、IPCメカニズムに問い合わせることによって、ローカルのアクセスの試みに対応するデータベース命令を決定する。そして、安全でないアクセスのローカル・エージェント(LA2)は、決定されたデータベース命令を、データベース・モニタによる分析およびさらなる操作のために外部のデータ・セキュリティ・デバイスに送信する。外部のデータ・セキュリティ・デバイスは、ネットワーク・スイッチ/タップを介したリモートのアクセスの試みも受信する。
【0023】
図2は、保護されていないデータベース・アクセスで使用するのに好適なデータ記憶および検索環境のコンテキスト図である。
図2を参照すると、環境200が、データ記憶および検索操作(データベース(DB)操作)のためのDBホスト204をリモート・ユーザ202に提供する。ユーザ202は、LAN、イントラネット、エクストラネット、またはインターネットなどの任意の好適なインターネットワーキング・インフラストラクチャである可能性があるアクセス・ネットワーク206を介してホスト204に接続する。DBホスト204は、データベース210、典型的にはディスク・アレイまたはディスク・ドライブなどの大容量ストレージ・デバイスの組に接続されたデータベース・サーバ208を含む。データベース208は、以下でさらに検討されるさまざまなアクセス方法によるユーザ202のアクセスのためのアプリケーション・プログラミング・インターフェース(API)として動作するDBアクセス・ゲートウェイ212を含む。
【0024】
ユーザは、到着する要求216としてDBアクセス・ゲートウェイ212に配信するためにネットワーク206を通過するユーザ要求214またはデータベース・クライアント要求(DCR)の形態でデータベース208へのアクセスを開始する。データ・セキュリティ・デバイス220が、ネットワーク206からホスト204への経路上のスイッチ222、またはタップ、ルータ、もしくはブリッジなどのその他の接続デバイスによって接続される。データ・セキュリティ・デバイス220は、スイッチ222を通じて送信されたユーザ要求214を受信するためのDBモニタ224を含む。DBモニタ224は、到着するユーザ要求214を、所定のセキュリティまたはアクセス・ポリシーにしたがってDBモニタ224が分析する傍受されたアクセスの試み218として受信し、分析する。それから、データ・セキュリティ・デバイス220は、傍受されたアクセスの試み218を到着する要求216としてアクセス・ゲートウェイ(AG)212に渡す。
【0025】
概して、データベース・サーバ208は、DBトラフィックの実質的な部分(ユーザ要求214)がネットワーク206を介して遠隔で到着し、したがって、データ・セキュリティ・デバイス220の下での精査を通ると予測する。しかし、データベース・アクセスの試みの一部は、ローカル・クライアント230からローカルで生じ、ローカルのアクセスの試み232としてホスト204で実行される。ローカルのアクセスの試み232は、プロセス間通信(IPC)メカニズム234を介してアクセス・ゲートウェイ212に到着する。そのようなローカルのアクセスの試み232は、スイッチ222を通過せず、したがって、そうではなく、データ・セキュリティ・デバイス220の精査を避けるように操作することができる可能性がある。
【0026】
この欠点は、ローカルのアクセスの試み232を傍受し、傍受されたアクセスの試み242をローカル・エージェント(LA2)250に転送するためにIPC傍受240を使用することによって実質的に克服される。ローカル・エージェント(LA2)250は、IPCメカニズム234に問い合わせることによって、ローカルのアクセスの試み232に対応するデータベース命令252を決定する。そして、ローカル・エージェント(LA2)250は、決定されたデータベース命令252を、DBモニタ224による分析およびさらなる操作のためにデータ・セキュリティ・デバイス220に送信する。このようにして、データ・セキュリティ・デバイス220は、より完全に分析し、監視し、望ましくない可能性があるアクセスの試み232、216から守るために、DBサーバ208へのすべてのローカルおよびリモートのアクセスの試み232、216を受信する。
【0027】
この場合、安全でないアクセスのローカル・エージェント(LA2)は、データベース・セッション情報(DSI)にアクセスすることができることに留意されたい。データベース・セッション情報(DSI)は、クライアント・コンピューティング・デバイスとデータベース・サーバとの間のセッションの確立を定義する情報である。そのようなDSIデータの例は、データベース・クライアント・プロセスのオペレーション・システムのユーザ、データベース・クライアント・プロセス識別子、端末識別子、データベース・クライアントのIPアドレス、ならびにデータベース・クライアントおよびデータベース・サーバのポートを含む。DSIデータは、侵入を検出する目的で分析する重要なデータである可能性がある。DSI情報は、プロセス間通信(IPC)メカニズムがオペレーティング・システム(OS)レベルの標準的なアプリケーション・プログラミング・インターフェース(API)を使用し、OSのプロセス識別子が安全でないアクセスのローカル・エージェント(LA2)に利用され得るので安全でないアクセスのローカル・エージェントに利用され得る。OSのプロセス識別子が利用され得るので、DSI情報は、標準的なOS呼び出しを用いて取得され得る。
【0028】
明らかに、安全なデータベースはそのデータベースに記憶されたデータのより高いセキュリティを提供するが、‘758号米国特許出願に記載されているような安全なアクセスのローカル・エージェントの操作の欠点は、データベース・セッション情報(DSI)がデータベース・モニタ・エージェントまたはデータベース・セキュリティ・モニタに利用され得ないことである。これは、DSIがデータベース・ホスト・サーバ内のプロセスの実行フローに関与せず、データベース・モニタ・エージェントおよびデータベース・セキュリティ・モニタとは異なるレベル/ティアのオペレーティング・システムのレベル/ティアにおいてのみ利用可能であるデータ構造であることによる。ローカル・エージェントがデータベース・サーバ・ホストのローカルのローカル・クライアントからのみアクセスの試みを受信し、オペレーティング・システムおよびIPC APIと同じティア/レベルで動作し得るので、保護されていないデータベース・ローカル・エージェントの操作は、DSIデータにアクセスすることができるが、保護されたデータベース・ローカル・エージェントよりも安全性が劣る。
【0029】
さらに、保護されていないデータベース・ローカル・エージェントは、一般に、安全なデータベース・アクセスが暗号化されるのでそれらの安全なデータベース・アクセスで使用され得ない。つまり、安全なデータベース・アクセスの場合、安全でないアクセスのローカル・エージェント(LA2)によって傍受され得るDCRおよびDSRが暗号化されており、それらのDCRおよびDSRが安全でないアクセスのローカル・エージェント(LA2)によって外部セキュリティ・デバイス(ESD)に転送されるときにESDによって分析され得ない。DCRおよびDSRは暗号化されるが、オペレーティング・システム・レベルから収集される、保護されていないローカル・エージェント(LA2)によってアクセスされ得るDSIデータは暗号化されない。同様に、安全なアクセスのローカル・エージェント(LA1)を用いると、DSIデータは、暗号操作の呼び出しの地点で利用可能でなく、さらなる分析のために安全なアクセスのローカル・エージェント(LA1)によってESDに転送され得ないが、DCRおよびDSRは、暗号操作による復号の後(DCR)および暗号化の前(DSR)に傍受されるので暗号化されておらず、さらなる分析のためにESDに転送され得る。
【0030】
例示的な実施形態は、DSIおよび復号されたDCRデータがさらなる分析のために外部セキュリティ・デバイス(ESD)に提供されることを可能にするためにこれらのローカル・エージェントLA1およびLA2が一緒に利用され得るメカニズムを提供する。例示的な実施形態は、データベース・サーバ・ホストの暗号ティアで傍受された復号されたデータをデータベース・サーバ・ホストのデータベース・セッション属性にランタイムでマッピングする。これは、DSIデータが上で検討されたように他の状況であれば安全なアクセスのローカル・エージェントLA1に利用され得ないときに安全なアクセスのローカル・エージェントLA1に利用され得るようになることを可能にし、DCRおよびDSRが暗号化されるときに安全なデータベース・アクセスのためのデータベース・セッション識別情報が侵入を検出する分析および操作のためにESDに利用され得るようにされることに関連する問題を解決する。
【0031】
例示的な実施形態のメカニズムを用いると、データベース・アクセスは安全であり、したがって、DCRおよびDSRが暗号化される。しかし、安全でないアクセスのローカル・エージェント(LA2)が、暗号化されたDCRと、暗号化されていない、つまり、平文のDSIデータとを傍受し、暗号化されたDCRデータを平文のDSIデータにマッピングするために使用される。例示的な実施形態は、データの暗号化のために使用される暗号鍵が各データベース・セッション、例えば、各SSLハンドシェイクに関して一意であり、したがって、異なるセッションからの同じデータベースの平文のデータが各データベース・セッションのために使用される一意の暗号鍵によって異なる暗号化されたデータをもたらすという観測に基づいて動作する。したがって、暗号化されたデータから抽出された十分に長いバイナリ列は、マルチスレッド化されたデータベース・セッション処理で一意識別可能鍵(UIK)としてそのバイナリ文字列を使用するために十分にランダムで一意である。したがって、IPCメカニズムと統合された安全でないアクセスのローカル・エージェント(LA2)のプロセス間通信(IPC)ティアで傍受された暗号化されたDCRデータが、そのようなUIKを用いて安全でないDSI情報にマッピングされる可能性があり、そしてさらに、その安全でないDSI情報がセッション識別子(SI)にマッピングされ得る。SIは、暗号レベル/ティアでセッション暗号コンテキスト(session cryptographic context)を特定するハンドルである。
【0032】
結果として、安全なDCRを傍受し、暗号化されたDCRデータを復号して平文のDCRデータを生成する暗号操作を呼び出す安全なアクセスのローカル・エージェント(LA1)が、安全でないアクセスのローカル・エージェント(LA2)によって生成されたマッピングのおかげで平文のDSIデータを取得し得る。したがって、安全でないアクセスのローカル・エージェント(LA2)は、DCRから一意識別可能鍵(UIK)を抽出する。安全でないアクセスのローカル・エージェント(LA2)は、DSIマッピング・データ構造にUIKおよびDSIデータを記憶し、DSIマッピング・データ構造を安全なアクセスのローカル・エージェント(LA1)に利用され得るようにする。安全なアクセスのローカル・エージェント(LA1)は、その安全なアクセスのローカル・エージェント(LA1)に渡されたDCRからUIKを抽出し、UIKに基づいてDSIマッピング・データ構造内の探索動作を実行して対応するDSIデータを特定する。結果として、DSIデータが、安全なアクセスのローカル・エージェント(LA1)ティアでデータベース・セッションのために利用可能になる。そして、安全なアクセスのローカル・エージェント(LA1)は、平文のDSIデータおよび平文のDCRデータを外部セキュリティ・デバイス(ESD)に転送し得る。
【0033】
当業者に理解されるであろうように、本発明の態様は、システム、方法、またはコンピュータ・プログラム製品として具現化され得る。したがって、本発明の態様は、すべてハードウェアの実施形態、すべてソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)、またはすべてが概して本明細書において「回路」、「モジュール」、もしくは「システム」と呼ばれることがあるソフトウェアの態様とハードウェアの態様とを組み合わせる実施形態の形態をとる可能性がある。さらに、本発明の態様は、コンピュータが使用可能なプログラム・コードを具現化する任意の1つまたは複数のコンピュータ可読媒体で具現化されたコンピュータ・プログラム製品の形態をとる可能性がある。
【0034】
1つまたは複数のコンピュータ可読媒体の任意の組み合わせが、利用される可能性がある。コンピュータ可読媒体は、コンピュータ可読信号媒体またはコンピュータ可読ストレージ媒体である可能性がある。コンピュータ可読ストレージ媒体は、例えば、電子、磁気、光、電磁、赤外線、または半導体システム、装置、デバイス、またはこれらの任意の好適な組み合わせである可能性があるがこれらに限定されない。コンピュータ可読ストレージ媒体のより詳細な例(非網羅的なリスト)は、以下、すなわち、1つもしくは複数の配線を有する電気的な接続、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み出し専用メモリ(ROM)、消去可能プログラマブル読み出し専用メモリ(EPROMもしくはフラッシュ・メモリ)、光ファイバ、ポータブル・コンパクト・ディスク読み出し専用メモリ(CDROM)、光ストレージ・デバイス、磁気ストレージ・デバイス、またはこれらの任意の好適な組み合わせを含む。本明細書の文脈において、コンピュータ可読ストレージ媒体は、命令実行システム、装置、もしくはデバイスによって、または命令実行システム、装置、もしくはデバイスに関連して使用するためのプログラムを含むまたは記憶することができる任意の有形の媒体である可能性がある。
【0035】
コンピュータ可読信号媒体は、例えば、ベースバンドで、または搬送波の一部としてコンピュータ可読プログラム・コードを具現化する伝播されるデータ信号を含み得る。そのような伝播される信号は、電磁的、光学的、またはこれらの任意の好適な組み合わせを含むがこれらに限定されないさまざまな形態のうちの任意の形態をとり得る。コンピュータ可読信号媒体は、コンピュータ可読ストレージ媒体ではなく、命令実行システム、装置、もしくはデバイスによって、または命令実行システム、装置、もしくはデバイスに関連して使用するためのプログラムを伝達、伝播、または搬送することができる任意のコンピュータ可読媒体である可能性がある。
【0036】
コンピュータ可読媒体上に具現化されるコンピュータ・コードは、無線、有線、光ファイバ・ケーブル、無線周波数(RF)など、またはこれらの任意の好適な組み合わせを含むがこれらに限定されない任意の適切な媒体を用いて送信される可能性がある。
【0037】
本発明の態様の操作を実行するためのコンピュータ・プログラム・コードは、Java(R)、Smalltalk(R)、またはC++などのオブジェクト指向プログラミング言語と、「C」プログラミング言語または同様のプログラミング言語などの通常の手続き型プログラミング言語とを含む1つまたは複数のプログラミング言語の任意の組み合わせで記述され得る。プログラム・コードは、すべてユーザのコンピュータ上で、スタンドアロンのソフトウェア・パッケージとしてユーザのコンピュータ上で部分的に、ユーザのコンピュータ上で部分的にかつ遠隔のコンピュータ上で部分的に、またはすべて遠隔のコンピュータもしくはサーバ上で実行され得る。最後の筋書きでは、遠隔のコンピュータが、ローカル・エリア・ネットワーク(LAN)もしくは広域ネットワーク(WAN)を含む任意の種類のネットワークを通じてユーザのコンピュータに接続され得るか、または外部コンピュータへの接続が(例えば、インターネット・サービス・プロバイダを使用してインターネットを通じて)行われ得る。
【0038】
本発明の態様が、本発明の例示的な実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品の流れ図またはブロック図あるいはその両方を参照して以下で説明される。流れ図またはブロック図あるいはその両方の各ブロック、および流れ図またはブロック図あるいはその両方のブロックの組み合わせは、コンピュータ・プログラム命令によって実装され得ることが理解されるであろう。これらのコンピュータ・プログラム命令は、コンピュータまたはその他のプログラム可能なデータ処理装置のプロセッサによって実行される命令が、流れ図またはブロック図あるいはその両方の1つのブロックまたは複数のブロックで規定された機能/動作を実施するための手段をもたらすように、多目的コンピュータ、専用コンピュータ、またはその他のプログラム可能なデータ処理装置のプロセッサに与えられてマシンを作り出すものである可能性がある。
【0039】
これらのコンピュータ・プログラム命令は、コンピュータ可読媒体に記憶された命令が、流れ図またはブロック図あるいはその両方の1つのブロックまたは複数のブロックで規定された機能/動作を実施する命令を含む製品をもたらすように、コンピュータ、その他のプログラム可能なデータ処理装置、またはその他のデバイスを特定の方法で機能させることができるコンピュータ可読媒体に記憶される可能性もある。
【0040】
コンピュータ・プログラム命令は、コンピュータまたはその他のプログラム可能な装置で実行される命令が、流れ図またはブロック図あるいはその両方の1つのブロックまたは複数のブロックで規定された機能/動作を実施するためのプロセスを提供するように、コンピュータで実施されるプロセスを生成するために、コンピュータ、その他のプログラム可能なデータ処理装置、またはその他のデバイスにロードされ、コンピュータ、その他のプログラム可能な装置、またはその他のデバイスで一連の動作のステップが実行されるものである可能性もある。
【0041】
図面の流れ図およびブロック図は、本発明のさまざまな実施形態によるシステム、方法、およびコンピュータ・プログラム製品のあり得る実装のアーキテクチャ、機能、および動作を示す。これに関連して、流れ図またはブロック図の各ブロックは、(1つまたは複数の)規定された論理的な機能を実装するための1つまたは複数の実行可能命令を含むモジュール、セグメント、またはコードの一部を表す可能性がある。一部の代替的な実装においては、ブロックで示された機能が、図面に示された順序とは異なる順序で行われる可能性があることにも留意されたい。例えば、連続で示された2つのブロックが、実際には実質的に同時に実行される可能性があり、またはそれらのブロックが、関連する機能に応じて逆順に実行されることもあり得る。ブロック図または流れ図あるいはその両方の各ブロックと、ブロック図または流れ図あるいはその両方のブロックの組み合わせとは、規定された機能もしくは動作を実行する専用のハードウェアに基づくシステム、または専用のハードウェアとコンピュータ命令との組み合わせによって実装され得ることも認められるであろう。
【0042】
したがって、例示的な実施形態は、多くの異なる種類のデータ処理環境で利用され得る。例示的な実施形態の特定の要素および機能を説明するための文脈を与えるために、
図1および2は、以降、例示的な実施形態の態様が実装され得る例示的な環境として与えられる。
図1および2は例であるに過ぎず、本発明の態様または実施形態が実装され得る環境に関するいかなる限定も断言または示唆するように意図されていないことを理解されたい。示される環境に対する多くの変更が、本発明の思想および範囲から逸脱することなくなされ得る。
【0043】
図3は、1つの例示的な実施形態による安全なデータベース・システムの例示的なブロック図である。
図3に示されるように、データベース・サーバ・ホスト300は、安全でないアクセスのローカル・エージェント(LA2)320と安全なアクセスのローカル・エージェント(LA1)350との両方を含む。これらのエージェントは、上で
図1および2に示された対応するエージェントと同様であるが、DSIマッピング・データ・ストレージ340のエントリを生成し、利用するように本明細書に記載のさらなる操作および機能を実装するための論理によって拡張されている。したがって、
図3はこれらのローカル・エージェントをローカル・エージェントLA1およびLA2と呼ぶが、これは、
図1および2の参照および相関を分かりやすくするためになされているのであり、単純にこれらのローカル・エージェントLA1およびLA2が
図1および2に示されたローカル・エージェントと同じローカル・エージェントであると明言または示唆するように意図されていない。それらのローカル・エージェントは同様であるが、例示的な実施形態のメカニズムを実装するために大きく修正されている。
【0044】
図3に示されるように、
図2に関連して上で説明されたのと同様にして、保護されていないローカル・エージェント(LA2)320が、低レベルのプロセス間通信APIを提供するソフトウェアであるプロセス間通信(IPC)メカニズム324を介してローカル・クライアント326からデータベース・アクセス要求を受信する。既に説明されたように、IPC傍受322が、そのようなデータベース・アクセス要求を傍受し、それらのデータベース・アクセス要求を処理のために安全でないアクセスのローカル・エージェント(LA2)320に転送する。
【0045】
安全でないアクセスのローカル・エージェント(LA2)320は、データベース・クライアント要求(DCR)を復号するか、またはDCRに対するデータベース・サーバ応答(DSR)を暗号化するための暗号機能を呼び出すかまたは実施するように構成されないという意味で「安全でない」と言われ、実際には、IPC324およびIPC傍受322と統合される可能性がある。安全でないアクセスのローカル・エージェント(LA2)320は、
図2のローカル・エージェント250と比較されるとき、データベース・サーバ・ホスト300のローカルになく、データベース・クライアント310のようにデータベース・サーバ・ホスト300の外部にある可能性があるクライアントからDCRを受信するための論理を含むようにさらに拡張される。そのようなDCRは、スイッチ、ルータなどのルーティング・メカニズム(図示せず)を含む1つまたは複数のデータ・ネットワークを介して受信され得る。したがって、データベース360のデータのセキュリティを保証するために、そのようなDCR、およびデータベース・サーバ・ホスト300から送り返される対応するDSRが暗号化される。したがって、データベース360は、例えば、暗号エンジン352によって提供される暗号プロセスがデータベース・サーバ・ホスト300に送信されているデータおよびデータベース・サーバ・ホスト300から送信されているデータを保護するために使用される安全なデータベースである。
【0046】
保護されていないローカル・エージェント(LA2)320は、暗号エンジン352を呼び出すように構成されず、したがって、受信された暗号化されたDCRを処理のために平文の(復号された)DCRに変換することができない。したがって、保護されていないローカル・エージェント(LA2)320は、復号されたDCRをバックエンドのデータベース360に提供するか、またはデータベースへのアクセスをログに記録すること、そのような要求されたアクセスを遮断/許可する動作を実行すること、もしくはデータベース360からDSRで返されたデータを修正することなどのさらなる分析およびセキュリティ操作のために外部セキュリティ・デバイス370に提供する目的で、暗号化されたDCRに対する機能を実行することができない。
【0047】
しかし、例示的な実施形態によれば、保護されていないローカル・エージェント(LA2)320は、暗号化されたDCRに基づいて一意識別可能鍵(UIK)を抽出または生成するためのさらなる論理を含む。この論理は、DCRの暗号化されたデータのサブセットをUIKとして取得する。つまり、データベースとの各セッションのために使用される暗号鍵がそのセッションに対して一意であると考えられるので、DCRのデータのしかるべく十分に長いサブセットは、そのセッションに対して一意になる。言い換えると、2つの異なるセッションがデータベース・サーバ・ホスト300に同じ正確な要求を送った場合、少なくとも、各セッションのために使用される一意の暗号/復号鍵のために、暗号化されたDCRは異なる。
【0048】
UIKは、いくつかの異なる方法で抽出または生成され得る。DCR内の指定された位置の暗号化されたDCRの一部を単純に抽出することが、DCRからUIKを抽出するための基礎として使用される可能性がある。特定の実装に依存して、UIKは、さまざまなサイズを有する可能性があり、したがって、暗号化されたDCRの異なるサブセットである可能性がある。例えば、1つの例示的な実施形態において、UIKは、暗号化されたDCRの8バイトのサブセットまたは部分である可能性がある。したがって、UIKは、暗号化されたDCRから抽出されたデータの暗号化されたパターンであり、クライアント・コンピューティング・デバイスとデータベース・サーバ・ホスト300との間の特定のセッションに対して一意である。
【0049】
暗号化されたDCRから保護されていないローカル・エージェント(LA2)320によって抽出されるUIKは、クライアント・コンピューティング・デバイス310とデータベース・サーバ・ホスト300との間のセッションに関するデータベース・セッション情報(DSI)と相互に関連付けられる。この相互の関連付けは、UIKと、DSIデータ・ストレージ330に記憶されたセッションに関する実際のDSIデータを指すDSIアドレスとの間でなされる。DSIアドレスへのUIKのマッピングは、安全でないアクセスのローカル・エージェント(LA2)320によってDSIマッピング・データ・ストレージ340のエントリに記憶される。したがって、DSIマッピング・データ・ストレージ340は、UIKによって特定された暗号化されたDCRを、セッションに関するDSIデータ・ストレージ330の暗号化されていないDSIにマッピングすることを可能にする。
【0050】
図3の説明では、データベース・クライアント310などのクライアント・コンピューティング・デバイスがデータベース・クライアント・コンピューティング・デバイス310とデータベース・サーバ・ホスト300との間のセッションを設定するための知られているハンドシェイク動作を実施すると仮定されることを理解されたい。このハンドシェイク動作の一部として、データベース・セッション情報(DSI)が、クライアント・コンピューティング・デバイスのそれぞれとのセッションのそれぞれに関して集められ、DSIデータ・ストア330に記憶される。上述のように、このDSIデータは、データベース・クライアント・プロセスのオペレーティング・システムのユーザ、データベース・クライアント・プロセスid、端末id、データベース・クライアントのIPアドレス、データベース・サーバのポート、またはクライアント・コンピューティング・デバイス310とデータベース・サーバ・ホスト300との間の接続を定義するその他の情報などの情報を含む可能性がある。このデータは、オペレーティング・システム・レベルで集められ、したがって、概して、暗号エンジン352および安全なアクセスのローカル・エージェント(LA1)350が動作するデータベース・サーバ・ホスト300の暗号またはセキュリティ・レベルに利用され得ない。
【0051】
安全でないアクセスのローカル・エージェント(LA2)320の動作に再び戻ると、安全でないアクセスのローカル・エージェント(LA2)320は、暗号エンジン352の暗号プロセスを呼び出すかまたは暗号エンジン352の暗号プロセスの呼び出しを傍受することができないので、暗号化されたDCRの復号を実行することができない。対照的に、データベース・サーバは、安全なアクセスのローカル・エージェント(LA1)350を呼び出し、受信された暗号化されたDCRを安全なアクセスのローカル・エージェント(LA1)350に与える。安全なアクセスのローカル・エージェント(LA1)350は、
図1のローカル・エージェント160と同様であるが、暗号化されたDCRからUIKを抽出し、UIKに基づいてDSIマッピング・データ・ストレージ340内の探索動作を実行して暗号化されていない(平文の)DSIデータに関するDSIアドレスを取得するための論理を含むように拡張される。したがって、安全なアクセスのローカル・エージェント(LA1)は、当技術分野で広く知られている方法で復号されたDCRを生成するために、暗号エンジン352の暗号プロセスを呼び出して受信された暗号化されたDCRを復号する。
【0052】
暗号プロセスがデータベース・サーバによって呼び出されているのと実質的に同時に、安全なアクセスのローカル・エージェント(LA1)350は、呼び出しを傍受し、安全でないアクセスのローカル・エージェント(LA2)320によって行われたのと同様の方法で暗号化されたDCRからUIKを抽出する。したがって、安全でないアクセスのローカル・エージェント(LA2)320と安全なアクセスのローカル・エージェント(LA1)350との両方が、暗号化されたDCRからUIKを抽出するために同じ論理を実装する。結果として、安全でないアクセスのローカル・エージェント(LA2)320によって抽出されるUIKと、安全なアクセスのローカル・エージェント(LA1)350によって抽出されるUIKとは、同一であるべきであり、それによって、DSIマッピング・データ・ストレージ340におけるDSIアドレス情報の探索を可能にする。
【0053】
安全なアクセスのローカル・エージェント(LA1)350によって抽出される抽出されたUIKに基づいて、安全なアクセスのローカル・エージェント(LA1)350は、DSIマッピング・データ・ストレージ340内の探索動作を実行し、UIKに対応するDSIアドレスを取得する。したがって、暗号エンジン352によって実行される暗号化されたDCRの復号と、抽出されたUIKに基づくDSIマッピング・データ・ストレージ340からのDSIアドレスの取得とのおかげで、安全なアクセスのローカル・エージェント(LA1)350は、復号されたDCRと、取得されたDSIアドレスによって指し示されたDSIデータ・ストレージ330の暗号化されていないDSIデータとの両方にアクセスすることができる。したがって、安全なアクセスのローカル・エージェント(LA1)350は、復号されたDCRをデータベース360に転送し、その結果、要求されたデータが、データベース360から取得される可能性があり、対応するデータベース・サーバ応答(DSR)が、そのようなDSRが侵入の検出などが原因でセキュリティ・メカニズムによって遮断されないと仮定して、当技術分野で広く知られている方法でデータベース・クライアント310に返される可能性がある。
【0054】
加えて、安全なアクセスのローカル・エージェント(LA1)350は、復号されたDCRおよび平文のDSIデータをさらなる分析およびセキュリティ操作のために外部セキュリティ・デバイス(ESD)370に転送する。つまり、ESD370は、DCRおよびDSIデータを処理して、データベース・システムからの確立されたいずれかのセキュリティ・ポリシーがDCRによって破られているかどうかを判定する。たびたび、そのような判定を行うために、セキュリティ・ポリシーが破られるか否かに関係がある可能性があるクライアント・コンピューティング・デバイス310、および使用されている接続の種類などについての情報を与えるDSIデータを有することが重要である。例えば、データベースは、例えば、ユーザAliceによってのみ、かつインターネット・プロトコル・アドレス192.168.1.175を有するコンピュータからのみテーブルがアクセスされ得るという関連するセキュリティ・ポリシーを有するテーブル「SECRET INFORMATION」を記憶する可能性がある。つまり、ESD370は、「ユーザがAliceではないか、またはクライアントのipアドレスが192.168.1.175ではない場合、警告を発する」という形の規則を有する可能性がある。
【0055】
実行され得るセキュリティ操作は、例えば、データベース・システムが要求されたデータをDSRで返すことを許すこと、またはセキュリティ・ポリシーの違反が起こる場合に要求されたデータを返すことを遮断することを含む可能性がある。さらに、セキュリティ操作は、より高度である可能性があり、データベース・クライアント310に返されるデータを匿名化する可能性、データベース・クライアント310に返される前に返されるデータを修正する可能性、別のロケーションにデータをリダイレクトする可能性、データベース・クライアント要求を任意のセキュリティ・ポリシー違反についての情報と一緒にログ・データ構造に記録する可能性、またはセキュリティ・ポリシー違反が起こる場合に権限のある個人に通知を送信する可能性などがある。セキュリティ・ポリシーが破られるか否かに基づいて実行され得る任意の好適なセキュリティ操作は、例示的な実施形態の思想および範囲を逸脱することなく使用され得る。
【0056】
したがって、上述の操作を要約すると、暗号化されたDCRがデータベース・サーバ・ホスト300によって受信されるとき、その暗号化されたDCRは安全でないアクセスのローカル・エージェント(LA2)320によって受信され、安全でないアクセスのローカル・エージェント(LA2)320は、UIKを抽出し、UIKをセッションに関するDSIアドレスに相互に関連付け、UIKをDSIアドレスにマッピングするためのDSIマッピング・データ・ストレージ340のDSIマッピング・データ構造のエントリを生成する。暗号化されたDCRは、安全なアクセスのローカル・エージェント(LA1)350に渡され、安全なアクセスのローカル・エージェント(LA1)350は、やはりUIKを生成し、DSIマッピング・データ構造内でUIKの探索を実行してDSIアドレスを取得し、暗号エンジン352を呼び出してDCRを復号する。そして、安全なアクセスのローカル・エージェント(LA1)350は、復号されたDCRおよびDSIをESD370に与え、復号されたDCRをデータベース360に与える。これは、DSIデータが従来技術のメカニズムにおいて他の状況であれば利用され得ないときに安全なアクセスのローカル・エージェント(LA1)350を介してESD370にアクセス可能になるようにされることを可能にする。
【0057】
上述のように、例示的な実施形態の主な特徴のうちの1つは、暗号化されたデータベース・クライアント要求(DCR)から一意識別可能鍵(UIK)を抽出する能力である。
図4は、1つの例示的な実施形態による暗号化されたデータベース・クライアント要求(DCR)からの一意識別可能鍵(UIK)の抽出、および現在のセッションに関するデータベース・セッション情報(DSI)アドレスとのUIKのマッピングを示す例示的な図である。
図4において、要素410は、暗号化されたデータを表すシンボルの列を有する暗号化されたデータベース・クライアント要求(DCR)パケットを表す。示された特定の例において、列の一部「17 03 01 00 36」は、トランスポート・レイヤ・セキュリティ(TLS)の一部であり、データが暗号化されることを示す。加えて、TLSプロトコルによれば、ヘッダ・オフセットは、暗号化されたデータの始まりがデータ・パケットのバイト6にあることを示す5バイトである。この特定の例において、鍵は、暗号化されたデータの最初の8バイトから抽出される8バイトの鍵であるように選択される。これは、データ・パケットの一部412に対応する。
【0058】
したがって、UIK420は、DSIアドレスとのマッピングで使用するためにDCRデータ・パケット420から安全でないアクセスのローカル・エージェント(LA2)によって抽出される。この例の目的のために、集められるDSIデータは以下を含むと仮定される。
DSIアドレス: 0x8057779
OSユーザ: admin
DBクライアント・プロセスID:53871
TERMINAL ID: tty05
データベース・クライアントIPアドレス:192.168.2.26
データベース・クライアント・ポート: 13756
データベース・サーバ・ポート: 4100
【0059】
安全でないアクセスのローカル・エージェント(LA2)は、UIK/DSIアドレスの対:(0x5a31720a71c4b65c, 0x8057779)をマッピングするDSIマッピング・データ構造(DSI_MAP)のエントリを生成する。
【0060】
図4の要素430は、DCRを復号し、DSIアドレスを取得し、復号されたDCRおよびDSIデータをESDに与えるときに安全なアクセスのローカル・エージェント(LA1)によって実施され得る擬似コードを示す。
図4の要素430に示されるように、安全なアクセスのローカル・エージェント(LA1)は、暗号化されたDCRの復号を初期化し、DSI_MAPデータ構造からDSIを取得し、DSIアドレスを現在のセッション情報(SI)にマッピングする。その後、安全なアクセスのローカル・エージェント(LA1)は、DSIが利用可能であり、DSIデータがSI情報と相互に関連付けられているのが初めてである場合、DSIデータおよび平文のDCRをESDにプッシュする(そのような相互の関連付けは、初回にのみ実行される必要があり、この相互の関連付けは、その後の操作で再利用され得る)。DSIが利用可能でない場合、平文のDCRのみがESDに送信される。
【0061】
図5は、1つの例示的な実施形態による安全なデータベース・システムで暗号化されたデータベース・クライアント要求(DCR)を処理するための例示的な操作の概略を示す流れ図である。
図5に示されるように、操作は、安全でないアクセスのローカル・エージェント(LA2)において暗号化されたデータベース・クライアント要求(DCR)を受信することによって始まる(ステップ510)。セッションに関するデータベース・セッション情報(DSI)アドレスが、安全でないアクセスのローカル・エージェント(LA2)によって受信される(ステップ520)。安全でないアクセスのローカル・エージェント(LA2)は、暗号化されたDCRから一意識別可能鍵(UIK)を抽出し(ステップ530)、UIKをDSIアドレスにマッピングするDSIマッピング・データ構造のエントリを記憶する(ステップ540)。そして、暗号化されたDCRが、安全でないアクセスのローカル・エージェントによって安全なアクセスのローカル・エージェントに渡される(ステップ550)。
【0062】
安全なアクセスのローカル・エージェントは、暗号化されたDCRに基づいてUIKを生成し(ステップ560)、DSIマッピング・データ構造内でUIKの探索を実行して対応するDSIアドレスを特定する(ステップ570)。DSIアドレスが、一致するUIKに基づいてDSIマッピング・データ構造から取得され(ステップ580)、DCRが、復号される(ステップ590)。復号されたDCRおよび平文のDSIデータが、外部セキュリティ・デバイスに出力される(ステップ600)。そして、外部セキュリティ・デバイスが、復号されたDCRおよびDSIに基づいて分析およびセキュリティ操作を実行する(ステップ610)。そして、操作は終了する。
【0063】
したがって、例示的な実施形態は、安全なデータベース・サーバを通じて外部セキュリティ・デバイスにデータベース・セッション情報でセッション属性を伝播するためのメカニズムを提供する。例示的な実施形態は、知られているアーキテクチャにおいてそのようなセッション属性が安全なデータベース・サーバのセキュリティ・ティアまたはレベルに利用され得ないことに関連する問題を克服する。例示的な実施形態は、安全なアクセスのローカル・エージェントがこれらのセッション属性にアクセスし、それらのセッション属性を復号されたデータベース・クライアント要求と一緒に外部セキュリティ・デバイスに与えることを可能にする。
【0064】
上述のように、例示的な実施形態は、すべてハードウェアの実施形態、すべてソフトウェアの実施形態、またはハードウェア要素とソフトウェア要素との両方を含む実施形態の形態をとる可能性があることを理解されたい。1つの例示的な実施形態において、例示的な実施形態のメカニズムは、ファームウェア、常駐ソフトウェア、マイクロコードなどを含むがこれらに限定されないソフトウェアまたはプログラム・コードで実装される。
【0065】
プログラム・コードの記憶または実行あるいはその両方に好適なデータ処理システムが、システム・バスを通じてメモリ要素に直接的または間接的に結合された少なくとも1つのプロセッサを含む。メモリ要素は、プログラム・コードの実際の実行中に使用されるローカル・メモリと、大容量ストレージと、実行中に大容量ストレージからコードが取得されなければならない回数を減らすために少なくとも一部のプログラム・コードの一時的な記憶を行うキャッシュ・メモリとを含み得る。
【0066】
(キーボード、ディスプレイ、ポインティング・デバイスなどを含むがこれらに限定されない)入力/出力またはI/Oデバイスが、直接か、または介在するI/Oコントローラを通じてかのどちらかでシステムに結合される可能性がある。介在するプライベートまたはパブリック・ネットワークを通じてデータ処理システムがその他のデータ処理システムまたは遠隔のプリンタもしくはストレージ・デバイスに結合されるようになることを可能にするために、ネットワーク・アダプタもシステムに結合される可能性がある。モデム、ケーブル・モデム、およびイーサネット(R)・カードは、現在利用可能な種類のネットワーク・アダプタのほんの一部である。
【0067】
図6は、例示的な実施形態の態様が実装され得る例示的なデータ処理システムのブロック図である。データ処理システム600は、本発明の例示的な実施形態に関するプロセスを実装するコンピュータが使用可能なコードまたは命令が配置され得る、
図3のデータベース・サーバ・ホスト300などのコンピュータの一例である。
【0068】
示された例において、データ処理システム600は、ノース・ブリッジおよびメモリ・コントローラ・ハブ(NB/MCH)602ならびにサウス・ブリッジおよび入力/出力(I/O)コントローラ・ハブ(SB/ICH)604を含むハブ・アーキテクチャを使用する。処理ユニット606、メイン・メモリ608、およびグラフィックス・プロセッサ610が、NB/MCH602に接続されている。グラフィックス・プロセッサ610は、アクセラレーテッド・グラフィックス・ポート(AGP)を通じてNB/MCH602に接続され得る。
【0069】
示された例においては、ローカル・エリア・ネットワーク(LAN)アダプタ612が、SB/ICH604に接続する。オーディオ・アダプタ616、キーボードおよびマウス・アダプタ620、モデム622、読み出し専用メモリ(ROM)624、ハード・ディスク・ドライブ(HDD)626、CD−ROMドライブ630、ユニバーサル・シリアル・バス(USB)ポートおよびその他の通信ポート632、ならびにPCI/PCIeデバイス634が、バス638およびバス640を通じてSB/ICH604に接続する。PCI/PCIeデバイスは、例えば、イーサネット(R)・アダプタ、アドイン・カード、およびノートブック・コンピュータ用のPCカードを含み得る。PCIがカード・バス・コントローラを使用する一方、PCIeは使用しない。ROM624は、例えば、フラッシュ基本入出力システム(BIOS)である可能性がある。
【0070】
HDD626およびCD−ROMドライブ630は、バス640を通じてSB/ICH604に接続する。HDD626およびCD−ROMドライブ630は、例えば、インテグレーテッド・デバイス・エレクトロニクス(IDE:integrated drive electronics)またはシリアル・アドバンスド・テクノロジー・アタッチメント(SATA:serial advanced technology attachment)インターフェースを使用する可能性がある。スーパーI/O(SIO)デバイス636が、SB/ICH604に接続される可能性がある。
【0071】
オペレーティング・システムが、処理ユニット606で実行される。オペレーティング・システムは、
図6のデータ処理システム600内のさまざまな構成要素を調整し、制御する。サーバとして、データ処理システム600は、例えば、Advanced Interactive Executive(AIX(R))オペレーティング・システムまたはLINUX(R)オペレーティング・システムを実行するIBM(R)eServer(商標)System p(R)コンピュータ・システムである可能性がある。データ処理システム600は、処理ユニット606の複数のプロセッサを含む対称型マルチプロセッサ(SMP)システムである可能性がある。あるいは、単一プロセッサ・システムが使用される可能性がある。Java(R)プログラミング・システムなどのオブジェクト指向プログラミング・システムが、オペレーティング・システムと連携して実行される可能性があり、データ処理システム600で実行されるJava(R)プログラムまたはアプリケーションからオペレーティング・システムに対する呼び出しを行う。
【0072】
オペレーティング・システム、オブジェクト指向プログラミング・システム、およびアプリケーションまたはプログラムに関する命令は、HDD626などのストレージ・デバイスに置かれており、処理ユニット606によって実行するためにメイン・メモリ608にロードされ得る。本発明の例示的な実施形態のためのプロセスは、例えばメイン・メモリ608、ROM624などのメモリ、または例えば1つもしくは複数の周辺デバイス626および630に置かれる可能性があるコンピュータが使用可能なプログラム・コードを用いて処理ユニット606によって実行され得る。
【0073】
図6に示されるバス638またはバス640などのバス・システムは、1つまたは複数のバスで構成される可能性がある。言うまでもなく、バス・システムは、ファブリックまたはアーキテクチャに接続された異なる構成要素またはデバイス間のデータの転送を行う任意の種類の通信ファブリックまたはアーキテクチャを使用して実装される可能性がある。
図6のモデム622またはネットワーク・アダプタ612などの通信ユニットは、データを送受信するために使用される1つまたは複数のデバイスを含み得る。メモリは、例えば、メイン・メモリ608、ROM624、または
図6のNB/MCH602に見られるようなキャッシュである可能性がある。
【0074】
当業者は、
図6のハードウェアが実装に応じて変わり得ることを理解するであろう。フラッシュ・メモリ、等価な不揮発性メモリ、または光ディスク・ドライブなどのその他の内部ハードウェアまたは周辺デバイスが、
図6に示されたハードウェアに加えて、またはそれらのハードウェアの代わりに使用される可能性がある。また、例示的な実施形態のプロセスは、上述のSMPシステム以外のマルチプロセッサ・データ処理システムに適用され得る。
【0075】
本発明の説明が、例示および説明を目的として示されており、網羅的であるように、または開示された形態の本発明に限定されるように意図されていない。多くの変更および改変が、当業者に明らかであろう。実施形態は、本発明の原理、実際の応用を最も良く説明し、考えられる特定の用途に適するさまざまな変更を加えたさまざまな実施形態に関して他の当業者が本発明を理解することを可能にするために選択され、説明された。