説明

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

【課題】非保護状態のファイルが意図に反して保護状態化されてしまうのを適切に回避すること
【解決手段】複数ファイルを操作可能なファイル操作プログラムの起動単位に関して、第一のファイルのオープンの要求を受け付ける手順と、受け付けた前記第一のファイルのオープンの要求に対して前記起動単位に関して保護状態ファイルがオープンされていない場合であって、前記第一のファイルの非保護状態ファイルは存在するときは前記第一のファイルの非保護状態ファイルをオープンし、前記起動単位に関して保護状態ファイルがオープンされている場合は、前記第一のファイルの保護状態ファイルをオープンするオープン手順とをコンピュータが実行する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ファイル管理方法、ファイル管理装置、及びファイル管理プログラムに関する。
【背景技術】
【0002】
従来、アプリケーションプログラムによって扱われるデータに含まれうる機密情報等の漏洩の防止を目的として、アプリケーションプログラムに関して保護状態と非保護状態との状態管理を行うことが検討されている(例えば、特許文献1)。
【0003】
すなわち、暗号化等によって保護されているファイル(以下、「保護状態ファイル」という。)を扱うプロセスは、保護状態とされる。一方、斯かる保護が行われていないファイル(以下、「非保護」ファイル)を扱うプロセスは、非保護状態とされる。保護状態のプロセスによるファイルへの書き込み時には、書き込み内容は暗号化等される。したがって、ユーザは、暗号化等の指示を行わずとも、書き込み内容は自動的に暗号化等され、保護される。
【0004】
他方において、一つのプロセスにおいて、複数のファイルを同時に編集可能なアプリケーションプログラムが有る。すなわち、一つのウィンドウ内に、複数のウィンドウを表示させ、各ウィンドウにはそれぞれ異なるファイルが表示されるようなアプリケーションプログラムである。
【0005】
斯かるアプリケーションプログラムに関して、保護状態ファイルと非保護状態ファイルとが混在して表示又は編集対象とされたプロセスは、保護状態とされるのが望ましい。保護状態ファイルへの書き込み内容が暗号化等されずに保存されてしまうことによる情報漏洩を防止することができるからである。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2010−55371号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、保護状態ファイルと非保護状態ファイルとが混在して表示又は編集対象とされている保護状態において、非保護状態ファイルへの書き込みが行われた場合、当該書き込み内容は、暗号化されて上書きされてしまう。その結果、当該非保護状態ファイルは、ユーザの意図に反して保護状態ファイルとされてしまう。ここで、非保護状態ファイルから保護状態ファイルにされてしまったファイルを、以下「ファイルA」という。
【0008】
このような事態は、ファイルAの利便性を損なうことになる。例えば、保護状態と非保護状態との管理が行われていないシステム環境において、ファイルAを開くことができなくなってしまう可能性がある。ファイルAは、暗号化されているからである。
【0009】
また、ファイルAが、アプリケーションプログラムの設定ファイルであったとする。すなわち、アプリケーションプログラムがアクセスするファイルは、ユーザによって直接的に操作対象とされるファイルに限られない。アプリケーションプログラムの振る舞いを規定等するための設定ファイルについても、アクセス対象とされる。
【0010】
一般的に、設定ファイルは、アプリケーションプログラムプロセスの起動時に読み込まれることが多い。そうすると、ファイルAが保護状態ファイルとなってしまうと、ファイルAが保護状態ファイルであることを予定していないアプリケーションプログラムが正常に起動されなくなってしまう可能性がある。また、アプリケーションプログラムの起動が可能である場合であっても、以降において当起動されるプロセスは、全て保護状態となってしまう。その結果、ファイルAを設定ファイルとして利用するアプリケーションプログラムは、非保護状態において利用することができなくなってしまうという問題がある。そうすると、非保護状態ファイルを作成することができない等、利便性が著しく低下してしまう。
【0011】
本発明は、上記の点に鑑みてなされたものであって、非保護状態のファイルが意図に反して保護状態化されてしまうのを適切に回避することのできるファイル管理方法、ファイル管理装置、及びファイル管理プログラムの提供を目的とする。
【課題を解決するための手段】
【0012】
そこで上記課題を解決するため、複数ファイルを操作可能なファイル操作プログラムの起動単位に関して、第一のファイルのオープンの要求を受け付ける手順と、受け付けた前記第一のファイルのオープンの要求に対して前記起動単位に関して保護状態ファイルがオープンされていない場合であって、前記第一のファイルの非保護状態ファイルは存在するときは前記第一のファイルの非保護状態ファイルをオープンし、前記起動単位に関して保護状態ファイルがオープンされている場合は、前記第一のファイルの保護状態ファイルをオープンするオープン手順とをコンピュータが実行する。
【発明の効果】
【0013】
非保護状態のファイルが意図に反して保護状態化されてしまうのを適切に回避することができる。
【図面の簡単な説明】
【0014】
【図1】本発明の実施の形態におけるファイル管理装置のハードウェア構成例を示す図である。
【図2】第一の実施の形態におけるファイル管理装置のソフトウェア構成例を示す図である。
【図3】ファイルのオープン処理の処理手順の一例を説明するためのフローチャートである。
【図4】ファイルへの書き込み処理の処理手順の一例を説明するためのフローチャートである。
【図5】ファイル管理装置における具体的な処理手順の第一の例を示すシーケンス図である。
【図6】ファイル管理装置における具体的な処理手順の第二の例を示すシーケンス図である。
【図7】ファイル管理装置における具体的な処理手順の第三の例を示すシーケンス図である。
【図8】第二の実施の形態におけるファイル管理装置のソフトウェア構成例を示す図である。
【発明を実施するための形態】
【0015】
以下、図面に基づいて本発明の実施の形態を説明する。図1は、本発明の実施の形態におけるファイル管理装置のハードウェア構成例を示す図である。図1のファイル管理装置10は、コンピュータの一例である。ファイル管理装置10は、それぞれバスBで相互に接続されているドライブ装置100と、補助記憶装置102と、メモリ装置103と、CPU104と、インタフェース装置105と、表示装置106と、入力装置107とを有する。
【0016】
ファイル管理装置10での処理を実現するプログラムは、CD−ROM等の記録媒体101によって提供される。プログラムを記録した記録媒体101がドライブ装置100にセットされると、プログラムが記録媒体101からドライブ装置100を介して補助記憶装置102にインストールされる。但し、プログラムのインストールは必ずしも記録媒体101より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置102は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【0017】
メモリ装置103は、プログラムの起動指示があった場合に、補助記憶装置102からプログラムを読み出して格納する。CPU104は、メモリ装置103に格納されたプログラムに従ってファイル管理装置10に係る機能を実現する。インタフェース装置105は、ネットワークに接続するためのインタフェースとして用いられる。表示装置106はプログラムによるGUI(Graphical User Interface)等を表示する。入力装置107はキーボード及びマウス等であり、様々な操作指示を入力させるために用いられる。
【0018】
図2は、第一の実施の形態におけるファイル管理装置のソフトウェア構成例を示す図である。
【0019】
同図において、ファイル管理装置10は、一以上のアプリケーション11及びファイルシステム12等を有する。
【0020】
アプリケーション11は、本実施の形態において、ファイルを操作するファイル操作プログラムの一例である。アプリケーション11は、起動単位又は実行単位(以下、「起動単位」で統一する)ごとに複数のファイルを操作する。起動単位とは、プロセス又はスレッド等、アプリケーション11の起動又は実行に応じて、当該アプリケーション11の実行ファイル等がメモリ装置103にロードされることにより生成されるメモリ空間ごとの単位をいう。アプリケーション11によって操作されるファイルは、成果物として生成されるファイル(以下、「成果物ファイル」という。)に限られない。例えば、設定ファイル等、アプリケーション11の振る舞いに関する設定情報が記録されたファイルも含まれる。なお、成果物ファイルとは、アプリケーション11の本来の機能によって出力されるファイルをいう。例えば、ワープロソフトであれば、文書ファイルが成果物とファイルに相当する。したがって、アプリケーション11が起動単位ごとに複数のファイルを操作するということは、必ずしも、起動単位が、複数の成果物ファイルを操作可能であることに限定されない。
【0021】
ファイルシステム12は、OS(Operating System)によって提供される、いわゆるファイルシステムである。ファイルシステム12は、複数のアプリケーション11より共用される。
【0022】
本実施の形態において、ファイルシステム12は、ファイル管理部13、非保護状態ファイル格納部14、及び保護状態ファイル格納部15等を有する。
【0023】
保護状態ファイル格納部15は、補助記憶装置102を用いて保護状態ファイルを格納(記憶)する。保護状態ファイルとは、保護状態化されたファイルをいう。保護状態とは、例えば、暗号化、パスワードの付与、又は操作制限の付与等により、内容の参照が制限されたり、所定の操作が制限されたりした状態をいう。
【0024】
非保護状態ファイル格納部14は、補助記憶装置102を用いて非保護状態ファイルを格納(記憶)する。非保護状態ファイルとは、保護状態ではないファイルをいう。なお、保護状態と非保護状態とは、相対的な関係でよい。すなわち、例えば、非保護状態ファイルも、暗号化されていてもよいし、パスワードが付与されていてもよい。この場合、保護状態ファイルは、例えば、より強度の強い暗号方式によって暗号化されている。又は保護状態ファイルは、例えば、より長い文字列のパスワードが付与されている。
【0025】
なお、本実施の形態では、便宜上、暗号化されているファイルを保護状態ファイルの具体例とし、平文のファイルを非保護状態ファイルの具体例とする。
【0026】
ファイル管理部13は、アプリケーション11より要求される、ファイルに関する各種操作の実行等を行う。各種操作とは、例えば、ファイルの生成、オープン、読み込み、及び書き込み等である。同図において、ファイル管理部13は、オープン処理部131、書き込み処理部132、及び状態管理部133等を含む。オープン処理部131は、ファイルのオープン処理を制御する。書き込み処理部132は、ファイルの書き込み処理を制御する。オープン処理部131及び書き込み処理部132は、アプリケーション11が、保護モードであるか、又は非保護モードであるかに応じて、処理対象とするファイルを選択する。すなわち、本実施の形態では、一つのファイルに対して、保護状態ファイル及び非保護状態ファイルの二つの実体が同時に管理されうる。
【0027】
一つのファイルに対する二つの実体の管理は、次のように行われる。一つ目の例としては、二つの実体のファイル名は同じとし、非保護状態ファイルと保護状態ファイルとのディレクトリを異ならせる。例えば、保護状態ファイルは、非保護状態ファイルのディレクトリの下の「protected」という名前のディレクトリ内に保存されるようにしてもよい。この場合、非保護状態ファイルのディレクトリは、非保護状態ファイル格納部14に相当し、保護状態ファイルのディレクトリは、保護状態ファイル格納部15に相当する。
【0028】
二つ目の例としては、二つの実体のファイル名を異ならせる。例えば、保護状態ファイルの拡張子を非保護状態ファイルと異なるものとする。または、双方の拡張子は同じとし、保護状態ファイルのファイル名の拡張子を除く部分に、所定の文字列を付加する。この場合、双方のディレクトリは必ずしも異なっていなくてもよい。したがって、この場合、非保護状態ファイルが記憶されている記憶領域が非保護状態ファイル格納部14に相当し、保護状態ファイルが記憶されている記憶領域が保護状態ファイル格納部15に相当する。
【0029】
状態管理部133は、アプリケーション11の状態(保護モード及び非保護モードの別)を、アプリケーション11の起動単位ごとに管理する。
【0030】
保護モードとは、一以上の保護状態ファイルが操作対象に含まれている(オープンされている)状態をいう。保護モード中のファイルに対する書き込み内容は、保護状態で(暗号化されて)保存される。非保護モードとは、保護状態ファイルが操作対象に含まれていない(オープンンされていない)状態をいう。非保護モード中のファイルに対する書き込み内容は、非保護状態で(平文のまま)保存される。なお、保護モードに一度遷移した起動単位は、非保護モードに復帰しないことが望ましい。具体的には、現時点において、保護状態ファイルがオープンされていなくても、過去に保護状態ファイルがオープンされている起動単位は、保護モードとされるのが望ましい。現時点において保護状態ファイルがオープンされていなくても、過去に保護状態ファイルがオープンされていれば、当該起動単位のメモリ空間には、当該保護状態ファイルの内容残っている可能性が高い。そのような状態において、非保護モードへの遷移が許容されると、保護状態ファイルの内容(すなわち、保護されるべき内容)が、非保護状態で保存されてしまう可能性があるからである。したがって、本実施の形態では、保護モードから非保護モードへの遷移は行われないこととする。但し、例えば、モードの切り替えに応じて、保護状態ファイルの内容がメモリ空間から削除される等、安全性が確保されるのであれば、保護モードから非保護モードへの遷移が行われてもよい。この場合、現時点において、保護状態ファイルが操作対象に含まれていない起動単位は、非保護モードとされてもよい。
【0031】
なお、ファイル管理部13には、ファイルの生成又は読み込み等に関する処理部等も含まれうる。但し、本実施の形態において、その説明は省略される。
【0032】
既存のファイルシステム12に対してファイル管理部13を組み込む場合、例えば、ファイル管理部13は、フィルタードライバーとして実装されてもよい。フィルタードライバーは、ファイルシステム12に対する要求が要求先に到達する前に当該要求を受信することができる。したがって、フィルタードライバーは、ファイルのオープンや書き込み等、ファイル操作に関する処理を動的に拡張することができる。
【0033】
以下、ファイル管理装置10の処理手順について説明する。図3は、ファイルのオープン処理の処理手順の一例を説明するためのフローチャートである。以下の説明において、「アプリケーション11」とは、当該アプリケーション11の一つの起動単位を意味する。
【0034】
ステップS101において、ファイル管理部13のオープン処理部131は、アプリケーション11よりファイルのオープン要求を受け付ける。ファイルのオープン要求には、オープン対象のファイルのパス名及びオープンモード等が指定される。オープンモードとは、ファイルをオープンする目的が、ファイルの読み込み(r)であるかファイルへの書き込み(w)であるか等を示すパラメータである。読み書きを組み合わせることもできる。なお、ファイルの生成を示すオープンモードも存在するが、図3に関しては、当該オープンモードは除外される。
【0035】
続いて、オープン処理部131は、状態管理部133に問い合わせることにより、アプリケーション11が、非保護モードであるか否かを判定する(S102)。例えば、ファイル管理部13(ここでは、オープン処理部131)は、要求元(呼出元)のアプリケーション11の起動単位の識別子(例えば、プロセスID等)をOSに問い合わせることにより取得することができる。したがって、オープン処理部131は、当該識別子を指定してアプリケーション11の状態(モード)の問い合わせを行う。状態管理部133は、保護モードのアプリケーション11の識別子の集合(以下、「保護モードアプリリスト」という。)をメモリ装置103を用いて管理している。したがって、問い合わせに係る識別子が、保護モードアプリリストに含まれていれば、状態管理部133は、保護モードを示す応答を行う。問い合わせに係る識別子が保護モードアプリリストに含まれていなければ、状態管理部133は、非保護モードを示す応答を行う。
【0036】
アプリケーション11が非保護モードである場合(S102でYes)、オープン処理部131は、オープン要求に指定されたパス名に対応する非保護状態ファイルが、非保護状態ファイル格納部14に格納されているか否かを確認する(S103)。パス名に対応する非保護状態ファイルとは、必ずしも当該パス名通りのファイルでなくてもよい。すなわち、当該パス名が非保護状態ファイル格納部14に対応する形式に変換されたパス名に係るファイルであってもよい。
【0037】
該当する非保護状態ファイルが存在する場合(S103でYes)、オープン処理部131は、当該非保護状態ファイルのオープンをファイルシステム12に実行させる(S104)。なお、ファイルのオープン後、オープンされたファイルのファイル識別子が、ファイルのオープン要求に対する応答としてアプリケーション11に返却される。
【0038】
該当する非保護状態ファイルが存在しない場合(S103でNo)、オープン処理部131は、オープン要求に指定されたパス名に対応する保護状態ファイルが、保護状態ファイル格納部15に格納されているか否かを確認する(S105)。すなわち、オープン処理部131は、オープン要求に指定されたパス名を、保護状態ファイル格納部15に対応する形式に変換し、変換後のパス名に係るファイルの有無を確認する。保護状態ファイル格納部15に対応する形式への変換とは、ディレクトリを異なるものとしたり、ファイル名の一部に所定の文字列を付加したりすることをいう。
【0039】
該当する保護状態ファイルが存在する場合(S105でYes)、オープン処理部131は、保護モードへの遷移(移行)の許否をユーザに問い合わせる(S106)。例えば、オープン処理部131は、保護モードへの遷移の許否を選択させるためのダイアログを表示装置106に表示させる。すなわち、保護モードへ遷移した場合、以降におけるファイルへの書き込みは、保護状態ファイル格納部15に対して行われるという制限が課せられる。したがって、ユーザに当該遷移の許否を選択又は指定させることで、ユーザが意図していない保護モードへの遷移を回避することができる。なお、ユーザによる許可は、必ずしも対話的に入力されなくてもよい。例えば、設定ファイル等において、保護モードへの自動遷移の許否が指定されていてもよい。
【0040】
ユーザによって、保護モードへの遷移が許可された場合(S107でYes)、オープン処理部131は、オープン要求に指定されたパス名に対応する保護状態ファイルのオープンを、ファイルシステム12に実行させる(S108)。続いて、オープン処理部131は、オープン要求元のアプリケーション11の起動単位の識別子を指定して、当該起動単位が保護モードになったことを状態管理部133に通知する(S109)。状態管理部133は、当該通知に応じ、当該識別子を、保護モードアプリリストに追加する。
【0041】
一方、ステップS102において、アプリケーション11は保護モードであると判定された場合(S102でNo)、オープン処理部131は、オープン要求に指定されたパス名に対応する保護状態ファイルが、保護状態ファイル格納部15に格納されているか否かを確認する(S111)。該当する保護状態ファイルが存在する場合(S111でYes)、オープン処理部131は、当該保護状態ファイルのオープンを、ファイルシステム12に実行させる(S112)。続いて、オープン処理部131は、オープン要求元のアプリケーション11の起動単位の識別子を指定して、当該起動単位が保護モードになったことを状態管理部133に通知する(S113)。状態管理部133は、当該通知に応じ、当該識別子を、保護モードアプリリストに追加する。
【0042】
なお、ステップS111〜113の各ステップの処理内容は、ステップS105、S108、及びS109の処理内容と同じである。
【0043】
一方、保護モードにおいて、オープン要求に指定されたパス名に対応する保護状態ファイルが存在しない場合(S111でNo)、オープン処理部131は、オープンモードは読み込みのみ(ReadOnly)か否かを判定する(S114)。オープンモードが読み込みのみの場合(S114)、オープン処理部131は、オープン要求に指定されたパス名に対応する非保護状態ファイルが、非保護状態ファイル格納部14に格納されているか否かを確認する(S115)。該当する非保護状態ファイルが存在する場合(S115でYes)、オープン処理部131は、非保護状態ファイルに係るパス名のファイルのオープンをファイルシステム12に実行させる(S116)。なお、ステップS115、S116の処理内容は、ステップS103、S104の処理内容と同じである。
【0044】
オープンモードが読み込みのみであれば、当該非保護状態ファイルへの書き込みは発生しない。したがって、保護モードであっても、当該非保護状態ファイルが保護状態とされることはない。よって、オープンモードが読み込みのみであれば、保護モードであっても非保護状態ファイルのオープンが許容されるのである。
【0045】
一方、読み込みモードは読み込みのみでない場合(S114でNo)、オープン処理部131は、オープン要求に指定されたパス名に対応する非保護状態ファイルが、非保護状態ファイル格納部14に格納されているか否かを確認する(S118)。該当する非保護状態ファイルが存在する場合(S119でYes)、オープン処理部131は、当該非保護状態ファイルの複製(コピー)を保護状態ファイル格納部15に生成し、当該複製を保護状態化する(S119)。すなわち、当該複製は、保護状態ファイルとして保護状態ファイル格納部15に保存される。なお、保護状態化するとは、暗号化するということである。続いて、オープン処理部131は、当該保護状態ファイルのオープンをファイルシステム12に実行させる(S120)。
【0046】
このように、保護モードであってオープン要求に係る保護状態ファイルが存在しない場合、ファイルへの書き込みが発生する可能性が有るようなファイルのオープンが要求されたときは、非保護状態ファイルの複製が保護状態とされてオープンされる。したがって、オープンされたファイルに対して書き込みが発生したとしても、複製元の非保護状態ファイルへの影響を回避することができる。すなわち、複製元の非保護状態ファイルが保護状態とされることを回避することができる。
【0047】
なお、ステップS119は、一つのファイルに対して、非保護状態ファイルと保護状態ファイルとの双方が存在する状態が発生するタイミングの一つである。
【0048】
続いて、オープン処理部131は、オープン要求元のアプリケーション11の起動単位の識別子を指定して、当該起動単位が保護モードになったことを状態管理部133に通知する(S121)。状態管理部133は、当該通知に応じ、当該識別子を、保護モードアプリリストに追加する。
【0049】
なお、ステップS115又はS118において、該当する非保護状態ファイルは存在しない場合(S115でNo、又はS118でNo)、オープン処理部131は、エラーを返却する(S117)。
【0050】
このように、オープン処理部131は、非保護モードのときは、非保護状態ファイルを優先的にオープンさせる。また、オープン処理部131は、保護モードのときは、保護状態ファイルをオープンさせ、非保護状態ファイルはオープンさせない。但し、保護モードのときに保護状態ファイルが無い場合、オープン処理部131は、非保護状態ファイルの複製に基づく保護状態ファイルをオープンさせる。
【0051】
なお、保護状態ファイルのオープン時には、保護状態ファイルの非保護化(復号)が行われる。又は、オープン時ではなく、読み込み時に、読み込まれる部分について非保護化が行われてもよい。
【0052】
続いて、ファイルへの書き込み時の処理手順について説明する。図4は、ファイルへの書き込み処理の処理手順の一例を説明するためのフローチャートである。同図は、現在オープンされているファイルに対して、アプリケーション11より書き込み要求が有った場合に実行される処理手順を示す。
【0053】
ステップS201において、ファイル管理部13の書き込み処理部132は、アプリケーション11よりファイルへの書き込み要求を受け付ける。ファイルへの書き込み要求には、書き込み先のファイルのファイル識別子及び書き込み内容等が指定される。
【0054】
続いて、書き込み処理部132は、状態管理部133に問い合わせることにより、アプリケーション11が、非保護モードであるか否かを判定する(S202)。ステップS202の処理内容は、図3のステップS102と同様でよい。
【0055】
アプリケーション11が非保護モードである場合(S202でYes)、書き込み処理部132は、書き込み要求に指定されたファイル識別子に対応する非保護状態ファイルへの書き込みをファイルシステム12に実行させる(S203)。なお、この場合、ファイル識別子に係るファイルが、書き込み先とされる非保護状態ファイルである。
【0056】
続いて、書き込み処理部132は、ファイル識別子に係るファイル(すなわち、書き込み先の非保護状態ファイル)に対応する保護状態ファイルが、保護状態ファイル格納部15に格納されているか否かを確認する(S204)。該当する保護状態ファイルが存在する場合(S204でYes)、書き込み処理部132は、当該保護状態ファイルを削除する(S205)。当該保護状態ファイルが削除されるのは、当該保護状態ファイルの内容は、同じファイルに対応する非保護状態ファイルより古いものとなっているからである。そこで、当該保護状態ファイルを削除することで、古い内容の保護状態ファイルが操作対象とされる(オープンされる)のを回避しようというわけである。すなわち、後において、保護モードのときに、当該ファイルに対応する保護状態ファイルのオープンが要求された場合、図3のステップS119及びS120が実行される。すなわち、非保護状態ファイルの複製に基づいて保護状態ファイルが生成される。その結果、保護状態ファイルは、非保護状態ファイルへの書き込み内容が反映された状態でオープンされる。
【0057】
一方、アプリケーション11が保護モードである場合(S202でNo)、書き込み処理部132は、書き込み対象のファイルは、非保護状態ファイルであるか否かを判定する(S206)。例えば、アプリケーション11において、非保護モード中に非保護状態ファイルがオープンされ、その後に、別のファイルの保護状態ファイルがオープンされた場合、当該アプリケーション11は、保護モードとなる。その状態において、非保護状態ファイルに対して書き込み要求が発生した場合がステップS206でYesとなる場合である。
【0058】
書き込み対象のファイルが非保護状態ファイルである場合(S206でYes)、書き込み処理部132は、当該非保護状態ファイルの複製(コピー)を保護状態ファイル格納部15に生成し、当該複製を保護状態化する(S207)。続いて、書き込み処理部132は、書き込み内容を保護状態化して(暗号化して)、当該保護状態ファイルへの書き込みをファイルシステム12に実行させる(S208)。非保護状態ファイルの複製に基づく保護状態ファイルに対して書き込みが行われることにより、非保護状態ファイルに保護状態の内容(暗号化された内容)が書き込まれるのを回避することができる。すなわち、ユーザ又はアプリケーション11の意図に反して、非保護状態ファイルが保護状態化されてしまうのを回避することができる。ステップS207は、一つのファイルに対して、非保護状態ファイルと保護状態ファイルとの双方が存在する状態が発生するタイミングの一つである。なお、非保護状態ファイルの複製への書き込み後に、当該複製が保護状態化されてもよい。
【0059】
一方、書き込み対象のファイルが保護状態ファイルである場合(S206でNo)、書き込み処理部132は、書き込み内容を保護状態化して、当該保護状態ファイルへの書き込みをファイルシステム12に実行させる(S209)。
【0060】
このように、書き込み処理部132は、モード(非保護モード又は保護モード)に適合したファイルへの書き込み要求については、要求されたファイルへの書き込みを行う。一方、保護モードの場合に、非保護状態ファイルへの書き込みが要求された場合、書き込み処理部132は、当該非保護状態ファイルの複製に基づく保護状態ファイルへ書き込みを行う。
【0061】
したがって、この場合、オープンされている非保護状態ファイルへは書き込みは行われないということになる。すなわち、次回、当該非保護状態ファイルがオープンされた場合、当該書き込み内容は、含まれていないということになる。このような事態の発生は、ユーザにとって不利益であるとも考えられる。しかし、本実施の形態では、非保護状態ファイルが保護状態化されることによる不利益を優先させ、当該不利益の発生を抑制するために、複製の生成及び当該複製への書き込みを行うようにしている。
【0062】
すなわち、例えば、当該非保護状態ファイルが、設定ファイルである場合、当該設定ファイルが保護状態化されることにより、アプリケーション11が起動されなくなってしまう可能性がある。
【0063】
一方、図3において説明したように、保護モードへの遷移は、ユーザの許可が得られた場合に行われる。そうすると、ユーザは、非保護状態ファイルへの書き込みは行えないということを承知していると考えることもできる。したがって、非保護状態ファイルへ書き込まれないことの不利益は、ユーザにとって予定されていることであると考えられる。むしろ、保護モードにおいて、非保護状態ファイルへの書き込みが行われたということは、ユーザは、書き込み内容を保護状態としたいと考えていると解釈することができる。換言すれば、保護モードにおける書き込み内容を、非保護状態で保存するのは、ユーザの意図に反すると考えることができる。
【0064】
上記の考えに基づいて、本実施の形態では、保護モードにおける非保護状態ファイルへの書き込みは抑制されている。
【0065】
なお、保護状態ファイルへの書き込みが行われる場合は、非保護状態ファイルの削除は行われない。本実施の形態において、非保護状態ファイルが削除されてしまうと、非保護状態ファイルを復元するのは困難だからである。すなわち、オープン時において、非保護状態ファイルが存在しない場合に、保護状態ファイルの複製に基づいて非保護状態ファイルは生成されないからである。場合に、保護状態ファイルの複製に基づいて非保護状態ファイルは生成されないのは、保護状態ファイルの内容が、非保護状態化されてしまうからである。すなわち、保護状態ファイルの存在意義が没却されてしまうからである。
【0066】
なお、ファイルの生成時の処理手順は、図4における書き込み処理を、オープン処理に置き換えればよい。
【0067】
続いて、より具体的なシナリオに基づいて、図3又は図4において説明した処理手順の一部を説明する。
【0068】
図5は、ファイル管理装置における具体的な処理手順の第一の例を示すシーケンス図である。
【0069】
ステップS301において、アプリケーション11は、BBB.txtのオープンを要求する。当該要求は、ファイル管理部13のオープン処理部131によってフック(横取り)される。オープン処理部131は、BBB.txtに関して非保護状態ファイルが無い場合、BBB.txtに関する保護状態ファイルのオープンをファイルシステム12に実行させる(S302)。保護状態ファイルがオープンされることにより、アプリケーション11は、保護モードとなる。
【0070】
続いて、アプリケーション11は、BBB.txtに対して書き込みを要求する(S303)。当該要求は、ファイル管理部13の書き込み処理部132によってフックされる。ここで、書き込み要求元のアプリケーション11は保護モードである。したがって、書き込み処理部132は、BBB.txtに関する保護状態ファイルに対する書き込みをファイルシステム12に実行させる(S304)。
【0071】
続いて、アプリケーション11は、AAA.txtのオープンを要求する(S305)。当該要求は、ファイル管理部13のオープン処理部131によってフックされる。ここで、オープン要求元のアプリケーション11は保護モードである。したがって、AAA.txtの保護状態ファイルが無い場合、オープン処理部131は、AAA.txtの非保護状態ファイルのコピー(複製)を生成し、当該複製に基づいて保護状態ファイルを生成する(S306)。続いて、オープン処理部131は、当該保護状態ファイルをオープンさせる(S307)。
【0072】
その結果、保護モードにおいて、書き込み内容が反映されないにも拘わらず非保護状態ファイルがオープンされてしまうのを防止することができる。
【0073】
また、図6は、ファイル管理装置における具体的な処理手順の第二の例を示すシーケンス図である。
【0074】
非保護モードにおいて、アプリケーション11は、AAA.txtのファイルのオープンを要求する(S401)。当該要求は、ファイル管理部13のオープン処理部131によってフックされる。オープン処理部131は、AAA.txtに関して非保護状態ファイルが有る場合、当該非保護状態ファイルのオープンをファイルシステム12に実行させる(S402)。
【0075】
続いて、アプリケーション11は、BBB.txtのオープンを要求する(S403)。当該要求は、ファイル管理部13のオープン処理部131によってフックされる。オープン処理部131は、BBB.txtに関して非保護状態ファイルが無い場合、BBB.txtに関する保護状態ファイルのオープンをファイルシステム12に実行させる(S404)。保護状態ファイルがオープンされることにより、アプリケーション11は、保護モードとなる。
【0076】
続いて、アプリケーション11は、AAA.txtに対して書き込みを要求する(S405)。当該要求は、ファイル管理部13の書き込み処理部132によってフックされる。ここで、書き込み要求元のアプリケーション11は保護モードである。したがって、AAA.txtの保護状態ファイルが無い場合、オープン処理部131は、AAA.txtの非保護状態ファイルのコピー(複製)を生成し、当該複製に基づいて保護状態ファイルを生成する(S406)。続いて、書き込み処理部132は、当該保護状態ファイルへの書き込みをファイルシステム12に実行させる(S407)。
【0077】
その結果、保護状態の書き込み内容が、非保護状態ファイルに書き込まれてしまうのを回避することができる。
【0078】
また、図7は、ファイル管理装置における具体的な処理手順の第三の例を示すシーケンス図である。
【0079】
非保護モードにおいて、アプリケーション11は、AAA.txtのオープンを要求する(S501)。当該要求は、ファイル管理部13のオープン処理部131によってフックされる。オープン処理部131は、AAA.txtに関して非保護状態ファイルが有る場合、当該非保護状態ファイルのオープンをファイルシステム12に実行させる(S502)。
【0080】
続いて、アプリケーション11は、AAA.txtに対して書き込みを要求する(S503)。当該要求は、ファイル管理部13の書き込み処理部132によってフックされる。ここで、書き込み要求元のアプリケーション11は非保護モードである。したがって、書き込み処理部132は、AAA.txtに関する非保護状態ファイルに対する書き込みをファイルシステム12に実行させる(S504)。続いて、AAA.txtに関して保護状態ファイルが有る場合、書き込み処理部132は、当該保護状態ファイルを削除する(S505)。
【0081】
その結果、保護状態ファイルの内容が、非保護状態ファイルに対して古くなってしまうのを回避することができる。
【0082】
次に、第二の実施の形態について説明する。第二の実施の形態では、第一の実施の形態と異なる点について説明する。したがって、特に言及しない点については、第一の実施の形態と同様でよい。
【0083】
図8は、第二の実施の形態におけるファイル管理装置のソフトウェア構成例を示す図である。図8中、図2と同一部分には同一符号を付し、その説明は省略する。
【0084】
図8において、ファイル管理部13aは、ファイルシステム12に含まれていない。また、ファイル管理部13aは、アプリケーション11ごとに存在する。すなわち、第一の実施の形態におけるファイル管理部13は、ファイルシステム12を機能拡張するように実装された例であるのに対し、第二の実施の形態におけるファイル管理部13aは、アプリケーション11を機能拡張するように実装された例を示す。なお、図8は、メモリ上へのロードの状態を示す。すなわち、第二の実施の形態において、ファイル管理部13aとして機能するプログラムを格納したファイルは、一つでよい。図8は、当該プログラムがアプリケーション11の起動単位ごとにロードされることを示す。なお、ファイル管理部13aも、オープン処理部131、書き込み処理部132、及び状態管理部133等を含むが、これらの図示は省略されている。
【0085】
ファイル管理部13aが実行する処理手順は、第一の実施の形態におけるファイル管理部13と同様でよい。但し、そのためには、ファイル管理部13aは、アプリケーション11によるファイルシステム12に対するファイルの操作要求をフック(横取り)する必要がある。当該操作要求をフックするために、例えば、APIフックという機構が用いられてもよい。
【0086】
APIフックとは、その名の通り、アプリケーション11によるAPI呼び出し(ここでは、ファイルシステム12への要求)をフックするための機構である。
【0087】
具体的には、ファイル管理部13aは、DLL(Dynamic Link Library)として実装される。当該DLLは、OSに登録される。OSは、アプリケーション11の起動時に、登録されたDLLのロードを、ウィンドウメッセージによってアプリケーション11に要求する。アプリケーション11は、当該要求に応じて、当該DLLをロードする。したがって、当該DLLは、当該アプリケーション11の仮想アドレス空間にロードされる。当該DLLは、ロードされると、当該仮想空間アドレスに含まれている、アプリケーション11が利用するAPIのアドレスの一覧が格納されている領域(インポート領域又はインポートセクション等と呼ばれる。)を、自らの都合の良いように書き換える。例えば、ファイルのオープン用のAPI又は書き込み用のAPIのアドレスを、当該DLLに実装されているファイルのオープン用のAPI(すなわち、オープン処理部131)又は書き込み用のAPI(すなわち、書き込み処理部132)のアドレスに置換する。その結果、アプリケーション11が通常のファイルのオープン用のAPI又は書き込み用のAPIを呼び出しているつもりでも、当該呼び出しは、ファイル管理部13aに対して行われる。その結果、アプリケーション11のソースコードを修正することなく、ファイル管理部13aは、第一の実施の形態と同様の処理を行うことができる。
【0088】
但し、APIフック以外の機構又は仕組みであって、同様の効果を得ることができる公知技術が利用されてもよい。
【0089】
なお、ファイル管理部13aは、アプリケーション11の起動単位ごとにロードされる。したがって、ファイル管理部13aにおける状態管理部133は、自らの起動単位の状態を管理すればよい。
【0090】
上述したように、本実施の形態によれば、一つのファイルに対して、非保護状態ファイルと保護状態ファイルとが管理されうる。そして、非保護モードであるか又は保護モードであるかに応じて、操作対象が適切に選択される。したがって、非保護状態のファイルがユーザ又はアプリケーション11の意図に反して保護状態化されてしまうのを適切に回避することができる。
【0091】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【0092】
以上の説明に関し、更に以下の項を開示する。
(付記1)
複数ファイルを操作可能なファイル操作プログラムの起動単位に関して、第一のファイルのオープンの要求を受け付ける手順と、
受け付けた前記第一のファイルのオープンの要求に対して前記起動単位に関して保護状態ファイルがオープンされていない場合であって、前記第一のファイルの非保護状態ファイルは存在するときは前記第一のファイルの非保護状態ファイルをオープンし、前記起動単位に関して保護状態ファイルがオープンされている場合は、前記第一のファイルの保護状態ファイルをオープンするオープン手順とをコンピュータが実行するファイル管理方法。
(付記2)
前記オープン手順は、前記起動単位に関して保護状態ファイルがオープンされている場合に、前記第一のファイルの保護状態ファイルが存在しないときは、当該第一のファイルの非保護状態ファイルの複製に基づいて保護状態ファイル生成し、生成した当該保護状態ファイルをオープンする付記1記載のファイル管理方法。
(付記3)
前記オープン手順は、前記起動単位に関して保護状態ファイルがオープンされていない場合に、前記第一のファイルの非保護状態ファイルは存在せず、前記第一のファイルの保護状態ファイルは存在するときは、当該保護状態ファイルのオープンの許可の指定が有る場合に、当該保護状態ファイルをオープンする付記1又は2記載のファイル管理方法。
(付記4)
前記オープン手順は、前記第一のファイルのオープンの要求が読み込みのみを目的とする場合、前記起動単位に関して保護状態ファイルがオープンされており、前記第一のファイルの保護状態ファイルが存在しないときは、前記第一のファイルの非保護状態ファイルをオープンする付記1乃至3いずれか一項記載のファイル管理方法。
(付記5)
複数ファイルを操作可能なファイル操作プログラムの起動単位に関して、保護状態ファイルがオープンされている場合に、非保護状態ファイルに対して書き込みが要求されたときは、該非保護状態ファイルの複製を生成し、当該複製に対して書き込み内容が反映された結果を保護状態ファイルとし、
前記起動単位に関して保護状態ファイルがオープンされていない場合に、非保護状態ファイルに対して書き込みが要求されたときは、当該非保護状態ファイルに書き込みを行い、当該非保護状態ファイルと同一ファイルに対応する保護状態ファイルを削除する処理をコンピュータが実行するファイル管理方法。
(付記6)
複数ファイルを操作可能なファイル操作プログラムの起動単位に関して、第一のファイルのオープンの要求を受け付ける手段と、
受け付けた前記第一のファイルのオープンの要求に対して前記起動単位に関して保護状態ファイルがオープンされていない場合であって、前記第一のファイルの非保護状態ファイルは存在するときは前記第一のファイルの非保護状態ファイルをオープンし、前記起動単位に関して保護状態ファイルがオープンされている場合は、前記第一のファイルの保護状態ファイルをオープンするオープン手段とを有するファイル管理装置。
(付記7)
前記オープン手段は、前記起動単位に関して保護状態ファイルがオープンされている場合に、前記第一のファイルの保護状態ファイルが存在しないときは、当該第一のファイルの非保護状態ファイルの複製に基づいて保護状態ファイル生成し、生成した当該保護状態ファイルをオープンする付記6記載のファイル管理装置。
(付記8)
前記オープン手段は、前記起動単位に関して保護状態ファイルがオープンされていない場合に、前記第一のファイルの非保護状態ファイルは存在せず、前記第一のファイルの保護状態ファイルは存在するときは、当該保護状態ファイルのオープンの許可の指定が有る場合に、当該保護状態ファイルをオープンする付記6又は7記載のファイル管理装置。
(付記9)
前記オープン手段は、前記第一のファイルのオープンの要求が読み込みのみを目的とする場合、前記起動単位に関して保護状態ファイルがオープンされており、前記第一のファイルの保護状態ファイルが存在しないときは、前記第一のファイルの非保護状態ファイルをオープンする付記6乃至8いずれか一項記載のファイル管理装置。
(付記10)
複数ファイルを操作可能なファイル操作プログラムの起動単位に関して、保護状態ファイルがオープンされている場合に、非保護状態ファイルに対して書き込みが要求されたときは、該非保護状態ファイルの複製を生成し、当該複製に対して書き込み内容が反映された結果を保護状態ファイルとし、
前記起動単位に関して保護状態ファイルがオープンされていない場合に、非保護状態ファイルに対して書き込みが要求されたときは、当該非保護状態ファイルに書き込みを行い、当該非保護状態ファイルと同一ファイルに対応する保護状態ファイルを削除するファイル管理装置。
(付記11)
複数ファイルを操作可能なファイル操作プログラムの起動単位に関して、第一のファイルのオープンの要求を受け付ける手順と、
受け付けた前記第一のファイルのオープンの要求に対して前記起動単位に関して保護状態ファイルがオープンされていない場合であって、前記第一のファイルの非保護状態ファイルは存在するときは前記第一のファイルの非保護状態ファイルをオープンし、前記起動単位に関して保護状態ファイルがオープンされている場合は、前記第一のファイルの保護状態ファイルをオープンするオープン手順とをコンピュータに実行させるファイル管理プログラム。
(付記12)
前記オープン手順は、前記起動単位に関して保護状態ファイルがオープンされている場合に、前記第一のファイルの保護状態ファイルが存在しないときは、当該第一のファイルの非保護状態ファイルの複製に基づいて保護状態ファイル生成し、生成した当該保護状態ファイルをオープンする付記11記載のファイル管理プログラム。
(付記13)
前記オープン手順は、前記起動単位に関して保護状態ファイルがオープンされていない場合に、前記第一のファイルの非保護状態ファイルは存在せず、前記第一のファイルの保護状態ファイルは存在するときは、当該保護状態ファイルのオープンの許可の指定が有る場合に、当該保護状態ファイルをオープンする付記11又は12記載のファイル管理プログラム。
(付記14)
前記オープン手順は、前記第一のファイルのオープンの要求が読み込みのみを目的とする場合、前記起動単位に関して保護状態ファイルがオープンされており、前記第一のファイルの保護状態ファイルが存在しないときは、前記第一のファイルの非保護状態ファイルをオープンする付記11乃至13いずれか一項記載のファイル管理プログラム。
(付記15)
複数ファイルを操作可能なファイル操作プログラムの起動単位に関して、保護状態ファイルがオープンされている場合に、非保護状態ファイルに対して書き込みが要求されたときは、該非保護状態ファイルの複製を生成し、当該複製に対して書き込み内容が反映された結果を保護状態ファイルとし、
前記起動単位に関して保護状態ファイルがオープンされていない場合に、非保護状態ファイルに対して書き込みが要求されたときは、当該非保護状態ファイルに書き込みを行い、当該非保護状態ファイルと同一ファイルに対応する保護状態ファイルを削除する処理をコンピュータに実行させるファイル管理プログラム。
【符号の説明】
【0093】
11 アプリケーション
12 ファイルシステム
13、13a ファイル管理部
14 非保護状態ファイル格納部
15 保護状態ファイル格納部
100 ドライブ装置
101 記録媒体
102 補助記憶装置
103 メモリ装置
104 CPU
105 インタフェース装置
106 表示装置
107 入力装置
131 オープン処理部
132 書き込み処理部
133 状態管理部
B バス

【特許請求の範囲】
【請求項1】
複数ファイルを操作可能なファイル操作プログラムの起動単位に関して、第一のファイルのオープンの要求を受け付ける手順と、
受け付けた前記第一のファイルのオープンの要求に対して前記起動単位に関して保護状態ファイルがオープンされていない場合であって、前記第一のファイルの非保護状態ファイルは存在するときは前記第一のファイルの非保護状態ファイルをオープンし、前記起動単位に関して保護状態ファイルがオープンされている場合は、前記第一のファイルの保護状態ファイルをオープンするオープン手順とをコンピュータが実行するファイル管理方法。
【請求項2】
前記オープン手順は、前記起動単位に関して保護状態ファイルがオープンされている場合に、前記第一のファイルの保護状態ファイルが存在しないときは、当該第一のファイルの非保護状態ファイルの複製に基づいて保護状態ファイル生成し、生成した当該保護状態ファイルをオープンする請求項1記載のファイル管理方法。
【請求項3】
前記オープン手順は、前記起動単位に関して保護状態ファイルがオープンされていない場合に、前記第一のファイルの非保護状態ファイルは存在せず、前記第一のファイルの保護状態ファイルは存在するときは、当該保護状態ファイルのオープンの許可の指定が有る場合に、当該保護状態ファイルをオープンする請求項1又は2記載のファイル管理方法。
【請求項4】
前記オープン手順は、前記第一のファイルのオープンの要求が読み込みのみを目的とする場合、前記起動単位に関して保護状態ファイルがオープンされており、前記第一のファイルの保護状態ファイルが存在しないときは、前記第一のファイルの非保護状態ファイルをオープンする請求項1乃至3いずれか一項記載のファイル管理方法。
【請求項5】
複数ファイルを操作可能なファイル操作プログラムの起動単位に関して、保護状態ファイルがオープンされている場合に、非保護状態ファイルに対して書き込みが要求されたときは、該非保護状態ファイルの複製を生成し、当該複製に対して書き込み内容が反映された結果を保護状態ファイルとし、
前記起動単位に関して保護状態ファイルがオープンされていない場合に、非保護状態ファイルに対して書き込みが要求されたときは、当該非保護状態ファイルに書き込みを行い、当該非保護状態ファイルと同一ファイルに対応する保護状態ファイルを削除する処理をコンピュータが実行するファイル管理方法。
【請求項6】
複数ファイルを操作可能なファイル操作プログラムの起動単位に関して、第一のファイルのオープンの要求を受け付ける手段と、
受け付けた前記第一のファイルのオープンの要求に対して前記起動単位に関して保護状態ファイルがオープンされていない場合であって、前記第一のファイルの非保護状態ファイルは存在するときは前記第一のファイルの非保護状態ファイルをオープンし、前記起動単位に関して保護状態ファイルがオープンされている場合は、前記第一のファイルの保護状態ファイルをオープンするオープン手段とを有するファイル管理装置。
【請求項7】
複数ファイルを操作可能なファイル操作プログラムの起動単位に関して、保護状態ファイルがオープンされている場合に、非保護状態ファイルに対して書き込みが要求されたときは、該非保護状態ファイルの複製を生成し、当該複製に対して書き込み内容が反映された結果を保護状態ファイルとし、
前記起動単位に関して保護状態ファイルがオープンされていない場合に、非保護状態ファイルに対して書き込みが要求されたときは、当該非保護状態ファイルに書き込みを行い、当該非保護状態ファイルと同一ファイルに対応する保護状態ファイルを削除するファイル管理装置。
【請求項8】
複数ファイルを操作可能なファイル操作プログラムの起動単位に関して、第一のファイルのオープンの要求を受け付ける手順と、
受け付けた前記第一のファイルのオープンの要求に対して前記起動単位に関して保護状態ファイルがオープンされていない場合であって、前記第一のファイルの非保護状態ファイルは存在するときは前記第一のファイルの非保護状態ファイルをオープンし、前記起動単位に関して保護状態ファイルがオープンされている場合は、前記第一のファイルの保護状態ファイルをオープンするオープン手順とをコンピュータに実行させるファイル管理プログラム。
【請求項9】
複数ファイルを操作可能なファイル操作プログラムの起動単位に関して、保護状態ファイルがオープンされている場合に、非保護状態ファイルに対して書き込みが要求されたときは、該非保護状態ファイルの複製を生成し、当該複製に対して書き込み内容が反映された結果を保護状態ファイルとし、
前記起動単位に関して保護状態ファイルがオープンされていない場合に、非保護状態ファイルに対して書き込みが要求されたときは、当該非保護状態ファイルに書き込みを行い、当該非保護状態ファイルと同一ファイルに対応する保護状態ファイルを削除する処理をコンピュータに実行させるファイル管理プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate