(57)【特許請求の範囲】
【請求項１】
いずれかのアプリケーションプログラムが記憶装置に保存されたいずれかのファイルを開くことを要求したとき、当該ファイルが前記記憶装置内のあらかじめ定められた機密情報保存用フォルダに保存されているファイルであるか否かを判別するステップと、
前記アプリケーションプログラムが開いている前記ファイルが前記機密情報保存用フォルダに保存されているファイルであると判別された場合にデータの転送に用いられる共有データエリアをロックすることにより、前記ファイルの少なくとも一部を他のアプリケーションプログラムが開いている他のファイルに転送することを禁止するステップと、
をコンピュータに実行させるためのプログラム。
【請求項２】
前記禁止するステップは、前記機密情報保存用フォルダに保存されているファイルを含む複数のファイルが開いているときに前記共有データエリアをロックし、開かれているファイルが１つのときには前記共有データエリアのロックを解除するステップと、
前記ファイルが前記機密情報保存用フォルダに保存されているファイルであると判別された場合、当該ファイルが開かれた後に前記アプリケーションプログラムが当該ファイルを保存することを要求したときに、当該保存要求が指定するファイル保存先が前記記憶装置内の前記機密情報保存用フォルダ内であるか否かを判定し、前記ファイル保存先が前記機密情報保存用フォルダ外であるとき、当該保存要求に基づく保存を禁止するステップと、を含むことを特徴とする請求項１に記載のプログラム。
【請求項３】
前記禁止するステップは、前記アプリケーションプログラムにより開かれた前記ファイルの内容に対して画面キャプチャの実行を禁止するステップを含むことを特徴とする請求項１に記載のプログラム。
【請求項４】
前記禁止するステップは、前記共有データエリアをロックする以外の方法によるアプリケーションプログラム間のデータ転送を許可しているか否かを判定するステップと、
前記共有データエリアをロックする以外の方法による前記データ転送を許可しているときは、前記ファイルが前記機密情報保存用フォルダに保存されているファイルであると判別された場合であっても、データ転送要求があれば前記ファイルが開かれた後に前記アプリケーションプログラムが前記ファイルの少なくとも一部を他のアプリケーションプログラムが開いている他のファイルに、前記共有データエリアをロックする以外の方法によって前記アプリケーションプログラム間データの転送を実行するステップと、を含むことを特徴とする請求項１に記載のプログラム。
【請求項５】
前記禁止するステップは、前記他のアプリケーションプログラムが、当該他のファイルを保存することを後に要求したときに、当該保存要求が指定するファイル保存先が前記記憶装置内の前記機密情報保存用フォルダ内であるか否かを判定し、前記ファイル保存先が前記機密情報保存用フォルダ外であるとき、当該保存要求に基づく保存を禁止する、ステップを含むことを特徴とする請求項４に記載のプログラム。
【請求項６】
いずれかのアプリケーションプログラムが記憶装置に保存されたいずれかのファイルを開くことを要求したとき、当該ファイルが前記記憶装置内のあらかじめ定められた機密情報保存用フォルダに保存されているファイルであるか否かを判別するステップと、
前記ファイルが前記機密情報保存用フォルダに保存されているファイルであると判別された場合、前記アプリケーションプログラムと前記ファイルとの組合せを機密管理すべき対象として記憶するステップと、
前記アプリケーションプログラムが開いている前記ファイルが前記機密情報保存用フォルダに保存されているファイルであると判別された場合に、データの転送に用いられる共有データエリアをロックするステップと、
いずれかのアプリケーションプログラムにより、当該アプリケーションプログラムが開かれているファイルの内容を前記機密情報保存用フォルダ以外に転送することが要求されたとき、当該アプリケーションプログラムと当該ファイルの組が機密管理対象として記憶されているか否かを判別するステップと、
当該アプリケーションプログラムと当該ファイルの組が機密管理対象として記憶されているとき、前記転送要求に基づく転送を禁止するステップと、
いずれかのファイルを開いているアプリケーションプログラムが当該ファイルの少なくとも一部を他のアプリケーションプログラムが開いている他のファイルにアプリケーションプログラム間データ転送機能を用いて転送する要求を発行したとき、当該アプリケーションプログラムと当該ファイルとの組合せが、機密情報管理すべき対象として記憶されているか否かを判別するステップと、
当該アプリケーションプログラムと当該ファイルとの組合せが機密管理すべき対象として記憶されていると判別されたとき、当該他のアプリケーションプログラムと当該他のファイルとの組合せを、機密管理すべき対象として記憶するステップと、
をコンピュータに実行させるためのプログラム。
【請求項７】
前記ロックするステップは、複数のファイルが開いているときに前記共有データエリアをロックし、開かれているファイルが１つのときには前記共有データエリアのロックを解除することを特徴とする請求項６に記載のプログラム。
【請求項８】
前記禁止するステップは、いずれかのファイルを開いているいずれかのアプリケーションプログラムが当該ファイルの保存を要求したとき、当該アプリケーションプログラムと当該ファイルとの組合せが機密管理すべき対象として記憶されているか否かを判別し、当該アプリケーションプログラムと当該ファイルとの組合わせが、機密管理すべき対象として記憶されていると判別されたとき、前記保存要求が指定するファイル保存先が前記機密情報保存用フォルダ内であるか否かを判別し、前記ファイル保存先が前記機密情報保存用フォルダ外であるとき、当該保存要求に基づく保存を禁止するステップを含むことを特徴とする請求項６又は７に記載のプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データ処理装置内に記憶された機密情報ファイルをデータ処理装置の外部へ持ち出すのを禁止する方法及びそのためのプログラムに関する。
【０００２】
【従来の技術】
企業等の組織内では、日常的に業務で使用する情報の多くは組織外に対しては機密にされるべきである。しかも従業員は機密情報を含む機密ファイルをパーソナルコンピュータ（パソコン）あるいはワークステーション等のデータ処理装置の表示装置に表示させて閲覧して当該機密情報を含む新たな機密ファイルを生成することを業務としていることも多い。例えば、従業員は、装置あるいはプログラムを開発するときには、機密情報である、他の人が開発した設計データを参照して、当該設計データに変更を加えて、新たな機密ファイルである新たな設計データを生成する。
【０００３】
機密度の高い機密ファイルについては、従業員は、その機密ファイルを当該従業員が使用するデータ処理装置の外部へ出力することが禁止される。例えば、当該機密ファイルの複製ファイルを例えばフロッピディスク等の運搬可能な記録媒体へファイルを出力することも、上記機密ファイルの内容を印刷することも、電子メールに上記機密ファイルを添付することも許されない。
【０００４】
【発明が解決しようとする課題】
上記機密度の高い機密ファイルを参照する従業員が使用するデータ処理装置については、外部出力機能、すなわち、フロッピディスク等の記録媒体へのファイル出力機能、プリンタによるファイル印刷機能、メールによりファイル転送機能を禁止することが望ましい。
【０００５】
しかし、従業員は、機密度がそれほど高くない機密情報あるいは機密でない情報を含む他のファイルも上記データ処理装置で処理する場合も多い。当該他のファイルについては、フロッピディスク等の記録媒体へファイルを出力すること、印刷すること、電子メールに添付することが許される。
【０００６】
上記機密度の高い機密ファイルの管理のために、従業員が使用するデータ処理装置が、外部出力機能、すなわち、フロッピディスク等の記録媒体へのファイルの出力機能、プリンタによるファイルの印刷機能、電子メールによりファイルの転送機能が使用できない状態に設定されると、上記他のファイルについても、従業員は上記外部出力機能を利用できなくなり、このことは従業員の当該他のファイルを用いた業務の促進にとって望ましくない。
【０００７】
したがって、本発明の目的は、上記外部出力機能を使用されるべきでない機密ファイルと上記外部出力機能を使用してもよい他のファイルとを混在して記憶した記憶装置を有するデータ処理装置において、上記外部出力機能を使用されるべきでない機密ファイルについて上記外部出力機能の使用を禁止し、当該他のファイルについて上記外部出力機能の使用を許可することを可能にする、データ持ち出し禁止方法及びそのためのプログラムを提供することを目的とする。
【０００８】
【課題を解決するための手段】
本発明に係るプログラムは、いずれかのアプリケーションプログラムが記憶装置に保存されたいずれかのファイルを開くことを要求したとき、当該ファイルが前記記憶装置内のあらかじめ定められた機密情報保存用フォルダに保存されているファイルであるか否かを判別し、当該ファイルが前記機密情報保存用フォルダに保存されているファイルであると判別された場合、当該ファイルの内容が前記機密情報保存用フォルダ以外に出力されないように、当該ファイルが開かれた後に前記ファイルの内容の移動を制限する、ステップをコンピュータに実行させるためのプログラムである。
【０００９】
これにより、上記機密情報保存用フォルダに保存されたファイルをあるアプリケーションプログラムが開いた後は、当該アプリケーションプログラムにより当該ファイルが上記機密情報保存用フォルダ以外に出力されないようにすることができる。例えば、上記記憶装置内の上記機密情報保存用フォルダ以外のフォルダに上記ファイルを保存することが禁止される。あるいは、上記記憶装置以外の他の記憶装置に上記ファイルが出力されるのが禁止される。あるいは、上記アプリケーションプログラムにより上記ファイルが印刷されるのが禁止される。
【００１０】
更に、具体的には、前記制限するステップは、前記ファイルが前記機密情報保存用フォルダに保存されているファイルであると判別された場合、前記ファイルが開かれた後に前記アプリケーションプログラムが前記ファイルの少なくとも一部を他のアプリケーションプログラムが開いている他のファイルにアプリケーションプログラム間データ転送機能を用いて転送したとき、当該他のファイルの内容が前記機密情報保存用フォルダ以外に出力されないように、前記データ転送の後に前記他のファイルの内容の移動を制限する、ステップを含む。
【００１１】
これにより、上記他のアプリケーションプログラムを介して前記機密情報保存用フォルダ内のファイルが当該フォルダの外部に移動されるのを禁止することができる。例えば、前記他のアプリケーションプログラムが、当該他のファイルを保存することを後に要求したときに、当該保存要求が指定するファイル保存先が前記記憶装置内の前記機密情報保存用フォルダ内であるか否かを判定し、前記ファイル保存先が前記機密情報保存用フォルダ外であるとき、当該保存要求を無効にする。
【００１２】
【発明の実施の形態】
以下、本発明に係る機密ファイル持ち出し禁止方法及びそのためのプログラムの実施の形態を図面を参照して詳細に説明する。
【００１３】
図１は、本発明に係る機密ファイル持ち出し禁止方法及びそのためのプログラムの一つの実施の形態を用いたコンピュータシステムのブロック図である。本コンピュータシステムは例えば企業等の団体の内部で使用されるシステムである。図において、１０は、例えば企業の従業員ユーザが使用するコンピュータの例であり、例えばパソコン（ＰＣ）からなる。コンピュータ１０はワークステーションであってもよい。１０Ａは、他の従業員ユーザが使用するコンピュータであり、コンピュータ１０と同様な構造を有する。２０は、サーバコンピュータの一例であり、コンピュータ１０、１０Ａ、２０は例えばＬＡＮのようなネットワーク２３に接続されている。２１は、ネットワーク２３に接続されたネットワークプリンタの例であり、２２は、ネットワーク２３に接続された磁気ディスク記憶装置のようなネットワークドライブの例である。
【００１４】
コンピュータ１０は、メモリ１１、表示装置１２、中央処理装置（ＣＰＵ）１３、キーボード及びマウス等のポインティングデバイスを備える入力装置１４、例えば磁気記憶装置からなる補助記憶装置１５、フロッピディスク駆動装置１６、これらを接続するバス１７と、バス１７とネットワーク２３とを接続するネットワークインターフェースカード１８よりなる。コンピュータ１０には、更に個別のプリンタ１９がバス１７を介して接続されていてもよい。更に、バス１７には、フロッピディスク駆動装置１６以外の他のリムーバブルメディア用のドライブが接続されていてもよいが、ここでは簡単化のためにそのような他のドライブは図示していない。以下の説明においては、フロッピディスク駆動装置１６は、リムーバブルメディア用のドライブの例として説明する。すなわち、以下においてフロッピディスク駆動装置１６に対して言及した説明は、他のリムーバブルメディア用のドライブにも当てはまる。
【００１５】
コンピュータ１０、１０Ａには本発明に係る機密ファイル持ち出し禁止方法が適用され、更にその方法のためのプログラムが使用される。コンピュータ１０では、メモリ１１に複数のアプリケーションプログラム３０、３１、…が実装され、それらのアプリケーションプログラムの実行はオペレーティングシステム（ＯＳ）４０により制御される。ＯＳ４０には、ウィンドウズ（登録商標）のようなそれ自体公知のＯＳを改良して実現することができる。すなわち、ＯＳ４０は、従来のＯＳを構成しているそれ自体公知のＡＰＩ（Application Programming Interface）サブシステム４１とカーネルシステム４３、共有データエリア４４に対して、本発明により新たにＩ／Ｏ監視プログラム４２と機密管理テーブル４５と機密ファイル登録テーブル４６を追加することにより実現される。
【００１６】
更に、各アプリケーションプログラム３０、３１、…に対応して本発明により用意されたフィルタプログラム３２、３３、…が使用される。各アプリケーションプログラムが起動されると、対応して用意されたフィルタプログラムが起動されるように、フィルタプログラム３０、３１、…が用意される。以下では、説明の簡単化のために、各アプリケーションプログラムに、対応するフィルタプログラムが組み込まれていると説明する。
【００１７】
ＯＳ４０には、アプリケーションプログラム間のデータ転送に使用されるそれ自体公知の共有データエリア４４が含まれ、更に、機密管理テーブル４５と機密ファイル登録テーブル４６が本発明により新たに設けられる。
【００１８】
本コンピュータシステムの詳細を説明する前に、その動作の概要を説明する。本システムの管理者は、ユーザが使用するコンピュータ１０を機密ファイル持ち出し禁止モードに設定しあるいはその設定をリセットすることができる。システム管理者は、各ユーザが使用するコンピュータ１０内の補助記憶装置１５内に特定の機密ファイルを保存するための機密フォルダ１５Ａを設定し、ユーザが業務で使用する複数の機密ファイルを機密フォルダ１５Ａ内に保存する。その後、コンピュータ１０を機密情報持ち出し禁止モードに設定したうえで、ユーザにコンピュータ１０を使用させる。
【００１９】
ＯＳ４０内のＡＰＩサブシステム４１は、アプリケーションプログラムにＡＰＩ（アプリケーションプログラミングインタフェース）を提供する部分であり、カーネルシステム４３は、ＡＰＩサブシステム４１を介してアプリケーションプログラム３０等と通信する。Ｉ／Ｏ監視プログラム４２は、ＡＰＩサブシステム４１を介してアプリケーションプログラム３０等が発行したファイル入出力要求を監視し、当該入出力要求が機密ファイルを機密フォルダ１５Ａ以外に出力しようとする場合、当該ファイル入出力要求を無効にする。
【００２０】
フィルタプログラム３２又は３３は、アプリケーションプログラム３０又は３１が発行したデータ転送要求を検出し、アプリケーションプログラム間でデータ転送が許可されていない場合には、当該データ転送要求を無効にする。アプリケーションプログラム間でデータ転送が許可されている場合には、データ転送先のアプリケーションプログラムとデータ転送先のファイルを機密情報持ち出し禁止処理の対象としてＩ／Ｏ監視プログラム４２に通知する。
【００２１】
図２は、本実施の形態における機密ファイルに対する持ち出し禁止処理を説明するための図である。ユーザは、アプリケーションプログラム３０を起動し、当該アプリケーションプログラム３０により機密フォルダ１５Ａ内の機密ファイル５０Ａを開くことができる（▲１▼）。ユーザは当該ファイル５０Ａを上記アプリケーションプログラムにより編集して新たな内容のファイル５０Ｘを生成することもできる。この新たなファイル５０Ｘも、元の機密ファイル５０Ａ内の機密情報を含むので、機密ファイル５０Ａと同様に持ち出しが禁止される。すなわち、当該機密ファイル５０Ａあるいは新たなファイル５０Ｘを機密フォルダ１５Ａ以外の領域に出力できない。
【００２２】
例えば、機密ファイル５０Ａの閲覧後にあるいは上記新たなファイル５０Ｘの生成後に、ユーザが当該機密ファイル５０Ａ又は当該新たなファイル５０Ｘの保存先として機密フォルダ１５Ａ以外の領域を指定してファイル保存をアプリケーションプログラム３０に要求した場合（▲２▼）、その要求は、Ｉ／Ｏ監視プログラム４２により無効化され、カーネルシステム４３により実行されない。上記新たなファイル５０Ｘの生成後に、ユーザが当該新たなファイル５０Ｘの保存先として機密フォルダ１５Ａを指定してファイル保存を要求した場合には、その要求は、Ｉ／Ｏ監視プログラム４２により無効化されることはなく、カーネルシステム４３により実行される。
【００２３】
同様に、当該機密ファイル５０Ａあるいは当該新たなファイル５０Ｘを個別プリンタ１９あるいはネットワークプリンタ２１を用いて印刷することもできないし、フロッピディスク駆動装置１６あるいはネットワークドライブ２２に出力することもできない。電子メールに添付して転送することもできない。
【００２４】
他のアプリケーションプログラム３１が、機密フォルダ以外のフォルダ１５Ｂに保存された他のファイル５０Ｂを開いていて、アプリケーションプログラム３０により開かれたファイルの少なくとも一部が、他のアプリケーションプログラム３１に転送された場合（▲３▼）、アプリケーションプログラム３０に埋め込まれたフィルタプログラム３２が、送信元のファイル５０Ａが機密ファイルであることを検出する。アプリケーションプログラム３１により開かれているファイル５０Ｂが、機密フォルダ以外のフォルダ１５Ｂに保存されていたファイルであっても、Ｉ／Ｏ監視プログラム４２は、当該他のファイル５０Ｂも、機密フォルダ１５Ａから開かれた機密ファイル５０Ａと同様に機密ファイルとして扱う。すなわち、当該他のファイル５０Ｂは、機密フォルダ１５Ａの外部には出力されない。
【００２５】
例えば、ユーザが当該他のファイル５０Ｂの保存先として機密フォルダ１５Ａ以外の領域を指定してファイル保存をアプリケーションプログラム３１に要求した場合（▲４▼）、その要求は、Ｉ／Ｏ監視プログラム４２により無効化され、カーネルシステム４３により実行されない。ユーザが上記他のファイル５０Ｂの保存先として機密フォルダ１５Ａを指定してファイル保存をアプリケーションプログラム３１に要求した場合には、その要求は、Ｉ／Ｏ監視プログラム４２により無効化されることはなく、カーネルシステム４３により実行される。
【００２６】
補助記憶装置１５内の機密フォルダ以外のフォルダ１５Ｂに保存されるファイルは機密ファイルであってもよいし機密でないファイルでもよい。機密フォルダ１５Ａ以外のフォルダ１５Ｂに保存されたファイル５０Ｂに関しては以上のような持ち出し禁止処理が実行されない。
【００２７】
なお、図３に示すように、アプリケーションプログラム３０に埋め込まれたフィルタプログラム３２によりアプリケーションプログラム間のデータ転送を禁止するように、機密ファイルの持ち出し禁止動作をあらかじめ指定することもできる。この場合には、アプリケーションプログラム３０が他のアプリケーションプログラム３１に対するデータ転送を要求したとき、フィルタプログラム３２は、そのデータ転送要求を無効にする。
【００２８】
図４は、機密管理テーブル４５の一例を示す。機密管理テーブル４５には、機密ファイル転送禁止モード記憶領域４５１、機密フォルダパス名記憶領域４５２、アプリケーションプログラム間データ転送許可フラグ記憶領域４５３が含まれている。システム管理者は、コンピュータ１０の初期設定処理として、記憶領域４５１に機密ファイル転送禁止モードビットとして値１をセットして、機密ファイル転送禁止動作を実行すべきことを指示する。記憶領域４５２に機密フォルダのパス名（例えば、図の例ではC:\AAA）を記憶し、記憶領域４５３にアプリケーションプログラム間データ転送許可フラグとして値「１」又は「０」をセットする。アプリケーションプログラム間データ転送許可フラグの値が例えば「１」のとき、アプリケーションプログラム間のデータ転送が許可される。
【００２９】
機密ファイルの持ち出し禁止を実現するには、アプリケーションプログラム間のデータ転送を禁止するほうが、持ち出し禁止を確実に実現するうえで望ましい。しかし、アプリケーションプログラムにより開かれたファイルを編集して新たなファイルを生成するとき、他のアプリケーションプログラムにより開かれたファイル内のデータを利用することが便利である場合も多い。したがって、機密ファイルの持ち出しを禁止する場合でも、アプリケーションプログラム間のデータ転送を利用できることは、ユーザにとって望ましいことである。
【００３０】
アプリケーションプログラム間のデータ転送方法には、通常２種類のデータ転送方法が使用される。すなわち、共有データエリア４４（図１）（クリップボードとも呼ばれる）を経由したデータ転送と、オブジェクトリンクと埋め込み（Object Linking and Embedding −ＯＬＥ）を使用したデータ転送である。本実施の形態では、アプリケーションプログラム間のデータ転送が禁止されるときには、上記ＯＬＥを使用したデータ転送も共有データエリアを経由したデータ転送も許されない。アプリケーションプログラム間のデータ転送を許す場合には、上記ＯＬＥを使用したデータ転送を許すが、共有データエリアを経由したデータ転送は許さない。ＯＬＥを用いたデータ転送は、アプリケーションプログラム間で直接データを転送するため、データ転送の制御が容易である。一方、共有データエリアは、ＯＳが管理する領域であり、任意のアプリケーションプログラムからアクセス可能であるため、データ転送の制御は容易でない。つまり、機密ファイルの持ち出し禁止を実現するためには、共有データエリアを経由したデータ転送は許さないほうが実現が容易になる。
【００３１】
図６は、Ｉ／Ｏ監視プログラム４２の処理の一例を示す概略フローチャートである。まず、いずれかのファイルを開くことを要求したことを示すファイルオープンイベントが検出したか否かを判断し（ステップＳ４２１）、ファイルオープンイベントが検出されたときには、開くべきファイルが機密フォルダ１５Ａに保存されたファイルであるか否かがチェックされる（ステップＳ４２２）。当該ファイルが機密フォルダ１５Ａに保存されたファイルである場合は、機密ファイル登録テーブル４６に、当該アプリケーションプログラムと当該ファイルの組合わせが機密ファイル登録テーブル４６に記憶される（ステップＳ４２３）。
【００３２】
図５は、機密ファイル登録テーブル４６の一例を示す。機密ファイル登録テーブル４６の各エントリ４６Ａ、４６Ｂ、…は一組の記憶領域４６１と４６２からなる。記憶領域４６１には、アプリケーションプログラムの識別情報として当該アプリケーションプログラムのハンドル名が記憶される。起動されたアプリケーションプログラムの識別情報としてハンドル名が記憶されるのは、同じ名称のアプリケーションプログラムが複数個起動されることがあり、これらのアプリケーションプログラムを区別するために、起動されたそれぞれのアプリケーションプログラムにＯＳ４０により割り当てられるハンドル名が、アプリケーションプログラムの識別情報として機密ファイル登録テーブル４６に記憶される。
【００３３】
記憶領域４６２には、開くべきファイルの識別情報として当該ファイルのファイルパスが記憶される。今の場合、起動されたファイルが機密フォルダ１５Ａに保存されていたファイルであると仮定する。図のエントリ４６Ａには、起動されたアプリケーションプログラムのハンドル名の例とオープンされたファイルのファイルパスの例が示されている。なお、開かれているファイル名が他のファイル名に変更されたときには、記憶領域４６２に記憶されたファイル名が新しいファイル名に変更される。
【００３４】
このように、機密フォルダ１５Ａに保存されたファイルが最初にコンピュータ１０でオープンされたとき、以下の処理Ｓ４２４からＳ４２７が実行され、オープンされた機密ファイルの内容が機密フォルダ１５Ａの外部に持ち出るのを禁止される。これらの処理Ｓ４２４からＳ４２７は、少なくとも一つの機密ファイルが開かれている限り継続して実行される。ただし、これらの処理Ｓ４２４からＳ４２７の内容は後に説明する。
【００３５】
ステップＳ４２７が終了すると、処理はステップＳ４２１に戻る。ステップＳ４２１で、いずれかのアプリケーションプログラムがいずれかのファイルを開くことを要求したことを示すファイルオープンイベントが検出されなかった場合、処理はステップＳ４２８に進む。なお、ステップＳ４２２において、ファイルオープンの対象のファイルが機密フォルダ１５Ａ以外のフォルダ１５Ｂに保存されているファイルであると判断された場合も、処理はステップＳ４２２からステップＳ４２８にジャンプする。
【００３６】
ステップＳ４２８においては、いずれかのフィルタプログラム、例えば３２から、アプリケーションプログラムを機密ファイル登録テーブル４６に登録することを要求する登録要求が出されたか否かが判別される。この登録要求については後に説明する。ここでは、このような登録要求が検出されなかったと仮定する。その場合に、ステップＳ４２９において、機密ファイルを開いているアプリケーションプログラムによりファイルを補助記憶装置１５に格納することを要求するファイル格納イベントが検出されたか否かが判断される。ファイル格納イベントが検出されなかった場合、処理はステップＳ４２１に戻る。
【００３７】
ファイル格納イベントが検出された場合、ステップＳ４３０において、ファイル格納イベントを生成したアプリケーションプログラムと当該格納すべきファイルとの組が機密ファイル登録テーブル４６に登録されているか否かが判断される。ステップＳ４３０において、ファイル格納イベントを生成したアプリケーションプログラムと当該格納すべきファイルとの組が機密ファイル登録テーブル４６に登録されていないと判断された場合、処理はステップＳ４２１に戻る。
【００３８】
しかし、ステップＳ４３０において、ファイル格納イベントを生成したアプリケーションプログラムと当該格納すべきファイルとの組が機密ファイル登録テーブル４６に登録されていると判断された場合、ステップＳ４３１において、当該ファイルの格納先が機密フォルダ１５Ａの内部（すなわち、当該機密フォルダ１５Ａそのもの若しくはその機密フォルダ１５Ａの内部のフォルダ）であるか否かが判別される。ファイル格納先が機密フォルダ１５Ａの内部のフォルダでないときには、当該ファイル格納は無効にされる（ステップＳ４３２）。これにより、当該機密ファイルが機密フォルダ１５Ａの外部のフォルダに出力されることが禁止される。
【００３９】
このように、機密フォルダ１５Ａ内の機密ファイルがいずれかのアプリケーションプログラムにより開かれた場合、当該ファイルが当該アプリケーションプログラムを用いて編集された場合でも、当該ファイルは元の機密フォルダ１５Ａ以外のフォルダに保存されない。なお、ステップＳ４３１において、ファイル格納先が機密フォルダ１５Ａの内部であると判断されたときには、Ｉ／Ｏ監視プログラム４２は、当該ファイル格納に対して何もしないので、当該ファイル格納はそのまま実行される。
【００４０】
なお、以上においては、機密フォルダ１５Ａ内の機密ファイルがアプリケーションプログラムにより開かれてその後格納される場合であったが、同様の方法により、当該開かれたファイルがフロッピディスク駆動装置１６を介してフロッピディスクに格納されるのが禁止される。更には、当該開かれたファイルが、ネットワークドライブ２２（図１）に格納されることも禁止される。更に、当該開かれたファイルが個別プリンタ１９あるいはネットワークプリンタ２１により印刷されることも禁止される。更に、当該開かれたファイルが、電子メールに添付されることも禁止される。
【００４１】
以上の禁止処理は、アプリケーションプログラムにより開かれたファイルが機密フォルダ１５Ａ内に格納されていたファイルの場合である。開かれたファイルが、機密フォルダ１５Ａ以外の他のフォルダ１５Ｂに格納されたファイルである場合には、上記のような持ち出し禁止のための処理は当該ファイルに対しては実行されず、ユーザは、上記持ち出し禁止のための処理の影響を受けないで当該ファイルを使用することができる。
【００４２】
なお、先に説明を省略した処理Ｓ４２４から４２７の内容は以下のとおりである。まず、ステップＳ４２４では、共有データエリア４４（図１）がロックされる。既に説明したように、共有データエリア４４は、クリックボードとも呼ばれ、アプリケーションプログラム間のデータ転送に使用することができる。共有データエリア４４が利用可能な場合には、機密ファイルの内容が複数のアプリケーションプログラムを用いて機密フォルダ１５Ａ以外のフォルダに格納することも可能になる。
【００４３】
例えば、機密フォルダ１５Ａ内の機密ファイルがあるアプリケーションプログラムにより開かれている状態で他のアプリケーションプログラムにより機密フォルダ１５Ａ以外の他のフォルダ１５Ｂ内の他のファイルが開かれたとき、上記機密ファイルの内容を共有データエリア４４にコピーし、当該コピーされた内容を上記他のファイルに貼り付けることができる。
【００４４】
本実施の形態では、このような、共通データエリアを介して機密ファイルの内容が他のファイルに転送された場合、当該他のファイルが機密フォルダ１５Ａ以外のフォルダに保存されるのを禁止するために、機密フォルダ１５Ａ内のいずれかの機密ファイルが一つでもいずれかのアプリケーションプログラムにより開かれた時点で、共有データエリア４４を用いてアプリケーションプログラム間でデータ転送できないように、共有データエリア４４がロックされる。
【００４５】
図７は、Ｉ／Ｏ監視プログラム４２が共有データエリア４４をロックする仕組みを模式的に示す図である。Ｉ／Ｏ監視プログラム４２は、アプリケーションプログラム＃１（３０）又はアプリケーションプログラム＃２（３１）が機密フォルダ１５Ａから機密ファイル５０Ａを開いた場合、共有データエリア４４をロックできる。すなわち、共有データエリア４４は、複数のファイルが開かれているときには、閉鎖され、使用できなくなる。アプリケーションプログラム＃１（３０）やアプリケーションプログラム＃２（３１）が機密ファイル５０Ａを閉じた場合は、共有データエリア４４のロックを解除する。すなわち、開かれているファイルの総数が一つのときには、共有データエリア４４は開かれ、当該ファイルに関しては使用可能になる。
【００４６】
図６に戻り、ステップＳ４２５では、アプリケーションプログラムにより表示されているファイルの内容が画面キャプチャツールを利用して画面データとして他のファイルにコピーされることが禁止される。すなわち、画面キャプチャツールがライブラリ関数ＧＤＩ３２を呼び出し実行することがステップＳ４２５において禁止される。図８は、Ｉ／Ｏ監視プログラムが画面キャプチャによるデータの持ち出しをロックする仕組みを模式的に示す図である。画面キャプチャツール５０１は、画面情報を取得するためのライブラリ関数（例えばＧＤＩ３２）（５０２）を利用してビデオアダプタ（Video Adapter）５０３から画面の情報を取得する機能を有している。
【００４７】
Ｉ／Ｏ監視プログラム４２は、画面キャプチャツール５０１とライブラリ関数ＧＤＩ３２（５０２）の中間に挿入されるフィルタプログラムとして機能し、画面キャプチャツール５０１がライブラリ関数ＧＤＩ３２（５０２）を呼び出すのを監視する。アプリケーションプログラムが機密ファイルを開いた場合には、すなわち、ステップＳ４２５において、画面キャプチャツール５０１によるライブラリ関数ＧＤＩ３２（５０２）の呼び出しをロックする。すなわち、画面キャプチャツール５０１により当該ライブラリ関数を呼出せないようにする。この結果、少なくとも一つの機密ファイルがいずれかのアプリケーションプログラムにより開かれた状態では、画面キャプチャが実行されなくなる。
【００４８】
図６に戻り、ステップＳ４２６では、コンピュータ１０におけるユーザの操作及び入出力処理をアクセスログとして記録し始め、ステップＳ４２７では、図示しない監視カメラを用いてコンピュータ１０の操作者、表示装置の画面等を含む、コンピュータ１０とその周辺を録画し始める。管理者は後でアクセスログと監視カメラの録画情報に基づいて、コンピュータ１０のユーザが、表示装置１２（図１）の画面に表示された機密ファイルの内容をキーボード等の文字入力装置を用いて他のファイルに入力していないかを点検することができる。
【００４９】
さて、本実施の形態では、システム管理者が、初期設定において機密管理テーブル４５（図５）内の記憶領域４５３に記憶されたアプリケーションプログラム間データ転送許可フラグをセットした場合、ＯＬＥによるアプリケーションプログラム間のデータ転送を使用することができる。
【００５０】
図９（ａ）は、ドラッグ・ドロップ機能を利用した、ＯＬＥによるデータ転送方法を説明する図である。アプリケーションプログラム＃１（３０）のウィンドウ２０５上に表示されているオブジェクト５１をマウス等のポインティングデバイスを用いてドラッグし、別のアプリケーションプログラム＃２（３１）のウインドウ２０６上にドロップを指定すると、アプリケーションプログラム＃１（３０）からアプリケーションプログラム＃２（３１）へＯＬＥによるデータ転送インタフェースを利用してオブジェクト５１がアプリケーションプログラム＃２（３１）のウインドウ上にオブジェクト５２として転送される。
【００５１】
同図（ｂ）は、オブジェクト挿入機能を利用した、ＯＬＥによるデータ転送方法を示す図である。アプリケーションプログラム＃１（３０）のウィンドウ２０５上に表示されているファイルを別のアプリケーションプログラム＃２（３１）のウィンドウ２０６内のＩｎｓｅｒｔメニューから、挿入すべきオブジェクトとして指定することにより、アプリケーションプログラム＃２のウィンドウ２０６上に当該ファイルを表示できる。
【００５２】
このようなアプリケーションプログラム間のデータ転送を許すと、例えばアプリケーションプログラム＃１（３０）が機密フォルダ１５Ａ内の機密ファイルを開いていて、アプリケーションプログラム＃２が機密フォルダ以外のフォルダ１５Ｂ内のファイルを開いている状態で、アプリケーションプログラム＃１が開いている機密ファイルの全体若しくは一部をＯＬＥによるデータ転送を用いてアプリケーションプログラム＃２により開かれているファイルに転送することができる。
【００５３】
このようにアプリケーションプログラム間のデータ転送を用いて機密フォルダ１５Ａ内の機密ファイルの内容が他のフォルダ１５Ｂから開かれたファイルに転送された場合、本実施の形態では、当該他のファイルは、機密フォルダ１５Ａ以外のフォルダに格納できないようにファイルの格納が制御される。この目的のために、起動されたアプリケーションプログラム、例えば３０に対応してフィルタプログラム３２が準備され、アプリケーションプログラム３０が起動されたときに対応するフィルタプログラム３２が起動され、このフィルタプログラム３２とＩ／Ｏ監視プログラム４２とが連携して、ＯＬＥによるデータ転送により転送された機密情報が含まれたファイルを機密フォルダ１５Ａ以外のフォルダ１５Ｂに格納しないように動作する。
【００５４】
図１０は、各アプリケーションプログラムに組み込まれるフィルタプログラムの処理の一例を示す概略フローチャートである。フィルタプログラム、例えば３２は、当該フィルタプログラムが組み込まれているアプリケーションプログラム３０が、ＡＰＩサブシステム４１に対して発行するＡＰＩ呼出しを監視して、当該アプリケーションプログラム３０から別のアプリケーションプログラムへデータ転送を行うアプリケーションプログラム間データ転送イベントが発生するのを待つ（ステップＳ３２１）。
【００５５】
フィルタプログラム３２がこのイベントの発生を検出すると、当該フィルタプログラム３２が組み込まれたアプリケーションプログラム３０と当該アプリケーションプログラムが開いているファイルの組に関する情報が機密ファイル登録テーブル４６に登録されているか否かを判断する（ステップＳ３２２）。既に説明したように、当該アプリケーションプログラム３０により開かれているファイルが機密フォルダ１５Ａに保存されていた機密ファイルであるときには、上記情報が機密ファイル登録テーブル４６に登録されている。
【００５６】
上記情報が機密ファイル登録テーブル４６に登録されていないときには、検出されたアプリケーションプログラム間データ転送イベントにより転送されるファイルは機密フォルダ１５Ａに格納されていたファイルでないので、当該フィルタプログラム３２は何もしないで、処理はステップＳ３２１に戻る。
【００５７】
上記情報が機密ファイル登録テーブル４６に登録されている場合には、アプリケーションプログラム間データ転送が当該コンピュータにおいて許可されているか否かをチェックする（ステップＳ３２３）。このチェックは、機密管理テーブル４５（図５）内の記憶領域４５３にアプリケーションプログラム間データ転送許可フラグがセットされているか否かに基づいて行われる。既に述べたように、アプリケーションプログラム間データ転送許可フラグは、システム管理者によりあらかじめセットあるいはリセットされる。
【００５８】
アプリケーションプログラム間データ転送許可フラグがセットされている場合には、Ｉ／Ｏ監視プログラム４２に、送信先のアプリケーションプログラムの登録を要求する（ステップＳ３２５）。登録時に使用される送信先のアプリケーションプログラムのハンドル名と送信先のファイルのファイルパスは、フィルタプログラム３２によりＩ／Ｏ監視プログラム４２に通知される。フィルタプログラム３２の処理は、その後初期処理Ｓ３２１に戻る。
【００５９】
図６を参照するに、Ｉ／Ｏ監視プログラム４２では、ステップＳ４２８において、フィルタプログラムからのアプリケーションプログラムの登録要求を検出すると、処理はステップＳ４２３に進み、要求されたアプリケーションプログラムを機密ファイル登録テーブル４６に登録する。今の場合には、送信先のアプリケーションプログラム、例えば３１のハンドル名と送信先のファイルのファイルパスの組を機密ファイル登録テーブル４６に追加する。
【００６０】
図５に示した機密ファイル登録テーブル４６の第２のエントリ４６Ｂには、追加されたハンドル名とファイルパスの例が示されている。こうして、機密ファイルを開いているアプリケーションプログラムから別のアプリケーションプログラムへデータが転送された場合、データ転送先のアプリケーションプログラムも監視対象として機密ファイル登録テーブル４６に登録される。こうして、送信先のアプリケーションプログラム３１と送信先のファイルが、機密フォルダ１５Ａから機密ファイルが開かれた場合と同じく、機密ファイル登録テーブル４６に登録される。
【００６１】
後に、送信先のアプリケーションプログラム３１が送信先のファイルを格納する要求を発行したとき、Ｉ／Ｏ監視プログラム４２によりこの要求に関連してファイル格納イベントを検出する。Ｉ／Ｏ監視プログラム４２が、ファイル格納イベントを検出すると（ステップＳ４２９）、図６について説明したように、ステップＳ４３０において、当該アプリケーションプログラムが機密ファイル登録テーブル４６に登録されているか否かが判断される。
【００６２】
この判断において、上記データ転送先のアプリケーションプログラム３１が登録されていると判断されることになる。したがって、データ転送先のアプリケーションプログラム３１が指定する格納先が機密フォルダ１５Ａ以外のフォルダであるとき、ステップＳ４３２において当該ファイル格納が無効にされる。こうして、データ転送先のファイルが機密フォルダ以外のフォルダに格納されるのが禁止される。
【００６３】
このようにして、データ転送先のアプリケーションプログラム３１が機密ファイル登録テーブル４６に登録されたことにより、データ転送先のアプリケーションプログラム３１は、まるで機密フォルダ１５Ａから機密ファイルを開いたアプリケーションプログラムと同様に処理されることになる。
【００６４】
こうして、機密フォルダ１５Ａ内の機密ファイルの内容がアプリケーションプログラム間のデータ転送により転送先のファイルに転送されるのを許しながら、当該転送先のファイルが機密フォルダ１５Ａ以外のフォルダに格納されるのを禁止することができる。なお、データ転送先ファイルの、印刷、フロッピディスク駆動装置１６内の記録媒体への出力、ネットワークドライブ２２への出力、電子メールへの添付についても同様である。
【００６５】
なお、フィルタプログラム３２の処理Ｓ３２３（図１０）において、アプリケーションプログラム間データ転送許可フラグ４５３（図４）がセットされていないと判断された場合には、アプリケーションプログラム間データ転送がロックされる（ステップＳ３２４）。すなわち、発生したアプリケーションプログラム間データ転送イベントを無効にし、エラーメッセージを表示する。この場合には、アプリケーションプログラム間データ転送は利用されない。
【００６６】
なお、本発明は以上の実施の形態に限定されるのではなく、本発明の要旨を変更しない範囲において上記実施の形態を変形あるいは修正してもよいことはいうまでもない。例えば、機密情報の持ち出しを禁止するためには、機密ファイルを開いていたアプリケーションプログラムが終了するときに、コンピュータ１０の図示しないキャッシュメモリ内に残っている、当該アプリケーションプログラムが利用したファイルをすべて削除するようにすることが望ましい。
【００６７】
また、機密フォルダ内の機密ファイルを暗号化しておくことも望ましい。その場合には、アプリケーションプログラムから機密フォルダ内の機密ファイルを開く場合には当該ファイルを復号してアプリケーションプログラムに転送する。また、アプリケーションプログラムが機密フォルダにファイルを格納する場合には、格納するファイルを暗号化してから格納する。
【００６８】
【発明の効果】
以上、説明したように、本発明によれば、外部への持ち出しを禁止されるべき機密ファイルとそうでない他のファイルが混在して記憶されている記憶装置を有するコンピュータにおいて、上記機密ファイルがあらかじめ指定された機密フォルダ以外へ出力されるのを防ぐことができ、上記他のファイルを上記機密フォルダ以外へ出力させることができる。
【図面の簡単な説明】
【図１】  本発明に係る機密ファイル持ち出し禁止方法及びプログラムの一つの実施の形態を用いたコンピュータシステムのブロック図である。
【図２】  機密ファイルに対する持ち出し禁止処理を説明するための図である。
【図３】  アプリケーションプログラム間のデータ転送が禁止された状態での、機密ファイルに対する持ち出し禁止処理を説明するための図である。
【図４】  機密管理テーブルの一例を示す図である。
【図５】  機密ファイル登録テーブルの一例を示す図である。
【図６】  Ｉ／Ｏ監視プログラムの処理の一例を示す概略フローチャートである。
【図７】  Ｉ／Ｏ監視プログラムが共有データエリアをロックする仕組みを模式的に示す図である。
【図８】  Ｉ／Ｏ監視プログラムが画面キャプチャによるデータの持ち出しをロックする仕組みを模式的に示す図である。
【図９】  オブジェクトリンクと埋め込み（ＯＬＥ）を使用したデータ転送を説明する図である。
【図１０】  アプリケーションプログラムに組み込まれるフィルタプログラムの処理の一例を示す概略フローチャートである。
【図１】
0003927376.tif 000002
【図２】
0003927376.tif 000003
【図３】
0003927376.tif 000004
【図４】
0003927376.tif 000005
【図５】
0003927376.tif 000006
【図６】
0003927376.tif 000007
【図７】
0003927376.tif 000008
【図８】
0003927376.tif 000009
【図９】
0003927376.tif 000010
【図１０】
0003927376.tif 000011