説明

ファイル制御プログラム、ファイル制御装置及びファイル制御方法

【課題】 コンピュータの演算処理に過度な負荷をかけることなく、かつハードウェアに依存することなく読み書きを制御することが可能なファイルに対する読み書きの操作の制御を実現するファイル制御プログラム等を提供する。
【解決手段】 アプリケーションプログラムからのファイルの読み書きの対象となるファイルを特定する命令に対して、指定されたファイルが揮発性メモリに記憶されたファイルかをAPIで判断し、不揮発性の二次記憶装置に記憶されたファイルである場合には、OSにそのファイルを揮発性メモリにコピーさせ、コピーされたファイルに対してファイルディスクリプタを生成させることによって、以後の読み書きの対象を揮発性メモリに記憶されたファイルに制限する。電源を落とすとデータが消去される揮発性メモリにしか書き込みが行えないため、不正なファイルの持ち出しや改ざんに対処することが可能になる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ファイルを持ち出しや改ざん等の不正行為から保護するために、ファイルに対する読み書きの操作を制御するためのファイル制御プログラム、ファイル制御装置及びファイル制御方法に関するものである。
【背景技術】
【0002】
個人情報などの重要情報をコンピュータによって管理する際には、重要情報が書き込まれたファイルが持ち出されたり改ざんされたりすることがないように、ファイルの適切な保護が求められる。例えば、パスワードや暗号化によりアクセス権限を設定することによってファイルを保護することが行われているが、これらの方法は権限を有する者による不正行為に対応できないという問題がある。
【0003】
こうした課題に対応するために、ファイルの持ち出しそのものを物理的に禁止する方法が考えられる。例えば、ファイルサーバからファイル等のデータを端末にダウンロードして利用する場合に、端末で書き込み処理が行われるとデータを二次記憶装置に書き込むことを禁止し、揮発性メモリにキャッシュさせる発明が開示されている(特許文献1の段落0014〜0015参照)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2007−172063号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1記載の発明によると、ファイルサーバからダウンロードしたファイルを端末に保存しようとしても揮発性メモリにしか書き込むことができないので、端末の電源を落とせばファイルは自動的に消去されてしまい、端末の二次記憶装置にファイルが保存されて、不正に持ち出されることを防止することができる。しかしながら、この発明によっても、以下に示すようないくつかの課題が生じることが考えられる。
【0006】
第1に、読み書きの際に揮発性メモリへのキャッシュを判断する処理等によって、コンピュータにパフォーマンスを低下させるおそれがあるという点である。この発明によると、ファイルに対する書き込み処理又は読み込み処理が行われる際には、処理の種別を判定して、揮発性メモリへの書き込み等の実行を判断することとされている。すなわち、データを読み書きする命令(readやwrite)が行われる度にこの判定が行われ、揮発性メモリへの書き込み等の処理が実行されるものである。
【0007】
一方、こうしたデータの読み書きについては、1回あたりの処理によって可能なデータ量が通常はアプリケーションにおいて制限されているため、アプリケーションを用いて生成した1つのファイルを指定して読み書きをしようとすると、ファイルが複数のデータに分割されて読み書きの命令が行われることになる。そのため、1つのファイルを読み書きしようとした際には、分割されたデータ毎に上記の判定が行われるため、1つのファイルのデータ量が多くなればなるほどコンピュータに演算処理の負荷がかかり、パフォーマンスや信頼性の低下を招くおそれがある。
【0008】
第2に、読み書きの禁止がハードウェア制御によって実現されているため、制御の対象外となっているハードウェアに対する読み書きが行われてしまうおそれがあるという点である。この発明では、ファイルシステムへのIO処理をフックするドライバによって書き込み禁止等の制御を行うこととしているが(特許文献1の段落0013参照)、ドライバはハードウェアを制御するものであるため、書き込みを禁止する対象はハードウェアに依存することとなり、制御の対象外であるハードウェア(例えば、USBメモリ等の外部記憶装置)に対する読み書きが実行されてしまうおそれが生じる。
【0009】
本発明は、このような課題に対応するためになされたものであり、コンピュータの演算処理に過度な負荷をかけることなく、かつハードウェアに依存することなく読み書きを制御することが可能な、ファイルを持ち出しや改ざん等の不正行為から保護するためのファイルに対する読み書きの操作の制御を実現するファイル制御プログラム、ファイル制御装置及びファイル制御方法を提供することを目的とするものである。
【課題を解決するための手段】
【0010】
このような課題を解決する本発明は、ファイルに対する読み書きの操作を制御するためのファイル制御プログラムであって、コンピュータに、アプリケーションプログラムから要求された読み書きの対象となるファイルを特定する命令を検出するファイル特定命令検出ステップと、前記ファイル特定命令検出ステップで検出された命令により特定されるファイルが、前記コンピュータの揮発性メモリに記憶されたファイルであるかを判断するファイル記憶領域判断ステップと、前記ファイル記憶領域判断ステップでファイルリストに含まれると判断された場合には、前記コンピュータのオペレーティングシステム、又は前記オペレーティングシステムのアプリケーションプログラムインターフェースに、前記揮発性メモリに記憶されたファイルに対する読み書きに用いるためのファイルディスクリプタの生成を要求する第1のファイルディスクリプタ要求ステップと、前記ファイル記憶領域判断ステップでファイルリストに含まれないと判断された場合には、前記オペレーティングシステム、又は前記オペレーティングシステムのアプリケーションプログラムインターフェースに、前記ファイル特定命令検出ステップで検出された命令により特定されるファイルを前記揮発性メモリにコピーすることを要求するコピー要求ステップと、前記コピー要求ステップで要求したファイルが前記揮発性メモリにコピーされると、前記オペレーティングシステム、又は前記オペレーティングシステムのアプリケーションプログラムインターフェースに、前記揮発性メモリにコピーされたファイルに対する読み書きに用いるためのファイルディスクリプタの生成を要求する第2のファイルディスクリプタ要求ステップと、前記アプリケーションプログラムから要求された読み書きの対象となるファイルを特定する命令に対する戻り値として、前記第1のファイルディスクリプタ要求ステップ、又は前記第2のファイルディスクリプタ要求ステップでのファイルディスクリプタの生成要求に対して前記オペレーティングシステムが生成したファイルディスクリプタを返すファイルディスクリプタ応答ステップと、に実行させることを特徴とするファイル制御プログラムである。
【0011】
本発明では、ファイルに対する読み書きの命令を制御するのではなく、読み書きの命令において指定されるファイルディスクリプタを生成するための読み書きの対象となるファイルを特定する命令(openやcreate等)を制御する。ファイルを特定する命令を受け付けた際には、必ず揮発性メモリに記憶されたファイルに対してファイルディスクリプタを生成してアプリケーションに返すよう制御することによって、その後にファイルディスクリプタを指定して実行される読み書きの対象を、揮発性メモリに記憶されたファイルのみに制限している。
【0012】
揮発性メモリに記憶されたデータはコンピュータの電源を落とすと消去されるので、二次記憶装置に記憶されたファイルに不正な書き込みが行われてファイルが改ざんされることや、二次記憶装置にファイルが書き込まれて不正に持ち出されることを防止するのに有効であるとともに、ファイルを特定する命令に対して揮発性メモリに記憶されたファイルのファイルディスクリプタを返すことによって、ファイルの読み書きの命令(readやwrite等)に対しては制御を行う必要がないので、1つのファイルに対する制御のための処理が1回で済み、演算処理を効率化するのに効果的である。また、ハードウェア(二次記憶装置)への書き込み処理をドライバで制御するものではないため、書き込みを禁止する対象をハードウェアに依存することなく、コンピュータから読み書きできるどの二次記憶装置に対しても制御が可能になる。
【0013】
また、本発明は、前記コンピュータに、前記コピー要求ステップで要求したファイルが前記揮発性メモリにコピーされると、前記ファイル特定命令検出ステップで検出された命令により特定されるファイルの識別情報と、前記揮発性メモリにコピーされたファイルの識別情報を関連付けて、前記揮発性メモリにファイルリストとして記憶させるファイルリスト書込ステップを実行させ、前記ファイル記憶領域判断ステップでは、前記ファイル特定命令検出ステップで検出された命令により特定されるファイルが前記ファイルリストに含まれるかによって、前記コンピュータの揮発性メモリに記憶されたファイルであるかを判断することを特徴とすることもできる。
【0014】
このように構成すると、二次記憶装置等の元の保存場所から揮発性メモリにコピーが生成されたファイルのファイルリストが記憶されるため、以後の処理において、二次記憶装置等に記憶されたファイルを読み書きの対象として特定する命令を受け付けた際に、揮発性メモリにコピーが生成されているかどうかを速やかに判断することができる。
【0015】
さらに、本発明は、前記ファイル特定命令検出ステップで検出された命令により特定されるファイルは、前記揮発性メモリ、又は不揮発性の二次記憶装置に記憶されたファイルであり、前記コピー要求ステップでは、前記二次記憶装置から読み出したファイルの前記揮発性メモリへのコピーを要求し、前記二次記憶装置には、前記コンピュータ内にある補助記憶装置、前記コンピュータに接続された外部記憶装置、前記コンピュータとネットワークを通じて接続されたコンピュータ内にある補助記憶装置が含まれることを特徴としてもよい。
【0016】
このように構成すると、コンピュータのハードディスク、USBメモリ等の外部記憶装置、ネットワークで接続されたファイルサーバのハードディスク等に記憶されたファイルを、制御の対象とすることができる。
【0017】
さらに、本発明は、前記コンピュータに、前記ファイル特定命令検出ステップで検出された命令により特定されるファイルが、不揮発性の二次記憶装置においてあらかじめ定められた記憶領域に記憶されたファイルかを判断する記憶領域判断ステップと、前記記憶領域判断ステップであらかじめ定められた記憶領域に記憶されたファイルと判断された場合には、前記オペレーティングシステム、又は前記オペレーティングシステムのアプリケーションプログラムインターフェースに、前記記憶領域に記憶されたファイルに対する読み書きに用いるためのファイルディスクリプタの生成を要求する第3のファイルディスクリプタ要求ステップと、前記アプリケーションプログラムから要求された読み書きの対象となるファイルを特定する命令に対する戻り値として、前記第3のファイルディスクリプタ要求ステップでのファイルディスクリプタの生成要求に対して前記オペレーティングシステムが生成したファイルディスクリプタを返すステップと、を実行させ、前記記憶領域判断ステップであらかじめ定められた記憶領域に記憶されたファイルと判断された場合には、前記ファイル記憶領域判断ステップを実行しない、又は、前記ファイル記憶領域判断ステップを実行してファイルリストに含まれないと判断された場合であっても、前記コピー要求ステップを実行しないことを特徴としてもよい。
【0018】
このように構成すると、二次記憶装置に記憶された全てのファイルを制御の対象とするのではなく、一部のファイルについては不揮発性メモリではなく二次記憶装置に保存された元のファイルへの読み書きを可能にし、持ち出しや改ざん禁止の対象から除外することができる。
【0019】
本発明は、本発明にかかるファイル制御プログラムを備えたファイル制御装置として特定することもできる。
【0020】
本発明にかかるファイル制御装置は、ファイルに対する読み書きの操作を制御するためのファイル制御装置であって、アプリケーションプログラムから要求された読み書きの対象となるファイルを特定する命令を検出するファイル特定命令検出手段と、前記ファイル特定命令検出手段が検出した命令により特定されるファイルが、前記コンピュータの揮発性メモリに記憶されたファイルであるかを判断するファイル記憶領域判断手段と、前記ファイル記憶領域判断手段においてファイルリストに含まれると判断された場合には、前記コンピュータのオペレーティングシステム、又は前記オペレーティングシステムのアプリケーションプログラムインターフェースに、前記揮発性メモリに記憶されたファイルに対する読み書きに用いるためのファイルディスクリプタの生成を要求する第1のファイルディスクリプタ要求手段と、前記ファイル記憶領域判断手段においてファイルリストに含まれないと判断された場合には、前記オペレーティングシステム、又は前記オペレーティングシステムのアプリケーションプログラムインターフェースに、前記ファイル特定命令検出ステップで検出された命令により特定されるファイルを前記揮発性メモリにコピーすることを要求するコピー要求手段と、前記コピー要求手段が要求したファイルが前記揮発性メモリにコピーされると、前記オペレーティングシステム、又は前記オペレーティングシステムのアプリケーションプログラムインターフェースに、前記揮発性メモリにコピーされたファイルに対する読み書きに用いるためのファイルディスクリプタの生成を要求する第2のファイルディスクリプタ要求手段と、前記アプリケーションプログラムから要求された読み書きの対象となるファイルを特定する命令に対する戻り値として、前記第1のファイルディスクリプタ要求手段、又は前記第2のファイルディスクリプタ要求手段によるファイルディスクリプタの生成要求に対して前記オペレーティングシステムが生成したファイルディスクリプタを返すファイルディスクリプタ応答手段と、を備えることを特徴とするファイル制御装置である。
【0021】
本発明は、本発明にかかるファイル制御プログラムにより実行されるファイル制御方法として特定することもできる。
【0022】
本発明にかかるファイル制御方法は、ファイルに対する読み書きの操作を制御するためのファイル制御方法であって、コンピュータが、アプリケーションプログラムから要求された読み書きの対象となるファイルを特定する命令を検出するファイル特定命令検出ステップと、前記コンピュータが、前記ファイル特定命令検出ステップで検出された命令により特定されるファイルが、前記コンピュータの揮発性メモリに記憶されたファイルであるかを判断するファイル記憶領域判断ステップと、前記コンピュータが、前記ファイル記憶領域判断ステップでファイルリストに含まれると判断された場合には、前記コンピュータのオペレーティングシステム、又は前記オペレーティングシステムのアプリケーションプログラムインターフェースに、前記揮発性メモリに記憶されたファイルに対する読み書きに用いるためのファイルディスクリプタの生成を要求する第1のファイルディスクリプタ要求ステップと、前記コンピュータが、前記ファイル記憶領域判断ステップでファイルリストに含まれないと判断された場合には、前記オペレーティングシステム、又は前記オペレーティングシステムのアプリケーションプログラムインターフェースに、前記ファイル特定命令検出ステップで検出された命令により特定されるファイルを前記揮発性メモリにコピーすることを要求するコピー要求ステップと、前記コンピュータが、前記コピー要求ステップで要求したファイルが前記揮発性メモリにコピーされると、前記オペレーティングシステム、又は前記オペレーティングシステムのアプリケーションプログラムインターフェースに、前記揮発性メモリにコピーされたファイルに対する読み書きに用いるためのファイルディスクリプタの生成を要求する第2のファイルディスクリプタ要求ステップと、前記コンピュータが、前記アプリケーションプログラムから要求された読み書きの対象となるファイルを特定する命令に対する戻り値として、前記第1のファイルディスクリプタ要求ステップ、又は前記第2のファイルディスクリプタ要求ステップでのファイルディスクリプタの生成要求に対して前記オペレーティングシステムが生成したファイルディスクリプタを返すファイルディスクリプタ応答ステップと、を有することを特徴とするファイル制御方法である。
【発明の効果】
【0023】
本発明によって、コンピュータの演算処理に過度な負荷をかけることなく、二次記憶装置に記憶されたファイルに対する読み書きを制御し、持ち出しや改ざん等の不正行為からファイルを保護することが可能になる。また、ドライバにおいて二次記憶装置への読み書きを制御するものではないため、ハードウェアに依存することなく、コンピュータから読み書きが可能な全てのファイルを制御対象とすることができる。
【図面の簡単な説明】
【0024】
【図1】本発明をスタンドアローンのコンピュータに用いる実施形態の概要を示す図である。
【図2】本発明をファイルサーバとネットワークを介して接続されたコンピュータに用いる実施形態の概要を示す図である。
【図3】本発明にかかるファイル制御装置の構成を示すブロック図である。
【図4】読み書きの対象となるファイルを特定する流れを示す図である。
【図5】ファイルへの読み書きの流れを示す図である。
【図6】本発明において、読み書きの対象となるファイル(揮発性メモリにコピーされている場合)を特定する命令を制御する流れを示す図である。
【図7】本発明において、読み書きの対象となるファイル(揮発性メモリにコピーされていない場合)を特定する命令を制御する流れを示す第1の図である。
【図8】本発明において、読み書きの対象となるファイル(揮発性メモリにコピーされていない場合)を特定する命令を制御する流れを示す第2の図である。
【図9】本発明において、ファイルを読み込む流れを示す図である。
【図10】本発明において、ファイルを書き込む流れを示す図である。
【図11】本発明にかかるファイル制御プログラムの処理フローを示すフローチャートである。
【発明を実施するための形態】
【0025】
本発明を実施するための形態について、図面を用いて以下に詳細に説明する。尚、以下の説明は本発明の実施形態の一例を示したものであって、コンピュータやプログラムの構成、保護対象となるファイルが記憶される二次記憶装置の種別等については、以下に説明する実施形態に限定されるものではない。
【0026】
図1、図2は、本発明の実施形態の概要を示している。これらの図に示したように、本発明は、ユーザが操作するコンピュータのHDD等に記憶されたファイルや、ユーザが操作するコンピュータとネットワークを介して接続されたファイルサーバ等に記憶されたファイルのいずれも保護対象とすることが可能である。
【0027】
図1は、本発明をスタンドアローンのコンピュータに用いる実施形態の概要を示している。この実施形態では、コンピュータのHDDに記憶されたファイルを保護対象としたい場合に、不揮発性のHDDに記憶された所定のファイルを指定してユーザが読み書きを行おうとすると、本発明に固有のAPI(アプリケーションプログラムインターフェース)の機能によって、読み書きの対象となるファイルが揮発性メモリであるRAMにコピーされたファイルに置き換えられる。そのため、HDDに記憶された保護対象となるファイルには書き込みが行われず、ファイルの改ざん等の不正行為を防止することができる。
【0028】
また、ここで読み書きを行ったファイルを他の二次記憶装置、例えばUSBメモリ等の外部記憶装置に書き出そうとした場合にも、本発明に固有のAPIの機能によって、ファイルを書き出す領域が揮発性メモリであるRAMに置き換えられるため、USBメモリ等へのファイルの書き出しは行われず、ファイルの持ち出し等の不正行為を防止することができる。
【0029】
尚、本発明では、アプリケーションプログラムによって行われる読み書きの対象となるファイルを特定する命令に対して、揮発性メモリに記憶されたファイル以外が指定されている場合には揮発性メモリへのコピーを実行し、読み書きの対象となるファイルを揮発性メモリにコピーされたファイルに置き換えるので、原則として揮発性メモリ以外の不揮発性の二次記憶装置に記憶されたファイルであれば、全てのファイルを保護対象にすることができる。そのため、上記の実施例とは逆に、USBメモリに記憶されたファイルを保護したい場合にも、USBメモリに記憶されたファイルに対する読み書きについてもRAMにコピーされたファイルに対する読み書きに置き換えられるため、USBメモリに記憶されたファイルに対する改ざんや、HDD等へ書き出すことによる持ち出し等の不正行為にも有効である。
【0030】
図2は、本発明をファイルサーバとネットワークを介して接続されたコンピュータに用いる実施形態の概要を示している。この実施形態では、コンピュータとインターネットやLAN等のネットワークを介して接続されたファイルサーバのHDD等に記憶されたファイルを保護対象としており、ファイルサーバのHDD等に記憶された所定のファイルを指定してユーザが読み書きを行おうとすると、本発明に固有のAPIの機能によって読み書きの対象となるファイルが揮発性メモリであるRAMにコピーされたファイルに置き換えられるため、ファイルサーバのHDD等に記憶された保護対象となるファイルには書き込みが行われず、ファイルサーバ側にあるファイルの改ざん等の不正行為を防止することができる。
【0031】
また、ここで読み書きを行ったファイルを他の二次記憶装置、例えば、ユーザが操作するコンピュータのHDDやUSBメモリ等の外部記憶装置に書き出そうとした場合にも、本発明に固有のAPIの機能によって、ファイルを書き出す領域が揮発性メモリであるRAMに置き換えられるため、HDDやUSBメモリ等へのファイルの書き出しは行われず、ファイルの持ち出し等の不正行為を防止することができる。
【0032】
この実施形態においても先の実施形態と同様に、アプリケーションプログラムによって行われる読み書きの対象となるファイルを特定する命令に対して、揮発性メモリに記憶されたファイル以外が指定されている場合には揮発性メモリへのコピーを実行し、読み書きの対象となるファイルを揮発性メモリにコピーされたファイルに置き換えるので、ファイルサーバのHDD等に記憶されたファイルだけでなく、ユーザが操作するコンピュータのHDD等に記憶されたファイルもあわせて保護対象にすることができる。
【0033】
以上に説明したように、本発明では、例えば、個人情報が含まれている重要なファイルがコンピュータのHDDやファイルサーバに記憶されている場合に、ユーザがこのファイルにアクセスして読み書きを行おうとしても、読み書きをしたファイルは揮発性メモリであるRAMのみに記憶され、コンピュータの電源を落とすと消去されてしまうことになるので、ファイルの改ざんや持ち出しなどの不正行為を防止するのに効果的である。
【0034】
図3は、本発明にかかるファイル制御装置(本発明にかかるファイル制御プログラムを備えたコンピュータ)の構成を示している。本発明にかかるファイル制御装置を構成するコンピュータ10には、CPU11、主記憶装置(メインメモリ)12、補助記憶装置(HDD)13が備えられている。また、コンピュータ10はキーボードやマウス等の入力装置15、ディスプレイやプリンタ等の出力装置16と接続され、USBメモリ等の外部記憶装置14を接続することもできる。
【0035】
主記憶装置(メインメモリ)12は、RAM121とROM122を含んで構成されている。RAM121は揮発性メモリで、プログラムを読み出してCPU11が演算処理を行う際のワーキングエリアとして機能する。ROM122は読み出し専用のメモリで、入力制御や出力制御などのハードウェア制御のための基本的な各種プログラムが記憶されている。
【0036】
補助記憶装置(HDD)13には、OS(オペレーティングシステム)131、アプリケーションプログラム132、ドライバ133、API(アプリケーションプログラムインターフェース)134等のプログラムや、本発明において保護の対象となるファイル135等が記憶されている。また、本発明において保護の対象となるファイル141は、外部記憶装置14に記憶されていてもよい。あるいは、本発明において保護の対象となるファイル21は、コンピュータ10とインターネットやLAN等のネットワークを介して接続されたファイルサーバ20(ここではファイルサーバ20に備えられた揮発性メモリではなく、補助記憶措置等の不揮発性の二次記憶装置に記憶されたファイル21を対象にするものとする)に記憶されていてもよい。
【0037】
尚、補助記憶装置(HDD)13に記憶されたプログラムによって所定の処理を実行する際には、主記憶装置(メインメモリ)12のROM122に記憶された入力制御や出力制御などのハードウェア制御のための基本的な各種プログラムを起動し、RAM121をプログラムのワークエリアとして機能させながら、CPU11によって演算処理が行われることになる。
【0038】
すなわち、図3の構成においてコンピュータ10が起動されると、OS131がRAM121に読み出されて、様々な処理が実行可能な状態となる。さらに、文書ファイル、表計算ファイルなどのファイルを読み書きしたい場合には、各々のファイルに対応するアプリケーションプログラム132がRAM121に読み出されてプログラムが起動されることによって、補助記憶装置13に記憶されたファイル135、外部記憶装置14に記憶されたファイル141、ファイルサーバ20に記憶されたファイル21等に対する読み書きが可能になる。アプリケーションプログラム132とOS131のデータの受け渡しの際には、API134がRAM121に読み出されて、アプリケーションプログラム132からOS131への所定の処理の要求等の処理が実行される。補助記憶装置13に記憶されたファイル135等に所定の操作を実行する際には、各々のハードウェアに対応するドライバ133がRAM121に読み出されて、ハードウェアに対する所定の処理が実行される。
【0039】
このような構成を前提にして、本発明にかかるファイル制御プログラムによってファイルの保護を実現するための動作について、図6〜図10と、図11のフローチャートを用いて説明する。尚、図6〜図10を用いて説明する、アプリケーションプログラム、API、OS(オペレーティングシステム)、ドライバによる動作は、それぞれアプリケーションプログラム132、OS131、API134、ドライバ133によって実行されるものである。
【0040】
本発明の動作について説明する前に、アプリケーションプログラムによって読み書きの対象となるファイルを特定し、ファイルへの読み書きを実行する動作について、通常の処理の流れを図4、図5を用いて説明する。
【0041】
図4は、アプリケーションプログラムによって読み書きの対象となるファイルを特定する動作の通常の流れを示したものである。コンピュータでOS、アプリケーションプログラムが起動された状態において、ユーザがアプリケーションプログラムによってあるファイルを指定して読み書きを行いたい場合には、ファイルの読み込みの命令(read(ファイルパス)等)やファイルの書き込みの命令(write(ファイルパス)等)の前に、読み書きの対象となるファイルを特定する命令(open(ファイルパス)、create(ファイルパス)等)が行われる。
【0042】
この命令には、対象となるファイルのファイルパス(ファイルを識別できる情報であればよいが、一般に記憶装置に記憶されたファイルは、ファイルが記憶された領域を示すパスとファイル名によって識別される)が指定されていて(図4の例であれば、補助記憶装置であるDドライブに記憶されたファイルのファイルパスが指定される)、ファイルの特定に対応するAPIが呼び出されて、指定されたファイルに対するfd(ファイルディスクリプタ=ファイル記述子、ファイルハンドルも同じ)の生成をOSに要求する。OSはドライバを呼び出して指定されたファイルの所在を確認するとともに、以後の命令においてファイルを特定するために用いられるfdを生成する。ここで生成されたfdが、読み書きの対象となるファイルを特定する命令に対する戻り値として、APIからアプリケーションプログラムに返される。
【0043】
図5は、アプリケーションプログラムによってファイルの読み書きを実行する動作の通常の流れを示したものである。左側が読み込み、右側が書き込みの流れを示したものであるが、ファイルの読み込み(read等)、ファイルの書き込み(write等)のいずれの命令においても、読み書きの対象となるファイルについてはファイルパスが指定されるのではなく、先にAPIから返されたfdを各々の命令に指定することによって、対象となるファイルが特定される。
【0044】
すなわち、OSでは、先に読み書きの対象となるファイルを特定する命令を処理した際に、対象となるファイルのファイルパスと、このファイルに対して生成したfdの関連付けを保持しておき、読み込みの際にはread(fd)等の命令に指定されたfdに対応するファイルパスから特定されるファイルを、アプリケーションプログラムに読み込ませる。書き込みの際にはwrite(fd)等の命令に指定されたfdに対応するファイルパスから特定されるファイルに対して、アプリケーションプログラムに入力したデータ等を書き込ませる。
【0045】
尚、アプリケーションプログラムによってファイルの読み書きを実行する場合には、1回の命令によって処理できるデータ量が制限されていることが多いため、1つのファイルに対する読み書きを実行する場合には、fdを指定した読み込みや書き込みの命令が複数回に分けて行われることになるのが通常である。
【0046】
このように、ファイルに対する読み書きの命令は、読み書きの対象となるファイルを特定する命令によって生成されたfdを指定して実行されるが、本発明にかかるファイル制御プログラムでは、以下に説明するように、アプリケーションプログラムによって読み書きの対象となるファイルを特定する段階においてファイルを制御することによって、ファイルへの読み書きを実行する際にファイルが保護されることとなっている。
【0047】
図6〜図8は、本発明において、読み書きの対象となるファイルを特定する命令を制御する流れを示したもので、その処理フローをまとめたものが、図11のフローチャートである。
【0048】
コンピュータのユーザは、文書作成、表計算などのアプリケーションプログラムを起動して、読み書きを行いたいファイルを指定して「ファイルを開く」、「ファイルを保存する」等の操作を行う。このような操作を受け付けると、アプリケーションプログラムは対応するAPIを呼び出して、APIからOSに対して必要な処理が要求される。
【0049】
ここで、アプリケーションプログラムからファイルに対する読み込みや書き込みの命令が行われる前には、先に説明したとおり、アプリケーションプログラムからAPIに対して、読み書きの対象となるファイルを特定する命令(open(ファイルパス)、create(ファイルパス)等)が行われる(図11のS1)。図6〜図8に示した例では、補助記憶装置のDドライブに記憶されたファイルのファイルパスを指定して、読み書きの対象となるファイルを特定する命令が行われている。
【0050】
通常は、この命令がそのままAPIからOSに引き渡されるが、本発明において用いられるAPIでは、ここで命令に指定されたファイルが揮発性メモリである主記憶装置の揮発性メモリ(RAM)に記憶されたファイルか、それとも不揮発性の二次記憶装置(補助記憶装置、外部記憶装置、ファイルサーバの補助記憶装置等を含む)に記憶されたファイルかを判断する。尚、以下において、揮発性メモリには主記憶装置のRAMが用いられる例について説明するが、本発明における揮発性メモリは主記憶装置のRAMに限定されるものではなく、電源が落とされた後にデータが消去される揮発性のメモリであれば、主記憶装置以外を構成するものであってもよい。
【0051】
この判断を行うための方法は特に限定されるものではないが、例えば、主記憶装置の揮発性メモリに記憶されたファイルを取扱リストとして主記憶装置の揮発性メモリに記憶させておいて、この取扱リストを参照し(図11のS2)、読み書きの対象となるファイルを特定する命令に指定されたファイルが取扱リストに含まれているかどうかを確認することによって(図11のS3)、指定されたファイルが揮発性メモリに記憶されたものかどうかを判断することができる。また、読み書きの対象となるファイルを特定する命令に指定されたファイルパスからファイルの記憶されたドライブを特定し、そのドライブが主記憶装置の揮発性メモリ(この例ではRドライブ)に対応するものであるかどうかを判断することとしてもよい。
【0052】
ここで指定されたファイルが主記憶装置の揮発性メモリに記憶されていると判断された場合は、図6の例に示したように、APIはOSに対して、主記憶装置の揮発性メモリに記憶されたファイル(Dドライブのファイル)に対してfdを生成するように要求する(図11のS7)。この要求を受けたOSは、対応するドライバを読み出し、主記憶装置の揮発性メモリにおいて指定されたファイルを確認して、このファイルを特定するfdを生成する。APIは生成されたfdをOSから受け取って(図11のS8)、アプリケーションプログラムに戻り値として生成されたfdを返す(図11のS9)。
【0053】
一方、指定されたファイルが主記憶装置の揮発性メモリに記憶されておらず、不揮発性の二次記憶装置に記憶されていると判断された場合は、図7の例に示したように(この例では指定されたファイルがDドライブの補助記憶装置に記憶されているとする)、APIはOSに対して、指定されたファイルを主記憶装置の揮発性メモリにコピーするよう要求する(図11のS4)。
【0054】
この要求を受けたOSは、ファイルを補助記憶装置(Dドライブ)から主記憶装置の揮発性メモリ(Rドライブ)にコピーする処理を実行する。APIはコピーされたファイルのファイルパス(Rドライブのファイルパス)をOSから受け取って(図11のS5)、揮発性メモリの取扱リストにファイルを特定する命令に指定されたファイルのファイルパス(Dドライブのファイルパス)と関連付けて記憶させる(図11のS6)。
【0055】
続いて、図8の例に示したように、APIはOSに対して、主記憶装置の揮発性メモリにコピーされたファイル(Rドライブのファイル)に対してfdを生成するように要求する(図11のS7)。この要求を受けたOSは、対応するドライバを読み出し、主記憶装置の揮発性メモリにおいて指定されたファイルを確認して、このファイルを特定するfdを生成する。APIは生成されたfdをOSから受け取って(図11のS8)、アプリケーションプログラムに戻り値として生成されたfdを返す(図11のS9)。
【0056】
以上に説明した動作によって、ファイルを特定する命令に指定されたファイルが主記憶装置の揮発性メモリに記憶されていると判断された場合、ファイルを特定する命令に指定されたファイルが主記憶装置の揮発性メモリに記憶されておらず、不揮発性の二次記憶装置に記憶されていると判断された場合のいずれにおいても、ファイルを特定する命令を行ったアプリケーションプログラムには、必ず揮発性メモリに記憶されたファイルに対して生成されたfdが返されることになる。ファイルに対する読み込みや書き込みの命令は、このfdを指定して行われることになるので、アプリケーションプログラムによって実行されるファイルに対する読み書きは、揮発性メモリに記憶されたファイルに対してしか行われない。
【0057】
すなわち、読み込みの命令(read(fd)等)であれば、図9に例示したように、必ず揮発性メモリに記憶されたファイルのfdが指定されることになるので、読み出されるファイルは揮発性メモリに記憶されたファイルとなる。また、書き込みの命令(write(fd)等)であれば、図10に例示したように、必ず主記憶装置の揮発性メモリに記憶されたファイルのfdが指定されることになるので、書き込みの対象となるファイルは主記憶装置の揮発性メモリに記憶されたファイルとなり、補助記憶装置に記憶されたファイルに書き込みが行われることはなく、書き込んだファイルは電源を落とすと自動的に消去されることになる。
【0058】
このことは、主記憶装置の揮発性メモリに記憶されたファイルを、補助記憶装置等の二次記憶装置に書き出そうとした場合も同様である。主記憶装置の揮発性メモリ(Rドライブ)から補助記憶装置(Dドライブ)へのコピーを実行しようとすると、このコピーを実行する命令の前にも書き込みを行うファイルを特定する命令が行われ、既存のファイルへの上書きではなく新規にファイルを作成する場合であれば、作成するファイル(0バイトのファイル)に対してfdが生成される。このときに、図6に示したのと同様の動作によって、新規のファイルを主記憶装置の揮発性メモリ(Rドライブ)上のファイルとしてfdが生成されるので、コピーするファイルも主記憶装置の揮発性メモリ(Rドライブ)にしか書き込むことができない。
【0059】
以上のように、本発明によると、補助記憶装置やUSBメモリ、ネットワークで接続されたファイルサーバの補助記憶装置等の二次記憶装置に記憶されたファイルに対して、ファイルを上書きすることによる改ざんや、ファイルを他の二次記憶装置に書き出すことによる持ち出しが不可能となり、個人情報等の重要な情報が記録されたファイルの保護に好適である。
【0060】
また、先に説明したとおり、ファイルを特定する命令の後に行われるファイルの読み込みや書き込みの命令は、1つのファイルに対して複数回に分けて行われるのが通常であるが、従来技術では、この読み込みや書き込みの命令に対して二次記憶装置への読み書きを制御するところ、本発明ではファイルを特定する命令に対するfd生成の段階において、読み書きの対象となるfdを揮発性メモリ上のファイルのみに制限することによって二次記憶装置への読み書きを制御する。そのため、読み書きの命令の度に制御に必要な判断を行うことを要しなくなるため、コンピュータにかかる負荷を軽減し、パフォーマンスを向上させるのに有効である。
【0061】
さらに、本発明では、APIにおいてfdの生成を制御することで、二次記憶装置への読み書きを制御するので、各々のハードウェアに対応するドライバ毎に設定を行う必要がない。そのため、ハードウェアに依存することなく読み書きを制御できるという点でも、有効なものである。
【0062】
尚、本発明では、上記のとおり二次記憶装置への読み書きの制御をAPIにおいて実行することとしているが、このような機能を備えた本発明に固有のAPIを既存のAPIと置き換えることとしてもよいし、図4、図5で説明したような既存のAPIを利用しながら、本発明に固有のAPIがアプリケーションからのファイルを特定する命令を検出し、それぞれ既存のAPIを介してOSにこれまで説明した要求を行うことによって、同様の機能を実現することとしてもよい。
【0063】
後者の場合、図6や図8の流れでは、ファイルを特定する命令に指定されたファイルが主記憶装置の揮発性メモリに記憶されていることが確認されれば、既存のAPIを呼び出してOSに対してfdの生成を要求させればよい。図7の流れでは、ファイルのコピーをOSに要求するための既存のAPIを呼び出して、OSに対して指定されたファイルを主記憶装置の揮発性メモリにコピーするよう要求させればよい。
【0064】
また、これまでに説明した方法によると、補助記憶装置等の二次記憶装置に記憶された全てのファイルが保護対象となるが、保護対象を二次記憶装置に記憶された一部のファイルに制限することも可能である。この場合、保護対象から除外されるファイルの記憶領域をコンピュータにあらかじめ記憶させておき、ファイルを特定する命令に指定されたファイルが主記憶装置の揮発性メモリに記憶されていることが確認する際に、あわせて指定されたファイルが保護対象から除外されるファイルの記憶領域に記憶されたものでないかを確認する。
【0065】
ここで、指定されたファイルが主記憶装置の揮発性メモリに記憶されておらず、不揮発性の二次記憶装置に記憶されていると判断されても、保護対象から除外されるファイルの記憶領域に記憶されたものである場合には、ファイルを主記憶装置の揮発性メモリにコピーする処理を実行することなく、そのまま二次記憶装置に記憶されたファイルに対するfdを生成するようにOSに要求することとすれば、このファイルに対しては二次記憶装置に記憶されたものであっても読み書きが可能になるので、保護対象から除外することができる。
【符号の説明】
【0066】
10 コンピュータ
11 CPU
12 主記憶装置(メインメモリ)
13 補助記憶装置(HDD)
131 OS
132 アプリケーションプログラム
133 ドライバ
134 API
135 ファイル
14 外部記憶装置
141 ファイル
15 入力装置
16 出力装置
20 ファイルサーバ
21 ファイル

【特許請求の範囲】
【請求項1】
ファイルに対する読み書きの操作を制御するためのファイル制御プログラムであって、コンピュータに、
アプリケーションプログラムから要求された読み書きの対象となるファイルを特定する命令を検出するファイル特定命令検出ステップと、
前記ファイル特定命令検出ステップで検出された命令により特定されるファイルが、前記コンピュータの揮発性メモリに記憶されたファイルであるかを判断するファイル記憶領域判断ステップと、
前記ファイル記憶領域判断ステップでファイルリストに含まれると判断された場合には、前記コンピュータのオペレーティングシステム、又は前記オペレーティングシステムのアプリケーションプログラムインターフェースに、前記揮発性メモリに記憶されたファイルに対する読み書きに用いるためのファイルディスクリプタの生成を要求する第1のファイルディスクリプタ要求ステップと、
前記ファイル記憶領域判断ステップでファイルリストに含まれないと判断された場合には、前記オペレーティングシステム、又は前記オペレーティングシステムのアプリケーションプログラムインターフェースに、前記ファイル特定命令検出ステップで検出された命令により特定されるファイルを前記揮発性メモリにコピーすることを要求するコピー要求ステップと、
前記コピー要求ステップで要求したファイルが前記揮発性メモリにコピーされると、前記オペレーティングシステム、又は前記オペレーティングシステムのアプリケーションプログラムインターフェースに、前記揮発性メモリにコピーされたファイルに対する読み書きに用いるためのファイルディスクリプタの生成を要求する第2のファイルディスクリプタ要求ステップと、
前記アプリケーションプログラムから要求された読み書きの対象となるファイルを特定する命令に対する戻り値として、前記第1のファイルディスクリプタ要求ステップ、又は前記第2のファイルディスクリプタ要求ステップでのファイルディスクリプタの生成要求に対して前記オペレーティングシステムが生成したファイルディスクリプタを返すファイルディスクリプタ応答ステップと、
を実行させることを特徴とするファイル制御プログラム。
【請求項2】
前記コンピュータに、
前記コピー要求ステップで要求したファイルが前記揮発性メモリにコピーされると、前記ファイル特定命令検出ステップで検出された命令により特定されるファイルの識別情報と、前記揮発性メモリにコピーされたファイルの識別情報を関連付けて、前記揮発性メモリにファイルリストとして記憶させるファイルリスト書込ステップを実行させ、
前記ファイル記憶領域判断ステップでは、前記ファイル特定命令検出ステップで検出された命令により特定されるファイルが前記ファイルリストに含まれるかによって、前記コンピュータの揮発性メモリに記憶されたファイルであるかを判断すること
を特徴とする請求項1記載のファイル制御プログラム。
【請求項3】
前記ファイル特定命令検出ステップで検出された命令により特定されるファイルは、前記揮発性メモリ、又は不揮発性の二次記憶装置に記憶されたファイルであり、
前記コピー要求ステップでは、前記二次記憶装置から読み出したファイルの前記揮発性メモリへのコピーを要求し、
前記二次記憶装置には、前記コンピュータ内にある補助記憶装置、前記コンピュータに接続された外部記憶装置、前記コンピュータとネットワークを通じて接続されたコンピュータ内にある補助記憶装置が含まれること
を特徴とする請求項1又は2記載のファイル制御プログラム。
【請求項4】
前記コンピュータに、
前記ファイル特定命令検出ステップで検出された命令により特定されるファイルが、不揮発性の二次記憶装置においてあらかじめ定められた記憶領域に記憶されたファイルかを判断する記憶領域判断ステップと、
前記記憶領域判断ステップであらかじめ定められた記憶領域に記憶されたファイルと判断された場合には、前記オペレーティングシステム、又は前記オペレーティングシステムのアプリケーションプログラムインターフェースに、前記記憶領域に記憶されたファイルに対する読み書きに用いるためのファイルディスクリプタの生成を要求する第3のファイルディスクリプタ要求ステップと、
前記アプリケーションプログラムから要求された読み書きの対象となるファイルを特定する命令に対する戻り値として、前記第3のファイルディスクリプタ要求ステップでのファイルディスクリプタの生成要求に対して前記オペレーティングシステムが生成したファイルディスクリプタを返すステップと、を実行させ、
前記記憶領域判断ステップであらかじめ定められた記憶領域に記憶されたファイルと判断された場合には、前記ファイル記憶領域判断ステップを実行しない、又は、前記ファイル記憶領域判断ステップを実行してファイルリストに含まれないと判断された場合であっても、前記コピー要求ステップを実行しないこと
を特徴とする請求項1乃至3いずれかに記載のファイル制御プログラム。
【請求項5】
ファイルに対する読み書きの操作を制御するためのファイル制御装置であって、
アプリケーションプログラムから要求された読み書きの対象となるファイルを特定する命令を検出するファイル特定命令検出手段と、
前記ファイル特定命令検出手段が検出した命令により特定されるファイルが、前記コンピュータの揮発性メモリに記憶されたファイルであるかを判断するファイル記憶領域判断手段と、
前記ファイル記憶領域判断手段においてファイルリストに含まれると判断された場合には、前記コンピュータのオペレーティングシステム、又は前記オペレーティングシステムのアプリケーションプログラムインターフェースに、前記揮発性メモリに記憶されたファイルに対する読み書きに用いるためのファイルディスクリプタの生成を要求する第1のファイルディスクリプタ要求手段と、
前記ファイル記憶領域判断手段においてファイルリストに含まれないと判断された場合には、前記オペレーティングシステム、又は前記オペレーティングシステムのアプリケーションプログラムインターフェースに、前記ファイル特定命令検出ステップで検出された命令により特定されるファイルを前記揮発性メモリにコピーすることを要求するコピー要求手段と、
前記コピー要求手段が要求したファイルが前記揮発性メモリにコピーされると、前記オペレーティングシステム、又は前記オペレーティングシステムのアプリケーションプログラムインターフェースに、前記揮発性メモリにコピーされたファイルに対する読み書きに用いるためのファイルディスクリプタの生成を要求する第2のファイルディスクリプタ要求手段と、
前記アプリケーションプログラムから要求された読み書きの対象となるファイルを特定する命令に対する戻り値として、前記第1のファイルディスクリプタ要求手段、又は前記第2のファイルディスクリプタ要求手段によるファイルディスクリプタの生成要求に対して前記オペレーティングシステムが生成したファイルディスクリプタを返すファイルディスクリプタ応答手段と、
を備えることを特徴とするファイル制御装置。
【請求項6】
ファイルに対する読み書きの操作を制御するためのファイル制御方法であって、
コンピュータが、アプリケーションプログラムから要求された読み書きの対象となるファイルを特定する命令を検出するファイル特定命令検出ステップと、
前記コンピュータが、前記ファイル特定命令検出ステップで検出された命令により特定されるファイルが、前記コンピュータの揮発性メモリに記憶されたファイルであるかを判断するファイル記憶領域判断ステップと、
前記コンピュータが、前記ファイル記憶領域判断ステップでファイルリストに含まれると判断された場合には、前記コンピュータのオペレーティングシステム、又は前記オペレーティングシステムのアプリケーションプログラムインターフェースに、前記揮発性メモリに記憶されたファイルに対する読み書きに用いるためのファイルディスクリプタの生成を要求する第1のファイルディスクリプタ要求ステップと、
前記コンピュータが、前記ファイル記憶領域判断ステップでファイルリストに含まれないと判断された場合には、前記オペレーティングシステム、又は前記オペレーティングシステムのアプリケーションプログラムインターフェースに、前記ファイル特定命令検出ステップで検出された命令により特定されるファイルを前記揮発性メモリにコピーすることを要求するコピー要求ステップと、
前記コンピュータが、前記コピー要求ステップで要求したファイルが前記揮発性メモリにコピーされると、前記オペレーティングシステム、又は前記オペレーティングシステムのアプリケーションプログラムインターフェースに、前記揮発性メモリにコピーされたファイルに対する読み書きに用いるためのファイルディスクリプタの生成を要求する第2のファイルディスクリプタ要求ステップと、
前記コンピュータが、前記アプリケーションプログラムから要求された読み書きの対象となるファイルを特定する命令に対する戻り値として、前記第1のファイルディスクリプタ要求ステップ、又は前記第2のファイルディスクリプタ要求ステップでのファイルディスクリプタの生成要求に対して前記オペレーティングシステムが生成したファイルディスクリプタを返すファイルディスクリプタ応答ステップと、
を有することを特徴とするファイル制御方法。

【図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