(57)【要約】【課題】  アプリケーションが暗号化処理・復号処理機能を持たない場合でも、当該アプリケーションを改変せずに、暗号化ファイルを操作する。【解決手段】  ファイル自動暗号化システムは、ファイル共有プロトコルによるファイル共有サーバを実現し、アプリケーションからのファイルのオープン要求を受け付けるネットワークファイル共有サーバ手段、ネットワークファイル共有サーバ手段が受け付けたオープン要求に対応するファイルをファイルサーバから取得するファイル取得手段、アプリケーションを識別する識別情報をＯＳに問い合わせ、識別情報で特定されるアプリケーションが、ファイルへのアクセスが事前に許可されたアプリケーションであるかどうかを確認するアプリケーション識別手段、およびアプリケーション識別手段により、アプリケーションが、ファイルへのアクセスが事前に許可されたアプリケーションであると確認されたとき、ファイル取得手段が取得したファイルを復号するファイル暗復号手段を有する。【選択図】  図１
2014085855.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置に実行させる、ファイル自動暗号化プログラムであって、
アプリケーションからのファイルのオープン要求に応答して、前記ファイルをファイルサーバから取得し、
前記アプリケーションを識別する識別情報をＯＳに問い合わせ、
前記識別情報で特定される前記アプリケーションが、前記ファイルへのアクセスが事前に許可されたアプリケーションであるかどうかを確認し、
前記アプリケーションによる前記ファイルへのアクセスが事前に許可されているとき、取得した前記ファイルを復号することを特徴とするファイル自動暗号化プログラム。
【請求項２】
請求項１に記載のファイル自動暗号化プログラムであって、
前記アプリケーションが、前記ファイルへのアクセスが事前に許可されたアプリケーションであるかどうかの確認を、前記アプリケーションからの前記オープン要求に対応する前記ファイルの取得を正常に実行した後に実行することを特徴とするファイル自動暗号化プログラム。
【請求項３】
請求項２に記載のファイル自動暗号化プログラムであって、
前記アプリケーションを識別する前記識別情報の前記ＯＳへの問い合わせは、
当該ファイル自動暗号化プログラムが管理しているファイル名から、前記ＯＳが前記ファイルをオープンしているアプリケーションを特定するために用いる絶対パス形式のファイル名に変換する処理を含むことを特徴とするファイル自動暗号化プログラム。
【請求項４】
請求項１〜３のいずれか１項に記載のファイル自動暗号化プログラムであって、
復号した前記ファイルを該情報処理装置のメモリ空間に保存することを特徴とするファイル自動暗号化プログラム。
【請求項５】
請求項１〜４のいずれか１項に記載のファイル自動暗号化プログラムであって、
前記アプリケーションから前記ファイルのクローズ要求に応答して、
前記ファイルを暗号化することを特徴とするファイル自動暗号化プログラム。
【請求項６】
請求項１〜５のいずれか１項に記載のファイル自動暗号化プログラムであって、
前記識別情報で特定される前記アプリケーションが、前記ファイルへのアクセスが事前に許可されたアプリケーションであるかどうかを、信頼できる第三者により運営される情報管理サーバにより確認されることを特徴とするファイル自動暗号化プログラム。
【請求項７】
ファイル共有プロトコルによるファイル共有サーバを実現し、アプリケーションからのファイルのオープン要求を受け付けるネットワークファイル共有サーバ手段、
前記ネットワークファイル共有サーバ手段が受け付けた前記オープン要求に対応する前記ファイルをファイルサーバから取得するファイル取得手段、
前記アプリケーションを識別する識別情報をＯＳに問い合わせ、前記識別情報で特定される前記アプリケーションが、前記ファイルへのアクセスが事前に許可されたアプリケーションであるかどうかを確認するアプリケーション識別手段、および
前記アプリケーション識別手段により、前記アプリケーションが、前記ファイルへのアクセスが事前に許可されたアプリケーションであると確認されたとき、前記ファイル取得手段が取得した前記ファイルを復号するファイル暗復号手段を有することを特徴とするファイル自動暗号化システム。
【請求項８】
請求項７に記載のファイル自動暗号化システムであって、
前記アプリケーション識別手段による、アクセスが事前に許可されたアプリケーションであるかどうかを確認は、前記ファイル取得手段による、前記ファイルの取得が正常に終了した後に実施すること、を特徴とするファイル自動暗号化システム。
【請求項９】
請求項８に記載のファイル自動暗号化システムであって、
前記アプリケーション識別手段による、前記アプリケーションを識別する前記識別情報の前記ＯＳへの問い合わせは、該ファイル自動暗号化システムが管理しているファイル名から、前記ＯＳが前記ファイルをオープンしているアプリケーションを特定するために用いる絶対パス形式のファイル名への変換を含むことを特徴とするファイル自動暗号化システム。
【請求項１０】
請求項７〜９のいずれか１項に記載のファイル自動暗号化システムであって、
復号した前記ファイルを、該ファイル自動暗号化システムを構成する情報処理装置のメモリ空間に保存することを特徴とするファイル自動暗号化システム。
【請求項１１】
請求項７〜１０のいずれか１項に記載のファイル自動暗号化システムであって、
前記ネットワークファイル共有サーバ手段は前記アプリケーションから前記ファイルのクローズ要求を受け付け、
前記ネットワークファイル共有サーバ手段が受け付けた前記クローズ要求に対応する前記ファイルを、前記ファイル暗復号手段が暗号化することを特徴とするファイル自動暗号化システム。
【請求項１２】
請求項７〜１１のいずれか１項に記載のファイル自動暗号化システムであって、
前記アプリケーション識別手段は、前記識別情報で特定される前記アプリケーションが、前記ファイルへのアクセスが事前に許可されたアプリケーションであるかどうかを、信頼できる第三者により運営される情報管理サーバに確認することを特徴とするファイル自動暗号化システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイルを事前に許可を受けていないアプリケーションのアクセスから保護するための技術に関するものである。
【背景技術】
【０００２】
標的型攻撃と呼ばれる、攻撃対象を特定の組織や機関に限定した新しいタイプのサイバー攻撃による情報漏えいが大きな問題となっている。標的型攻撃は、電子メールに添付された悪意のあるプログラム（マルウェア、と呼ばれる）を従業員が実行したりすることにより、攻撃対象の内部に侵入させる。その後、侵入したマルウェアが外部の指令サーバなどと連携して組織の内部に拡散し、従来のサイバー攻撃では到達することができなかった攻撃対象の内部に存在する機密情報を外部の攻撃者が窃取するというものである。
【０００３】
標的型攻撃への対策としては、従来のように組織の内部にマルウェアを侵入させないための対策（入口対策、と呼ばれる）に加え、たとえマルウェアが侵入したとしても機密情報を漏洩させないための対策（出口対策、と呼ばれる）を強化することが重要である。
【０００４】
このような機密情報を漏洩させないための対策としては、機密情報を暗号化し、権利のある人のみが復号用の鍵を取得して閲覧するという対応方法がある。これは、アプリケーションにファイルを暗号化処理・復号処理する機能を組み込むことで可能となる。例えば、アプリケーションがファイルを読み込む際に、アプリケーションに組み込まれた復号化処理によってデータを復号し、アプリケーションによる処理を行う。アプリケーションがファイルを書き込む際には、アプリケーションに組み込まれた暗号化処理によってデータを暗号化し、ファイルに出力するというようなものである。
【０００５】
一方、アプリケーションによっては、暗号化処理・復号処理を持たないものが存在する。この場合は、特許文献１に開示されているように、アプリケーションを改変せずに、暗号化ファイルの操作を、ファイル単位で行う技術がある。
【０００６】
特許文献１では、監視層が、アプリケーションからのＡＰＩ呼び出しをフックし、復号命令を復号制御モジュールに送る。復号制御モジュールは、復号命令に基づき、ＯＳカーネルに復号処理を依頼する。ＯＳカーネルは、復号制御モジュールからの依頼に基づき、ファイルを復号処理し、復号済みファイルを復号制御モジュールに返す。復号制御モジュールは、ＯＳカーネルから返された復号済みファイルをアプリケーションに返す。
【０００７】
以上により、アプリケーションを改変せずに、暗号化ファイルの操作を、ファイル単位で行う。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００９−５９００８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
アプリケーションにファイルを暗号化処理・復号処理する機能を持たせたい場合、アプリケーション自身が暗号化処理・復号処理機能を持たないと、ファイルが保護できないという課題がある。
【００１０】
また、特許文献１に開示されている技術では、ファイルにアクセスしようとしているアプリケーションには透過的にＯＳで復号処理が行われるため、マルウェアがアクセスしたとしても復号処理されたデータが取得できるという課題がある。
【００１１】
さらに、特許文献１に開示されている技術では、ＡＰＩ呼び出しをフックしたり、ＯＳカーネルが復号処理を行ったりする必要があるため、カーネル空間で動作するモジュールが必要であり、当該モジュールが原因でＯＳがクラッシュする可能性があるという課題がある。
【課題を解決するための手段】
【００１２】
開示するファイル自動暗号化プログラムは、ネットワークファイル共有サーバモジュールがアプリケーションプログラムからのファイルオープン要求を受信すると、アプリケーション識別モジュールがファイルオープン要求で指定されたファイルをオープンしているアプリケーションの識別情報をＯＳに問い合わせ、アプリケーションの識別情報に基づいて、当該アプリケーションが事前に許可されたアプリケーションであると判定した場合にはファイル暗復号モジュールが上記ファイルを復号する。
【００１３】
また、復号したファイルはＲＡＭディスクモジュールに保持して、当該事前に許可されたアプリケーションが復号されたデータを処理できるようにする。以降、当該事前に許可されたアプリケーションからのファイルアクセスはＲＡＭディスクモジュール上のファイルに対して処理を行い、ネットワークファイル共有サーバモジュールがファイルクローズ要求を受信した場合に再度暗号化を行って記憶装置に保存する。
【発明の効果】
【００１４】
開示するファイル自動暗号化システム及びプログラムは、ファイルの暗号化処理・復号処理を、アプリケーションやOSと異なるファイル自動暗号化プログラムが行うため、アプリケーションが暗号化処理・復号処理機能を持たない場合でも、当該アプリケーションを改変せずに、暗号化ファイルを操作できる。
【図面の簡単な説明】
【００１５】
【図１】ファイル自動暗号化プログラムを適用した情報処理システムの一例である。
【図２】情報処理装置、ファイルサーバ、情報管理サーバ、または鍵管理サーバが動作するコンピュータの構成の一例である。
【図３】ファイルをオープンする場合の処理の一例を示す図である。
【図４】ファイルをクローズする場合の処理の一例を示す図である。
【図５】ファイルの読込み・書き込みの場合の処理の一例を示す図である。
【図６】ファイル名変換規則テーブル、ローカル ファイル名変換規則テーブル、ホワイトリスト管理テーブル、および鍵管理テーブルの一例を示す図である。
【図７】ファイルオープン処理の場合の、ファイル自動暗号化プログラムの動作フローを示す図である。
【発明を実施するための形態】
【００１６】
以下、本発明の一実施形態を、図面を参照して説明する。
【００１７】
まず、ファイル自動暗号化プログラムを適用した情報処理システムを、図１を用いて説明する。
【００１８】
図１の情報処理システムは、文書作成や表計算、Webブラウジングなどの情報処理を行う少なくとも一つのアプリケーションが動作する情報処理装置１と、情報処理装置１が情報処理を行うためのファイルを保存するファイルサーバ５と、ファイルへのアクセスを許可するアプリケーションの識別情報を管理する情報管理サーバ６と、情報処理装置１がファイルを暗号化処理・復号処理するために使用する鍵を管理する鍵管理サーバ７とが、ネットワーク０を介して接続されている。ファイルサーバ５、情報管理サーバ６、および鍵管理サーバ７の各々は、信頼できる第三者により運営される情報処理サイトにあってもよい。
【００１９】
情報処理装置１では、文書作成や表計算、Webブラウジングなどの情報処理を行う少なくとも一つのアプリケーション２０と、アプリケーション２０からの要求にしたがってファイルサーバ５からファイルを取得し、自動的に暗号化処理・復号処理を行うファイル自動暗号化プログラム１０と、オペレーティングシステム３０（以下、「ＯＳ３０」と記載する）と、通信モジュール４０と、が動作している。
【００２０】
なお、ファイル自動暗号化プログラム１０は、WebDAV、SMB、NFS等のファイル共有プロトコルによるファイル共有サーバを実現するネットワークファイル共有サーバモジュール１１と、ファイルサーバからファイルを取得するためのファイル取得モジュール１３と、ファイル取得モジュール１３が取得したファイルを暗号化処理・復号処理を行うためのファイル暗復号モジュール１２と、ファイル取得モジュール１３が取得したファイルへのアクセスを要求しているアプリケーションを識別し、アクセスが事前に許可されたアプリケーションであるかどうかを確認するためのアプリケーション識別モジュール１５と、ファイル暗復号モジュール１２が復号したファイルをメモリ空間に保存しておくRAMディスクモジュール１４と、を含んでいる。ここで、ファイル自動暗号化プログラム１０は、ネットワークファイル共有サーバモジュール１１によって、OS３０やアプリケーション２０からはネットワークファイル共有サーバとして認識される。このため、アプリケーション２０は、通信モジュール４０を介してファイル共有プロトコルを用いてファイル自動暗号化プログラム１０と通信することで、ファイル自動暗号化プログラム１０がファイルサーバ５から取得したファイルに対して、通常のファイルアクセス処理（ファイルオープン、ファイルクローズ、書き込み、読み込み、など）を行うことができるようになる。なお、通信モジュール４０を介してファイル共有プロトコルを用いてファイル自動暗号化プログラム１０と通信する機能はOS３０が備えていてもよい。
【００２１】
また、ＯＳ３０は、絶対パス形式のファイル名を入力として受け取ると、当該絶対パス形式のファイル名に対応するファイルをオープンしているアプリケーションの識別情報を出力するファイルアクセスアプリケーション特定機能３１と、アプリケーションの識別情報（ID）を入力として受け取ると、当該識別情報に対応するアプリケーションに関する情報を出力するアプリケーション情報提供機能３２とを備えている。ここで、アプリケーション情報提供機能３２が提供するアプリケーションに関する情報には、当該アプリケーションの実行ファイルの絶対パス形式のファイル名が含まれる。
【００２２】
さらに、ファイルサーバ５は、情報処理装置１から受信したファイルを保存するファイル保存モジュール５１と、情報処理装置１にファイル取得モジュール１３を提供するファイル取得モジュール提供モジュール５２と、情報処理装置１からのアクセス要求が、ファイル取得モジュール提供モジュール５２が当該情報処理装置１に提供したファイル取得モジュール１３からのアクセスであるのかを認証するファイル提供先認証モジュール５３と、を含んでいる。
【００２３】
情報処理装置１、ファイルサーバ５、情報管理サーバ６、または鍵管理サーバ７は、例えば図２に示すような構成のコンピュータによって実現される。
【００２４】
図２のコンピュータは、ＣＰＵ１０１と、メモリ１０２と、インターネットやＬＡＮ等のネットワーク０を介して他のコンピュータと通信を行うための通信装置１０３と、キーボードやマウス等の入力装置１０４と、モニタやプリンタ等の出力装置１０５と、読取装置１０６と、ハードディスク等の外部記憶装置１０７とを備え、これらの各構成要素はインタフェース１００を介して互いに接続されている。また、読取装置１０６にはＩＣカードやＵＳＢメモリのような、可搬性を有する記憶媒体１０８を接続することができる。
【００２５】
図２のコンピュータは、情報処理装置１、ファイルサーバ５、情報管理サーバ６、および鍵管理サーバ７の中のいずれか１つの装置として機能する。図２のコンピュータは、当該いずれか１つの装置の機能を実現するプログラムをメモリ１０２にロードし、当該プログラムをＣＰＵ１０１により実行することで、対応する装置の機能を実現する。これらのプログラムは、予め外部記憶装置１０７に格納されていてもよく、必要なときに、読取装置１０６または通信装置１０３により当該コンピュータが利用可能な媒体を介して、他の装置から取得されて外部記憶装置１０７に格納されてもよい。
【００２６】
媒体とは、例えば、読取装置１０６に着脱可能な記憶媒体１０８、または、通信装置１０３に接続されているネットワーク０またはネットワーク０を伝搬する搬送波やディジタル信号を指す。そして、これらのプログラムは、一旦外部記憶装置１０７に格納された後、そこからメモリ１０２上にロードされてＣＰＵ１０１に実行されてもよく、あるいは外部記憶装置１０７に格納されることなく、直接メモリ１０２上にロードされて、ＣＰＵ１０１により実行されてもよい。
【００２７】
次に、図１の情報処理システムの動作について図面を用いて説明する。
【００２８】
図３は、ファイルをオープンする場合の処理の一例を示す図である。具体的には、図１の情報処理システムにおいて、情報処理装置１で動作するアプリケーション２０がファイル自動暗号化プログラム１０に対してファイルオープンを要求した場合の図１の情報処理システムの各構成要素間でのメッセージ交換動作を示した図である。
【００２９】
情報処理装置１で動作するアプリケーション２０がファイル自動暗号化プログラム１０のネットワークファイル共有サーバモジュール１１に対してファイルオープン要求M1001を送信する、ファイル自動暗号化プログラム１０は、まず、ファイルサーバ５からファイル取得モジュール１３の取得を要求するためファイル取得モジュール提供要求M1002をファイルサーバ５に送信する。ファイルサーバ５のファイル取得モジュール提供モジュール５２は、ファイル取得モジュール１３と、ファイル取得モジュール１３からのアクセスであることを確認するための認証情報を引数としてファイル取得モジュール取得応答M1003を作成し、応答する。
【００３０】
次に、ファイル自動暗号化プログラム１０のファイル取得モジュール１３がアプリケーション２０からオープンを要求されたファイルのファイルサーバ５におけるＵＲＩ形式のファイル名を図６の（a）に示したファイル名変換規則テーブル１６を参照して求め、ファイルサーバ５に対してURI形式のファイル名を引数としてファイル提供要求M1004を送信する。
【００３１】
なお、ファイル名変換規則テーブル１６では、ファイル自動暗号化プログラム１０で管理しているＵＲＩ形式のファイル名をLocalというカラムに記載し、ファイルサーバ５で管理しているＵＲＩ形式のファイル名をGlobalというカラムに記載している。例えば、ファイル自動暗号化プログラム１０で管理している「https://localhost/files/home/text1.doc」というファイルは、ファイルサーバ５で管理している「https://webdav.example.com/files/home/user/text1.doc」というファイルに該当することを示している。
【００３２】
ファイル自動暗号化プログラム１０からファイル取得要求を受信したファイルサーバ５は、ファイル保存モジュール５１が引数に指定されているＵＲＩ形式のファイルを検索し、当該ファイルをM1005としてファイル自動暗号化プログラム１０に応答する。
【００３３】
ファイルサーバ５からファイルをM1005として受信したファイル自動暗号化プログラム１０は、アプリケーション２０に対してファイルオープン応答M1006を応答する。
【００３４】
次に、ファイル自動暗号化プログラム１０のアプリケーション識別モジュール１５が、ファイルオープンを要求してきたアプリケーション２０を識別する識別情報をOS３０に要求する。具体的には、ファイル自動暗号化プログラム１０は、アプリケーション識別モジュール１５がM1005として受信したファイルのファイル自動暗号化プログラム１０が管理しているURI形式のファイル名から絶対パス形式のファイル名（図６（b）のFile Name）を図６の（b）に示したローカルファイル名変換規則テーブル１７を参照して求め、OS３０に対して当該絶対パス形式のファイル名で指定されるファイルをオープンしているアプリケーション２０のIDを特定するため、ファイルアクセスアプリケーション特定要求M1007を要求する。
【００３５】
OS３０は、ファイルアクセスアプリケーション特定機能３１がファイルアクセスアプリケーション特定要求M1007を処理し、指定されたファイルをオープンしているアプリケーション２０のIDをアプリケーションIDM1008として応答する。
【００３６】
次に、アプリケーション識別モジュール１５は、ＯＳ３０からアプリケーションIDを受信すると、当該アプリケーションIDを引数として、当該アプリケーションＩＤで識別されるアプリケーション２０の情報をアプリケーション情報取得要求M1009としてOS３０に要求する。
【００３７】
OS３０は、アプリケーション情報提供機能３２がM1009の要求を処理し、指定されたアプリケーション２０に関する情報をアプリケーション情報M1010として応答する。アプリケーション情報M1010がアプリケーション２０を識別する識別情報である。
【００３８】
次に、アプリケーション識別モジュール１５は、M1010で取得したアプリケーション２０に関する情報から当該アプリケーション２０の実行ファイル名を取得し、当該実行ファイルがアクセス許可を得ているかどうかをアクセス可否判定要求M1011として情報管理サーバ６に問い合わせる。
【００３９】
情報管理サーバ６は、ホワイトリスト管理モジュール６１がM1011の要求に含まれている、ファイル名、ハッシュ値、ファイルサイズ、バージョン番号、の情報に合致するエントリが、ホワイトリスト管理モジュール６１が管理しているホワイトリスト管理テーブル６２（図６の（ｃ）にホワイトリスト管理テーブル６２の例を示す。）に存在するかどうかを確認し、エントリが存在している場合は「アクセス許可」を、存在していない場合には「アクセス不可」をアクセス可否判定応答M1012として応答する。ホワイトリスト管理テーブル６２には、事前に許可を受けているプログラムに関する実行ファイル名等が格納されている。
【００４０】
アプリケーション識別モジュール１５が「アクセス許可」の応答を受信すると、ファイル暗復号モジュール１２がファイルサーバ５で管理しているＵＲＩ形式のファイル名を引数として、ファイル取得モジュール１３が取得したファイルを復号するための鍵を要求するため、鍵取得要求M1013を鍵管理サーバ７に送信する。
【００４１】
鍵管理サーバ７は、鍵管理モジュール７１が鍵取得要求M1013に含まれるURI形式のファイル名に該当するエントリが鍵管理テーブル７２（図６の（ｄ）に一例を示す。）に存在するかどうかを確認し、エントリが存在する場合には鍵の値と暗号化アルゴリズムを鍵取得応答M1014として応答する。
【００４２】
ファイル暗復号モジュール１２は、鍵管理サーバ７から受信した鍵とアルゴリズムを利用してファイル取得モジュール１３が取得したファイルを復号し、RAMディスクモジュール１４に復号したファイルを保持する。
【００４３】
以上が、アプリケーション２０がファイル自動暗号化プログラム１０に対してファイルオープンを要求した場合の図１の情報処理システムの各構成要素間でのメッセージ交換動作である。
【００４４】
図７を用いて、図３におけるファイル自動暗号化プログラム１０の動作をより詳細に説明する。
【００４５】
まず、ファイル自動暗号化プログラム１０は、ネットワークファイル共有サーバモジュール１１が通信モジュール４０を介してアプリケーション２０からファイルオープン要求M1001を受信すると、通信モジュール４０を介してファイルサーバ５に対してファイル取得モジュール提供要求M1002を送信する（S1001）。ファイル自動暗号化プログラム１０は、ファイルサーバ５からファイル取得モジュール１３をファイル取得モジュール提供応答M1003として受信する（S1002でYes）と、ファイルサーバ５から取得したファイル取得モジュール１３を起動する（S1003）。
【００４６】
ファイル取得モジュール１３は、ファイル名変換規則テーブル１６を参照して、ファイルオープン要求M1001でオープンを要求されているファイルの、ファイルサーバ５におけるURI形式（Global）のファイル名を取得する（S1004）。
【００４７】
次に、ファイル取得モジュール１３は、S1004で取得したURI形式のファイル名を引数として、ファイルサーバ５に対してファイル提供要求M1004を送信する(S1005)。このとき、ファイル取得モジュール提供応答M1003に含まれるファイル取得モジュール１３は、ファイルサーバ５のファイル提供先認証モジュール５３から認証を受け、S1003で取得したファイル取得モジュール１３であることを証明する認証情報を引数としてファイル提供要求M1004を送信する。
【００４８】
ファイル提供先認証モジュール５３が認証に成功し、かつ、ファイル提供要求M100４で要求したファイルが存在する場合、ファイル取得モジュール１３は、ファイルサーバ５からファイルを正しく受信することができる（S1006でYes）ため、ネットワークファイル共有サーバモジュール１１が通信モジュール４０を介してアプリケーション２０にファイルオープンに成功した旨のファイルオープン応答M1006を応答する(S1007)。
【００４９】
次に、アプリケーション識別モジュール１５が、ローカルファイル名変換規則テーブル１７を参照し、ファイルオープン要求M1001でオープンを要求されたファイルの、情報処理装置１における絶対パス形式のファイル名を取得する（S1008）と、OS３０にファイルアクセスアプリケーション特定要求M1007を送信する（S1009）。
【００５０】
アプリケーション識別モジュール１５が、OS３０からM1007で指定したファイルをオープンしているアプリケーション２０のIDを取得できた場合（S1010でYes）、当該アプリケーションIDを引数として、OS３０にアプリケーション情報要求M1009を送信する（S1011）。
【００５１】
アプリケーション識別モジュール１５が、OS３０からM1009で指定したアプリケーションIDのアプリケーション２０に関する情報を取得できた場合（S101２でYes）、当該アプリケーション情報から当該アプリケーション２０の実行ファイル名やバージョンを取得（S1013）し、当該実行ファイル名で指定されるファイルのハッシュ値を計算し、ファイルサイズを取得する（S1014）。
【００５２】
次に、アプリケーション識別モジュール１５はS1013およびS1014で取得して求めた、実行ファイル名、バージョン、ハッシュ値、ファイルサイズを引数として、情報管理サーバ６にアクセス可否判定要求M1011を送信する（S1015）。
【００５３】
情報管理サーバ６から、M1011に対する応答を受信し、かつその応答が「アクセス許可」である場合（S1016でYes）には、ファイル暗復号モジュール１２が、ファイルサーバ５におけるURI形式のファイル名を引数として、鍵管理サーバ７に鍵取得要求M1013を送信する（S1017）。
【００５４】
鍵管理サーバ７からM1014として鍵と暗号アルゴリズムの取得に成功した場合（S1018でYes）、ファイル暗復号モジュール１２は、ファイル取得モジュール１３が保持している、S1006で受信したファイルを取得し、取得した鍵と暗号アルゴリズムを用いて、当該ファイルを復号する(S1019)と、復号したファイルをRAMディスクモジュール１４に保存する（S1020）。
【００５５】
なお、S1002、S100６でファイルサーバ５からファイル取得モジュール１３やファイルが正しく受信できなかった場合には、S1101に遷移し、アプリケーション２０にファイルオープンに失敗したことを応答し、処理を終了する。
【００５６】
また、S1010でアプリケーションIDの取得に失敗した場合、S1012でアプリケーション情報の取得に失敗した場合、S1016でアクセス許可が得られなかった場合、S1018で鍵の取得に失敗した場合には、S1201に遷移し、ファイル取得モジュール１３が保持しているファイルを削除し、処理を終了する。
【００５７】
ところで、図１の情報処理システムにおいてマルウェアが正規のアプリケーション２０に成りすましてファイル自動暗号化プログラム１０にファイルオープンを要求した場合の動作について説明する。
【００５８】
マルウェアがファイル自動暗号化プログラム１０にファイルオープンを要求すると、ファイル自動暗号化プログラム１０は、図７に示したフローにしたがって処理を進めていく。すなわち、ファイル取得モジュール１３を取得（S1002）し、ファイル取得モジュール１３がファイルサーバ５からマルウェアがオープンを要求したファイルを取得する（S1006）。しかしながら、S1006で取得するファイルは暗号化されているため、情報処理装置１の外部記憶装置に記録されたとしてもマルウェアが内容を読み取ることはできない。
【００５９】
次に、S1007でネットワークファイル共有サーバモジュール１１がマルウェアに対してファイルオープンを応答M1006するが、この段階でも、マルウェアはファイルの内容を知ることはできない。
【００６０】
その後、アプリケーション識別モジュール１５がS1008からS1015までの処理を実施すると、ファイルへのアクセスを要求しているのが事前に許可を受けていないプログラムであることが判明し、S1016で「アクセス不可」が応答される。このため、S1201でファイル取得モジュール１３が保持しているファイルは削除される。
【００６１】
以上のように、情報処理システム１ではマルウェアがファイルオープンを試みた場合、ファイルを読み込むことはできない。
【００６２】
図４は、ファイルをクローズする場合の処理の一例を示す図である。図４を用いて、図１の情報処理システム１において、情報処理装置１で動作するアプリケーション２０がファイル自動暗号化プログラム１０に対してファイルクローズを要求した場合の図１の情報処理システムの各構成要素間でのメッセージ交換動作を説明する。
【００６３】
アプリケーション２０がファイル自動暗号化プログラム１０に対してファイルクローズを要求するため、ファイルクローズ要求M2001を送信すると、ファイル自動暗号化プログラム１０のネットワークファイル共有サーバモジュール１１がファイルクローズ要求M2001を受信し、ファイル暗復号モジュール１２にファイルのクローズを指示する。
【００６４】
ファイル暗復号モジュール１２は、RAMディスクモジュール１４が保持している、ファイルクローズ要求M2001で指定されたファイルを取得し、取得したファイルを暗号化して暗号化ファイルを作成する。次に、ファイル暗復号モジュール１２は、暗号化した暗号化ファイルをファイル取得モジュール１３に渡し、当該暗号化ファイルを保存するように指示する。
【００６５】
ファイル取得モジュール１３は、当該暗号化ファイルを含む、ファイル保存要求M2002をファイルサーバ５に送信し、当該暗号化ファイルの保存を要求する。
【００６６】
ファイル保存要求M2002を受信したファイルサーバ５は、ファイル保存モジュール５１がファイル保存要求M2002に含まれる暗号化ファイルを取得し、保存すると、ファイル保存に成功したことをファイル保存応答M2003として応答する。
【００６７】
ファイル保存応答M2003を受信したファイル取得モジュール１３は、ファイル保存に成功したことをファイル暗復号モジュール１２に応答する。ファイル暗復号モジュール１２は、次に、ファイルクローズ要求M2001で指定されたファイルの暗号化に使用した鍵とアルゴリズム情報、暗号化した暗号化ファイルのファイルサーバ５におけるURI形式のファイル名を引数として、鍵管理サーバ７に対して鍵登録要求M2004を送信して、鍵の登録を要求する。
【００６８】
鍵登録要求M2004を受信した鍵管理サーバ７は、鍵管理モジュール７１が鍵登録要求M2004から、鍵とアルゴリズム情報、URI形式のファイル名を取得し、鍵管理テーブル７２を更新する。次に、鍵管理モジュール７１は、鍵の登録に成功したことを鍵登録応答M2005として応答する。
【００６９】
鍵登録応答M2005を受信したファイル暗復号モジュール１２は、ファイルのクローズ処理が完了したことをネットワークファイル共有サーバモジュール１１に応答するとともに、RAMディスクモジュール１４に対して暗号化されていない前記ファイルを削除するように指示する。
【００７０】
ファイルクローズ処理が完了した旨の応答を受けたネットワークファイル共有サーバモジュール１１は、アプリケーション２０に対して、ファイルクローズ応答M2006を応答する。
【００７１】
以上が、アプリケーション２０がファイル自動暗号化プログラム１０に対してファイルクローズを要求した場合の図１の情報処理システムの各構成要素間でのメッセージ交換動作である。
【００７２】
図５は、ファイルの読込み・書き込みの場合の処理の一例を示す図である。アプリケーション２０がファイル自動暗号化プログラム１０に対してファイルの読み込みを要求した場合の図１の情報処理システム１の各構成要素間でのメッセージ交換動作について図５の(a)を参照して説明する。
【００７３】
アプリケーション２０が、ファイル自動暗号化プログラム１０に対してファイル読込み要求M3001を送信すると、ファイル自動暗号化プログラム１０のネットワークファイル共有サーバモジュール１１がM3001を受信する。
【００７４】
ネットワークファイル共有サーバモジュール１１は、M3001を解析して、アプリケーション２０が読込みを要求しているファイル名と当該ファイルの読込みたい場所、読み込むサイズに関する情報を取得し、ファイル暗復号モジュール１２に読込みを指示する。
【００７５】
ファイル暗復号モジュール１２は、ネットワークファイル共有サーバモジュール１１の指示に従ってRAMディスクモジュール１４が保持しているファイルを読込み、ネットワークファイル共有サーバモジュール１１に応答する。
【００７６】
ネットワークファイル共有サーバモジュール１１は、ファイル暗復号モジュール１２が応答したデータを引数として、アプリケーション２０に、ファイル読込み応答M3002を応答する。
【００７７】
以上が、アプリケーション２０がファイル自動暗号化プログラム１０に対してファイルの読み込みを要求した場合の図１の情報処理システム１の各構成要素間でのメッセージ交換動作である。
【００７８】
次に、アプリケーション２０がファイル自動暗号化プログラム１０に対してファイルの書き込みを要求した場合の図１の情報処理システムの各構成要素間でのメッセージ交換動作について図５の(ｂ)を参照して説明する。
【００７９】
アプリケーション２０が、ファイル自動暗号化プログラム１０に対してファイル書込要求M4001を送信すると、ファイル自動暗号化プログラム１０のネットワークファイル共有サーバモジュール１１がM4001を受信する。
【００８０】
ネットワークファイル共有サーバモジュール１１は、M4001を解析して、アプリケーション２０が書き込み要求しているファイル名と当該ファイルの書き込み場所、書き込むサイズ、書き込むデータに関する情報を取得し、ファイル暗復号モジュール１２に書き込みを指示する。
【００８１】
ファイル暗復号モジュール１２は、ネットワークファイル共有サーバモジュール１１の指示に従ってRAMディスクモジュール１４が保持しているファイルのデータを更新し、更新結果（正常に終了したかどうか）をネットワークファイル共有サーバモジュール１１に応答する。
【００８２】
ネットワークファイル共有サーバモジュール１１は、ファイル暗復号モジュール１２が応答した更新結果を引数として、アプリケーション２０に、ファイル書込み応答M4002を応答する。
【００８３】
以上が、アプリケーション２０がファイル自動暗号化プログラム１０に対してファイルの書き込みを要求した場合の図１の情報処理システムの各構成要素間でのメッセージ交換動作である。
【００８４】
なお、図１の情報処理システム１では、暗号化されたファイルはファイルサーバ５で保存するようにしているが、情報処理装置１の外部記憶装置１０７に保存するようにしても良い。このようにすることで、ファイル名変換規則テーブル１６が不要となり、プログラムが必要とするメモリ領域を節約することができる。また、S1004のURI形式ファイル名取得処理や、S1005のファイル取得要求処理が不要となり、ファイル処理にかかる時間を短縮することができる。
【００８５】
また、図１の情報処理システム１では、事前に許可されたアプリケーション２０を管理するホワイトリスト管理モジュール６１を情報管理サーバ６に持たせるようにしているが、ファイル自動暗号化プログラム１０が保持するようにしても良い。このようにすることで、事前に許可されたアプリケーションかどうかを確認するための通信が不要となり、ファイル処理に必要となる時間を短縮することができる。
【００８６】
あるいは、ホワイトリスト管理テーブル６２をファイル管理サーバ５で保存している暗号化ファイルに含めるようにしてもよい。このようにすることで、事前に許可されたアプリケーションかどうかを確認するための通信が不要となり、ファイル処理に必要となる時間を短縮することができる。
【００８７】
さらに、図１の情報処理システム１では、鍵を管理する鍵管理モジュール７１を鍵管理サーバ７に持たせるようにしているが、ファイル自動暗号化プログラム１０が保持するようにしても良い。このようにすることで、鍵を取得するための通信が不要となり、ファイル処理に必要となる時間を短縮することができる。
【００８８】
本実施形態によれば、ファイル自動暗号化システム及びプログラムは、ファイルの暗号化処理・復号処理を、アプリケーションやOSと異なるファイル自動暗号化プログラムが行うため、アプリケーションが暗号化処理・復号処理機能を持たない場合でも、当該アプリケーションを改変せずに、暗号化ファイルを操作できる。
【００８９】
また、ファイル自動暗号化プログラムは、アプリケーションが事前に許可されたアプリケーションであるかどうかを確認し、当該事前に許可されたアプリケーションである場合に復号されたデータを処理できるようにするため、マルウェアがアクセスしたとしてもマルウェアは復号されたデータを取得できない。
【００９０】
さらに、ユーザ空間で動作するモジュールを利用し、ＡＰＩ呼び出しをフックしたり、ＯＳカーネルが復号処理を行ったりしないため、当該モジュールが原因でＯＳがクラッシュする可能性がなく、安定した動作を実現できるという効果がある。
【符号の説明】
【００９１】
０：ネットワーク、１：情報処理装置、５：ファイルサーバ、６：情報管理サーバ、７：鍵管理サーバ、１０：ファイル自動暗号化プログラム、１１：ネットワークファイル共有サーバモジュール、１２：ファイル暗復号モジュール、１３：ファイル取得モジュール、１４：RAMディスクモジュール、１５：アプリケーション識別モジュール、１６：ファイル名変換規則テーブル、１７：ローカルファイル名変換規則テーブル、２０：アプリケーション、３０：オペレーティングシステム（OS）、３１：ファイルアクセスアプリケーション特定機能、３２：アプリケーション情報提供機能、４０：通信モジュール、５１：ファイル保存モジュール、５２：ファイル取得モジュール提供モジュール、５３：ファイル提供先認証モジュール、６１：ホワイトリスト管理モジュール、６２：ホワイトリスト管理テーブル、７１：鍵管理モジュール、７２：鍵管理テーブル。
【図１】
2014085855.tif 000003
【図２】
2014085855.tif 000004
【図３】
2014085855.tif 000005
【図４】
2014085855.tif 000006
【図５】
2014085855.tif 000007
【図６】
2014085855.tif 000008
【図７】
2014085855.tif 000009