Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7549283B2 - Management method, information processing device, and management program - Google Patents
[go: Go Back, main page]

JP7549283B2 - Management method, information processing device, and management program - Google Patents

Management method, information processing device, and management program Download PDF

Info

Publication number
JP7549283B2
JP7549283B2 JP2023567449A JP2023567449A JP7549283B2 JP 7549283 B2 JP7549283 B2 JP 7549283B2 JP 2023567449 A JP2023567449 A JP 2023567449A JP 2023567449 A JP2023567449 A JP 2023567449A JP 7549283 B2 JP7549283 B2 JP 7549283B2
Authority
JP
Japan
Prior art keywords
database
information
data
user
program
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.)
Active
Application number
JP2023567449A
Other languages
Japanese (ja)
Other versions
JPWO2023112272A1 (en
Inventor
雅樹 西垣
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2023112272A1 publication Critical patent/JPWO2023112272A1/ja
Application granted granted Critical
Publication of JP7549283B2 publication Critical patent/JP7549283B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Storage Device Security (AREA)

Description

本発明は管理方法、情報処理装置および管理プログラムに関する。 The present invention relates to a management method, an information processing device, and a management program.

データベースシステムは、データベース管理プログラムを用いて、データベースを管理しデータ処理を実行することがある。データベース管理プログラムは、DBMS(Database Management System)プログラムと呼ばれることがある。データベースシステムは、データベースに対する利用者の権限を設定し、権限の範囲内でデータベースへのアクセスを許可することがある。また、データベースシステムは、データ処理手順を規定したストアドプロシジャを登録し、要求に応じてストアドプロシジャを実行することがある。 A database system may use a database management program to manage the database and perform data processing. A database management program is sometimes called a DBMS (Database Management System) program. A database system may set user permissions for the database and permit access to the database within the scope of those permissions. A database system may also register stored procedures that define data processing procedures, and execute the stored procedures on request.

なお、データベースを暗号化および復号するための暗号鍵を管理するシステムが提案されている。提案のシステムは、利用者IDと、パスワードを用いて暗号鍵を暗号化した鍵暗号文と、パスワードの世代を示すリビジョン番号とを対応付けた鍵情報を記憶する。提案のシステムは、利用者がパスワードを変更する場合、古いパスワードで鍵暗号文を復号して暗号鍵を復元し、新しいパスワードで暗号鍵を再暗号化して新しい鍵情報を生成し、古い鍵情報と併存させて新しい鍵情報を保存する。 A system has been proposed that manages encryption keys for encrypting and decrypting databases. The proposed system stores key information that associates a user ID, a key ciphertext obtained by encrypting an encryption key using a password, and a revision number indicating the generation of the password. When a user changes their password, the proposed system decrypts the key ciphertext with the old password to restore the encryption key, re-encrypts the encryption key with the new password to generate new key information, and stores the new key information alongside the old key information.

特開2016-192715号公報JP 2016-192715 A

データベースシステムは、特定のデータベース管理プログラムを使用することで、データベースに含まれるデータの保護を強化することが考えられる。特定のデータベース管理プログラムは、通常のデータベース管理プログラムよりも利用者の操作を制限した制限版のデータベース管理プログラムであってもよい。 A database system may strengthen the protection of the data contained in the database by using a specific database management program. The specific database management program may be a restricted version of a database management program that places more restrictions on user operations than a normal database management program.

しかし、データベースシステムは、第三者がデータベース管理プログラムを入れ替えるという攻撃を受ける可能性がある。データベース管理プログラムがデータ保護レベルの高いものから低いものに入れ替えられると、第三者によってデータベースから不正にデータが読み出される可能性がある。そこで、1つの側面では、本発明は、第三者によるデータベース管理プログラムの入れ替えを抑止することを目的とする。 However, database systems may be subject to attacks in which a third party replaces the database management program. If the database management program is replaced from one with a high data protection level to one with a lower one, a third party may illegally read data from the database. Therefore, in one aspect, the present invention aims to prevent a third party from replacing the database management program.

1つの態様では、以下の処理をコンピュータが実行する管理方法が提供される。データベースを管理するデータベース管理プログラムを識別するリビジョン情報と、データベースの利用者を示す利用者情報とを取得する。取得されたリビジョン情報と利用者情報とを用いて鍵情報を生成する。生成された鍵情報を用いてデータベースを暗号化する。データベースが暗号化された後、生成された鍵情報を破棄する。 In one aspect, a management method is provided in which a computer executes the following processes: Obtain revision information that identifies a database management program that manages the database, and user information that indicates a user of the database. Generate key information using the obtained revision information and user information. Encrypt the database using the generated key information. After the database is encrypted, discard the generated key information.

また、1つの態様では、記憶部と処理部とを有する情報処理装置が提供される。また、1つの態様では、コンピュータに実行させる管理プログラムが提供される。In one aspect, an information processing device is provided having a storage unit and a processing unit. In another aspect, a management program is provided to be executed by a computer.

1つの側面では、第三者によるデータベース管理プログラムの入れ替えが抑止される。
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
In one aspect, replacement of the database management program by a third party is inhibited.
The above and other objects, features and advantages of the present invention will become apparent from the following description taken in conjunction with the accompanying drawings illustrating preferred embodiments of the present invention.

第1の実施の形態の情報処理装置を説明するための図である。FIG. 1 is a diagram illustrating an information processing apparatus according to a first embodiment. 第2の実施の形態の情報処理システムの例を示す図である。FIG. 1 illustrates an example of an information processing system according to a second embodiment. データ処理サーバのハードウェア例を示すブロック図である。FIG. 2 is a block diagram showing an example of hardware of a data processing server. データカプセルの構造例を示すブロック図である。FIG. 2 is a block diagram showing an example of the structure of a data capsule. データ処理サーバのソフトウェア例を示すブロック図である。FIG. 2 is a block diagram showing an example of software for the data processing server. カプセル管理テーブルの例を示す図である。FIG. 13 is a diagram showing an example of a capsule management table. 暗号鍵の生成例を示す図である。FIG. 13 illustrates an example of encryption key generation. データカプセル生成の手順例を示すフローチャートである。13 is a flowchart illustrating an example of a procedure for generating a data capsule. データカプセル利用の手順例を示すフローチャートである。13 is a flowchart showing an example of a procedure for using a data capsule.

以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
第1の実施の形態を説明する。
The present embodiment will be described below with reference to the drawings.
[First embodiment]
A first embodiment will be described.

図1は、第1の実施の形態の情報処理装置を説明するための図である。
第1の実施の形態の情報処理装置10は、データベース管理プログラムを用いてデータを保持する。情報処理装置10は、クライアント装置でもよいしサーバ装置でもよい。情報処理装置10は、コンピュータ、データベース装置または管理装置と呼ばれてもよい。
FIG. 1 is a diagram illustrating an information processing apparatus according to a first embodiment.
The information processing device 10 according to the first embodiment holds data using a database management program. The information processing device 10 may be a client device or a server device. The information processing device 10 may be called a computer, a database device, or a management device.

情報処理装置10は、記憶部11および処理部12を有する。記憶部11は、RAM(Random Access Memory)などの揮発性半導体メモリでもよいし、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性ストレージでもよい。処理部12は、例えば、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、DSP(Digital Signal Processor)などのプロセッサである。ただし、処理部12が、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの電子回路を含んでもよい。プロセッサは、例えば、RAMなどのメモリ(記憶部11でもよい)に記憶されたプログラムを実行する。プロセッサの集合が、マルチプロセッサまたは単に「プロセッサ」と呼ばれてもよい。The information processing device 10 has a storage unit 11 and a processing unit 12. The storage unit 11 may be a volatile semiconductor memory such as a random access memory (RAM), or a non-volatile storage such as a hard disk drive (HDD) or a flash memory. The processing unit 12 is, for example, a processor such as a central processing unit (CPU), a graphics processing unit (GPU), or a digital signal processor (DSP). However, the processing unit 12 may include an electronic circuit such as an application specific integrated circuit (ASIC) or a field programmable gate array (FPGA). The processor executes a program stored in a memory such as a RAM (which may be the storage unit 11). A collection of processors may be called a multiprocessor or simply a "processor".

記憶部11は、データベース13およびデータベース管理プログラム14を記憶する。データベース13は、関係データベースでもよいし、ツリー型データベースやネットワーク型データベースなどの非関係データベースでもよい。データベース13は、テーブルデータなどのデータ集合を含む。データベース13は、データアクセスの制御に用いられる管理情報を含んでもよい。管理情報は、データベース13にアクセスできる利用者を示す利用者定義を含んでよく、利用者に許可されるデータ操作の種類を示す権限定義を含んでもよい。また、管理情報は、データ構造定義を含んでもよく、一連のデータ処理手順を規定したストアドプロシジャ定義を含んでもよい。 The storage unit 11 stores a database 13 and a database management program 14. The database 13 may be a relational database or a non-relational database such as a tree-type database or a network-type database. The database 13 includes a data set such as table data. The database 13 may include management information used to control data access. The management information may include a user definition indicating users who can access the database 13, and may include an authority definition indicating the types of data operations permitted to the users. The management information may also include a data structure definition, and may include a stored procedure definition that specifies a series of data processing procedures.

後述するように、データベース13は暗号化される。データベース13の暗号化は、データ集合の暗号化を含んでもよく、管理情報の暗号化を含んでもよい。暗号化は、テーブルのレコード単位や管理情報の項目単位のように細粒度で行われてもよいし、テーブル全体や管理情報のファイル全体のように疎粒度で行われてもよい。As described below, database 13 is encrypted. Encryption of database 13 may include encryption of data sets, or may include encryption of management information. Encryption may be performed at a fine granularity, such as on a record-by-record basis in a table or on an item-by-item basis in management information, or at a coarse granularity, such as on an entire table or an entire file of management information.

データベース管理プログラム14は、データベース13を管理する。データベース管理プログラム14は、DBMSプログラムと呼ばれることがある。例えば、データベース管理プログラム14は、利用者から、SQL文などのクエリまたはストアドプロシジャの指定を含む要求メッセージを受信する。データベース管理プログラム14は、利用者定義および権限定義を参照して、要求メッセージの内容が利用者の権限の範囲内であることを確認する。そして、データベース管理プログラム14は、データベース13に対して、クエリまたは指定されたストアドプロシジャを実行する。 The database management program 14 manages the database 13. The database management program 14 is sometimes called a DBMS program. For example, the database management program 14 receives a request message from a user that includes a query such as an SQL statement or a stored procedure specification. The database management program 14 refers to the user definition and authority definition to confirm that the contents of the request message are within the scope of the user's authority. The database management program 14 then executes the query or the specified stored procedure against the database 13.

データベース管理プログラム14は、通常のデータベース管理プログラムよりも利用者の操作を制限した制限版のデータベース管理プログラムであってもよい。例えば、データベース管理プログラム14では、利用者定義、権限定義、データ構造定義、ストアドプロシジャ定義などの管理情報を変更することが禁止されてもよい。また、データベース管理プログラム14では、データ検索、データ挿入、データ更新およびデータ削除のうち、データ更新やデータ削除などの一部のデータ操作が禁止されてもよい。 The database management program 14 may be a restricted version of a database management program that places more restrictions on user operations than a normal database management program. For example, the database management program 14 may prohibit changes to management information such as user definitions, authority definitions, data structure definitions, and stored procedure definitions. Furthermore, the database management program 14 may prohibit some data operations, such as data updates and data deletions, out of data searches, data insertions, data updates, and data deletions.

処理部12は、データベース13を暗号化する。処理部12は、暗号化されたデータベース13とデータベース管理プログラム14とをパッケージ化し、パッケージデータを出力してもよい。例えば、処理部12は、パッケージデータを利用者に提供してもよく、他の情報処理装置に送信してもよい。データベース13を暗号化するにあたり、処理部12は、リビジョン情報15および利用者情報16を取得する。 The processing unit 12 encrypts the database 13. The processing unit 12 may package the encrypted database 13 and the database management program 14, and output the package data. For example, the processing unit 12 may provide the package data to a user, or may transmit it to another information processing device. When encrypting the database 13, the processing unit 12 acquires revision information 15 and user information 16.

リビジョン情報15は、データベース管理プログラム14を識別する識別子である。リビジョン情報15は、データベース管理プログラム14の版数でもよく、データベース管理プログラム14の複製のシリアル番号でもよい。リビジョン情報15は、データベース管理プログラム14に埋め込まれていてもよい。利用者情報16は、データベース13の利用者を示す識別子である。この利用者は、例えば、保護されるべきデータをデータベース13に保存するデータ提供者である。利用者情報16は、データベース13に付随するファイルに記載されていてもよいし、データベース13に含まれていてもよい。 Revision information 15 is an identifier that identifies the database management program 14. Revision information 15 may be the version number of the database management program 14, or a serial number of a copy of the database management program 14. Revision information 15 may be embedded in the database management program 14. User information 16 is an identifier that indicates the user of the database 13. This user is, for example, a data provider who stores data to be protected in the database 13. User information 16 may be written in a file associated with the database 13, or may be included in the database 13.

処理部12は、取得されたリビジョン情報15と利用者情報16とを用いて、特定の鍵生成アルゴリズムに従って鍵情報17を生成する。例えば、処理部12は、リビジョン情報15と利用者情報16とを結合し、結合された文字列をハッシュ関数などの関数に入力して鍵情報17を生成する。鍵情報17は、共通鍵暗号方式に用いられる共通鍵を含んでもよく、公開鍵暗号方式に用いられる公開鍵および秘密鍵を含んでもよい。The processing unit 12 generates key information 17 according to a specific key generation algorithm using the acquired revision information 15 and user information 16. For example, the processing unit 12 combines the revision information 15 and the user information 16, and inputs the combined character string into a function such as a hash function to generate key information 17. The key information 17 may include a common key used in a common key cryptosystem, or may include a public key and a private key used in a public key cryptosystem.

処理部12は、生成された鍵情報17を用いてデータベース13を暗号化する。データベース13が暗号化された後、処理部12は、生成された鍵情報17を破棄する。鍵情報17が保存されないため、データベース13を復号する際には、リビジョン情報15および利用者情報16から鍵情報17が再生成される。データベース管理プログラム14は、再生成される鍵情報17を用いてデータベース13へのアクセスを実行してもよい。データベース管理プログラム14は、鍵情報17を再生成するモジュールを含んでもよい。The processing unit 12 encrypts the database 13 using the generated key information 17. After the database 13 is encrypted, the processing unit 12 discards the generated key information 17. Because the key information 17 is not saved, when decrypting the database 13, the key information 17 is regenerated from the revision information 15 and the user information 16. The database management program 14 may access the database 13 using the regenerated key information 17. The database management program 14 may include a module that regenerates the key information 17.

以上説明したように、第1の実施の形態の情報処理装置10は、リビジョン情報15と利用者情報16とから鍵情報17を生成し、鍵情報17を用いてデータベース13を暗号化し、暗号化後は鍵情報17を破棄する。これにより、データベース管理プログラム14とデータベース13の利用者とが紐付けられ、正しいリビジョン情報15と利用者情報16との組を知らない限りデータベース13の復号が困難となる。そして、異なるリビジョン情報をもつ他のデータベース管理プログラムからデータベース13にアクセスすることが困難となる。そのため、第三者がデータベース管理プログラム14を他のデータベース管理プログラムに入れ替えてデータベース13にアクセスすることが抑止される。As described above, the information processing device 10 of the first embodiment generates key information 17 from revision information 15 and user information 16, encrypts database 13 using key information 17, and discards key information 17 after encryption. This links the database management program 14 with the user of database 13, making it difficult to decrypt database 13 unless the correct set of revision information 15 and user information 16 is known. This makes it difficult to access database 13 from another database management program with different revision information. This prevents a third party from replacing database management program 14 with another database management program to access database 13.

前述のように、データベース管理プログラム14は、データ保護を強化した特定のデータベース管理プログラムであることがある。例えば、データベース管理プログラム14では、管理情報の変更が禁止されている。その場合、データベース管理プログラム14の入れ替えを抑止することで、第三者がデータベース13からデータを不正に読み出してデータが漏洩するというリスクが低下し、データセキュリティが向上する。As mentioned above, the database management program 14 may be a specific database management program with enhanced data protection. For example, the database management program 14 prohibits changes to management information. In this case, by preventing replacement of the database management program 14, the risk of a third party illegally reading data from the database 13 and leaking the data is reduced, improving data security.

なお、情報処理装置10が、リビジョン情報15および利用者情報16を再取得して鍵情報17を再生成し、再生成された鍵情報17を用いてデータベース13を復号してもよい。これにより、情報処理装置10は、安全にデータベース13にアクセスできる。 In addition, the information processing device 10 may reacquire the revision information 15 and the user information 16, regenerate the key information 17, and decrypt the database 13 using the regenerated key information 17. This allows the information processing device 10 to access the database 13 safely.

また、情報処理装置10は、リビジョン情報15が埋め込まれたデータベース管理プログラム14と、暗号化されたデータベース13と、利用者情報16が記載されたファイルとを含むパッケージデータを出力してもよい。これにより、情報処理装置10は、データ保護を強化しつつデータを他の利用者に提供することができる。この場合に、データベース管理プログラム14が、鍵情報17を再生成してデータベース13を復号するモジュールを含んでいてもよい。これにより、データベース管理プログラム14の制御のもとで、他の利用者もデータベース13に対して許可された範囲の操作を行うことができる。 The information processing device 10 may also output package data including the database management program 14 with the revision information 15 embedded therein, the encrypted database 13, and a file containing the user information 16. This allows the information processing device 10 to provide data to other users while strengthening data protection. In this case, the database management program 14 may include a module that regenerates the key information 17 and decrypts the database 13. This allows other users to perform operations on the database 13 within the permitted range under the control of the database management program 14.

[第2の実施の形態]
次に、第2の実施の形態を説明する。
図2は、第2の実施の形態の情報処理システムの例を示す図である。
[Second embodiment]
Next, a second embodiment will be described.
FIG. 2 illustrates an example of an information processing system according to the second embodiment.

第2の実施の形態の情報処理システムは、ネットワーク30に接続されたデータ処理サーバ31および利用者サーバ32,33を有する。ネットワーク30は、LAN(Local Area Network)を含んでもよく、インターネットを含んでもよい。なお、データ処理サーバ31は、第1の実施の形態の情報処理装置10に対応する。The information processing system of the second embodiment has a data processing server 31 and user servers 32, 33 connected to a network 30. The network 30 may include a LAN (Local Area Network) or the Internet. The data processing server 31 corresponds to the information processing device 10 of the first embodiment.

データ処理サーバ31は、利用者サーバ32,33からの要求に応じて、後述するデータカプセルを生成するサーバコンピュータである。データ処理サーバ31は、データセンタに配置されてもよく、クラウドサーバでもよい。The data processing server 31 is a server computer that generates data capsules (described later) in response to requests from the user servers 32 and 33. The data processing server 31 may be located in a data center or may be a cloud server.

データ処理サーバ31は、ある利用者サーバからデータカプセル作成要求を受信する。データカプセル作成要求では、データカプセルに格納されるデータと、データにアクセスできる利用者やアクセス方法の制限などの管理情報とが指定される。データ処理サーバ31は、データカプセル作成要求に従って、データを保護された状態で流通させるためのデータカプセルを生成して当該利用者サーバに返信する。データカプセルは、暗号化されたデータと、限定されたデータアクセスを提供するDBMSプログラムとを含む。 The data processing server 31 receives a data capsule creation request from a certain user server. The data capsule creation request specifies the data to be stored in the data capsule and management information such as users who can access the data and restrictions on the access method. In accordance with the data capsule creation request, the data processing server 31 generates a data capsule for distributing data in a protected state and returns it to the user server. The data capsule contains encrypted data and a DBMS program that provides limited data access.

利用者サーバ32,33は、データ処理サーバ31のサービスを利用する利用者のサーバコンピュータである。利用者は参加者と呼ばれてもよく、個人でも企業でもよい。利用者サーバ32,33は、データセンタに配置されてもよく、クラウドサーバでもよい。また、利用者サーバ32,33に代えて、クライアントコンピュータが使用されてもよい。 The user servers 32, 33 are server computers of users who use the services of the data processing server 31. The users may be called participants and may be individuals or companies. The user servers 32, 33 may be located in a data center or may be cloud servers. In addition, client computers may be used instead of the user servers 32, 33.

利用者サーバ32,33はそれぞれ、データカプセル作成要求をデータ処理サーバ31に送信し、作成されたデータカプセルをデータ処理サーバ31から受信する。利用者サーバ32,33はそれぞれ、業務上の要求に従って、データカプセルを他の利用者サーバに送信する。例えば、利用者サーバ32が利用者サーバ33にデータカプセルを送信し、利用者サーバ33が利用者サーバ32にデータカプセルを送信することがある。 Each of user servers 32 and 33 sends a data capsule creation request to data processing server 31 and receives the created data capsule from data processing server 31. Each of user servers 32 and 33 sends data capsules to other user servers according to business requirements. For example, user server 32 may send a data capsule to user server 33, and user server 33 may send a data capsule to user server 32.

利用者サーバ32,33はそれぞれ、他の利用者サーバから受信したデータカプセルに含まれるDBMSプログラムを起動することで、そのデータカプセルに保存された初期データに関するデータ処理を行う。ただし、DBMSプログラムは、データカプセルから初期データそのものが読み出されないようにデータアクセスを制限していることがある。また、DBMSプログラムは、初期データそのものに代えて、初期データを一定の処理手順で加工したデータ処理結果を出力することがある。 Each of user servers 32 and 33 performs data processing on the initial data stored in the data capsule by starting the DBMS program contained in the data capsule received from the other user server. However, the DBMS program may restrict data access so that the initial data itself cannot be read from the data capsule. In addition, the DBMS program may output the data processing results obtained by processing the initial data using a certain processing procedure instead of the initial data itself.

また、利用者サーバ32,33はそれぞれ、受信したデータカプセルに追加データを保存して、他の利用者サーバに返信することがある。これにより、データ漏洩リスクを低減しつつ、複数の利用者が保持するデータの間でデータ処理が実現される。 In addition, each of user servers 32 and 33 may store additional data in the received data capsule and send it back to the other user server. This allows data processing between data held by multiple users while reducing the risk of data leakage.

図3は、データ処理サーバのハードウェア例を示すブロック図である。
データ処理サーバ31は、バスに接続されたCPU101、RAM102、HDD103、GPU104、入力インタフェース105、媒体リーダ106および通信インタフェース107を有する。利用者サーバ32,33が、データ処理サーバ31と同様のハードウェアを有してもよい。CPU101は、第1の実施の形態の処理部12に対応する。RAM102またはHDD103は、第1の実施の形態の記憶部11に対応する。
FIG. 3 is a block diagram showing an example of hardware of the data processing server.
The data processing server 31 has a CPU 101, a RAM 102, a HDD 103, a GPU 104, an input interface 105, a media reader 106, and a communication interface 107, all connected via a bus. The user servers 32 and 33 may have the same hardware as the data processing server 31. The CPU 101 corresponds to the processing unit 12 in the first embodiment. The RAM 102 or the HDD 103 corresponds to the storage unit 11 in the first embodiment.

CPU101は、プログラムの命令を実行するプロセッサである。CPU101は、HDD103に記憶されたプログラムやデータの少なくとも一部をRAM102にロードし、プログラムを実行する。データ処理サーバ31は、複数のプロセッサを有してもよい。プロセッサの集合が、マルチプロセッサまたは単に「プロセッサ」と呼ばれてもよい。The CPU 101 is a processor that executes program instructions. The CPU 101 loads at least a portion of the programs and data stored in the HDD 103 into the RAM 102 and executes the programs. The data processing server 31 may have multiple processors. A collection of processors may be called a multiprocessor or simply a "processor."

RAM102は、CPU101で実行されるプログラムおよびCPU101で演算に使用されるデータを一時的に記憶する揮発性半導体メモリである。データ処理サーバ31は、RAM以外の種類の揮発性メモリを有してもよい。 RAM 102 is a volatile semiconductor memory that temporarily stores programs executed by CPU 101 and data used in calculations by CPU 101. Data processing server 31 may have a type of volatile memory other than RAM.

HDD103は、OS(Operating System)、ミドルウェア、アプリケーションソフトウェアなどのソフトウェアのプログラム、および、データを記憶する不揮発性ストレージである。データ処理サーバ31は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の不揮発性ストレージを有してもよい。The HDD 103 is a non-volatile storage that stores software programs such as an OS (Operating System), middleware, and application software, as well as data. The data processing server 31 may also have other types of non-volatile storage, such as a flash memory or an SSD (Solid State Drive).

GPU104は、CPU101と連携して画像処理を行い、データ処理サーバ31に接続された表示装置111に画像を出力するプロセッサである。表示装置111は、例えば、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイまたはプロジェクタである。なお、データ処理サーバ31に、プリンタなどの他の種類の出力デバイスが接続されてもよい。The GPU 104 is a processor that performs image processing in cooperation with the CPU 101 and outputs images to a display device 111 connected to the data processing server 31. The display device 111 is, for example, a CRT (Cathode Ray Tube) display, a liquid crystal display, an organic EL (Electro Luminescence) display, or a projector. Note that other types of output devices, such as a printer, may also be connected to the data processing server 31.

入力インタフェース105は、データ処理サーバ31に接続された入力デバイス112から入力信号を受け付ける。入力デバイス112は、例えば、マウス、タッチパネルまたはキーボードである。データ処理サーバ31に複数の入力デバイスが接続されてもよい。The input interface 105 receives an input signal from an input device 112 connected to the data processing server 31. The input device 112 is, for example, a mouse, a touch panel, or a keyboard. Multiple input devices may be connected to the data processing server 31.

媒体リーダ106は、記録媒体113に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体113は、例えば、磁気ディスク、光ディスクまたは半導体メモリである。磁気ディスクには、フレキシブルディスク(FD:Flexible Disk)およびHDDが含まれる。光ディスクには、CD(Compact Disc)およびDVD(Digital Versatile Disc)が含まれる。媒体リーダ106は、記録媒体113から読み取られたプログラムおよびデータを、RAM102やHDD103などの他の記録媒体にコピーする。読み取られたプログラムは、CPU101によって実行されることがある。The media reader 106 is a reading device that reads programs and data recorded on the recording medium 113. The recording medium 113 is, for example, a magnetic disk, an optical disk, or a semiconductor memory. Magnetic disks include flexible disks (FDs) and HDDs. Optical disks include compact discs (CDs) and digital versatile discs (DVDs). The media reader 106 copies the programs and data read from the recording medium 113 to other recording media such as the RAM 102 and the HDD 103. The read programs may be executed by the CPU 101.

記録媒体113は、可搬型記録媒体であってもよい。記録媒体113は、プログラムおよびデータの配布に用いられることがある。また、記録媒体113およびHDD103が、コンピュータ読み取り可能な記録媒体と呼ばれてもよい。The recording medium 113 may be a portable recording medium. The recording medium 113 may be used for distributing programs and data. The recording medium 113 and the HDD 103 may also be referred to as computer-readable recording media.

通信インタフェース107は、ネットワーク30を介して利用者サーバ32,33と通信する。通信インタフェース107は、スイッチやルータなどの有線通信装置に接続される有線通信インタフェースでもよいし、基地局やアクセスポイントなどの無線通信装置に接続される無線通信インタフェースでもよい。The communication interface 107 communicates with the user servers 32 and 33 via the network 30. The communication interface 107 may be a wired communication interface connected to a wired communication device such as a switch or a router, or a wireless communication interface connected to a wireless communication device such as a base station or an access point.

次に、データ処理サーバ31によって生成されるデータカプセルについて説明する。
図4は、データカプセルの構造例を示すブロック図である。
データカプセル120は、顧客番号ファイル121、構成ファイル122、管理情報ファイル123およびデータファイル124を含む。また、データカプセル120は、DBMSプログラム131、消去プログラム132およびコンテナプログラム133を含む。なお、管理情報ファイル123およびデータファイル124は、第1の実施の形態のデータベース13に対応する。DBMSプログラム131は、第1の実施の形態のデータベース管理プログラム14に対応する。
Next, the data capsule generated by the data processing server 31 will be described.
FIG. 4 is a block diagram showing an example of the structure of a data capsule.
The data capsule 120 includes a customer number file 121, a configuration file 122, a management information file 123, and a data file 124. The data capsule 120 also includes a DBMS program 131, an erasure program 132, and a container program 133. The management information file 123 and the data file 124 correspond to the database 13 in the first embodiment. The DBMS program 131 corresponds to the database management program 14 in the first embodiment.

顧客番号ファイル121は、顧客番号が記載されるファイルである。顧客番号は、第1の実施の形態の利用者情報16に対応する。この顧客番号は、データカプセル120の作成をデータ処理サーバ31に要求した利用者、すなわち、データベースに初期データを格納した利用者の識別番号である。ただし、顧客番号が、データカプセル120の転送先の利用者の識別番号であってもよい。顧客番号ファイル121は暗号化されない。 The customer number file 121 is a file in which the customer number is recorded. The customer number corresponds to the user information 16 in the first embodiment. This customer number is the identification number of the user who requested the data processing server 31 to create the data capsule 120, i.e., the user who stored the initial data in the database. However, the customer number may also be the identification number of the user to whom the data capsule 120 is to be transferred. The customer number file 121 is not encrypted.

構成ファイル122は、データカプセル120の中での管理情報ファイル123の位置を示すファイルパスが記載されるファイルである。構成ファイル122は暗号化される。
管理情報ファイル123は、データベースへのアクセスの制御に用いられる管理情報が記載されるファイルである。管理情報ファイル123は、データファイル124のファイルパスを含む。また、管理情報ファイル123は、利用者定義125、権限定義126、データ構造定義127およびプロシジャ定義128を含む。
The configuration file 122 is a file in which a file path indicating the location of the management information file 123 in the data capsule 120 is written. The configuration file 122 is encrypted.
The management information file 123 is a file in which management information used for controlling access to the database is written. The management information file 123 includes the file paths of the data files 124. The management information file 123 also includes a user definition 125, an authority definition 126, a data structure definition 127, and a procedure definition 128.

利用者定義125は、データベースにアクセスできる利用者を示す。利用者は、利用者名で識別されてもよく、顧客番号で識別されてもよく、利用者サーバのサーバ名で識別されてもよく、利用者サーバの通信アドレスで識別されてもよい。権限定義126は、各利用者に対して許容するデータ操作の種類を示す。例えば、各関係テーブルに対するデータ検索、データ挿入、データ更新およびデータ削除それぞれの可否が規定される。 User definition 125 indicates the users who can access the database. The users may be identified by their user name, customer number, server name of the user's server, or communication address of the user's server. Authority definition 126 indicates the types of data operations permitted for each user. For example, it specifies whether data search, data insertion, data update, and data deletion are each permitted for each relational table.

データ構造定義127は、関係データベースのテーブル構造を示す。なお、データカプセル120は関係データベースを使用しているが、ツリー型データベースやネットワーク型データベースなどの非関係データベースを使用してもよい。The data structure definition 127 indicates the table structure of a relational database. Note that although the data capsule 120 uses a relational database, a non-relational database such as a tree database or a network database may also be used.

プロシジャ定義128は、ストアドプロシジャを示す。ストアドプロシジャは、単一のSQL文で記述することが難しいような一連のデータ処理を記述したプログラムである。ストアドプロシジャは、SQLを拡張したプロシジャ記述言語を用いて記述される。SQL文に代えてストアドプロシジャ呼び出し命令が受信されると、そのストアドプロシジャが実行される。ストアドプロシジャを適切に利用することで、データベースに含まれるデータそのものがデータカプセル120の外部に出力されることが抑止される。 Procedure definition 128 indicates a stored procedure. A stored procedure is a program that describes a series of data processing operations that are difficult to describe in a single SQL statement. A stored procedure is written using a procedure description language that extends SQL. When a stored procedure call command is received in place of an SQL statement, the stored procedure is executed. By using a stored procedure appropriately, the data contained in the database itself is prevented from being output outside the data capsule 120.

管理情報ファイル123は暗号化される。暗号化の単位は、管理情報ファイル123全体のように疎粒度でもよいし、利用者定義125や権限定義126のように管理情報ファイル123の各項目を単位とする細粒度でもよい。The management information file 123 is encrypted. The unit of encryption may be coarse-grained, such as the entire management information file 123, or fine-grained, such as user definition 125 or authority definition 126, with each item of the management information file 123 as a unit.

データファイル124は、関係データベースのテーブルのレコードを含むファイルである。データファイル124は暗号化される。暗号化の単位は、データファイル124全体のように疎粒度でもよいし、テーブル単位やレコード単位のように細粒度でもよい。 Data file 124 is a file that contains records of tables in a relational database. Data file 124 is encrypted. The unit of encryption may be coarse-grained, such as the entire data file 124, or fine-grained, such as table-by-table or record-by-record.

DBMSプログラム131は、通常のDBMSプログラムと比べて機能が制限された制限版のDBMSプログラムである。DBMSプログラム131は、管理情報ファイル123を変更する機能をもたないことがある。また、DBMSプログラム131は、データ検索、データ挿入、データ更新およびデータ削除のうち、データ更新やデータ削除などの一部のデータ操作を実行する機能をもたないことがある。 DBMS program 131 is a limited version of a DBMS program with limited functionality compared to a normal DBMS program. DBMS program 131 may not have the functionality to change management information file 123. Furthermore, DBMS program 131 may not have the functionality to execute some of the data operations, such as data update and data deletion, among data search, data insertion, data update, and data deletion.

DBMSプログラム131には、リビジョン番号134が埋め込まれている。リビジョン番号134は、DBMSプログラム131を識別する識別番号である。データ処理サーバ31は、新しい案件のデータカプセルを発行する毎に、新しいリビジョン番号を採番して制限版のDBMSプログラムに埋め込む。 A revision number 134 is embedded in the DBMS program 131. The revision number 134 is an identification number that identifies the DBMS program 131. Each time the data processing server 31 issues a data capsule for a new case, it assigns a new revision number and embeds it in the restricted version of the DBMS program.

DBMSプログラム131は、鍵生成モジュール135およびデータアクセスモジュール136を含む。鍵生成モジュール135は、構成ファイル122および管理情報ファイル123の復号と、データファイル124の復号および再暗号化のための暗号鍵を生成する。第2の実施の形態の暗号鍵は、共通鍵暗号方式の共通鍵である。ただし、暗号鍵が、公開鍵暗号方式の公開鍵および秘密鍵であってもよい。 The DBMS program 131 includes a key generation module 135 and a data access module 136. The key generation module 135 generates an encryption key for decrypting the configuration file 122 and the management information file 123, and for decrypting and re-encrypting the data file 124. The encryption key in the second embodiment is a common key in a common key cryptosystem. However, the encryption key may also be a public key and a private key in a public key cryptosystem.

鍵生成モジュール135は、DBMSプログラム131に埋め込まれたリビジョン番号134と、顧客番号ファイル121に記載された顧客番号とから、特定の鍵生成アルゴリズムに従って暗号鍵を生成する。この暗号鍵は、データ処理サーバ31がデータカプセル120を生成する際に使用した暗号鍵と同一である。データカプセル120の生成時に使用された暗号鍵は保存されず、データカプセル120の使用時に再生成される。ただし、鍵生成モジュール135は、自身で暗号鍵を生成する代わりに、リビジョン番号134と顧客番号をデータ処理サーバ31に送信して暗号鍵の再生成を依頼し、データ処理サーバ31で再生成された暗号鍵を受信してもよい。The key generation module 135 generates an encryption key according to a specific key generation algorithm from the revision number 134 embedded in the DBMS program 131 and the customer number written in the customer number file 121. This encryption key is the same as the encryption key used by the data processing server 31 when generating the data capsule 120. The encryption key used when generating the data capsule 120 is not stored, but is regenerated when the data capsule 120 is used. However, instead of generating an encryption key by itself, the key generation module 135 may send the revision number 134 and the customer number to the data processing server 31 to request regeneration of the encryption key, and receive the encryption key regenerated by the data processing server 31.

データアクセスモジュール136は、データファイル124に対する制限されたアクセスを利用者に提供する。データアクセスモジュール136は、利用者から要求メッセージを受信し、利用者定義125および権限定義126に基づいて、要求メッセージの内容が利用者の権限の範囲内であることを確認する。そして、データアクセスモジュール136は、データファイル124に含まれる関係テーブルに対して、要求メッセージに含まれるSQL文または要求メッセージが指定するストアドプロシジャを実行する。The data access module 136 provides users with limited access to the data file 124. The data access module 136 receives a request message from the user and verifies that the contents of the request message are within the scope of the user's authority based on the user definition 125 and the authority definition 126. The data access module 136 then executes the SQL statement contained in the request message or the stored procedure specified by the request message against the relational tables included in the data file 124.

上記のデータ処理のため、データアクセスモジュール136は、鍵生成モジュール135が再生成する暗号鍵を用いて復号および再暗号化を行う。データアクセスモジュール136は、DBMSプログラム131の起動時に、構成ファイル122、管理情報ファイル123およびデータファイル124の全体を復号してもよい。また、データアクセスモジュール136は、関係テーブルのアクセス時に、管理情報ファイル123およびデータファイル124の中の使用する部分を復号してもよい。また、データアクセスモジュール136は、関係テーブルの更新時に、データファイル124を再暗号化してもよい。For the above data processing, the data access module 136 performs decryption and re-encryption using the encryption key regenerated by the key generation module 135. The data access module 136 may decrypt the entire configuration file 122, management information file 123, and data file 124 when the DBMS program 131 is started. The data access module 136 may also decrypt the portions of the management information file 123 and data file 124 that are to be used when accessing a relational table. The data access module 136 may also re-encrypt the data file 124 when updating a relational table.

データカプセル120の生成時、データ処理サーバ31は、機能が制限されていない通常版のDBMSプログラムを用いて、構成ファイル122、管理情報ファイル123およびデータファイル124を生成して暗号化する。データ処理サーバ31は、データカプセル作成要求に従って、通常版のDBMSに管理情報やデータを入力する。データ処理サーバ31は、構成ファイル122、管理情報ファイル123およびデータファイル124が生成された後、通常版のDBMSプログラムをDBMSプログラム131に入れ替える。When generating the data capsule 120, the data processing server 31 generates and encrypts the configuration file 122, management information file 123, and data file 124 using a standard version of the DBMS program with no functional restrictions. The data processing server 31 inputs management information and data into the standard version of the DBMS in accordance with the data capsule creation request. After the configuration file 122, management information file 123, and data file 124 have been generated, the data processing server 31 replaces the standard version of the DBMS program with the DBMS program 131.

消去プログラム132は、コンテナプログラム133からの指示に応じて、データ漏洩を抑止するため、管理情報ファイル123およびデータファイル124を削除するプログラムである。消去プログラム132は、先に管理情報ファイル123を削除し、その後にデータファイル124を削除する。管理情報ファイル123およびデータファイル124の削除は、復元不能にするため、管理情報ファイル123およびデータファイル124が記憶された記憶領域に特定のビットを上書きすることで行われる。The erasure program 132 is a program that deletes the management information file 123 and the data file 124 in response to an instruction from the container program 133 to prevent data leakage. The erasure program 132 first deletes the management information file 123, and then deletes the data file 124. The management information file 123 and the data file 124 are deleted by overwriting specific bits in the storage area in which the management information file 123 and the data file 124 are stored to make them unrecoverable.

コンテナプログラム133は、データカプセル120を単一ファイルにカプセル化するための代表プログラムである。データカプセル120を起動しようとすると、コンテナプログラム133が最初に実行される。コンテナプログラム133は、起動時に、顧客番号とパスワードを用いた利用者認証を行う。コンテナプログラム133は、顧客番号と正解のパスワードの対応を示すアカウント情報を保持してもよい。利用者認証に成功すると、コンテナプログラム133は、DBMSプログラム131を起動する。 Container program 133 is a representative program for encapsulating data capsule 120 into a single file. When attempting to start data capsule 120, container program 133 is executed first. When container program 133 is started, it performs user authentication using a customer number and password. Container program 133 may hold account information indicating the correspondence between customer numbers and correct passwords. If user authentication is successful, container program 133 starts DBMS program 131.

また、コンテナプログラム133は、データカプセル120が不正に使用されていないことを継続的に確認する状態確認を開始する。コンテナプログラム133は、データカプセル120の不正使用の可能性のある事象を検出すると、データカプセル120を無効化することを決定し、消去プログラム132を起動する。 The container program 133 also initiates a status check to continuously verify that the data capsule 120 is not being used unauthorizedly. If the container program 133 detects an event that may indicate unauthorized use of the data capsule 120, it decides to disable the data capsule 120 and launches the erasure program 132.

状態確認として、コンテナプログラム133は、起動後にデータ処理サーバ31と定期的に通信する。ただし、コンテナプログラム133の通信相手が、データ処理サーバ31以外の特定のサーバであってもよい。通信不能が検出された場合、コンテナプログラム133は、データカプセル120の無効化を決定する。また、コンテナプログラム133は、現在時刻が有効期限を経過していないことを確認する。コンテナプログラム133は、データカプセル120の有効期限の情報を保持してもよい。現在時刻が有効期限を徒過した場合、コンテナプログラム133は、データカプセル120の無効化を決定する。 To check the status, the container program 133 periodically communicates with the data processing server 31 after startup. However, the communication partner of the container program 133 may be a specific server other than the data processing server 31. If an inability to communicate is detected, the container program 133 decides to disable the data capsule 120. The container program 133 also confirms that the current time has not passed the expiration date. The container program 133 may retain information about the expiration date of the data capsule 120. If the current time has passed the expiration date, the container program 133 decides to disable the data capsule 120.

また、コンテナプログラム133は、データカプセル120に対する利用者認証の結果を監視して不正侵入を検出する。複数回の利用者認証の結果が特定のパターンに該当する場合、コンテナプログラム133は、不正侵入の可能性があると判断してデータカプセル120の無効化を決定する。不正侵入のパターンは、例えば、時間T1以内に利用者認証の失敗回数が閾値を超え、それに続く時間T2以内に利用者認証が成功したことである。状態確認によって、許可されていない者にデータカプセル120が転送された可能性や、許可されていない者がデータカプセル120に不正侵入した可能性が検出される。 The container program 133 also detects unauthorized intrusion by monitoring the results of user authentication for the data capsule 120. If the results of multiple user authentications match a specific pattern, the container program 133 determines that there is a possibility of unauthorized intrusion and decides to disable the data capsule 120. An example of an unauthorized intrusion pattern is when the number of user authentication failures exceeds a threshold within a time T1, followed by successful user authentication within the following time T2. The status check detects the possibility that the data capsule 120 has been transferred to an unauthorized person, or that an unauthorized person has illegally intruded into the data capsule 120.

次に、データ処理サーバ31の機能について説明する。
図5は、データ処理サーバのソフトウェア例を示すブロック図である。
データ処理サーバ31は、管理テーブル記憶部141およびプログラム記憶部142を有する。これらの記憶部は、例えば、RAM102またはHDD103を用いて実装される。また、データ処理サーバ31は、要求受信部143、案件管理部144、鍵生成部145、データ格納部146、ビルド部147および監視部148を有する。これらの処理部は、例えば、CPU101およびプログラムを用いて実装される。
Next, the functions of the data processing server 31 will be described.
FIG. 5 is a block diagram illustrating an example of software for the data processing server.
The data processing server 31 has a management table storage unit 141 and a program storage unit 142. These storage units are implemented, for example, using the RAM 102 or the HDD 103. The data processing server 31 also has a request receiving unit 143, a case management unit 144, a key generating unit 145, a data storage unit 146, a build unit 147, and a monitoring unit 148. These processing units are implemented, for example, using the CPU 101 and a program.

管理テーブル記憶部141は、カプセル管理テーブルを記憶する。カプセル管理テーブルは、データカプセルを作成する案件毎に、制限版のDBMSのリビジョン番号とデータベースに初期データを登録する利用者の顧客番号とを対応付ける。The management table storage unit 141 stores a capsule management table. The capsule management table associates, for each case for which a data capsule is to be created, the revision number of a restricted version of the DBMS with the customer number of the user who registers the initial data in the database.

プログラム記憶部142は、通常版のDBMSプログラムを記憶する。また、プログラム記憶部142は、制限版のDBMSプログラムのソースコードと、データカプセルに組み込まれる消去プログラムおよびコンテナプログラムとを記憶する。The program storage unit 142 stores the normal version of the DBMS program. The program storage unit 142 also stores the source code of the restricted version of the DBMS program, as well as an erasure program and a container program to be incorporated into the data capsule.

要求受信部143は、利用者サーバ32,33と通信する。要求受信部143は、利用者サーバ32,33に対してWebインタフェースを提供し、利用者サーバ32,33の何れかからデータカプセル作成要求を受信する。The request receiving unit 143 communicates with the user servers 32 and 33. The request receiving unit 143 provides a web interface to the user servers 32 and 33 and receives a data capsule creation request from either the user servers 32 and 33.

要求受信部143は、データカプセル作成要求に含まれる顧客番号を案件管理部144に通知し、リビジョン番号および暗号鍵を案件管理部144から取得する。要求受信部143は、暗号鍵と、データカプセル作成要求に含まれる利用者定義、権限定義、データ構造定義、プロシジャ定義およびデータとを、データ格納部146に通知する。要求受信部143は、リビジョン番号および顧客番号をビルド部147に通知し、生成されたデータカプセルをビルド部147から取得して利用者サーバに返信する。The request receiving unit 143 notifies the case management unit 144 of the customer number included in the data capsule creation request, and obtains the revision number and encryption key from the case management unit 144. The request receiving unit 143 notifies the data storage unit 146 of the encryption key, and the user definition, authority definition, data structure definition, procedure definition, and data included in the data capsule creation request. The request receiving unit 143 notifies the build unit 147 of the revision number and customer number, obtains the generated data capsule from the build unit 147, and returns it to the user server.

案件管理部144は、管理テーブル記憶部141に記憶されたカプセル管理テーブルを参照して、新しい案件で使用される新しいリビジョン番号を採番する。案件管理部144は、リビジョン番号と顧客番号とを対応付けてカプセル管理テーブルに登録する。案件管理部144は、リビジョン番号および顧客番号を鍵生成部145に通知し、暗号鍵を鍵生成部145から取得し、暗号鍵およびリビジョン番号を要求受信部143に通知する。The case management unit 144 refers to the capsule management table stored in the management table memory unit 141 and assigns a new revision number to be used in the new case. The case management unit 144 associates the revision number with the customer number and registers them in the capsule management table. The case management unit 144 notifies the key generation unit 145 of the revision number and customer number, obtains the encryption key from the key generation unit 145, and notifies the request receiving unit 143 of the encryption key and revision number.

鍵生成部145は、特定の鍵生成アルゴリズムに従って、顧客番号およびリビジョン番号から暗号鍵を生成する。例えば、鍵生成部145は、顧客番号とリビジョン番号とを結合した文字列を生成し、生成された文字列をハッシュ関数などの関数に入力し、関数が出力するビット列を暗号鍵として採用する。The key generation unit 145 generates an encryption key from the customer number and the revision number according to a specific key generation algorithm. For example, the key generation unit 145 generates a character string by combining the customer number and the revision number, inputs the generated character string to a function such as a hash function, and uses the bit string output by the function as the encryption key.

データ格納部146は、プログラム記憶部142に記憶された通常版のDBMSプログラムを用いて、利用者定義、権限定義およびプロシジャ定義を管理情報に登録する。また、データ格納部146は、通常版のDBMSプログラムを用いて、データ構造定義を管理情報に登録し、データを関係テーブルに登録する。このとき、データ格納部146は、要求受信部143から取得する暗号鍵を用いて、管理情報および関係テーブルを暗号化する。これにより、構成ファイル、管理情報ファイルおよびデータファイルが生成される。The data storage unit 146 uses the standard version of the DBMS program stored in the program storage unit 142 to register user definitions, authority definitions, and procedure definitions in the management information. The data storage unit 146 also uses the standard version of the DBMS program to register data structure definitions in the management information and register data in the relationship table. At this time, the data storage unit 146 encrypts the management information and the relationship table using an encryption key obtained from the request receiving unit 143. As a result, a configuration file, a management information file, and a data file are generated.

ビルド部147は、プログラム記憶部142に記憶された制限版のDBMSプログラムのソースコードに、要求受信部143から取得するリビジョン番号を埋め込み、制限版のDBMSプログラムをビルドする。ビルドには、ソースコードのコンパイルやライブラリのリンクが含まれる。また、ビルド部147は、要求受信部143から取得する顧客番号を記載した顧客番号ファイルを生成する。The build unit 147 embeds the revision number obtained from the request receiving unit 143 in the source code of the restricted version of the DBMS program stored in the program storage unit 142, and builds the restricted version of the DBMS program. The build includes compiling the source code and linking the libraries. The build unit 147 also generates a customer number file that lists the customer number obtained from the request receiving unit 143.

ビルド部147は、消去プログラムおよびコンテナプログラムをプログラム記憶部142から読み出す。ビルド部147は、顧客番号ファイル、構成ファイル、管理情報ファイル、データファイル、制限版のDBMSプログラム、消去プログラムおよびコンテナプログラムをカプセル化し、データカプセルを生成する。データカプセルは、ディレクトリ階層を保持したまま記憶装置上のファイル群を単一ファイルにまとめたイメージファイルに相当する。ビルド部147は、データカプセルを要求受信部143に提供する。 The build unit 147 reads the erasure program and the container program from the program storage unit 142. The build unit 147 encapsulates the customer number file, configuration file, management information file, data file, restricted version of the DBMS program, the erasure program, and the container program to generate a data capsule. The data capsule corresponds to an image file that combines a group of files on a storage device into a single file while retaining the directory hierarchy. The build unit 147 provides the data capsule to the request receiving unit 143.

監視部148は、利用者サーバ32,33に提供されたデータカプセルと通信し、それらデータカプセルを追跡する。監視部148は、制限版のDBMSプログラムが実行されている間、コンテナプログラムから定期的にメッセージを受信し、応答メッセージを返信する。なお、監視部148がデータ処理サーバ31と異なるサーバに実装されてもよい。The monitoring unit 148 communicates with the data capsules provided to the user servers 32 and 33 and tracks those data capsules. While the restricted version of the DBMS program is being executed, the monitoring unit 148 periodically receives messages from the container program and returns response messages. Note that the monitoring unit 148 may be implemented in a server different from the data processing server 31.

図6は、カプセル管理テーブルの例を示す図である。
カプセル管理テーブル151は、管理テーブル記憶部141に記憶される。カプセル管理テーブル151は、案件番号、リビジョン番号、顧客名、顧客番号、案件名、作成日および有効期限を対応付ける。案件番号は、新しいデータカプセルを提供する案件を識別する識別番号である。リビジョン番号は、制限版のDBMSプログラムを識別する識別番号であり、案件毎に採番される。顧客名は、データベースに初期データを登録する利用者の名称である。顧客番号は、当該利用者に事前に付与される識別番号である。
FIG. 6 is a diagram showing an example of a capsule management table.
Capsule management table 151 is stored in management table storage unit 141. Capsule management table 151 associates case number, revision number, customer name, customer number, case name, creation date, and expiration date. The case number is an identification number that identifies the case for which a new data capsule is provided. The revision number is an identification number that identifies a restricted version of the DBMS program, and is assigned for each case. The customer name is the name of the user who registers initial data in the database. The customer number is an identification number that is assigned to the user in advance.

案件名は、データカプセルの用途を示す名称である。作成日は、データ処理サーバ31がデータカプセルを生成した日付である。有効期限は、生成されたデータカプセルを使用可能な期限である。有効期限を過ぎたデータカプセルは無効化され、データベースが消去される。有効期限は、データカプセル作成要求において利用者から指定される。 The case name is a name indicating the purpose of the data capsule. The creation date is the date on which the data processing server 31 generated the data capsule. The expiration date is the date by which the generated data capsule can be used. Data capsules that have passed their expiration date are invalidated and the database is erased. The expiration date is specified by the user in the data capsule creation request.

図7は、暗号鍵の生成例を示す図である。
鍵生成部145は、リビジョン番号152および顧客番号153を受け付ける。鍵生成部145は、リビジョン番号152および顧客番号153を鍵生成アルゴリズム154に入力して、暗号鍵155を生成する。例えば、鍵生成部145は、リビジョン番号152と顧客番号153とを結合して鍵生成アルゴリズム154に入力する。
FIG. 7 is a diagram illustrating an example of generation of an encryption key.
Key generation unit 145 accepts revision number 152 and customer number 153. Key generation unit 145 inputs revision number 152 and customer number 153 to key generation algorithm 154 to generate encryption key 155. For example, key generation unit 145 combines revision number 152 and customer number 153 and inputs them to key generation algorithm 154.

制限版のDBMSプログラムは、制限版のDBMSプログラムに埋め込まれたリビジョン番号152と顧客番号ファイルに記載された顧客番号153とを、鍵生成アルゴリズム154に入力して、暗号鍵155を再生成する。ただし、制限版のDBMSプログラムは、リビジョン番号152および顧客番号153を出力して、制限版のDBMSプログラムの外部モジュールに暗号鍵155の再生成を依頼してもよい。The restricted version DBMS program inputs the revision number 152 embedded in the restricted version DBMS program and the customer number 153 written in the customer number file to the key generation algorithm 154 to regenerate the encryption key 155. However, the restricted version DBMS program may output the revision number 152 and the customer number 153 to request an external module of the restricted version DBMS program to regenerate the encryption key 155.

次に、データカプセルを生成するデータ処理サーバ31の処理手順と、データカプセルを利用する利用者サーバ32の処理手順とを説明する。
図8は、データカプセル生成の手順例を示すフローチャートである。
Next, a processing procedure of the data processing server 31 that generates a data capsule and a processing procedure of the user server 32 that uses the data capsule will be described.
FIG. 8 is a flowchart showing an example of a procedure for generating a data capsule.

(S10)要求受信部143は、データカプセル作成要求を受信する。
(S11)案件管理部144は、カプセル管理テーブル151を参照して新しいリビジョン番号を採番する。案件管理部144は、データカプセル作成要求に含まれる顧客番号と共にリビジョン番号をカプセル管理テーブル151に記録する。
(S10) The request receiving unit 143 receives a data capsule creation request.
(S11) The case management unit 144 assigns a new revision number by referring to the capsule management table 151. The case management unit 144 records the revision number in the capsule management table 151 together with the customer number included in the data capsule creation request.

(S12)鍵生成部145は、リビジョン番号と顧客番号とから暗号鍵を生成する。
(S13)データ格納部146は、通常版のDBMSプログラムを用いて、データカプセル作成要求に含まれる利用者定義、権限定義およびプロシジャ定義をデータベースに登録する。データ格納部146は、暗号鍵を用いてこれら定義情報を暗号化する。
(S12) The key generation unit 145 generates an encryption key from the revision number and the customer number.
(S13) The data storage unit 146 uses the normal version of the DBMS program to register the user definition, authority definition, and procedure definition included in the data capsule creation request in the database. The data storage unit 146 encrypts this definition information using an encryption key.

(S14)データ格納部146は、通常版のDBMSプログラムを用いて、データ構造定義およびデータ本体をデータベースに登録する。データ格納部146は、暗号鍵を用いてこれら定義情報およびデータを暗号化する。(S14) The data storage unit 146 uses the standard version of the DBMS program to register the data structure definition and the data body in the database. The data storage unit 146 encrypts the definition information and data using an encryption key.

(S15)データ格納部146は、上記で使用した暗号鍵を破棄する。
(S16)ビルド部147は、制限版のDBMSプログラムのソースコードにリビジョン番号を埋め込み、リビジョン番号をもつ制限版のDBMSプログラムをビルドする。
(S15) The data storage unit 146 discards the encryption key used above.
(S16) The build unit 147 embeds the revision number in the source code of the restricted version of the DBMS program, and builds the restricted version of the DBMS program having the revision number.

(S17)ビルド部147は、通常版のDBMSプログラムにより生成された構成ファイル、管理情報ファイルおよびデータファイルと、制限版のDBMSプログラムとに、顧客番号ファイル、消去プログラムおよびコンテナプログラムを更に追加する。ビルド部147は、これらファイルおよびプログラムをカプセル化してデータカプセルを生成する。 (S17) The build unit 147 further adds a customer number file, an erasure program, and a container program to the configuration file, management information file, and data file generated by the normal version of the DBMS program, and to the restricted version of the DBMS program. The build unit 147 encapsulates these files and programs to generate a data capsule.

(S18)要求受信部143は、生成されたデータカプセルを送信する。
図9は、データカプセル利用の手順例を示すフローチャートである。
(S20)利用者サーバ32は、コンテナプログラム133を起動し、顧客番号およびパスワードをコンテナプログラム133に入力して利用者認証を行う。
(S18) The request receiver 143 transmits the generated data capsule.
FIG. 9 is a flowchart showing an example of a procedure for using a data capsule.
(S20) The user server 32 starts the container program 133 and inputs the customer number and password into the container program 133 to perform user authentication.

(S21)利用者サーバ32は、コンテナプログラム133により、データカプセル120を無効化するような事象を検出したか判断する。無効化事象には、データ処理サーバ31との定期的な通信が失敗したこと、不正侵入が疑われる利用者認証結果が発生したこと、および、有効期限を徒過したことが含まれる。無効化事象が検出された場合はステップS28に処理が進み、それ以外の場合にはステップS22に処理が進む。 (S21) The user server 32 determines whether the container program 133 has detected an event that would invalidate the data capsule 120. Invalidation events include failure of periodic communication with the data processing server 31, the occurrence of a user authentication result that suggests unauthorized intrusion, and expiration of the expiration date. If an invalidation event is detected, processing proceeds to step S28, otherwise processing proceeds to step S22.

(S22)利用者サーバ32は、DBMSプログラム131を起動する。
(S23)利用者サーバ32は、DBMSプログラム131に埋め込まれたリビジョン番号を抽出し、顧客番号ファイル121から顧客番号を抽出する。
(S 22 ) The user server 32 starts the DBMS program 131 .
(S 23 ) The user server 32 extracts the revision number embedded in the DBMS program 131 , and extracts the customer number from the customer number file 121 .

(S24)利用者サーバ32は、DBMSプログラム131により、抽出されたリビジョン番号および顧客番号から暗号鍵を生成する。
(S25)利用者サーバ32は、DBMSプログラム131により、管理情報ファイル123を復号して、利用者サーバ32の利用者の権限を確認する。
(S24) The user server 32 generates an encryption key from the extracted revision number and customer number using the DBMS program 131.
(S 25 ) The user server 32 decrypts the management information file 123 using the DBMS program 131 , and confirms the authority of the user of the user server 32 .

(S26)利用者サーバ32は、DBMSプログラム131により、データファイル124を復号して、利用者から指定されたクエリまたはストアドプロシジャを実行する。
(S27)利用者サーバ32は、DBMSプログラム131によって生成された暗号鍵を破棄する。そして、データカプセル利用が終了する。
(S26) The user server 32 decrypts the data file 124 using the DBMS program 131, and executes the query or stored procedure specified by the user.
(S27) The user server 32 discards the encryption key generated by the DBMS program 131. Then, use of the data capsule ends.

(S28)利用者サーバ32は、消去プログラム132を起動し、データカプセル120から管理情報ファイル123およびデータファイル124を消去する。
以上説明したように、第2の実施の形態のデータ処理サーバ31は、利用者からの要求に応じてデータカプセルを生成して提供する。データカプセルは、制限版のDBMSプログラムと暗号化されたデータベースとを含む。これにより、データベースからデータを読み出すことができる利用者が限定されると共に、ストアドプロシジャによってデータそのものをデータカプセルの外部に出力せずにデータ処理が行われる。そのため、複数の利用者は、データ漏洩リスクを低減しつつ、業務に使用するデータを受け渡すことができる。
(S 28 ) The user server 32 starts the erasure program 132 and erases the management information file 123 and the data file 124 from the data capsule 120 .
As described above, the data processing server 31 of the second embodiment generates and provides a data capsule in response to a request from a user. The data capsule includes a restricted version of a DBMS program and an encrypted database. This limits the users who can read data from the database, and the stored procedure processes the data without outputting the data itself outside the data capsule. This allows multiple users to transfer data used in business while reducing the risk of data leakage.

また、データベースを復号するための暗号鍵は保存されず、データベースを利用する毎に、制限版のDBMSプログラムに埋め込まれたリビジョン番号とデータベースの顧客番号とから生成される。これにより、制限版のDBMSプログラムとデータベースとが紐付けられ、正しいDBMSプログラムを使用せずにデータベースを復号することが困難となる。そのため、第三者がDBMSプログラムを入れ替えることでデータベースの保護を弱くするという攻撃が困難となり、データ漏洩リスクが低下する。 In addition, the encryption key for decrypting the database is not stored, but is generated each time the database is used from the revision number embedded in the restricted version of the DBMS program and the database's customer number. This links the restricted version of the DBMS program to the database, making it difficult to decrypt the database without using the correct DBMS program. This makes it more difficult for a third party to weaken the protection of the database by replacing the DBMS program, reducing the risk of data leakage.

また、データカプセルは、データカプセルを無効化すべき事象を検出するコンテナプログラムと、データベースを消去することでデータカプセルを無効化する消去プログラムとを含む。コンテナプログラムは、事象として、データカプセルを追跡するサーバとの通信失敗、有効期限が切れたこと、および、利用者認証の不正な突破を検出する。これにより、データカプセルが第三者に不正に転送された場合のデータ漏洩リスクが低下する。 The data capsule also includes a container program that detects events that require the data capsule to be invalidated, and an erasure program that invalidates the data capsule by erasing the database. The container program detects events such as failure to communicate with a server that tracks the data capsule, expiration of the validity period, and unauthorized breach of user authentication. This reduces the risk of data leakage if the data capsule is illegally transferred to a third party.

上記については単に本発明の原理を示すものである。更に、多数の変形や変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応する全ての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。The foregoing merely illustrates the principles of the present invention. Further, since numerous modifications and changes are possible to those skilled in the art, the present invention is not limited to the exact construction and application shown and described above, and all corresponding modifications and equivalents are deemed to be within the scope of the present invention according to the appended claims and their equivalents.

10 情報処理装置
11 記憶部
12 処理部
13 データベース
14 データベース管理プログラム
15 リビジョン情報
16 利用者情報
17 鍵情報
REFERENCE SIGNS LIST 10 Information processing device 11 Storage unit 12 Processing unit 13 Database 14 Database management program 15 Revision information 16 User information 17 Key information

Claims (7)

データベースを管理するデータベース管理プログラムを識別するリビジョン情報と、前記データベースの利用者を示す利用者情報とを取得し、
取得された前記リビジョン情報と前記利用者情報とを用いて鍵情報を生成し、
生成された前記鍵情報を用いて前記データベースを暗号化し、
前記データベースが暗号化された後、生成された前記鍵情報を破棄する、
処理をコンピュータが実行する管理方法。
acquiring revision information for identifying a database management program for managing a database and user information indicating a user of the database;
generating key information using the acquired revision information and user information;
encrypting the database using the generated key information;
After the database is encrypted, discarding the generated key information.
A method of managing how a process is carried out by a computer.
前記リビジョン情報と前記利用者情報とを再取得し、
再取得された前記リビジョン情報と前記利用者情報とを用いて前記鍵情報を再生成し、
再生成された前記鍵情報を用いて前記データベースを復号する、
処理を前記コンピュータが更に実行する請求項1記載の管理方法。
reacquiring the revision information and the user information;
regenerating the key information using the reacquired revision information and the user information;
decrypting the database using the regenerated key information;
The management method according to claim 1 , further comprising the step of:
前記リビジョン情報が埋め込まれた前記データベース管理プログラムと、暗号化された前記データベースと、前記利用者情報が記載されたファイルとを含むパッケージデータを生成し、前記パッケージデータを出力する、
処理を前記コンピュータが更に実行する請求項1記載の管理方法。
generating package data including the database management program in which the revision information is embedded, the encrypted database, and a file in which the user information is described, and outputting the package data;
The management method according to claim 1 , further comprising the step of:
前記データベース管理プログラムは、前記データベース管理プログラムに埋め込まれた前記リビジョン情報と前記ファイルに記載された前記利用者情報とから前記鍵情報を再生成し、再生成された前記鍵情報を用いて前記データベースを復号するモジュールを含む、
請求項3記載の管理方法。
the database management program includes a module that regenerates the key information from the revision information embedded in the database management program and the user information described in the file, and decrypts the database using the regenerated key information;
The management method according to claim 3.
前記パッケージデータに含まれる前記データベース管理プログラムは、前記データベースのアクセス方法を規定した管理情報の変更を制限する、
請求項3記載の管理方法。
the database management program included in the package data restricts changes to management information that defines an access method for the database;
The management method according to claim 3.
データベースと前記データベースを管理するデータベース管理プログラムとを記憶する記憶部と、
前記データベース管理プログラムを識別するリビジョン情報と、前記データベースの利用者を示す利用者情報とを取得し、取得された前記リビジョン情報と前記利用者情報とを用いて鍵情報を生成し、生成された前記鍵情報を用いて前記データベースを暗号化し、前記データベースが暗号化された後、生成された前記鍵情報を破棄する処理部と、
を有する情報処理装置。
a storage unit that stores a database and a database management program that manages the database;
a processing unit that acquires revision information for identifying the database management program and user information indicating a user of the database, generates key information using the acquired revision information and user information, encrypts the database using the generated key information, and discards the generated key information after the database has been encrypted;
An information processing device having the above configuration.
データベースを管理するデータベース管理プログラムを識別するリビジョン情報と、前記データベースの利用者を示す利用者情報とを取得し、
取得された前記リビジョン情報と前記利用者情報とを用いて鍵情報を生成し、
生成された前記鍵情報を用いて前記データベースを暗号化し、
前記データベースが暗号化された後、生成された前記鍵情報を破棄する、
処理をコンピュータに実行させる管理プログラム。
acquiring revision information for identifying a database management program for managing a database and user information indicating a user of the database;
generating key information using the acquired revision information and user information;
encrypting the database using the generated key information;
After the database is encrypted, discarding the generated key information.
A management program that causes a computer to carry out processing.
JP2023567449A 2021-12-16 2021-12-16 Management method, information processing device, and management program Active JP7549283B2 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/046594 WO2023112272A1 (en) 2021-12-16 2021-12-16 Management method, information processing device, and management program

Publications (2)

Publication Number Publication Date
JPWO2023112272A1 JPWO2023112272A1 (en) 2023-06-22
JP7549283B2 true JP7549283B2 (en) 2024-09-11

Family

ID=86773819

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023567449A Active JP7549283B2 (en) 2021-12-16 2021-12-16 Management method, information processing device, and management program

Country Status (2)

Country Link
JP (1) JP7549283B2 (en)
WO (1) WO2023112272A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003203014A (en) 2002-01-08 2003-07-18 Sony Corp Information processing apparatus and method, recording medium, and program
JP2005209069A (en) 2004-01-26 2005-08-04 Nippon Telegr & Teleph Corp <Ntt> Database controller
US20200050785A1 (en) 2018-08-10 2020-02-13 Ca, Inc. Database record access through use of a multi-value alternate primary key

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003203014A (en) 2002-01-08 2003-07-18 Sony Corp Information processing apparatus and method, recording medium, and program
JP2005209069A (en) 2004-01-26 2005-08-04 Nippon Telegr & Teleph Corp <Ntt> Database controller
US20200050785A1 (en) 2018-08-10 2020-02-13 Ca, Inc. Database record access through use of a multi-value alternate primary key

Also Published As

Publication number Publication date
JPWO2023112272A1 (en) 2023-06-22
WO2023112272A1 (en) 2023-06-22

Similar Documents

Publication Publication Date Title
JP4398145B2 (en) Method and apparatus for automatic database encryption
JP4902207B2 (en) System and method for managing multiple keys for file encryption and decryption
US8892905B2 (en) Method and apparatus for performing selective encryption/decryption in a data storage system
US7594257B2 (en) Data security for digital data storage
US7792300B1 (en) Method and apparatus for re-encrypting data in a transaction-based secure storage system
US7171557B2 (en) System for optimized key management with file groups
US6249866B1 (en) Encrypting file system and method
US7694134B2 (en) System and method for encrypting data without regard to application
US7219230B2 (en) Optimizing costs associated with managing encrypted data
KR101613146B1 (en) Method for encrypting database
US8494167B2 (en) Method and apparatus for restoring encrypted files to an encrypting file system based on deprecated keystores
US20150026461A1 (en) System and Method to Create Resilient Site Master-key for Automated Access
US8181028B1 (en) Method for secure system shutdown
AU2002213436A1 (en) Method and apparatus for automatic database encryption
US7315859B2 (en) Method and apparatus for management of encrypted data through role separation
US20120237024A1 (en) Security System Using Physical Key for Cryptographic Processes
JP2012150803A (en) Efficient volume encryption
JPH11143780A (en) Secret information management method in database and secret information management device for database
CN102483792A (en) Method and apparatus for sharing documents
CN110059488A (en) Security level identification management method and device
JP5511925B2 (en) Encryption device with access right, encryption system with access right, encryption method with access right, and encryption program with access right
CN109284622A (en) Contact person information processing method, device and storage medium
US8200964B2 (en) Method and apparatus for accessing an encrypted file system using non-local keys
JP7549283B2 (en) Management method, information processing device, and management program
US20090222929A1 (en) Method, program, and server for backup and restore

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240306

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240730

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240812

R150 Certificate of patent or registration of utility model

Ref document number: 7549283

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150