JP2009059008A - File management system - Google Patents
File management system Download PDFInfo
- 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
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
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
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
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
The file management system according to any one of
(項目5)
前記API呼出コードは、ファイルを開くためのものである、項目1〜4のいずれか1項に記載のファイル管理システム。
(Item 5)
The file management system according to any one of
(項目6)
前記API呼出コードは、さらに、ファイルの印刷を行うためのものを含む、項目5に記載のファイル管理システム。
(Item 6)
6. The file management system according to
(項目7)
さらに、
(h)暗号処理モジュール
を備えた、項目1〜6に記載のファイル管理システムであって、
前記監視層は、前記フックしたAPI呼び出しに基づいて、暗号化命令を、前記暗号処理モジュールに送るようになっており、
前記暗号処理モジュールは、前記暗号化命令を受け取った後、前記アプリケーションプログラムの動作に必要なデータを、暗号化した上でテンポラリファイルに書き出す処理を行う構成となっている。
(Item 7)
further,
(H) The file management system according to any of
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
本発明によれば、本発明は、アプリケーション・プログラムを改変せずに、暗号化ファイルの操作を、ファイル単位で行うことが可能になる。 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
(内部環境)
内部環境1は、コンテンツ暗号化システム11と、コンテンツ用ストレージ12とを備えている。
(Internal environment)
The
コンテンツ暗号化システム11は、コンテンツファイル13を暗号化するものである。また、コンテンツ暗号化システム11は、コンテンツIDと復号鍵とを生成して、公開サーバ環境2に送るようになっている。ここで、コンテンツファイル13としては、文書、画像、動画、実行ファイルなど、各種のものが利用できる。つまり、本実施形態のシステムで対象となるファイルの形式は制約されない。
The
また、コンテンツ暗号化システム11は、暗号化されたコンテンツファイル14を、ストレージ12に格納するようになっている。
Further, the
コンテンツ用ストレージ12は、暗号化されたコンテンツファイル14を、公開サーバ環境2に受け渡すことができるようになっている。
The
(公開サーバ環境)
公開サーバ環境2は、コンテンツ配布サーバ21と、鍵送信サーバ22と、鍵記録用のストレージ23とを備えている。
(Public server environment)
The
コンテンツ配布サーバ21は、コンテンツ用ストレージ12から、暗号化されたファイル14を受け取り、インターネット4を経由して、ユーザコンピュータ3に送るようになっている。
The content distribution server 21 receives the
鍵送信サーバ22は、コンテンツ暗号化システム11から、コンテンツIDと復号鍵とを受け取り、ユーザコンピュータ3に送ることができるようになっている。
The
鍵記録用のストレージ23は、鍵送信サーバ22が受け取ったコンテンツIDと復号鍵とを対応させて、保存しておくものである。
The
(ユーザコンピュータ)
ユーザコンピュータ3は、コンテンツダウンローダ31と、アプリケーションプログラム(アプリケーション)32と、監視制御モジュール33と、監視層34と、標準API35と、復号制御/暗号処理モジュール36と、OSカーネル37と、デバイスドライバ38と、二次記憶装置39とを備えている。
(User computer)
The
コンテンツダウンローダ31は、コンテンツ配布サーバ21から、インターネット4を介して、暗号化されたコンテンツファイル14を受け取るものである。このような機能は、ブラウザなど適宜のコンピュータソフトウエアにより提供することができる。ただし、ユーザコンピュータ3がコンテンツファイル14を受け取る手段としては、インターネット経由に限らず、例えば、CDやDVDなどの媒体経由であってもよい。この場合は、コンテンツダウンローダ31に代えて、記録媒体の読み出し装置を用いることができる。
The
アプリケーションプログラム32は、ファイル操作や印刷などの機能を実行するためのコンピュータソフトウエアである。この実施形態では、アプリケーションプログラム32として、各種のビューアアプリケーションを想定しているが、これのみに制約されるものではない。アプリケーションプログラム32の例としては、インターネット・エクスプローラー、Flashプレイヤー、PDFビューア、MS-Officeなどである。なお、これらは商標あるいは登録商標である。アプリケーションプログラム32は、ファイルを操作するためのAPI呼出コード321(図2参照)を備えている。
The
監視制御モジュール33は、アプリケーションプログラム32におけるAPI呼出コードを書き換えることにより、APIフックを実現する機能を有するコンピュータプログラムである。
The
さらに、監視制御モジュール33は、ユーザ側から、
・復号許可アプリケーション
・暗号化書き出し可能フォルダ
・アプリケーションによる印刷の制限
・画面キャプチャの制限
についてのデータを受け付けるようになっている。
Furthermore, the
・ Decryption permission application ・ Encryption exportable folder ・ Print restriction by application ・ Screen capture restriction data can be received.
監視制御モジュール33についての詳しい動作は後述する。
Detailed operation of the
監視層34は、アプリケーションプログラム32からのAPI呼び出しをフックし、ファイルを復号するための復号命令を復号制御モジュール36に送るようになっている。なお、本実施形態では、ファイル中のデータの復号も、ファイルの復号という概念に含まれるものとする。もちろん、ファイル全体を復号することも可能である。また、アプリケーションプログラム32からのAPI呼び出しの結果として複数のファイルを復号することも可能である。監視層34についても詳しい動作は後述する。
The
標準API35は、OS(例えばWindows(登録商標))に付随して備えられた、標準的なAPI群である。このようなAPIは既によく知られているので、詳しい説明は省略する。
The
復号制御/暗号処理モジュール36は、復号制御モジュールと、暗号制御モジュールとが組み合わされた機能ブロックである。実際のプログラムコードとしては、両モジュールが一体のファイルになっていてもよいし、別のファイルであってもよい。要するに両方の機能を発揮できる構成であればよい。
The decryption control /
復号制御/暗号処理モジュール36は、復号制御の機能として、監視層34から送られた復号命令に基づいて、OSカーネル37に復号処理を依頼するようになっている。さらに、復号制御/暗号処理モジュール36は、OSカーネル37から返された復号済みファイルをアプリケーションプログラム32に返す構成となっている。
The decryption control /
また、復号制御/暗号処理モジュール36は、暗号処理の機能として、監視層34から暗号化命令を受け取った後、アプリケーションプログラムの動作に必要なデータを、暗号化した上でテンポラリファイルに書き出す処理を行う構成となっている。
Further, as a function of encryption processing, the decryption control /
復号制御/暗号処理モジュール36の詳しい動作も後述する。
Detailed operation of the decryption control /
OSカーネル37は、復号制御モジュール36からの依頼に基づいて、ファイルから必要な部分のデータを逐次復号処理し、その結果を復号制御モジュール36に返すようになっている。
Based on the request from the
(本実施形態に係るファイル管理方法)
次に、前記したシステムを用いたファイル管理方法の一例を、図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に登録する。この登録は、アプリケーションの動作前に行われる。
(
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
ここで、「対象復号許可アプリケーション」とは、復号処理が許可されているアプリケーションである。この情報は、アプリケーションのバイナリハッシュ値を用いて記録されている。アプリケーションの情報としては、例えば、アプリケーションの名称やバイナリパスも可能であるが、これらは一般に環境依存なので、本実施形態では使用しない。つまり、アプリケーションをそのバイナリハッシュ値で特定することにより、環境依存性を低減させることができる。。ここでバイナリハッシュ値とは、アプリケーションのファイル(実行ファイル)から、適宜なハッシュ関数を用いて生成されたハッシュ値である。 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
「印刷およびキャプチャに対する制限の有効、無効」とは、当該アプリケーションによる印刷や、システムによる画面キャプチャを許すかどうかの情報である。以下の例では、キャプチャに対する制限は有効として説明する。制限が無効であれば、キャプチャに対する制限は行われない。 “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でのサービスを利用することで容易に実現できる。
(
The
さらに、監視制御モジュール33は、復号許可アプリケーション32の起動時に、この復号許可アプリケーション32が改ざんされていないかを、ハッシュ値を元にチェックする。また、同時に、ハッシュ値を用いることで、一覧リスト331に登録されている復号許可アプリケーション32の特定も可能である。チェックの結果、問題がない場合のみ、復号許可アプリケーション32を起動する。また、一覧リスト331に登録されていないアプリケーションや、ハッシュ値があわないアプリケーションは起動しない。
Furthermore, the
また、アプリケーション32を起動した後は、監視制御モジュール33はデスクトップ全体のイベントを監視し、画面キャプチャイベントが発生した場合はエラーを返す。
In addition, after starting the
さらに、監視制御モジュール33は、アプリケーション32が起動した後、メモリ上のアプリーション・コードをチェックする。具体的には、監視制御モジュール33は、起動したアプリケーション32が、リスト331に記録されている復号処理アプリケーションである場合に、そのアプリケーションにおけるファイル操作API呼出コードおよび印刷操作API呼出コードを、監視層34のコードを呼び出すように書き換える。ここで、起動したアプリケーションが、復号処理アプリケーションではない場合、このようなAPIの書き換えは行われない。このため、本実施形態によれば、復号処理アプリケーション以外のアプリケーションは、監視層34を呼び出すことができない。その結果、そのようなアプリケーションによる、暗号化ファイルの復号を防ぐことができ、暗号化ファイルへの不正なアクセスを防止できるという利点がある。
Further, the
(図2のステップ2)
ついで、アプリケーション32がAPI呼出を行う。ここで、API呼出コードが、ファイル操作又は印刷操作の場合は、前記したステップ1においてコードが書き換えられているので、実際には、監視層34が呼び出される。この例では、ファイル操作のAPIとは、ファイルを開くためのAPIである。
(
Next, the
監視層34は、書き換えられたコードを読み取ることにより、アプリケーション32からの要求が印刷操作であるか、あるいはファイル操作であるかをチェックする。
The
印刷操作の場合は、印刷が許可されているアプリケーション32からの呼び出しであれば、そのまま標準の印刷用APIを呼び出す。これにより、ファイルの印刷が可能である。ここで、印刷の前提としては、後述するファイル操作により、ファイルが既に開かれているものとする。一方、印刷が不許可とされているアプリケーション32からの呼び出しの場合は、エラーをアプリケーション32に返すことで印刷を禁止することができる。
In the case of a printing operation, if it is a call from the
(図2のステップ3)
ファイル操作のAPIである場合は、監視層34は、書き換えられる前のAPI呼出のパラメータをチェックし、実際に復号処理または暗号化書き出しが必要かどうかを判断する(暗号化書き出しについては後述する)。例えばファイルをオープンするAPIの場合、APIのパラメータにファイルのアクセス方式が指定されている。アクセス方式の指定は、以下の種類がある。
・読み込みのみ
・書き込みのみ
・読み書き
・読み書きなし(ファイル属性取得のために利用される)
(
In the case of a file operation API, the
・ 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
パラメータが「書き込みのみ」、後述する暗号化書き込みのための処理を行う。パラメータが「読み書き」を指定している場合は、復号及び暗号化書き込みのための処理を行う。 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
(図2のステップ4〜9)
ついで、復号制御/暗号処理モジュール36は、監視層34からの復号命令に基づいて、OSカーネル37を呼び出す。OSカーネル37は、暗号化コンテンツ14(復号対象となるファイル)を、デバイスドライバ38を介して、二次記憶装置39から取得する。また、復号制御/暗号処理モジュール36は、暗号化コンテンツ14に埋め込まれたコンテンツIDを取得する。
(
Next, the decryption control /
ここで、復号制御/暗号処理モジュール36は、「監視制御モジュール33から起動されたアプリケーションから呼び出される監視層34」とのみ通信を行う。監視層34と監視制御モジュール33は、アプリケーション起動時に個別の通信路(パイプ)を用いて接続されており、この通信路を用いてのみ、相互間の通信を行う。監視層34は、DLLとして実装できるので、この監視層34を不正に組み込むアプリケーションも予想できる。しかし、監視制御モジュール33から起動されていない(つまり復号許可アプリケーションでない)他のアプリケーションに仮に監視層(DLL)を組み込んでも、その監視層は、上記理由により、復号制御/暗号処理モジュール36との通信ができない。このため、本実施形態によれば、監視層34を不正利用されることはない。
Here, the decryption control /
ついで、復号制御/暗号処理モジュール36は、取得したコンテンツIDに対応した復号鍵を、鍵送信サーバ22から送られた復号鍵表231とマッチングすることにより取得する。この実施形態では、復号処理/暗号処理モジュール36は、鍵送信サーバ22から、セキュアな手順を用いて、復号鍵を取得することができる。また、復号鍵を、インターネット以外の他の手段で(例えば記録媒体を介して)取得することも可能である。
Next, the decryption control /
(図2のステップ11)
復号制御/暗号処理モジュール36は、復号対象データと復号鍵とを、OSカーネル37の復号機能を呼び出すことによって復号する。つまり、OSカーネル37は、復号制御モジュール36からの依頼に基づいて、ファイル14から処理に必要なデータを逐次復号処理して(いわゆる「on-the-fly」)、復号済みデータを生成し、さらに、この復号済みデータを復号制御モジュール36に返すようになっている。また、このモジュール36は、復号した結果を監視層34に返す。このように、本実施形態では、復号を、ファイル中のデータブロックの単位で行っている。これにより、本実施形態によれば、ファイル中において必要な部分のみを復号することができる。
(
The decryption control /
(図2のステップ12)
監視層34は、復号した結果(つまり復号化したファイル)を、アプリケーション32に対して、API呼び出しの結果として返す。これによりアプリケーション32は、安全にファイルの内容を取得することができる。したがって、ユーザは、アプリケーション32により、暗号化されたファイルを開いて、ディスプレイ装置により閲覧することができる。
(
The
本実施形態の方法によれば、ファイル単位で、暗号化されたファイルを開いたり、印刷する等の処理を行うことができる。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と同様である。
(
First, the user registers in advance the decryption permission application and the encrypted writeable folder in the list. This is the same as
(図3のステップ1)
さらに、監視制御モジュール33は、アプリケーション実行時に、メモリ上のアプリーション・コードをチェックする。さらに監視制御モジュール33は、復号処理又は暗号化書き出しが必要となる一覧リストに登録されているアプリケーションにおける、ファイル操作用のAPI呼出コードを、監視層34のコードを呼び出すように書き換える。この操作は、図2のステップ1と基本的に同様である。ただし、図3の例では、コードが書き換えられた結果、呼び出されるようになった監視層34にて、書き出しの可否を制御することができる。
(
Further, the
(図3のステップ1')
さらに図3の処理においては、復号制御/暗号処理モジュール36に対して、監視制御モジュール33が
・暗号化書き出しを許可するフォルダの情報と、
・この暗号化書き出しでの暗号化において利用する鍵情報と
を渡す。
(
Further, in the processing of FIG. 3, the
-Pass the key information used for encryption in this encrypted export.
(図3のステップ2)
アプリケーション32がAPI呼び出しを行う。ただし、ステップ1でコードが書き換えられているので、実際には監視層34が呼び出される。
(
The
(図3のステップ3)
監視層34は、書き換えられる前のAPI呼出コードのパラメータ(図2のステップ3において説明したもの)をチェックし、暗号化書き出しが必要かどうかを判断する。これらの処理が必要である場合、復号制御/暗号処理モジュール36を呼び出す。つまり、監視層34は、暗号化命令を、復号制御/暗号処理モジュール36に送る。
(
The
(図3のステップ4〜10)
暗号化命令を受け取った復号制御/暗号処理モジュール36では、アプリケーションから求められた書き出し処理における保存先フォルダが、予め一覧表331として渡されている暗号化書き出し許可フォルダと一致するかどうかを判断する。一致した場合は、復号制御/暗号処理モジュール36は、OSカーネル37を呼び出して、書き出しの対象となるデータを取得する。さらに、復号制御/暗号処理モジュール36は、許可された保存先に、取得したデータを暗号化して保存する。この暗号化のための鍵は、プロセスおよびファイルごとに異なるものを生成して用いる(すなわち、同じファイルでも、プロセスが異なれば鍵が異なる。また、プロセスが同じでも、ファイルが異なれば鍵が異なる。)。
(
Upon receiving the encryption command, the decryption control /
もし、アプリケーション32が指定する保存先フォルダが、暗号化書き出し許可フォルダと一致しない場合は、復号制御/暗号処理モジュール36は、エラーをアプリケーション32に返す。本実施形態では、この処理により、アプリケーション32による任意フォルダへのデータの保存を禁止することができる。これにより、ファイル中のデータの安全性を高めることができる。
If the save destination folder specified by the
本実施形態の方法によれば、アプリケーションプログラム32の動作に必要な動作であるテンポラリファイルの書き出しを実現することができる。また、データは、暗号化された状態で書き出されるので、ファイル内容の安全性を高めることができる。
According to the method of the present embodiment, writing of a temporary file, which is an operation necessary for the operation of the
(図3のステップ11)
ついで、監視層34は、保存した結果(具体的には、例えば「保存完了」のメッセージ)を、アプリケーション32に、API呼出の結果として返す。
(
Next, the
(復号処理を必要としない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を透過することになる。
(
Of the API call codes in the
(図4のステップ2〜7)
呼び出された標準のAPI35は、通常どおり、OSカーネル37を呼び出し、処理結果を取得する。
(
The called
(図4のステップ8)
処理結果を取得した後、標準のAPI35は、アプリケーション32にAPI呼び出しの結果を返す。
(
After obtaining the processing result, the
本実施形態では、このようにして、ファイルの復号処理や印刷に関係しない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
(復号処理を必要としない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のコードを呼び出すように書き換える。この点は前記の例と同様である。
(
The
(図5のステップ2及び3)
ついで、アプリケーション32がAPI呼出を行う。ただし、前記のステップ1においてコードが書き換えられているので、実際には監視層34が呼び出される。
(
Next, the
監視層34は、API呼出のパラメータをチェックし、実際に復号処理が必要かどうかを判断する。パラメータの例は、図2のステップ3で説明した通りである。復号処理が実際には不要であった場合、標準のAPIを呼び出す。
The
(図5のステップ4〜9)
標準のAPIは、通常どおりにOSカーネル37を呼び出し、処理結果を取得する。その後、標準APIは、監視層34に、API呼出の結果を返す。
(
The standard API calls the
(図5のステップ10及び11)
監視層34は、標準のAPI35から受け取った処理結果を、アプリケーション32に対して、API呼び出しの結果として返す。
(Steps 10 and 11 in FIG. 5)
The
(復号対象アプリケーションでないアプリケーションからの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
(図6のステップ1)
復号対象アプリケーションとして一覧表331に記載されていないアプリケーションからのファイル操作(印刷を含む)のAPIについては、監視制御モジュール34はコードの書き換えを行わない。したがって、アプリケーション32におけるファイル操作のためのAPI呼出コードは、そのまま、標準のAPI35を呼び出す。
(
For APIs for file operations (including printing) from applications not listed in the
(図6のステップ2〜7)
呼び出された標準のAPI35は、通常どおりにOSカーネル37を呼び出し、処理結果を取得する。
(
The called
(図6のステップ8)
標準のAPI35は、アプリケーション32に、API呼び出しの結果を返す。
(
The
本実施形態のファイル管理方法によれば、監視制御モジュール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 内部環境(コンテンツ提供者社内環境)
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
36 Decryption /
4 Internet
Claims (9)
(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.
(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)アプリケーションプログラム、
(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.
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)
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 |
-
2007
- 2007-08-30 JP JP2007223406A patent/JP2009059008A/en not_active Withdrawn
Cited By (9)
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 |