説明

コンピュータプログラム、共有オブジェクト制御装置及び共有オブジェクト制御方法

【課題】任意のアプリケーションにおいて共有オブジェクトを所定の機密レベルを維持しつつ安全に使用することができるコンピュータプログラム、共有オブジェクト制御装置及び制御方法を提供する。
【解決手段】一時記憶領域に、機密レベル情報に応じて複数の分割領域を割り当てる。分割領域のポインタ情報及び暗号鍵情報を、ユーザ識別情報及び機密レベル情報に対応付けて記憶する記憶領域管理テーブルを記憶しておく。一時保管領域を介する読み出し処理又は書き込み処理の指示を受け付けた場合、読み出し処理又は書き込み処理を指示したユーザのユーザ識別情報をキー情報としてポインタ情報を抽出し、読み出し処理又は書き込み処理の対象を示すアドレス情報を、抽出されたポインタ情報へ変換する。抽出されたポインタ情報に基づいて、機密レベル情報を特定し、機密レベル情報に対応した暗号鍵情報を用いて書き込む情報を暗号化し、又は読み出す情報を復号する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、共有オブジェクトを介して情報を読み書きするコンピュータプログラム、共有オブジェクト制御装置及び共有オブジェクト制御方法に関する。
【背景技術】
【0002】
近年、複数のプログラム間でデータ交換をする機会が急増しており、機密情報の漏洩等のセキュリティ上の問題が多々発生している。特に同一コンピュータ内の複数のプログラム間での情報漏洩リスクが注目されている。
【0003】
すなわち、コンピュータ間のデータ交換は、セキュリティ機能を駆使することにより、情報漏洩の危険を回避することもできる。しかし、同一コンピュータ内の複数のプログラムからアクセスすることが可能な共有オブジェクトについては、セキュリィティの向上を図ることが困難であり、同一のコンピュータ上の他のプログラムから容易に読み書きすることができるという問題があった。
【0004】
セキュリティを向上するための工夫は多々行われている。例えば特許文献1では、セキュリティ管理を主目的としたセキュリティ管理コンピュータを別個に設けておき、セキュリティ管理コンピュータにより機密情報保護レベルに応じたセキュリティ管理レベルを求めるセキュリティ管理システムが開示されている。これにより、セキュリティレベルの変動に対して柔軟に対応することができる。
【0005】
しかし特許文献1では、同一のコンピュータで実行された複数のプログラムからのアクセスを制限することはできない。そこで、非特許文献1では、特定のプロセス(プログラム)が共有オブジェクトにアクセス中は、該プロセス以外の他のプロセスからのアクセスを排他し、一律に共有オブジェクトに対するアクセスを制限する方法が開示されている。
【特許文献1】特開2008−027322号公報
【非特許文献1】勝野恭治、渡邊裕治、古市実裕、工藤道治、「アプリケーションレベル分散セキュアグループのためのChinese−wall型プロセス隔離手法」、2007年、DICOMO予稿集
【発明の開示】
【発明が解決しようとする課題】
【0006】
しかし、非特許文献1に開示されている方法では、一のプロセスが共有オブジェクトを占有するため、一のプロセスが共有オブジェクトにアクセスしている間は、他のプロセスは共有オブジェクトを全く使用することができないという問題点があった。すなわち、本来は共有オブジェクトを複数のプロセスにて共有することを目的としているのに対し、同時には一のプロセスしかアクセスすることができないのでは、共有オブジェクトとする意味がない。機密レベルごとに画面を隔離し、他のプロセスとのデータ交換を遮断するのと類似しており、プログラムの操作性低下を招くおそれもあった。
【0007】
また、機密レベルを保持するために、機密レベルに応じて独自のデータ形式を採用する、独自の通信チャネルを用いてデータ交換する等も考えられる。しかし、処理に汎用性がなく、固有のアプリケーションを作成する必要がある。したがって、任意のアプリケーションでは共有オブジェクトを安全に使用することができないという問題点があった。
【0008】
本発明は斯かる事情に鑑みてなされたものであり、任意のアプリケーションにおいて共有オブジェクトを所定の機密レベルを維持しつつ安全に使用することができるコンピュータプログラム、共有オブジェクト制御装置及び共有オブジェクト制御方法を提供することを目的とする。
【課題を解決するための手段】
【0009】
上記目的を達成するために第1発明に係るコンピュータプログラムは、共有オブジェクトを記憶する共有記憶領域に複数の分割領域を割り当て、ユーザを識別するユーザ識別情報に応じて読み書き処理に用いる分割領域を特定する。特定された分割領域から情報を読み出す読み出し処理及び該分割領域へ情報を書き込む書き込み処理を実行する。
【0010】
また、第2発明に係るコンピュータプログラムは、第1発明において、分割領域のポインタ情報をユーザ識別情報に対応付けて記憶する記憶領域管理テーブルを有し、共有オブジェクトを介する読み出し処理又は書き込み処理の指示を受け付けた場合、読み出し処理又は書き込み処理を指示したユーザのユーザ識別情報をキー情報として記憶領域管理テーブルを照会し、ポインタ情報を抽出する。読み出し処理又は書き込み処理の対象を示すアドレス情報を、抽出されたポインタ情報へ変換する。
【0011】
また、第3発明に係るコンピュータプログラムは、第2発明において、機密レベル情報に応じた複数の分割領域を割り当て、機密レベル情報に応じた固有の暗号鍵情報を記憶する。抽出されたポインタ情報に基づいて、機密レベル情報を特定し、特定された機密レベル情報に対応した暗号鍵情報を用いて書き込む情報を暗号化し、又は読み出す情報を復号する。
【0012】
また、第4発明に係るコンピュータプログラムは、第3発明において、複数のユーザ識別情報を一組として共通の機密レベル情報を設定する。
【0013】
また、第5発明に係るコンピュータプログラムは、第1乃至第4発明のいずれか1つにおいて、共有オブジェクトを、複数のアプリケーションで共有される情報の一時保管領域とする。
【0014】
また、第6発明に係るコンピュータプログラムは、一時記憶領域に、機密レベル情報に応じて複数の分割領域を割り当て、分割領域のポインタ情報及び暗号鍵情報を、ユーザ識別情報及び機密レベル情報に対応付けて記憶する。一時保管領域に対する読み出し処理又は書き込み処理の指示を受け付けた場合、読み出し処理又は書き込み処理を指示したユーザのユーザ識別情報をキー情報として記憶領域テーブルを照会し、ポインタ情報を抽出する。読み出し処理又は書き込み処理の対象を示すアドレス情報を、抽出されたポインタ情報へ変換する。抽出されたポインタ情報に基づいて、機密レベル情報を特定し、特定された機密レベル情報に対応した暗号鍵情報を用いて書き込む情報を暗号化し、又は読み出す情報を復号する。変換されたアドレス情報を用いて分割領域から情報を読み出す読み出し処理及び該分割領域へ情報を書き込む書き込み処理を実行する。
【0015】
次に、上記目的を達成するために第7発明に係る共有オブジェクト制御装置は、共有オブジェクトを記憶する共有記憶領域に複数の分割領域を割り当て、ユーザを識別するユーザ識別情報に応じて読み書き処理に用いる分割領域を特定する。特定された分割領域から情報を読み出す読み出し処理及び該分割領域へ情報を書き込む書き込み処理を実行する。
【0016】
次に、上記目的を達成するために第8発明に係る共有オブジェクト制御方法は、共有オブジェクトを記憶する共有記憶領域に複数の分割領域を割り当て、ユーザを識別するユーザ識別情報に応じて読み書き処理に用いる分割領域を特定する。特定された分割領域から情報を読み出す読み出し処理及び該分割領域へ情報を書き込む書き込み処理を実行する。
【発明の効果】
【0017】
本発明によれば、ユーザ識別情報に応じて読み書き処理の対象となる分割領域を区別することにより、所定のユーザについてのみ読み書き可能となる分割領域に共有オブジェクトを割り当て、該共有オブジェクトを介する情報の読み書き処理を実行することで、例えば標準的なアドレスとは異なるアドレスにて同様の機能を有する共有オブジェクトを提供することができ、同時に複数のアプリケーションがアクセスしつつ情報の漏洩を効果的に防止することができる。
【発明を実施するための最良の形態】
【0018】
以下、本発明の実施の形態に係る共有オブジェクト制御装置について、図面に基づいて具体的に説明する。以下の実施の形態は、特許請求の範囲に記載された発明を限定するものではなく、実施の形態の中で説明されている特徴的事項の組み合わせの全てが解決手段の必須事項であるとは限らないことは言うまでもない。
【0019】
また、本発明は多くの異なる態様にて実施することが可能であり、実施の形態の記載内容に限定して解釈されるべきものではない。実施の形態を通じて同じ要素には同一の符号を付している。
【0020】
以下の実施の形態では、コンピュータシステムにコンピュータプログラムを導入した共有オブジェクト制御装置について説明するが、当業者であれば明らかな通り、本発明はその一部をコンピュータで実行することが可能なコンピュータプログラムとして実施することができる。したがって、本発明は、共有オブジェクト制御装置というハードウェアとしての実施の形態、ソフトウェアとしての実施の形態、又はソフトウェアとハードウェアとの組み合わせの実施の形態をとることができる。コンピュータプログラムは、ハードディスク、DVD、CD、光記憶装置、磁気記憶装置等の任意のコンピュータで読み取ることが可能な記録媒体に記録することができる。
【0021】
第1発明、第7発明及び第8発明では、共有オブジェクトを記憶する共有記憶領域に複数の分割領域を割り当てる。ユーザを識別するユーザ識別情報に応じて読み書き処理に用いる分割領域を特定し、特定された分割領域から情報を読み出す読み出し処理及び該分割領域へ情報を書き込む書き込み処理を実行する。ユーザ識別情報に応じて読み書き処理に用いる分割領域を区別することにより、所定のユーザについてのみ読み書き処理が実行可能となる分割領域に共有オブジェクトを割り当て、該共有オブジェクトを介する情報の読み出し処理又は書き込み処理を実行することで、例えば標準的なアドレスとは異なるアドレスにて同様の機能を有する共有オブジェクトを提供することができ、同時に複数のアプリケーションがアクセスしつつ情報の漏洩を効果的に防止することができる。
【0022】
第2発明では、分割領域のポインタ情報をユーザ識別情報に対応付けて記憶しておく記憶領域管理テーブルを準備しておく。共有オブジェクトを介する読み出し処理又は書き込み処理の指示を受け付けた場合、読み出し処理又は書き込み処理を指示したユーザのユーザ識別情報をキー情報として記憶領域テーブルを照会し、ポインタ情報を抽出する。読み出し処理又は書き込み処理の対象を示すアドレス情報を、抽出されたポインタ情報へ変換する。これにより、読み出し処理又は書き込み処理を指示したユーザのユーザ識別情報に基づいてポインタ情報を抽出し、通常共有記憶領域としてアクセスするアドレスとは異なるアドレスへポインタ情報を用いて変換することで、不特定多数のアプリケーションからの共有オブジェクトに対するアクセスを制限することができる。なお、「ポインタ情報」とは、アクセスするユーザ定義領域の始点アドレス等の、分割領域へアクセスするために必要なアドレス情報を意味する。
【0023】
第3発明では、機密レベル情報に応じた複数の分割領域を割り当て、分割領域に記憶される情報を、該分割領域に固有の暗号鍵情報で暗号化することにより、ユーザ識別情報ごとに機密レベル情報に応じた分割領域に対してアクセスすることができるとともに、機密レベル情報に対応した暗号鍵情報で暗号化されることにより、不特定の第三者への情報流出の可能性をより低減することが可能となる。
【0024】
第4発明では、複数のユーザ識別情報を一組として共通の機密レベル情報を設定することにより、ユーザ単位ではなく、特定のグループについて特定された共有オブジェクトを介して情報の読み書き処理を実行することができる。
【0025】
第5発明では、共有オブジェクトが、複数のアプリケーションで共有される情報の一時保管領域、例えばマイクロソフト社製のOS(オペレーティングシステム)のウインドウズ(登録商標)での「クリップボード」、「ウインドウメッセージ」等の機能に相当するオブジェクトであることにより、OSの管理下では一定のアドレスに対してアクセスするのに対し、ユーザ識別情報、機密レベル情報ごとに分割された所定の分割領域へ情報を書き込み、また読み出すことができる。
【0026】
第6発明では、複数のアプリケーションで共有される情報の一時記憶領域、例えばマイクロソフト社製のOS(オペレーティングシステム)のウインドウズ(登録商標)での「クリップボード」、「ウインドウメッセージ」等について、機密レベル情報に応じて複数の分割領域を割り当て、分割領域のポインタ情報及び暗号鍵情報を、ユーザ識別情報及び機密レベル情報に対応付けて記憶しておく。一時保管領域に対する読み出し処理又は書き込み処理の指示を受け付けた場合、読み出し処理又は書き込み処理を指示したユーザのユーザ識別情報をキー情報として記憶領域テーブルを照会し、ポインタ情報を抽出し、読み出し処理又は書き込み処理の対象を示すアドレス情報を、抽出されたポインタ情報へ変換し、変換されたアドレス情報を用いて分割領域から情報を読み出す読み出し処理及び分割領域へ情報を書き込む書き込み処理を実行する。これにより、アプリケーションがOSを介して標準的にアクセスする一次記憶領域のアドレスとは異なるアドレスにて一時記憶領域と同様の機能を提供することができ、同時に複数のアプリケーションがアクセスしつつ情報の漏洩を効果的に防止することができる。また、抽出されたポインタ情報に基づいて、機密レベル情報を特定し、特定された機密レベル情報に対応した暗号鍵情報を用いて書き込む情報を暗号化し、又は読み出す情報を復号することにより、万一情報が漏洩した場合であっても、暗号鍵情報を有さない限り内容の判読をすることができず、より安全に一時記憶領域を活用することが可能となる。
【0027】
(実施の形態1)
図1は、本発明の実施の形態1に係る共有オブジェクト制御装置の構成例を示すブロック図である。本発明の実施の形態1に係る共有オブジェクト制御装置1は、少なくともCPU(中央演算装置)11、メモリ12、記憶装置13、I/Oインタフェース14、通信インタフェース15、ビデオインタフェース16、可搬型ディスクドライブ17及び上述したハードウェアを接続する内部バス18で構成されている。
【0028】
CPU11は、内部バス18を介して共有オブジェクト制御装置1の上述したようなハードウェア各部と接続されており、上述したハードウェア各部の動作を制御するとともに、記憶装置13に記憶されているコンピュータプログラム100に従って、種々のソフトウェア的機能を実行する。メモリ12は、SRAM、SDRAM等の揮発性メモリで構成され、コンピュータプログラム100の実行時にロードモジュールが展開され、コンピュータプログラム100の実行時に発生する一時的なデータ等を記憶する。また、一定の領域は、複数のアプリケーション間で情報を共有する共有メモリとしても機能する。以下、共有メモリとして機能する場合も同一の符号を付している。
【0029】
記憶装置13は、内蔵される固定型記憶装置(ハードディスク)、ROM等で構成されている。記憶装置13に記憶されているコンピュータプログラム100は、プログラム及びデータ等の情報を記録したDVD、CD−ROM等の可搬型記録媒体90から、可搬型ディスクドライブ17によりダウンロードされ、実行時には記憶装置13からメモリ12へ展開して実行される。もちろん、通信インタフェース15を介してネットワーク2に接続されている外部のコンピュータからダウンロードされたコンピュータプログラムであっても良い。
【0030】
また記憶装置13は、共有オブジェクト、例えば複数のアプリケーションで共有されるデータの一時保管領域であるマイクロソフト社製のOS(オペレーティングシステム)のウインドウズ(登録商標)における「クリップボード」、「ウインドウメッセージ」等に割り当てた分割領域のポインタ情報をユーザ識別情報に対応付けて記憶する記憶領域管理テーブル131を備える。ここで、「分割領域」とは、一時記憶領域に割り当てられた複数の小領域を意味しており、アプリケーションがOSを介して標準的にアクセスする一次記憶領域とは別に、ユーザ定義に応じて自由に設定することができる領域を意味している。
【0031】
図2は、本発明の実施の形態1に係る共有オブジェクト制御装置1の記憶領域管理テーブル131のデータ構成の例示図である。図2に示すように、記憶領域管理テーブル131には、ユーザを識別するユーザ識別情報であるユーザIDに対応付けて、アクセスするべき分割領域の始点アドレスを示す情報であるポインタ情報を記憶してある。また、複数のユーザを含むグループを識別する識別情報であるグループIDに対応付けてポインタ情報を記憶しても良い。
【0032】
通信インタフェース15は内部バス18に接続されており、インターネット、LAN、WAN等の外部のネットワーク2に接続されることにより、外部のコンピュータ等とデータ送受信を行うことが可能となっている。
【0033】
I/Oインタフェース14は、キーボード21、マウス22等のデータ入力媒体と接続され、データの入力を受け付ける。また、ビデオインタフェース16は、CRTモニタ、LCD等の表示装置23と接続され、所定の画像を表示する。
【0034】
図3は、本発明の実施の形態1に係る共有オブジェクト制御装置1の機能ブロック図である。分割領域割当部301は、共有オブジェクトを記憶する共有記憶領域に複数の分割領域を割り当てる。通常は、共有メモリとしてメモリ12内に確保してある領域を複数の領域に分割し、アプリケーション2は通常、OS3を介して一の分割領域に対してアクセスし、ユーザ定義がされた時点で他の分割領域に対してアクセスすることが可能となる。
【0035】
書き込み処理検出部302は、アプリケーション2による共有オブジェクトを介する情報の書き込み処理を検出し、読み出し処理検出部303は、共有オブジェクトを介するアプリケーション2への情報の読み出し処理を検出する。分割領域特定部304は、ユーザを識別するユーザ識別情報に応じて、読み書き処理に用いる分割領域が、割り当てられた複数の分割領域のうちどの分割領域であるか特定する。分割領域の特定には、記憶領域管理テーブル131を照会する。
【0036】
ポインタ情報抽出部305は、共有オブジェクトを介する読み出し処理又は書き込み処理を、書き込み処理検出部302又は読み出し処理検出部303が検出した場合、読み出し処理又は書き込み処理を指示したユーザのユーザ識別情報をキー情報として記憶領域管理テーブル131を照会し、ポインタ情報を抽出する。
【0037】
アドレス情報変換部306は、読み出し処理又は書き込み処理の対象を示すアドレス情報を、抽出されたポインタ情報へ変換する。これにより、アプリケーション2は、OS3を介して標準的に指定された特定のアドレスに対してアクセスしているのを、ユーザが定義した固有の分割領域に対してアクセスするように変換することができる。
【0038】
読み書き実行部307は、変換されたアドレス情報を用いて分割領域から情報を読み出す読み出し処理及び該分割領域へ情報を書き込む書き込み処理を実行する。すなわち書き込み処理部308は、変換されたアドレス情報を用いて分割領域へ情報を書き込み、読み出し処理部309は、変換されたアドレス情報を用いて分割領域から情報を読み出す。
【0039】
上述した構成の共有オブジェクト制御装置1の処理の流れについて説明する。図4は、本発明の実施の形態1に係る共有オブジェクト制御装置1のCPU11の処理手順を示すフローチャートである。
【0040】
共有オブジェクト制御装置1のCPU11は、共有オブジェクトを記憶する共有記憶領域に複数の分割領域を割り当てる(ステップS401)。例えばOS3にマイクロソフト社製のウインドウズ(登録商標)を用いる場合、共有オブジェクトはクリップボード、ウインドウメッセージ等の一時記憶領域となる。
【0041】
図5は、クリップボードを用いる場合の一時記憶領域の概念図である。通常、アプリケーション2がOS3を介してアクセスするアドレスは、メモリ12の共有記憶領域である標準フォーマット領域51の始点アドレスであり、標準フォーマット領域51は、テキストデータを記憶するテキスト領域、ビットマップデータを記憶するビットマップ領域、メタファイルを記憶するメタファイル領域等に分かれている。
【0042】
それに対して、本実施の形態1では、ユーザ定義領域52を別個に割り当てておき、アプリケーションAに対してはユーザ定義領域52のグループAに相当する領域を、アプリケーションBに対してはユーザ定義領域52のグループBに相当する領域を、というように、アプリケーションごと、ユーザごと、あるいはユーザグループごとにユーザ定義領域52を割り当てる。
【0043】
図4に戻って、共有オブジェクト制御装置1のCPU11は、共有オブジェクトを介するアプリケーション2への情報の読み出し処理又はアプリケーション2による共有オブジェクトを介する情報の書き込み処理を検出する(ステップS402)。CPU11は、読み出し処理又は書き込み処理を指示したユーザを識別するユーザ識別情報を取得し(ステップS403)、読み書き処理の対象となる分割領域が、割り当てられた複数の分割領域のうちどの分割領域であるか特定する。
【0044】
具体的には、CPU11は、取得したユーザ識別情報であるユーザIDをキー情報として、記憶領域管理テーブル131を照会して、対応する分割領域のポインタ情報を抽出する(ステップS404)。ここで、「ポインタ情報」とは、アクセスするユーザ定義領域52である分割領域の始点アドレス等の、分割領域へアクセスするために必要なアドレス情報を意味する。アクセスを可能とする情報で有れば特に限定されるものではない。
【0045】
キー情報とするのはユーザIDに限定されるものではなく、複数のユーザを一組としたグループを識別するグループIDであっても良いし、アプリケーションを識別するアプリケーションIDであっても良い。
【0046】
CPU11は、読み出し処理又は書き込み処理の対象を示すアドレス情報を、抽出されたポインタ情報へ変換する(ステップS405)。これにより、クリップボードを用いる場合、アプリケーション2は通常、OS3を介して指定された特定のアドレスで示される標準フォーマット領域51へアクセスして読み出し処理又は書き込み処理を実行するのに対し、ユーザが定義した固有の分割領域であるユーザ定義領域52へアドレスを変換して、読み出し処理又は書き込み処理を実行する。したがって、ユーザに固有の一時記憶領域を用いて情報の読み出し処理又は書き込み処理を実行することができ、不特定の第三者にとっては該一時記憶領域内の情報を取得することができない。
【0047】
CPU11は、変換されたアドレス情報を用いて分割領域から情報を読み出す読み出し処理及び該分割領域へ情報を書き込む書き込み処理を実行する(ステップS406)。すなわち、変換されたアドレス情報が示す分割領域、すなわちユーザ定義領域52へ情報を書き込み、変換されたアドレス情報が示す分割領域、すなわちユーザ定義領域52から情報を読み出す。
【0048】
以上のように本実施の形態1によれば、ユーザ識別情報に応じて読み書き処理の対象となる分割領域を区別することにより、所定のユーザについてのみ読み書き可能となる分割領域に共有オブジェクトを割り当て、該共有オブジェクトを介する情報の読み出し処理又は書き込み処理を実行することで、例えば標準的なアドレスとは異なるアドレスにて同様の機能を有する共有オブジェクトを提供することができ、同時に複数のアプリケーションがアクセスしつつ情報の漏洩を効果的に防止することができる。
【0049】
(実施の形態2)
本発明の実施の形態2に係る共有オブジェクト制御装置1の構成は、実施の形態1と同様であることから、同一の符号を付することにより詳細な説明は省略する。本実施の形態2では、機密レベルに応じて分割領域を割り当てている点で実施の形態1と相違する。
【0050】
機密レベルに関する機密レベル情報とは、セキュリティに関する機密情報の機密性の要求度合を示す情報一般を意味している。機密レベルに応じて割り当てる分割領域を特定するためには、記憶領域管理テーブル131に機密レベルに関する機密レベル情報を対応付けておく必要がある。
【0051】
図6は、本発明の実施の形態2に係る共有オブジェクト制御装置1の記憶領域管理テーブル131のデータ構成の例示図である。図6に示すように、記憶領域管理テーブル131には、ユーザを識別するユーザ識別情報であるユーザIDに対応付けて、アクセスするべき分割領域の始点アドレスを示す情報であるポインタ情報を記憶してある。また、複数のユーザを含むグループを識別する識別情報であるグループIDに対応付けてポインタ情報を記憶しても良い。
【0052】
さらに、ユーザID又はグループIDに対応付けて、機密レベルの要求度合等を示す機密レベル情報、該機密レベル情報に対応した暗号鍵情報も対応付けて記憶しておく。このようにすることで、共有オブジェクトを介する読み出し処理又は書き込み処理を指示したユーザに応じた暗号鍵情報を取出すことができ、共有オブジェクトの使い勝手を損なうことなく、より安全なデータ交換を実行することができる。
【0053】
図7は、本発明の実施の形態2に係る共有オブジェクト制御装置1の機能ブロック図である。分割領域割当部301は、共有オブジェクトを記憶する共有記憶領域に複数の分割領域を割り当てる。通常は、共有メモリとしてメモリ12内に確保してある領域を複数の領域に分割し、アプリケーション2がOS3を介して一の分割領域に対して標準的にアクセスしているのに対し、ユーザ定義がされた時点で他の分割領域へアクセスすることができるようになる。
【0054】
書き込み処理検出部302は、アプリケーション2による共有オブジェクトを介する情報の書き込み処理を検出し、読み出し処理検出部303は、共有オブジェクトを介するアプリケーション2への情報の読み出し処理を検出する。分割領域特定部304は、ユーザを識別するユーザ識別情報に応じて、読み書き処理に用いる分割領域が、割り当てられた複数の分割領域のうちどの分割領域であるか特定する。分割領域の特定には、記憶領域管理テーブル131を照会する。
【0055】
機密レベル特定部701は、共有オブジェクトを介する読み出し処理又は書き込み処理を、書き込み処理検出部302又は読み出し処理検出部303が検出した場合、読み出し処理又は書き込み処理を指示したユーザのユーザ識別情報をキー情報として記憶領域管理テーブル131を照会し、機密レベル情報、暗号鍵情報を抽出する。
【0056】
ポインタ情報抽出部305は、共有オブジェクトを介する読み出し処理又は書き込み処理を、書き込み処理検出部302又は読み出し処理検出部303が検出した場合、読み出し処理又は書き込み処理を指示したユーザのユーザ識別情報をキー情報として記憶領域管理テーブル131を照会し、ポインタ情報を抽出する。
【0057】
アドレス情報変換部306は、読み出し処理又は書き込み処理の対象を示すアドレス情報を、抽出されたポインタ情報へ変換する。これにより、アプリケーション2は、通常OS3を介して指定された特定のアドレスに対してアクセスしているのに対し、機密レベルに応じてユーザが定義した固有の分割領域に対してアクセスすることができる。
【0058】
暗号化処理部702は、機密レベル特定部701にて抽出した暗号鍵情報を用いて、共有オブジェクトを介して書き込む情報を暗号化する。復号処理部703は、機密レベル特定部701にて抽出した暗号鍵情報を用いて、共有オブジェクトを介して読み出した情報を復号する。
【0059】
読み書き実行部307は、変換されたアドレス情報を用いて分割領域から情報を読み出す読み出し処理及び該分割領域へ情報を書き込む書き込み処理を実行する。すなわち書き込み処理部308は、変換されたアドレス情報を用いて、暗号化された情報を分割領域へ書き込み、読み出し処理部309は、変換されたアドレス情報を用いて、分割領域から暗号化された情報を読み出す。
【0060】
上述した構成の共有オブジェクト制御装置1の処理の流れについて説明する。図8は、本発明の実施の形態2に係る共有オブジェクト制御装置1のCPU11の処理手順を示すフローチャートである。
【0061】
共有オブジェクト制御装置1のCPU11は、共有オブジェクトを記憶する共有記憶領域に複数の分割領域を割り当てる(ステップS801)。例えばOS3にマイクロソフト社製のウインドウズ(登録商標)を用いる場合、共有オブジェクトはクリップボード、ウインドウメッセージ等の一時記憶領域となる。
【0062】
図9は、クリップボードを用いる場合の従来のメッセージ交換の例示図である。通常、アプリケーション2がOS3を介してアクセスするアドレスは、メモリ12の共有記憶領域である標準フォーマット領域91の始点アドレスであり、標準フォーマット領域91は、テキストデータを記憶するテキスト領域911、ビットマップデータを記憶するビットマップ領域912、メタファイルを記憶するメタファイル領域913等の複数の領域に分かれている。そして、ユーザ定義領域92には直接アクセスすることはできず、例えばアプリケーションAのように「Hello」というテキストデータをクリップボードに書き込む場合には、CF_TEXTとテキスト領域911の始点アドレスを明示する。また、アプリケーションBのようにクリップボードのテキスト領域911からテキストデータを読み出す場合にも、CF_TEXTとテキスト領域911の始点アドレスを明示する。
【0063】
それに対して、本実施の形態2では、ユーザ定義領域92、92、・・・を別個に割り当てておき、機密レベルLごとに領域を割り当てる。すなわち、機密レベルL1の情報については、機密レベルL1に対するユーザ定義領域92を、機密レベルL2の情報については、機密レベルL2に対するユーザ定義領域92を、というように、複数のユーザ定義領域92、92、・・・を割り当てる。
【0064】
図8に戻って、共有オブジェクト制御装置1のCPU11は、共有オブジェクトを介するアプリケーション2への情報の読み出し処理又はアプリケーション2による共有オブジェクトを介する情報の書き込み処理を検出する(ステップS802)。CPU11は、読み出し処理又は書き込み処理を指示したユーザを識別するユーザ識別情報を取得し(ステップS803)、読み書き処理の対象となる分割領域が、割り当てられた複数の分割領域のうちどの分割領域であるか特定する。
【0065】
具体的には、CPU11は、取得したユーザ識別情報であるユーザIDをキー情報として、記憶領域管理テーブル131を照会して、ユーザの機密レベル情報、暗号鍵情報とともに、対応する分割領域のポインタ情報を抽出する(ステップS804)。記憶領域管理テーブル131は、図6に例示したデータ構成に限定されるものではなく、ユーザIDと機密レベル情報とを対応付けたテーブルと、機密レベル情報とポインタ情報とを対応付けたテーブルとを別個に有する構造であっても良い。この場合には取得したユーザIDに基づいて機密レベル情報を特定し、特定された機密レベル情報に従って、アクセスするべき一時記憶領域のポインタ情報を取得すれば良い。
【0066】
CPU11は、読み出し処理又は書き込み処理の対象を示すアドレス情報を、抽出されたポインタ情報へ変換する(ステップS805)。これにより、クリップボードを用いる場合、通常、アプリケーション2はOS3を介して指定された特定のアドレスで示される標準フォーマット領域91へアクセスして読み出し処理又は書き込み処理を実行するのに対し、ユーザが定義した固有の分割領域であるユーザ定義領域92へアドレスを変換して、読み出し処理又は書き込み処理を実行する。したがって、ユーザに固有の一時記憶領域を用いて情報の読み出し処理又は書き込み処理を実行することができ、不特定の第三者にとっては該一時記憶領域内の情報を取得することができない。
【0067】
CPU11は、読み出し処理であるか否かを判断し(ステップS806)、CPU11が、読み出し処理であると判断した場合(ステップS806:YES)、CPU11は、変換されたアドレス情報が示す分割領域、すなわちユーザ定義領域92から情報を読み出し(ステップS807)、読み出した情報を抽出した暗号鍵情報によって復号する(ステップS808)。CPU11が、読み出し処理でないと判断した場合(ステップS806:NO)、CPU11は、書き込み処理であると判断し、書き込み対象となる情報を、抽出した暗号鍵情報によって暗号化し(ステップS809)、変換されたアドレス情報が示す分割領域、すなわちユーザ定義領域92へ情報を書き込み(ステップS810)。
【0068】
図10は、本発明の実施の形態2に係る共有オブジェクト制御装置1を用いる場合のデータ交換の例示図である。アプリケーションAはテキストデータ「Hello」をクリップボードに書き込む。書き込み関数は、標準的な書式と同等であり、設定してあるアドレス情報も通常のクリップボード使用時と同じCF_TEXTである。
【0069】
API(アプリケーションインタフェース)であるSetClipboardDataを受け付けた共有オブジェクト制御装置1は、抽出したポインタ情報へアドレス情報を変換し、情報を暗号化する。具体的には、アドレス情報を標準フォーマット領域91を示すCF_TEXTからユーザ定義領域92を示すL1_CF_TEXTへ変換し、テキストデータ「Hello」を判読不能な状態へ暗号化する。
【0070】
そして、クリップボードのユーザ定義領域92のテキストデータ領域921を示すアドレスに対して、暗号化されたテキストデータを書き込む。書き込み時には、通常のAPIと同様に設定するだけで、ユーザ、機密レベル等に応じて割り当てられているユーザ定義領域92に書き込むことができる。したがって、クリップボードとしての使い勝手を損なうことなく、書き込まれた情報が第三者に漏洩するおそれが少ない。また、万一漏洩した場合であっても暗号化処理を施しているため、容易に判読することができず、安全である。
【0071】
一方、アプリケーションBはテキストデータ「Good Bye」をクリップボードから読み出す。読み出し関数は、標準的な書式と同等であり、設定してあるアドレス情報も通常のクリップボード使用時と同じCF_TEXTである。
【0072】
API(アプリケーションインタフェース)であるGetClipboardDataを受け付けた共有オブジェクト制御装置1は、抽出したポインタ情報へアドレス情報を変換し、クリップボードのユーザ定義領域92のテキストデータ領域924を示すアドレスから、暗号化されたテキストデータを読み出す。具体的には、アドレス情報を標準フォーマット領域91を示すCF_TEXTからユーザ定義領域92を示すL2_CF_TEXTへ変換し、暗号化されたテキストデータ「Good Bye」を読み出す。
【0073】
そして、読み出したテキストデータを、抽出した暗号鍵情報を用いて復号し、テキストデータ「Good Bye」を得る。読み出し時には、通常のAPIと同様に設定するだけで、ユーザ、機密レベル等に応じて割り当てられているユーザ定義領域92から読み出すことができる。したがって、クリップボードとしての使い勝手を損なうことなく、書き込まれた情報が第三者に漏洩するおそれが少ない。また、万一漏洩した場合であっても暗号化処理を施しているため、容易に判読することができず、安全である。
【0074】
また、ウインドウメッセージを介したメッセージ交換処理にも適用することができる。図11は、従来のウインドウメッセージを用いたメッセージ交換処理の例示図である。
【0075】
図11では、アプリケーションAがアプリケーションBに対してメッセージを要求するWM_GETTEXTを送出し、アプリケーションBからテキストデータ「Hello」がアプリケーションAへ送信されている。共有メモリ12を介することにより、アプリケーション間で特別なインタフェースを必要とせず、共有メモリ12に対する書き込み処理、読み出し処理をそれぞれのアプリケーションが実行することにより、容易にメッセージ交換することができる。反面、共有メモリ12に書き込まれた時点で不特定の第三者がいつでも内容を読み出すことが可能となる。図12は、本発明の実施の形態2に係る共有オブジェクト制御装置1を用いる場合のデータ交換の例示図である。図11に示すメッセージ交換処理に対して、図12では、メッセージコンバータ121とメッセージレシーバ122とを設けている点で相違する。
【0076】
図12に示すように、アプリケーションAはメッセージコンバータ121へ標準のAPIであるWM_GETTEXTを送信し、アプリケーションBはメッセージレシーバ122から標準のAPIであるWM_GETTEXTを受信する。メッセージコンバータ121は、標準のAPIであるWM_GETTEXTをユーザ定義メッセージであるWM_USERDEFに変換し、メッセージレシーバ122へ送信する。したがって、どのアプリケーションがどのアプリケーションに対してメッセージ交換を要求したのか、不特定の第三者が知ることができない。
【0077】
一方、WM_GETTEXTを受信したアプリケーションBは、要求されたテキストデータである「Hello」を暗号鍵情報を用いて暗号化し、共有メモリ12へ送信する。アプリケーションAは、共有メモリ12に記憶された暗号化されたテキストデータを暗号鍵情報を用いて復号し、テキストデータ「Hello」を取得する。
【0078】
以上のように本実施の形態2によれば、機密レベル情報に応じた複数の分割領域を割り当て、分割領域に記憶される情報を、該分割領域に固有の暗号鍵で暗号化することにより、ユーザ識別情報ごとに機密レベルに応じた分割領域に対してアクセスすることができるとともに、機密レベルに対応した暗号鍵で暗号化されることにより、不特定の第三者への情報流出の可能性をより低減することが可能となる。
【0079】
なお、本発明は上記実施例に限定されるものではなく、本発明の趣旨の範囲内であれば多種の変更、改良等が可能である。例えば共有オブジェクトとして、マイクロソフト社製のウインドウズ(登録商標)が提供するクリップボード、ウインドウメッセージを例に説明しているが、共有オブジェクトがこれらに限定されるものではなく、複数のアプリケーション間で共有することができる一時記憶領域であれば同様の効果が期待できる。
【図面の簡単な説明】
【0080】
【図1】本発明の実施の形態1に係る共有オブジェクト制御装置の構成例を示すブロック図である。
【図2】本発明の実施の形態1に係る共有オブジェクト制御装置の記憶領域管理テーブルのデータ構成の例示図である。
【図3】本発明の実施の形態1に係る共有オブジェクト制御装置の機能ブロック図である。
【図4】本発明の実施の形態1に係る共有オブジェクト制御装置のCPUの処理手順を示すフローチャートである。
【図5】クリップボードを用いる場合の一時記憶領域の概念図である。
【図6】本発明の実施の形態2に係る共有オブジェクト制御装置の記憶領域管理テーブルのデータ構成の例示図である。
【図7】本発明の実施の形態2に係る共有オブジェクト制御装置の機能ブロック図である。
【図8】本発明の実施の形態2に係る共有オブジェクト制御装置のCPUの処理手順を示すフローチャートである。
【図9】クリップボードを用いる場合の従来のメッセージ交換の例示図である。
【図10】本発明の実施の形態2に係る共有オブジェクト制御装置を用いる場合のデータ交換の例示図である。
【図11】従来のウインドウメッセージを用いたメッセージ交換処理の例示図である。
【図12】本発明の実施の形態2に係る共有オブジェクト制御装置を用いる場合のデータ交換の例示図である。
【符号の説明】
【0081】
1 共有オブジェクト制御装置
11 CPU
12 メモリ(共有メモリ)
13 記憶装置
14 I/Oインタフェース
15 通信インタフェース
16 ビデオインタフェース
17 可搬型ディスクドライブ
18 内部バス
23 表示装置
90 可搬型記録媒体
100 コンピュータプログラム
131 記憶領域管理テーブル

【特許請求の範囲】
【請求項1】
複数のプロセス間で共有される共有オブジェクトを介する情報の読み書き処理を制御するコンピュータで実行することが可能なコンピュータプログラムにおいて、
前記コンピュータを、
前記共有オブジェクトを記憶する共有記憶領域に複数の分割領域を割り当てる割当手段、
ユーザを識別するユーザ識別情報に応じて読み書き処理に用いる分割領域を特定する領域特定手段、及び
特定された分割領域から情報を読み出す読み出し処理及び該分割領域へ情報を書き込む書き込み処理を実行する読み書き実行手段
として機能させることを特徴とするコンピュータプログラム。
【請求項2】
前記コンピュータは、
前記分割領域のポインタ情報をユーザ識別情報に対応付けて記憶する記憶領域管理テーブルを有し、
前記コンピュータを、
共有オブジェクトを介する読み出し処理又は書き込み処理の指示を受け付けた場合、読み出し処理又は書き込み処理を指示したユーザのユーザ識別情報をキー情報として前記記憶領域管理テーブルを照会し、ポインタ情報を抽出する抽出手段、及び
読み出し処理又は書き込み処理の対象を示すアドレス情報を、抽出された前記ポインタ情報へ変換する変換手段
として機能させることを特徴とする請求項1記載のコンピュータプログラム。
【請求項3】
前記割当手段を、
機密レベル情報に応じた複数の分割領域を割り当てる手段として機能させ、
前記コンピュータを、
前記機密レベル情報に応じた固有の暗号鍵情報を記憶する鍵情報記憶手段、
抽出された前記ポインタ情報に基づいて、機密レベル情報を特定する機密レベル特定手段、及び
特定された機密レベル情報に対応した暗号鍵情報を用いて書き込む情報を暗号化し、又は読み出す情報を復号する暗号化/復号手段
として機能させることを特徴とする請求項2記載のコンピュータプログラム。
【請求項4】
複数のユーザ識別情報を一組として共通の機密レベル情報を設定するようにしてあることを特徴とする請求項3記載のコンピュータプログラム。
【請求項5】
前記共有オブジェクトは、複数のアプリケーションで共有される情報の一時保管領域であることを特徴とする請求項1乃至4のいずれか一項に記載のコンピュータプログラム。
【請求項6】
複数のプロセスで共有される情報の一時保管領域を介して情報の読み書き処理を制御するコンピュータで実行することが可能なコンピュータプログラムにおいて、
前記コンピュータを、
前記一時記憶領域に、機密レベル情報に応じて複数の分割領域を割り当てる割当手段、
前記分割領域のポインタ情報及び暗号鍵情報を、ユーザ識別情報及び機密レベル情報に対応付けて記憶する記憶領域管理テーブルを記憶する記憶手段、
前記一時保管領域を介する読み出し処理又は書き込み処理の指示を受け付けた場合、読み出し処理又は書き込み処理を指示したユーザのユーザ識別情報をキー情報として前記記憶領域テーブルを照会し、ポインタ情報を抽出する抽出手段、
読み出し処理又は書き込み処理の対象を示すアドレス情報を、抽出された前記ポインタ情報へ変換する変換手段、
抽出された前記ポインタ情報に基づいて、機密レベル情報を特定する機密レベル特定手段、
特定された機密レベル情報に対応した暗号鍵情報を用いて書き込む情報を暗号化し、又は読み出す情報を復号する暗号化/復号手段、及び
変換されたアドレス情報を用いて前記分割領域から情報を読み出す読み出し処理及び該分割領域へ情報を書き込む書き込み処理を実行する読み書き実行手段
として機能させることを特徴とするコンピュータプログラム。
【請求項7】
複数のプロセス間で共有される共有オブジェクトを介する情報の読み書き処理を制御する共有オブジェクト制御装置において、
前記共有オブジェクトを記憶する共有記憶領域に複数の分割領域を割り当てる割当部と、
ユーザを識別するユーザ識別情報に応じて読み書き処理に用いる分割領域を特定する領域特定部と、
特定された分割領域から情報を読み出す読み出し処理及び該分割領域へ情報を書き込む書き込み処理を実行する読み書き実行部と
を備えることを特徴とする共有オブジェクト制御装置。
【請求項8】
複数のプロセス間で共有される共有オブジェクトを介する情報の読み書き処理を制御する共有オブジェクト制御方法において、
前記共有オブジェクトを記憶する共有記憶領域に複数の分割領域を割り当て、
ユーザを識別するユーザ識別情報に応じて読み書き処理に用いる分割領域を特定し、
特定された分割領域から情報を読み出す読み出し処理及び該分割領域へ情報を書き込む書き込み処理を実行することを特徴とする共有オブジェクト制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate


【公開番号】特開2010−9490(P2010−9490A)
【公開日】平成22年1月14日(2010.1.14)
【国際特許分類】
【出願番号】特願2008−170858(P2008−170858)
【出願日】平成20年6月30日(2008.6.30)
【出願人】(390009531)インターナショナル・ビジネス・マシーンズ・コーポレーション (4,084)
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MASCHINES CORPORATION
【復代理人】
【識別番号】100117260
【弁理士】
【氏名又は名称】福永 正也
【Fターム(参考)】