JP2009059008A - File management system - Google Patents

File management system Download PDF

Info

Publication number
JP2009059008A
JP2009059008A JP2007223406A JP2007223406A JP2009059008A JP 2009059008 A JP2009059008 A JP 2009059008A JP 2007223406 A JP2007223406 A JP 2007223406A JP 2007223406 A JP2007223406 A JP 2007223406A JP 2009059008 A JP2009059008 A JP 2009059008A
Authority
JP
Japan
Prior art keywords
file
decryption
control module
application program
api call
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2007223406A
Other languages
Japanese (ja)
Inventor
Takashi Sugiyama
崇 杉山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SGI Japan Ltd
Original Assignee
SGI Japan Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SGI Japan Ltd filed Critical SGI Japan Ltd
Priority to JP2007223406A priority Critical patent/JP2009059008A/en
Publication of JP2009059008A publication Critical patent/JP2009059008A/en
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To operate each encrypted file without altering an application program. <P>SOLUTION: The application program 32 is provided with an API calling code 321 for operating a file. A monitoring layer 34 hooks AP calling from the application program 32, and transmits a decryption instruction for decrypting an encrypted file 14 to a decryption control module 36. The decryption control module 36 requests the decryption processing to an OS kernel 37 based on the decryption instruction transmitted from a monitoring layer 34. The OS kernel 37 decrypts the file 14 based on the request from the decryption control module 36, and creates the decrypted file, and returns the decrypted file to the decryption control module 36. Furthermore, the decryption control module 36 returns the decrypted file returned from the OS kernel 37 to the application program 32. <P>COPYRIGHT: (C)2009,JPO&INPIT

Description

本発明は、暗号化されたファイルをコンピュータにより安全に操作するための技術に関するものである。   The present invention relates to a technique for safely operating an encrypted file by a computer.

情報共有のために、文書や画像、動画などのデータを関係者のみが安全に閲覧したいという要望がある。   In order to share information, there is a demand that only related parties want to safely browse data such as documents, images, and moving images.

このような情報を保護するためには、データに対して暗号化処理を施し、権利のある人のみが復号用の鍵を取得して閲覧するという対応方法がある。そのためには、従来、暗号化されたデータを復号する処理をアプリケーション・プログラム(以下「アプリケーション」ということがある)に組み込むことで対応していた。この場合は、アプリケーションを起動すると、そこに組み込まれた復号化処理によってデータを復号して、アプリケーションによる処理(例えばファイルを開いたり印刷する等)が可能になる。   In order to protect such information, there is a corresponding method in which data is encrypted and only a person who has the right acquires and browses the decryption key. For this purpose, conventionally, processing for decrypting encrypted data has been incorporated into an application program (hereinafter also referred to as “application”). In this case, when the application is started, the data is decrypted by the decryption processing incorporated therein, and processing by the application (for example, opening or printing a file) becomes possible.

一方、アプリケーションによっては、改変が困難な場合が存在する。この場合は、ユーザ自身が、別のアプリケーションを用いて、暗号化ファイルの復号処理を行う必要がある。この方法によっても、復号されたファイルを当初のアプリケーションで利用することが可能である。しかしながら、この場合は、復号済みのデータが流出したり、改ざんされる危険があるという問題があった。また、このような処理は、ユーザの手間が非常にかかるという問題もあった。   On the other hand, depending on the application, there are cases where modification is difficult. In this case, it is necessary for the user himself to perform decryption processing of the encrypted file using another application. This method also allows the decrypted file to be used in the original application. However, in this case, there is a problem that the decrypted data may be leaked or tampered with. Further, such processing has a problem that it takes much time and effort for the user.

さらに、データを保存するためのHDD(ハードディスクドライブ)全体を暗号化するというソリューションも存在する。この場合では、ユーザがデータを利用する時には、HDDに記録された全てのデータファイルが復号化された状態となる。つまり、この状態では、全てのファイルに対する操作が可能となる。すると、この技術においては、ファイル交換ソフトの利用などに起因して、復号済みのデータファイルが外部に流出するという問題を生じる可能性がある。   There is also a solution for encrypting the entire HDD (Hard Disk Drive) for storing data. In this case, when the user uses the data, all data files recorded on the HDD are decrypted. In other words, in this state, all files can be operated. Then, in this technique, there is a possibility that a decrypted data file flows out to the outside due to the use of file exchange software or the like.

本発明は、前記した状況に鑑みてなされたものである。本発明は、アプリケーション・プログラムを改変せずに、暗号化ファイルの操作を、ファイル単位で行うことができる技術を提供するものである。   The present invention has been made in view of the above situation. The present invention provides a technique capable of operating an encrypted file in units of files without modifying an application program.

前記した課題を解決するために、本発明は、以下のいずれかの項目に記載される構成を備えている。   In order to solve the above-described problems, the present invention has a configuration described in any of the following items.

(項目1)
以下の(a)〜(d)を備えるファイル管理システム:
(a)アプリケーションプログラム、
(b)監視層、
(c)復号制御モジュール、
(d)OSカーネル、
ここで、
前記アプリケーションプログラムは、ファイルを操作するためのAPI呼出コードを備えており、
前記監視層は、前記アプリケーションプログラムからのAPI呼び出しをフックし、前記ファイルを復号化するための復号命令を前記復号制御モジュールに送るようになっており、
前記復号制御モジュールは、前記監視層から送られた前記復号命令に基づいて、OSカーネルに復号処理を依頼するようになっており、
前記OSカーネルは、前記復号制御モジュールからの依頼に基づいて、前記ファイルを復号処理して、復号済みファイルを生成し、さらに、この復号済みファイルを復号制御モジュールに返すようになっており、
さらに、前記復号制御モジュールは、前記OSカーネルから返された前記復号済みファイルを前記アプリケーションプログラムに返す構成となっている。
(Item 1)
A file management system comprising the following (a) to (d):
(A) application program,
(B) the monitoring layer,
(C) a decoding control module;
(D) OS kernel,
here,
The application program includes an API call code for operating a file,
The monitoring layer hooks an API call from the application program, and sends a decryption instruction for decrypting the file to the decryption control module.
The decryption control module requests the OS kernel to perform decryption processing based on the decryption instruction sent from the monitoring layer,
The OS kernel decrypts the file based on a request from the decryption control module, generates a decrypted file, and returns the decrypted file to the decryption control module.
Further, the decryption control module is configured to return the decrypted file returned from the OS kernel to the application program.

本発明によれば、ファイル操作のためのAPI呼出コードをフックして、当該ファイルを復号し、アプリケーションプログラムに返すことができる。本発明では、API呼出コードを操作するだけなので、アプリケーションプログラム本体を改変する必要がない。また、操作が必要なファイル毎に復号しているので、HDD全体を復号する場合に比べて、情報漏洩の危険性が低い。なお、本発明において、復号されるファイルとは、ファイル中の一部のデータである場合を含む。つまり、ファイル単位の復号とは、必ずしも、ファイル全部の復号を意味せず、ファイル中における必要なデータのみの復号を含む。   According to the present invention, an API call code for file operation can be hooked, the file can be decrypted, and returned to the application program. In the present invention, since only the API call code is operated, it is not necessary to modify the application program body. In addition, since the decryption is performed for each file that needs to be operated, the risk of information leakage is lower than when the entire HDD is decrypted. In the present invention, the file to be decrypted includes the case of a part of data in the file. That is, decoding in units of files does not necessarily mean decoding of the entire file, but includes decoding of only necessary data in the file.

(項目2)
さらに、
(e)監視制御モジュール、
を備えた、項目1に記載のファイル管理システムであって、
前記監視制御モジュールは、前記アプリケーションプログラムが備えている前記API呼出コードを書き換えることにより、前記アプリケーションプログラムからのAPI呼び出しをフックできる構成となっている。
(Item 2)
further,
(E) a supervisory control module;
The file management system according to item 1, comprising:
The monitoring control module is configured to be able to hook an API call from the application program by rewriting the API call code included in the application program.

このようにAPI呼出コードを書き換えることにより、API呼出コードのフックを簡便かつ確実に実装できる。   By rewriting the API call code in this way, the hook of the API call code can be easily and reliably implemented.

(項目3)
さらに、
(f)二次記憶装置
を備えた、項目1又は2に記載のファイル管理システムであって、
前記二次記憶装置は、暗号化された前記ファイルを格納している。
(Item 3)
further,
(F) The file management system according to item 1 or 2, comprising a secondary storage device,
The secondary storage device stores the encrypted file.

(項目4)
さらに、
(g)鍵送信サーバ
を備えた、項目1〜3のいずれか1項に記載のファイル管理システムであって、
前記復号制御モジュールは、前記鍵送信サーバから受け取った鍵を用いて、前記復号処理を行う構成となっている、項目1〜3のいずれか1項に記載のファイル管理システム。
(Item 4)
further,
(G) The file management system according to any one of items 1 to 3, comprising a key transmission server,
The file management system according to any one of Items 1 to 3, wherein the decryption control module is configured to perform the decryption process using a key received from the key transmission server.

(項目5)
前記API呼出コードは、ファイルを開くためのものである、項目1〜4のいずれか1項に記載のファイル管理システム。
(Item 5)
The file management system according to any one of items 1 to 4, wherein the API call code is for opening a file.

(項目6)
前記API呼出コードは、さらに、ファイルの印刷を行うためのものを含む、項目5に記載のファイル管理システム。
(Item 6)
6. The file management system according to item 5, wherein the API call code further includes one for printing a file.

(項目7)
さらに、
(h)暗号処理モジュール
を備えた、項目1〜6に記載のファイル管理システムであって、
前記監視層は、前記フックしたAPI呼び出しに基づいて、暗号化命令を、前記暗号処理モジュールに送るようになっており、
前記暗号処理モジュールは、前記暗号化命令を受け取った後、前記アプリケーションプログラムの動作に必要なデータを、暗号化した上でテンポラリファイルに書き出す処理を行う構成となっている。
(Item 7)
further,
(H) The file management system according to any of items 1 to 6, comprising a cryptographic processing module,
The monitoring layer is configured to send an encryption command to the cryptographic processing module based on the hooked API call;
The cryptographic processing module is configured to perform processing of encrypting data necessary for the operation of the application program and writing it to a temporary file after receiving the encryption command.

(項目8)
以下の(a)〜(d)を備えるファイル管理システムを用いた、ファイル管理方法:
(a)アプリケーションプログラム、
(b)監視層、
(c)復号制御モジュール、
(d)OSカーネル、
ここで、
前記アプリケーションプログラムは、ファイルを操作するためのAPI呼出コードを備えている;
この方法は、以下のステップを備える:
前記監視層が、前記アプリケーションプログラムからのAPI呼び出しをフックし、前記ファイルを復号化するための復号命令を前記復号制御モジュールに送るステップ、
前記復号制御モジュールが、前記監視層から送られた復号命令に基づいて、OSカーネルに復号処理を依頼するステップ、
前記OSカーネルが、前記復号制御モジュールからの依頼に基づいて、前記ファイルを復号処理して、復号済みファイルを生成し、さらに、この復号済みファイルを復号制御モジュールに返すステップ、
さらに、前記復号制御モジュールが、前記OSカーネルから返された前記復号済みファイルを前記アプリケーションプログラムに返すステップ。
(Item 8)
A file management method using a file management system comprising the following (a) to (d):
(A) application program,
(B) the monitoring layer,
(C) a decoding control module;
(D) OS kernel,
here,
The application program includes API call code for manipulating files;
This method comprises the following steps:
The monitoring layer hooks an API call from the application program and sends a decryption instruction for decrypting the file to the decryption control module;
The decryption control module requests the OS kernel to perform a decryption process based on the decryption instruction sent from the monitoring layer;
The OS kernel decrypts the file based on a request from the decryption control module to generate a decrypted file, and returns the decrypted file to the decryption control module;
Furthermore, the decryption control module returns the decrypted file returned from the OS kernel to the application program.

(項目9)
項目8に記載の方法をコンピュータに実行させるためのコンピュータプログラム。
(Item 9)
A computer program for causing a computer to execute the method according to item 8.

本発明によれば、本発明は、アプリケーション・プログラムを改変せずに、暗号化ファイルの操作を、ファイル単位で行うことが可能になる。   According to the present invention, the present invention makes it possible to operate an encrypted file on a file basis without modifying an application program.

以下、本発明の一実施形態を、添付図面を参照して説明する。   Hereinafter, an embodiment of the present invention will be described with reference to the accompanying drawings.

(システムの構成例)
まず、本発明の一実施形態に係るファイル管理システムを、図1に基づいて説明する。このシステムは、コンテンツ提供者の内部環境1と、公開サーバ環境2と、ユーザコンピュータ3と、インターネット4とを、機能要素として備えている。
(System configuration example)
First, a file management system according to an embodiment of the present invention will be described with reference to FIG. This system includes a content provider's internal environment 1, a public server environment 2, a user computer 3, and the Internet 4 as functional elements.

(内部環境)
内部環境1は、コンテンツ暗号化システム11と、コンテンツ用ストレージ12とを備えている。
(Internal environment)
The internal environment 1 includes a content encryption system 11 and a content storage 12.

コンテンツ暗号化システム11は、コンテンツファイル13を暗号化するものである。また、コンテンツ暗号化システム11は、コンテンツIDと復号鍵とを生成して、公開サーバ環境2に送るようになっている。ここで、コンテンツファイル13としては、文書、画像、動画、実行ファイルなど、各種のものが利用できる。つまり、本実施形態のシステムで対象となるファイルの形式は制約されない。   The content encryption system 11 encrypts the content file 13. In addition, the content encryption system 11 generates a content ID and a decryption key and sends them to the public server environment 2. Here, as the content file 13, various types such as a document, an image, a moving image, and an execution file can be used. That is, the format of the target file in the system of this embodiment is not limited.

また、コンテンツ暗号化システム11は、暗号化されたコンテンツファイル14を、ストレージ12に格納するようになっている。   Further, the content encryption system 11 stores the encrypted content file 14 in the storage 12.

コンテンツ用ストレージ12は、暗号化されたコンテンツファイル14を、公開サーバ環境2に受け渡すことができるようになっている。   The content storage 12 can deliver the encrypted content file 14 to the public server environment 2.

(公開サーバ環境)
公開サーバ環境2は、コンテンツ配布サーバ21と、鍵送信サーバ22と、鍵記録用のストレージ23とを備えている。
(Public server environment)
The public server environment 2 includes a content distribution server 21, a key transmission server 22, and a key recording storage 23.

コンテンツ配布サーバ21は、コンテンツ用ストレージ12から、暗号化されたファイル14を受け取り、インターネット4を経由して、ユーザコンピュータ3に送るようになっている。   The content distribution server 21 receives the encrypted file 14 from the content storage 12 and sends it to the user computer 3 via the Internet 4.

鍵送信サーバ22は、コンテンツ暗号化システム11から、コンテンツIDと復号鍵とを受け取り、ユーザコンピュータ3に送ることができるようになっている。   The key transmission server 22 can receive the content ID and the decryption key from the content encryption system 11 and send them to the user computer 3.

鍵記録用のストレージ23は、鍵送信サーバ22が受け取ったコンテンツIDと復号鍵とを対応させて、保存しておくものである。   The key recording storage 23 stores the content ID received by the key transmission server 22 in association with the decryption key.

(ユーザコンピュータ)
ユーザコンピュータ3は、コンテンツダウンローダ31と、アプリケーションプログラム(アプリケーション)32と、監視制御モジュール33と、監視層34と、標準API35と、復号制御/暗号処理モジュール36と、OSカーネル37と、デバイスドライバ38と、二次記憶装置39とを備えている。
(User computer)
The user computer 3 includes a content downloader 31, an application program (application) 32, a monitoring control module 33, a monitoring layer 34, a standard API 35, a decryption control / encryption processing module 36, an OS kernel 37, and a device driver 38. And a secondary storage device 39.

コンテンツダウンローダ31は、コンテンツ配布サーバ21から、インターネット4を介して、暗号化されたコンテンツファイル14を受け取るものである。このような機能は、ブラウザなど適宜のコンピュータソフトウエアにより提供することができる。ただし、ユーザコンピュータ3がコンテンツファイル14を受け取る手段としては、インターネット経由に限らず、例えば、CDやDVDなどの媒体経由であってもよい。この場合は、コンテンツダウンローダ31に代えて、記録媒体の読み出し装置を用いることができる。   The content downloader 31 receives the encrypted content file 14 from the content distribution server 21 via the Internet 4. Such a function can be provided by appropriate computer software such as a browser. However, the means by which the user computer 3 receives the content file 14 is not limited to via the Internet, but may be via a medium such as a CD or DVD, for example. In this case, instead of the content downloader 31, a recording medium reading device can be used.

アプリケーションプログラム32は、ファイル操作や印刷などの機能を実行するためのコンピュータソフトウエアである。この実施形態では、アプリケーションプログラム32として、各種のビューアアプリケーションを想定しているが、これのみに制約されるものではない。アプリケーションプログラム32の例としては、インターネット・エクスプローラー、Flashプレイヤー、PDFビューア、MS-Officeなどである。なお、これらは商標あるいは登録商標である。アプリケーションプログラム32は、ファイルを操作するためのAPI呼出コード321(図2参照)を備えている。   The application program 32 is computer software for executing functions such as file operations and printing. In this embodiment, various viewer applications are assumed as the application program 32, but the application program 32 is not limited thereto. Examples of the application program 32 include an Internet explorer, a Flash player, a PDF viewer, and MS-Office. These are trademarks or registered trademarks. The application program 32 includes an API call code 321 (see FIG. 2) for operating a file.

監視制御モジュール33は、アプリケーションプログラム32におけるAPI呼出コードを書き換えることにより、APIフックを実現する機能を有するコンピュータプログラムである。   The monitoring control module 33 is a computer program having a function of realizing an API hook by rewriting an API call code in the application program 32.

さらに、監視制御モジュール33は、ユーザ側から、
・復号許可アプリケーション
・暗号化書き出し可能フォルダ
・アプリケーションによる印刷の制限
・画面キャプチャの制限
についてのデータを受け付けるようになっている。
Furthermore, the supervisory control module 33 is from the user side.
・ Decryption permission application ・ Encryption exportable folder ・ Print restriction by application ・ Screen capture restriction data can be received.

監視制御モジュール33についての詳しい動作は後述する。   Detailed operation of the monitoring control module 33 will be described later.

監視層34は、アプリケーションプログラム32からのAPI呼び出しをフックし、ファイルを復号するための復号命令を復号制御モジュール36に送るようになっている。なお、本実施形態では、ファイル中のデータの復号も、ファイルの復号という概念に含まれるものとする。もちろん、ファイル全体を復号することも可能である。また、アプリケーションプログラム32からのAPI呼び出しの結果として複数のファイルを復号することも可能である。監視層34についても詳しい動作は後述する。   The monitoring layer 34 hooks an API call from the application program 32 and sends a decryption command for decrypting the file to the decryption control module 36. In the present embodiment, the decoding of data in a file is also included in the concept of file decoding. Of course, the entire file can also be decrypted. It is also possible to decrypt a plurality of files as a result of an API call from the application program 32. Detailed operation of the monitoring layer 34 will be described later.

標準API35は、OS(例えばWindows(登録商標))に付随して備えられた、標準的なAPI群である。このようなAPIは既によく知られているので、詳しい説明は省略する。   The standard API 35 is a standard API group provided along with the OS (for example, Windows (registered trademark)). Since such an API is already well known, detailed description is omitted.

復号制御/暗号処理モジュール36は、復号制御モジュールと、暗号制御モジュールとが組み合わされた機能ブロックである。実際のプログラムコードとしては、両モジュールが一体のファイルになっていてもよいし、別のファイルであってもよい。要するに両方の機能を発揮できる構成であればよい。   The decryption control / encryption processing module 36 is a functional block in which a decryption control module and an encryption control module are combined. As an actual program code, both modules may be an integrated file or a separate file. In short, any configuration that can exhibit both functions is acceptable.

復号制御/暗号処理モジュール36は、復号制御の機能として、監視層34から送られた復号命令に基づいて、OSカーネル37に復号処理を依頼するようになっている。さらに、復号制御/暗号処理モジュール36は、OSカーネル37から返された復号済みファイルをアプリケーションプログラム32に返す構成となっている。   The decryption control / encryption processing module 36 requests the OS kernel 37 to perform decryption processing based on the decryption instruction sent from the monitoring layer 34 as a decryption control function. Further, the decryption control / encryption processing module 36 is configured to return the decrypted file returned from the OS kernel 37 to the application program 32.

また、復号制御/暗号処理モジュール36は、暗号処理の機能として、監視層34から暗号化命令を受け取った後、アプリケーションプログラムの動作に必要なデータを、暗号化した上でテンポラリファイルに書き出す処理を行う構成となっている。   Further, as a function of encryption processing, the decryption control / encryption processing module 36 performs a process of encrypting data necessary for the operation of the application program and writing it to a temporary file after receiving an encryption command from the monitoring layer 34. It is configured to do.

復号制御/暗号処理モジュール36の詳しい動作も後述する。   Detailed operation of the decryption control / encryption processing module 36 will also be described later.

OSカーネル37は、復号制御モジュール36からの依頼に基づいて、ファイルから必要な部分のデータを逐次復号処理し、その結果を復号制御モジュール36に返すようになっている。   Based on the request from the decryption control module 36, the OS kernel 37 sequentially decrypts necessary data from the file and returns the result to the decryption control module 36.

(本実施形態に係るファイル管理方法)
次に、前記したシステムを用いたファイル管理方法の一例を、図2〜図6に基づいて説明する。なお、以下に説明する方法は、コンピュータを動作させるためのコンピュータプログラムにより実行することができる。
(File management method according to this embodiment)
Next, an example of a file management method using the above-described system will be described with reference to FIGS. The method described below can be executed by a computer program for operating a computer.

(図2のステップ0)
まず、ユーザの操作により、
・対象復号許可アプリケーション(具体的にはそのバイナリハッシュ値)、
・暗号化書き出し可能フォルダ、
・印刷およびキャプチャに対する制限の有効、無効
という情報を、一覧のリスト331として、制御監視モジュール33に登録する。この登録は、アプリケーションの動作前に行われる。
(Step 0 in FIG. 2)
First, by user operation,
-Target decryption permission application (specifically, its binary hash value),
・ Encryption exportable folder,
Information on whether the restriction on printing and capture is valid or invalid is registered in the control monitoring module 33 as a list 331 of the list. This registration is performed before the operation of the application.

ここで、「対象復号許可アプリケーション」とは、復号処理が許可されているアプリケーションである。この情報は、アプリケーションのバイナリハッシュ値を用いて記録されている。アプリケーションの情報としては、例えば、アプリケーションの名称やバイナリパスも可能であるが、これらは一般に環境依存なので、本実施形態では使用しない。つまり、アプリケーションをそのバイナリハッシュ値で特定することにより、環境依存性を低減させることができる。。ここでバイナリハッシュ値とは、アプリケーションのファイル(実行ファイル)から、適宜なハッシュ関数を用いて生成されたハッシュ値である。   Here, the “target decryption permitted application” is an application for which decryption processing is permitted. This information is recorded using the binary hash value of the application. As the application information, for example, the name of the application and the binary path can be used. However, since these are generally environment dependent, they are not used in this embodiment. In other words, environment dependency can be reduced by specifying an application by its binary hash value. . Here, the binary hash value is a hash value generated from an application file (execution file) using an appropriate hash function.

「暗号化書き出し可能フォルダ」とは、後述する暗号化書き出し処理において使用されるフォルダの情報である。この実施形態では、二次記憶装置39におけるフォルダであるが、他の適宜な記憶装置におけるフォルダであってもよい。   The “encrypted / writable folder” is information on a folder used in an encrypted writing process to be described later. In this embodiment, the folder is in the secondary storage device 39, but may be a folder in another appropriate storage device.

「印刷およびキャプチャに対する制限の有効、無効」とは、当該アプリケーションによる印刷や、システムによる画面キャプチャを許すかどうかの情報である。以下の例では、キャプチャに対する制限は有効として説明する。制限が無効であれば、キャプチャに対する制限は行われない。   “Valid / invalid restriction on printing and capture” is information on whether printing by the application or screen capture by the system is permitted. In the following example, it is assumed that the restriction on capture is effective. If the restriction is invalid, no restriction is imposed on the capture.

(図2のステップ1)
監視制御モジュール33は、開くべきファイルに対応した復号許可アプリケーション32を起動する。具体的には、例えば、開くべきファイル(暗号化されたファイル)と復号許可アプリケーションとを関連付けておき、ファイルがダブルクリックされると、復号許可アプリケーション32を起動するようになっている。このような関連付けは、OSでのサービスを利用することで容易に実現できる。
(Step 1 in FIG. 2)
The monitoring control module 33 activates the decryption permission application 32 corresponding to the file to be opened. Specifically, for example, a file to be opened (encrypted file) is associated with a decryption permission application, and when the file is double-clicked, the decryption permission application 32 is activated. Such association can be easily realized by using a service in the OS.

さらに、監視制御モジュール33は、復号許可アプリケーション32の起動時に、この復号許可アプリケーション32が改ざんされていないかを、ハッシュ値を元にチェックする。また、同時に、ハッシュ値を用いることで、一覧リスト331に登録されている復号許可アプリケーション32の特定も可能である。チェックの結果、問題がない場合のみ、復号許可アプリケーション32を起動する。また、一覧リスト331に登録されていないアプリケーションや、ハッシュ値があわないアプリケーションは起動しない。   Furthermore, the monitoring control module 33 checks whether or not the decryption permission application 32 has been tampered with based on the hash value when the decryption permission application 32 is activated. At the same time, the decryption permission application 32 registered in the list 331 can be specified by using the hash value. Only when there is no problem as a result of the check, the decryption permission application 32 is activated. Also, applications that are not registered in the list 331 or applications that do not have a hash value are not activated.

また、アプリケーション32を起動した後は、監視制御モジュール33はデスクトップ全体のイベントを監視し、画面キャプチャイベントが発生した場合はエラーを返す。   In addition, after starting the application 32, the monitoring control module 33 monitors an event of the entire desktop, and returns an error when a screen capture event occurs.

さらに、監視制御モジュール33は、アプリケーション32が起動した後、メモリ上のアプリーション・コードをチェックする。具体的には、監視制御モジュール33は、起動したアプリケーション32が、リスト331に記録されている復号処理アプリケーションである場合に、そのアプリケーションにおけるファイル操作API呼出コードおよび印刷操作API呼出コードを、監視層34のコードを呼び出すように書き換える。ここで、起動したアプリケーションが、復号処理アプリケーションではない場合、このようなAPIの書き換えは行われない。このため、本実施形態によれば、復号処理アプリケーション以外のアプリケーションは、監視層34を呼び出すことができない。その結果、そのようなアプリケーションによる、暗号化ファイルの復号を防ぐことができ、暗号化ファイルへの不正なアクセスを防止できるという利点がある。   Further, the monitoring control module 33 checks the application code on the memory after the application 32 is activated. Specifically, when the activated application 32 is a decryption processing application recorded in the list 331, the monitoring control module 33 displays the file operation API call code and the print operation API call code in the application as a monitoring layer. It is rewritten to call 34 code. Here, when the activated application is not a decryption processing application, such API rewriting is not performed. For this reason, according to the present embodiment, an application other than the decryption processing application cannot call the monitoring layer 34. As a result, the decryption of the encrypted file by such an application can be prevented, and there is an advantage that unauthorized access to the encrypted file can be prevented.

(図2のステップ2)
ついで、アプリケーション32がAPI呼出を行う。ここで、API呼出コードが、ファイル操作又は印刷操作の場合は、前記したステップ1においてコードが書き換えられているので、実際には、監視層34が呼び出される。この例では、ファイル操作のAPIとは、ファイルを開くためのAPIである。
(Step 2 in FIG. 2)
Next, the application 32 makes an API call. Here, when the API call code is a file operation or a print operation, since the code is rewritten in the above-described step 1, the monitoring layer 34 is actually called. In this example, the file operation API is an API for opening a file.

監視層34は、書き換えられたコードを読み取ることにより、アプリケーション32からの要求が印刷操作であるか、あるいはファイル操作であるかをチェックする。   The monitoring layer 34 reads the rewritten code to check whether the request from the application 32 is a print operation or a file operation.

印刷操作の場合は、印刷が許可されているアプリケーション32からの呼び出しであれば、そのまま標準の印刷用APIを呼び出す。これにより、ファイルの印刷が可能である。ここで、印刷の前提としては、後述するファイル操作により、ファイルが既に開かれているものとする。一方、印刷が不許可とされているアプリケーション32からの呼び出しの場合は、エラーをアプリケーション32に返すことで印刷を禁止することができる。   In the case of a printing operation, if it is a call from the application 32 that is permitted to print, the standard printing API is called as it is. As a result, the file can be printed. Here, as a premise for printing, it is assumed that a file has already been opened by a file operation described later. On the other hand, in the case of a call from the application 32 in which printing is not permitted, printing can be prohibited by returning an error to the application 32.

(図2のステップ3)
ファイル操作のAPIである場合は、監視層34は、書き換えられる前のAPI呼出のパラメータをチェックし、実際に復号処理または暗号化書き出しが必要かどうかを判断する(暗号化書き出しについては後述する)。例えばファイルをオープンするAPIの場合、APIのパラメータにファイルのアクセス方式が指定されている。アクセス方式の指定は、以下の種類がある。
・読み込みのみ
・書き込みのみ
・読み書き
・読み書きなし(ファイル属性取得のために利用される)
(Step 3 in FIG. 2)
In the case of a file operation API, the monitoring layer 34 checks the API call parameters before being rewritten, and determines whether or not decryption processing or encrypted writing is actually required (encrypted writing will be described later). . For example, in the case of an API that opens a file, the file access method is specified in the API parameter. There are the following types of access method designations.
・ Read only ・ Write only ・ Read / write ・ No read / write (Used to get file attributes)

パラメータが「読み書きなし」の場合は、暗号関連の処理(復号を含む)は一切行わず、監視層34は、標準APIの呼び出しを行う。「読み込みのみ」を指定している場合は、復号のための処理を行う。   When the parameter is “no read / write”, encryption related processing (including decryption) is not performed, and the monitoring layer 34 calls the standard API. When “read only” is designated, a process for decoding is performed.

パラメータが「書き込みのみ」、後述する暗号化書き込みのための処理を行う。パラメータが「読み書き」を指定している場合は、復号及び暗号化書き込みのための処理を行う。   The parameter is “write only”, and the process for encrypted writing described later is performed. When the parameter specifies “read / write”, processing for decryption and encrypted writing is performed.

パラメータに基づいて復号処理または暗号化書き出しが必要である場合、監視層34は、復号制御/暗号処理モジュール36を呼び出す。つまり、監視層34は、暗号化ファイルから処理に必要なデータを復号するための復号命令を、復号制御/暗号処理モジュール36に送る。   When decryption processing or encryption writing is necessary based on the parameters, the monitoring layer 34 calls the decryption control / encryption processing module 36. That is, the monitoring layer 34 sends to the decryption control / encryption processing module 36 a decryption command for decrypting data necessary for processing from the encrypted file.

(図2のステップ4〜9)
ついで、復号制御/暗号処理モジュール36は、監視層34からの復号命令に基づいて、OSカーネル37を呼び出す。OSカーネル37は、暗号化コンテンツ14(復号対象となるファイル)を、デバイスドライバ38を介して、二次記憶装置39から取得する。また、復号制御/暗号処理モジュール36は、暗号化コンテンツ14に埋め込まれたコンテンツIDを取得する。
(Steps 4 to 9 in FIG. 2)
Next, the decryption control / encryption processing module 36 calls the OS kernel 37 based on the decryption instruction from the monitoring layer 34. The OS kernel 37 acquires the encrypted content 14 (decryption target file) from the secondary storage device 39 via the device driver 38. Further, the decryption control / encryption processing module 36 acquires the content ID embedded in the encrypted content 14.

ここで、復号制御/暗号処理モジュール36は、「監視制御モジュール33から起動されたアプリケーションから呼び出される監視層34」とのみ通信を行う。監視層34と監視制御モジュール33は、アプリケーション起動時に個別の通信路(パイプ)を用いて接続されており、この通信路を用いてのみ、相互間の通信を行う。監視層34は、DLLとして実装できるので、この監視層34を不正に組み込むアプリケーションも予想できる。しかし、監視制御モジュール33から起動されていない(つまり復号許可アプリケーションでない)他のアプリケーションに仮に監視層(DLL)を組み込んでも、その監視層は、上記理由により、復号制御/暗号処理モジュール36との通信ができない。このため、本実施形態によれば、監視層34を不正利用されることはない。   Here, the decryption control / encryption processing module 36 communicates only with the “monitoring layer 34 called from the application activated by the monitoring control module 33”. The monitoring layer 34 and the monitoring control module 33 are connected using an individual communication path (pipe) when the application is activated, and only perform communication with each other using this communication path. Since the monitoring layer 34 can be implemented as a DLL, an application that illegally incorporates the monitoring layer 34 can also be expected. However, even if a monitoring layer (DLL) is incorporated in another application that is not started from the monitoring control module 33 (that is, not a decryption permission application), the monitoring layer is not connected to the decryption control / encryption processing module 36 for the above reason. Communication is not possible. For this reason, according to the present embodiment, the monitoring layer 34 is not illegally used.

ついで、復号制御/暗号処理モジュール36は、取得したコンテンツIDに対応した復号鍵を、鍵送信サーバ22から送られた復号鍵表231とマッチングすることにより取得する。この実施形態では、復号処理/暗号処理モジュール36は、鍵送信サーバ22から、セキュアな手順を用いて、復号鍵を取得することができる。また、復号鍵を、インターネット以外の他の手段で(例えば記録媒体を介して)取得することも可能である。   Next, the decryption control / encryption processing module 36 acquires the decryption key corresponding to the acquired content ID by matching the decryption key table 231 sent from the key transmission server 22. In this embodiment, the decryption / encryption module 36 can obtain a decryption key from the key transmission server 22 using a secure procedure. It is also possible to obtain the decryption key by means other than the Internet (for example, via a recording medium).

(図2のステップ11)
復号制御/暗号処理モジュール36は、復号対象データと復号鍵とを、OSカーネル37の復号機能を呼び出すことによって復号する。つまり、OSカーネル37は、復号制御モジュール36からの依頼に基づいて、ファイル14から処理に必要なデータを逐次復号処理して(いわゆる「on-the-fly」)、復号済みデータを生成し、さらに、この復号済みデータを復号制御モジュール36に返すようになっている。また、このモジュール36は、復号した結果を監視層34に返す。このように、本実施形態では、復号を、ファイル中のデータブロックの単位で行っている。これにより、本実施形態によれば、ファイル中において必要な部分のみを復号することができる。
(Step 11 in FIG. 2)
The decryption control / encryption processing module 36 decrypts the data to be decrypted and the decryption key by calling the decryption function of the OS kernel 37. That is, the OS kernel 37 sequentially decodes data necessary for processing from the file 14 based on a request from the decryption control module 36 (so-called “on-the-fly”) to generate decrypted data, Further, the decoded data is returned to the decoding control module 36. The module 36 returns the decrypted result to the monitoring layer 34. As described above, in this embodiment, decryption is performed in units of data blocks in the file. Thereby, according to this embodiment, only a necessary part in a file can be decoded.

(図2のステップ12)
監視層34は、復号した結果(つまり復号化したファイル)を、アプリケーション32に対して、API呼び出しの結果として返す。これによりアプリケーション32は、安全にファイルの内容を取得することができる。したがって、ユーザは、アプリケーション32により、暗号化されたファイルを開いて、ディスプレイ装置により閲覧することができる。
(Step 12 in FIG. 2)
The monitoring layer 34 returns the decrypted result (that is, the decrypted file) as a result of the API call to the application 32. As a result, the application 32 can safely acquire the contents of the file. Therefore, the user can open the encrypted file by the application 32 and browse the file by the display device.

本実施形態の方法によれば、ファイル単位で、暗号化されたファイルを開いたり、印刷する等の処理を行うことができる。HDD全体を復号してファイルを処理する方法では、ファイル交換ソフトウエアなどによってファイルが流出するおそれがあった。これに対して、本実施形態の方法では、ファイル単位で復号するので、そのような心配がなく、ファイルの安全性を高めることができる。   According to the method of the present embodiment, it is possible to perform processing such as opening or printing an encrypted file in units of files. In the method of processing the file by decoding the entire HDD, the file may be leaked by file exchange software or the like. On the other hand, in the method of the present embodiment, since decryption is performed in units of files, there is no such concern and the safety of the file can be improved.

さらに、本実施形態の方法では、プログラムに対する改変を行うことなく、API呼出コードの書き換えだけで、前記したような復号処理が可能になる。このため多様なプログラムに対応することができる。また、取り扱うファイルの種類に制約がないという利点がある。   Furthermore, in the method of this embodiment, the decoding process as described above can be performed only by rewriting the API call code without modifying the program. For this reason, it can respond to various programs. In addition, there is an advantage that there is no restriction on the type of file to be handled.

(一時的なファイルの書き出し処理)
つぎに、復号化されたファイル中のデータを一時的に書き出すための手順を、図3をさらに参照して説明する。ただし、前記した処理と同様の処理については、説明を省略あるいは簡略化する。
(Temporary file export processing)
Next, the procedure for temporarily writing the data in the decrypted file will be described with further reference to FIG. However, the description of the same processing as that described above will be omitted or simplified.

(図3のステップ0)
まず、ユーザは、復号許可アプリケーション及び暗号化書き出し可能フォルダを一覧リストに事前に登録する。これは図2におけるステップ0と同様である。
(Step 0 in FIG. 3)
First, the user registers in advance the decryption permission application and the encrypted writeable folder in the list. This is the same as step 0 in FIG.

(図3のステップ1)
さらに、監視制御モジュール33は、アプリケーション実行時に、メモリ上のアプリーション・コードをチェックする。さらに監視制御モジュール33は、復号処理又は暗号化書き出しが必要となる一覧リストに登録されているアプリケーションにおける、ファイル操作用のAPI呼出コードを、監視層34のコードを呼び出すように書き換える。この操作は、図2のステップ1と基本的に同様である。ただし、図3の例では、コードが書き換えられた結果、呼び出されるようになった監視層34にて、書き出しの可否を制御することができる。
(Step 1 in FIG. 3)
Further, the monitoring control module 33 checks the application code on the memory when executing the application. Further, the monitoring control module 33 rewrites the API call code for file operation in the application registered in the list that requires decryption processing or encrypted writing so as to call the code of the monitoring layer 34. This operation is basically the same as step 1 in FIG. However, in the example of FIG. 3, whether or not writing can be controlled can be controlled by the monitoring layer 34 that is called as a result of rewriting the code.

(図3のステップ1')
さらに図3の処理においては、復号制御/暗号処理モジュール36に対して、監視制御モジュール33が
・暗号化書き出しを許可するフォルダの情報と、
・この暗号化書き出しでの暗号化において利用する鍵情報と
を渡す。
(Step 1 ′ in FIG. 3)
Further, in the processing of FIG. 3, the monitoring control module 33 provides the decryption control / encryption processing module 36 with information on folders that are permitted to be encrypted and
-Pass the key information used for encryption in this encrypted export.

(図3のステップ2)
アプリケーション32がAPI呼び出しを行う。ただし、ステップ1でコードが書き換えられているので、実際には監視層34が呼び出される。
(Step 2 in FIG. 3)
The application 32 makes an API call. However, since the code has been rewritten in step 1, the monitoring layer 34 is actually called.

(図3のステップ3)
監視層34は、書き換えられる前のAPI呼出コードのパラメータ(図2のステップ3において説明したもの)をチェックし、暗号化書き出しが必要かどうかを判断する。これらの処理が必要である場合、復号制御/暗号処理モジュール36を呼び出す。つまり、監視層34は、暗号化命令を、復号制御/暗号処理モジュール36に送る。
(Step 3 in FIG. 3)
The monitoring layer 34 checks the parameters of the API call code before rewriting (explained in step 3 in FIG. 2), and determines whether encryption writing is necessary. When these processes are necessary, the decryption control / encryption processing module 36 is called. That is, the monitoring layer 34 sends the encryption command to the decryption control / encryption processing module 36.

(図3のステップ4〜10)
暗号化命令を受け取った復号制御/暗号処理モジュール36では、アプリケーションから求められた書き出し処理における保存先フォルダが、予め一覧表331として渡されている暗号化書き出し許可フォルダと一致するかどうかを判断する。一致した場合は、復号制御/暗号処理モジュール36は、OSカーネル37を呼び出して、書き出しの対象となるデータを取得する。さらに、復号制御/暗号処理モジュール36は、許可された保存先に、取得したデータを暗号化して保存する。この暗号化のための鍵は、プロセスおよびファイルごとに異なるものを生成して用いる(すなわち、同じファイルでも、プロセスが異なれば鍵が異なる。また、プロセスが同じでも、ファイルが異なれば鍵が異なる。)。
(Steps 4 to 10 in FIG. 3)
Upon receiving the encryption command, the decryption control / encryption processing module 36 determines whether or not the save destination folder in the writing process obtained from the application matches the encrypted writing permission folder that has been passed as the list 331 in advance. . If they match, the decryption control / encryption processing module 36 calls the OS kernel 37 and acquires data to be written out. Further, the decryption control / encryption processing module 36 encrypts and stores the acquired data in an authorized storage location. This encryption key is generated and used differently for each process and file (ie, the same file has different keys for different processes. Also, the same process has the same key for different files. .).

もし、アプリケーション32が指定する保存先フォルダが、暗号化書き出し許可フォルダと一致しない場合は、復号制御/暗号処理モジュール36は、エラーをアプリケーション32に返す。本実施形態では、この処理により、アプリケーション32による任意フォルダへのデータの保存を禁止することができる。これにより、ファイル中のデータの安全性を高めることができる。   If the save destination folder specified by the application 32 does not match the encrypted write permission folder, the decryption control / encryption processing module 36 returns an error to the application 32. In the present embodiment, this processing can inhibit the application 32 from saving data in an arbitrary folder. Thereby, the safety | security of the data in a file can be improved.

本実施形態の方法によれば、アプリケーションプログラム32の動作に必要な動作であるテンポラリファイルの書き出しを実現することができる。また、データは、暗号化された状態で書き出されるので、ファイル内容の安全性を高めることができる。   According to the method of the present embodiment, writing of a temporary file, which is an operation necessary for the operation of the application program 32, can be realized. Further, since the data is written out in an encrypted state, the security of the file contents can be improved.

(図3のステップ11)
ついで、監視層34は、保存した結果(具体的には、例えば「保存完了」のメッセージ)を、アプリケーション32に、API呼出の結果として返す。
(Step 11 in FIG. 3)
Next, the monitoring layer 34 returns the saved result (specifically, for example, a “save complete” message) to the application 32 as a result of the API call.

(復号処理を必要としないAPI呼び出しの処理)
次に、復号処理を必要としないAPI呼び出しの処理手順について、図4に基づいて概略的に説明する。この処理は、基本的に、通常のAPI呼び出しと同じである。また、既に述べた処理と同様の処理については説明を省略する。
(API call processing that does not require decryption)
Next, an API call processing procedure that does not require a decoding process will be schematically described with reference to FIG. This process is basically the same as a normal API call. Further, the description of the same processing as the processing already described is omitted.

(図4のステップ1)
復号許可アプリケーション32におけるAPI呼出コードのうち、復号処理や印刷に関係しないコードについては、監視制御モジュール33は、コードの書き換えを行わない。このようなコードをアプリケーション32が呼び出した場合、標準のAPIコード35が通常通りに呼び出される。この場合、監視層34は呼び出されない。つまり、API呼出コードが監視層34を透過することになる。
(Step 1 in FIG. 4)
Of the API call codes in the decryption permission application 32, the monitoring control module 33 does not rewrite the codes that are not related to the decryption process or printing. When the application 32 calls such a code, the standard API code 35 is called as usual. In this case, the monitoring layer 34 is not called. That is, the API call code passes through the monitoring layer 34.

(図4のステップ2〜7)
呼び出された標準のAPI35は、通常どおり、OSカーネル37を呼び出し、処理結果を取得する。
(Steps 2 to 7 in FIG. 4)
The called standard API 35 calls the OS kernel 37 as usual and acquires the processing result.

(図4のステップ8)
処理結果を取得した後、標準のAPI35は、アプリケーション32にAPI呼び出しの結果を返す。
(Step 8 in FIG. 4)
After obtaining the processing result, the standard API 35 returns the result of the API call to the application 32.

本実施形態では、このようにして、ファイルの復号処理や印刷に関係しないAPI呼出コードについては、標準のAPIを通常通りに呼び出すことが可能である。呼び出された標準のAPIは、通常通りに動作して、処理結果をアプリケーション32に返すことができる。   In the present embodiment, a standard API can be called as usual for API call codes not related to file decryption processing or printing. The called standard API can operate normally and return the processing result to the application 32.

(復号処理を必要としないAPIパラメータの処理)
次に、復号処理を必要としないAPIパラメータの処理手順について、図5に基づいて概略的に説明する。この処理も、基本的に、通常のAPI呼び出しと同じである。また、既に述べた処理と同様の処理については説明を省略する。
(Processing of API parameters that do not require decryption processing)
Next, an API parameter processing procedure that does not require a decoding process will be schematically described with reference to FIG. This process is also basically the same as a normal API call. Further, the description of the same processing as the processing already described is omitted.

(図5のステップ1)
監視制御モジュール33は、復号許可アプリケーション32の実行時に、メモリ上のアプリケーション・コードをチェックする。さらに、監視制御モジュール33は、ファイル操作API呼出コードを、監視層34のコードを呼び出すように書き換える。この点は前記の例と同様である。
(Step 1 in FIG. 5)
The monitoring control module 33 checks the application code on the memory when the decryption permission application 32 is executed. Further, the monitoring control module 33 rewrites the file operation API call code so as to call the code of the monitoring layer 34. This is the same as the above example.

(図5のステップ2及び3)
ついで、アプリケーション32がAPI呼出を行う。ただし、前記のステップ1においてコードが書き換えられているので、実際には監視層34が呼び出される。
(Steps 2 and 3 in FIG. 5)
Next, the application 32 makes an API call. However, since the code has been rewritten in step 1, the monitoring layer 34 is actually called.

監視層34は、API呼出のパラメータをチェックし、実際に復号処理が必要かどうかを判断する。パラメータの例は、図2のステップ3で説明した通りである。復号処理が実際には不要であった場合、標準のAPIを呼び出す。   The monitoring layer 34 checks the parameters of the API call and determines whether or not the decoding process is actually necessary. Examples of parameters are as described in step 3 of FIG. If the decryption process is not actually required, a standard API is called.

(図5のステップ4〜9)
標準のAPIは、通常どおりにOSカーネル37を呼び出し、処理結果を取得する。その後、標準APIは、監視層34に、API呼出の結果を返す。
(Steps 4 to 9 in FIG. 5)
The standard API calls the OS kernel 37 as usual and acquires the processing result. Thereafter, the standard API returns the result of the API call to the monitoring layer 34.

(図5のステップ10及び11)
監視層34は、標準のAPI35から受け取った処理結果を、アプリケーション32に対して、API呼び出しの結果として返す。
(Steps 10 and 11 in FIG. 5)
The monitoring layer 34 returns the processing result received from the standard API 35 to the application 32 as a result of API call.

(復号対象アプリケーションでないアプリケーションからのAPI呼び出しの処理)
次に、一覧表331において復号対象アプリケーションとして記載されていないアプリケーションからのAPI呼び出しの処理について、図6に基づいて概略的に説明する。この処理は、基本的に、通常のAPI呼び出しと同じである。また、既に述べた処理と同様の処理については説明を省略する。
(Processing API calls from applications that are not decryption target applications)
Next, API call processing from an application that is not described as a decryption target application in the list 331 will be schematically described with reference to FIG. This process is basically the same as a normal API call. Further, the description of the same processing as the processing already described is omitted.

(図6のステップ1)
復号対象アプリケーションとして一覧表331に記載されていないアプリケーションからのファイル操作(印刷を含む)のAPIについては、監視制御モジュール34はコードの書き換えを行わない。したがって、アプリケーション32におけるファイル操作のためのAPI呼出コードは、そのまま、標準のAPI35を呼び出す。
(Step 1 in FIG. 6)
For APIs for file operations (including printing) from applications not listed in the list 331 as applications to be decrypted, the monitoring control module 34 does not rewrite the code. Therefore, the API call code for file operation in the application 32 calls the standard API 35 as it is.

(図6のステップ2〜7)
呼び出された標準のAPI35は、通常どおりにOSカーネル37を呼び出し、処理結果を取得する。
(Steps 2 to 7 in FIG. 6)
The called standard API 35 calls the OS kernel 37 as usual, and acquires the processing result.

(図6のステップ8)
標準のAPI35は、アプリケーション32に、API呼び出しの結果を返す。
(Step 8 in FIG. 6)
The standard API 35 returns the result of the API call to the application 32.

本実施形態のファイル管理方法によれば、監視制御モジュール33に書き込む内容(例えば復号許可アプリケーション、暗号化書き出し可能フォルダ、書き換えの対象となるAPI呼出コード、書き換えの内容など)を変更することで、各種のアプリケーションに対応することができ、非常に汎用性が高いという利点がある。   According to the file management method of the present embodiment, by changing the contents to be written to the monitoring control module 33 (for example, decryption permission application, encrypted writable folder, API call code to be rewritten, rewrite contents, etc.) There is an advantage that it can be used for various applications and is very versatile.

なお、本発明の範囲は、前記実施形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることはもちろんである。   It should be noted that the scope of the present invention is not limited to the above-described embodiment, and various modifications can be made without departing from the scope of the present invention.

例えば、前記した各構成要素は、機能ブロックとして存在していればよく、独立したハードウエアとして存在しなくても良い。また、実装方法としては、ハードウエアを用いてもコンピュータソフトウエアを用いても良い。さらに、本発明における一つの機能要素が複数の機能要素の集合によって実現されても良い。本発明における複数の機能要素が一つの機能要素により実現されても良い。   For example, each component described above may exist as a functional block, and may not exist as independent hardware. As a mounting method, hardware or computer software may be used. Furthermore, one functional element in the present invention may be realized by a set of a plurality of functional elements. A plurality of functional elements in the present invention may be realized by one functional element.

また、機能要素は、物理的に離間した位置に配置されていてもよい。この場合、機能要素どうしがネットワークにより接続されていても良い。   Moreover, the functional element may be arrange | positioned in the position physically separated. In this case, the functional elements may be connected by a network.

本発明の一実施形態に係るファイル管理装置の全体的な機能ブロック図である。1 is an overall functional block diagram of a file management apparatus according to an embodiment of the present invention. 本発明の一実施形態に係るファイル管理方法の手順(復号処理)を説明するための説明図である。It is explanatory drawing for demonstrating the procedure (decoding process) of the file management method which concerns on one Embodiment of this invention. 本発明の一実施形態に係るファイル管理方法の手順(暗号化書き出し処理)を説明するための説明図である。It is explanatory drawing for demonstrating the procedure (encryption write-out process) of the file management method which concerns on one Embodiment of this invention. 本発明の一実施形態に係るファイル管理方法の手順(対象外API呼び出しの処理)を説明するための説明図である。It is explanatory drawing for demonstrating the procedure (process of a non-target API call) of the file management method which concerns on one Embodiment of this invention. 本発明の一実施形態に係るファイル管理方法の手順(対象外APIパラメータの処理)を説明するための説明図である。It is explanatory drawing for demonstrating the procedure (process of a non-target API parameter) of the file management method which concerns on one Embodiment of this invention. 本発明の一実施形態に係るファイル管理方法の手順(対象外アプリケーションの処理)を説明するための説明図である。It is explanatory drawing for demonstrating the procedure (process of a non-target application) of the file management method which concerns on one Embodiment of this invention.

符号の説明Explanation of symbols

1 内部環境(コンテンツ提供者社内環境)
11 コンテンツ暗号化システム
12 コンテンツ用ストレージ
13 コンテンツのファイル
14 暗号化コンテンツ
2 公開サーバ環境
21 コンテンツ配布サーバ
22 鍵送信サーバ
23 鍵記録用のストレージ
231 コンテンツID及び復号鍵
3 ユーザコンピュータ
31 コンテンツダウンローダ
32 アプリケーションプログラム
321 API呼出コード
33 監視制御モジュール
331 一覧表
34 監視層
35 標準のAPI
36 復号処理/暗号処理モジュール
37 OSカーネル
38 デバイスドライバ
39 ローカルディスク(二次記憶装置)
4 インターネット
1 Internal environment (content provider internal environment)
DESCRIPTION OF SYMBOLS 11 Content encryption system 12 Content storage 13 Content file 14 Encrypted content 2 Public server environment 21 Content distribution server 22 Key transmission server 23 Key recording storage 231 Content ID and decryption key 3 User computer 31 Content downloader 32 Application program 321 API call code 33 Monitoring control module 331 List 34 Monitoring layer 35 Standard API
36 Decryption / Encryption Module 37 OS Kernel 38 Device Driver 39 Local Disk (Secondary Storage Device)
4 Internet

Claims (9)

以下の(a)〜(d)を備えるファイル管理システム:
(a)アプリケーションプログラム、
(b)監視層、
(c)復号制御モジュール、
(d)OSカーネル、
ここで、
前記アプリケーションプログラムは、ファイルを操作するためのAPI呼出コードを備えており、
前記監視層は、前記アプリケーションプログラムからのAPI呼び出しをフックし、前記ファイルを復号化するための復号命令を前記復号制御モジュールに送るようになっており、
前記復号制御モジュールは、前記監視層から送られた前記復号命令に基づいて、OSカーネルに復号処理を依頼するようになっており、
前記OSカーネルは、前記復号制御モジュールからの依頼に基づいて、前記ファイルを復号処理して、復号済みファイルを生成し、さらに、この復号済みファイルを復号制御モジュールに返すようになっており、
さらに、前記復号制御モジュールは、前記OSカーネルから返された前記復号済みファイルを前記アプリケーションプログラムに返す構成となっている。
A file management system comprising the following (a) to (d):
(A) application program,
(B) the monitoring layer,
(C) a decoding control module;
(D) OS kernel,
here,
The application program includes an API call code for operating a file,
The monitoring layer hooks an API call from the application program, and sends a decryption instruction for decrypting the file to the decryption control module.
The decryption control module requests the OS kernel to perform decryption processing based on the decryption instruction sent from the monitoring layer,
The OS kernel decrypts the file based on a request from the decryption control module, generates a decrypted file, and returns the decrypted file to the decryption control module.
Further, the decryption control module is configured to return the decrypted file returned from the OS kernel to the application program.
さらに、
(e)監視制御モジュール、
を備えた、請求項1に記載のファイル管理システムであって、
前記監視制御モジュールは、前記アプリケーションプログラムが備えている前記API呼出コードを書き換えることにより、前記アプリケーションプログラムからのAPI呼び出しをフックできる構成となっている。
further,
(E) a supervisory control module;
The file management system according to claim 1, comprising:
The monitoring control module is configured to be able to hook an API call from the application program by rewriting the API call code included in the application program.
さらに、
(f)二次記憶装置
を備えた、請求項1又は2に記載のファイル管理システムであって、
前記二次記憶装置は、暗号化された前記ファイルを格納している。
further,
(F) The file management system according to claim 1 or 2, comprising a secondary storage device,
The secondary storage device stores the encrypted file.
さらに、
(g)鍵送信サーバ
を備えた、請求項1〜3のいずれか1項に記載のファイル管理システムであって、
前記復号制御モジュールは、前記鍵送信サーバから受け取った鍵を用いて、前記復号処理を行う構成となっている、請求項1〜3のいずれか1項に記載のファイル管理システム。
further,
(G) The file management system according to any one of claims 1 to 3, comprising a key transmission server,
The file management system according to any one of claims 1 to 3, wherein the decryption control module is configured to perform the decryption process using a key received from the key transmission server.
前記API呼出コードは、ファイルを開くためのものである、請求項1〜4のいずれか1項に記載のファイル管理システム。   The file management system according to claim 1, wherein the API call code is for opening a file. 前記API呼出コードは、さらに、ファイルの印刷を行うためのものを含む、請求項5に記載のファイル管理システム。   The file management system according to claim 5, wherein the API call code further includes one for printing a file. さらに、
(h)暗号処理モジュール
を備えた、請求項1〜6に記載のファイル管理システムであって、
前記監視層は、前記フックしたAPI呼び出しに基づいて、暗号化命令を、前記暗号処理モジュールに送るようになっており、
前記暗号処理モジュールは、前記暗号化命令を受け取った後、前記アプリケーションプログラムの動作に必要なデータを、暗号化した上でテンポラリファイルに書き出す処理を行う構成となっている。
further,
(H) The file management system according to claim 1, comprising a cryptographic processing module,
The monitoring layer is configured to send an encryption command to the cryptographic processing module based on the hooked API call;
The cryptographic processing module is configured to perform processing of encrypting data necessary for the operation of the application program and writing it to a temporary file after receiving the encryption command.
以下の(a)〜(d)を備えるファイル管理システムを用いた、ファイル管理方法:
(a)アプリケーションプログラム、
(b)監視層、
(c)復号制御モジュール、
(d)OSカーネル、
ここで、
前記アプリケーションプログラムは、ファイルを操作するためのAPI呼出コードを備えている;
この方法は、以下のステップを備える:
前記監視層が、前記アプリケーションプログラムからのAPI呼び出しをフックし、前記ファイルを復号化するための復号命令を前記復号制御モジュールに送るステップ、
前記復号制御モジュールが、前記監視層から送られた復号命令に基づいて、OSカーネルに復号処理を依頼するステップ、
前記OSカーネルが、前記復号制御モジュールからの依頼に基づいて、前記ファイルを復号処理して、復号済みファイルを生成し、さらに、この復号済みファイルを復号制御モジュールに返すステップ、
さらに、前記復号制御モジュールが、前記OSカーネルから返された前記復号済みファイルを前記アプリケーションプログラムに返すステップ。
A file management method using a file management system comprising the following (a) to (d):
(A) application program,
(B) the monitoring layer,
(C) a decoding control module;
(D) OS kernel,
here,
The application program includes API call code for manipulating files;
This method comprises the following steps:
The monitoring layer hooks an API call from the application program and sends a decryption instruction for decrypting the file to the decryption control module;
The decryption control module requests the OS kernel to perform a decryption process based on the decryption instruction sent from the monitoring layer;
The OS kernel decrypts the file based on a request from the decryption control module to generate a decrypted file, and returns the decrypted file to the decryption control module;
Furthermore, the decryption control module returns the decrypted file returned from the OS kernel to the application program.
請求項8に記載の方法をコンピュータに実行させるためのコンピュータプログラム。   A computer program for causing a computer to execute the method according to claim 8.
JP2007223406A 2007-08-30 2007-08-30 File management system Withdrawn JP2009059008A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007223406A JP2009059008A (en) 2007-08-30 2007-08-30 File management system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007223406A JP2009059008A (en) 2007-08-30 2007-08-30 File management system

Publications (1)

Publication Number Publication Date
JP2009059008A true JP2009059008A (en) 2009-03-19

Family

ID=40554724

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007223406A Withdrawn JP2009059008A (en) 2007-08-30 2007-08-30 File management system

Country Status (1)

Country Link
JP (1) JP2009059008A (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4538838B1 (en) * 2009-08-18 2010-09-08 システムインテリジェント株式会社 Virtual thin client device, virtual thin client system, virtual thin client program, and virtual thin client method
WO2010113866A1 (en) * 2009-03-31 2010-10-07 日本電気株式会社 Image display device, image display method, and recording medium
WO2011082612A1 (en) * 2010-01-11 2011-07-14 北京世纪高通科技有限公司 Api management method, apparatus and system
JP2018136603A (en) * 2017-02-20 2018-08-30 日本電気株式会社 Decryption classification method, decryption classification device and decryption classification program
JPWO2018134945A1 (en) * 2017-01-19 2019-11-07 株式会社クリエイターズ・ヘッド Information control program, information control system, and information control method
JP2020095546A (en) * 2018-12-13 2020-06-18 デジタルア−ツ株式会社 Information processing device, information processing method, and information processing program
JP2020160985A (en) * 2019-03-27 2020-10-01 日本電気株式会社 File encryption device, method and program

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010113866A1 (en) * 2009-03-31 2010-10-07 日本電気株式会社 Image display device, image display method, and recording medium
JP4538838B1 (en) * 2009-08-18 2010-09-08 システムインテリジェント株式会社 Virtual thin client device, virtual thin client system, virtual thin client program, and virtual thin client method
JP2011039953A (en) * 2009-08-18 2011-02-24 System Intelligent Kk Device, system, program and method for integrating virtual thin client
WO2011082612A1 (en) * 2010-01-11 2011-07-14 北京世纪高通科技有限公司 Api management method, apparatus and system
JPWO2018134945A1 (en) * 2017-01-19 2019-11-07 株式会社クリエイターズ・ヘッド Information control program, information control system, and information control method
JP2018136603A (en) * 2017-02-20 2018-08-30 日本電気株式会社 Decryption classification method, decryption classification device and decryption classification program
JP2020095546A (en) * 2018-12-13 2020-06-18 デジタルア−ツ株式会社 Information processing device, information processing method, and information processing program
JP2020160985A (en) * 2019-03-27 2020-10-01 日本電気株式会社 File encryption device, method and program
JP7238539B2 (en) 2019-03-27 2023-03-14 日本電気株式会社 File encryption device, method and program

Similar Documents

Publication Publication Date Title
EP1596269A2 (en) A system and method for rendering selective presentation of documents
US20210294879A1 (en) Securing executable code integrity using auto-derivative key
US8549313B2 (en) Method and system for integrated securing and managing of virtual machines and virtual appliances
TWI384381B (en) Upgrading a memory card that has security mechanisms that prevent copying of secure content and applications
JP4089171B2 (en) Computer system
JP5116325B2 (en) Information processing apparatus, software update method, and image processing apparatus
JP4702957B2 (en) Tamper resistant virtual machine
US8275884B2 (en) Method and system for securely sharing content
US20060117178A1 (en) Information leakage prevention method and apparatus and program for the same
US20140289514A1 (en) Secure transfer and tracking of data using removable nonvolatile memory devices
JP2009110198A (en) File access control device and program
JP2006244486A (en) Method for forming right of use for item on bases of access right and computer readable medium
JP2009059008A (en) File management system
KR20140051350A (en) Digital signing authority dependent platform secret
JP2006172351A (en) Method and system for content expiration date management by use of removable medium
KR101604892B1 (en) Method and devices for fraud prevention of android-based applications
JP2010238212A (en) File control program, file transmission program, file transmission device, file control method, and file transmission method
JP5151531B2 (en) Image forming apparatus and data management method
JP2011039716A (en) Information storage medium and information system
CN116686316A (en) Encrypted file control
CN117150521A (en) Transparent encryption and decryption method and device for universal encryption card
JP5234217B2 (en) Information processing apparatus, software update method, and program
JP2008097481A (en) Method, apparatus, and program for protecting electronic data on storage apparatus, and recording medium
JP2004213409A (en) Image forming apparatus, recording medium reading and writing program, and recording medium
JP2004240719A (en) Software execution control method

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20101102