(57)【要約】【課題】任意のアプリケーションにおいて共有オブジェクトを所定の機密レベルを維持しつつ安全に使用することができるコンピュータプログラム、共有オブジェクト制御装置及び制御方法を提供する。【解決手段】一時記憶領域に、機密レベル情報に応じて複数の分割領域を割り当てる。分割領域のポインタ情報及び暗号鍵情報を、ユーザ識別情報及び機密レベル情報に対応付けて記憶する記憶領域管理テーブルを記憶しておく。一時保管領域を介する読み出し処理又は書き込み処理の指示を受け付けた場合、読み出し処理又は書き込み処理を指示したユーザのユーザ識別情報をキー情報としてポインタ情報を抽出し、読み出し処理又は書き込み処理の対象を示すアドレス情報を、抽出されたポインタ情報へ変換する。抽出されたポインタ情報に基づいて、機密レベル情報を特定し、機密レベル情報に対応した暗号鍵情報を用いて書き込む情報を暗号化し、又は読み出す情報を復号する。【選択図】図８
2010009490.tif 000002
【特許請求の範囲】
【請求項１】
複数のプロセス間で共有される共有オブジェクトを介する情報の読み書き処理を制御するコンピュータで実行することが可能なコンピュータプログラムにおいて、
前記コンピュータを、
前記共有オブジェクトを記憶する共有記憶領域に複数の分割領域を割り当てる割当手段、
ユーザを識別するユーザ識別情報に応じて読み書き処理に用いる分割領域を特定する領域特定手段、及び
特定された分割領域から情報を読み出す読み出し処理及び該分割領域へ情報を書き込む書き込み処理を実行する読み書き実行手段
として機能させることを特徴とするコンピュータプログラム。
【請求項２】
前記コンピュータは、
前記分割領域のポインタ情報をユーザ識別情報に対応付けて記憶する記憶領域管理テーブルを有し、
前記コンピュータを、
共有オブジェクトを介する読み出し処理又は書き込み処理の指示を受け付けた場合、読み出し処理又は書き込み処理を指示したユーザのユーザ識別情報をキー情報として前記記憶領域管理テーブルを照会し、ポインタ情報を抽出する抽出手段、及び
読み出し処理又は書き込み処理の対象を示すアドレス情報を、抽出された前記ポインタ情報へ変換する変換手段
として機能させることを特徴とする請求項１記載のコンピュータプログラム。
【請求項３】
前記割当手段を、
機密レベル情報に応じた複数の分割領域を割り当てる手段として機能させ、
前記コンピュータを、
前記機密レベル情報に応じた固有の暗号鍵情報を記憶する鍵情報記憶手段、
抽出された前記ポインタ情報に基づいて、機密レベル情報を特定する機密レベル特定手段、及び
特定された機密レベル情報に対応した暗号鍵情報を用いて書き込む情報を暗号化し、又は読み出す情報を復号する暗号化／復号手段
として機能させることを特徴とする請求項２記載のコンピュータプログラム。
【請求項４】
複数のユーザ識別情報を一組として共通の機密レベル情報を設定するようにしてあることを特徴とする請求項３記載のコンピュータプログラム。
【請求項５】
前記共有オブジェクトは、複数のアプリケーションで共有される情報の一時保管領域であることを特徴とする請求項１乃至４のいずれか一項に記載のコンピュータプログラム。
【請求項６】
複数のプロセスで共有される情報の一時保管領域を介して情報の読み書き処理を制御するコンピュータで実行することが可能なコンピュータプログラムにおいて、
前記コンピュータを、
前記一時記憶領域に、機密レベル情報に応じて複数の分割領域を割り当てる割当手段、
前記分割領域のポインタ情報及び暗号鍵情報を、ユーザ識別情報及び機密レベル情報に対応付けて記憶する記憶領域管理テーブルを記憶する記憶手段、
前記一時保管領域を介する読み出し処理又は書き込み処理の指示を受け付けた場合、読み出し処理又は書き込み処理を指示したユーザのユーザ識別情報をキー情報として前記記憶領域テーブルを照会し、ポインタ情報を抽出する抽出手段、
読み出し処理又は書き込み処理の対象を示すアドレス情報を、抽出された前記ポインタ情報へ変換する変換手段、
抽出された前記ポインタ情報に基づいて、機密レベル情報を特定する機密レベル特定手段、
特定された機密レベル情報に対応した暗号鍵情報を用いて書き込む情報を暗号化し、又は読み出す情報を復号する暗号化／復号手段、及び
変換されたアドレス情報を用いて前記分割領域から情報を読み出す読み出し処理及び該分割領域へ情報を書き込む書き込み処理を実行する読み書き実行手段
として機能させることを特徴とするコンピュータプログラム。
【請求項７】
複数のプロセス間で共有される共有オブジェクトを介する情報の読み書き処理を制御する共有オブジェクト制御装置において、
前記共有オブジェクトを記憶する共有記憶領域に複数の分割領域を割り当てる割当部と、
ユーザを識別するユーザ識別情報に応じて読み書き処理に用いる分割領域を特定する領域特定部と、
特定された分割領域から情報を読み出す読み出し処理及び該分割領域へ情報を書き込む書き込み処理を実行する読み書き実行部と
を備えることを特徴とする共有オブジェクト制御装置。
【請求項８】
複数のプロセス間で共有される共有オブジェクトを介する情報の読み書き処理を制御する共有オブジェクト制御方法において、
前記共有オブジェクトを記憶する共有記憶領域に複数の分割領域を割り当て、
ユーザを識別するユーザ識別情報に応じて読み書き処理に用いる分割領域を特定し、
特定された分割領域から情報を読み出す読み出し処理及び該分割領域へ情報を書き込む書き込み処理を実行することを特徴とする共有オブジェクト制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、共有オブジェクトを介して情報を読み書きするコンピュータプログラム、共有オブジェクト制御装置及び共有オブジェクト制御方法に関する。
【背景技術】
【０００２】
近年、複数のプログラム間でデータ交換をする機会が急増しており、機密情報の漏洩等のセキュリティ上の問題が多々発生している。特に同一コンピュータ内の複数のプログラム間での情報漏洩リスクが注目されている。
【０００３】
すなわち、コンピュータ間のデータ交換は、セキュリティ機能を駆使することにより、情報漏洩の危険を回避することもできる。しかし、同一コンピュータ内の複数のプログラムからアクセスすることが可能な共有オブジェクトについては、セキュリィティの向上を図ることが困難であり、同一のコンピュータ上の他のプログラムから容易に読み書きすることができるという問題があった。
【０００４】
セキュリティを向上するための工夫は多々行われている。例えば特許文献１では、セキュリティ管理を主目的としたセキュリティ管理コンピュータを別個に設けておき、セキュリティ管理コンピュータにより機密情報保護レベルに応じたセキュリティ管理レベルを求めるセキュリティ管理システムが開示されている。これにより、セキュリティレベルの変動に対して柔軟に対応することができる。
【０００５】
しかし特許文献１では、同一のコンピュータで実行された複数のプログラムからのアクセスを制限することはできない。そこで、非特許文献１では、特定のプロセス（プログラム）が共有オブジェクトにアクセス中は、該プロセス以外の他のプロセスからのアクセスを排他し、一律に共有オブジェクトに対するアクセスを制限する方法が開示されている。
【特許文献１】特開２００８−０２７３２２号公報
【非特許文献１】勝野恭治、渡邊裕治、古市実裕、工藤道治、「アプリケーションレベル分散セキュアグループのためのＣｈｉｎｅｓｅ−ｗａｌｌ型プロセス隔離手法」、２００７年、ＤＩＣＯＭＯ予稿集
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、非特許文献１に開示されている方法では、一のプロセスが共有オブジェクトを占有するため、一のプロセスが共有オブジェクトにアクセスしている間は、他のプロセスは共有オブジェクトを全く使用することができないという問題点があった。すなわち、本来は共有オブジェクトを複数のプロセスにて共有することを目的としているのに対し、同時には一のプロセスしかアクセスすることができないのでは、共有オブジェクトとする意味がない。機密レベルごとに画面を隔離し、他のプロセスとのデータ交換を遮断するのと類似しており、プログラムの操作性低下を招くおそれもあった。
【０００７】
また、機密レベルを保持するために、機密レベルに応じて独自のデータ形式を採用する、独自の通信チャネルを用いてデータ交換する等も考えられる。しかし、処理に汎用性がなく、固有のアプリケーションを作成する必要がある。したがって、任意のアプリケーションでは共有オブジェクトを安全に使用することができないという問題点があった。
【０００８】
本発明は斯かる事情に鑑みてなされたものであり、任意のアプリケーションにおいて共有オブジェクトを所定の機密レベルを維持しつつ安全に使用することができるコンピュータプログラム、共有オブジェクト制御装置及び共有オブジェクト制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するために第１発明に係るコンピュータプログラムは、共有オブジェクトを記憶する共有記憶領域に複数の分割領域を割り当て、ユーザを識別するユーザ識別情報に応じて読み書き処理に用いる分割領域を特定する。特定された分割領域から情報を読み出す読み出し処理及び該分割領域へ情報を書き込む書き込み処理を実行する。
【００１０】
また、第２発明に係るコンピュータプログラムは、第１発明において、分割領域のポインタ情報をユーザ識別情報に対応付けて記憶する記憶領域管理テーブルを有し、共有オブジェクトを介する読み出し処理又は書き込み処理の指示を受け付けた場合、読み出し処理又は書き込み処理を指示したユーザのユーザ識別情報をキー情報として記憶領域管理テーブルを照会し、ポインタ情報を抽出する。読み出し処理又は書き込み処理の対象を示すアドレス情報を、抽出されたポインタ情報へ変換する。
【００１１】
また、第３発明に係るコンピュータプログラムは、第２発明において、機密レベル情報に応じた複数の分割領域を割り当て、機密レベル情報に応じた固有の暗号鍵情報を記憶する。抽出されたポインタ情報に基づいて、機密レベル情報を特定し、特定された機密レベル情報に対応した暗号鍵情報を用いて書き込む情報を暗号化し、又は読み出す情報を復号する。
【００１２】
また、第４発明に係るコンピュータプログラムは、第３発明において、複数のユーザ識別情報を一組として共通の機密レベル情報を設定する。
【００１３】
また、第５発明に係るコンピュータプログラムは、第１乃至第４発明のいずれか１つにおいて、共有オブジェクトを、複数のアプリケーションで共有される情報の一時保管領域とする。
【００１４】
また、第６発明に係るコンピュータプログラムは、一時記憶領域に、機密レベル情報に応じて複数の分割領域を割り当て、分割領域のポインタ情報及び暗号鍵情報を、ユーザ識別情報及び機密レベル情報に対応付けて記憶する。一時保管領域に対する読み出し処理又は書き込み処理の指示を受け付けた場合、読み出し処理又は書き込み処理を指示したユーザのユーザ識別情報をキー情報として記憶領域テーブルを照会し、ポインタ情報を抽出する。読み出し処理又は書き込み処理の対象を示すアドレス情報を、抽出されたポインタ情報へ変換する。抽出されたポインタ情報に基づいて、機密レベル情報を特定し、特定された機密レベル情報に対応した暗号鍵情報を用いて書き込む情報を暗号化し、又は読み出す情報を復号する。変換されたアドレス情報を用いて分割領域から情報を読み出す読み出し処理及び該分割領域へ情報を書き込む書き込み処理を実行する。
【００１５】
次に、上記目的を達成するために第７発明に係る共有オブジェクト制御装置は、共有オブジェクトを記憶する共有記憶領域に複数の分割領域を割り当て、ユーザを識別するユーザ識別情報に応じて読み書き処理に用いる分割領域を特定する。特定された分割領域から情報を読み出す読み出し処理及び該分割領域へ情報を書き込む書き込み処理を実行する。
【００１６】
次に、上記目的を達成するために第８発明に係る共有オブジェクト制御方法は、共有オブジェクトを記憶する共有記憶領域に複数の分割領域を割り当て、ユーザを識別するユーザ識別情報に応じて読み書き処理に用いる分割領域を特定する。特定された分割領域から情報を読み出す読み出し処理及び該分割領域へ情報を書き込む書き込み処理を実行する。
【発明の効果】
【００１７】
本発明によれば、ユーザ識別情報に応じて読み書き処理の対象となる分割領域を区別することにより、所定のユーザについてのみ読み書き可能となる分割領域に共有オブジェクトを割り当て、該共有オブジェクトを介する情報の読み書き処理を実行することで、例えば標準的なアドレスとは異なるアドレスにて同様の機能を有する共有オブジェクトを提供することができ、同時に複数のアプリケーションがアクセスしつつ情報の漏洩を効果的に防止することができる。
【発明を実施するための最良の形態】
【００１８】
以下、本発明の実施の形態に係る共有オブジェクト制御装置について、図面に基づいて具体的に説明する。以下の実施の形態は、特許請求の範囲に記載された発明を限定するものではなく、実施の形態の中で説明されている特徴的事項の組み合わせの全てが解決手段の必須事項であるとは限らないことは言うまでもない。
【００１９】
また、本発明は多くの異なる態様にて実施することが可能であり、実施の形態の記載内容に限定して解釈されるべきものではない。実施の形態を通じて同じ要素には同一の符号を付している。
【００２０】
以下の実施の形態では、コンピュータシステムにコンピュータプログラムを導入した共有オブジェクト制御装置について説明するが、当業者であれば明らかな通り、本発明はその一部をコンピュータで実行することが可能なコンピュータプログラムとして実施することができる。したがって、本発明は、共有オブジェクト制御装置というハードウェアとしての実施の形態、ソフトウェアとしての実施の形態、又はソフトウェアとハードウェアとの組み合わせの実施の形態をとることができる。コンピュータプログラムは、ハードディスク、ＤＶＤ、ＣＤ、光記憶装置、磁気記憶装置等の任意のコンピュータで読み取ることが可能な記録媒体に記録することができる。
【００２１】
第１発明、第７発明及び第８発明では、共有オブジェクトを記憶する共有記憶領域に複数の分割領域を割り当てる。ユーザを識別するユーザ識別情報に応じて読み書き処理に用いる分割領域を特定し、特定された分割領域から情報を読み出す読み出し処理及び該分割領域へ情報を書き込む書き込み処理を実行する。ユーザ識別情報に応じて読み書き処理に用いる分割領域を区別することにより、所定のユーザについてのみ読み書き処理が実行可能となる分割領域に共有オブジェクトを割り当て、該共有オブジェクトを介する情報の読み出し処理又は書き込み処理を実行することで、例えば標準的なアドレスとは異なるアドレスにて同様の機能を有する共有オブジェクトを提供することができ、同時に複数のアプリケーションがアクセスしつつ情報の漏洩を効果的に防止することができる。
【００２２】
第２発明では、分割領域のポインタ情報をユーザ識別情報に対応付けて記憶しておく記憶領域管理テーブルを準備しておく。共有オブジェクトを介する読み出し処理又は書き込み処理の指示を受け付けた場合、読み出し処理又は書き込み処理を指示したユーザのユーザ識別情報をキー情報として記憶領域テーブルを照会し、ポインタ情報を抽出する。読み出し処理又は書き込み処理の対象を示すアドレス情報を、抽出されたポインタ情報へ変換する。これにより、読み出し処理又は書き込み処理を指示したユーザのユーザ識別情報に基づいてポインタ情報を抽出し、通常共有記憶領域としてアクセスするアドレスとは異なるアドレスへポインタ情報を用いて変換することで、不特定多数のアプリケーションからの共有オブジェクトに対するアクセスを制限することができる。なお、「ポインタ情報」とは、アクセスするユーザ定義領域の始点アドレス等の、分割領域へアクセスするために必要なアドレス情報を意味する。
【００２３】
第３発明では、機密レベル情報に応じた複数の分割領域を割り当て、分割領域に記憶される情報を、該分割領域に固有の暗号鍵情報で暗号化することにより、ユーザ識別情報ごとに機密レベル情報に応じた分割領域に対してアクセスすることができるとともに、機密レベル情報に対応した暗号鍵情報で暗号化されることにより、不特定の第三者への情報流出の可能性をより低減することが可能となる。
【００２４】
第４発明では、複数のユーザ識別情報を一組として共通の機密レベル情報を設定することにより、ユーザ単位ではなく、特定のグループについて特定された共有オブジェクトを介して情報の読み書き処理を実行することができる。
【００２５】
第５発明では、共有オブジェクトが、複数のアプリケーションで共有される情報の一時保管領域、例えばマイクロソフト社製のＯＳ（オペレーティングシステム）のウインドウズ（登録商標）での「クリップボード」、「ウインドウメッセージ」等の機能に相当するオブジェクトであることにより、ＯＳの管理下では一定のアドレスに対してアクセスするのに対し、ユーザ識別情報、機密レベル情報ごとに分割された所定の分割領域へ情報を書き込み、また読み出すことができる。
【００２６】
第６発明では、複数のアプリケーションで共有される情報の一時記憶領域、例えばマイクロソフト社製のＯＳ（オペレーティングシステム）のウインドウズ（登録商標）での「クリップボード」、「ウインドウメッセージ」等について、機密レベル情報に応じて複数の分割領域を割り当て、分割領域のポインタ情報及び暗号鍵情報を、ユーザ識別情報及び機密レベル情報に対応付けて記憶しておく。一時保管領域に対する読み出し処理又は書き込み処理の指示を受け付けた場合、読み出し処理又は書き込み処理を指示したユーザのユーザ識別情報をキー情報として記憶領域テーブルを照会し、ポインタ情報を抽出し、読み出し処理又は書き込み処理の対象を示すアドレス情報を、抽出されたポインタ情報へ変換し、変換されたアドレス情報を用いて分割領域から情報を読み出す読み出し処理及び分割領域へ情報を書き込む書き込み処理を実行する。これにより、アプリケーションがＯＳを介して標準的にアクセスする一次記憶領域のアドレスとは異なるアドレスにて一時記憶領域と同様の機能を提供することができ、同時に複数のアプリケーションがアクセスしつつ情報の漏洩を効果的に防止することができる。また、抽出されたポインタ情報に基づいて、機密レベル情報を特定し、特定された機密レベル情報に対応した暗号鍵情報を用いて書き込む情報を暗号化し、又は読み出す情報を復号することにより、万一情報が漏洩した場合であっても、暗号鍵情報を有さない限り内容の判読をすることができず、より安全に一時記憶領域を活用することが可能となる。
【００２７】
（実施の形態１）
図１は、本発明の実施の形態１に係る共有オブジェクト制御装置の構成例を示すブロック図である。本発明の実施の形態１に係る共有オブジェクト制御装置１は、少なくともＣＰＵ（中央演算装置）１１、メモリ１２、記憶装置１３、Ｉ／Ｏインタフェース１４、通信インタフェース１５、ビデオインタフェース１６、可搬型ディスクドライブ１７及び上述したハードウェアを接続する内部バス１８で構成されている。
【００２８】
ＣＰＵ１１は、内部バス１８を介して共有オブジェクト制御装置１の上述したようなハードウェア各部と接続されており、上述したハードウェア各部の動作を制御するとともに、記憶装置１３に記憶されているコンピュータプログラム１００に従って、種々のソフトウェア的機能を実行する。メモリ１２は、ＳＲＡＭ、ＳＤＲＡＭ等の揮発性メモリで構成され、コンピュータプログラム１００の実行時にロードモジュールが展開され、コンピュータプログラム１００の実行時に発生する一時的なデータ等を記憶する。また、一定の領域は、複数のアプリケーション間で情報を共有する共有メモリとしても機能する。以下、共有メモリとして機能する場合も同一の符号を付している。
【００２９】
記憶装置１３は、内蔵される固定型記憶装置（ハードディスク）、ＲＯＭ等で構成されている。記憶装置１３に記憶されているコンピュータプログラム１００は、プログラム及びデータ等の情報を記録したＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体９０から、可搬型ディスクドライブ１７によりダウンロードされ、実行時には記憶装置１３からメモリ１２へ展開して実行される。もちろん、通信インタフェース１５を介してネットワーク２に接続されている外部のコンピュータからダウンロードされたコンピュータプログラムであっても良い。
【００３０】
また記憶装置１３は、共有オブジェクト、例えば複数のアプリケーションで共有されるデータの一時保管領域であるマイクロソフト社製のＯＳ（オペレーティングシステム）のウインドウズ（登録商標）における「クリップボード」、「ウインドウメッセージ」等に割り当てた分割領域のポインタ情報をユーザ識別情報に対応付けて記憶する記憶領域管理テーブル１３１を備える。ここで、「分割領域」とは、一時記憶領域に割り当てられた複数の小領域を意味しており、アプリケーションがＯＳを介して標準的にアクセスする一次記憶領域とは別に、ユーザ定義に応じて自由に設定することができる領域を意味している。
【００３１】
図２は、本発明の実施の形態１に係る共有オブジェクト制御装置１の記憶領域管理テーブル１３１のデータ構成の例示図である。図２に示すように、記憶領域管理テーブル１３１には、ユーザを識別するユーザ識別情報であるユーザＩＤに対応付けて、アクセスするべき分割領域の始点アドレスを示す情報であるポインタ情報を記憶してある。また、複数のユーザを含むグループを識別する識別情報であるグループＩＤに対応付けてポインタ情報を記憶しても良い。
【００３２】
通信インタフェース１５は内部バス１８に接続されており、インターネット、ＬＡＮ、ＷＡＮ等の外部のネットワーク２に接続されることにより、外部のコンピュータ等とデータ送受信を行うことが可能となっている。
【００３３】
Ｉ／Ｏインタフェース１４は、キーボード２１、マウス２２等のデータ入力媒体と接続され、データの入力を受け付ける。また、ビデオインタフェース１６は、ＣＲＴモニタ、ＬＣＤ等の表示装置２３と接続され、所定の画像を表示する。
【００３４】
図３は、本発明の実施の形態１に係る共有オブジェクト制御装置１の機能ブロック図である。分割領域割当部３０１は、共有オブジェクトを記憶する共有記憶領域に複数の分割領域を割り当てる。通常は、共有メモリとしてメモリ１２内に確保してある領域を複数の領域に分割し、アプリケーション２は通常、ＯＳ３を介して一の分割領域に対してアクセスし、ユーザ定義がされた時点で他の分割領域に対してアクセスすることが可能となる。
【００３５】
書き込み処理検出部３０２は、アプリケーション２による共有オブジェクトを介する情報の書き込み処理を検出し、読み出し処理検出部３０３は、共有オブジェクトを介するアプリケーション２への情報の読み出し処理を検出する。分割領域特定部３０４は、ユーザを識別するユーザ識別情報に応じて、読み書き処理に用いる分割領域が、割り当てられた複数の分割領域のうちどの分割領域であるか特定する。分割領域の特定には、記憶領域管理テーブル１３１を照会する。
【００３６】
ポインタ情報抽出部３０５は、共有オブジェクトを介する読み出し処理又は書き込み処理を、書き込み処理検出部３０２又は読み出し処理検出部３０３が検出した場合、読み出し処理又は書き込み処理を指示したユーザのユーザ識別情報をキー情報として記憶領域管理テーブル１３１を照会し、ポインタ情報を抽出する。
【００３７】
アドレス情報変換部３０６は、読み出し処理又は書き込み処理の対象を示すアドレス情報を、抽出されたポインタ情報へ変換する。これにより、アプリケーション２は、ＯＳ３を介して標準的に指定された特定のアドレスに対してアクセスしているのを、ユーザが定義した固有の分割領域に対してアクセスするように変換することができる。
【００３８】
読み書き実行部３０７は、変換されたアドレス情報を用いて分割領域から情報を読み出す読み出し処理及び該分割領域へ情報を書き込む書き込み処理を実行する。すなわち書き込み処理部３０８は、変換されたアドレス情報を用いて分割領域へ情報を書き込み、読み出し処理部３０９は、変換されたアドレス情報を用いて分割領域から情報を読み出す。
【００３９】
上述した構成の共有オブジェクト制御装置１の処理の流れについて説明する。図４は、本発明の実施の形態１に係る共有オブジェクト制御装置１のＣＰＵ１１の処理手順を示すフローチャートである。
【００４０】
共有オブジェクト制御装置１のＣＰＵ１１は、共有オブジェクトを記憶する共有記憶領域に複数の分割領域を割り当てる（ステップＳ４０１）。例えばＯＳ３にマイクロソフト社製のウインドウズ（登録商標）を用いる場合、共有オブジェクトはクリップボード、ウインドウメッセージ等の一時記憶領域となる。
【００４１】
図５は、クリップボードを用いる場合の一時記憶領域の概念図である。通常、アプリケーション２がＯＳ３を介してアクセスするアドレスは、メモリ１２の共有記憶領域である標準フォーマット領域５１の始点アドレスであり、標準フォーマット領域５１は、テキストデータを記憶するテキスト領域、ビットマップデータを記憶するビットマップ領域、メタファイルを記憶するメタファイル領域等に分かれている。
【００４２】
それに対して、本実施の形態１では、ユーザ定義領域５２を別個に割り当てておき、アプリケーションＡに対してはユーザ定義領域５２のグループＡに相当する領域を、アプリケーションＢに対してはユーザ定義領域５２のグループＢに相当する領域を、というように、アプリケーションごと、ユーザごと、あるいはユーザグループごとにユーザ定義領域５２を割り当てる。
【００４３】
図４に戻って、共有オブジェクト制御装置１のＣＰＵ１１は、共有オブジェクトを介するアプリケーション２への情報の読み出し処理又はアプリケーション２による共有オブジェクトを介する情報の書き込み処理を検出する（ステップＳ４０２）。ＣＰＵ１１は、読み出し処理又は書き込み処理を指示したユーザを識別するユーザ識別情報を取得し（ステップＳ４０３）、読み書き処理の対象となる分割領域が、割り当てられた複数の分割領域のうちどの分割領域であるか特定する。
【００４４】
具体的には、ＣＰＵ１１は、取得したユーザ識別情報であるユーザＩＤをキー情報として、記憶領域管理テーブル１３１を照会して、対応する分割領域のポインタ情報を抽出する（ステップＳ４０４）。ここで、「ポインタ情報」とは、アクセスするユーザ定義領域５２である分割領域の始点アドレス等の、分割領域へアクセスするために必要なアドレス情報を意味する。アクセスを可能とする情報で有れば特に限定されるものではない。
【００４５】
キー情報とするのはユーザＩＤに限定されるものではなく、複数のユーザを一組としたグループを識別するグループＩＤであっても良いし、アプリケーションを識別するアプリケーションＩＤであっても良い。
【００４６】
ＣＰＵ１１は、読み出し処理又は書き込み処理の対象を示すアドレス情報を、抽出されたポインタ情報へ変換する（ステップＳ４０５）。これにより、クリップボードを用いる場合、アプリケーション２は通常、ＯＳ３を介して指定された特定のアドレスで示される標準フォーマット領域５１へアクセスして読み出し処理又は書き込み処理を実行するのに対し、ユーザが定義した固有の分割領域であるユーザ定義領域５２へアドレスを変換して、読み出し処理又は書き込み処理を実行する。したがって、ユーザに固有の一時記憶領域を用いて情報の読み出し処理又は書き込み処理を実行することができ、不特定の第三者にとっては該一時記憶領域内の情報を取得することができない。
【００４７】
ＣＰＵ１１は、変換されたアドレス情報を用いて分割領域から情報を読み出す読み出し処理及び該分割領域へ情報を書き込む書き込み処理を実行する（ステップＳ４０６）。すなわち、変換されたアドレス情報が示す分割領域、すなわちユーザ定義領域５２へ情報を書き込み、変換されたアドレス情報が示す分割領域、すなわちユーザ定義領域５２から情報を読み出す。
【００４８】
以上のように本実施の形態１によれば、ユーザ識別情報に応じて読み書き処理の対象となる分割領域を区別することにより、所定のユーザについてのみ読み書き可能となる分割領域に共有オブジェクトを割り当て、該共有オブジェクトを介する情報の読み出し処理又は書き込み処理を実行することで、例えば標準的なアドレスとは異なるアドレスにて同様の機能を有する共有オブジェクトを提供することができ、同時に複数のアプリケーションがアクセスしつつ情報の漏洩を効果的に防止することができる。
【００４９】
（実施の形態２）
本発明の実施の形態２に係る共有オブジェクト制御装置１の構成は、実施の形態１と同様であることから、同一の符号を付することにより詳細な説明は省略する。本実施の形態２では、機密レベルに応じて分割領域を割り当てている点で実施の形態１と相違する。
【００５０】
機密レベルに関する機密レベル情報とは、セキュリティに関する機密情報の機密性の要求度合を示す情報一般を意味している。機密レベルに応じて割り当てる分割領域を特定するためには、記憶領域管理テーブル１３１に機密レベルに関する機密レベル情報を対応付けておく必要がある。
【００５１】
図６は、本発明の実施の形態２に係る共有オブジェクト制御装置１の記憶領域管理テーブル１３１のデータ構成の例示図である。図６に示すように、記憶領域管理テーブル１３１には、ユーザを識別するユーザ識別情報であるユーザＩＤに対応付けて、アクセスするべき分割領域の始点アドレスを示す情報であるポインタ情報を記憶してある。また、複数のユーザを含むグループを識別する識別情報であるグループＩＤに対応付けてポインタ情報を記憶しても良い。
【００５２】
さらに、ユーザＩＤ又はグループＩＤに対応付けて、機密レベルの要求度合等を示す機密レベル情報、該機密レベル情報に対応した暗号鍵情報も対応付けて記憶しておく。このようにすることで、共有オブジェクトを介する読み出し処理又は書き込み処理を指示したユーザに応じた暗号鍵情報を取出すことができ、共有オブジェクトの使い勝手を損なうことなく、より安全なデータ交換を実行することができる。
【００５３】
図７は、本発明の実施の形態２に係る共有オブジェクト制御装置１の機能ブロック図である。分割領域割当部３０１は、共有オブジェクトを記憶する共有記憶領域に複数の分割領域を割り当てる。通常は、共有メモリとしてメモリ１２内に確保してある領域を複数の領域に分割し、アプリケーション２がＯＳ３を介して一の分割領域に対して標準的にアクセスしているのに対し、ユーザ定義がされた時点で他の分割領域へアクセスすることができるようになる。
【００５４】
書き込み処理検出部３０２は、アプリケーション２による共有オブジェクトを介する情報の書き込み処理を検出し、読み出し処理検出部３０３は、共有オブジェクトを介するアプリケーション２への情報の読み出し処理を検出する。分割領域特定部３０４は、ユーザを識別するユーザ識別情報に応じて、読み書き処理に用いる分割領域が、割り当てられた複数の分割領域のうちどの分割領域であるか特定する。分割領域の特定には、記憶領域管理テーブル１３１を照会する。
【００５５】
機密レベル特定部７０１は、共有オブジェクトを介する読み出し処理又は書き込み処理を、書き込み処理検出部３０２又は読み出し処理検出部３０３が検出した場合、読み出し処理又は書き込み処理を指示したユーザのユーザ識別情報をキー情報として記憶領域管理テーブル１３１を照会し、機密レベル情報、暗号鍵情報を抽出する。
【００５６】
ポインタ情報抽出部３０５は、共有オブジェクトを介する読み出し処理又は書き込み処理を、書き込み処理検出部３０２又は読み出し処理検出部３０３が検出した場合、読み出し処理又は書き込み処理を指示したユーザのユーザ識別情報をキー情報として記憶領域管理テーブル１３１を照会し、ポインタ情報を抽出する。
【００５７】
アドレス情報変換部３０６は、読み出し処理又は書き込み処理の対象を示すアドレス情報を、抽出されたポインタ情報へ変換する。これにより、アプリケーション２は、通常ＯＳ３を介して指定された特定のアドレスに対してアクセスしているのに対し、機密レベルに応じてユーザが定義した固有の分割領域に対してアクセスすることができる。
【００５８】
暗号化処理部７０２は、機密レベル特定部７０１にて抽出した暗号鍵情報を用いて、共有オブジェクトを介して書き込む情報を暗号化する。復号処理部７０３は、機密レベル特定部７０１にて抽出した暗号鍵情報を用いて、共有オブジェクトを介して読み出した情報を復号する。
【００５９】
読み書き実行部３０７は、変換されたアドレス情報を用いて分割領域から情報を読み出す読み出し処理及び該分割領域へ情報を書き込む書き込み処理を実行する。すなわち書き込み処理部３０８は、変換されたアドレス情報を用いて、暗号化された情報を分割領域へ書き込み、読み出し処理部３０９は、変換されたアドレス情報を用いて、分割領域から暗号化された情報を読み出す。
【００６０】
上述した構成の共有オブジェクト制御装置１の処理の流れについて説明する。図８は、本発明の実施の形態２に係る共有オブジェクト制御装置１のＣＰＵ１１の処理手順を示すフローチャートである。
【００６１】
共有オブジェクト制御装置１のＣＰＵ１１は、共有オブジェクトを記憶する共有記憶領域に複数の分割領域を割り当てる（ステップＳ８０１）。例えばＯＳ３にマイクロソフト社製のウインドウズ（登録商標）を用いる場合、共有オブジェクトはクリップボード、ウインドウメッセージ等の一時記憶領域となる。
【００６２】
図９は、クリップボードを用いる場合の従来のメッセージ交換の例示図である。通常、アプリケーション２がＯＳ３を介してアクセスするアドレスは、メモリ１２の共有記憶領域である標準フォーマット領域９１の始点アドレスであり、標準フォーマット領域９１は、テキストデータを記憶するテキスト領域９１１、ビットマップデータを記憶するビットマップ領域９１２、メタファイルを記憶するメタファイル領域９１３等の複数の領域に分かれている。そして、ユーザ定義領域９２には直接アクセスすることはできず、例えばアプリケーションＡのように「Ｈｅｌｌｏ」というテキストデータをクリップボードに書き込む場合には、ＣＦ＿ＴＥＸＴとテキスト領域９１１の始点アドレスを明示する。また、アプリケーションＢのようにクリップボードのテキスト領域９１１からテキストデータを読み出す場合にも、ＣＦ＿ＴＥＸＴとテキスト領域９１１の始点アドレスを明示する。
【００６３】
それに対して、本実施の形態２では、ユーザ定義領域９２、９２、・・・を別個に割り当てておき、機密レベルＬごとに領域を割り当てる。すなわち、機密レベルＬ１の情報については、機密レベルＬ１に対するユーザ定義領域９２を、機密レベルＬ２の情報については、機密レベルＬ２に対するユーザ定義領域９２を、というように、複数のユーザ定義領域９２、９２、・・・を割り当てる。
【００６４】
図８に戻って、共有オブジェクト制御装置１のＣＰＵ１１は、共有オブジェクトを介するアプリケーション２への情報の読み出し処理又はアプリケーション２による共有オブジェクトを介する情報の書き込み処理を検出する（ステップＳ８０２）。ＣＰＵ１１は、読み出し処理又は書き込み処理を指示したユーザを識別するユーザ識別情報を取得し（ステップＳ８０３）、読み書き処理の対象となる分割領域が、割り当てられた複数の分割領域のうちどの分割領域であるか特定する。
【００６５】
具体的には、ＣＰＵ１１は、取得したユーザ識別情報であるユーザＩＤをキー情報として、記憶領域管理テーブル１３１を照会して、ユーザの機密レベル情報、暗号鍵情報とともに、対応する分割領域のポインタ情報を抽出する（ステップＳ８０４）。記憶領域管理テーブル１３１は、図６に例示したデータ構成に限定されるものではなく、ユーザＩＤと機密レベル情報とを対応付けたテーブルと、機密レベル情報とポインタ情報とを対応付けたテーブルとを別個に有する構造であっても良い。この場合には取得したユーザＩＤに基づいて機密レベル情報を特定し、特定された機密レベル情報に従って、アクセスするべき一時記憶領域のポインタ情報を取得すれば良い。
【００６６】
ＣＰＵ１１は、読み出し処理又は書き込み処理の対象を示すアドレス情報を、抽出されたポインタ情報へ変換する（ステップＳ８０５）。これにより、クリップボードを用いる場合、通常、アプリケーション２はＯＳ３を介して指定された特定のアドレスで示される標準フォーマット領域９１へアクセスして読み出し処理又は書き込み処理を実行するのに対し、ユーザが定義した固有の分割領域であるユーザ定義領域９２へアドレスを変換して、読み出し処理又は書き込み処理を実行する。したがって、ユーザに固有の一時記憶領域を用いて情報の読み出し処理又は書き込み処理を実行することができ、不特定の第三者にとっては該一時記憶領域内の情報を取得することができない。
【００６７】
ＣＰＵ１１は、読み出し処理であるか否かを判断し（ステップＳ８０６）、ＣＰＵ１１が、読み出し処理であると判断した場合（ステップＳ８０６：ＹＥＳ）、ＣＰＵ１１は、変換されたアドレス情報が示す分割領域、すなわちユーザ定義領域９２から情報を読み出し（ステップＳ８０７）、読み出した情報を抽出した暗号鍵情報によって復号する（ステップＳ８０８）。ＣＰＵ１１が、読み出し処理でないと判断した場合（ステップＳ８０６：ＮＯ）、ＣＰＵ１１は、書き込み処理であると判断し、書き込み対象となる情報を、抽出した暗号鍵情報によって暗号化し（ステップＳ８０９）、変換されたアドレス情報が示す分割領域、すなわちユーザ定義領域９２へ情報を書き込み（ステップＳ８１０）。
【００６８】
図１０は、本発明の実施の形態２に係る共有オブジェクト制御装置１を用いる場合のデータ交換の例示図である。アプリケーションＡはテキストデータ「Ｈｅｌｌｏ」をクリップボードに書き込む。書き込み関数は、標準的な書式と同等であり、設定してあるアドレス情報も通常のクリップボード使用時と同じＣＦ＿ＴＥＸＴである。
【００６９】
ＡＰＩ（アプリケーションインタフェース）であるＳｅｔＣｌｉｐｂｏａｒｄＤａｔａを受け付けた共有オブジェクト制御装置１は、抽出したポインタ情報へアドレス情報を変換し、情報を暗号化する。具体的には、アドレス情報を標準フォーマット領域９１を示すＣＦ＿ＴＥＸＴからユーザ定義領域９２を示すＬ１＿ＣＦ＿ＴＥＸＴへ変換し、テキストデータ「Ｈｅｌｌｏ」を判読不能な状態へ暗号化する。
【００７０】
そして、クリップボードのユーザ定義領域９２のテキストデータ領域９２１を示すアドレスに対して、暗号化されたテキストデータを書き込む。書き込み時には、通常のＡＰＩと同様に設定するだけで、ユーザ、機密レベル等に応じて割り当てられているユーザ定義領域９２に書き込むことができる。したがって、クリップボードとしての使い勝手を損なうことなく、書き込まれた情報が第三者に漏洩するおそれが少ない。また、万一漏洩した場合であっても暗号化処理を施しているため、容易に判読することができず、安全である。
【００７１】
一方、アプリケーションＢはテキストデータ「Ｇｏｏｄ  Ｂｙｅ」をクリップボードから読み出す。読み出し関数は、標準的な書式と同等であり、設定してあるアドレス情報も通常のクリップボード使用時と同じＣＦ＿ＴＥＸＴである。
【００７２】
ＡＰＩ（アプリケーションインタフェース）であるＧｅｔＣｌｉｐｂｏａｒｄＤａｔａを受け付けた共有オブジェクト制御装置１は、抽出したポインタ情報へアドレス情報を変換し、クリップボードのユーザ定義領域９２のテキストデータ領域９２４を示すアドレスから、暗号化されたテキストデータを読み出す。具体的には、アドレス情報を標準フォーマット領域９１を示すＣＦ＿ＴＥＸＴからユーザ定義領域９２を示すＬ２＿ＣＦ＿ＴＥＸＴへ変換し、暗号化されたテキストデータ「Ｇｏｏｄ  Ｂｙｅ」を読み出す。
【００７３】
そして、読み出したテキストデータを、抽出した暗号鍵情報を用いて復号し、テキストデータ「Ｇｏｏｄ  Ｂｙｅ」を得る。読み出し時には、通常のＡＰＩと同様に設定するだけで、ユーザ、機密レベル等に応じて割り当てられているユーザ定義領域９２から読み出すことができる。したがって、クリップボードとしての使い勝手を損なうことなく、書き込まれた情報が第三者に漏洩するおそれが少ない。また、万一漏洩した場合であっても暗号化処理を施しているため、容易に判読することができず、安全である。
【００７４】
また、ウインドウメッセージを介したメッセージ交換処理にも適用することができる。図１１は、従来のウインドウメッセージを用いたメッセージ交換処理の例示図である。
【００７５】
図１１では、アプリケーションＡがアプリケーションＢに対してメッセージを要求するＷＭ＿ＧＥＴＴＥＸＴを送出し、アプリケーションＢからテキストデータ「Ｈｅｌｌｏ」がアプリケーションＡへ送信されている。共有メモリ１２を介することにより、アプリケーション間で特別なインタフェースを必要とせず、共有メモリ１２に対する書き込み処理、読み出し処理をそれぞれのアプリケーションが実行することにより、容易にメッセージ交換することができる。反面、共有メモリ１２に書き込まれた時点で不特定の第三者がいつでも内容を読み出すことが可能となる。図１２は、本発明の実施の形態２に係る共有オブジェクト制御装置１を用いる場合のデータ交換の例示図である。図１１に示すメッセージ交換処理に対して、図１２では、メッセージコンバータ１２１とメッセージレシーバ１２２とを設けている点で相違する。
【００７６】
図１２に示すように、アプリケーションＡはメッセージコンバータ１２１へ標準のＡＰＩであるＷＭ＿ＧＥＴＴＥＸＴを送信し、アプリケーションＢはメッセージレシーバ１２２から標準のＡＰＩであるＷＭ＿ＧＥＴＴＥＸＴを受信する。メッセージコンバータ１２１は、標準のＡＰＩであるＷＭ＿ＧＥＴＴＥＸＴをユーザ定義メッセージであるＷＭ＿ＵＳＥＲＤＥＦに変換し、メッセージレシーバ１２２へ送信する。したがって、どのアプリケーションがどのアプリケーションに対してメッセージ交換を要求したのか、不特定の第三者が知ることができない。
【００７７】
一方、ＷＭ＿ＧＥＴＴＥＸＴを受信したアプリケーションＢは、要求されたテキストデータである「Ｈｅｌｌｏ」を暗号鍵情報を用いて暗号化し、共有メモリ１２へ送信する。アプリケーションＡは、共有メモリ１２に記憶された暗号化されたテキストデータを暗号鍵情報を用いて復号し、テキストデータ「Ｈｅｌｌｏ」を取得する。
【００７８】
以上のように本実施の形態２によれば、機密レベル情報に応じた複数の分割領域を割り当て、分割領域に記憶される情報を、該分割領域に固有の暗号鍵で暗号化することにより、ユーザ識別情報ごとに機密レベルに応じた分割領域に対してアクセスすることができるとともに、機密レベルに対応した暗号鍵で暗号化されることにより、不特定の第三者への情報流出の可能性をより低減することが可能となる。
【００７９】
なお、本発明は上記実施例に限定されるものではなく、本発明の趣旨の範囲内であれば多種の変更、改良等が可能である。例えば共有オブジェクトとして、マイクロソフト社製のウインドウズ（登録商標）が提供するクリップボード、ウインドウメッセージを例に説明しているが、共有オブジェクトがこれらに限定されるものではなく、複数のアプリケーション間で共有することができる一時記憶領域であれば同様の効果が期待できる。
【図面の簡単な説明】
【００８０】
【図１】本発明の実施の形態１に係る共有オブジェクト制御装置の構成例を示すブロック図である。
【図２】本発明の実施の形態１に係る共有オブジェクト制御装置の記憶領域管理テーブルのデータ構成の例示図である。
【図３】本発明の実施の形態１に係る共有オブジェクト制御装置の機能ブロック図である。
【図４】本発明の実施の形態１に係る共有オブジェクト制御装置のＣＰＵの処理手順を示すフローチャートである。
【図５】クリップボードを用いる場合の一時記憶領域の概念図である。
【図６】本発明の実施の形態２に係る共有オブジェクト制御装置の記憶領域管理テーブルのデータ構成の例示図である。
【図７】本発明の実施の形態２に係る共有オブジェクト制御装置の機能ブロック図である。
【図８】本発明の実施の形態２に係る共有オブジェクト制御装置のＣＰＵの処理手順を示すフローチャートである。
【図９】クリップボードを用いる場合の従来のメッセージ交換の例示図である。
【図１０】本発明の実施の形態２に係る共有オブジェクト制御装置を用いる場合のデータ交換の例示図である。
【図１１】従来のウインドウメッセージを用いたメッセージ交換処理の例示図である。
【図１２】本発明の実施の形態２に係る共有オブジェクト制御装置を用いる場合のデータ交換の例示図である。
【符号の説明】
【００８１】
１  共有オブジェクト制御装置
１１  ＣＰＵ
１２  メモリ（共有メモリ）
１３  記憶装置
１４  Ｉ／Ｏインタフェース
１５  通信インタフェース
１６  ビデオインタフェース
１７  可搬型ディスクドライブ
１８  内部バス
２３  表示装置
９０  可搬型記録媒体
１００  コンピュータプログラム
１３１  記憶領域管理テーブル
【図１】
2010009490.tif 000003
【図２】
2010009490.tif 000004
【図３】
2010009490.tif 000005
【図４】
2010009490.tif 000006
【図５】
2010009490.tif 000007
【図６】
2010009490.tif 000008
【図７】
2010009490.tif 000009
【図８】
2010009490.tif 000010
【図９】
2010009490.tif 000011
【図１０】
2010009490.tif 000012
【図１１】
2010009490.tif 000013
【図１２】
2010009490.tif 000014