(57)【要約】【課題】パソコンにおいてファイルを取り扱う際の情報セキュリティを従来に比べて強化する。【解決手段】所定のビューアを介して予め定められたロケーションのサーバ装置からファイルデータをダウンロードするときは、前記ファイルデータの保存および管理をオペレーティングシステムに代わって行い、前記オペレーティングシステムが予め指定している第１の記憶領域に代えて第２の記憶領域を前記ファイルデータの保存先として指定し、暗号化された仮想ファイル内に前記ファイルデータを保存する保存・管理手段をコンピュータに実行させる。【選択図】図２
2010282606.tif 000002
【特許請求の範囲】
【請求項１】
所定のビューアを介して予め定められたロケーションのサーバ装置からファイルデータをダウンロードするときは、前記ファイルデータの保存および管理をオペレーティングシステムに代わって行い、前記オペレーティングシステムが予め指定している第１の記憶領域に代えて第２の記憶領域を前記ファイルデータの保存先として指定し、暗号化された仮想ファイル内に前記ファイルデータを保存する保存・管理手段をコンピュータに実行させるコンピュータに読取可能な情報処理制御プログラム。
【請求項２】
前記保存・管理手段により前記第２の記憶領域に保存された前記ファイルデータについては、保存先を前記第１の記憶領域として表示装置に表示する表示手段をさらにコンピュータに実行させる請求項１に記載の情報処理制御プログラム。
【請求項３】
仮想ファイルとして管理されるファイルデータを操作するプログラムが表示するウインドウに、制御下にあることを示す特殊表示を付すコード修正手段をさらにコンピュータに実行させる請求項１または２のいずれか一項に記載の情報処理制御プログラム。
【請求項４】
プログラムのファイル操作関数に対するフック機能を実現するフック手段と、
ファイルデータの保存および管理を行う保存・管理手段と、
をコンピュータに実行させ、
前記フック手段は、前記フック機能により、所定のビューアを介して予め定められたロケーションのサーバ装置から前記ファイルデータをダウンロードするときは、オペレーティングシステムが前記ファイルデータの保存および管理を行おうとするのに代えて、前記保存・管理手段に、前記オペレーティングシステムが予め指定している第１の記憶領域に代えて第２の記憶領域を前記ファイルデータの保存先として指定させ、暗号化された仮想ファイル内に前記ファイルデータを保存させるコンピュータに読取可能な情報処理制御プログラム。
【請求項５】
プログラムのファイル操作関数に対するフック機能を実現するフック手段と、
ファイルデータの保存および管理を行う保存・管理手段と、
を備え、
前記フック手段は、前記フック機能により、所定のビューアを介して予め定められたロケーションのサーバ装置から前記ファイルデータをダウンロードするときは、オペレーティングシステムが前記ファイルデータの保存および管理を行おうとするのに代えて、前記保存・管理手段に、前記オペレーティングシステムが予め指定している第１の記憶領域に代えて第２の記憶領域を前記ファイルデータの保存先として指定させ、暗号化された仮想ファイル内に前記ファイルデータを保存させる情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ装置における情報セキュリティを向上させる技術に関する。
【背景技術】
【０００２】
企業などの勤務者が自宅などに仕事を持ち帰り、自宅などのパソコンを使用して業務を行う場合には、ＵＳＢ（Universal Serial Bus）メモリなどの記憶媒体に仕事に必要なファイルを格納し、これを持ち帰って自宅などのパソコンに接続して使用することが行われている。
【０００３】
また、インターネットＶＰＮ（Virtual Private Network）技術により、企業のサーバ装置と自宅などのパソコンとをインターネットを介して接続し、サーバ装置から仕事に必要なファイルを自宅などのパソコンにダウンロードして使用することも可能である。この場合に、暗号化にＳＳＬ（Secure Socket Layer）技術を用いて（ＳＳＬ−ＶＰＮ技術）、インターネット上での情報漏洩を防止することが行われている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−２５０７９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、ＵＳＢメモリなどを用いて必要なファイルを自宅などに持ち帰る場合には、そのＵＳＢメモリが第三者の手に渡ってしまうと、企業などの情報が外部に漏洩してしまう恐れがある。この対策として、パスワードの入力や指紋認証などの生体認証によりユーザの認証を行うことを条件にＵＳＢメモリへのアクセスを許可する技術も知られている（特許文献１などを参照。）。しかし、ＵＳＢメモリをパソコンに接続するたびにユーザ認証を受けなければならないという煩雑さがある。
【０００６】
また、ＳＳＬ−ＶＰＮ技術を用いてインターネット上での情報漏洩を防止できたとしても、ダウンロードされたファイルは勤務者の自宅などのパソコンのハードディスクに保存されるので、その自宅などのパソコンの情報セキュリティが不十分であれば、このパソコンを介して企業などの情報が外部に漏洩してしまう恐れがある。
【０００７】
本発明の目的は、パソコンにおいてファイルを取り扱う際の情報セキュリティを従来に比べて強化することができるようにすることである。
【課題を解決するための手段】
【０００８】
上記の課題を解決するため、本発明にあっては、所定のビューアを介して予め定められたロケーションのサーバ装置からファイルデータをダウンロードするときは、前記ファイルデータの保存および管理をオペレーティングシステムに代わって行い、前記オペレーティングシステムが予め指定している第１の記憶領域に代えて第２の記憶領域を前記ファイルデータの保存先として指定し、暗号化された仮想ファイル内に前記ファイルデータを保存する保存・管理手段をコンピュータに実行させるようにしている。
【発明の効果】
【０００９】
本発明の情報処理制御プログラムおよび情報処理装置にあっては、オペレーティングシステムが予め指定している第１の記憶領域に代えて第２の記憶領域を前記データの保存先として指定し、暗号化された仮想ファイル内にファイルデータを保存するので、ファイルデータには専用のプログラムからしかアクセスすることができず、情報セキュリティを強化することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の一実施形態のシステム構成について説明するブロック図である。
【図２】情報処理制御プログラムにより実現されるソフトウェア機能部の構成例を示す図である。
【図３】本発明の一実施形態にかかる情報処理制御プログラムが実行する処理について説明する機能ブロック図である。
【図４】実施形態のより詳細な処理例を示すフローチャート（その１）である。
【図５】実施形態のより詳細な処理例を示すフローチャート（その２）である。
【図６】フックモジュールの処理例を示すフローチャート（ファイル作成関数の場合）である。
【図７】フックモジュールの処理例を示すフローチャート（ファイル終了関数の場合）である。
【図８】フックモジュールの処理例を示すフローチャート（ファイルリード関数の場合）である。
【図９】フックモジュールの処理例を示すフローチャート（ファイルライト関数の場合）である。
【発明を実施するための形態】
【００１１】
以下、本発明の好適な実施形態につき説明する。
【００１２】
＜構成＞
図１は本発明の一実施形態のシステム構成について説明するブロック図である。
【００１３】
サーバ装置１は、特定の企業など（この例では「Ａ会社」とする）が自社の社員向けなどに運営している情報処理装置（コンピュータ装置）であり、インターネットなどのネットワーク２に接続されている。Ａ会社は自宅などでパソコン３を使用して仕事を行う自社の社員（この例では「ａ社員」とする）に対して、自宅などでの仕事に使用するツールとしてＵＳＢメモリ４を提供する。ＵＳＢメモリ４は、ＵＳＢポートのコネクタを介してパソコン３に対し容易に着脱自在な記憶装置である。なお、パソコン３に対してコネクタを介して着脱自在なリムーバブルな記憶装置であれば、ＵＳＢメモリ４に代えて様々な種類のメディアを使用することができる。
【００１４】
パソコン３は、ａ社員が自宅などで仕事を行うために使用する情報処理装置である。パソコン３は、各種演算を行い、各部を集中的に制御するＣＰＵ（Central Processing Unit）３１と、読み取り専用のＲＯＭ（Read Only Memory）３２と、ＣＰＵ３１の作業エリアとなるＲＡＭ（Random Access Memory）３３とがバス３４を介して接続されている。さらにバス３４には、所定のインタフェースを介して、マウス、キーボードなどの入力装置３５と、ＬＣＤ（Liquid Crystal Display）などの表示装置３６と、ＨＤＤ（Hard Disk Drive）などの記憶装置３７と、ネットワーク２と通信を行うための通信手段となる通信インタフェース（I/F）３８と、が接続されている。なお、以下の説明に用いる例としては、パソコン３のオペレーティングシステム（ＯＳ）としてWindows（マイクロソフト社の登録商標である）を使用しているものする。
【００１５】
一方、記憶装置３７には、後述する操作に基づいてサーバ装置１からダウンロードされる情報処理制御プログラム３０１が格納される。情報処理制御プログラム３０１は、利用者による設定情報は保存されるが、最新のプログラムとするため、サーバ装置１に接続する毎にダウンロードされる。なお、情報処理制御プログラム３０１は、アップデートを適切に行うことを条件に、サーバ装置１からダウンロードすることなく、パソコン３の利用者がＣＤ−ＲＯＭ（Compact Disk Read-Only Memory）などのメディアからセットアップしてもよい。
【００１６】
図２は情報処理制御プログラム３０１により実現されるソフトウェア機能部の構成例を示す図である。
【００１７】
図２において、情報処理制御プログラム３０１は、ビューアプログラム３０２とローカルコントロールプログラム３０６とＶＰＮコントロールプログラム３１２とを含んでいる。
【００１８】
ビューアプログラム３０２は、情報処理制御プログラム３０１の制御の対象となるアプリケーションプログラム３２１を登録してその起動を管理するとともに、実際にはＵＳＢメモリ４や記憶装置３７の仮想ファイル内に保存される各種ファイルを通常のディレクトリ位置（Windowsの場合はＣドライブなど）に存在するかのように表示するビューア機能を提供するものである。ビューアプログラム３０２は、ランチャー制御部３０３とビューア制御部３０４とフックモジュール３０５とを含んでいる。
【００１９】
ランチャー制御部３０３は、所定ウインドウへのアプリケーションプログラムのアイコンのドラッグなどによりアプリケーションプログラムの登録を行い、所定ウインドウ内に表示されたアプリケーションプログラムのアイコンをマウスでダブルクリックなどすることにより起動を行わせる機能を有している。登録されたアプリケーションプログラムはリストとして内部的に保存される。なお、所定ウインドウは、ダイアログコントロール（ＤＣ）によってウインドウの輪郭に赤い枠などの特殊表示を施すことにより、仮想ファイルによる機密保護が行われていることを利用者にわからせるようになっている。
【００２０】
ビューア制御部３０４は、ローカルコントロールプログラム３０６のファイルシステム３０９を介して、ビューア画面を表示する機能を有している。ビューア画面は、Windowsのエクスプローラと同様な画面を有している。異なるのは、実際にはＵＳＢメモリ４や記憶装置３７の仮想ファイル内に保存される各種ファイルデータを通常のディレクトリ位置に存在するかのように表示する点である。なお、ビューア画面のウインドウは、ダイアログコントロールによってウインドウの輪郭に赤い枠などの特殊表示を施すことにより、仮想ファイルによる機密保護が行われていることを利用者にわからせるようになっている。また、ビューア制御部３０４により提供されるビューアは、ＶＰＮ経由で外部のサーバ装置と接続する場合、ＶＰＮコントロールプログラム３１２の制御により、独自のプロトコルにより通信を行い、当該プロトコルに対応したサーバ装置１でなければ通信を行うことができないようになっている。これにより、予め定められたロケーションのサーバ装置１からでなければデータのダウンロードなどを行うことができないようになっている。
【００２１】
フックモジュール３０５は、ビューアプログラム３０２内においてファイル操作関数などの命令が実行されたことをフック（検出）し、所定の処理を行う機能を有している。フックモジュール３０５の処理の詳細については後述する。なお、ここでは予めフックモジュール３０５がビューアプログラム３０２内に挿入され、前述したダイアログコントロールによる特殊表示も予め施されているものとしているが、後述するアプリケーションプログラム３２１へのダイアログコントロールの修正およびフックモジュールの挿入と同じメカニズムを用い、ビューアプログラム３０２の起動時に動的にダイアログコントロールの修正とフックモジュールの挿入を行うようにしてもよい。
【００２２】
ローカルコントロールプログラム３０６は、制御の対象となるアプリケーションプログラム３２１の起動時に動的にダイアログコントロールの修正とフックモジュールの挿入を行うとともに、オペレーティングシステム３３１が有する固有のファイルシステム３３３とは別の独自のファイルシステム３０９を提供するものである。ローカルコントロールプログラム３０６は、ダイアログコントロール（ＤＣ）修正部３０７とフックモジュール（ＦＭ）挿入部３０８とファイルシステム３０９とフックモジュール３１１とを含んでいる。
【００２３】
ダイアログコントロール修正部３０７は、情報処理制御プログラム３０１の管理の下で起動するアプリケーションプログラム３２１に対して、ダイアログコントロールの修正を行い、当該アプリケーションプログラム３２１が表示するウインドウに赤い枠などの特殊表示を施す機能を有している。ダイアログコントロールの修正は、アプリケーションプログラム３２１のプログラムコード内のウインドウ表示のプロパティデータを書き換えることで行う。
【００２４】
フックモジュール挿入部３０８は、情報処理制御プログラム３０１の管理の下で起動するアプリケーションプログラム３２１に対してフックモジュール３２２を挿入する機能を有している。アプリケーションプログラム３２１に挿入されたフックモジュール３２２は、アプリケーションプログラム３２１の実行に伴ってファイル操作関数やコピー、プリントなどの命令が実行されたことをフック（検出）し、所定の処理を行う機能を有している。フックモジュール３２２の処理の詳細については後述する。
【００２５】
ファイルシステム３０９は、オペレーティングシステム３３１が有する固有のファイルシステム３３３とは別の独自のファイルシステムを提供する機能を有しており、オペレーティングシステム３３１を介し、記憶装置３７あるいはＵＳＢメモリ４への仮想ファイルの書き込み／読み出しを行う機能を有している。ファイルシステム３０９は、オペレーティングシステム３３１のファイルシステム３３３と同様に、ファイルパスをディレクトリのデータとして階層的に管理している。なお、ハンドルマップ３１０により、ファイルハンドルと表示上のファイルパスと仮想ファイル内のファイル位置とを対応付けて管理している。なお、ここではファイルシステム３０９が記憶装置３７あるいはＵＳＢメモリ４上に保存される仮想ファイル自体の作成・更新機能も有しているとして説明するが、ファイルシステム３０９には通常のファイルシステム３３３と同様に、指定されたファイルの書き込み／読み出しおよびディレクトリの管理機能のみを持たせ、仮想ファイル自体の作成・更新は各フックモジュール３０５、３１１、３１４、３２２が行うようにしてもよい。
【００２６】
フックモジュール３１１は、ローカルコントロールプログラム３０６内においてファイル操作関数などの命令が実行されたことをフック（検出）し、所定の処理を行う機能を有している。フックモジュール３１１の処理の詳細については後述する。
【００２７】
ＶＰＮコントロールプログラム３１２は、ＶＰＮ経由での外部サーバ（サーバ装置１など）へのアクセスを制御する機能を提供する。ＶＰＮコントロールプログラム３１２は、ＶＰＮ制御部３１３とフックモジュール３１４とを含んでいる。
【００２８】
ＶＰＮ制御部３１３は、オペレーティングシステム３３１および通信インタフェース３８を介し、ＶＰＮ経由でＳＭＢ（Server Message Block）などのプロトコルをベースにした独自のプロトコルによるサーバアクセス制御を行う機能を有している。
【００２９】
フックモジュール３１４は、ＶＰＮコントロールプログラム３１２内においてファイル操作関数などの命令が実行されたことをフック（検出）し、所定の処理を行う機能を有している。フックモジュール３０５の処理の詳細については後述する。
【００３０】
なお、オペレーティングシステム３３１にはファイルシステム３３３を用いてファイル操作を行うファイルズファンクション３３２が設けられているが、仮想ファイルの管理には用いない。
【００３１】
＜概略動作＞
図１において、ａ社員が自宅などで仕事を行うときは、パソコン３のＵＳＢポートのコネクタを介してＵＳＢメモリ４を接続する。そして、ａ社員は、パソコン３をサーバ装置１のクライアントとして使用する。すなわち、パソコン３のＷｅｂブラウザを起動して特定のＵＲＬ（Uniform Resource Locator）を入力し、Ａ会社がサーバ装置１により社員向けに提供しているＷｅｂページを表示装置３６に表示する。ａ社員は、このＷｅｂページ上などで予め定められた認証（パスワードの入力などに基づく照合処理）を受けることにより、情報処理制御プログラム３０１をサーバ装置１からダウンロードすることができる。この情報処理制御プログラム３０１をダウンロードし、パソコン３の記憶装置３７にセットアップすることにより、ａ社員が自宅などで仕事を行うための基本的な準備が整う。
【００３２】
これにより、情報処理制御プログラム３０１の提供するビューア機能あるいはランチャー制御部３０３により登録されたアプリケーションプログラム３２１から、ＶＰＮコントロールプログラム３１２を介することで、ａ社員は、サーバ装置１の少なくとも自らのために提供されている領域に格納されている各種ファイルを利用することができる。このファイルをダウンロードするときは、ＳＳＬ−ＶＰＮ技術によりデータをＳＳＬ技術で暗号化して送信するので、ネットワーク２上でデータが漏洩する恐れはない。
【００３３】
図３は本発明の一実施形態にかかる情報処理制御プログラム３０１が実行する処理について説明する機能ブロック図である。
【００３４】
情報処理制御プログラム３０１により、ビューアプログラム３０２のビューア制御部３０４によるビューア機能と、ファイル操作関数やコピー・プリントなどの命令に対するフック機能とが提供される。また、情報処理制御プログラム３０１には、独自のファイルシステム３０９も含まれている。一般に、ファイルシステムは記憶媒体上でのファイルの保存と管理の方法を定めたものであり、オペレーティングシステム３３１には固有のファイルシステム３３３が含まれ、通常はこのオペレーティングシステム３３１に含まれているファイルシステム３３３によりファイルの保存と管理が行われる。しかし、後述する予め定められた条件の下では、オペレーティングシステム３３１に含まれているファイルシステム３３３に代えて、情報処理制御プログラム３０１により提供される独自のファイルシステム３０９によりファイルの保存と管理が行われる。
【００３５】
前述のとおり、Ａ会社がサーバ装置１により社員向けに提供しているＷｅｂページ上で予め定められた認証を受けたａ社員は、サーバ装置１の少なくとも自らのために提供されている領域に格納されている各種ファイルをダウンロードすることが可能となる。通常、パソコン３でネットワーク２から何らかのファイルをダウンロードしようとすると、オペレーティングシステム３３１のファイルズファンクション３３２により、当該ファイルは記憶装置３７などに保存されるのが通例である。そして、このファイルの保存と管理はオペレーティングシステム３３１のファイルシステム３３３により行われる。
【００３６】
これに対して、ａ社員がサーバ装置１に格納されているファイルをダウンロードしようとするときには、前述のフック機能を実現するフックモジュール３０５、３２２は、本来はファイルズファンクション３３２により記憶装置３７に保存されるはずのファイルを横取りし、独自のファイルシステム３０９により記憶装置３７あるいはＵＳＢメモリ４に暗号化した仮想ファイル内のデータとしてファイルを保存させる。すなわち、記憶装置３７やＵＳＢメモリ４に保存されたファイルの保存と管理はファイルシステム３０９により行われる。なお、仮想ファイルは所定のファイル階層内に保存されるが、仮想ファイルの存在自体を外部から認識できないように、記憶装置３７やＵＳＢメモリ４内の所定の領域に独自のフォーマットを施し、その中に仮想ファイルを保存するようにしてもよい。
【００３７】
また、例えば、記憶装置３７に通常の保存領域として用いられるＣドライブが構築され、ＵＳＢメモリ４はリムーバブルディスクとしてＧドライブと認識されて、通常、ネットワーク２からダウンロードしたファイルがＣドライブに保存される場合には、ＵＳＢメモリ４に保存されたファイルはＧドライブに保存されていると表示されるはずである。しかし、前述のようにサーバ装置１からＵＳＢメモリ４の特定の領域にダウンロードされたファイルは、独自のファイルシステム３０９により、仮想ファイルが実際に保存されたＧドライブではなく、あたかもＣドライブに単体のファイルとして保存されているかのように表示装置３６に表示される。ダウンロードされたファイルが仮想ファイルにファイルデータとして記憶装置３７の所定のディレクトリ階層に保存される場合、Ｃドライブではあっても通常のディレクトリ階層とは異なる場合には、Ｃドライブの通常のディレクトリ階層に単体のファイルとして保存されているかのように表示装置３６に表示される。
【００３８】
これは、ファイルシステム３０９が、ＵＳＢメモリ４や記憶装置３７の特定の領域に保存されている仮想ファイルに含まれるファイルデータが何であるかを認識し、当該ファイルについては仮想的にＣドライブに保存されているものとして表示するものである。例えば、Ｇドライブを開いても当該ファイルを示すアイコンなどは表示されないが、Ｃドライブを開けば当該ファイルを示すアイコンなどが表示される。
【００３９】
そして、Ｃドライブ中に表示されている当該アイコンをクリックすると、当該アイコンが表示するファイルを開くためのアプリケーションプログラム３２１が立ち上がり、このアプリケーションプログラム３２１がファイルにアクセスしようとするところをフックモジュール３２２が横取りして、ファイルシステム３０９によりＵＳＢメモリ４あるいは記憶装置３７に仮想ファイル内のデータとして保存されているファイルを開く。同様に、この開いたファイルを保存しようとすると、アプリケーションプログラム３２１がＣドライブである記憶装置３７に保存しようとするのをフックモジュール３２２が横取りして、ファイルシステム３０９によりＵＳＢメモリ４あるいは記憶装置３７に仮想ファイル内のデータとして保存する。
【００４０】
以上のとおり、Ａ会社のサーバ装置１からダウンロードしたファイルはパソコン３の記憶装置３７の通常の領域には保存されず、ＵＳＢメモリ４あるいは記憶装置３７内の所定領域に暗号化された仮想ファイルにファイルデータとして保存されるので、パソコン３の情報セキュリティが不十分であったとしても、パソコン３からＡ会社の情報が漏洩することを防止することができる。また、ａ社員がＵＳＢメモリ４を紛失し、あるいは盗まれても、情報処理制御プログラム３０１がダウンロードされていない他のパソコンなどでＵＳＢメモリ４に保存されるファイルを読み出すことはできないので、ＵＳＢメモリ４からＡ会社の情報が漏洩することを防止することもできる。
【００４１】
さらに、サーバ装置１からＵＳＢメモリ４あるいは記憶装置３７の特定の領域にダウンロードされたファイルは、通常、ネットワーク２からダウンロードした記憶装置３７のＣドライブの通常のディレクトリ階層に保存されているかのように表示されるので、ａ社員は通常のファイルと同様に当該ファイルを扱うことができ、作業が行いやすくなる。
【００４２】
＜詳細動作＞
図４は実施形態のより詳細な処理例を示すフローチャートである。なお、ＶＰＮ経由のサーバアクセスを行う場合には、事前にＶＰＮ構築のための処理と認証は済んでいるものとする。この場合、通常のブラウザからサーバ装置１に接続して認証処理を行うと、ビューアプログラム３０２が自動的に起動される。
【００４３】
図４において、ビューアプログラム３０２が起動され（ステップＳ１０１）、ランチャー制御部３０３により制御されるランチャーからビューア制御部３０４により制御されるビューアを起動すると（ステップＳ１０２）、各種のファイル操作が可能となる。
【００４４】
そして、ビューアの中で例えばネットワーク上のファイルをローカルにコピーするようなファイル操作を行うと（ステップＳ１０３）、これがフックモジュール３０５によりフック（検出）され（ステップＳ１０４）、フックモジュール３０５によりファイル操作関数などに応じた処理が行われる（ステップＳ１０５）。所定の処理の後、フックした命令もしくはその他の命令に戻る。フックモジュール３０５の処理の内容については後述する。
【００４５】
一方、ビューアの操作の中でファイルオープンが行われると（ステップＳ１０６のＹｅｓ）、ビューアプログラム３０２はファイルに対応するアプリケーションプログラム３２１を起動する（ステップＳ１０７）。これは、ファイルの拡張子に基づいて行われる。また、ビューアプログラム３０２のランチャー制御部３０３により制御されるランチャーからアプリケーションプログラム３２１を起動した場合についても、その後の動作は以下と同様となる。
【００４６】
次いで、ビューアプログラム３０２は、ローカルコントロールプログラム３０６を起動する（ステップＳ１０８）。
【００４７】
起動したローカルコントロールプログラム３０６は、フックモジュールの雛形を所定の記憶領域からロードする（ステップＳ１０９）。
【００４８】
また、ローカルコントロールプログラム３０６は、アプリケーションプログラム３２１のダイアログコントロールを修正し、例えば、ウインドウの外側に赤い枠を表示するようにプログラムコード（主にプロパティデータ）を修正する（ステップＳ１１０）。
【００４９】
次いで、ローカルコントロールプログラム３０６は、先にロードしたフックモジュールの雛形に基づいて、アプリケーションプログラム３２１にフックモジュール３２２を挿入する（ステップＳ１１１）。
【００５０】
そして、挿入したフックモジュール３２２を起動し（ステップＳ１１２）、アプリケーションプログラム３２１を実行する（ステップＳ１１３）。
【００５１】
図５は、アプリケーションプログラム３２１に挿入されたフックモジュール３２２の処理例を示すフローチャートである。
【００５２】
図５において、アプリケーションプログラム３２１においてファイル操作などが行われると（ステップＳ２０１）、これがフックモジュール３２２によりフック（検出）され（ステップＳ２０２）、フックモジュール３２２によりファイル操作関数などに応じた処理が行われる（ステップＳ２０３）。所定の処理の後、フックした命令もしくはその他の命令に戻る。フックモジュール３２２の処理の内容については次にする。
【００５３】
図６はフックモジュール３０５、３１１、３１４、３２２の処理例を示すフローチャート（ファイル作成関数の場合）である。
【００５４】
図６において、フックモジュールは、CreateFile関数をフックすると（ステップＳ３０１）、CreateFile関数の引数からファイルパス名を取得する（ステップＳ３０２）。
【００５５】
次いで、フックモジュールは、ＶＰＮ経由以外のネットワークファイルであるか否か判断し（ステップＳ３０３）、ＶＰＮ経由以外のネットワークファイルである場合（ステップＳ３０３のＹｅｓ）、CreateFile関数の実行を拒否し（ステップＳ３０４）、元に復帰し（ステップＳ３１７）、その後の処理に移行する。ＶＰＮ経由以外のネットワークファイルの作成を禁止するのは、任意のネットワーク上にファイルを作成できてしまうと機密漏洩を招くこととなるからである。
【００５６】
ＶＰＮ経由以外のネットワークファイルでない場合（ステップＳ３０３のＮｏ）、続いてファイルパス名からＣＤ−ＲＯＭ上のファイルであるか否かの判断を行い（ステップＳ３０５）、ＣＤ−ＲＯＭ上のファイルでない場合（ステップＳ３０５のＮｏ）、続いてファイルの拡張子に対応するアプリケーションプログラムが制御外のアプリケーションプログラムであるか否かの判断を行い（ステップＳ３０６）、制御外のアプリケーションプログラムでない場合（ステップＳ３０６のＮｏ）、続いて許可されたファイルパスであるか否かの判断を行う（ステップＳ３０７）。許可されたファイルパスは、内部的に保持されているファイルパスのリストと照合することで判断する。
【００５７】
ＣＤ−ＲＯＭ上のファイルである場合（ステップＳ３０５のＹｅｓ）、制御外のアプリケーションプログラムである場合（ステップＳ３０６のＹｅｓ）、あるいは、許可されたファイルパスである場合（ステップＳ３０７のＹｅｓ）、元の関数を呼び出し（ステップＳ３０８）、復帰する（ステップＳ３１７）。
【００５８】
一方、許可されたファイルパスでない場合（ステップＳ３０７のＮｏ）、続いてＶＰＮ経由のサーバ上のファイルであるか否か判断する（ステップＳ３０９）。ＶＰＮ経由のサーバ上のファイルである場合（ステップＳ３０９のＹｅｓ）、元の関数を呼び出し、ＶＰＮコントロールプログラム３１２によるＳＭＢを介した処理を行い（ステップＳ３１０）、復帰する（ステップＳ３１７）。ＶＰＮ経由のサーバ上のファイルである場合にCreateFile関数の実行を許可するのは、ＶＰＮにより機密保護がなされたサーバには生のままファイルの作成を許可しても問題がないからである。
【００５９】
ＶＰＮ経由のサーバ上のファイルでない場合（ステップＳ３０９のＮｏ）、ローカルコントロールプログラム３０６のファイルシステム３０９を呼び出す（ステップＳ３１１）。
【００６０】
呼び出されたファイルシステム３０９は、ハンドルマップ３１０を参照することで仮想ファイル内に同じファイルがあるか否か判断する（ステップＳ３１２）。
【００６１】
仮想ファイル内に同じファイルがない場合（ステップＳ３１２のＮｏ）、仮想ファイル内にファイルを作成する（ステップＳ３１３）。
【００６２】
次いで、表示用のファイルパスを生成する（ステップＳ３１４）。例えば、Ｇドライブとして認識されるＵＳＢメモリ４に仮想ファイルが存在する場合であっても、通常の作業領域として用いられるＣドライブ上のファイルパスを生成する。
【００６３】
次いで、ハンドルマップ３１０に新たなファイルハンドルと表示上のファイルパスと仮想ファイル内のファイル位置とを追記する（ステップＳ３１５）。
【００６４】
仮想ファイル内に同じファイルがある場合（ステップＳ３１２のＹｅｓ）、ファイルの作成（ステップＳ３１３）、表示用のファイルパス生成（ステップＳ３１４）、および、ハンドルマップ３１０への追記（ステップＳ３１５）は行わない。
【００６５】
次いで、次の命令の呼び出しを行い（ステップＳ３１６）、復帰する（ステップＳ３１７）。
【００６６】
図７はフックモジュール３０５、３１１、３１４、３２２のファイル終了関数の場合の処理例を示すフローチャートである。
【００６７】
図７において、フックモジュールは、CloseHandle関数をフックすると（ステップＳ３２１）、ローカルコントロールプログラム３０６のファイルシステム３０９を呼び出す（ステップＳ３２２）。
【００６８】
呼び出されたファイルシステム３０９は、ハンドルマップ３１０を参照することで仮想ファイル内に同じファイルハンドルがあるか否か判断する（ステップＳ３２３）。
【００６９】
仮想ファイル内に同じファイルハンドルがない場合（ステップＳ３２３のＮｏ）、元の関数を呼び出し（ステップＳ３２４）、復帰する（ステップＳ３２８）。
【００７０】
仮想ファイル内に同じファイルハンドルがある場合（ステップＳ３２３のＹｅｓ）、ハンドルマップ３１０から当該ファイルハンドルを削除し（ステップＳ３２５）、当該ファイルハンドルをクローズし（ステップＳ３２６）、次の命令を呼び出し（ステップＳ３２７）、復帰する（ステップＳ３２８）。
【００７１】
図８はフックモジュール３０５、３１１、３１４、３２２のファイルリード関数の場合の処理例を示すフローチャートである。
【００７２】
図８において、フックモジュールは、ReadFile関数をフックすると（ステップＳ３３１）、ローカルコントロールプログラム３０６のファイルシステム３０９を呼び出す（ステップＳ３３２）。
【００７３】
呼び出されたファイルシステム３０９は、ハンドルマップ３１０を参照することで仮想ファイル内に同じファイルハンドルがあるか否か判断する（ステップＳ３３３）。
【００７４】
仮想ファイル内に同じファイルハンドルがない場合（ステップＳ３３３のＮｏ）、元の関数を呼び出し（ステップＳ３３４）、復帰する（ステップＳ３３７）。
【００７５】
仮想ファイル内に同じファイルハンドルがある場合（ステップＳ３３３のＹｅｓ）、仮想ファイル内から該当するファイルを読み出し（ステップＳ３３５）、次の命令を呼び出し（ステップＳ３３６）、復帰する（ステップＳ３３７）。
【００７６】
図９はフックモジュール３０５、３１１、３１４、３２２のファイルライト関数の場合の処理例を示すフローチャートである。
【００７７】
図９において、フックモジュールは、WriteFile関数をフックすると（ステップＳ３４１）、ローカルコントロールプログラム３０６のファイルシステム３０９を呼び出す（ステップＳ３４２）。
【００７８】
呼び出されたファイルシステム３０９は、ハンドルマップ３１０を参照することで仮想ファイル内に同じファイルハンドルがあるか否か判断する（ステップＳ３４３）。
【００７９】
仮想ファイル内に同じファイルハンドルがない場合（ステップＳ３４３のＮｏ）、元の関数を呼び出し（ステップＳ３４４）、復帰する（ステップＳ３４８）。
【００８０】
仮想ファイル内に同じファイルハンドルがある場合（ステップＳ３４３のＹｅｓ）、仮想ファイル内のファイルデータを更新し（ステップＳ３４５）、仮想ファイル内のファイル位置などに変更が生じる場合はハンドルマップ３１０を更新する（ステップＳ３４６）。そして、次の命令を呼び出し（ステップＳ３４７）、復帰する（ステップＳ３４８）。
【００８１】
その他、ファイルデータの部分的なコピー操作やプリント操作を禁止する場合、フックモジュールは、それらの命令をフックした場合、その実行を拒否する。
【００８２】
＜総括＞
上述したように、本実施形態によれば次のような利点がある。
【００８３】
（１）オペレーティングシステムが予め指定しているＣドライブなどの記憶装置の所定の領域に代え、同じ記憶装置の他の領域あるいはＧドライブなどのリムーバブルな記憶装置の所定の領域を前記データの保存先として指定し、暗号化された仮想ファイル内にファイルデータを保存するので、ファイルデータには専用のプログラムからしかアクセスすることができず、情報セキュリティを強化することができる。
【００８４】
（２）暗号化された仮想ファイルをＵＳＢメモリなどのリムーバブルな記憶装置に保存し、その記憶装置をパソコンから取り外すことで、仮想ファイル自体もパソコンに残すことがなくなり、より一層、情報セキュリティを強化することができる。
【００８５】
（３）専用のビューアからは、仮想ファイルの実際の保存領域とは異なり、通常の操作環境で用いられるＣドライブなどにファイルが単体で存在するように見えるため、ダウロード後のファイルを使った作業が行いやすくなる。
【００８６】
（４）仮想ファイルとして管理されるファイルを操作するアプリケーションプログラムなどのウインドウに、制御下にあることを示す特殊表示を付すことで、利用者に機密保護が行われていることを容易にわからせることができる。
【００８７】
（５）サーバ装置からファイルをダウンロードする以外に、ＵＳＢメモリなどのリムーバブルな記憶装置にファイルを保存して閲覧用（コピー、プリントの禁止）として利用することができる。
【００８８】
以上、本発明の好適な実施の形態により本発明を説明した。ここでは特定の具体例を示して本発明を説明したが、特許請求の範囲に定義された本発明の広範な趣旨および範囲から逸脱することなく、これら具体例に様々な修正および変更を加えることができることは明らかである。すなわち、具体例の詳細および添付の図面により本発明が限定されるものと解釈してはならない。
【符号の説明】
【００８９】
１          サーバ装置
２          ネットワーク
３          パソコン
３１        ＣＰＵ
３２        ＲＯＭ
３３        ＲＡＭ
３４        バス
３５        入力装置
３６        表示装置
３７        記憶装置
３８        通信インタフェース
３０１      情報処理制御プログラム
３０２      ビューアプログラム
３０３      ランチャー制御部
３０４      ビューア制御部
３０５      フックモジュール
３０６      ローカルコントロールプログラム
３０７      ダイアログコントロール修正部
３０８      フックモジュール挿入部
３０９      ファイルシステム
３１０      ハンドルマップ
３１１      フックモジュール
３１２      ＶＰＮコントロールプログラム
３１３      ＶＰＮ制御部
３１４      フックモジュール
３２１      アプリケーションプログラム
３２２      フックモジュール
３３１      オペレーティングシステム
３３２      ファイルズファンクション
３３３      ファイルシステム
４          ＵＳＢメモリ
【図１】
2010282606.tif 000003
【図２】
2010282606.tif 000004
【図３】
2010282606.tif 000005
【図４】
2010282606.tif 000006
【図５】
2010282606.tif 000007
【図６】
2010282606.tif 000008
【図７】
2010282606.tif 000009
【図８】
2010282606.tif 000010
【図９】
2010282606.tif 000011