(57)【要約】【課題】データベース・クライアント要求を処理するためのメカニズムを提供する。【解決手段】暗号化されたデータベース・クライアント要求（ＤＣＲ）が、安全でないアクセスのローカル・エージェントによって、クライアント・コンピューティング・デバイスとデータベース・データ処理システムとの間のセッションの一部としてクライアント・コンピューティング・デバイスから受信される。安全でないアクセスのローカル・エージェントが、セッションに対応するデータベース・セッション情報（ＤＳＩ）アドレスを取得し、暗号化されたＤＣＲの一部に基づいて第１の一意識別可能鍵（ＵＩＫ）を生成する。安全でないアクセスのローカル・エージェントは、第１のＵＩＫをＤＳＩアドレスにマッピングするＤＳＩマッピング・データ構造を生成する。データベース・データ処理システムの安全なアクセスのローカル・エージェントが、ＤＳＩマッピング・データ構造を用いて暗号化されたＤＣＲを処理する。【選択図】図３
2016511480.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサおよびメモリを含むデータ処理システムにおいて、データベース・クライアント要求を処理するための方法であって、
前記データ処理システムの安全でないアクセスのローカル・エージェントによって、クライアント・コンピューティング・デバイスと前記データ処理システムとの間のセッションの一部として前記クライアント・コンピューティング・デバイスから暗号化されたデータベース・クライアント要求（ＤＣＲ）を受信するステップと、
前記安全でないアクセスのローカル・エージェントによって、前記セッションに対応するデータベース・セッション情報（ＤＳＩ）アドレスを取得するステップと、
前記安全でないアクセスのローカル・エージェントによって、前記暗号化されたＤＣＲの一部に基づいて第１の一意識別可能鍵（ＵＩＫ）を生成するステップと、
前記安全でないアクセスのローカル・エージェントによって、前記第１のＵＩＫを前記ＤＳＩアドレスにマッピングするＤＳＩマッピング・データ構造を生成するステップと、
前記データ処理システムの安全なアクセスのローカル・エージェントによって、前記ＤＳＩマッピング・データ構造を用いて前記暗号化されたＤＣＲを処理するステップと
を含む、方法。
【請求項２】
前記ＤＳＩマッピング・データ構造を用いて前記暗号化されたＤＣＲを処理するステップが、
前記安全なアクセスのローカル・エージェントによって、前記暗号化されたＤＣＲを復号するための暗号プロセスを呼び出すステップと、
前記安全なアクセスのローカル・エージェントによって、前記暗号プロセスの呼び出しを傍受することに応じて、前記ＤＳＩマッピング・データ構造に基づいて前記セッションに関する前記ＤＳＩアドレスを取得するステップと
を含む、請求項１に記載の方法。
【請求項３】
前記ＤＳＩマッピング・データ構造に基づいて前記セッションに関する前記ＤＳＩアドレスを取得するステップが、
前記安全なアクセスのローカル・エージェントによって、前記暗号化されたＤＣＲに基づいて第２のＵＩＫを生成するステップと、
前記第２のＵＩＫに基づいて前記ＤＳＩマッピング・データ構造内の探索動作を実行して、前記第２のＵＩＫに一致する一致ＵＩＫを有する前記ＤＳＩマッピング・データ構造の一致エントリを特定するステップと、
前記ＤＳＩマッピング・データ構造の前記一致エントリからＤＳＩアドレスを取得するステップと
を含む、請求項２に記載の方法。
【請求項４】
前記ＤＳＩマッピング・データ構造を用いて前記暗号化されたＤＣＲを処理するステップが、前記ＤＳＩアドレスを用いて前記セッションに関するＤＳＩデータを取得するステップをさらに含む、請求項３に記載の方法。
【請求項５】
前記ＤＳＩマッピング・データ構造を用いて前記暗号化されたＤＣＲを処理するステップが、
復号されたＤＣＲ、および前記ＤＳＩアドレスに対応する前記ＤＳＩデータをセキュリティ・デバイスに転送するステップであって、前記セキュリティ・デバイスが、前記復号されたＤＣＲおよび前記ＤＳＩデータをセキュリティ・ポリシー違反に関して分析する、前記転送するステップをさらに含む、請求項４に記載の方法。
【請求項６】
前記セキュリティ・デバイスが、前記復号されたＤＣＲおよび前記ＤＳＩデータの分析の結果に基づいて１つまたは複数のセキュリティ操作を実行する、請求項５に記載の方法。
【請求項７】
前記１つまたは複数のセキュリティ操作が、前記データ処理システムから前記クライアント・コンピューティング・デバイスへの応答を認可すること、前記データ処理システムから前記クライアント・コンピューティング・デバイスへの応答を遮断すること、前記データ処理システムからの応答を修正すること、前記ＤＣＲの処理の通知をユーザに送信すること、または前記ＤＣＲの前記処理に対応するログのエントリを生成することのうちの少なくとも１つを含む、請求項６に記載の方法。
【請求項８】
前記暗号化されたＤＣＲの一部に基づいて前記第１のＵＩＫを生成するステップが、
前記暗号化されたＤＣＲの一部を前記セッションに対して一意の暗号化されたパターンとして抽出するステップと、
前記暗号化されたＤＣＲの抽出された一部を前記第１のＵＩＫとして記憶するステップと
を含む、請求項１ないし７のいずれか一項に記載の方法。
【請求項９】
コンピュータ可読プログラムを記憶するコンピュータ可読ストレージ媒体を含むコンピュータ・プログラム製品であって、前記コンピュータ可読プログラムが、データ処理システムで実行されるときに前記データ処理システムに、
前記データ処理システムの安全でないアクセスのローカル・エージェントによって、クライアント・コンピューティング・デバイスと前記データ処理システムとの間のセッションの一部として前記クライアント・コンピューティング・デバイスから暗号化されたデータベース・クライアント要求（ＤＣＲ）を受信させ、
前記安全でないアクセスのローカル・エージェントによって、前記セッションに対応するデータベース・セッション情報（ＤＳＩ）アドレスを取得させ、
前記安全でないアクセスのローカル・エージェントによって、前記暗号化されたＤＣＲの一部に基づいて第１の一意識別可能鍵（ＵＩＫ）を生成させ、
前記安全でないアクセスのローカル・エージェントによって、前記第１のＵＩＫを前記ＤＳＩアドレスにマッピングするＤＳＩマッピング・データ構造を生成させ、
前記データ処理システムの安全なアクセスのローカル・エージェントによって、前記ＤＳＩマッピング・データ構造を用いて前記暗号化されたＤＣＲを処理させる、コンピュータ・プログラム製品。
【請求項１０】
前記コンピュータ可読プログラムが、さらに、前記データ処理システムに、少なくとも
前記安全なアクセスのローカル・エージェントによって、前記暗号化されたＤＣＲを復号するための暗号プロセスを呼び出すことと、
前記安全なアクセスのローカル・エージェントによって、前記暗号プロセスの呼び出しを傍受することに応じて、前記ＤＳＩマッピング・データ構造に基づいて前記セッションに関する前記ＤＳＩアドレスを取得することと
によって前記ＤＳＩマッピング・データ構造を用いて前記暗号化されたＤＣＲを処理させる、請求項９に記載のコンピュータ・プログラム製品。
【請求項１１】
前記コンピュータ可読プログラムが、さらに、前記データ処理システムに、少なくとも
前記安全なアクセスのローカル・エージェントによって、前記暗号化されたＤＣＲに基づいて第２のＵＩＫを生成することと、
前記第２のＵＩＫに基づいて前記ＤＳＩマッピング・データ構造内の探索動作を実行して、前記第２のＵＩＫに一致する一致ＵＩＫを有する前記ＤＳＩマッピング・データ構造の一致エントリを特定することと、
前記ＤＳＩマッピング・データ構造の前記一致エントリからＤＳＩアドレスを取得することと
によって前記ＤＳＩマッピング・データ構造に基づいて前記セッションに関する前記ＤＳＩアドレスを取得させる、請求項１０に記載のコンピュータ・プログラム製品。
【請求項１２】
前記コンピュータ可読プログラムが、さらに、前記データ処理システムに、少なくとも、前記ＤＳＩアドレスを用いて前記セッションに関するＤＳＩデータを取得することによって前記ＤＳＩマッピング・データ構造を用いて前記暗号化されたＤＣＲを処理させる、請求項１１に記載のコンピュータ・プログラム製品。
【請求項１３】
前記コンピュータ可読プログラムが、さらに、前記データ処理システムに、少なくとも
復号されたＤＣＲ、および前記ＤＳＩアドレスに対応する前記ＤＳＩデータをセキュリティ・デバイスに転送することであって、前記セキュリティ・デバイスが、前記復号されたＤＣＲおよび前記ＤＳＩデータをセキュリティ・ポリシー違反に関して分析する、前記転送することによって前記ＤＳＩマッピング・データ構造を用いて前記暗号化されたＤＣＲを処理させる、請求項１２に記載のコンピュータ・プログラム製品。
【請求項１４】
前記セキュリティ・デバイスが、前記復号されたＤＣＲおよび前記ＤＳＩデータの前記分析の結果に基づいて１つまたは複数のセキュリティ操作を実行する、請求項１３に記載のコンピュータ・プログラム製品。
【請求項１５】
前記１つまたは複数のセキュリティ操作が、前記データ処理システムから前記クライアント・コンピューティング・デバイスへの応答を認可すること、前記データ処理システムから前記クライアント・コンピューティング・デバイスへの応答を遮断すること、前記データ処理システムからの応答を修正すること、前記ＤＣＲの前記処理の通知をユーザに送信すること、または前記ＤＣＲの前記処理に対応するログのエントリを生成することのうちの少なくとも１つを含む、請求項１４に記載のコンピュータ・プログラム製品。
【請求項１６】
前記コンピュータ可読プログラムが、さらに、前記データ処理システムに、少なくとも
前記暗号化されたＤＣＲの一部を前記セッションに対して一意の暗号化されたパターンとして抽出することと、
前記暗号化されたＤＣＲの前記抽出された一部を前記第１のＵＩＫとして記憶することと
によって前記暗号化されたＤＣＲの一部に基づいて前記第１のＵＩＫを生成させる、請求項９ないし１５のいずれか一項に記載のコンピュータ・プログラム製品。
【請求項１７】
データ処理システムであって、
プロセッサと、
前記プロセッサに結合されたメモリと
を含み、前記メモリが命令を含み、前記命令が、前記プロセッサによって実行されるときに前記プロセッサに
前記データ処理システムの安全でないアクセスのローカル・エージェントによって、クライアント・コンピューティング・デバイスと前記データ処理システムとの間のセッションの一部として前記クライアント・コンピューティング・デバイスから暗号化されたデータベース・クライアント要求（ＤＣＲ）を受信させ、
前記安全でないアクセスのローカル・エージェントによって、前記セッションに対応するデータベース・セッション情報（ＤＳＩ）アドレスを取得させ、
前記安全でないアクセスのローカル・エージェントによって、前記暗号化されたＤＣＲの一部に基づいて第１の一意識別可能鍵（ＵＩＫ）を生成させ、
前記安全でないアクセスのローカル・エージェントによって、前記第１のＵＩＫを前記ＤＳＩアドレスにマッピングするＤＳＩマッピング・データ構造を生成させ、
前記データ処理システムの安全なアクセスのローカル・エージェントによって、前記ＤＳＩマッピング・データ構造を用いて前記暗号化されたＤＣＲを処理させる、データ処理システム。
【請求項１８】
前記命令が、さらに、前記プロセッサに、少なくとも
前記安全なアクセスのローカル・エージェントによって、前記暗号化されたＤＣＲを復号するための暗号プロセスを呼び出すことと、
前記安全なアクセスのローカル・エージェントによって、前記暗号プロセスの呼び出しを傍受することに応じて、前記ＤＳＩマッピング・データ構造に基づいて前記セッションに関する前記ＤＳＩアドレスを取得することと
によって前記ＤＳＩマッピング・データ構造を用いて前記暗号化されたＤＣＲを処理させる、請求項１７に記載のデータ処理システム。
【請求項１９】
前記命令が、さらに、前記プロセッサに、少なくとも
前記安全なアクセスのローカル・エージェントによって、前記暗号化されたＤＣＲに基づいて第２のＵＩＫを生成することと、
前記第２のＵＩＫに基づいて前記ＤＳＩマッピング・データ構造内の探索動作を実行して、前記第２のＵＩＫに一致する一致ＵＩＫを有する前記ＤＳＩマッピング・データ構造の一致エントリを特定することと、
前記ＤＳＩマッピング・データ構造の前記一致エントリからＤＳＩアドレスを取得することと
によって前記ＤＳＩマッピング・データ構造に基づいて前記セッションに関する前記ＤＳＩアドレスを取得させる、請求項１８に記載のデータ処理システム。
【請求項２０】
前記命令が、さらに、前記プロセッサに、少なくとも、前記ＤＳＩアドレスを用いて前記セッションに関するＤＳＩデータを取得することによって前記ＤＳＩマッピング・データ構造を用いて前記暗号化されたＤＣＲを処理させる、請求項１９に記載のデータ処理システム。
【請求項２１】
前記命令が、さらに、前記プロセッサに、少なくとも
復号されたＤＣＲ、および前記ＤＳＩアドレスに対応する前記ＤＳＩデータをセキュリティ・デバイスに転送することであって、前記セキュリティ・デバイスが、前記復号されたＤＣＲおよび前記ＤＳＩデータをセキュリティ・ポリシー違反に関して分析する、前記転送することによって前記ＤＳＩマッピング・データ構造を用いて前記暗号化されたＤＣＲを処理させる、請求項２０に記載のデータ処理システム。
【請求項２２】
前記セキュリティ・デバイスが、前記復号されたＤＣＲおよび前記ＤＳＩデータの前記分析の結果に基づいて１つまたは複数のセキュリティ操作を実行する、請求項２１に記載のデータ処理システム。
【請求項２３】
前記１つまたは複数のセキュリティ操作が、前記データ処理システムから前記クライアント・コンピューティング・デバイスへの応答を認可すること、前記データ処理システムから前記クライアント・コンピューティング・デバイスへの応答を遮断すること、前記データ処理システムからの応答を修正すること、前記ＤＣＲの前記処理の通知をユーザに送信すること、または前記ＤＣＲの前記処理に対応するログのエントリを生成することのうちの少なくとも１つを含む、請求項２２に記載のデータ処理システム。
【請求項２４】
前記命令が、さらに、前記プロセッサに、少なくとも
前記暗号化されたＤＣＲの一部を前記セッションに対して一意の暗号化されたパターンとして抽出することと、
前記暗号化されたＤＣＲの前記抽出された一部を前記第１のＵＩＫとして記憶することと
によって前記暗号化されたＤＣＲの一部に基づいて前記第１のＵＩＫを生成させる、請求項１７ないし２３のいずれか一項に記載のデータ処理システム。
【請求項２５】
データベース・システムであって、
データベース・サーバ・ホスト・システムと、
前記データベース・サーバ・ホスト・システムに結合されたデータベース・ストレージ・デバイスと、
前記データベース・サーバ・ホスト・システムに結合された外部セキュリティ・デバイスと
を含み、前記データベース・ホスト・システムが、安全でないアクセスのローカル・エージェント、安全なアクセスのローカル・エージェント、および暗号エンジンを実装するように構成され、前記データベース・サーバ・ホスト・システムが、
前記安全でないアクセスのローカル・エージェントによって、クライアント・コンピューティング・デバイスとデータ処理システムとの間のセッションの一部として前記クライアント・コンピューティング・デバイスから暗号化されたデータベース・クライアント要求（ＤＣＲ）を受信し、
前記安全でないアクセスのローカル・エージェントによって、前記セッションに対応するデータベース・セッション情報（ＤＳＩ）アドレスを取得し、
前記安全でないアクセスのローカル・エージェントによって、前記暗号化されたＤＣＲの一部に基づいて第１の一意識別可能鍵（ＵＩＫ）を生成し、
前記安全でないアクセスのローカル・エージェントによって、前記第１のＵＩＫを前記ＤＳＩアドレスにマッピングするＤＳＩマッピング・データ構造を生成し、
前記データ処理システムの安全なアクセスのローカル・エージェントによって、前記ＤＳＩマッピング・データ構造内の探索動作を実行することと、前記暗号化されたＤＣＲに基づいて前記安全なアクセスのローカル・エージェントによって生成された第２のＵＩＫを用いて前記ＤＳＩアドレスを取得することと、前記ＤＳＩアドレスに対応する平文のＤＳＩデータ、および前記暗号化されたＤＣＲに基づいて前記暗号エンジンによって生成された復号されたＤＣＲをセキュリティ・ポリシー違反を検出する処理のために前記外部セキュリティ・デバイスに与えることとによって前記ＤＳＩマッピング・データ構造を用いて前記暗号化されたＤＣＲを処理する
ようにさらに構成される、データベース・システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、一般に、改善されたデータ処理装置および方法に関し、より詳細には、安全なデータベース・サーバ・ティアを通じてセッション属性を伝播するためのメカニズムに関する。
【背景技術】
【０００２】
現在の管理された情報環境は、セキュリティ能力のレベルを高め続けている。かつて、データを保護するための暗号操作は、時間の面でも計算の面でも高価であった。結果として、それらの暗号操作は、概して、非常に機密性の高い行政および財務に関連することのために確保されていた。プロセッサの速度が上がり、メモリの容量が増えるにつれて、かつては特殊で高価なハードウェアだけに限られていた暗号操作を実行する能力は、今や、多くのアプリケーションで当たり前になっている。通常の既製アプリケーションは、ソフトウェアに暗号化能力を組み込むことがもはや処理のボトルネックを生じないのでソフトウェアに暗号化能力を組み込む。
【０００３】
さらに、ネットワークの能力が上がり続け、ブロードバンド（例えば、ケーブル・モデム）インターネット・アクセスの使用が増え、ＷｉＦｉ能力（例えば、８０２．１１ｂ／ｇ／ｎ無線）の人気が高まるにつれて、送信される膨大な量のデータが、暗号化されていない送信（いわゆる「平文」）が機密情報を漏洩するますます高いリスクを冒すという認識を高める。送信中にほとんどまたはすべてのデータを暗号化することの知覚される不利益が最小限であるので、送信中にほとんどまたはすべてのデータを暗号化する傾向が高まっている。したがって、送信元と送信先との間を移動中のデータは、暗号化されることが多い。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許出願第２０１０／０１３１７５８号
【特許文献２】米国特許第７，４２６，５１２号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従って本発明の課題は、安全なデータベース・サーバ・ティアを通じたセッション属性の伝播を行うための、データベース・クライアント要求を処理するための方法、コンピュータ・プログラム製品、データ処理システム、およびデータベース・システムを提供することである。
【課題を解決するための手段】
【０００６】
１つの例示的な実施形態では、プロセッサおよびメモリを含むデータ処理システムにおいて、データベース・クライアント要求（database client request）を処理するための方法が、提供される。方法は、データ処理システムの安全でないアクセスのローカル・エージェント（local agent）によって、クライアント・コンピューティング・デバイスとデータ処理システムとの間のセッションの一部としてクライアント・コンピューティング・デバイスから暗号化されたデータベース・クライアント要求（ＤＣＲ）を受信するステップを含む。
【０００７】
方法は、さらに、安全でないアクセスのローカル・エージェントによって、セッションに対応するデータベース・セッション情報（ＤＳＩ）アドレスを取得するステップを含む。加えて、方法は、安全でないアクセスのローカル・エージェントによって、暗号化されたＤＣＲの一部に基づいて第１の一意識別可能鍵（ＵＩＫ：unique identifiable key）を生成するステップを含む。さらに、方法は、安全でないアクセスのローカル・エージェントによって、第１のＵＩＫをＤＳＩアドレスにマッピングするＤＳＩマッピング・データ構造を生成するステップと、データ処理システムの安全なアクセスのローカル・エージェントによって、ＤＳＩマッピング・データ構造を用いて暗号化されたＤＣＲを処理するステップとを含む。
【０００８】
その他の例示的な実施形態においては、コンピュータ可読プログラムを有するコンピュータが使用可能または読み取り可能な媒体を含むコンピュータ・プログラム製品が、提供される。コンピュータ可読プログラムは、コンピューティング・デバイスで実行されるときにコンピューティング・デバイスに方法の例示的な実施形態に関連して上で概説された操作のうちのさまざまな操作および操作の組み合わせを実行させる。
【０００９】
さらに別の例示的な実施形態においては、システム／装置が提供される。システム／装置は、１つまたは複数のプロセッサと、１つまたは複数のプロセッサに結合されたメモリとを含み得る。メモリは、１つまたは複数のプロセッサによって実行されるときに１つまたは複数のプロセッサに方法の例示的な実施形態に関連して上で概説された操作のうちのさまざまな操作および操作の組み合わせを実行させる命令を含み得る。
【００１０】
本発明のこれらのおよびその他の特徴および利点は、本発明の例示的な実施形態の以下の詳細な説明に示されるか、または本発明の例示的な実施形態の以下の詳細な説明に鑑みて当業者に明らかになる。
【００１１】
本発明と、本発明の好ましい使用の形態、ならびにさらなる目的、および利点とは、添付の図面と併せて読まれるときに、例示的な実施形態の以下の詳細な説明を参照することによって最も深く理解されるであろう。
【図面の簡単な説明】
【００１２】
【図１】保護されたデータベース・アクセスで使用するのに好適な例示的な管理された情報環境のコンテキスト図である。
【図２】保護されていないデータベース・アクセスで使用するのに好適なデータ記憶および検索環境のコンテキスト図である。
【図３】１つの例示的な実施形態による安全なデータベース・システムの例示的なブロック図である。
【図４】１つの例示的な実施形態による暗号化されたデータベース・クライアント要求（ＤＣＲ）からの一意識別可能鍵（ＵＩＫ）の抽出、および現在のセッションに関するデータベース・セッション情報（ＤＳＩ）アドレスとのＵＩＫのマッピングを示す例示的な図である。
【図５】１つの例示的な実施形態による安全なデータベース・システムで暗号化されたデータベース・クライアント要求（ＤＣＲ）を処理するための例示的な操作の概略を示す流れ図である。
【図６】例示的な実施形態の態様が実装され得る例示的なデータ処理システムのブロック図である。
【発明を実施するための形態】
【００１３】
例示的な実施形態は、安全なデータベース・サーバ・ティアを通じてセッション属性を伝播するためのメカニズムを提供する。上述のように、データの暗号化された送信が増え続けており、特にデータベース・アクセスに関連して広く行われている。つまり、データベース・アクセスは、保護されている（暗号化されている）か、または保護されていない（暗号化されていない）かのどちらかである可能性がある。用語、安全なおよび安全でないは、それらがローカル・エージェントに言及するために本明細書において使用されるとき、ローカル・エージェントがデータを暗号化する／復号するための暗号化エンジンと連携して動作するか否かを特定するように意図されており、保護されていないアクセスのローカル・エージェントは、平文または暗号化されていないデータに関連して動作し、一方、安全なアクセスのローカル・エージェントは、暗号化エンジンおよび暗号化されたデータに関連して動作する。データベースに対するアクセスの監視は、データベース・アクセスが保護されているかまたは保護されていないかに応じて異なる。
【００１４】
保護されたデータベース・アクセスのためのデータベース・アクセス監視メカニズムの例は、２０１０年５月２７日に公開された「Nondestructive Interception of Secure Data in Transit」と題された米国特許出願第２０１０／０１３１７５８号に記載されている。米国特許出願第２０１０／０１３１７５８号のメカニズムによれば、クライアントの要求が、暗号化されるようにしてネットワークを介してインターフェースで受信される。暗号操作が、受信されたデータベース・クライアント要求（ＤＣＲ）を復号し、データベース・サーバ応答（ＤＳＲ：database server response）を暗号化するためにデータベース・サーバ・ティアで呼び出される。米国特許出願第２０１０／０１３１７５８号においてはデータベース・モニタ・エージェントと呼ばれる安全なアクセスのローカル・エージェント（ＬＡ１）が、データベース・サーバとクライアント・コンピューティング・デバイスとの間のデータの中心的なフローを途絶させることなく暗号操作による復号の後または暗号化の前に平文のＤＣＲおよびＤＳＲデータを傍受する。安全なアクセスのローカル・エージェント（ＬＡ１）は、傍受された平文のＤＣＲおよびＤＳＲデータをさらなる分析のために外部のデータベース・モニタに転送する。
【００１５】
図１は、保護されたデータベース・アクセスで使用するのに好適な例示的な管理された情報環境のコンテキスト図である。図１を参照すると、管理された情報環境１００が、ネットワーク１３０を介してホスト１２０に結合されたユーザ・ノード１１０−１．．．１１０−ｎ（集合的に１１０）を含む。概して、ユーザ・ノード１１０は、ホスト１２０と双方向通信するように動作するグラフィカル・ユーザ・インターフェース（ＧＵＩ）１１２を有するＰＣまたはその他のローカル・コンピューティング・デバイスである。ホスト１２０は、相手のＧＵＩ１１２に結合されたホスト・アプリケーション１１２−１．．．１１２−ｎ（集合的に１２２）を介してデータ・アクセスおよび検索サービスなどのサービスを提供する。ホスト・アプリケーション１２２は、ユーザ１１０へのサービスの配信を実行する命令を実行するための１つまたは複数のデータベース・サーバ・プロセス１２８への結合を含む。例示的な構成において、ホスト・アプリケーション１２２は、データベース１２６によってユーザ１１０にデータ・アクセスおよび検索サービスを提供するためのデータベース管理システム（ＤＢＭＳ）１２４に結合されたデータベース・サーバであり、したがって、プロセス１２８は、インターフェース１２５をＤＢＭＳ１２４と結合する役割を担うデータベース・サーバまたはエージェント・プロセスである。
【００１６】
典型的なデータベース環境１００は、データ・レベル・セキュリティ・メカニズム１５４を使用することが多い。そのようなデータ・レベル・セキュリティ・メカニズムは、呼び出すアプリケーション１２２の特権またはアクセス制御リストではなく、データベースへのおよびデータベースからのデータ・アクセス・トランザクション１４０、１４２に焦点を当てる。データ・レベル・セキュリティ・メカニズム１５４は、データ・レベル・セキュリティ・メカニズム（データベース・モニタ）１５４を実質的に定義する外部データベース・セキュリティ・モニタ１５０、データベース・モニタ・エージェント１６０、またはこれらの組み合わせを含み得る。
【００１７】
上で示されたように、データベース１２６のデータのセキュリティは、最も重要である。したがって、データベース・モニタ１５４は、インターフェースへのネットワーク接続を介したトランザクション１４０’を傍受することによるか、またはトランザクション１４０’’としてデータベース・エージェント１５２によってかのどちらかでデータ・アクセス・トランザクション１４０を傍受し、精査する。性能上の理由で、ホスト１２０からセキュリティ処理をオフロードするために、インターフェース１２５の前のネットワーク接続１３２上でアクセス・トランザクション１４０を捕捉することが求められることが多い。しかし、以下でさらに検討されるように、特定の状況は、ホスト１２０上の、本明細書においては安全なアクセスのローカル・エージェント（ＬＡ１）とも呼ばれるデータベース・モニタ・エージェント１６０も使用する。
【００１８】
上で検討されたように、多くのデータベース管理システム１２４は、アプリケーションのＧＵＩ１１２からデータベース１２６への移動の間の機密データ項目の露出を避けるためにデータ・アクセス・トランザクション１４０を暗号化する。データ・アクセス応答１４２が、同様に隠される可能性がある。しかし、データベース・モニタ１２４（安全なアクセスのローカル・エージェント（ＬＡ１））は、平文の（暗号化されていない）データに対して動作する。したがって、データベース・モニタ１２４は、暗号文から平文への移行に対応する傍受点１７２−１．．．１７２−４（集合的に１７２）を特定し、精査するために平文のトランザクション１４０’’を捕捉する。特定のＤＢＭＳ１２４によって使用される暗号化に応じて、傍受点１７２は、いくつかの場所のうちの１つに現れる可能性がある。傍受点１７２−４として示されるＤＢＭＳのＩＰＣの傍受（つまり、ポートの読み取りの監視）の場合、傍受点１７２−４は、矢印９９を通ってインターフェース１２５からポート１８７に渡されるデータを読み取るためのポート１８７の読み取りによってトリガされる。通信は、インターフェース１２５から暗号化されて到着し、サービス・プロセス（ＳＶＣ）１５８’が、暗号操作１５８を呼び出すことによってデータを復号する。そして、サービス・プロセス（ＳＶＣ）１５８’は、以下でさらに検討される、実際に傍受が行われる場所であるＤＢＭＳ１２４に暗号化されていないデータを渡す。
【００１９】
復号のための暗号操作１５８がインターフェース１２５から呼び出されるとき、概して、傍受ゾーン１７０−１に示されるソケットにおけるポートの読み取りによって、ネットワーク接続１３２からのデータベース・アクセス・トランザクション１４０をインターフェース１２５において傍受するために、プロセス間通信（ＩＰＣ）メカニズムが使用される。傍受点１７２−１は、データベース・アクセス・トランザクション１４０を受信するためにＤＢＭＳ１２４によって使用される所定のポートであり、所定のポートでトリガされる傍受を監視または確立することによって実現される。このようにして、データベース・トランザクション１４０に対応するポートを読むオペレーティング・システム（ＯＳ）呼び出しが、データベース・モニタがポートを読み、データを精査し、そのデータを意図されたようにＤＢＭＳ１２４に渡す結果をもたらす。
【００２０】
傍受は、暗号操作に対する動的リンク・リスト（ＤＬＬ：dynamicallylinked list）呼び出しが使用されるとき、ゾーン１７０−２で行われる。復号操作１５８に対応する呼び出しシグネチャ（call signature）が、ゾーン１７０−２において傍受点１７２−２で復号操作の前にデータベース・モニタの呼び出しシグネチャを挿入することによって優先される。ＤＬＬ処理は、暗号操作１５８の元々意図されていたシグネチャ１８０の前にモニタのシグネチャ１８２とのリンクを履行する。データベース・モニタ１５２は、暗号操作１５８を呼び出し、トランザクション１４０を精査し、その後、制御を返す。
【００２１】
エンド・ツー・エンドの暗号化方式では、ＤＢＭＳプロセス１２４自体が、静的リンクによる復号操作１５８に対する呼び出し１７２−３を含む。この場合、実行可能イメージの命令（メモリにあるマシン・エポード（machine epode））が、復号操作に対する呼び出し、典型的にはスタック呼び出しを特定するために調べられる。命令は、データベース・モニタ１５４に対する制御を延期する命令で置き換えられ、そのとき、延期する命令は、復号操作１５８を呼び出し、トランザクション１４０を精査する。
【００２２】
保護されていないデータベース・アクセスのためのデータベース・アクセス監視メカニズムの例は、２００８年９月１６日にRon Ben-Natanに発行された米国特許第７，４２６，５１２号に記載されている。‘５１２号特許に記載されているように、ローカル・クライアントが、プロセス間通信（ＩＰＣ）メカニズムにアクセスの試みを送信する。ＩＰＣ傍受メカニズムは、アクセスの試みを傍受し、そのアクセスの試みを安全でないアクセスのローカル・エージェント（ＬＡ２）に転送し、安全でないアクセスのローカル・エージェント（ＬＡ２）が、ＩＰＣメカニズムに問い合わせることによって、ローカルのアクセスの試みに対応するデータベース命令を決定する。そして、安全でないアクセスのローカル・エージェント（ＬＡ２）は、決定されたデータベース命令を、データベース・モニタによる分析およびさらなる操作のために外部のデータ・セキュリティ・デバイスに送信する。外部のデータ・セキュリティ・デバイスは、ネットワーク・スイッチ／タップを介したリモートのアクセスの試みも受信する。
【００２３】
図２は、保護されていないデータベース・アクセスで使用するのに好適なデータ記憶および検索環境のコンテキスト図である。図２を参照すると、環境２００が、データ記憶および検索操作（データベース（ＤＢ）操作）のためのＤＢホスト２０４をリモート・ユーザ２０２に提供する。ユーザ２０２は、ＬＡＮ、イントラネット、エクストラネット、またはインターネットなどの任意の好適なインターネットワーキング・インフラストラクチャである可能性があるアクセス・ネットワーク２０６を介してホスト２０４に接続する。ＤＢホスト２０４は、データベース２１０、典型的にはディスク・アレイまたはディスク・ドライブなどの大容量ストレージ・デバイスの組に接続されたデータベース・サーバ２０８を含む。データベース２０８は、以下でさらに検討されるさまざまなアクセス方法によるユーザ２０２のアクセスのためのアプリケーション・プログラミング・インターフェース（ＡＰＩ）として動作するＤＢアクセス・ゲートウェイ２１２を含む。
【００２４】
ユーザは、到着する要求２１６としてＤＢアクセス・ゲートウェイ２１２に配信するためにネットワーク２０６を通過するユーザ要求２１４またはデータベース・クライアント要求（ＤＣＲ）の形態でデータベース２０８へのアクセスを開始する。データ・セキュリティ・デバイス２２０が、ネットワーク２０６からホスト２０４への経路上のスイッチ２２２、またはタップ、ルータ、もしくはブリッジなどのその他の接続デバイスによって接続される。データ・セキュリティ・デバイス２２０は、スイッチ２２２を通じて送信されたユーザ要求２１４を受信するためのＤＢモニタ２２４を含む。ＤＢモニタ２２４は、到着するユーザ要求２１４を、所定のセキュリティまたはアクセス・ポリシーにしたがってＤＢモニタ２２４が分析する傍受されたアクセスの試み２１８として受信し、分析する。それから、データ・セキュリティ・デバイス２２０は、傍受されたアクセスの試み２１８を到着する要求２１６としてアクセス・ゲートウェイ（ＡＧ）２１２に渡す。
【００２５】
概して、データベース・サーバ２０８は、ＤＢトラフィックの実質的な部分（ユーザ要求２１４）がネットワーク２０６を介して遠隔で到着し、したがって、データ・セキュリティ・デバイス２２０の下での精査を通ると予測する。しかし、データベース・アクセスの試みの一部は、ローカル・クライアント２３０からローカルで生じ、ローカルのアクセスの試み２３２としてホスト２０４で実行される。ローカルのアクセスの試み２３２は、プロセス間通信（ＩＰＣ）メカニズム２３４を介してアクセス・ゲートウェイ２１２に到着する。そのようなローカルのアクセスの試み２３２は、スイッチ２２２を通過せず、したがって、そうではなく、データ・セキュリティ・デバイス２２０の精査を避けるように操作することができる可能性がある。
【００２６】
この欠点は、ローカルのアクセスの試み２３２を傍受し、傍受されたアクセスの試み２４２をローカル・エージェント（ＬＡ２）２５０に転送するためにＩＰＣ傍受２４０を使用することによって実質的に克服される。ローカル・エージェント（ＬＡ２）２５０は、ＩＰＣメカニズム２３４に問い合わせることによって、ローカルのアクセスの試み２３２に対応するデータベース命令２５２を決定する。そして、ローカル・エージェント（ＬＡ２）２５０は、決定されたデータベース命令２５２を、ＤＢモニタ２２４による分析およびさらなる操作のためにデータ・セキュリティ・デバイス２２０に送信する。このようにして、データ・セキュリティ・デバイス２２０は、より完全に分析し、監視し、望ましくない可能性があるアクセスの試み２３２、２１６から守るために、ＤＢサーバ２０８へのすべてのローカルおよびリモートのアクセスの試み２３２、２１６を受信する。
【００２７】
この場合、安全でないアクセスのローカル・エージェント（ＬＡ２）は、データベース・セッション情報（ＤＳＩ）にアクセスすることができることに留意されたい。データベース・セッション情報（ＤＳＩ）は、クライアント・コンピューティング・デバイスとデータベース・サーバとの間のセッションの確立を定義する情報である。そのようなＤＳＩデータの例は、データベース・クライアント・プロセスのオペレーション・システムのユーザ、データベース・クライアント・プロセス識別子、端末識別子、データベース・クライアントのＩＰアドレス、ならびにデータベース・クライアントおよびデータベース・サーバのポートを含む。ＤＳＩデータは、侵入を検出する目的で分析する重要なデータである可能性がある。ＤＳＩ情報は、プロセス間通信（ＩＰＣ）メカニズムがオペレーティング・システム（ＯＳ）レベルの標準的なアプリケーション・プログラミング・インターフェース（ＡＰＩ）を使用し、ＯＳのプロセス識別子が安全でないアクセスのローカル・エージェント（ＬＡ２）に利用され得るので安全でないアクセスのローカル・エージェントに利用され得る。ＯＳのプロセス識別子が利用され得るので、ＤＳＩ情報は、標準的なＯＳ呼び出しを用いて取得され得る。
【００２８】
明らかに、安全なデータベースはそのデータベースに記憶されたデータのより高いセキュリティを提供するが、‘７５８号米国特許出願に記載されているような安全なアクセスのローカル・エージェントの操作の欠点は、データベース・セッション情報（ＤＳＩ）がデータベース・モニタ・エージェントまたはデータベース・セキュリティ・モニタに利用され得ないことである。これは、ＤＳＩがデータベース・ホスト・サーバ内のプロセスの実行フローに関与せず、データベース・モニタ・エージェントおよびデータベース・セキュリティ・モニタとは異なるレベル／ティアのオペレーティング・システムのレベル／ティアにおいてのみ利用可能であるデータ構造であることによる。ローカル・エージェントがデータベース・サーバ・ホストのローカルのローカル・クライアントからのみアクセスの試みを受信し、オペレーティング・システムおよびＩＰＣ  ＡＰＩと同じティア／レベルで動作し得るので、保護されていないデータベース・ローカル・エージェントの操作は、ＤＳＩデータにアクセスすることができるが、保護されたデータベース・ローカル・エージェントよりも安全性が劣る。
【００２９】
さらに、保護されていないデータベース・ローカル・エージェントは、一般に、安全なデータベース・アクセスが暗号化されるのでそれらの安全なデータベース・アクセスで使用され得ない。つまり、安全なデータベース・アクセスの場合、安全でないアクセスのローカル・エージェント（ＬＡ２）によって傍受され得るＤＣＲおよびＤＳＲが暗号化されており、それらのＤＣＲおよびＤＳＲが安全でないアクセスのローカル・エージェント（ＬＡ２）によって外部セキュリティ・デバイス（ＥＳＤ）に転送されるときにＥＳＤによって分析され得ない。ＤＣＲおよびＤＳＲは暗号化されるが、オペレーティング・システム・レベルから収集される、保護されていないローカル・エージェント（ＬＡ２）によってアクセスされ得るＤＳＩデータは暗号化されない。同様に、安全なアクセスのローカル・エージェント（ＬＡ１）を用いると、ＤＳＩデータは、暗号操作の呼び出しの地点で利用可能でなく、さらなる分析のために安全なアクセスのローカル・エージェント（ＬＡ１）によってＥＳＤに転送され得ないが、ＤＣＲおよびＤＳＲは、暗号操作による復号の後（ＤＣＲ）および暗号化の前（ＤＳＲ）に傍受されるので暗号化されておらず、さらなる分析のためにＥＳＤに転送され得る。
【００３０】
例示的な実施形態は、ＤＳＩおよび復号されたＤＣＲデータがさらなる分析のために外部セキュリティ・デバイス（ＥＳＤ）に提供されることを可能にするためにこれらのローカル・エージェントＬＡ１およびＬＡ２が一緒に利用され得るメカニズムを提供する。例示的な実施形態は、データベース・サーバ・ホストの暗号ティアで傍受された復号されたデータをデータベース・サーバ・ホストのデータベース・セッション属性にランタイムでマッピングする。これは、ＤＳＩデータが上で検討されたように他の状況であれば安全なアクセスのローカル・エージェントＬＡ１に利用され得ないときに安全なアクセスのローカル・エージェントＬＡ１に利用され得るようになることを可能にし、ＤＣＲおよびＤＳＲが暗号化されるときに安全なデータベース・アクセスのためのデータベース・セッション識別情報が侵入を検出する分析および操作のためにＥＳＤに利用され得るようにされることに関連する問題を解決する。
【００３１】
例示的な実施形態のメカニズムを用いると、データベース・アクセスは安全であり、したがって、ＤＣＲおよびＤＳＲが暗号化される。しかし、安全でないアクセスのローカル・エージェント（ＬＡ２）が、暗号化されたＤＣＲと、暗号化されていない、つまり、平文のＤＳＩデータとを傍受し、暗号化されたＤＣＲデータを平文のＤＳＩデータにマッピングするために使用される。例示的な実施形態は、データの暗号化のために使用される暗号鍵が各データベース・セッション、例えば、各ＳＳＬハンドシェイクに関して一意であり、したがって、異なるセッションからの同じデータベースの平文のデータが各データベース・セッションのために使用される一意の暗号鍵によって異なる暗号化されたデータをもたらすという観測に基づいて動作する。したがって、暗号化されたデータから抽出された十分に長いバイナリ列は、マルチスレッド化されたデータベース・セッション処理で一意識別可能鍵（ＵＩＫ）としてそのバイナリ文字列を使用するために十分にランダムで一意である。したがって、ＩＰＣメカニズムと統合された安全でないアクセスのローカル・エージェント（ＬＡ２）のプロセス間通信（ＩＰＣ）ティアで傍受された暗号化されたＤＣＲデータが、そのようなＵＩＫを用いて安全でないＤＳＩ情報にマッピングされる可能性があり、そしてさらに、その安全でないＤＳＩ情報がセッション識別子（ＳＩ）にマッピングされ得る。ＳＩは、暗号レベル／ティアでセッション暗号コンテキスト（session cryptographic context）を特定するハンドルである。
【００３２】
結果として、安全なＤＣＲを傍受し、暗号化されたＤＣＲデータを復号して平文のＤＣＲデータを生成する暗号操作を呼び出す安全なアクセスのローカル・エージェント（ＬＡ１）が、安全でないアクセスのローカル・エージェント（ＬＡ２）によって生成されたマッピングのおかげで平文のＤＳＩデータを取得し得る。したがって、安全でないアクセスのローカル・エージェント（ＬＡ２）は、ＤＣＲから一意識別可能鍵（ＵＩＫ）を抽出する。安全でないアクセスのローカル・エージェント（ＬＡ２）は、ＤＳＩマッピング・データ構造にＵＩＫおよびＤＳＩデータを記憶し、ＤＳＩマッピング・データ構造を安全なアクセスのローカル・エージェント（ＬＡ１）に利用され得るようにする。安全なアクセスのローカル・エージェント（ＬＡ１）は、その安全なアクセスのローカル・エージェント（ＬＡ１）に渡されたＤＣＲからＵＩＫを抽出し、ＵＩＫに基づいてＤＳＩマッピング・データ構造内の探索動作を実行して対応するＤＳＩデータを特定する。結果として、ＤＳＩデータが、安全なアクセスのローカル・エージェント（ＬＡ１）ティアでデータベース・セッションのために利用可能になる。そして、安全なアクセスのローカル・エージェント（ＬＡ１）は、平文のＤＳＩデータおよび平文のＤＣＲデータを外部セキュリティ・デバイス（ＥＳＤ）に転送し得る。
【００３３】
当業者に理解されるであろうように、本発明の態様は、システム、方法、またはコンピュータ・プログラム製品として具現化され得る。したがって、本発明の態様は、すべてハードウェアの実施形態、すべてソフトウェアの実施形態（ファームウェア、常駐ソフトウェア、マイクロコードなどを含む）、またはすべてが概して本明細書において「回路」、「モジュール」、もしくは「システム」と呼ばれることがあるソフトウェアの態様とハードウェアの態様とを組み合わせる実施形態の形態をとる可能性がある。さらに、本発明の態様は、コンピュータが使用可能なプログラム・コードを具現化する任意の１つまたは複数のコンピュータ可読媒体で具現化されたコンピュータ・プログラム製品の形態をとる可能性がある。
【００３４】
１つまたは複数のコンピュータ可読媒体の任意の組み合わせが、利用される可能性がある。コンピュータ可読媒体は、コンピュータ可読信号媒体またはコンピュータ可読ストレージ媒体である可能性がある。コンピュータ可読ストレージ媒体は、例えば、電子、磁気、光、電磁、赤外線、または半導体システム、装置、デバイス、またはこれらの任意の好適な組み合わせである可能性があるがこれらに限定されない。コンピュータ可読ストレージ媒体のより詳細な例（非網羅的なリスト）は、以下、すなわち、１つもしくは複数の配線を有する電気的な接続、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、消去可能プログラマブル読み出し専用メモリ（ＥＰＲＯＭもしくはフラッシュ・メモリ）、光ファイバ、ポータブル・コンパクト・ディスク読み出し専用メモリ（ＣＤＲＯＭ）、光ストレージ・デバイス、磁気ストレージ・デバイス、またはこれらの任意の好適な組み合わせを含む。本明細書の文脈において、コンピュータ可読ストレージ媒体は、命令実行システム、装置、もしくはデバイスによって、または命令実行システム、装置、もしくはデバイスに関連して使用するためのプログラムを含むまたは記憶することができる任意の有形の媒体である可能性がある。
【００３５】
コンピュータ可読信号媒体は、例えば、ベースバンドで、または搬送波の一部としてコンピュータ可読プログラム・コードを具現化する伝播されるデータ信号を含み得る。そのような伝播される信号は、電磁的、光学的、またはこれらの任意の好適な組み合わせを含むがこれらに限定されないさまざまな形態のうちの任意の形態をとり得る。コンピュータ可読信号媒体は、コンピュータ可読ストレージ媒体ではなく、命令実行システム、装置、もしくはデバイスによって、または命令実行システム、装置、もしくはデバイスに関連して使用するためのプログラムを伝達、伝播、または搬送することができる任意のコンピュータ可読媒体である可能性がある。
【００３６】
コンピュータ可読媒体上に具現化されるコンピュータ・コードは、無線、有線、光ファイバ・ケーブル、無線周波数（ＲＦ）など、またはこれらの任意の好適な組み合わせを含むがこれらに限定されない任意の適切な媒体を用いて送信される可能性がある。
【００３７】
本発明の態様の操作を実行するためのコンピュータ・プログラム・コードは、Ｊａｖａ（Ｒ）、Ｓｍａｌｌｔａｌｋ（Ｒ）、またはＣ＋＋などのオブジェクト指向プログラミング言語と、「Ｃ」プログラミング言語または同様のプログラミング言語などの通常の手続き型プログラミング言語とを含む１つまたは複数のプログラミング言語の任意の組み合わせで記述され得る。プログラム・コードは、すべてユーザのコンピュータ上で、スタンドアロンのソフトウェア・パッケージとしてユーザのコンピュータ上で部分的に、ユーザのコンピュータ上で部分的にかつ遠隔のコンピュータ上で部分的に、またはすべて遠隔のコンピュータもしくはサーバ上で実行され得る。最後の筋書きでは、遠隔のコンピュータが、ローカル・エリア・ネットワーク（ＬＡＮ）もしくは広域ネットワーク（ＷＡＮ）を含む任意の種類のネットワークを通じてユーザのコンピュータに接続され得るか、または外部コンピュータへの接続が（例えば、インターネット・サービス・プロバイダを使用してインターネットを通じて）行われ得る。
【００３８】
本発明の態様が、本発明の例示的な実施形態による方法、装置（システム）、およびコンピュータ・プログラム製品の流れ図またはブロック図あるいはその両方を参照して以下で説明される。流れ図またはブロック図あるいはその両方の各ブロック、および流れ図またはブロック図あるいはその両方のブロックの組み合わせは、コンピュータ・プログラム命令によって実装され得ることが理解されるであろう。これらのコンピュータ・プログラム命令は、コンピュータまたはその他のプログラム可能なデータ処理装置のプロセッサによって実行される命令が、流れ図またはブロック図あるいはその両方の１つのブロックまたは複数のブロックで規定された機能／動作を実施するための手段をもたらすように、多目的コンピュータ、専用コンピュータ、またはその他のプログラム可能なデータ処理装置のプロセッサに与えられてマシンを作り出すものである可能性がある。
【００３９】
これらのコンピュータ・プログラム命令は、コンピュータ可読媒体に記憶された命令が、流れ図またはブロック図あるいはその両方の１つのブロックまたは複数のブロックで規定された機能／動作を実施する命令を含む製品をもたらすように、コンピュータ、その他のプログラム可能なデータ処理装置、またはその他のデバイスを特定の方法で機能させることができるコンピュータ可読媒体に記憶される可能性もある。
【００４０】
コンピュータ・プログラム命令は、コンピュータまたはその他のプログラム可能な装置で実行される命令が、流れ図またはブロック図あるいはその両方の１つのブロックまたは複数のブロックで規定された機能／動作を実施するためのプロセスを提供するように、コンピュータで実施されるプロセスを生成するために、コンピュータ、その他のプログラム可能なデータ処理装置、またはその他のデバイスにロードされ、コンピュータ、その他のプログラム可能な装置、またはその他のデバイスで一連の動作のステップが実行されるものである可能性もある。
【００４１】
図面の流れ図およびブロック図は、本発明のさまざまな実施形態によるシステム、方法、およびコンピュータ・プログラム製品のあり得る実装のアーキテクチャ、機能、および動作を示す。これに関連して、流れ図またはブロック図の各ブロックは、（１つまたは複数の）規定された論理的な機能を実装するための１つまたは複数の実行可能命令を含むモジュール、セグメント、またはコードの一部を表す可能性がある。一部の代替的な実装においては、ブロックで示された機能が、図面に示された順序とは異なる順序で行われる可能性があることにも留意されたい。例えば、連続で示された２つのブロックが、実際には実質的に同時に実行される可能性があり、またはそれらのブロックが、関連する機能に応じて逆順に実行されることもあり得る。ブロック図または流れ図あるいはその両方の各ブロックと、ブロック図または流れ図あるいはその両方のブロックの組み合わせとは、規定された機能もしくは動作を実行する専用のハードウェアに基づくシステム、または専用のハードウェアとコンピュータ命令との組み合わせによって実装され得ることも認められるであろう。
【００４２】
したがって、例示的な実施形態は、多くの異なる種類のデータ処理環境で利用され得る。例示的な実施形態の特定の要素および機能を説明するための文脈を与えるために、図１および２は、以降、例示的な実施形態の態様が実装され得る例示的な環境として与えられる。図１および２は例であるに過ぎず、本発明の態様または実施形態が実装され得る環境に関するいかなる限定も断言または示唆するように意図されていないことを理解されたい。示される環境に対する多くの変更が、本発明の思想および範囲から逸脱することなくなされ得る。
【００４３】
図３は、１つの例示的な実施形態による安全なデータベース・システムの例示的なブロック図である。図３に示されるように、データベース・サーバ・ホスト３００は、安全でないアクセスのローカル・エージェント（ＬＡ２）３２０と安全なアクセスのローカル・エージェント（ＬＡ１）３５０との両方を含む。これらのエージェントは、上で図１および２に示された対応するエージェントと同様であるが、ＤＳＩマッピング・データ・ストレージ３４０のエントリを生成し、利用するように本明細書に記載のさらなる操作および機能を実装するための論理によって拡張されている。したがって、図３はこれらのローカル・エージェントをローカル・エージェントＬＡ１およびＬＡ２と呼ぶが、これは、図１および２の参照および相関を分かりやすくするためになされているのであり、単純にこれらのローカル・エージェントＬＡ１およびＬＡ２が図１および２に示されたローカル・エージェントと同じローカル・エージェントであると明言または示唆するように意図されていない。それらのローカル・エージェントは同様であるが、例示的な実施形態のメカニズムを実装するために大きく修正されている。
【００４４】
図３に示されるように、図２に関連して上で説明されたのと同様にして、保護されていないローカル・エージェント（ＬＡ２）３２０が、低レベルのプロセス間通信ＡＰＩを提供するソフトウェアであるプロセス間通信（ＩＰＣ）メカニズム３２４を介してローカル・クライアント３２６からデータベース・アクセス要求を受信する。既に説明されたように、ＩＰＣ傍受３２２が、そのようなデータベース・アクセス要求を傍受し、それらのデータベース・アクセス要求を処理のために安全でないアクセスのローカル・エージェント（ＬＡ２）３２０に転送する。
【００４５】
安全でないアクセスのローカル・エージェント（ＬＡ２）３２０は、データベース・クライアント要求（ＤＣＲ）を復号するか、またはＤＣＲに対するデータベース・サーバ応答（ＤＳＲ）を暗号化するための暗号機能を呼び出すかまたは実施するように構成されないという意味で「安全でない」と言われ、実際には、ＩＰＣ３２４およびＩＰＣ傍受３２２と統合される可能性がある。安全でないアクセスのローカル・エージェント（ＬＡ２）３２０は、図２のローカル・エージェント２５０と比較されるとき、データベース・サーバ・ホスト３００のローカルになく、データベース・クライアント３１０のようにデータベース・サーバ・ホスト３００の外部にある可能性があるクライアントからＤＣＲを受信するための論理を含むようにさらに拡張される。そのようなＤＣＲは、スイッチ、ルータなどのルーティング・メカニズム（図示せず）を含む１つまたは複数のデータ・ネットワークを介して受信され得る。したがって、データベース３６０のデータのセキュリティを保証するために、そのようなＤＣＲ、およびデータベース・サーバ・ホスト３００から送り返される対応するＤＳＲが暗号化される。したがって、データベース３６０は、例えば、暗号エンジン３５２によって提供される暗号プロセスがデータベース・サーバ・ホスト３００に送信されているデータおよびデータベース・サーバ・ホスト３００から送信されているデータを保護するために使用される安全なデータベースである。
【００４６】
保護されていないローカル・エージェント（ＬＡ２）３２０は、暗号エンジン３５２を呼び出すように構成されず、したがって、受信された暗号化されたＤＣＲを処理のために平文の（復号された）ＤＣＲに変換することができない。したがって、保護されていないローカル・エージェント（ＬＡ２）３２０は、復号されたＤＣＲをバックエンドのデータベース３６０に提供するか、またはデータベースへのアクセスをログに記録すること、そのような要求されたアクセスを遮断／許可する動作を実行すること、もしくはデータベース３６０からＤＳＲで返されたデータを修正することなどのさらなる分析およびセキュリティ操作のために外部セキュリティ・デバイス３７０に提供する目的で、暗号化されたＤＣＲに対する機能を実行することができない。
【００４７】
しかし、例示的な実施形態によれば、保護されていないローカル・エージェント（ＬＡ２）３２０は、暗号化されたＤＣＲに基づいて一意識別可能鍵（ＵＩＫ）を抽出または生成するためのさらなる論理を含む。この論理は、ＤＣＲの暗号化されたデータのサブセットをＵＩＫとして取得する。つまり、データベースとの各セッションのために使用される暗号鍵がそのセッションに対して一意であると考えられるので、ＤＣＲのデータのしかるべく十分に長いサブセットは、そのセッションに対して一意になる。言い換えると、２つの異なるセッションがデータベース・サーバ・ホスト３００に同じ正確な要求を送った場合、少なくとも、各セッションのために使用される一意の暗号／復号鍵のために、暗号化されたＤＣＲは異なる。
【００４８】
ＵＩＫは、いくつかの異なる方法で抽出または生成され得る。ＤＣＲ内の指定された位置の暗号化されたＤＣＲの一部を単純に抽出することが、ＤＣＲからＵＩＫを抽出するための基礎として使用される可能性がある。特定の実装に依存して、ＵＩＫは、さまざまなサイズを有する可能性があり、したがって、暗号化されたＤＣＲの異なるサブセットである可能性がある。例えば、１つの例示的な実施形態において、ＵＩＫは、暗号化されたＤＣＲの８バイトのサブセットまたは部分である可能性がある。したがって、ＵＩＫは、暗号化されたＤＣＲから抽出されたデータの暗号化されたパターンであり、クライアント・コンピューティング・デバイスとデータベース・サーバ・ホスト３００との間の特定のセッションに対して一意である。
【００４９】
暗号化されたＤＣＲから保護されていないローカル・エージェント（ＬＡ２）３２０によって抽出されるＵＩＫは、クライアント・コンピューティング・デバイス３１０とデータベース・サーバ・ホスト３００との間のセッションに関するデータベース・セッション情報（ＤＳＩ）と相互に関連付けられる。この相互の関連付けは、ＵＩＫと、ＤＳＩデータ・ストレージ３３０に記憶されたセッションに関する実際のＤＳＩデータを指すＤＳＩアドレスとの間でなされる。ＤＳＩアドレスへのＵＩＫのマッピングは、安全でないアクセスのローカル・エージェント（ＬＡ２）３２０によってＤＳＩマッピング・データ・ストレージ３４０のエントリに記憶される。したがって、ＤＳＩマッピング・データ・ストレージ３４０は、ＵＩＫによって特定された暗号化されたＤＣＲを、セッションに関するＤＳＩデータ・ストレージ３３０の暗号化されていないＤＳＩにマッピングすることを可能にする。
【００５０】
図３の説明では、データベース・クライアント３１０などのクライアント・コンピューティング・デバイスがデータベース・クライアント・コンピューティング・デバイス３１０とデータベース・サーバ・ホスト３００との間のセッションを設定するための知られているハンドシェイク動作を実施すると仮定されることを理解されたい。このハンドシェイク動作の一部として、データベース・セッション情報（ＤＳＩ）が、クライアント・コンピューティング・デバイスのそれぞれとのセッションのそれぞれに関して集められ、ＤＳＩデータ・ストア３３０に記憶される。上述のように、このＤＳＩデータは、データベース・クライアント・プロセスのオペレーティング・システムのユーザ、データベース・クライアント・プロセスｉｄ、端末ｉｄ、データベース・クライアントのＩＰアドレス、データベース・サーバのポート、またはクライアント・コンピューティング・デバイス３１０とデータベース・サーバ・ホスト３００との間の接続を定義するその他の情報などの情報を含む可能性がある。このデータは、オペレーティング・システム・レベルで集められ、したがって、概して、暗号エンジン３５２および安全なアクセスのローカル・エージェント（ＬＡ１）３５０が動作するデータベース・サーバ・ホスト３００の暗号またはセキュリティ・レベルに利用され得ない。
【００５１】
安全でないアクセスのローカル・エージェント（ＬＡ２）３２０の動作に再び戻ると、安全でないアクセスのローカル・エージェント（ＬＡ２）３２０は、暗号エンジン３５２の暗号プロセスを呼び出すかまたは暗号エンジン３５２の暗号プロセスの呼び出しを傍受することができないので、暗号化されたＤＣＲの復号を実行することができない。対照的に、データベース・サーバは、安全なアクセスのローカル・エージェント（ＬＡ１）３５０を呼び出し、受信された暗号化されたＤＣＲを安全なアクセスのローカル・エージェント（ＬＡ１）３５０に与える。安全なアクセスのローカル・エージェント（ＬＡ１）３５０は、図１のローカル・エージェント１６０と同様であるが、暗号化されたＤＣＲからＵＩＫを抽出し、ＵＩＫに基づいてＤＳＩマッピング・データ・ストレージ３４０内の探索動作を実行して暗号化されていない（平文の）ＤＳＩデータに関するＤＳＩアドレスを取得するための論理を含むように拡張される。したがって、安全なアクセスのローカル・エージェント（ＬＡ１）は、当技術分野で広く知られている方法で復号されたＤＣＲを生成するために、暗号エンジン３５２の暗号プロセスを呼び出して受信された暗号化されたＤＣＲを復号する。
【００５２】
暗号プロセスがデータベース・サーバによって呼び出されているのと実質的に同時に、安全なアクセスのローカル・エージェント（ＬＡ１）３５０は、呼び出しを傍受し、安全でないアクセスのローカル・エージェント（ＬＡ２）３２０によって行われたのと同様の方法で暗号化されたＤＣＲからＵＩＫを抽出する。したがって、安全でないアクセスのローカル・エージェント（ＬＡ２）３２０と安全なアクセスのローカル・エージェント（ＬＡ１）３５０との両方が、暗号化されたＤＣＲからＵＩＫを抽出するために同じ論理を実装する。結果として、安全でないアクセスのローカル・エージェント（ＬＡ２）３２０によって抽出されるＵＩＫと、安全なアクセスのローカル・エージェント（ＬＡ１）３５０によって抽出されるＵＩＫとは、同一であるべきであり、それによって、ＤＳＩマッピング・データ・ストレージ３４０におけるＤＳＩアドレス情報の探索を可能にする。
【００５３】
安全なアクセスのローカル・エージェント（ＬＡ１）３５０によって抽出される抽出されたＵＩＫに基づいて、安全なアクセスのローカル・エージェント（ＬＡ１）３５０は、ＤＳＩマッピング・データ・ストレージ３４０内の探索動作を実行し、ＵＩＫに対応するＤＳＩアドレスを取得する。したがって、暗号エンジン３５２によって実行される暗号化されたＤＣＲの復号と、抽出されたＵＩＫに基づくＤＳＩマッピング・データ・ストレージ３４０からのＤＳＩアドレスの取得とのおかげで、安全なアクセスのローカル・エージェント（ＬＡ１）３５０は、復号されたＤＣＲと、取得されたＤＳＩアドレスによって指し示されたＤＳＩデータ・ストレージ３３０の暗号化されていないＤＳＩデータとの両方にアクセスすることができる。したがって、安全なアクセスのローカル・エージェント（ＬＡ１）３５０は、復号されたＤＣＲをデータベース３６０に転送し、その結果、要求されたデータが、データベース３６０から取得される可能性があり、対応するデータベース・サーバ応答（ＤＳＲ）が、そのようなＤＳＲが侵入の検出などが原因でセキュリティ・メカニズムによって遮断されないと仮定して、当技術分野で広く知られている方法でデータベース・クライアント３１０に返される可能性がある。
【００５４】
加えて、安全なアクセスのローカル・エージェント（ＬＡ１）３５０は、復号されたＤＣＲおよび平文のＤＳＩデータをさらなる分析およびセキュリティ操作のために外部セキュリティ・デバイス（ＥＳＤ）３７０に転送する。つまり、ＥＳＤ３７０は、ＤＣＲおよびＤＳＩデータを処理して、データベース・システムからの確立されたいずれかのセキュリティ・ポリシーがＤＣＲによって破られているかどうかを判定する。たびたび、そのような判定を行うために、セキュリティ・ポリシーが破られるか否かに関係がある可能性があるクライアント・コンピューティング・デバイス３１０、および使用されている接続の種類などについての情報を与えるＤＳＩデータを有することが重要である。例えば、データベースは、例えば、ユーザＡｌｉｃｅによってのみ、かつインターネット・プロトコル・アドレス１９２．１６８．１．１７５を有するコンピュータからのみテーブルがアクセスされ得るという関連するセキュリティ・ポリシーを有するテーブル「ＳＥＣＲＥＴ  ＩＮＦＯＲＭＡＴＩＯＮ」を記憶する可能性がある。つまり、ＥＳＤ３７０は、「ユーザがＡｌｉｃｅではないか、またはクライアントのｉｐアドレスが１９２．１６８．１．１７５ではない場合、警告を発する」という形の規則を有する可能性がある。
【００５５】
実行され得るセキュリティ操作は、例えば、データベース・システムが要求されたデータをＤＳＲで返すことを許すこと、またはセキュリティ・ポリシーの違反が起こる場合に要求されたデータを返すことを遮断することを含む可能性がある。さらに、セキュリティ操作は、より高度である可能性があり、データベース・クライアント３１０に返されるデータを匿名化する可能性、データベース・クライアント３１０に返される前に返されるデータを修正する可能性、別のロケーションにデータをリダイレクトする可能性、データベース・クライアント要求を任意のセキュリティ・ポリシー違反についての情報と一緒にログ・データ構造に記録する可能性、またはセキュリティ・ポリシー違反が起こる場合に権限のある個人に通知を送信する可能性などがある。セキュリティ・ポリシーが破られるか否かに基づいて実行され得る任意の好適なセキュリティ操作は、例示的な実施形態の思想および範囲を逸脱することなく使用され得る。
【００５６】
したがって、上述の操作を要約すると、暗号化されたＤＣＲがデータベース・サーバ・ホスト３００によって受信されるとき、その暗号化されたＤＣＲは安全でないアクセスのローカル・エージェント（ＬＡ２）３２０によって受信され、安全でないアクセスのローカル・エージェント（ＬＡ２）３２０は、ＵＩＫを抽出し、ＵＩＫをセッションに関するＤＳＩアドレスに相互に関連付け、ＵＩＫをＤＳＩアドレスにマッピングするためのＤＳＩマッピング・データ・ストレージ３４０のＤＳＩマッピング・データ構造のエントリを生成する。暗号化されたＤＣＲは、安全なアクセスのローカル・エージェント（ＬＡ１）３５０に渡され、安全なアクセスのローカル・エージェント（ＬＡ１）３５０は、やはりＵＩＫを生成し、ＤＳＩマッピング・データ構造内でＵＩＫの探索を実行してＤＳＩアドレスを取得し、暗号エンジン３５２を呼び出してＤＣＲを復号する。そして、安全なアクセスのローカル・エージェント（ＬＡ１）３５０は、復号されたＤＣＲおよびＤＳＩをＥＳＤ３７０に与え、復号されたＤＣＲをデータベース３６０に与える。これは、ＤＳＩデータが従来技術のメカニズムにおいて他の状況であれば利用され得ないときに安全なアクセスのローカル・エージェント（ＬＡ１）３５０を介してＥＳＤ３７０にアクセス可能になるようにされることを可能にする。
【００５７】
上述のように、例示的な実施形態の主な特徴のうちの１つは、暗号化されたデータベース・クライアント要求（ＤＣＲ）から一意識別可能鍵（ＵＩＫ）を抽出する能力である。図４は、１つの例示的な実施形態による暗号化されたデータベース・クライアント要求（ＤＣＲ）からの一意識別可能鍵（ＵＩＫ）の抽出、および現在のセッションに関するデータベース・セッション情報（ＤＳＩ）アドレスとのＵＩＫのマッピングを示す例示的な図である。図４において、要素４１０は、暗号化されたデータを表すシンボルの列を有する暗号化されたデータベース・クライアント要求（ＤＣＲ）パケットを表す。示された特定の例において、列の一部「17 03 01 00 36」は、トランスポート・レイヤ・セキュリティ（ＴＬＳ）の一部であり、データが暗号化されることを示す。加えて、ＴＬＳプロトコルによれば、ヘッダ・オフセットは、暗号化されたデータの始まりがデータ・パケットのバイト６にあることを示す５バイトである。この特定の例において、鍵は、暗号化されたデータの最初の８バイトから抽出される８バイトの鍵であるように選択される。これは、データ・パケットの一部４１２に対応する。
【００５８】
したがって、ＵＩＫ４２０は、ＤＳＩアドレスとのマッピングで使用するためにＤＣＲデータ・パケット４２０から安全でないアクセスのローカル・エージェント（ＬＡ２）によって抽出される。この例の目的のために、集められるＤＳＩデータは以下を含むと仮定される。
DSIアドレス: 0x8057779
OSユーザ: admin
DBクライアント・プロセスID:53871
TERMINAL ID: tty05
データベース・クライアントIPアドレス:192.168.2.26
データベース・クライアント・ポート: 13756
データベース・サーバ・ポート: 4100
【００５９】
安全でないアクセスのローカル・エージェント（ＬＡ２）は、ＵＩＫ／ＤＳＩアドレスの対：（0x5a31720a71c4b65c, 0x8057779）をマッピングするＤＳＩマッピング・データ構造（ＤＳＩ＿ＭＡＰ）のエントリを生成する。
【００６０】
図４の要素４３０は、ＤＣＲを復号し、ＤＳＩアドレスを取得し、復号されたＤＣＲおよびＤＳＩデータをＥＳＤに与えるときに安全なアクセスのローカル・エージェント（ＬＡ１）によって実施され得る擬似コードを示す。図４の要素４３０に示されるように、安全なアクセスのローカル・エージェント（ＬＡ１）は、暗号化されたＤＣＲの復号を初期化し、ＤＳＩ＿ＭＡＰデータ構造からＤＳＩを取得し、ＤＳＩアドレスを現在のセッション情報（ＳＩ）にマッピングする。その後、安全なアクセスのローカル・エージェント（ＬＡ１）は、ＤＳＩが利用可能であり、ＤＳＩデータがＳＩ情報と相互に関連付けられているのが初めてである場合、ＤＳＩデータおよび平文のＤＣＲをＥＳＤにプッシュする（そのような相互の関連付けは、初回にのみ実行される必要があり、この相互の関連付けは、その後の操作で再利用され得る）。ＤＳＩが利用可能でない場合、平文のＤＣＲのみがＥＳＤに送信される。
【００６１】
図５は、１つの例示的な実施形態による安全なデータベース・システムで暗号化されたデータベース・クライアント要求（ＤＣＲ）を処理するための例示的な操作の概略を示す流れ図である。図５に示されるように、操作は、安全でないアクセスのローカル・エージェント（ＬＡ２）において暗号化されたデータベース・クライアント要求（ＤＣＲ）を受信することによって始まる（ステップ５１０）。セッションに関するデータベース・セッション情報（ＤＳＩ）アドレスが、安全でないアクセスのローカル・エージェント（ＬＡ２）によって受信される（ステップ５２０）。安全でないアクセスのローカル・エージェント（ＬＡ２）は、暗号化されたＤＣＲから一意識別可能鍵（ＵＩＫ）を抽出し（ステップ５３０）、ＵＩＫをＤＳＩアドレスにマッピングするＤＳＩマッピング・データ構造のエントリを記憶する（ステップ５４０）。そして、暗号化されたＤＣＲが、安全でないアクセスのローカル・エージェントによって安全なアクセスのローカル・エージェントに渡される（ステップ５５０）。
【００６２】
安全なアクセスのローカル・エージェントは、暗号化されたＤＣＲに基づいてＵＩＫを生成し（ステップ５６０）、ＤＳＩマッピング・データ構造内でＵＩＫの探索を実行して対応するＤＳＩアドレスを特定する（ステップ５７０）。ＤＳＩアドレスが、一致するＵＩＫに基づいてＤＳＩマッピング・データ構造から取得され（ステップ５８０）、ＤＣＲが、復号される（ステップ５９０）。復号されたＤＣＲおよび平文のＤＳＩデータが、外部セキュリティ・デバイスに出力される（ステップ６００）。そして、外部セキュリティ・デバイスが、復号されたＤＣＲおよびＤＳＩに基づいて分析およびセキュリティ操作を実行する（ステップ６１０）。そして、操作は終了する。
【００６３】
したがって、例示的な実施形態は、安全なデータベース・サーバを通じて外部セキュリティ・デバイスにデータベース・セッション情報でセッション属性を伝播するためのメカニズムを提供する。例示的な実施形態は、知られているアーキテクチャにおいてそのようなセッション属性が安全なデータベース・サーバのセキュリティ・ティアまたはレベルに利用され得ないことに関連する問題を克服する。例示的な実施形態は、安全なアクセスのローカル・エージェントがこれらのセッション属性にアクセスし、それらのセッション属性を復号されたデータベース・クライアント要求と一緒に外部セキュリティ・デバイスに与えることを可能にする。
【００６４】
上述のように、例示的な実施形態は、すべてハードウェアの実施形態、すべてソフトウェアの実施形態、またはハードウェア要素とソフトウェア要素との両方を含む実施形態の形態をとる可能性があることを理解されたい。１つの例示的な実施形態において、例示的な実施形態のメカニズムは、ファームウェア、常駐ソフトウェア、マイクロコードなどを含むがこれらに限定されないソフトウェアまたはプログラム・コードで実装される。
【００６５】
プログラム・コードの記憶または実行あるいはその両方に好適なデータ処理システムが、システム・バスを通じてメモリ要素に直接的または間接的に結合された少なくとも１つのプロセッサを含む。メモリ要素は、プログラム・コードの実際の実行中に使用されるローカル・メモリと、大容量ストレージと、実行中に大容量ストレージからコードが取得されなければならない回数を減らすために少なくとも一部のプログラム・コードの一時的な記憶を行うキャッシュ・メモリとを含み得る。
【００６６】
（キーボード、ディスプレイ、ポインティング・デバイスなどを含むがこれらに限定されない）入力／出力またはＩ／Ｏデバイスが、直接か、または介在するＩ／Ｏコントローラを通じてかのどちらかでシステムに結合される可能性がある。介在するプライベートまたはパブリック・ネットワークを通じてデータ処理システムがその他のデータ処理システムまたは遠隔のプリンタもしくはストレージ・デバイスに結合されるようになることを可能にするために、ネットワーク・アダプタもシステムに結合される可能性がある。モデム、ケーブル・モデム、およびイーサネット（Ｒ）・カードは、現在利用可能な種類のネットワーク・アダプタのほんの一部である。
【００６７】
図６は、例示的な実施形態の態様が実装され得る例示的なデータ処理システムのブロック図である。データ処理システム６００は、本発明の例示的な実施形態に関するプロセスを実装するコンピュータが使用可能なコードまたは命令が配置され得る、図３のデータベース・サーバ・ホスト３００などのコンピュータの一例である。
【００６８】
示された例において、データ処理システム６００は、ノース・ブリッジおよびメモリ・コントローラ・ハブ（ＮＢ／ＭＣＨ）６０２ならびにサウス・ブリッジおよび入力／出力（Ｉ／Ｏ）コントローラ・ハブ（ＳＢ／ＩＣＨ）６０４を含むハブ・アーキテクチャを使用する。処理ユニット６０６、メイン・メモリ６０８、およびグラフィックス・プロセッサ６１０が、ＮＢ／ＭＣＨ６０２に接続されている。グラフィックス・プロセッサ６１０は、アクセラレーテッド・グラフィックス・ポート（ＡＧＰ）を通じてＮＢ／ＭＣＨ６０２に接続され得る。
【００６９】
示された例においては、ローカル・エリア・ネットワーク（ＬＡＮ）アダプタ６１２が、ＳＢ／ＩＣＨ６０４に接続する。オーディオ・アダプタ６１６、キーボードおよびマウス・アダプタ６２０、モデム６２２、読み出し専用メモリ（ＲＯＭ）６２４、ハード・ディスク・ドライブ（ＨＤＤ）６２６、ＣＤ−ＲＯＭドライブ６３０、ユニバーサル・シリアル・バス（ＵＳＢ）ポートおよびその他の通信ポート６３２、ならびにＰＣＩ／ＰＣＩｅデバイス６３４が、バス６３８およびバス６４０を通じてＳＢ／ＩＣＨ６０４に接続する。ＰＣＩ／ＰＣＩｅデバイスは、例えば、イーサネット（Ｒ）・アダプタ、アドイン・カード、およびノートブック・コンピュータ用のＰＣカードを含み得る。ＰＣＩがカード・バス・コントローラを使用する一方、ＰＣＩｅは使用しない。ＲＯＭ６２４は、例えば、フラッシュ基本入出力システム（ＢＩＯＳ）である可能性がある。
【００７０】
ＨＤＤ６２６およびＣＤ−ＲＯＭドライブ６３０は、バス６４０を通じてＳＢ／ＩＣＨ６０４に接続する。ＨＤＤ６２６およびＣＤ−ＲＯＭドライブ６３０は、例えば、インテグレーテッド・デバイス・エレクトロニクス（ＩＤＥ：integrated drive electronics）またはシリアル・アドバンスド・テクノロジー・アタッチメント（ＳＡＴＡ：serial advanced technology attachment）インターフェースを使用する可能性がある。スーパーＩ／Ｏ（ＳＩＯ）デバイス６３６が、ＳＢ／ＩＣＨ６０４に接続される可能性がある。
【００７１】
オペレーティング・システムが、処理ユニット６０６で実行される。オペレーティング・システムは、図６のデータ処理システム６００内のさまざまな構成要素を調整し、制御する。サーバとして、データ処理システム６００は、例えば、Ａｄｖａｎｃｅｄ  Ｉｎｔｅｒａｃｔｉｖｅ  Ｅｘｅｃｕｔｉｖｅ（ＡＩＸ（Ｒ））オペレーティング・システムまたはＬＩＮＵＸ（Ｒ）オペレーティング・システムを実行するＩＢＭ（Ｒ）ｅＳｅｒｖｅｒ（商標）Ｓｙｓｔｅｍ  ｐ（Ｒ）コンピュータ・システムである可能性がある。データ処理システム６００は、処理ユニット６０６の複数のプロセッサを含む対称型マルチプロセッサ（ＳＭＰ）システムである可能性がある。あるいは、単一プロセッサ・システムが使用される可能性がある。Ｊａｖａ（Ｒ）プログラミング・システムなどのオブジェクト指向プログラミング・システムが、オペレーティング・システムと連携して実行される可能性があり、データ処理システム６００で実行されるＪａｖａ（Ｒ）プログラムまたはアプリケーションからオペレーティング・システムに対する呼び出しを行う。
【００７２】
オペレーティング・システム、オブジェクト指向プログラミング・システム、およびアプリケーションまたはプログラムに関する命令は、ＨＤＤ６２６などのストレージ・デバイスに置かれており、処理ユニット６０６によって実行するためにメイン・メモリ６０８にロードされ得る。本発明の例示的な実施形態のためのプロセスは、例えばメイン・メモリ６０８、ＲＯＭ６２４などのメモリ、または例えば１つもしくは複数の周辺デバイス６２６および６３０に置かれる可能性があるコンピュータが使用可能なプログラム・コードを用いて処理ユニット６０６によって実行され得る。
【００７３】
図６に示されるバス６３８またはバス６４０などのバス・システムは、１つまたは複数のバスで構成される可能性がある。言うまでもなく、バス・システムは、ファブリックまたはアーキテクチャに接続された異なる構成要素またはデバイス間のデータの転送を行う任意の種類の通信ファブリックまたはアーキテクチャを使用して実装される可能性がある。図６のモデム６２２またはネットワーク・アダプタ６１２などの通信ユニットは、データを送受信するために使用される１つまたは複数のデバイスを含み得る。メモリは、例えば、メイン・メモリ６０８、ＲＯＭ６２４、または図６のＮＢ／ＭＣＨ６０２に見られるようなキャッシュである可能性がある。
【００７４】
当業者は、図６のハードウェアが実装に応じて変わり得ることを理解するであろう。フラッシュ・メモリ、等価な不揮発性メモリ、または光ディスク・ドライブなどのその他の内部ハードウェアまたは周辺デバイスが、図６に示されたハードウェアに加えて、またはそれらのハードウェアの代わりに使用される可能性がある。また、例示的な実施形態のプロセスは、上述のＳＭＰシステム以外のマルチプロセッサ・データ処理システムに適用され得る。
【００７５】
本発明の説明が、例示および説明を目的として示されており、網羅的であるように、または開示された形態の本発明に限定されるように意図されていない。多くの変更および改変が、当業者に明らかであろう。実施形態は、本発明の原理、実際の応用を最も良く説明し、考えられる特定の用途に適するさまざまな変更を加えたさまざまな実施形態に関して他の当業者が本発明を理解することを可能にするために選択され、説明された。
【図１】
2016511480.tif 000003
【図２】
2016511480.tif 000004
【図３】
2016511480.tif 000005
【図４】
2016511480.tif 000006
【図５】
2016511480.tif 000007
【図６】
2016511480.tif 000008
【手続補正書】
【提出日】平成27年10月20日(2015.10.20)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プロセッサおよびメモリを含むデータ処理システムにおいて、データベース・クライアント要求を処理するための方法であって、
前記データ処理システムの安全でないアクセスのローカル・エージェントによって、クライアント・コンピューティング・デバイスと前記データ処理システムとの間のセッションの一部として前記クライアント・コンピューティング・デバイスから暗号化されたデータベース・クライアント要求（ＤＣＲ）を受信するステップと、
前記安全でないアクセスのローカル・エージェントによって、前記セッションに対応するデータベース・セッション情報（ＤＳＩ）アドレスを取得するステップと、
前記安全でないアクセスのローカル・エージェントによって、前記暗号化されたＤＣＲの一部に基づいて第１の一意識別可能鍵（ＵＩＫ）を生成するステップと、
前記安全でないアクセスのローカル・エージェントによって、前記第１のＵＩＫを前記ＤＳＩアドレスにマッピングするＤＳＩマッピング・データ構造を生成するステップと、
前記データ処理システムの安全なアクセスのローカル・エージェントによって、前記ＤＳＩマッピング・データ構造を用いて前記暗号化されたＤＣＲを処理するステップと
を含む、方法。
【請求項２】
前記ＤＳＩマッピング・データ構造を用いて前記暗号化されたＤＣＲを処理するステップが、
前記安全なアクセスのローカル・エージェントによって、前記暗号化されたＤＣＲを復号するための暗号プロセスを呼び出すステップと、
前記安全なアクセスのローカル・エージェントによって、前記暗号プロセスの呼び出しを傍受することに応じて、前記ＤＳＩマッピング・データ構造に基づいて前記セッションに関する前記ＤＳＩアドレスを取得するステップと
を含む、請求項１に記載の方法。
【請求項３】
前記ＤＳＩマッピング・データ構造に基づいて前記セッションに関する前記ＤＳＩアドレスを取得するステップが、
前記安全なアクセスのローカル・エージェントによって、前記暗号化されたＤＣＲに基づいて第２のＵＩＫを生成するステップと、
前記第２のＵＩＫに基づいて前記ＤＳＩマッピング・データ構造内の探索動作を実行して、前記第２のＵＩＫに一致する一致ＵＩＫを有する前記ＤＳＩマッピング・データ構造の一致エントリを特定するステップと、
前記ＤＳＩマッピング・データ構造の前記一致エントリからＤＳＩアドレスを取得するステップと
を含む、請求項２に記載の方法。
【請求項４】
前記ＤＳＩマッピング・データ構造を用いて前記暗号化されたＤＣＲを処理するステップが、前記ＤＳＩアドレスを用いて前記セッションに関するＤＳＩデータを取得するステップをさらに含む、請求項３に記載の方法。
【請求項５】
前記ＤＳＩマッピング・データ構造を用いて前記暗号化されたＤＣＲを処理するステップが、
復号されたＤＣＲ、および前記ＤＳＩアドレスに対応する前記ＤＳＩデータをセキュリティ・デバイスに転送するステップであって、前記セキュリティ・デバイスが、前記復号されたＤＣＲおよび前記ＤＳＩデータをセキュリティ・ポリシー違反に関して分析する、前記転送するステップをさらに含む、請求項４に記載の方法。
【請求項６】
前記セキュリティ・デバイスが、前記復号されたＤＣＲおよび前記ＤＳＩデータの分析の結果に基づいて１つまたは複数のセキュリティ操作を実行する、請求項５に記載の方法。
【請求項７】
前記１つまたは複数のセキュリティ操作が、前記データ処理システムから前記クライアント・コンピューティング・デバイスへの応答を認可すること、前記データ処理システムから前記クライアント・コンピューティング・デバイスへの応答を遮断すること、前記データ処理システムからの応答を修正すること、前記ＤＣＲの処理の通知をユーザに送信すること、または前記ＤＣＲの前記処理に対応するログのエントリを生成することのうちの少なくとも１つを含む、請求項６に記載の方法。
【請求項８】
前記暗号化されたＤＣＲの一部に基づいて前記第１のＵＩＫを生成するステップが、
前記暗号化されたＤＣＲの一部を前記セッションに対して一意の暗号化されたパターンとして抽出するステップと、
前記暗号化されたＤＣＲの抽出された一部を前記第１のＵＩＫとして記憶するステップと
を含む、請求項１ないし７のいずれか一項に記載の方法。
【請求項９】
請求項１〜８の何れか１項に記載の方法の各ステップをコンピュータに実行させる、コンピュータ・プログラム。
【請求項１０】
請求項９に記載の前記コンピュータ・プログラムをコンピュータ可読ストレージ媒体に記録した、コンピュータ可読ストレージ媒体。
【請求項１１】
データ処理システムであって、
請求項１〜８の何れか１項に記載の各ステップをハードウェアによって構成した手段を含む、データ処理システム。
【請求項１２】
データベース・システムであって、
データベース・サーバ・ホスト・システムと、
前記データベース・サーバ・ホスト・システムに結合されたデータベース・ストレージ・デバイスと、
前記データベース・サーバ・ホスト・システムに結合された外部セキュリティ・デバイスと
を含み、前記データベース・サーバ・ホスト・システムが、安全でないアクセスのローカル・エージェント、安全なアクセスのローカル・エージェント、および暗号エンジンを実装するように構成され、前記データベース・サーバ・ホスト・システムが、
前記安全でないアクセスのローカル・エージェントによって、クライアント・コンピューティング・デバイスとデータ処理システムとの間のセッションの一部として前記クライアント・コンピューティング・デバイスから暗号化されたデータベース・クライアント要求（ＤＣＲ）を受信し、
前記安全でないアクセスのローカル・エージェントによって、前記セッションに対応するデータベース・セッション情報（ＤＳＩ）アドレスを取得し、
前記安全でないアクセスのローカル・エージェントによって、前記暗号化されたＤＣＲの一部に基づいて第１の一意識別可能鍵（ＵＩＫ）を生成し、
前記安全でないアクセスのローカル・エージェントによって、前記第１のＵＩＫを前記ＤＳＩアドレスにマッピングするＤＳＩマッピング・データ構造を生成し、
前記データ処理システムの安全なアクセスのローカル・エージェントによって、前記ＤＳＩマッピング・データ構造内の探索動作を実行することと、前記暗号化されたＤＣＲに基づいて前記安全なアクセスのローカル・エージェントによって生成された第２のＵＩＫを用いて前記ＤＳＩアドレスを取得することと、前記ＤＳＩアドレスに対応する平文のＤＳＩデータ、および前記暗号化されたＤＣＲに基づいて前記暗号エンジンによって生成された復号されたＤＣＲをセキュリティ・ポリシー違反を検出する処理のために前記外部セキュリティ・デバイスに与えることとによって前記ＤＳＩマッピング・データ構造を用いて前記暗号化されたＤＣＲを処理する
ようにさらに構成される、データベース・システム。
【国際調査報告】
2016511480.tif 000009
2016511480.tif 000010