(57)【特許請求の範囲】
【請求項１】
アプリケーションが起動してからこれまでに操作したファイルに関する情報であって、当該アプリケーションが１つ以上の暗号化ファイルを開いたか否かを示す情報を含むアプリ操作ファイル情報を保持するアプリ操作ファイル情報保持手段と、
任意のアプリケーションによってクローズされた任意のファイルに対して、当該ファイルをクローズする操作を行ったアプリケーションについて前記アプリ操作ファイル情報保持手段に保持されている前記アプリ操作ファイル情報に基づいて、当該ファイルを暗号化対象とするか否かを判定する暗号化判定手段とを備え、
前記暗号化判定手段は、任意のファイルに対して、当該ファイルをクローズする操作を行ったアプリケーションが起動してからこれまでに１つ以上の暗号化ファイルを開いたことがあれば、当該ファイルを暗号化対象と判定する
ことを特徴とする情報処理装置。
【請求項２】
アプリケーションからの所定のファイル操作要求を検出するファイル操作検出手段と、
前記ファイル操作検出手段によってアプリケーションがファイルのオープン動作を伴うファイル操作要求を行ったことが検出された場合に、当該ファイル操作要求の要求元であるアプリケーションの情報および操作対象とされたファイルの情報を取得して、前記アプリ操作ファイル情報保持手段に保持させるアプリ操作ファイル情報を更新するアプリ操作ファイル情報登録手段と、
指定されたファイルに対して暗号化処理を実施する暗号化手段とを備え、
暗号化判定手段は、前記ファイル操作検出手段によってアプリケーションがファイルのクローズ動作を伴うファイル操作要求を行ったことが検出された場合に、当該ファイル操作の要求元アプリケーションについて前記アプリ操作ファイル情報保持手段に保持されているアプリ操作ファイル情報に基づいて、操作対象とされたファイルを暗号化対象とするか否かを判定し、
前記暗号化手段は、前記暗号化判定手段によって暗号化対象と判定されたファイルに対して暗号化処理を実施する
請求項１に記載の情報処理装置。
【請求項３】
アプリ操作ファイル情報登録手段は、ファイル操作検出手段によってアプリケーションがファイルのオープン動作を伴うファイル操作要求を行ったことが検出された場合に、操作対象とされたファイルが暗号化ファイルであって、かつ前記アプリケーションが前記暗号化ファイルの復号を許可されたアプリケーションであって正しく復号できた場合に、アプリ操作ファイル情報保持手段に、前記アプリケーションが１つ以上の暗号化ファイルを開いたことを示す情報を含むアプリ操作ファイル情報を保持させる
請求項２に記載の情報処理装置。
【請求項４】
ファイルのファイルハンドルと、当該ファイルをオープンしているアプリケーションを識別する情報とを対応づけて保持するファイル管理情報保持手段を備えた
請求項１から請求項３のいずれか１項に記載の情報処理装置。
【請求項５】
アプリケーションが起動してからこれまでに操作したファイルに関する情報であって、当該アプリケーションが開いたファイルに付されている操作権限のうち最も低い権限である最低権限を示す情報を含むアプリ操作ファイル情報を保持するアプリ操作ファイル情報保持手段と、
任意の新規保存ファイルまたは任意のアプリケーションによってオープンされた任意のファイルに対して、当該ファイルをクローズする操作を行ったまたは当該ファイルをオープンする操作を行ったアプリケーションについて前記アプリ操作ファイル情報保持手段に保持されている前記アプリ操作ファイル情報に基づいて、当該ファイルに対して許可する操作権限を決定する権限決定手段とを備え、
前記権限決定手段は、前記最低権限を、前記ファイルに対して許可する操作権限として決定する
ことを特徴とする情報処理装置。
【請求項６】
アプリケーションが起動してからこれまでに操作したファイルに関する情報であって、当該アプリケーションが１つ以上の暗号化ファイルを開いたか否かを示す情報を含むアプリ操作ファイル情報を記憶装置に保持させ、
情報処理装置が、任意のアプリケーションによってクローズされた任意のファイルに対して、当該ファイルをクローズする操作を行ったアプリケーションについて前記記憶装置に保持されている前記アプリ操作ファイル情報に基づいて、当該ファイルを暗号化対象とするか否かを判定し、
前記情報処理装置が、前記ファイルをクローズする操作を行ったアプリケーションが起動してからこれまでに１つ以上の暗号化ファイルを開いたことがあれば、当該ファイルを暗号化対象と判定する
ことを特徴とするファイル暗号化判定方法。
【請求項７】
アプリケーションが起動してからこれまでに操作したファイルに関する情報であって、当該アプリケーションが開いたファイルに付されている操作権限のうち最も低い権限である最低権限を示す情報を含むアプリ操作ファイル情報を記憶装置に保持させ、
情報処理装置が、任意の新規保存ファイルまたは任意のアプリケーションによってオープンされた任意のファイルに対して、当該ファイルをクローズする操作を行ったまたは当該ファイルをオープンする操作を行ったアプリケーションについて前記記憶装置に保持されている前記アプリ操作ファイル情報に基づいて、当該ファイルに対して許可する操作権限を決定し、
前記情報処理装置が、前記操作権限を決定する際、前記最低権限を、前記ファイルに対して許可する操作権限として定める
ことを特徴とする権限決定方法。
【請求項８】
コンピュータに、
アプリケーションが起動してからこれまでに操作したファイルに関する情報であって、当該アプリケーションが１つ以上の暗号化ファイルを開いたか否かを示す情報を含むアプリ操作ファイル情報を記憶装置に保持させる処理、および
任意のアプリケーションによってクローズされた任意のファイルに対して、当該ファイルをクローズする操作を行ったアプリケーションについて前記記憶装置に保持されている前記アプリ操作ファイル情報に基づいて、当該ファイルを暗号化対象とするか否かを判定する処理を実行させ、
前記判定する処理で、前記ファイルをクローズする操作を行ったアプリケーションが起動してからこれまでに１つ以上の暗号化ファイルを開いたことがあれば、前記ファイルを暗号化対象と判定させる
ためのファイル暗号化判定プログラム。
【請求項９】
コンピュータに、
アプリケーションが起動してからこれまでに操作したファイルに関する情報であって、当該アプリケーションが開いたファイルに付されている操作権限のうち最も低い権限である最低権限を示す情報を含むアプリ操作ファイル情報を記憶装置に保持させる処理、および
任意の新規保存ファイルまたは任意のアプリケーションによってオープンされた任意のファイルに対して、当該ファイルをクローズする操作を行ったまたは当該ファイルをオープンする操作を行ったアプリケーションについて前記記憶装置に保持されている前記アプリ操作ファイル情報に基づいて、当該ファイルに対して許可する操作権限を決定する処理を実行させ、
前記操作権限を決定する処理で、前記最低権限を、前記ファイルに対して許可する操作権限として定めさせる
ための権限決定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自動で暗号化を行う情報処理装置、そのためのファイル暗号化判定方法およびファイル暗号化判定プログラムに関する。また、本発明は、ファイルに対して許可する操作権限を自動で決定する情報処理装置、そのための権限決定方法および権限決定プログラムに関する。
【背景技術】
【０００２】
これまで、ファイルの機密性を高めるために、ファイルを暗号化する取り組みが行われてきた。ただし、暗号化ファイルをアプリケーションで使用する場合には、特定アプリケーション専用のプラグインを使用する場合を除き、事前に復号してから使用しなければならず、その際にファイルの機密性を失うことがあった。
【０００３】
暗号化されたファイルをアプリケーションが使用する場合に機密性が失われる問題に関して、特許文献１には、様々なアプリケーションから暗号化ファイルを使用できる仕組みを提供するために、オペレーティングシステム（ＯＳ）が提供しているＡＰＩをフックして、暗号化ファイルの復号処理や再暗号化処理を行うことが記載されている。
【０００４】
一般に、ファイルをユーザの指示によらないで暗号化しようとすると、任意のファイルが暗号化対象であるかを判定するために暗号化条件の設定が必要となる。例えば、特許文献１に記載されている情報処理装置では、フックしたＡＰＩで処理対象となるファイルの内容に基づいて、当該ファイルが暗号化対象であるか否かを判定している。一例として、データのヘッダを参照して先頭８バイトの文字列が所定の文字列か否かを判定することによりデータのフォーマットがＭＳ−ＷＯＲＤであるか否かを特定する例が示されている。この他、ファイルがあるフォーマットに従ったものであるか否かや、データ本体内に「ｃｏｎｆｉｄｅｎｔｉａｌ（機密）」という文字列が含まれているか否か、自然言語処理の結果から姓名に関する情報などの個人情報が含まれているか、画像であるか否か、画像の解像度が高解像度であるか否か、画像処理の結果から人間の顔に合致する画像が含まれているか等を判定することにより暗号化対象とするか否かを判定する例が示されている。
【０００５】
また、例えば、特許文献２には、オープン中の暗号ファイルを管理するためのファイルハンドルテーブルを用意して、アプリケーションプログラムからのファイル操作要求をフックし、自動的に暗号化および復号を行うことや、暗号化の対象とするディレクトリと暗号化したファイルを復元可能なユーザリストとをユーザ毎に設定可能にすることが記載されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００８−１３４８２１号公報
【特許文献２】特開平１０−２６０９０３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１や特許文献２に記載されている方法によれば、ユーザが明示的に暗号化または復号の操作を指示しなくても、アプリケーションプログラム操作時にファイルの暗号化および復号を行うことができる。しかし、自動で暗号化を行う情報処理装置に適用させる暗号化条件を正しく設定することは非常に困難である。暗号化条件が正しく設定されない場合、無駄に膨大なファイルに対して暗号化が行われたり、逆に必要なファイルに暗号化が行われずに機密性が保持できないという問題が生じる。特に、暗号化条件が狭く設定された場合には暗号化漏れが発生する可能性が高い。
【０００８】
例えば、ディレクトリ名やアプリケーション名やユーザＩＤを暗号化条件に指定して、一律に自動暗号化処理を行うと、本来暗号化の必要のないファイルまで大量に暗号化されて処理速度の低下が懸念される。また、ディレクトリ構造や保有アプリケーション名、ログイン可能なユーザＩＤなどは使用環境によって異なるが、そのような使用環境によって異なる個別具体的な内容を用いて、暗号化が必要な範囲をもれのないように指定するのは困難であるだけでなく、手間がかかる。
【０００９】
なお、保存しようとするファイルに含まれる文字列や画像等のファイル内容に基づいて暗号化対象とするか否かを判定する方法によれば、アプリケーション単位、ディレクトリ単位またはユーザ単位で指定される一律の条件による暗号化処理の無駄は省けるかもしれない。しかし、機密情報を扱うファイルのファイル内容に、必ずしも「ｃｏｎｆｉｄｅｎｔｉａｌ（機密）」といった暗号化対象であることを明示する文字列や画像、個人情報が含まれているとは限らず、様々な種類の未知のファイルに対して暗号化条件をもれなく指定することは非常に困難である。
【００１０】
ところで、自動で暗号化を行う場合において暗号化もれが起こりやすい状況の一例として、暗号化ファイルをオープンした後に、そのファイルに一部内容の修正を加えて保存する場合が挙げられる。既に暗号化されたファイルを開いていることから、そのアプリケーションが保持しているファイル内容には機密情報が含まれる可能性が高いと言えるが、ユーザが、その後にファイル本体に含まれていた「ｃｏｎｆｉｄｅｎｔｉａｌ（機密）」といった文字列を削除したり、別の名前で保存したり、または別の場所に保存する操作を行うと、それにより暗号化条件に合致しなくなって暗号化が行われない場合があった。このケースの問題点は、一度重要なファイルとして指定されたファイルのデータが今現在どこにあるか、どのアプリケーションによって操作されているかを把握して、それに基づいて暗号化判定を行おうということが考えられていないことにある。
【００１１】
また、一度重要なファイルとして指定されたファイルのデータが今現在どこにあるか、どのアプリケーションによって操作されているかを把握しないことによる他の問題点として、情報処理装置がＤＲＭ（Ｄｉｇｉｔａｌ  Ｒｉｇｈｔｓ  Ｍａｎａｇｅｍｅｎｔ）システムと連携して動作する場合に、あるアプリケーションが複数のＤＲＭファイルを開いていてファイル内容の転記を行うと、機密事項が転記された場合であっても新規保存するファイルに付与される操作権限に何ら制限がかからないということがあった。
【００１２】
従って、本発明は、自動で暗号化を行う情報処理装置において、動作環境や処理対象ファイルによって異なる個別具体的な暗号化条件を指定することを要せず、無駄な暗号化処理を低減し、かつ暗号化もれを適切に防ぐことを目的とする。
【００１３】
特に、暗号化条件を指定しなくても、一度重要なファイルとして指定されたデータに対する暗号化をもれなくすることを目的とする。
【００１４】
また、本発明は、あるアプリケーションが複数のＤＲＭファイルを開いている場合に、それらのファイルに対する操作権限が不当に緩和されることを防ぐことを目的とする。
【課題を解決するための手段】
【００１５】
本発明による情報処理装置は、アプリケーションが起動してからこれまでに操作したファイルに関する情報であって、当該アプリケーションが１つ以上の暗号化ファイルを開いたか否かを示す情報を含むアプリ操作ファイル情報を保持するアプリ操作ファイル情報保持手段と、任意のアプリケーションによってクローズされた任意のファイルに対して、当該ファイルをクローズする操作を行ったアプリケーションについてアプリ操作ファイル情報保持手段に保持されているアプリ操作ファイル情報に基づいて、当該ファイルを暗号化対象とするか否かを判定する暗号化判定手段とを備え、暗号化判定手段は、任意のファイルに対して、当該ファイルをクローズする操作を行ったアプリケーションが起動してからこれまでに１つ以上の暗号化ファイルを開いたことがあれば、当該ファイルを暗号化対象と判定することを特徴とする。
【００１６】
本発明による情報処理装置は、アプリケーションが起動してからこれまでに操作したファイルに関する情報であって、当該アプリケーションが開いたファイルに付されている操作権限のうち最も低い権限である最低権限を示す情報を含むアプリ操作ファイル情報を保持するアプリ操作ファイル情報保持手段と、任意の新規保存ファイルまたは任意のアプリケーションによってオープンされた任意のファイルに対して、当該ファイルをクローズする操作を行ったまたは当該ファイルをオープンする操作を行ったアプリケーションについてアプリ操作ファイル情報保持手段に保持されているアプリ操作ファイル情報に基づいて、当該ファイルに対して許可する操作権限を決定する権限決定手段とを備え、権限決定手段は、最低権限を、ファイルに対して許可する操作権限として決定することを特徴とする。
【００１７】
本発明によるファイル暗号化判定方法は、アプリケーションが起動してからこれまでに操作したファイルに関する情報であって、当該アプリケーションが１つ以上の暗号化ファイルを開いたか否かを示す情報を含むアプリ操作ファイル情報を記憶装置に保持させ、情報処理装置が、任意のアプリケーションによってクローズされた任意のファイルに対して、当該ファイルをクローズする操作を行ったアプリケーションについて記憶装置に保持されているアプリ操作ファイル情報に基づいて、当該ファイルを暗号化対象とするか否かを判定し、情報処理装置が、ファイルをクローズする操作を行ったアプリケーションが起動してからこれまでに１つ以上の暗号化ファイルを開いたことがあれば、当該ファイルを暗号化対象と判定することを特徴とする。
【００１８】
本発明による権限決定方法は、アプリケーションが起動してからこれまでに操作したファイルに関する情報であって、当該アプリケーションが開いたファイルに付されている操作権限のうち最も低い権限である最低権限を示す情報を含むアプリ操作ファイル情報を記憶装置に保持させ、情報処理装置が、任意の新規保存ファイルまたは任意のアプリケーションによってオープンされた任意のファイルに対して、当該ファイルをクローズする操作を行ったまたは当該ファイルをオープンする操作を行ったアプリケーションについて記憶装置に保持されているアプリ操作ファイル情報に基づいて、当該ファイルに対して許可する操作権限を決定し、情報処理装置が、操作権限を決定する際、最低権限を、ファイルに対して許可する操作権限として定めることを特徴とする。
【００１９】
本発明によるファイル暗号化判定プログラムは、コンピュータに、アプリケーションが起動してからこれまでに操作したファイルに関する情報であって、当該アプリケーションが１つ以上の暗号化ファイルを開いたか否かを示す情報を含むアプリ操作ファイル情報を記憶装置に保持させる処理、および任意のアプリケーションによってクローズされた任意のファイルに対して、当該ファイルをクローズする操作を行ったアプリケーションについて記憶装置に保持されているアプリ操作ファイル情報に基づいて、当該ファイルを暗号化対象とするか否かを判定する処理を実行させ、判定する処理で、ファイルをクローズする操作を行ったアプリケーションが起動してからこれまでに１つ以上の暗号化ファイルを開いたことがあれば、前記ファイルを暗号化対象と判定させることを特徴とする。
【００２０】
本発明による権限決定プログラムは、アプリケーションが起動してからこれまでに操作したファイルに関する情報であって、当該アプリケーションが開いたファイルに付されている操作権限のうち最も低い権限である最低権限を示す情報を含むアプリ操作ファイル情報を記憶装置に保持させる処理、および任意の新規保存ファイルまたは任意のアプリケーションによってオープンされた任意のファイルに対して、当該ファイルをクローズする操作を行ったまたは当該ファイルをオープンする操作を行ったアプリケーションについて記憶装置に保持されているアプリ操作ファイル情報に基づいて、当該ファイルに対して許可する操作権限を決定する処理を実行させ、操作権限を決定する処理で、最低権限を、ファイルに対して許可する操作権限として定めさせることを特徴とする。
【発明の効果】
【００２１】
本発明によれば、自動で暗号化を行う情報処理装置において、動作環境や処理対象ファイルによって異なる個別具体的な暗号化条件を指定しなくても、無駄な暗号化処理を低減し、かつ暗号化もれを適切に防ぐことができる。
【図面の簡単な説明】
【００２２】
【図１】第１の実施形態の情報処理装置の構成例を示すブロック図である。
【図２】第１の実施形態の情報処理装置の動作例を示すフローチャートである。
【図３】第１の実施形態の情報処理装置の動作例を示すフローチャートである。
【図４】第２の実施形態の情報処理装置の構成例を示すブロック図である。
【図５】第２の実施形態の情報処理装置の他の構成例を示すブロック図である。
【図６】第１の実施例の情報処理装置（コンピュータ５０）の構成例を示すブロック図である。
【図７】自動暗号化用ファイルフックプログラム５２の構成例を示す機能ブロック図である。
【図８】自動暗号化ファイルのファイル構造の例を示す説明図である。
【図９】ファイル管理情報保持部５２６が保持する情報の一例を示す説明図である。
【図１０】アプリケーション管理情報保持部５２７が保持する情報の一例を示す説明図である。
【図１１】第１の実施例のファイルオープン時のフック処理の動作例を示すフローチャートである。
【図１２】第１の実施例のファイルクローズ時のフック処理の動作例を示すフローチャートである。
【図１３】本発明の概要を示すブロック図である。
【図１４】本発明の概要を示すブロック図である。
【発明を実施するための形態】
【００２３】
実施形態１．
以下、本発明の実施形態について図面を参照して説明する。図１は、本発明の第１の実施形態の情報処理装置の構成例を示すブロック図である。図１に示す情報処理装置１は、ファイル操作検出手段１１と、アプリ操作ファイル情報登録手段１２と、アプリ操作ファイル情報保持手段１３と、暗号化判定手段１４と、暗号化手段１５とを備える。
【００２４】
ファイル操作検出手段１１は、アプリケーションからの所定のファイル操作が行われたことまたは行われることを検出する。例えば、オペレーティングシステムが提供するファイル操作用のＡＰＩをフックすることで、アプリケーションからの所定のファイル操作要求を検出してもよい。この場合、ファイル操作検出手段１１は、少なくともその要求によりファイルのオープン動作またはクローズ動作が行われるファイル操作要求を検出する。
【００２５】
アプリ操作ファイル情報登録手段１２は、ファイル操作検出手段１１によってアプリケーションが所定のファイル操作要求を行ったことが検出された場合に、当該ファイル操作の要求元であるアプリケーションの情報および操作対象とされたファイルの情報を取得する。そして、取得した中から必要な情報をアプリ操作ファイル情報として、アプリ操作ファイル情報保持手段１３に保持させる。ここでは、情報を登録するだけでなく、既に登録されている情報を書き換えたり、消去する動作も含まれる。以下、これらの動作をまとめて更新と呼ぶ。
【００２６】
アプリ操作ファイル情報登録手段１２は、アプリ操作ファイル情報として、少なくとも現在動作中の任意のアプリケーションについて、当該アプリケーションが起動から終了するまでの間に暗号化ファイルをオープンしたか否かがわかるような情報、例えば現在動作中のアプリケーションが起動してから今までに操作したファイルに関する情報を、アプリ操作ファイル情報保持手段１３に記憶させる。さらに、アプリ操作ファイル情報登録手段１２は、アプリケーション終了時または起動時に、当該アプリケーションに関するアプリ操作ファイル情報を削除またはクリアする機能を有していてもよい。また、アプリ操作ファイル情報登録手段１２は、該当するアプリケーションが復号を許可されているか否か、また復号処理が成功したか否かを含めて、暗号化ファイルを正しくオープンしたか否かを示す情報をアプリ操作ファイル情報保持手段１３に登録してもよい。
【００２７】
アプリ操作ファイル情報保持手段１３は、アプリ操作ファイル情報を保持するための記憶手段である。アプリ操作ファイル情報保持手段１３は、アプリ操作ファイル情報として、現在動作中のアプリケーションが起動してから今までに操作したファイルに関する情報を記憶する。例えば、暗号化ファイルをオープンしているアプリケーションプログラムに関する情報と、該アプリケーションプログラムによってオープンされているファイルに関する情報とを対応づけた情報を記憶してもよい。より具体的には、アプリケーションを識別するための識別子と、当該アプリケーションが起動してから今までに操作したファイルに暗号化ファイルが含まれていたか否かを示す暗号化ファイル操作フラグとを対応づけて記憶してもよい。さらに、そのファイル操作を行った時刻や、そのファイル操作を行ったユーザの情報を含んでいてもよい。
【００２８】
暗号化判定手段１４は、ファイル操作検出手段１１によってアプリケーションがファイルのクローズ操作要求を行ったことが検出された場合に、処理対象であるファイルが暗号化の対象であるか否かを判定する。暗号化判定手段１４は、アプリ操作ファイル情報保持手段１３に保持されているアプリ操作ファイル情報に基づいて、ファイルクローズ操作の要求元アプリケーションが今までに暗号化ファイルをオープンしたか否かを判定し、１つ以上の暗号化ファイルをオープンしていれば、それ以降にクローズするファイルを全て暗号化の対象とする。
【００２９】
暗号化手段１５は、暗号化判定手段１４の判定結果に基づいて、ファイルを暗号化する。
【００３０】
本実施形態において、ファイル操作検出手段１１、アプリ操作ファイル情報登録手段１２、暗号化判定手段１４、暗号化手段１５は、例えばプログラムに従って動作するＣＰＵによって実現される。また、アプリ操作ファイル情報保持手段１３は、例えば記憶装置によって実現される。また、ファイル操作検出手段１１、アプリ操作ファイル情報登録手段１２、暗号化判定手段１４、暗号化手段１５は、アプリケーションプログラムまたはそのモジュールとして提供され、情報処理装置１が備えるＣＰＵがそのアプリケーションプログラムまたはそのモジュールを読み込むことによって動作する仕組みであってもよい。
【００３１】
次に、本実施形態の動作について説明する。図２および図３は、本実施形態の情報処理装置１の動作の一例を示すフローチャートである。本実施形態の動作は、ファイルのオープン動作が行われるファイル操作要求を検出したときの動作と、ファイルのクローズ動作が行われるファイル操作要求を検出したときの動作とで大きく２つに分けられる。
【００３２】
図２は、ファイルのオープン動作を伴うファイル操作要求を検出した際の情報処理装置１の動作の一例を示すフローチャートである。図２に示す例は、まずファイル操作検出手段１１が、ファイルオープン動作を伴うファイル操作要求を検出するところから始まっている（ステップＳ１１）。
【００３３】
ファイル操作検出手段１１によってファイルオープン動作を伴うファイル操作要求が検出されると、アプリ操作ファイル情報登録手段１２が、要求元アプリケーションに関する情報を取得する（ステップＳ１２）。アプリ操作ファイル情報登録手段１２は、例えば、要求元アプリケーションのプロセスＩＤやアプリケーション名を得てもよい。
【００３４】
次いで、アプリ操作ファイル情報登録手段１２は、要求されたファイル操作（ここでは、ファイルオープン動作）を実行させ（ステップＳ１３）、その結果得られる情報を基に、操作対象ファイルに関する情報を得る（ステップＳ１４）。アプリ操作ファイル情報登録手段１２は、例えば、ファイルオープン操作の対象ファイルのファイルハンドルや、そのファイルのファイル識別子や、ヘッダ情報を得てもよい。
【００３５】
次いで、アプリ操作ファイル情報登録手段１２は、対象ファイルが暗号化ファイルであるか否かおよび暗号化ファイルであれば復号処理を含めて正しくオープンされたか否かを判定する（ステップＳ１５，Ｓ１６）。ここで、対象ファイルが暗号化ファイルであって正しくオープンされた場合には（ステップＳ１５のＹｅｓかつステップＳ１６のＹｅｓ）、アプリ操作ファイル情報登録手段１２は、要求元アプリケーションに関するアプリ操作ファイル情報を更新する（ステップＳ１７）。例えば、アプリ操作ファイル情報登録手段１２は、要求元アプリケーションのプロセスＩＤと対応づけて、暗号化ファイルをオープンしたことを示す暗号化ファイル操作フラグを、アプリ操作ファイル情報保持手段１３に登録してもよい。
【００３６】
なお、正しくオープンされない例としては、指定したファイルが存在しない、暗号化ファイルを復号できない（復号失敗や復号する権限を有しない）などが挙げられる。逆に、正しくオープンされた状況とは、要求元アプリケーションが暗号化ファイルの内容を、以降自由に扱える状態を指している。
【００３７】
また、このとき登録されたアプリ操作ファイル情報は、そのアプリケーションが動作している間保持されるものとする。例えば、アプリ操作ファイル情報登録手段１２が、アプリケーションの起動または終了が検出された際に、そのアプリケーションに関するアプリ操作ファイル情報をクリアする処理を行ってもよい。
【００３８】
また、上記動作は、既に１つ以上の暗号化ファイルを当該情報処理装置１が保持していることを前提としているが、これらの暗号化ファイルは、例えば、ユーザ操作によって手動で暗号化されたものであってもよいし、別の暗号化条件に従って自動で暗号化されたものであってもよい。もちろん、本発明による暗号化条件に従って自動で暗号化されたものであってもよい。
【００３９】
また、図３は、ファイルのクローズ動作を伴うファイル操作要求を検出した際の情報処理装置１の動作の一例を示すフローチャートである。図３に示す例は、まずファイル操作検出手段１１が、ファイルクローズ動作を伴うファイル操作要求を検出するところから始まっている（ステップＳ２１）。
【００４０】
ファイル操作検出手段１１によってファイルクローズ動作を伴うファイル操作要求が検出されると、暗号化判定手段１４は、要求元アプリケーションに関する情報を取得して、取得した要求元アプリケーションの情報を元に、当該アプリケーションのアプリ操作ファイル情報をアプリ操作ファイル情報保持手段１３から読み出す（ステップＳ２２，Ｓ２３）。
【００４１】
そして、要求元アプリケーションが、今までに暗号化ファイルを１つ以上オープンしていた場合には（ステップＳ２４のＹｅｓ）、当該ファイルを暗号化の対象に決定し、暗号化手段１５に暗号化処理を依頼する。暗号化手段１５は、暗号化判定手段１４の判定結果を受けて、対象ファイルを暗号化する（ステップＳ２５）。
【００４２】
その後、要求されたファイル操作（ここでは、ファイルクローズ動作）を実行する（ステップＳ２６）。
【００４３】
なお、アプリケーションが要求したファイル操作が、ファイルオープン動作とファイルクローズ操作の両方を伴うものである場合には、１回の検出において、上記で示した２つの動作を連続して行えばよい。
【００４４】
以上のように、本実施形態では、当該情報処理装置１上で動作する任意のアプリケーションに対して、「そのアプリケーションが１つ以上の暗号化ファイルをオープンしたこと」を暗号化条件として、自動暗号化処理を行っている。これにより、個別具体的な暗号化条件を設定、調査しなくても無駄な暗号化処理を低減し、かつ暗号化もれを適切に防ぐことができる。その理由は、暗号化条件がアプリケーションの処理内容やファイルの内容に非依存であるとともに、重要なファイルとして指定されたデータが今現在どのアプリケーションによって操作されうるかを認識可能にして、それに基づいて暗号化判定を行うからである。
【００４５】
実施形態２．
次に、本発明の第２の実施形態について説明する。第１の実施形態では、重要なファイルとして指定されたデータが今現在どのアプリケーションによって操作されうるかに基づいて暗号化判定を行うという着眼点の下、アプリ操作ファイル情報を保持し、それに基づいて暗号化の対象とするか否かの判定を行ったが、本実施形態では、同様の着眼点の下、アプリ操作ファイル情報を、ファイルに適切な権限を付すために利用する。
【００４６】
図４は、本実施形態の情報処理装置の構成例を示すブロック図である。図４に示す例では、情報処理装置２は、図１に示す構成の暗号化判定手段１４および暗号化手段１５に代えて、権限決定手段２１と権限付与手段２２とを備えている。また、アプリ操作ファイル情報登録手段１２がアプリ操作ファイル情報登録手段１２’に変更され、アプリ操作ファイル情報保持手段１３がアプリ操作ファイル情報保持手段１３’に変更されている。
【００４７】
アプリ操作ファイル情報登録手段１２’は、アプリ操作ファイル情報として、そのアプリケーションで起動からこれまでの間に開いたファイルに付された権限のうち最も低い権限すなわち今までに開いたファイルのうち最も制限がかけられているファイルにおいて許されている権限を示す情報をアプリ操作ファイル情報保持手段１３’に保持させる。
【００４８】
権限決定手段２１は、ファイル操作検出手段１１によってアプリケーションが所定のファイル操作要求を行ったことが検出された場合に、アプリ操作ファイル情報保持手段１３に保持されているアプリ操作ファイル情報に基づいて、当該ファイルに付与する権限を決定する。
【００４９】
権限決定手段２１は、例えば、ファイルクローズ時に操作対象とされたファイルに対して、そのファイル操作の要求元であるアプリケーションが起動してからこれまでに開いたファイルに付された権限のうち最低権限を付与するよう決定してもよい。
【００５０】
また、例えば、ファイルオープン時に、そのファイルに付されている権限に関わらず、そのファイル操作の要求元であるアプリケーションが起動してからこれまでに開いたファイル（当該ファイルを含む）に付された権限のうち最低権限で動作するように制御してもよい。
【００５１】
権限付与手段２２は、権限決定手段２１による決定に基づいて、指定されたファイルまたは指定されたファイルを操作するアプリケーションに当該ファイルに関する権限を付与する。
【００５２】
以上のように、本実施形態によれば、ＤＲＭシステムと連携して、アプリケーションが複数のＤＲＭファイルを開いている時に、これら任意のファイルに対して、最も制限の厳しい権限を保存時やアプリケーションからの操作時に設定でき、アプリケーションによってファイル内容の転記などが行われる場合であっても、権限が不当に緩和されるることを防ぐことができる。
【００５３】
また、図５は、第２の実施形態の情報処理装置の他の構成例を示すブロック図である。図５に示す情報処理装置３のように、図１に示す自動暗号化機能を有する情報処理装置１と図４に示す情報処理装置２とを組み合わせて用いることも可能である。図５は、第２の実施形態の情報処理装置の他の構成例を示すブロック図である。この場合、アプリ操作ファイル情報登録手段１２’’は、アプリ操作ファイル情報として、少なくとも現在動作中の任意のアプリケーションについて、当該アプリケーションが起動から終了するまでの間に暗号化ファイルをオープンしたか否かを示す情報に加えて、そのアプリケーションで起動からこれまでの間に開いたファイルに付された権限のうち最も低い権限すなわち今までに開いたファイルのうち最も制限がかけられているファイルにおいて許されている権限を示す情報をアプリ操作ファイル情報保持手段１３’’に保持させればよい。
【００５４】
また、権限決定手段２１は、例えば、ファイルを自動で暗号化する際に、そのファイルに、そのファイルを閉じるアプリケーションがこれまでに開いたファイルに付された権限のうちの最低権限を付与するように動作してもよい。
【実施例１】
【００５５】
以下、実施例を用いて上記実施形態を説明する。図６は、本発明の情報処理装置の他の構成例を示すブロック図である。図６は、上記第１の実施形態の情報処理装置の一実施例に相当するコンピュータ５０の例を示すブロック図である。
【００５６】
図６に示すコンピュータ５０は、図示省略しているが、主制御手段としてＣＰＵ、主記憶手段としてＲＯＭやＲＡＭ、補助記憶手段としてハードディスク、入出力インタフェースとしてのキーボードやマウスおよびディスプレイ、通信インタフェースとしてのＬＡＮボード等を備えた一般的な情報処理装置であって、そのような物理手段を動作させるための各種機能手段として、アプリケーションプログラム５１と、自動暗号化用ファイルフックプログラム５２と、オペレーティングシステム５３と、暗復号化処理プログラム５５とがインストールされている。なお、これらのプログラムは、ネットワーク等の通信手段により提供されたり、ＣＤ−ＲＯＭ等の記録媒体に格納して提供されることも可能である。
【００５７】
アプリケーションプログラム５１は、文書の作成、編集などを行うための一般的なソフトウェアである。オペレーティングシステム５３は、コンピュータ５０を統括管理するソフトウェアである。なお、オペレーティングシステム５３の例として、例えば、ＷｉｎｄｏｗｓやＬｉｎｕｘ（いずれも登録商標）が挙げられる。
【００５８】
自動暗号化用ファイルフックプログラム５２は、オペレーティングシステム５３上でファイル処理を行うプログラムをフックするソフトウェアである。具体的には、オペレーティングシステム５３に含まれるファイル処理を行うＡＰＩをフックし、自動暗号化に必要な各種処理を実施するソフトウェアである。そのため、アプリケーションプログラム５１によるＡＰＩを用いたファイル処理は、この自動暗号化用フックプログラム５２を経由して行われる。フックの実現方法は、従来より良く知られている手法を用いればよい。
【００５９】
なお、以下に示す例では、ファイル処理を行うＡＰＩとして、「ＣｒｅａｔｅＦｉｌｅ（）」、「ＣｌｏｓｅＨａｎｄｌｅ（）」、「Ｅｘｉｔｐｒｏｃｅｓｓ（）」をフックする場合について説明するが、フック対象とするＡＰＩはこれに限定されない。例えば、「ＲｅａｄＦｉｌｅ（）」、「ＷｒｉｔｅＦｉｌｅ（）」、「ＳｅｔＦｉｌｅＰｏｉｎｔｅｒ（）」、「ＧｅｔＦｉｌｅＳｉｚｅ（）」などを含めてもよい。なお、これらのＡＰＩでは、暗号化ファイルのファイル構成が図８に示すように非暗号化ファイルと異なるためにその差分を吸収するための各種処理を行うが、ファイルを暗号化対象とするか否かの判定処理には直接かかわらないため、説明省略する。
【００６０】
ここで、これらＡＰＩを用いたファイル処理の大まかな流れについて説明すると、最初に「ＣｒｅａｔｅＦｉｌｅ（）が呼び出されファイルがオープンされるとともに、ファイルハンドルと呼ばれる識別子が呼び出し元のアプリケーションに渡される。このファイルハンドルを指定して「ＲｅａｄＦｉｌｅ（）」や「ＷｒｉｔｅＦｉｌｅ（）」等が呼びだれると、当該ファイルに対して読み込みや書き込み等が行われる。また、「ＣｌｏｓｅＨａｎｄｌｅ（）」が呼び出されるとそのファイルが閉じられ、一連のファイル処理が終了する。また、「ＥｘｉｔＰｒｏｃｅｓｓ（）」が呼び出された場合には、そのアプリケーションプログラムが終了する。
【００６１】
記憶装置５４は、主記憶手段と補助記憶手段とを含み、本実施例では、ファイル等を含む各種データを記憶する。なお、図６に示す例では、通常ファイル５４ｂと、暗号化ファイル５４ａとが記憶されている。
【００６２】
暗復号化処理プログラム５５は、指定されたファイルを暗号化したり、復号する処理を行う。暗復号化処理プログラム５５が行う暗号化処理および復号処理には、ユーザが対象ファイルを選択後、コンテキストメニュー等で指示する場合に行われる暗号化処理および復号処理も含まれる。
【００６３】
図７は、自動暗号化用ファイルフックプログラム５２のより具体的な構成例を示す機能ブロック図である。図７に示す自動暗号化用ファイルフックプログラム５２は、ＡＰＩ監視部５２１と、暗号化判定部５２２と、復号判定部５２３と、暗号化処理部５２４と、復号処理部５２５と、ファイル管理情報保持部５２６と、アプリケーション管理情報保持部５２７と、メイン制御部５２８とを含む。
【００６４】
ＡＰＩ監視部５２１は、ファイル処理に関わるＡＰＩを監視する。ＡＰＩ監視部５２１は、例えば、ＡＰＩ呼び出し指示検出部５２１ａを有し、このＡＰＩ呼び出し指示検出部５２１ａが、監視対象のＡＰＩに対するアプリケーションプログラム５１からの呼び出し指示を検出してもよい。
【００６５】
暗号化判定部５２２は、ＡＰＩ監視部５２１によるＡＰＩの監視の結果、監視対象のＡＰＩに対するアプリケーションからの呼び出し指示が行われたことが検出されると、該ＡＰＩにおいて処理対象とされたファイルが暗号化処理の対象となるか否かを判定する。
【００６６】
復号判定部５２３は、ＡＰＩ監視部５２１によるＡＰＩの監視の結果、監視対象のＡＰＩに対するアプリケーションからの呼び出し指示が行われたことが検出されると、該ＡＰＩにおいて処理対象とされたファイルが復号処理の対象となるか否かを判定する。なお、本実施例では、少なくとも暗号化処理部５２４で暗号化されたファイルは図８に示すようなファイル構造をとるものとする。図８に示すファイル構造は、ファイルが暗号化されていることを示すために、ヘッダに「ＦＸＥＮＣＤＡＴ」の文字列を書き込まれている。なお、識別方法はこれに限定されない。例えば、任意の文字列に変更可能である。なお、この他、ファイルの識別子によって識別することも可能である。
【００６７】
暗号化処理部５２４は、暗号化判定部５２２の判定結果を受けて、指定されたファイルに対して暗号化処理を行う。
【００６８】
復号処理部５２５は、復号判定部５２３の判定結果を受けて、指定されたファイルに対して復号処理を行う。
【００６９】
ファイル管理情報保持部５２６は、処理対象とされたファイルに関する情報を保持する。ファイル管理情報保持部５２６は、例えば、処理対象とされたファイルに関する情報として、図９に示すようなファイル管理テーブルを保持してもよい。図９は、ファイル管理情報保持部５２６が保持する情報の一例を示す説明図である。図９に示すファイル管理テーブルには、ファイル識別子としての機能を果たすファイルハンドルと対応づけて、当該ファイルを利用しているアプリケーションプログラムのプロセスＩＤ、バッファ内におけるファイルの先頭位置アドレスを示す先頭位置情報、ファイルの読み出し位置を示す現在位置情報と、ファイルの大きさを示すファイルサイズとが保持される。
【００７０】
アプリケーション管理情報保持部５２７は、暗号化されたファイルを利用しているアプリケーションプログラムに関する情報を保持する。アプリケーション管理情報保持部５２７は、暗号化されたファイルを利用しているアプリケーションに関する情報として、例えば、図１０に示すようなアプリケーション管理テーブルを保持してもよい。図１０は、アプリケーション管理情報保持部５２７が保持する情報の一例を示す説明図である。図１０に示すアプリケーション管理テーブルには、アプリケーションプログラムの単位であるプロセスを識別するプロセスＩＤと対応づけて、アプリケーションプログラムの実行ファイル名を示すプログラム名が保持される。
【００７１】
制御部５２８は、自動暗号化用ファイルフックプログラム５２における各種処理を統括制御する。自動暗号化用ファイルフックプログラム５２に実装される各処理機能部（例えば、ＡＰＩ監視部５２１や、暗号化判定部５２２、復号判定部５２３、暗号化処理部５２４、復号処理部５２５、ファイル管理情報保持部５２６、アプリケーション管理情報保持部５２７）は、この制御部５２８からの指示に従って動作する。また、制御部５２８は、各処理機能部間で発生するデータの入出力も制御する。
【００７２】
なお、本実施例では、アプリケーションプログラム５１、自動暗号化用ファイルフックプログラム５２の各処理機能部、オペレーティングシステム５３または暗復号処理プログラム５５が各種処理を行うといった表現を用いるが、そのような場合には、それらプログラムまたはモジュールを読み込んだＣＰＵが、読み込んだプログラムまたはモジュールに従って動作することにより各種処理を規定したコードを実行することを意味する。また、自動暗号化用ファイルフックプログラム５２に含まれるファイル管理情報保持部５２６やアプリケーション管理情報保持部５２７が情報を保持するといった表現を用いるが、そのような場合には、自動暗号化用ファイルフックプログラム５２に含まれる各種定義および処理に従ってＣＰＵが動作することにより、ファイル管理情報保持部５２６用またはアプリケーション管理情報保持部５２７用の記憶領域が記憶装置等に確保され、その記憶領域にデータが記憶されることを意味する。
【００７３】
次に、本実施形態の動作を説明する。図１１は、自動暗号化用ファイルフックプログラム５２によるＡＰＩフック処理のうちファイルオープン時のフック処理の動作例を示すフローチャートである。なお、図１１では、ファイルオープン時に呼び出されるＡＰＩ「ＣｒｅａｔｅＦｉｌｅ（）」を例に用いてファイルオープン時の自動暗号化用ファイルフックプログラム５２におけるフック処理の動作例を示している。
【００７４】
図１１に示すように、アプリケーションプログラム５１から「ＣｒｅａｔｅＦｉｌｅ（）」の呼び出しが指示されると、自動暗号化用ファイルフックプログラム５２のＡＰＩ呼び出し指示検出部５２１ａがその呼び出し指示を検出する（ステップＳ１０１）。なお、この「ＣｒｅａｔｅＦｉｌｅ（）」の引数には、処理対象となるファイル名や、ファイルの存在の真偽に応じたより詳細な動作方法の指定などが設定される。
【００７５】
呼び出し指示が検出されると、自動暗号化用ファイルフックプログラム５２の制御部５２８は、指示されたＡＰＩ「ＣｒｅａｔｅＦｉｌｅ（）」を呼び出し、呼び出したＡＰＩによってファイルをオープンさせる（ステップＳ１０２）。ファイルがオープンされると、戻り値としてファイルハンドルが渡される。
【００７６】
ファイルオープンが済むと、自動暗号化用ファイルフックプログラム５２では、復号判定部５２３が、処理対象のファイルが復号処理の対象であるかを判定する（ステップＳ１０３）。復号判定部５２３は、例えば、ファイルヘッダに文字列「ＦＸＥＮＣＤＡＴ」が設定されているか否か、およびＡＰＩの呼び出し元アプリケーションがファイルの復号を許可されているアプリケーションプログラムであるか否かによって判定してもよい。本例では、ファイルヘッダに「ＦＸＥＮＣＤＡＴ」が設定され、かつ、呼び出し元がファイルの復号を許可されているアプリケーションプログラムである場合には当該ファイルを復号処理の対象であると判定する。なお、ファイルヘッダの参照には、「ＲｅａｄＦｉｌｅ（）」などのＡＰＩを用いればよい。
【００７７】
なお、復号化許可の判定条件は、呼び出し元アプリケーションプログラムを用いる以外にも、ファイルの拡張子、ユーザＩＤ、パスワード、グループＩＤ、ファイルパス、有効期限、オープン回数などと組み合わせたものを判定条件としてもよい。
【００７８】
判定の結果、復号処理の対象でないと判定された場合には（ステップＳ１０４のＮｏ）、この結果を受けた制御部５２８が、ファイル内からそのままデータ本体を読み出し、バッファに展開する（ステップＳ１０５）。次いで、制御部５２８からの指示を受けたファイル管理情報保持部５２６が、オープンされているファイルに関わる情報として、当該ファイルをオープンしたアプリケーションを識別するためのプロセスＩＤを含む情報をファイル管理テーブルに設定する（ステップＳ１１２）。その後、制御部５２８は、ファイルハンドルをＡＰＩを呼び出したアプリケーションプログラム５１に引き渡して（ステップＳ１１３）、このＡＰＩの呼び出し指示による一連の処理を終了する。
【００７９】
一方、判定の結果、渡されたファイルハンドルによって示されるファイルが復号処理の対象であると判断された場合には（ステップＳ１０４のＹｅｓ）、この結果を受けた制御部５２８が、ファイル内から暗号化されたＡＥＳ（Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）鍵を読み出し（ステップＳ１０６）、復号処理部５２５にユーザの秘密鍵を用いてＡＥＳ鍵を復号させる（ステップＳ１０７）。なお、秘密鍵がなかった場合には、ＡＥＳ鍵を復号できないため復号失敗とすればよい（ステップＳ１０８のＮｏ）。この場合、制御部５２８は、ファイルオープンエラーをアプリケーションプログラム５１に返す（ステップＳ１１１）。
【００８０】
復号処理部５２５は、秘密鍵によりＡＥＳ鍵が復号されると（ステップＳ１０８のＹｅｓ）、次に、ファイル内からデータ本体を読み出して、これをバッファに展開するとともに復号されたＡＥＳ鍵を用いて当該データ本体を復号する（ステップＳ１０９）。
【００８１】
復号処理部５２５による復号処理が完了すると、制御部５２８からの指示を受けたアプリケーション管理情報保持部５２７が、呼び出し元のアプリケーションについて、当該アプリケーションが暗号化ファイルをオープンしたことを示すために、当該アプリケーションに関する情報をアプリケーション管理テーブルに設定する（ステップＳ１１０）。ここでは、アプリケーション管理テーブルに、当該アプリケーションプログラムを識別するための識別子としてのプロセスＩＤと、アプリケーションプログラムがどのようなプログラムであるかを示すプログラム名とを含む情報を登録する。
【００８２】
以降は、復号対象でないファイルをオープンした場合と同様の処理を行えばよい。すなわち、ファイル管理情報保持部５２６が、当該ファイルに係わる情報をファイル管理テーブルに設定し（ステップＳ１１２）、その後制御部５２８が、ファイルハンドルをＡＰＩを呼び出したアプリケーションプログラム５１に引き渡して（ステップＳ１１３）、このＡＰＩの呼び出し指示による一連の処理を終了する。
【００８３】
また、図１２は、自動暗号化用ファイルフックプログラム５２によるＡＰＩフック処理のうちファイルクローズ時のフック処理の動作例を示すフローチャートである。なお、図１２では、ファイルクローズ時に呼び出されるＡＰＩ「ＣｌｏｓｅＨａｎｄｌｅ（）」を例に用いてファイルクローズ時の自動暗号化用ファイルフックプログラム５２におけるフック処理の動作例を示している。
【００８４】
図１２に示すように、アプリケーションプログラム５１から「ＣｌｏｓｅＨａｎｄｌｅ（）」の呼び出しが指示されると、自動暗号化用ファイルフックプログラム５２のＡＰＩ呼び出し指示検出部５２１ａがその呼び出し指示を検出する（ステップＳ２０１）。なお、この「ＣｌｏｓｅＨａｎｄｌｅ（）」の引数には、処理対象となるファイルに割り当てられたファイルハンドルなどが設定される。
【００８５】
呼び出し指示が検出されると、自動暗号化用ファイルフックプログラム５２の制御部５２８は、呼び出し指示がされたＡＰＩにて処理対象となるファイルがファイル管理テーブルに登録済みであるか否かの確認を行う（ステップＳ２０２）。この登録済みであるか否かの確認は「ＣｌｏｓｅＨａｎｄｌｅ（）」の引数に設定されたファイルハンドルがファイル管理テーブルに登録されているか否かに基づき行われる。
【００８６】
確認の結果、当該処理対象となるファイルがファイル管理テーブルに登録されていなかった場合には（ステップＳ２０３のＮｏ）、制御部５２８は、そのまま「ＣｌｏｓｅＨａｎｄｌｅ（）」を呼び出し、呼び出したＡＰＩによってファイルをクローズさせる（ステップＳ２０４）。そして、その処理結果をアプリケーションプログラム５１に引き渡して（ステップＳ２０５）、このＡＰＩの呼び出し指示による一連の処理を終了する。
【００８７】
一方、当該処理対象となるファイルがファイル管理テーブルに登録されていた場合には（ステップＳ２０３のＹｅｓ）、制御部５２８は、「ＳｅｔＦｉｌｅＰｏｉｎｔｅｒ（）」を呼び出し、バッファ内におけるデータの読み出し位置を先頭に移す（ステップＳ２０６）。
【００８８】
次に、制御部５２８はファイル管理情報保持部５２６に指示し、ファイル管理テーブルから当該ファイルハンドルに対応するプロセスＩＤを取得し、取得したプロセスＩＤがファイル管理テーブルに登録されているか否かを確認する（ステップＳ２０７）。
【００８９】
確認の結果、ファイル管理テーブルに指定されたプロセスＩＤが登録されていなかった場合には（ステップＳ２０８のＮｏ）、制御部５２８は、バッファの内容をそのままファイルに書き込んだ後（ステップＳ２０９）、「ＣｌｏｓｅＨａｎｄｌｅ（）」を呼び出してファイルをクローズさせる。それとともに、ファイル管理テーブル上の対応するファイル情報を削除して（ステップＳ２１０）、このＡＰＩの呼び出し指示による一連の処理を終了する。
【００９０】
一方で、ファイル管理テーブルに指定されたプロセスＩＤが登録されていた場合には（ステップＳ２０８のＹｅｓ）、暗号化処理部５２４による暗号化処理が開始される。この暗号化処理ではまず、所定の文字列が書き込まれたヘッダをファイルに書き込む（ステップＳ２１１）。
【００９１】
ヘッダの書き込みが終了すると、暗号化処理部５２４は、ＡＥＳ鍵を生成して、生成したＡＥＳ鍵をユーザの公開鍵を用いて暗号化する（ステップＳ２１２）。また、生成されたＡＥＳ鍵を用いてバッファ内のデータ本体を暗号化する（ステップＳ２１３）。その後、公開鍵を用いて暗号化されたＡＥＳ鍵と、ＡＥＳ鍵を用いて暗号化されたデータ本体とをファイルに書き込み（ステップＳ２１４）、暗号化処理を終了する。
【００９２】
暗号化処理部５２４による暗号化処理が終了すると、制御部５２８は、「ＣｌｏｓｅＨａｎｄｌｅ（）」を呼び出してファイルをクローズさせるとともに、ファイル管理テーブル上の対応するファイル情報を削除して（ステップＳ２１０）、このＡＰＩの呼び出し指示による一連の処理を終了する。
【００９３】
次に、プロセス終了時のフック処理の自動暗号化用ファイルフックプログラム５２の動作を説明する。なお、ここでは、起動中のアプリケーションのプロセスの終了時に呼び出される「ＥｘｉｔＰｒｏｃｅｓｓ（）」を例に用いてロセス終了時のフック動作を説明する。
【００９４】
アプリケーションプログラム５１から「ＥｘｉｔＰｒｏｃｅｓｓ（）」の呼び出しが指示されると、ＡＰＩ呼び出し指示検出部５２１ａがその呼び出し指示を検出する。呼び出し指示が検出されると、制御部５２８は、「ＥｘｉｔＰｒｏｃｅｓｓ（）」を呼び出すことによりプロセスを終了するとともに、アプリケーション管理テーブル上の対応するアプリケーション情報を削除する。
【００９５】
以上のように、本実施例によれば、自動暗号用ファイルフックプログラム５２が、ファイル管理情報保持部５２６とアプリケーション管理情報保持部５２７とを用いて、当該コンピュータ５０上で動作しているアプリケーションについて、そのアプリケーションが今までに１つ以上の暗号化ファイルをオープンしたか否かを示す情報を管理し、その情報に基づいて、ファイルクローズ時に当該ファイルを暗号化するか否かを判定するので、個別具体的な暗号化条件を設定することを要せずに、無駄な暗号化処理を低減し、かつ暗号化もれを適切に防ぐことができる。
【００９６】
なお、上記実施例においては、Ｗｉｎｄｏｗｓに設けられているＡＰＩをフックする場合について説明したが、他のオペレーティングシステムにも同等のＡＰＩが用意されているので、他のオペレーティングシステムの場合にはそれら同等のＡＰＩをフックして上記同様の処理を行えばよい。
【００９７】
また、本発明は、上記および図面に示す実施例に限定されることなく、その要旨を変更しない範囲内で変更して実施できるものである。ここで、変形例について幾つか列挙する。
【００９８】
例えば、以下のようにしてＤＲＭシステムと連携させる応用が可能である。すなわち、アプリケーション管理テーブルに、当該アプリケーションで開いたファイルに付与されている操作権限のうち最も低いものを保持するようにし、暗号化処理（図１２のステップＳ２１１〜Ｓ２１４）で、そのファイルを開いたアプリケーションについてのアプリケーション管理テーブルに保持された最低権限を付与して暗号化する。これにより、複数のＤＲＭファイルを開いている時には、最も制限の厳しい権限を新規保存ファイルに設定でき、制限のより緩い権限のファイルが作成されることを防ぐことができる。
【００９９】
例えば、１つのアプリケーションで「編集、コピー／ペースト」のみが許可されたファイルＡと、「編集、コピー／ペースト、印刷」のみが許可されたファイルＢとを開いている場合、これまでのＤＲＭシステムでは、ファイルＡの内容をファイルＢにコピーし、保存することでファイルＢの権限で印刷できてしまう。このようなファイル内容の転記などによる権限の不当な緩和を阻止するために、ファイルＢを保存する際にそのアプリケーションで開いたファイルの権限のうち最も低いものとして、ファイルＡの権限「編集、コピー／ペースト」と同等の権限をファイルＢに付与することで、権限の不当な緩和を阻止できる。
【０１００】
また、ＤＲＭシステムと連携する他の例としては、各アプリケーションを、そのアプリケーションについてのアプリケーション管理テーブルに保持された最低権限で動作させてもよい。上記例でいうと、ファイルＢを開いた際またはファイルＡを開いた際に、そのアプリケーションで開いたファイルの権限のうち最も低いものとして、ファイルＡの権限「編集、コピー／ペースト」と同等の権限を、現在開いているファイルＡおよびＢに付与することで、保存前のファイルＢに対しても権限の不当な緩和を阻止できる。
【０１０１】
なお、上記各実施例はいずれもプロセスＩＤとファイルとが１対１で対応していることを前提に、そのプロセスＩＤによって識別されるアプリケーションによって重要なファイルがオープンされた場合に、そのアプリケーションがそれ以降に扱うファイルは、それより前にオープンした重要なファイルの内容を上書きしたものまたは転記したもの（別名にして保存するもの）である可能性があるとして、当該ファイルを暗号化処理の対象としたり、最低権限を付与する例を示した。
【０１０２】
しかし、アプリケーションによっては１つプロセスが複数のファイルを開けるなど、必ずしもプロセスＩＤとファイルとが１対１に対応していないものがある。その場合、あるプロセスＩＤで識別されるアプリケーションが重要なファイルをオープンしたとしても、その重要なファイルの内容がそのプロセス内でどのバッファに管理されているかまでは他のプログラムからは見ることができない。そのような場合には、そのアプリケーションがそれ以降に扱うファイルは全て、それより前にオープンした重要なファイルの内容を上書きしたものまたは転記したもの（別名にして保存するもの）である可能性があるとして、当該ファイルを暗号化処理の対象としたり、最低権限を付与するようにしている。なお、この場合、必ずしも暗号化処理する必要のないファイルも暗号化されたり最低権限が付与されることになるが、アプリケーション名を指定して一律に暗号化処理する場合と比べれば暗号化処理による無駄は少なく、また不要であればユーザが後に手動で解除できるものであり、暗号化の対象とせずに、暗号化もれが発生するよりは好ましいと考える。
【０１０３】
なお、メモ帳アプリケーションのようにプロセスＩＤとファイルとが１対１に対応している場合であっても、メモ帳アプリケーション間でファイル内容の転記が行われる可能性もあることから、そのような場合にも暗号化条件を適用させたい場合には、プロセスＩＤ単位ではなくアプリケーション名を単位に、暗号化ファイルを開いたか否かや開いたファイルの最低権限を管理するようにしてもよい。すなわち、プロセスＩＤを単位に管理していたアプリケーションについての情報を、アプリケーション名を単位に管理するようにすればよい。それにより、同じアプリケーション名を有するアプリケーションが１つでも起動された場合に、そのアプリケーション名を有するアプリケーションによって１つ以上の暗号化ファイルがオープンされていれば、それ以降同じ名をもつアプリケーションが起動されている間に限り、それらアプリケーションが保存するファイルは暗号化対象であると判定することができる。また、例えば、同じアプリケーション名を有するアプリケーションが１つでも起動された場合に、そのアプリケーション名を有するアプリケーションは、同じ名を有するアプリケーションが開いたファイルに付された権限のうち最低権限で動作したり、それ以降に保存するファイルにその最低権限を付すことができる。
【０１０４】
次に、本発明の概要について説明する。図１３および図１４は、本発明の情報処理装置の概要を示すブロック図である。
【０１０５】
図１３に示す情報処理装置は、自動で暗号化を行う情報処理装置であって、アプリ操作ファイル情報保持手段１０１と、暗号化判定手段１０２とを備えている。
【０１０６】
アプリ操作ファイル情報保持手段１０１は、アプリケーションが起動してからこれまでに操作したファイルに関する情報であって、当該アプリケーションが１つ以上の暗号化ファイルを開いたか否かを示す情報を含むアプリ操作ファイル情報を保持する。アプリ操作ファイル情報保持手段１０１は、例えば、プロセスＩＤまたはアプリケーション名を単位に識別され、当該情報処理装置上で動作する任意のアプリケーションについて、当該アプリケーションが起動してからこれまでに操作したファイルに関する情報を保持してもよい。なお、アプリ操作ファイル情報保持手段１０１は、上記実施形態では、アプリ操作ファイル情報保持手段１３やアプリケーション管理情報保持部５２７として示されている。
【０１０７】
暗号化判定手段１０２は、任意のアプリケーションによってクローズされた任意のファイルに対して、当該ファイルをクローズする操作を行ったアプリケーションについてアプリ操作ファイル情報保持手段に保持されているアプリ操作ファイル情報に基づいて、当該ファイルを暗号化対象とするか否かを判定する。なお、暗号化判定手段１０２は、上記実施形態では、暗号化判定手段１４や暗号化判定部５２２として示されている。
【０１０８】
そのように構成されることによって、個別具体的な暗号化条件を設定することを要せずに、無駄な暗号化処理を低減し、かつ暗号化もれを適切に防ぐことができる。
【０１０９】
また、暗号化判定手段１０２は、例えば、任意のファイルに対して、当該ファイルをクローズする操作を行ったアプリケーションが起動してからこれまでに１つ以上の暗号化ファイルを開いたことがあれば、当該ファイルを暗号化対象と判定してもよい。
【０１１０】
また、本発明による情報処理装置は、アプリケーションからの所定のファイル操作要求を検出するファイル操作検出手段と、ファイル操作検出手段によってアプリケーションがファイルのオープン動作を伴うファイル操作要求を行ったことが検出された場合に、当該ファイル操作要求の要求元であるアプリケーションの情報および操作対象とされたファイルの情報を取得して、アプリ操作ファイル情報保持手段に保持させるアプリ操作ファイル情報を更新するアプリ操作ファイル情報登録手段と、指定されたファイルに対して暗号化処理を実施する暗号化手段とを備え、暗号化判定手段は、ファイル操作検出手段によってアプリケーションがファイルのクローズ動作を伴うファイル操作要求を行ったことが検出された場合に、当該ファイル操作の要求元アプリケーションについてアプリ操作ファイル情報保持手段に保持されているアプリ操作ファイル情報に基づいて、操作対象とされたファイルを暗号化対象とするか否かを判定し、暗号化手段は、暗号化判定手段によって暗号化対象と判定されたファイルに対して暗号化処理を実施してもよい。
【０１１１】
また、アプリ操作ファイル情報登録手段は、ファイル操作検出手段によってアプリケーションがファイルのオープン動作を伴うファイル操作要求を行ったことが検出された場合に、操作対象とされたファイルが暗号化ファイルであって、かつアプリケーションが暗号化ファイルの復号を許可されたアプリケーションであって正しく復号できた場合に、アプリ操作ファイル情報保持手段に、アプリケーションが１つ以上の暗号化ファイルを開いたことを示す情報を含むアプリ操作ファイル情報を保持させてもよい。
【０１１２】
また、ファイルのファイルハンドルと、当該ファイルをオープンしているアプリケーションを識別する情報とを対応づけて保持するファイル管理情報保持手段を備えていてもよい。
【０１１３】
また、図１４に示す情報処理装置は、ファイルに対して許可する操作権限を自動で決定する情報処理装置であって、アプリ操作ファイル情報保持手段２０１と、権限決定手段２０２とを備えている。
【０１１４】
アプリ操作ファイル情報保持手段２０１は、アプリケーションが起動してからこれまでに操作したファイルに関する情報であって、当該アプリケーションが開いたファイルに付されている操作権限のうち最も低い権限である最低権限を示す情報を含むアプリ操作ファイル情報を保持する。なお、アプリ操作ファイル情報保持手段２０１は、上記実施形態では、アプリ操作ファイル情報保持手段１３’やアプリケーション管理情報保持部５２７として示されている。
【０１１５】
権限決定手段２０２は、任意の新規保存ファイルまたは任意のアプリケーションによってオープンされた任意のファイルに対して、当該ファイルをクローズする操作を行ったまたは当該ファイルをオープンする操作を行ったアプリケーションについてアプリ操作ファイル情報保持手段に保持されているアプリ操作ファイル情報に基づいて、当該ファイルに対して許可する操作権限を決定する。
【０１１６】
そのように構成されることによって、ファイルに対して許可されるアプリケーションの操作権限が不当に緩和されるることを防ぐことができる。
【０１１７】
なお、図１４に示す情報処理装置の例においても、さらに、アプリケーションからの所定のファイル操作要求を検出するファイル操作検出手段や、指定されたファイルに対して指定された権限を付与する制御を行う権限付与手段や、ファイルのファイルハンドルと、当該ファイルをオープンしているアプリケーションを識別する情報とを対応づけて保持するファイル管理情報保持手段を備えていてもよい。
【産業上の利用可能性】
【０１１８】
本発明は、装置自体の用途を問わず、各種ファイル処理を行う情報処理装置、ファイル処理プログラム全般に適用可能である。
【符号の説明】
【０１１９】
１，２，３  情報処理装置
１１  ファイル操作検出手段
１２，１２’，１２’’  アプリ操作ファイル情報登録手段
１３，１３’，１３’’  アプリ操作ファイル情報保持手段
１４  暗号化判定手段
１５  暗号化手段
２１  権限決定手段
２２  権限付与手段
５０  コンピュータ
５１  アプリケーションプログラム
５２  自動暗号化用ファイルフックプログラム
５３  オペレーティングシステム
５４  記憶装置
５５  暗復号処理プログラム
５２１  ＡＰＩ監視部
５２１ａ  ＡＰＩ呼び出し検出部
５２２  暗号化判定部
５２３  復号判定部
５２４  暗号化処理部
５２５  復号処理部
５２６  ファイル管理情報保持部
５２７  アプリケーション管理情報保持部
１０１，２０１  アプリ操作ファイル情報保持手段
１０２  暗号化判定手段
２０２  権限決定手段
【図１】
0005867190.tif 000002
【図２】
0005867190.tif 000003
【図３】
0005867190.tif 000004
【図４】
0005867190.tif 000005
【図５】
0005867190.tif 000006
【図６】
0005867190.tif 000007
【図７】
0005867190.tif 000008
【図８】
0005867190.tif 000009
【図９】
0005867190.tif 000010
【図１０】
0005867190.tif 000011
【図１１】
0005867190.tif 000012
【図１２】
0005867190.tif 000013
【図１３】
0005867190.tif 000014
【図１４】
0005867190.tif 000015