JP2005242740A - Program, storage medium and information processor in information security system - Google Patents

Program, storage medium and information processor in information security system Download PDF

Info

Publication number
JP2005242740A
JP2005242740A JP2004052787A JP2004052787A JP2005242740A JP 2005242740 A JP2005242740 A JP 2005242740A JP 2004052787 A JP2004052787 A JP 2004052787A JP 2004052787 A JP2004052787 A JP 2004052787A JP 2005242740 A JP2005242740 A JP 2005242740A
Authority
JP
Japan
Prior art keywords
data
database
information
server
client
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.)
Pending
Application number
JP2004052787A
Other languages
Japanese (ja)
Inventor
Tomoyuki Uchida
友幸 内田
Shuichi Murakami
修一 村上
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.)
OPEN LOOP KK
Original Assignee
OPEN LOOP KK
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 OPEN LOOP KK filed Critical OPEN LOOP KK
Priority to JP2004052787A priority Critical patent/JP2005242740A/en
Publication of JP2005242740A publication Critical patent/JP2005242740A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Storage Device Security (AREA)
  • Computer And Data Communications (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide the technology of an information security system which can sufficiently prevent illegal action especially such as furtive glance or acquisition of data by insiders and can be easily and inexpensively applied to many existing information processing systems to secure these systems. <P>SOLUTION: A program in the information security system is applied to protection targets which are many information processing systems each of which has a client 1 in/from which a user inputs/outputs data and servers (an ASP server 2 and a DB server 3) for storing data in a DB. The program comprises: functions (an HTTP proxy 12 and a cipher management server 4) for encrypting/decrypting data so that the data are in an encrypted state on the server side by interfering in the I/O communication of data on the back of a Web browser 11 in the client 1 and functions (an SQL proxy 31 and a policy management server 5) for confirming the setting of access right of data in each user and in each prescribed data and accessing the database on the basis of the confirmed result by interfering in the I/O communication of data on the front stage of a server side database. <P>COPYRIGHT: (C)2005,JPO&NCIPI

Description

本発明は、情報セキュリティシステムのプログラムに関し、特に、クライアントとサーバを有しデータベースにデータを格納するWebベースなどの情報処理システムを保護対象として不正防止を図る技術に関する。   The present invention relates to a program for an information security system, and more particularly to a technique for preventing fraud by using an information processing system such as a Web base that has a client and a server and stores data in a database as a protection target.

現状の一般的なWebベースの情報処理システムには、情報セキュリティに関してデータの盗聴、改竄などの様々な問題点が存在する。クライアント(ユーザクライアント)、ASPサーバ(Webアプリケーション提供サーバ)、DBサーバ(データベースサーバ)を有する一般的な3層クライアント・サーバ構成の情報処理システムを例にしたとき、例えば、クライアント−ASPサーバ間では、セッション乗っ取りによるデータ改竄の可能性がある。またASPサーバでは、ASPサーバ管理者などの内部者によるデータの盗み見などの可能性がある。またASPサーバ−DBサーバ間では、正規ユーザに成りすましてのデータ不正入手の可能性がある。またDBサーバでは、DBサーバ管理者などの内部者によるバックアップデータの持ち出しなどの可能性がある。   In the current general Web-based information processing system, there are various problems relating to information security, such as data wiretapping and tampering. When an information processing system having a general three-tier client / server configuration including a client (user client), an ASP server (Web application providing server), and a DB server (database server) is taken as an example, for example, between a client and an ASP server There is a possibility of data falsification due to session hijacking. In the ASP server, there is a possibility of data snooping by an insider such as an ASP server administrator. In addition, there is a possibility of unauthorized data acquisition as an authorized user between the ASP server and the DB server. In the DB server, there is a possibility that backup data is taken out by an insider such as a DB server administrator.

前記のような問題点に対して、通常、次のような技術的対策を施してセキュリティを確保しようとする。例えば、クライアント−ASPサーバ間をSSL/TLS(Secure Socket Layer/Transport Layer Security)などの暗号通信方法で保護し、ユーザIDやパスワードの流出や外部からの攻撃を防止する。またDBサーバへのアクセスに関して、データベース中のカラム(列)、レコード(行)などを単位として適切なアクセス権限を設定するなどの厳格なデータベースアクセス制限管理を行い、データベースへの不正アクセスを防止する。また、暗号化データベース、つまりデータベースに格納されているデータを暗号化して読めなくする技術を導入し、データベース中の情報の盗み見や持ち出しを防止する。   For the above problems, the following technical measures are usually taken to ensure security. For example, the client-ASP server is protected by an encryption communication method such as SSL / TLS (Secure Socket Layer / Transport Layer Security) to prevent a user ID or password from leaking or an external attack. In addition, with regard to access to the DB server, strict database access restriction management such as setting appropriate access authority for each column (row), record (row), etc. in the database is performed to prevent unauthorized access to the database. . In addition, an encrypted database, that is, a technique for encrypting data stored in the database so that it cannot be read is introduced to prevent the information in the database from being seen or taken out.

昨今、所定の情報セキュリティシステムを設置したイントラネットなどの情報処理システムにおいて、外部アクセスによる攻撃を防止する手法については浸透してきたが、保護対象のシステムを利用あるいは管理する内部者による不正が特に問題となってきている。前記のような不正防止を行う所定の情報セキュリティシステムが設置されたWebベースの情報処理システムにおいて、内部に不正者が存在すると仮定する場合、次のような点に注意しなければならない。現状では、ASPサーバやDBサーバなどが配置されたサーバルームへの入出管理や、データベースのバックアップデータについての厳密な管理など、情報セキュリティシステム外のポリシーを徹底することで対応するのが一般的である。   In recent years, in information processing systems such as intranets where a predetermined information security system has been installed, techniques for preventing attacks due to external access have spread, but fraud by insiders who use or manage protected systems is particularly problematic. It has become to. In a Web-based information processing system in which a predetermined information security system for preventing fraud as described above is installed, it is necessary to pay attention to the following points when it is assumed that there are unauthorized persons inside. At present, it is common to deal with thorough policies outside the information security system, such as entry / exit management of server rooms where ASP servers and DB servers are located, and strict management of database backup data. is there.

例えば、ASPサーバからの不正アクセスに関しては、ASPサーバ管理者は、クライアント側から送信されたデータを盗み見ることが可能であるので、高レベルの権限を与えられているユーザのユーザID及びパスワードを用いてデータベースにアクセスを行えば、データ改竄や顧客データの入手などを行うことは容易である。また、データベースへの不正アクセスに関しては、データベースへのアクセスにはUnix(R)ユーザ認証(ユーザ名とパスワードによる認証)が多く利用されているため、イントラネット内からは比較的容易に不正アクセスが可能である。またデータベース管理者により不正が行われるとすると、データベース中のデータ自体が暗号化されて保護されていなければ不正を防止できない。また、データベースのバックアップデータの流出に関しては、バックアップデータはテープメディアや光学ディスクメディアなどに保存されることが多いが、このメディアごと持ち出される危険がある。   For example, regarding unauthorized access from an ASP server, the ASP server administrator can steal data transmitted from the client side, and therefore uses the user ID and password of a user who has been granted a high level of authority. Once the database is accessed, it is easy to tamper with data or obtain customer data. As for unauthorized access to the database, Unix (R) user authentication (user name and password authentication) is often used for access to the database, so unauthorized access is relatively easy from within the intranet. It is. If fraud is performed by the database administrator, fraud cannot be prevented unless the data itself in the database is encrypted and protected. In addition, regarding the outflow of database backup data, the backup data is often stored on a tape medium, an optical disk medium, or the like, but there is a risk of taking out the entire medium.

このように、従来では情報セキュリティシステムを設置した情報処理システムにおいてその内部者例えば情報システム部員が顧客データなどのデータを盗み見たり不正入手したりすることが可能なアーキテクチャとなっている。前記データを扱う情報システム部員には情報取り扱い者としての高いモラルが要求され、精神的にも大きな負担となる面がある。また高いモラルを備えた情報システム部員を雇用するためのコストや新たな情報セキュリティシステムの導入にかかるコストなど、高いコストを要している。   As described above, conventionally, in an information processing system in which an information security system is installed, an insider, for example, an information system member, has an architecture that allows data such as customer data to be seen or illegally obtained. The information system staff handling the data is required to have a high morality as an information handler, and there is a mental burden. In addition, high costs are required, such as the cost of hiring information system staff with high morals and the cost of introducing a new information security system.

また前記暗号化データベースのような技術が存在するが、あくまでDBサーバにおける暗号化であるので、データベース内の、暗号化されたデータ(以下「暗号化データ」と称する)の復号化のための鍵情報は、システム構成上多くの場合DBサーバ付近に保存されている可能性が高く、内部者などにより読み出しやすい状況となっている。内部者などにより前記鍵情報を不正入手されると、この鍵情報によりデータベース内の暗号化データを復号化することによってデータが読まれ不正入手されてしまう。このように従来の暗号化データベースもデータ保護のセキュリティは十分ではない。   Although there is a technique such as the above-mentioned encrypted database, since it is only encryption in the DB server, a key for decrypting encrypted data (hereinafter referred to as “encrypted data”) in the database. Information is likely to be stored in the vicinity of the DB server in many cases due to the system configuration, and is easily read by an insider or the like. If the key information is illegally obtained by an insider or the like, the encrypted data in the database is decrypted by this key information, and the data is read and illegally obtained. Thus, the security of data protection is not sufficient even in the conventional encrypted database.

従来技術では、クライアント・サーバ構成の情報処理システムにおいてサーバ側でユーザのデータを集中的に管理して効率化を図ることがシステム設計者の主要な観点であったため、データベースに格納されるデータについて暗号化を行うことに関しては、例えばデータ検索が不便になって扱い難いなどの理由から深く追求されていなかった。また、情報セキュリティシステムの構築のために、サーバ側に様々なモジュールを備える必要があるなど構成が複雑になる傾向があった。   In the prior art, in a client / server configuration information processing system, centralized management of user data on the server side to improve efficiency was the main point of view for system designers. Encrypting has not been pursued deeply, for example because data retrieval is inconvenient and difficult to handle. In addition, for the construction of an information security system, the configuration tends to be complicated, for example, it is necessary to provide various modules on the server side.

前記のように従来技術では、情報セキュリティシステムを設置した情報処理システムにおいて取り扱い対象のデータに対する特に内部者による不正、例えば顧客情報や社員情報の盗み見や入手などに対する防止対策が不十分であり、システムとして大きな欠陥があったと言える。また、システム構成が複雑になる傾向がありコストが高くなる問題があった。   As described above, in the prior art, in the information processing system in which the information security system is installed, there are insufficient measures to prevent fraud by the insider, particularly for example, stealing or obtaining customer information or employee information, with respect to data to be handled. It can be said that there was a big defect. In addition, there is a problem that the system configuration tends to be complicated and the cost is increased.

本発明は以上のような問題に鑑みてなされたものであり、その目的は、クライアントとサーバを有するWebベースなどの情報処理システムを主な対象として保護を行う情報セキュリティシステムにおいて、特に内部者によるデータの盗み見や入手などの不正の防止を十分に行うことができ、また既に構築済みの多数の情報処理システムに対し容易にかつ低コストで適用してセキュア化することのできる技術を提供することにある。   The present invention has been made in view of the above problems, and an object of the present invention is to provide an information security system that mainly protects an information processing system such as a Web base having a client and a server, particularly by an insider. To provide technology that can sufficiently prevent fraud such as data stealing and acquisition, and that can be easily applied to many information processing systems that have already been constructed and secured at low cost. It is in.

本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。   Of the inventions disclosed in the present application, the outline of typical ones will be briefly described as follows.

(1)前記目的を達成するために、本発明の情報セキュリティシステムのプログラムは、ユーザがデータを入出力するクライアントと、データベースに前記データを格納するサーバと、を有する情報処理システムを保護対象とし、クライアント内またはクライアントとサーバとの間において前記データの入出力の通信に介入し、前記データがサーバ側で暗号化状態となりデータベースに暗号化データとして格納され、またクライアント側で復号化状態で出力されるように前記データの暗号化/復号化を行う暗号機能をコンピュータに実行させることを特徴とする。サーバ側ではなくクライアント側で、前記データについての可逆暗号による暗号化/復号化によって情報の機密化を行う。この暗号機能はクライアントの入出力インターフェイス部(Webブラウザなど)とサーバ側(ASPサーバなど)との間において透過的につまりユーザに暗号化/復号化処理の存在を意識されることなく機能する。前記データをクライアント側からサーバ側のデータベースに入力(蓄積)する際は、暗号機能によりデータの暗号化を行ってからサーバ側に渡し、データベースには暗号化データが格納される。サーバ側のデータベースから暗号化データをクライアント側に出力(抽出)する際は暗号機能により暗号化データの復号化を行ってから入出力インターフェイス部に出力する。前記データは、不正者特に内部不正者によって不正利用されるのを防ぐために保護対象となるデータである。暗号化対象となるのは、例えば顧客情報や社員情報などのプライバシーに係る情報をはじめとして不正利用されるのを防止したいデータである。このデータ暗号化/復号化処理により、前記データをそのまま判読可能な形式で扱えるのはクライアント側における許可ユーザのみとなる。   (1) In order to achieve the above object, an information security system program according to the present invention protects an information processing system including a client from which a user inputs and outputs data and a server that stores the data in a database. Intervene in the input / output communication of the data in the client or between the client and the server, the data is encrypted on the server side, stored as encrypted data in the database, and output in the decrypted state on the client side As described above, the computer is caused to execute an encryption function for encrypting / decrypting the data. Information is confidentialized by reversible encryption / decryption of the data on the client side, not the server side. This encryption function functions transparently between the client input / output interface unit (such as a Web browser) and the server side (such as an ASP server), that is, without the user being aware of the encryption / decryption processing. When inputting (accumulating) the data from the client side to the database on the server side, the data is encrypted by the encryption function and then passed to the server side, and the encrypted data is stored in the database. When outputting (extracting) encrypted data from the database on the server side to the client side, the encrypted data is decrypted by the encryption function and then output to the input / output interface unit. The data is data to be protected in order to prevent unauthorized use by unauthorized persons, particularly internal unauthorized persons. The data to be encrypted is data that is to be prevented from being illegally used, including information relating to privacy such as customer information and employee information. By this data encryption / decryption process, only the authorized user on the client side can handle the data as it is in a readable format.

(2)また、本発明は、前記(1)の情報セキュリティシステムのプログラムにおいて、前記データの入力時において、クライアント内またはクライアントとサーバとの間において前記データの入出力インターフェイス部からサーバ側への通信に介入し、前記データについて暗号化の必要を判断する手順と、暗号化が必要と判断した場合に前記データがサーバ側で暗号化状態となりデータベースに暗号化データとして格納されるように前記データの暗号化の要求を送信する手順と、前記要求に基づき前記データの暗号化を所定の暗号アルゴリズム及び暗号化鍵を用いて行って暗号化データを返す手順と、暗号化データを受信してサーバ側に送信する手順とを有し、また前記データの出力時において、クライアント内またはクライアントとサーバとの間においてサーバ側から入出力インターフェイス部への通信に介入し、前記データについて復号化の必要を判断する手順と、復号化が必要と判断した場合に前記データがクライアント側の入出力インターフェイス部で復号化状態で出力されるように前記データの復号化の要求を送信する手順と、前記要求に基づき前記データの復号化を所定の暗号アルゴリズム及び復号化鍵を用いて行って復号化されたデータを返す手順と、復号化されたデータを受信して入出力インターフェイス部に送信する手順とを有することを特徴とする。   (2) In the information security system program according to (1), when the data is input, the data input / output interface unit to the server side in the client or between the client and the server. A procedure for determining the necessity of encryption of the data by intervening in the communication, and the data so that the data is in an encrypted state on the server side and stored as encrypted data in the database when it is determined that encryption is necessary; A procedure for transmitting a request for encryption of data, a procedure for performing encryption of the data using a predetermined encryption algorithm and encryption key based on the request, and returning encrypted data, and a server for receiving the encrypted data And at the time of outputting the data, the data is transmitted within the client or between the client and the server. Between the server side and the communication from the server side to the input / output interface unit, the procedure for determining whether the data needs to be decrypted, and when the data is determined to be decrypted, the data is transferred to the client side input / output interface unit A procedure for transmitting a request for decrypting the data so that the data is output in a decrypted state, and decrypting the data based on the request using a predetermined encryption algorithm and decryption key. It has a procedure for returning data and a procedure for receiving the decrypted data and transmitting it to the input / output interface unit.

(3)また、本発明の情報セキュリティシステムのプログラムは、ユーザがデータを入出力するクライアントと、データベースに前記データを格納するサーバと、を有する情報処理システムを保護対象とする情報セキュリティシステムのプログラムであって、クライアント内でデータの入出力インターフェイス部の周囲あるいは一部要素においてサーバ側との前記データの入出力の通信に介入し、これを処理起点として前記データがサーバ側で暗号化状態となりデータベースに暗号化データとして格納され逆に前記クライアント側の入出力インターフェイス部で復号化状態で出力されるように前記データの暗号化/復号化を行う第1の処理(HTTPプロクシ処理)をコンピュータに実行させることを特徴とする。クライアント側で入出力インターフェイス部の背後などにおいてサーバ側(ASPサーバなど)との間においてこの処理のプログラムモジュールが介在し、前記データの入出力のためのHTTPなどの通信に自動的に介入してこれを処理起点として対象データについての暗号化/復号化を図る動作を行う。この介入は、サーバ側のデータベースに格納するデータについて、クライアント側から送信する際あるいはサーバ側から受信する際に行われる。   (3) The information security system program according to the present invention is a program for an information security system that protects an information processing system having a client in which a user inputs and outputs data and a server that stores the data in a database. In the client, the data input / output communication with the server side is intervened around the data input / output interface unit or in some elements in the client, and the data is encrypted on the server side starting from this processing. A first process (HTTP proxy process) for encrypting / decrypting the data so that it is stored in the database as encrypted data and is output in a decrypted state at the input / output interface unit on the client side. It is made to perform. A program module for this processing is interposed between the client side and the server side (such as an ASP server) behind the input / output interface unit, and automatically intervenes in communication such as HTTP for input / output of the data. Using this as a processing starting point, an operation for encrypting / decrypting the target data is performed. This intervention is performed when data stored in the database on the server side is transmitted from the client side or received from the server side.

(4)また、本発明は、前記(3)の情報セキュリティシステムのプログラムにおいて、前記データの暗号化/復号化に使用する鍵情報を管理する処理と、前記第1の処理からの要求に基づき前記データについて前記鍵情報を使用して暗号化/復号化処理して暗号化/復号化されたデータを返す処理と、を行う第2の処理(暗号管理サーバ処理)をコンピュータに実行させることを特徴とする。この処理では、暗号化/復号化対象データのデータID,暗号化/復号化に使用する鍵情報などの対応を管理する。   (4) Further, the present invention is based on the request from the first process for managing the key information used for the encryption / decryption of the data in the information security system program of (3). Causing the computer to execute a second process (encryption management server process) for performing an encryption / decryption process on the data using the key information and returning the encrypted / decrypted data. Features. In this process, correspondence between the data ID of the data to be encrypted / decrypted, key information used for encryption / decryption, and the like is managed.

(5)また、本発明は、前記(3)の情報セキュリティシステムのプログラムにおいて、データベースに対する前記データの入出力のための通信に介入し、クライアント側またはサーバ側からのユーザの認証情報の受信に基づくユーザ認証処理と、前記データについてのユーザ単位及びデータベースにおける所定データ単位でのアクセス権限の設定を含んだポリシー設定を確認してこれに基づきデータベースへのアクセス対象領域またはデータを制限して問い合わせを行う処理と、を行うアクセス制限機能をコンピュータに実行させることを特徴とする。   (5) Further, according to the information security system program of (3), the present invention intervenes in communication for inputting / outputting the data to / from the database, and receives user authentication information from the client side or the server side. Based on the user authentication process and the policy setting including the setting of the access authority in the user unit for the data and the predetermined data unit in the database, and based on this, the access target area or data to the database is limited and the inquiry is made. And an access restriction function for performing the processing to be performed.

(6)また、本発明は、前記(5)の情報セキュリティシステムのプログラムにおいて、クライアント側からサーバ側への前記データの入出力のためのアクセスに際してクライアント側からのユーザの認証情報の受信に基づくユーザ認証処理を行う手順と、ユーザ認証の通過後におけるデータベースの前段での前記データの入出力のためのデータベースアクセスに際してサーバ側からのユーザの認証情報の受信に基づくユーザ認証処理を行い、前記データについてのユーザ単位及びデータベースにおける所定データ単位でのアクセス権限を確認する手順と、アクセス権限の確認に基づきデータベースへのアクセス対象領域またはデータを制限して問い合わせを行ってデータベースから結果を得る手順と、を有することを特徴とする。前記ユーザ認証処理では、認証結果に基づきユーザに対してデータベース接続を許可する接続チケットの発行などを行い、以後のデータベース接続セッション内において認証情報として提示させる。   (6) In the information security system program of (5), the present invention is based on reception of user authentication information from the client side at the time of access for input / output of the data from the client side to the server side. A procedure for performing user authentication processing, and user authentication processing based on reception of user authentication information from the server side at the time of database access for input / output of the data in the previous stage of the database after passing user authentication, the data A procedure for confirming the access authority in a predetermined data unit in the user unit and the database about the procedure, a procedure for obtaining a result from the database by making an inquiry by limiting the access target area or data to the database based on the confirmation of the access authority, It is characterized by having. In the user authentication process, a connection ticket for permitting a database connection to the user is issued based on the authentication result, and is presented as authentication information in the subsequent database connection session.

(7)また、本発明は、前記(5)の情報セキュリティシステムのプログラムにおいて、データベースに対する前記データの入出力の通信に介入し、クライアント側またはサーバ側からのユーザの認証情報の受信に基づくユーザ認証処理と、前記データについてのユーザ単位及びデータベースにおける所定データ単位でのアクセス権限の設定を含んだポリシー設定を確認してこれに基づきデータベースへのアクセス対象領域またはデータを制限して問い合わせを行う処理と、を行う第3の処理(SQLプロクシ処理)をコンピュータに実行させることを特徴とする。   (7) Further, according to the information security system program of (5), the present invention intervenes in the data input / output communication with the database, and the user is based on reception of user authentication information from the client side or the server side. Authentication processing and processing for checking the policy settings including the setting of access authority for each user in the database and the predetermined data unit in the database, and inquiring by limiting the access target area or data to the database based on this policy setting And causing the computer to execute a third process (SQL proxy process).

(8)また、本発明は、前記(7)の情報セキュリティシステムのプログラムにおいて、前記データについてのユーザ単位及びデータベースにおける所定データ単位でのアクセス権限の設定を含んだポリシー設定を管理する処理と、クライアント側またはサーバ側からのユーザの認証情報の受信に基づくユーザ認証及び前記第3の処理からの要求に基づくポリシー設定の確認を行う処理と、を行う第4の処理(ポリシー管理サーバ処理)をコンピュータに実行させることを特徴とする。この処理では本システムを利用するユーザ単位における、データベースへの所定データ単位例えばカラム、レコード、セル、テーブルなどでのアクセス権限の設定を含んだポリシー設定を管理する。またユーザ認証処理などの際に該当ユーザのアクセス権限を確認してデータベースへのアクセス許可領域あるいはデータIDを絞り込む。データベースへのアクセス権限は、PKIに基づくユーザ認証と、所定データ単位でのアクセス権限の設定とを組み合わせて設定可能とする。   (8) In the information security system program according to (7), the present invention manages a policy setting including a setting of access authority in units of users and a predetermined data unit in the database for the data; A fourth process (policy management server process) for performing user authentication based on reception of user authentication information from the client side or server side and a process for confirming policy settings based on a request from the third process. The computer is executed. In this process, policy settings including access authority settings in predetermined data units such as columns, records, cells, tables, etc., are managed for each user who uses this system. In addition, the access authority of the corresponding user is confirmed at the time of user authentication processing or the like, and the access permission area or data ID for the database is narrowed down. The access authority to the database can be set by combining user authentication based on PKI and setting of access authority in a predetermined data unit.

(9)また、本発明の情報セキュリティシステムのプログラムは、ユーザが入出力インターフェイス部を通じてデータを入出力するクライアントと、クライアントからのアクセスに応じて前記データを所定のビジネスロジックで処理するアプリケーションサーバと、アプリケーションサーバを通じて前記データをデータベースに入出力するデータベースサーバと、を有する情報処理システムを保護対象とし、クライアント内で前記データの入出力インターフェイス部の周囲あるいは一部要素において前記データの入出力の通信に介入し、これを処理起点として前記データがサーバ側で暗号化状態となりデータベースに暗号化データとして格納され逆にクライアント側では入出力インターフェイス部に復号化状態で出力されるように前記データの暗号化/復号化を行う第1の処理(HTTPプロクシ処理)と、前記データの暗号化/復号化に使用する鍵情報を管理する処理とクライアント側の前記第1の処理からの要求に基づき前記データについて前記鍵情報で暗号化/復号化処理して暗号化/復号化されたデータを返す処理とを行う第2の処理(暗号管理サーバ処理)と、サーバ側のデータベースの前段あるいは一部要素においてデータベースに対する前記データの入出力の通信に介入し、前記データについてのユーザ単位及びデータベースにおける所定データ単位でのアクセス権限の設定を含んだポリシー設定を確認してこれに基づきデータベースへのアクセス対象領域またはデータを制限して問い合わせを行う第3の処理(SQLプロクシ処理)と、前記データについてのユーザ単位及びデータベースにおける所定データ単位でのアクセス権限の設定を含んだポリシー設定を管理する処理とクライアント側またはサーバ側からのユーザの認証情報の受信に基づくユーザ認証及び前記第3の処理からの要求に基づくポリシー設定の確認を行う処理とを行う第4の処理(ポリシー管理サーバ処理)と、をコンピュータに実行させることを特徴とする。前記第2の処理(暗号管理サーバ処理)及び第4の処理(ポリシー管理サーバ処理)は、任意のセキュアな位置にサーバとして配置され、前記鍵情報やポリシー設定情報などを高いセキュリティレベルで管理する。   (9) The information security system program according to the present invention includes a client in which a user inputs / outputs data through an input / output interface unit, and an application server that processes the data with predetermined business logic in response to access from the client. An information processing system having a database server that inputs / outputs the data to / from the database through the application server is a protection target, and communication of the data input / output is performed in the client around the data input / output interface unit or in some elements The data is stored in encrypted form on the server side and stored as encrypted data in the database, and conversely output to the input / output interface unit in the decrypted state. Based on a request from a first process (HTTP proxy process) for performing encryption / decryption, a process for managing key information used for encryption / decryption of the data, and the first process on the client side A second process (encryption management server process) that performs a process of encrypting / decrypting data with the key information and returning the encrypted / decrypted data, and a preceding stage or a partial element of the server-side database Intervene in the data input / output communication with the database in the database, and confirm the policy setting including the access authority setting for the data in the user unit and the predetermined data unit in the database. Alternatively, a third process (SQL proxy process) for making an inquiry with limiting data and a user for the data Processing for managing policy settings including setting of access authority in units of data units and in a predetermined data unit, user authentication based on reception of user authentication information from the client side or server side, and requests from the third processing A fourth process (policy management server process) for performing a process for confirming the policy setting based on the process is executed by a computer. The second process (encryption management server process) and the fourth process (policy management server process) are arranged as a server at an arbitrary secure location, and manage the key information, policy setting information, and the like at a high security level. .

(10)また、本発明は、前記(3)の情報セキュリティシステムのプログラムにおいて、前記データベースに格納された暗号化データを検索するための検索機能として、前記クライアント側で指定された検索条件を前記第1の処理を通じて暗号化または一方向ハッシュ化し、前記暗号化または一方向ハッシュ化された検索条件について前記サーバ側のデータベースの前段においてデータベース問い合わせのための具体的な検索条件として設定してデータベース問い合わせを行わせ、これにより抽出された暗号化データ群について、検索結果絞り込みの処理を行い、この検索結果について前記第1の処理を通じて復号化してから前記クライアントの入出力インターフェイス部に出力する機能をコンピュータに実行させることを特徴とする。   (10) Further, in the information security system program according to (3), the present invention uses a search condition specified on the client side as a search function for searching encrypted data stored in the database. Encrypted or one-way hashed through the first process, and the encrypted or one-way hashed search condition is set as a specific search condition for database query in the previous stage of the database on the server side, and the database query The computer has a function of performing search result narrowing processing on the encrypted data group extracted thereby, decrypting the search result through the first processing, and then outputting the result to the input / output interface unit of the client It is made to perform.

(11)また、本発明は、前記(3)の情報セキュリティシステムのプログラムにおいて、データベースに格納された暗号化データを検索するための検索機能を有することを特徴とする。この検索機能として、クライアントで入力された検索キー(検索ワード)を含む検索条件を判断して暗号化し、サーバ側では前記暗号化された検索キーを用いてデータベースに対する問い合わせを行ってこれによりデータベースから抽出された暗号化データを復号化してクライアントの入出力インターフェイス部に検索結果として出力させる機能をコンピュータに実行させることを特徴とする。   (11) Further, the present invention is characterized in that the information security system program of (3) has a search function for searching encrypted data stored in a database. As this search function, a search condition including a search key (search word) input by a client is determined and encrypted, and the server side makes an inquiry to the database using the encrypted search key, and from this, A function of causing the computer to execute a function of decrypting the extracted encrypted data and outputting it to the input / output interface unit of the client as a search result is provided.

(12)また、本発明は、前記(10)の情報セキュリティシステムのプログラムにおいて、前記検索機能がハッシュ値を用いた暗号化データ検索機能を有することを特徴とする。この機能では、クライアント側で検索処理要求が発生した時、完全一致検索、部分一致検索などの検索処理モードを判断し、それに合わせた処理を行う。特に部分一致検索の際にハッシュ値を用いた検索を行う。クライアント側からの前記データの入力時、前記第1及び第2の処理により前記データを暗号化することに加え、前記データについて所定の一方向ハッシュ関数によりハッシュ値を生成しこれを前記暗号化されたデータと関連付ける処理と、検索時、クライアントで入力された検索キーについて前記一方向ハッシュ関数によりハッシュ値の生成を行ってこれをサーバ側に送信し、サーバ側で前記検索キーのハッシュ値によりデータベース中の前記暗号化データに関連付けされたハッシュ値を対象として検索して値が一致する領域に対応する暗号化データを抽出させる処理と、抽出結果の暗号化データについて復号化して元の検索キーが含まれるものを選んでこれを検索結果としてクライアントに返す処理と、をコンピュータに実行させることを特徴とする。生成したハッシュ値についての情報は、データID他に関連付けて保管する。サーバ側では、クライアント側から受けた暗号化データを保管すると共に、検索に備えてこの暗号化データの元データについてのハッシュ値を関連付けて両方参照できるように管理しておく。データベースからの抽出結果には元の検索キーに対応しない暗号化データの領域も含まれる可能性があるので、候補の暗号化データを復号化して元の検索キーが含まれるか確認して元の検索キーを含む領域のみ選んでこれを検索結果として暗号化データの状態でクライアント側に返す。この検索結果を前記第1及び第2の処理により復号化処理してから前記入出力インターフェイス部に出力する。   (12) Further, in the information security system program of (10), the present invention is characterized in that the search function has an encrypted data search function using a hash value. In this function, when a search processing request is generated on the client side, a search processing mode such as complete match search or partial match search is determined, and processing corresponding to that is performed. In particular, a search using a hash value is performed during a partial match search. At the time of inputting the data from the client side, in addition to encrypting the data by the first and second processes, a hash value is generated for the data by a predetermined one-way hash function, and this is encrypted. In the process of associating with the received data, at the time of the search, a hash value is generated by the one-way hash function for the search key input by the client and transmitted to the server side. A process for searching for the hash value associated with the encrypted data in the target and extracting the encrypted data corresponding to the area where the values match, and decrypting the encrypted data of the extraction result to obtain the original search key Select the included items and return them to the client as search results. And it features. Information about the generated hash value is stored in association with the data ID and the like. On the server side, the encrypted data received from the client side is stored and managed so that both hash values of the original data of the encrypted data can be referred to in preparation for retrieval. The extraction result from the database may include an area of encrypted data that does not correspond to the original search key, so decrypt the candidate encrypted data and check if the original search key is included. Select only the area containing the search key and return it to the client as the search result in the encrypted data state. The search result is decoded by the first and second processes and then output to the input / output interface unit.

(13)また、本発明は、前記(12)の情報セキュリティシステムのプログラムにおいて、前記検索機能が、クライアント側から前記データをデータベースへ入力する際、前記データを暗号化することに加え、前記データを所定単位に分割し、各分割されたデータについて所定の一方向ハッシュ関数によりハッシュ値を生成し前記暗号化データと関連付けて前記データベースにおける検索の際に参照可能となるように保管する処理をコンピュータに実行させることを特徴とする。   (13) Further, the present invention provides the information security system program according to (12), wherein when the search function inputs the data from the client side to the database, the data is encrypted. A process of generating a hash value for each divided data by a predetermined one-way hash function and associating it with the encrypted data so that it can be referred to when searching in the database It is made to perform.

(14)また、本発明は、前記(1)〜(13)のいずれかの情報セキュリティシステムのプログラムにおいて、クライアントが、前記データに関するアクセスの際、ユーザ証明書情報を保持する認証トークンを読み込んでここから認証情報を生成し、これによりPKI(公開鍵基盤)に基づく認証方式などの任意のユーザ認証方式に基づいてユーザ認証及びポリシー設定の確認を行わせる処理をコンピュータに実行させることを特徴とする。データベースにアクセスしてデータを取り扱う資格を持つ許可ユーザであることを識別するユーザ認証のために、公知のPKIなどに基づいたユーザ認証処理を採用し、これをクライアント側におけるデータ暗号化/復号化処理の際あるいはサーバ側におけるデータベース問い合わせ直前などにおいて行う。これにより安全な運用が可能である。クライアント側では、ユーザのアクセス許可証となる認証トークンからのユーザ証明書情報の読み込みをもとに認証情報を生成し提供してこれによりユーザ認証を行わせる。   (14) Further, in the information security system program according to any one of (1) to (13), the present invention reads an authentication token holding user certificate information when accessing the data. It is characterized in that authentication information is generated from this, thereby causing a computer to execute a process for confirming user authentication and policy setting based on an arbitrary user authentication method such as an authentication method based on PKI (public key infrastructure). To do. A user authentication process based on a known PKI or the like is adopted for user authentication for identifying an authorized user who is qualified to access the database and handle data, and this is used for data encryption / decryption on the client side. This is done at the time of processing or just before the database inquiry on the server side. Thereby, safe operation is possible. On the client side, authentication information is generated and provided on the basis of reading of user certificate information from an authentication token serving as a user access permit, thereby performing user authentication.

(15)また、本発明は、前記(1)〜(14)のいずれかの情報セキュリティシステムのプログラムにおいて、データベースに格納されるデータについて判断してその内の特定タイプのデータに対してのみ暗号化/復号化の対象とする処理をコンピュータに実行させることを特徴とする。例えばHTMLの入力フォームにおける特定フィールドの入力データ例えば名前、住所、電話番号などを対象として暗号化を行う。データベースに格納されるデータの内のすべてを暗号化する必要は必ずしも無く、前記入出力されるデータを判断して、目的とする保護のために必要十分な特定タイプのデータのみを暗号化/復号化する処理を行う。   (15) Further, according to the present invention, in the information security system program according to any one of (1) to (14), data stored in a database is judged and only a specific type of data is encrypted. It is characterized by causing a computer to execute processing to be processed / decoded. For example, encryption is performed on input data such as a name, an address, and a telephone number in a specific field in an HTML input form. It is not always necessary to encrypt all of the data stored in the database, only the specific type of data necessary and sufficient for the intended protection is determined by judging the data to be input / output. Perform processing.

本発明は、前記各処理(第1の処理〜第4の処理)及び検索機能などを実現するプログラムをモジュール単位で提供し、必要最小限から最大のセキュリティを確保する構成まで、本情報セキュリティシステムの適用対象となる既存の情報処理システムの構成状況に合わせて導入を行う。また本発明のプログラムを記憶したCD−ROMなどの記憶媒体を提供する。また本発明のプログラムを配置したクライアント装置やサーバ装置などの情報処理装置を提供し、これによりWebベースなどの情報処理システムを構成できる。   The present invention provides a program for realizing each of the processes (first process to fourth process) and a search function in units of modules, and the information security system from a necessary minimum to a maximum security configuration. Will be introduced according to the configuration status of the existing information processing system. A storage medium such as a CD-ROM storing the program of the present invention is also provided. In addition, an information processing apparatus such as a client apparatus or a server apparatus in which the program of the present invention is arranged can be provided, whereby an information processing system such as a Web base can be configured.

本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。   Among the inventions disclosed in the present application, effects obtained by typical ones will be briefly described as follows.

本発明によれば、情報処理システム上においてサーバ側でなくクライアント側でデータの暗号化/復号化を行ってサーバ側では暗号化データ状態となるようにする構成のため、不正者特に内部不正者によるデータの盗み見や入手などに対する効果的な防止を実現できる。また一般のWebブラウザで暗号システムを扱えるようになり、ユーザは特にデータの暗号化/復号化について意識する必要無くアプリケーションを利用してデータを扱うことができる。情報処理システムを利用あるいは管理する内部者例えば情報システム部員なども、暗号化データを扱うこととなるので精神的にも安心して業務を担当することができる。   According to the present invention, the configuration is such that data is encrypted / decrypted on the client side rather than the server side on the information processing system so that the server side is in an encrypted data state. It is possible to effectively prevent data snooping and acquisition by using. In addition, a general Web browser can handle an encryption system, and a user can handle data using an application without needing to be particularly aware of data encryption / decryption. An insider who uses or manages the information processing system, for example, an information system member or the like, can handle encrypted data since he / she handles encrypted data.

また、クライアントとサーバを有する情報処理システムで主にクライアント側に本発明の情報セキュリティシステムのプログラムを配置するだけで暗号機能を実現することが可能なので、既存のWebベース情報処理システムの改変を最小限にしつつ容易にセキュア化することができる。またさらにサーバ側でデータベースとASPサーバの間に本発明のプログラムを配置することでアクセス制限機能を実現し、同様に既存のWebベース情報処理システムの改変を最小限にしつつセキュア化することができる。   Also, in an information processing system having a client and a server, an encryption function can be realized only by placing the information security system program of the present invention mainly on the client side, so that the modification of the existing Web-based information processing system can be minimized. It can be easily secured while limiting. Furthermore, the access restriction function can be realized by placing the program of the present invention between the database and the ASP server on the server side, and similarly, it can be secured while minimizing the modification of the existing Web-based information processing system. .

また、本発明の提供する暗号化データについての検索機能により、データベースにおいて暗号化されて格納されているデータに対しても部分一致検索を含む検索処理を行うことができ、サーバ側では暗号化データ状態とするという方法をより有効なものとすることができる。また、暗号化データ検索時にハッシュ値を用いた検索を行うことにより、暗号化データの検索速度を向上することができる。   In addition, the search function for encrypted data provided by the present invention enables search processing including partial match search even for data that is encrypted and stored in the database. The method of setting the state can be made more effective. In addition, the search speed of the encrypted data can be improved by performing a search using the hash value when searching for the encrypted data.

以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部には原則として同一符号を付し、その繰り返しの説明は省略する。   Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. Note that components having the same function are denoted by the same reference symbols throughout the drawings for describing the embodiment, and the repetitive description thereof will be omitted.

図1は、本発明の一実施の形態における情報セキュリティシステムの全体構成を示す。また図2、図3は、本発明の実施の形態における情報セキュリティシステムの扱うデータや管理情報に関する説明図である。また、図4〜図8は、本発明の実施の形態における情報セキュリティシステムの処理動作を示すシーケンス図である。また、図9は、本実施の形態における、特にハッシュ値を用いた暗号化データ検索処理におけるデータの状態を示す説明図である。   FIG. 1 shows the overall configuration of an information security system according to an embodiment of the present invention. 2 and 3 are explanatory diagrams regarding data and management information handled by the information security system according to the embodiment of the present invention. 4 to 8 are sequence diagrams showing processing operations of the information security system in the embodiment of the present invention. FIG. 9 is an explanatory diagram showing a data state in the encrypted data search processing using the hash value, in particular, in the present embodiment.

まず図1を参照して本実施の形態の情報セキュリティシステムの構成について説明する。本実施の形態の情報セキュリティシステムは、クライアント1、ASPサーバ2、DBサーバ3を有するWebベースの情報処理システムに対し導入されるソフトウェアのシステムであり、クライアント1内のHTTPプロクシ12と、DBサーバ3内のSQLプロクシ31と、暗号管理サーバ4と、ポリシー管理サーバ5とを主な構成要素として有する構成である。HTTPプロクシ12と暗号管理サーバ4により暗号機能を実現する。またSQLプロクシ31とポリシー管理サーバ5によりアクセス制限機能を実現する。   First, the configuration of the information security system according to the present embodiment will be described with reference to FIG. The information security system according to the present embodiment is a software system introduced to a Web-based information processing system having a client 1, an ASP server 2, and a DB server 3. An HTTP proxy 12 in the client 1 and a DB server 3 has a SQL proxy 31, a cryptographic management server 4, and a policy management server 5 as main components. An encryption function is realized by the HTTP proxy 12 and the encryption management server 4. Further, an access restriction function is realized by the SQL proxy 31 and the policy management server 5.

本実施の形態の情報セキュリティシステムは、一般的な3層クライアント・サーバ構成のWebベースの情報処理システム上に構成される。クライアント1は、ユーザがサーバ側に対しデータの入出力を行う部分でありデータの入出力インターフェイスとなるWebブラウザ11を有する。入出力データはASPサーバ2での処理を経由してDBサーバ3においてデータベースに格納される。ASPサーバ2は、ASP部21で所定のビジネスロジックを処理するWebアプリケーション提供サーバである。DBサーバ3は、所定のDBMS(データベース管理システム)32においてデータベースへの前記データの入出力つまり蓄積や抽出を行う。   The information security system according to this embodiment is configured on a Web-based information processing system having a general three-tier client / server configuration. The client 1 includes a Web browser 11 that is a part where a user inputs / outputs data to / from the server side and serves as a data input / output interface. The input / output data is stored in the database in the DB server 3 through processing in the ASP server 2. The ASP server 2 is a Web application providing server that processes predetermined business logic in the ASP unit 21. The DB server 3 performs input / output, that is, accumulation and extraction of the data to / from a database in a predetermined DBMS (database management system) 32.

本実施の形態では、クライアント1は、ユーザの使用するPCやモバイル端末などの各種Webクライアント装置に対応し、ASPサーバ2はASPサーバ装置に、DBサーバ3はDBサーバ装置にそれぞれ対応する。ハードウェア的に三つのコンピュータで分割されて構成される。なお、本発明で用いているWebベースの情報処理システムの構成は一般的な3層クライアント・サーバの概念モデルに基づくものであって前記のように三つのハードウェアで分割される構成に限定するものではない。例えばビジネスロジックを処理するASPサーバ2相当の機能をクライアント装置側やDBサーバ装置側に実装することも可能である。   In the present embodiment, the client 1 corresponds to various Web client devices such as PCs and mobile terminals used by the user, the ASP server 2 corresponds to the ASP server device, and the DB server 3 corresponds to the DB server device. The hardware is divided into three computers. The configuration of the Web-based information processing system used in the present invention is based on a general conceptual model of a three-tier client / server, and is limited to a configuration divided by three hardware as described above. It is not a thing. For example, a function corresponding to the ASP server 2 for processing business logic can be implemented on the client device side or the DB server device side.

本情報セキュリティシステムは、前記Webベースの情報処理システムに対し、HTTPプロクシ12をクライアント1のWebブラウザ11−ASPサーバ2間特にクライアント1内でWebブラウザ11の背後に配置している。またSQLプロクシ31をASPサーバ2−DBMS32間特にDBサーバ3内でDBMS32の前に配置している。またASPサーバ2では、既存のASP部(アプリケーション)に加えて一部関連コード(後述の処理識別タグ追加処理などのためのコード)を有する。Webブラウザ11、ASP部21、DBMS32などは基本的に本情報セキュリティシステム導入前から使用されていた既存のものがそのまま使用可能である。   In the information security system, an HTTP proxy 12 is arranged between the Web browser 11 of the client 1 and the ASP server 2, particularly in the client 1 behind the Web browser 11, compared to the Web-based information processing system. The SQL proxy 31 is arranged between the ASP server 2 and the DBMS 32, particularly in the DB server 3 and before the DBMS 32. In addition, the ASP server 2 has a partially related code (a code for processing identification tag addition processing described later) in addition to the existing ASP unit (application). As the Web browser 11, the ASP unit 21, the DBMS 32, etc., the existing ones that have been used before the introduction of the information security system can be used as they are.

クライアント1−ASPサーバ2間は、HTTPプロトコルで通信接続される。ASPサーバ2−DBサーバ3間は、SQLに本発明関連の処理識別タグなどが加わった独自プロトコルで通信接続される。HTTPプロクシ12は、暗号管理サーバ4及びポリシー管理サーバ5と例えばSSLプロトコルを用いてセキュア通信で接続される。また、SQLプロクシ31は、暗号管理サーバ4及びポリシー管理サーバ5と例えばSSLプロトコルを用いてセキュア通信で接続される。   The client 1 and the ASP server 2 are connected for communication using the HTTP protocol. The ASP server 2 and the DB server 3 are communicatively connected by a unique protocol in which a processing identification tag related to the present invention is added to SQL. The HTTP proxy 12 is connected to the encryption management server 4 and the policy management server 5 by secure communication using, for example, the SSL protocol. The SQL proxy 31 is connected to the encryption management server 4 and the policy management server 5 by secure communication using, for example, the SSL protocol.

またPKIに基づき、認証局10との間でユーザ証明書7、ASP証明書8、DB証明書9がそれぞれ発行されている。各証明書は、ユーザ、ASPサーバ2、DBサーバ3をそれぞれ証明する情報であり、認証時には必要に応じて認証局10との間において検証が行われる。ユーザ証明書7はユーザのアクセス許可証となる認証トークン6内に記憶される。ユーザ証明書7を認証情報として用いたユーザ認証処理により、情報処理システムを利用するユーザの特定及び本人確認が可能である。ポリシー管理サーバ5でユーザ認証を行うことでシステムへのアクセス特にデータベースアクセスを許可されたユーザであることを確認する。また同様にASP証明書8の認証によりASPサーバ2の完全性が確認可能で、不正者によってASPサーバ2が操作されていないことなどが保証される。また同様にDB証明書9の認証によりDBサーバ3の完全性が確認可能で、不正者によってデータベースが操作されていないことなどが保証される。   Based on the PKI, a user certificate 7, an ASP certificate 8, and a DB certificate 9 are issued with the certificate authority 10, respectively. Each certificate is information for proving the user, the ASP server 2, and the DB server 3, and is verified with the certificate authority 10 as necessary at the time of authentication. The user certificate 7 is stored in an authentication token 6 which is a user access permit. By the user authentication process using the user certificate 7 as authentication information, the user who uses the information processing system can be identified and verified. By performing user authentication in the policy management server 5, it is confirmed that the user is permitted access to the system, particularly database access. Similarly, the integrity of the ASP server 2 can be confirmed by the authentication of the ASP certificate 8, and it is guaranteed that the ASP server 2 is not operated by an unauthorized person. Similarly, the integrity of the DB server 3 can be confirmed by authenticating the DB certificate 9, and it is guaranteed that the database is not operated by an unauthorized person.

クライアント1は、これに対応する一つ以上のWebクライアント装置が、ユーザが使用可能な任意位置に配置される。これには遠隔端末からのネットワークアクセスの構成も含む。ASPサーバ2、DBサーバ3は、例えば所定のサーバルームに配置される。暗号管理サーバ4、ポリシー管理サーバ5は、任意のセキュアな位置に配置される。例えば所定のセキュリティレベルを保証するセキュリティサービス会社やデータセンターなどのサーバルームへの配置などである。   In the client 1, one or more Web client devices corresponding to the client 1 are arranged at an arbitrary position where the user can use. This includes the configuration of network access from a remote terminal. The ASP server 2 and the DB server 3 are arranged in a predetermined server room, for example. The encryption management server 4 and the policy management server 5 are arranged at arbitrary secure positions. For example, it may be arranged in a server room such as a security service company or a data center that guarantees a predetermined security level.

クライアント1は、Webブラウザ11と、HTTPプロクシ12とを有する。HTTPプロクシ12は、Webブラウザ11とは独立しており、その背後において透過的に暗号化/復号化処理動作を行う。HTTPプロクシ12と認証トークン6との間では、認証トークン6内に記憶されているユーザ証明書7などのユーザ情報のやり取りが必要に応じて行われる。   The client 1 has a Web browser 11 and an HTTP proxy 12. The HTTP proxy 12 is independent of the Web browser 11 and transparently performs encryption / decryption processing operations behind it. Between the HTTP proxy 12 and the authentication token 6, user information such as the user certificate 7 stored in the authentication token 6 is exchanged as necessary.

ユーザは、クライアント1において、Webブラウザ11を操作し、ASPサーバ2のWebアプリケーションからHTMLデータを得る。またクライアント1で認証トークン6の情報を読み込ませてポリシー管理サーバ5におけるユーザ認証を通過してデータベースへの接続チケットを得る。ユーザは、Webブラウザ11において必要に応じてデータの入力や出力を行う。データの入力とは、DBサーバ3にアクセスしてデータベースにデータを蓄積することであり、データの出力とはDBサーバ3にアクセスしてデータベースからデータを抽出することである。   The user operates the Web browser 11 on the client 1 to obtain HTML data from the Web application of the ASP server 2. The client 1 reads the information of the authentication token 6 and passes the user authentication in the policy management server 5 to obtain a connection ticket to the database. The user inputs and outputs data as necessary in the Web browser 11. Data input is to access the DB server 3 and accumulate data in the database, and data output is to access the DB server 3 and extract data from the database.

ASPサーバ2は、ASP部21と、SQLプロクシドライバ22とを有する。ASP部21は既存のWebアプリケーションであり、イントラネットなどにおける所定の情報処理業務に対応するビジネスロジックを処理する。ASPサーバ2は、HTTPサーバモジュールを備え、クライアント1のWebブラウザ11からのHTTPプロクシ12を介した要求に対して応答しHTMLデータを返信する。ASPサーバ2は、暗号化/復号化の対象となるデータに対して本発明の処理に係わることを示す処理識別タグ(制御情報)やデータIDなどを追加する処理を行う。SQLプロクシドライバ22は、データベースクライアントモジュールであり、SQLプロクシ31を介してDBMS32に対してデータの問い合わせや制御のためのSQL命令を発行するモジュールである。   The ASP server 2 includes an ASP unit 21 and an SQL proxy driver 22. The ASP unit 21 is an existing Web application, and processes business logic corresponding to a predetermined information processing task in an intranet or the like. The ASP server 2 includes an HTTP server module, and responds to a request from the Web browser 11 of the client 1 via the HTTP proxy 12 and returns HTML data. The ASP server 2 performs a process of adding a process identification tag (control information), a data ID, and the like indicating that it is related to the process of the present invention to the data to be encrypted / decrypted. The SQL proxy driver 22 is a database client module, and is a module that issues an SQL command for inquiring and controlling data to the DBMS 32 via the SQL proxy 31.

DBサーバ3は、SQLプロクシ31と、DBMS32とを有する。本実施の形態では、リレーショナル・データベースとその問い合わせ言語であるSQLを扱う。   The DB server 3 includes an SQL proxy 31 and a DBMS 32. In this embodiment, the relational database and the query language SQL are handled.

SQLプロクシ31は、ASPサーバ2−DBMS32間に介在し、ASPサーバ2のSQLプロクシドライバ22からSQL命令及び本発明関連処理のための処理識別情報(制御情報)を受け取ると、ポリシー管理サーバ5と通信を行って該当ユーザのアクセス権限を確認してそれに対応する適切な問い合わせ条件を設定してDBMS32に対しSQL命令を送信する。   When the SQL proxy 31 is interposed between the ASP server 2 and the DBMS 32 and receives the SQL command and the processing identification information (control information) for processing related to the present invention from the SQL proxy driver 22 of the ASP server 2, the policy management server 5 Communication is performed, the access authority of the corresponding user is confirmed, an appropriate inquiry condition corresponding to the user is set, and an SQL command is transmitted to the DBMS 32.

DBMS32は、リレーショナル・データベースを管理するデータベース管理システムであり、SQLプロクシ31を通じて受信するSQL命令に応じてデータベースの制御、データ操作、抽出などを行って結果を返す。具体的には、データベース接続(対応するSQL命令は「CONNECT」)、データの追加(「INSERT」)や変更(「UPDATE」)、指定データの取得やデータ検索(「SELECT」)などがある。また、DBMS32ではデータベースのバックアップ処理など所定の運用管理がなされる。データベースには暗号化データが格納されるので、バックアップデータも同様に暗号化データの形式となり、仮にこれが不正者により持ち出されても復号化に必要な鍵情報は暗号管理サーバ4に管理されているため意味をなさない。   The DBMS 32 is a database management system that manages a relational database. The DBMS 32 performs database control, data manipulation, extraction, and the like according to an SQL command received through the SQL proxy 31, and returns a result. Specifically, there are database connection (corresponding SQL instruction is “CONNECT”), data addition (“INSERT”) or change (“UPDATE”), acquisition of designated data, data search (“SELECT”), and the like. The DBMS 32 performs predetermined operation management such as database backup processing. Since encrypted data is stored in the database, the backup data is also in the form of encrypted data. Even if this is taken out by an unauthorized person, key information necessary for decryption is managed by the encryption management server 4. So it doesn't make sense.

暗号管理サーバ4は、DBサーバ3のデータベースへの格納対象となるデータについての暗号処理を管理するサーバであり、HTTPプロクシ12からの要求に応じてデータの暗号化/復号化処理を行う。所定の暗号アルゴリズムを使用して暗号化/復号化がなされる。ユーザによるデータベースへのデータの入力時には、クライアント1でWebブラウザ11から入力された対象データについてHTTPプロクシ12からの依頼に基づき暗号化処理を行って暗号化データを返し、これがサーバ側(ASPサーバ2,DBサーバ3)に渡される。また、ユーザによるデータベースからのデータの出力時には、HTTPプロクシ11からの依頼に基づき対象データの復号化処理を行ってデータを返し、これがWebブラウザ11に渡される。暗号化/復号化に使用する鍵は、ポリシー管理サーバ5よりデータIDを受信した際などに必要に応じて作成し保管する。   The encryption management server 4 is a server that manages encryption processing for data to be stored in the database of the DB server 3, and performs data encryption / decryption processing in response to a request from the HTTP proxy 12. Encryption / decryption is performed using a predetermined encryption algorithm. When the user inputs data to the database, the target data input from the Web browser 11 by the client 1 is encrypted based on a request from the HTTP proxy 12 and returned to the server side (the ASP server 2). , DB server 3). In addition, when data is output from the database by the user, the target data is decrypted based on a request from the HTTP proxy 11 to return the data, which is passed to the Web browser 11. A key used for encryption / decryption is created and stored as necessary when a data ID is received from the policy management server 5.

暗号管理サーバ4は、暗号化/復号化の際の鍵情報をセキュアに管理する。暗号管理サーバ4は、暗号管理情報として、対象となるデータのデータIDと、そのデータに対する暗号化/復号化の鍵との対応を管理する。この鍵管理はWebベース情報処理システムから分離されている。なおこの鍵管理を分離せずASPサーバ2やDBサーバ3付近に置いて運用する構成も可能であり、これはシステム運用におけるポリシーに依存する。   The encryption management server 4 securely manages key information at the time of encryption / decryption. The encryption management server 4 manages the correspondence between the data ID of the target data and the encryption / decryption key for the data as encryption management information. This key management is separated from the Web-based information processing system. A configuration in which the key management is not separated and operated near the ASP server 2 or the DB server 3 is also possible, and this depends on a policy in system operation.

ポリシー管理サーバ5は、ユーザ単位のポリシーの設定を管理するサーバであり、この設定には、データベースにおけるテーブル、レコード、カラム、セルなどの所定データ単位を対象としたアクセス権限の設定を含む。ポリシー管理サーバ5は、所定データ単位で、暗号化が必要なデータに対してそのデータIDを設定する。また、ポリシー管理サーバ5は、ユーザの認証トークン6との間でユーザ認証処理を行う。前記ポリシーとしては、データベースに格納されるデータについて、どのユーザがどのデータを読み取れるようにするか、データに対するどのような操作を許可するかなど、データの目的外利用や外部侵入、情報機密漏洩などを防止するための方針を定める。前記アクセス権限を設定することでユーザごとにアクセス可能なデータを分けることができる。例えば病院の電子カルテシステムで、あるグループ例えば外科の患者を担当する看護士はその外科の患者の電子カルテデータについてのみアクセス許可されるようにポリシー設定し、別グループである内科の患者を担当する看護士はその内科の患者の電子カルテデータについてのみアクセス許可されるように設定する。   The policy management server 5 is a server that manages policy settings for each user. This setting includes setting of access authority for a predetermined data unit such as a table, record, column, cell, etc. in the database. The policy management server 5 sets the data ID for data that needs to be encrypted in a predetermined data unit. Further, the policy management server 5 performs user authentication processing with the user authentication token 6. As the policy, for data stored in the database, which users can read which data, what operations are allowed for data, such as unintended use of data, external intrusion, leakage of information security, etc. Establish a policy to prevent By setting the access authority, accessible data can be divided for each user. For example, in a hospital electronic medical record system, a nurse who handles a group of patients, for example, a surgical patient, sets a policy to allow access only to the electronic medical record data of the surgical patient, and is responsible for another group of internal medicine patients. The nurse is set so that access is permitted only for the electronic medical record data of the internal medicine patient.

ポリシー管理サーバ5は、HTTPプロクシ12やSQLプロクシ31からの要求に応じて、PKIに基づくユーザ認証と、ユーザのアクセス権限の設定を含むポリシー設定の確認処理及び該当アクセスユーザに対する権限付与とを行う。特にSQLプロクシ31からアクセス権限の確認及び付与の要求を受けた場合は、ユーザがデータベースにおいてアクセス許可される領域あるいはデータを制限する条件を記述した情報を生成して返す。ポリシー管理サーバ5は、ポリシー管理情報として、ユーザを一意に特定するユーザIDとデータを一意に特定するデータIDとの対応を管理する。あるデータIDで識別されるデータにアクセス可能なユーザがユーザIDで対応付けされる。ポリシー管理サーバ5は、認証トークンとの間でのユーザ認証処理後、認証を正常に通過したユーザに対して、データベースへの接続の許可を示す情報である接続チケットを発行し、以後セッション内ではこの接続チケットをもとに認証や確認を行わせる。HTTPプロクシ12は、発行された接続チケットの情報を必要に応じて提示してサーバ側にアクセスを行う。   In response to a request from the HTTP proxy 12 or the SQL proxy 31, the policy management server 5 performs user authentication based on PKI, policy setting confirmation processing including setting of user access authority, and authority assignment to the corresponding access user. . In particular, when a request for confirming and granting access authority is received from the SQL proxy 31, the user generates and returns information describing conditions for restricting the area or data to which access is permitted in the database. The policy management server 5 manages the correspondence between a user ID that uniquely identifies a user and a data ID that uniquely identifies data as policy management information. A user who can access data identified by a certain data ID is associated with the user ID. After the user authentication process with the authentication token, the policy management server 5 issues a connection ticket, which is information indicating permission of connection to the database, to a user who has successfully passed the authentication. Authentication and confirmation are performed based on this connection ticket. The HTTP proxy 12 presents information on the issued connection ticket as necessary to access the server side.

HTTPプロクシ12は、クライアント1のWebブラウザ11とASPサーバ2との間におけるHTTPプロトコル及び関連プロトコルによる通信に自動的に介入し、DBサーバ3のデータベースに格納されるデータについて暗号化/復号化の必要を判断して暗号管理サーバ4により暗号化/復号化処理を行わせる。HTTPプロクシ12は、Webブラウザ11/ASPサーバ2から受信した対象データについて暗号化/復号化の必要があると判断した場合は暗号管理サーバ4に対象データの暗号化/復号化の依頼を行ってそこで適切な鍵情報を使用して対象データの暗号化/復号化処理を行わせ、暗号化/復号化されたデータを得てASPサーバ2/Webブラウザ11に返す。   The HTTP proxy 12 automatically intervenes in communication using the HTTP protocol and related protocols between the Web browser 11 of the client 1 and the ASP server 2, and encrypts / decrypts data stored in the database of the DB server 3. The encryption management server 4 performs encryption / decryption processing after determining necessity. When the HTTP proxy 12 determines that the target data received from the Web browser 11 / ASP server 2 needs to be encrypted / decrypted, it requests the encryption management server 4 to encrypt / decrypt the target data. Therefore, encryption / decryption processing of the target data is performed using appropriate key information, and the encrypted / decrypted data is obtained and returned to the ASP server 2 / Web browser 11.

HTTPプロクシ12は、Webブラウザ11との通信部、ASPサーバとの通信部、暗号管理サーバ4との通信部、ポリシー管理サーバ5との通信部、認証トークン6の情報を読み込んでポリシー管理サーバ5などとの間で認証処理を行う認証処理部、データの暗号化を判断する暗号化処理部、データの復号化を判断する復号化処理部、データ検索を判断する検索処理部などの図示しないプログラムモジュールを有し、それぞれ連携して処理を行う。クライアント1に対応するコンピュータは、メモリ上にHTTPプロクシ12を構成する前記各プログラムモジュールを有し、プロセッサにより読み込んで処理命令を実行することで各種処理が実現される。   The HTTP proxy 12 reads the information of the communication unit with the Web browser 11, the communication unit with the ASP server, the communication unit with the encryption management server 4, the communication unit with the policy management server 5, and the authentication token 6 to read the policy management server 5. An unillustrated program such as an authentication processing unit that performs an authentication process with an encryption processing unit, an encryption processing unit that determines data encryption, a decryption processing unit that determines data decryption, a search processing unit that determines data search, etc. It has modules and processes them in cooperation. A computer corresponding to the client 1 has the program modules constituting the HTTP proxy 12 on a memory, and various processes are realized by reading them by a processor and executing processing instructions.

なお一般の「HTTPプロクシ」は、Web閲覧のための一つ以上のWebクライアントからのHTTPプロトコルによる通信処理を代理するものを指すが、本実施の形態におけるHTTPプロクシ12は単に通信処理の代理を行うだけでなく対象データの暗号化/復号化及び関連処理をWebベースの情報処理システムの裏で行うものである。   Note that a general “HTTP proxy” refers to proxying communication processing by HTTP protocol from one or more Web clients for Web browsing, but the HTTP proxy 12 in the present embodiment is simply proxying communication processing. In addition to this, encryption / decryption of target data and related processing are performed behind the Web-based information processing system.

図2は、情報処理システム上におけるデータの暗号化/復号化の状態を示す説明図である。d1〜d5は、あるデータに関する状態を示す。d1,d2は、ユーザが判読可能な通常状態(未暗号化状態または復号化された状態)のデータを示し、d3,d4,d5は、暗号化された状態の暗号化データを示す。クライアント1のWebブラウザ11において入力されるデータd1についての暗号化/復号化処理は、クライアント1でWebブラウザ11の背後で動作するHTTPプロクシ12とセキュアな位置に配置され暗号処理及び鍵情報の管理を行う暗号管理サーバ4とによる暗号機能を通じて行われる。データd1をクライアント1のWebブラウザ11からサーバ側のDBMS32のデータベースに入力(蓄積)する際は、暗号機能によりデータd2の暗号化が行われて暗号化データd3の状態となり、暗号化データd3がサーバ側(ASPサーバ2)に渡される。ASPサーバ2では暗号化データd4の状態を扱う。また、DBサーバ3ではDBMS32のデータベースに暗号化データd5の状態で格納される。サーバ側のデータベース中からデータつまり暗号化データd5をクライアント1側に出力(抽出)する際は、ASPサーバ2を通じて暗号化データd4がクライアント1側に送信されると、暗号機能で暗号化データd3の復号化を行って元のデータd2に戻され、Webブラウザ11でデータd1の状態で出力される。このようにサーバ側では判読不能な暗号化データが扱われることとなり、対象データをそのまま判読可能な形で出力できるのはクライアント1側における許可ユーザのみとなる。仮にサーバ側で暗号化データが不正者によって入手されたとしても、復号化のための鍵情報はセキュアな暗号管理サーバ4に管理されていて手に入らないため意味をなさない。許可ユーザの判断は、また図2中に示すようにポリシー管理サーバ5及びSQLプロクシ31によるアクセス制限機能を有し、DBMS32の前段及びHTTPプロクシ12との通信に基づくにおいてユーザ認証及びユーザのベースアクセスの制限が行われる。   FIG. 2 is an explanatory diagram showing a state of data encryption / decryption on the information processing system. d1 to d5 indicate states related to certain data. d1 and d2 indicate data in a normal state (unencrypted state or decrypted state) that can be read by the user, and d3, d4, and d5 indicate encrypted data in an encrypted state. The encryption / decryption processing for the data d1 input in the Web browser 11 of the client 1 is arranged in a secure position with the HTTP proxy 12 operating behind the Web browser 11 in the client 1 and management of encryption processing and key information This is performed through an encryption function by the encryption management server 4 that performs the above. When the data d1 is input (stored) from the Web browser 11 of the client 1 to the database of the DBMS 32 on the server side, the data d2 is encrypted by the encryption function to be in the state of the encrypted data d3. It is passed to the server side (ASP server 2). The ASP server 2 handles the state of the encrypted data d4. Further, the DB server 3 stores the encrypted data d5 in the database of the DBMS 32. When data (that is, encrypted data d5) is output (extracted) from the database on the server side to the client 1 side, the encrypted data d3 is transmitted by the encryption function when the encrypted data d4 is transmitted to the client 1 side through the ASP server 2. Is restored to the original data d2, and is output in the state of data d1 by the Web browser 11. In this way, encrypted data that cannot be read on the server side is handled, and only the authorized user on the client 1 side can output the target data in a form that can be read as it is. Even if the encrypted data is obtained by an unauthorized person on the server side, the key information for decryption is managed by the secure encryption management server 4 and cannot be obtained, so it does not make sense. As shown in FIG. 2, the authorized user has a function of restricting access by the policy management server 5 and the SQL proxy 31, and performs user authentication and user base access based on communication with the preceding stage of the DBMS 32 and the HTTP proxy 12. Restrictions are made.

SQLプロクシ31は、ユーザによるDBMS32のデータベースへのアクセスの制限を行う機能を担う処理部である。SQLプロクシ31は、ASPサーバ2を通じてDBMS32へのアクセスがあった際にSQLプロクシドライバ22からSQL命令を受け取ると、ポリシー管理サーバ5と通信を行って、データベースアクセスを行おうとしているユーザについてのユーザ認証を行い、またポリシー管理サーバ5で設定されているユーザのアクセス権限を含むポリシーの確認を行う。ユーザ認証の正常な通過により該当ユーザのデータベースアクセスを許可し、またポリシーの確認に基づき該当ユーザについてのデータベースアクセス権限の付与を行い、データベースへのアクセス領域あるいはデータを絞り込む。ユーザのデータベース接続後のセッションにおいて、データベースへのアクセスの発生の度に、前記アクセス領域あるいはデータの絞り込みの条件をSQL命令に付加する。また、SQLプロクシ31は、後述する暗号化データ検索処理の際に暗号管理サーバ4と通信を行って検索支援機能による検索処理を行わせる。なおSQLプロクシ31は、本実施の形態の場合、DBサーバ3内でDBMS32の前面に配置しているが、ASPサーバ2−DBMS32間に介在すればどこに配置しても構わない。   The SQL proxy 31 is a processing unit having a function of restricting access to the database of the DBMS 32 by the user. When the SQL proxy 31 receives an SQL command from the SQL proxy driver 22 when accessing the DBMS 32 through the ASP server 2, the SQL proxy 31 communicates with the policy management server 5 and performs a user access to the database. Authentication is performed, and the policy including the access authority of the user set in the policy management server 5 is confirmed. The database access of the corresponding user is permitted by the normal pass of the user authentication, and the database access authority for the corresponding user is given based on the policy confirmation, and the access area or data to the database is narrowed down. In the session after the user connects to the database, the access area or the condition for narrowing down the data is added to the SQL command every time the database is accessed. In addition, the SQL proxy 31 communicates with the encryption management server 4 during an encrypted data search process to be described later, and causes the search support function to perform a search process. In the present embodiment, the SQL proxy 31 is arranged in front of the DBMS 32 in the DB server 3, but may be arranged anywhere as long as it is interposed between the ASP server 2 and the DBMS 32.

SQLプロクシ31と、ポリシー管理サーバ5及び暗号管理サーバ4との間は必要時にSSLなどを用いてセキュア通信で接続される。本実施の形態では、SQLプロクシ31と、ポリシー管理サーバ5及び暗号管理サーバ4との間の任意位置にIPパケットプロクシ311を配置している。IPパケットプロクシ311は、SQLプロクシ31のアドレスを隠蔽してセキュリティを高める機能を担う。ポリシー管理サーバ5及び暗号管理サーバ4には、構築された情報セキュリティシステム数に応じた複数のSQLプロクシ31が接続されることとなるが、IPパケットプロクシ311でのアドレス隠蔽機能により、各SQLプロクシ31を統一的に扱えるため、SQLプロクシ31との通信のセキュリティをより高めることが可能となる。このIPパケットプロクシ311は必須要素ではなく、他の実施の形態としてこれを配置しない構成も勿論可能である。IPパケットプロクシ311は適用対象の情報処理システムにおいて要求されるキュリティレベルに応じて導入すればよい。   The SQL proxy 31, the policy management server 5, and the encryption management server 4 are connected by secure communication using SSL or the like when necessary. In the present embodiment, the IP packet proxy 311 is arranged at an arbitrary position between the SQL proxy 31 and the policy management server 5 and the encryption management server 4. The IP packet proxy 311 has a function of hiding the address of the SQL proxy 31 and improving security. A plurality of SQL proxies 31 corresponding to the number of constructed information security systems are connected to the policy management server 5 and the cipher management server 4, but each SQL proxy is protected by the address concealment function in the IP packet proxy 311. Since 31 can be handled uniformly, the security of communication with the SQL proxy 31 can be further increased. This IP packet proxy 311 is not an essential element, and it is of course possible to adopt a configuration in which it is not arranged as another embodiment. The IP packet proxy 311 may be introduced according to the security level required in the information processing system to be applied.

暗号管理サーバ4、ポリシー管理サーバ5の配置位置は任意であるが、セキュリティを高めるために本実施の形態では、鍵情報を管理する暗号管理サーバ4及びポリシーを管理するポリシー管理サーバ5を対象Webベース情報処理システムとは別ドメインで管理し、暗号管理サーバ4やポリシー管理サーバ5にアクセスしてくるSQLプロクシ31がIPパケットプロクシ311によりアドレス隠蔽されながらも確実に認証されている状態、を保持する。   The arrangement positions of the cryptographic management server 4 and the policy management server 5 are arbitrary, but in order to increase security, in this embodiment, the cryptographic management server 4 that manages key information and the policy management server 5 that manages policies are targeted Webs. Managed in a domain different from the base information processing system, maintains the state in which the SQL proxy 31 accessing the encryption management server 4 and policy management server 5 is securely authenticated while being concealed by the IP packet proxy 311 To do.

情報処理システムの利用を所定のポリシー設定に基づき許可されるユーザに対しては、システムへのアクセス許可証として機能する認証トークン6が与えられている。認証トークン6は、耐タンパー性を持った、ソフトウェアまたはハードウェアによって実装される暗号演算器であり、ユーザに固有の情報(秘密鍵など)を保持するものである。本実施の形態では、認証トークン6はハードウェア構成によるモジュールであり、メモリとプロセッサを有する所定形状の情報記憶媒体である。認証トークン6内のメモリにユーザ証明書7、PKIにおける秘密鍵の情報などを保持している。認証トークン6内では、ユーザ証明書7の提供の他、プロセッサによりデジタル署名の生成などの処理が行われる。認証トークン6は、例えばUSBトークンやICカードなどの形態を採る。本実施の形態では、クライアント1において認証トークン6の情報を読み込むことでユーザ証明書7の情報を用いてポリシー管理サーバ5でユーザ認証処理が行われる。ユーザ証明書7とポリシー管理サーバ5で管理されるユーザIDは対応し、これを用いてユーザ単位のアクセス権限管理が行われる。ポリシー管理サーバ5でのユーザ認証に成功すると、ユーザのデータベースアクセスが許可され、ユーザに対し接続チケットが発行される。この接続チケットは、一認証セッションにおいて有効な情報を暗号化して保存したものであり、リトライ攻撃などから保護するために、保存情報として有効期限などの情報を持つ。クライアント1は、この接続チケットをサーバ側に提示することで正規ユーザであること及びアクセス権限を有することを伝える。   An authentication token 6 that functions as an access permit to the system is given to a user who is permitted to use the information processing system based on a predetermined policy setting. The authentication token 6 is a cryptographic operation unit implemented by software or hardware having tamper resistance, and holds information unique to the user (such as a secret key). In the present embodiment, the authentication token 6 is a module having a hardware configuration, and is an information storage medium having a predetermined shape having a memory and a processor. The memory in the authentication token 6 holds the user certificate 7, private key information in the PKI, and the like. In the authentication token 6, in addition to providing the user certificate 7, processing such as generation of a digital signature is performed by the processor. The authentication token 6 takes the form of a USB token or an IC card, for example. In this embodiment, the policy management server 5 performs user authentication processing using the information of the user certificate 7 by reading the information of the authentication token 6 in the client 1. The user certificate 7 and the user ID managed by the policy management server 5 correspond to each other, and access authority management for each user is performed using this. If the user authentication in the policy management server 5 is successful, the user's database access is permitted and a connection ticket is issued to the user. This connection ticket is obtained by encrypting and saving valid information in one authentication session, and has information such as an expiration date as saved information in order to protect it from a retry attack or the like. The client 1 informs that it is a regular user and has access authority by presenting this connection ticket to the server side.

図3(a)は、暗号管理サーバ4内で管理する暗号管理情報を示す。暗号管理情報として、対象データを識別するデータID41と、そのデータについての暗号化/復号化の際に使用する鍵情報42と、さらには後述のハッシュ情報43、処理内容44などとの対応をテーブルに保持している。データID41は、ポリシー管理サーバ5が対象データに対して振り出したものであり、ユーザIDとの対応関係を持つ。鍵情報42は、鍵の値を保持している参照先アドレスあるいは鍵の値そのものの情報である。ハッシュ情報43は、後述する暗号化データ検索処理のために使用する情報であり、対象データに対する所定の一方向ハッシュ関数によるハッシュ値を管理するものである。ハッシュ情報43は、そのハッシュ値を保持している参照先アドレスあるいはハッシュ値そのものなどの情報である。処理属性44は、対象データに対する前記鍵情報41による暗号化や一方向ハッシュ化などの処理内容や、処理状態、対象データのタイプ、暗号化対象か否かなどの諸情報である。他に、データID41に対応するユーザIDの情報などを持たせても良い。   FIG. 3A shows encryption management information managed in the encryption management server 4. As encryption management information, correspondence between a data ID 41 for identifying target data, key information 42 used for encryption / decryption of the data, hash information 43, processing contents 44, and the like, which will be described later, is a table. Hold on. The data ID 41 is created for the target data by the policy management server 5 and has a correspondence relationship with the user ID. The key information 42 is information on the reference destination address that holds the key value or the key value itself. The hash information 43 is information used for encrypted data search processing, which will be described later, and manages a hash value by a predetermined one-way hash function for target data. The hash information 43 is information such as a reference address that holds the hash value or the hash value itself. The processing attribute 44 is various information such as processing contents such as encryption or one-way hashing with respect to the target data by the key information 41, a processing state, a type of the target data, and whether or not to be encrypted. In addition, information of a user ID corresponding to the data ID 41 may be provided.

なおHTTPプロクシ12及び暗号管理サーバ4における暗号処理方式は特に限定されないのでその暗号化と復号化の鍵を区別せずにまとめて一つの鍵42として表わしている。暗号処理方式に応じて複数の鍵を使用する場合は必要な複数の鍵情報が暗号管理サーバ4で管理される。   The encryption processing method in the HTTP proxy 12 and the encryption management server 4 is not particularly limited, and the encryption and decryption keys are collectively shown as one key 42 without being distinguished. When a plurality of keys are used according to the encryption processing method, a plurality of necessary key information is managed by the encryption management server 4.

図3(b)は、ポリシー管理サーバ5内で管理するポリシー管理情報を示す。ユーザ証明書7の情報に対応してユーザを特定するユーザID51と、そのユーザがアクセス許可されるデータを特定するデータID52と、の対応がテーブルに管理されている。データID52はポリシー管理サーバ5が必要に応じて生成し対象データに付与する。これは図3(a)の暗号管理情報におけるデータID41にそのまま対応する。なお対象データに対するデータID41あるいはデータID52の生成・付与を暗号管理サーバ4など他のモジュールから行う形態も可能である。図3(b)ではポリシー管理情報としてユーザID51とデータID52の対応のみ示しているが、他に、ユーザやユーザグループ単位のデータベースアクセス許可領域や、レコード・カラムなどの扱うデータ単位などの諸情報を保管して使用しても良い。   FIG. 3B shows policy management information managed in the policy management server 5. The correspondence between the user ID 51 that identifies the user corresponding to the information of the user certificate 7 and the data ID 52 that identifies the data that the user is permitted to access is managed in the table. The data ID 52 is generated as necessary by the policy management server 5 and assigned to the target data. This corresponds directly to the data ID 41 in the encryption management information of FIG. A form in which the data ID 41 or the data ID 52 for the target data is generated / assigned from another module such as the encryption management server 4 is also possible. In FIG. 3B, only correspondence between the user ID 51 and the data ID 52 is shown as the policy management information. May be stored and used.

暗号管理サーバ4は、前記のような暗号化/復号化処理の機能に加え、データベースに格納された暗号化データの検索のための検索支援機能を提供する。ユーザより入力された検索キー(検索ワード)そのままではデータベース中の暗号化データについての検索ができない。従って、検索キーを暗号管理サーバ4で暗号化してこの暗号化された検索キーでデータベース問い合わせを行わせることとなる。対象データの暗号化鍵と同一鍵で検索キーを暗号化して完全一致検索を行うことで検索結果を得ることが可能である。   The encryption management server 4 provides a search support function for searching for encrypted data stored in the database, in addition to the encryption / decryption processing function as described above. If the search key (search word) input by the user is used as it is, it is not possible to search for encrypted data in the database. Therefore, the search key is encrypted by the encryption management server 4 and a database inquiry is made with the encrypted search key. A search result can be obtained by performing a complete match search by encrypting the search key with the same key as the encryption key of the target data.

Webブラウザ11でデータベースにおける暗号化済み領域に対する検索指定及び検索条件の指定が行われると、HTTPプロクシ12はそれを認識し、暗号化データ検索処理モードとなる。暗号管理サーバ4では、HTTPプロクシ12からの暗号化データ検索要求に基づき暗号化データ検索の検索条件に含まれる検索キーを受け取って検索キーの暗号化(あるいは一方向ハッシュ化)を行う。暗号化された検索キーをHTTPプロクシ12に返し、HTTPプロクシ12は、暗号化された検索キーをASPサーバ2に渡す。ASPサーバ2のSQLプロクシドライバ22は暗号化された検索キーを用いてデータ検索のSQL命令である「SELECT」を適切に設定してDBサーバ3に対する問い合わせを送信する。SQLプロクシ31ではポリシー管理サーバ5でユーザのアクセス権限の確認を行ってデータベースアクセス領域の絞り込み条件を付与してからDBMS32にSQL命令を与える。DBMS32では、暗号化された検索キーでデータ検索がなされ、検索結果の暗号化データのリストがSQLプロクシ31で得られる。SQLプロクシ31は検索結果について必要なら絞り込みやデータ補完等の処理を行ってからASPサーバ2に送信する。ASPサーバ2は検索結果のHTMLをWebブラウザ11に送信する。これにHTTPプロクシ12が介入し、検索結果に含まれる暗号化データについての復号化依頼を暗号管理サーバ4に行って復号化を行わせ、復号化されたデータで検索結果中の暗号化データを元データに置き換えてからWebブラウザ11に返して出力させる。クライアント側で指定された検索条件をサーバ側のDBMS32に対して伝える処理方法などについては上記手順以外にも可能である。   When the Web browser 11 designates the search and the search condition for the encrypted area in the database, the HTTP proxy 12 recognizes it and enters the encrypted data search processing mode. The encryption management server 4 receives the search key included in the search condition of the encrypted data search based on the encrypted data search request from the HTTP proxy 12, and encrypts the search key (or one-way hash). The encrypted search key is returned to the HTTP proxy 12, and the HTTP proxy 12 passes the encrypted search key to the ASP server 2. The SQL proxy driver 22 of the ASP server 2 appropriately sets “SELECT”, which is a data search SQL command, using the encrypted search key, and transmits an inquiry to the DB server 3. In the SQL proxy 31, the policy management server 5 confirms the access authority of the user and assigns a database access area narrowing condition, and then gives an SQL command to the DBMS 32. In the DBMS 32, data search is performed using the encrypted search key, and a list of encrypted data as a search result is obtained by the SQL proxy 31. The SQL proxy 31 transmits the search result to the ASP server 2 after performing processing such as narrowing down and data complementing if necessary. The ASP server 2 transmits the search result HTML to the Web browser 11. The HTTP proxy 12 intervenes in this manner, and sends the decryption request for the encrypted data included in the search result to the encryption management server 4 so that the decryption is performed. After replacing with the original data, it is returned to the Web browser 11 for output. A processing method for transmitting the search condition designated on the client side to the DBMS 32 on the server side is possible in addition to the above procedure.

暗号化データ検索の基本的な処理は上のようになるが、検索結果が多量のデータとなる場合を考慮しなければならないため、検索の効率化のための処理方法を提供する。暗号管理サーバ4の検索支援機能は、検索の効率化を実現するための処理として、ハッシュ値を用いた検索処理を提供する。検索処理要求が発生した時、完全一致検索、部分一致検索などの検索処理モードを判断し、それに合わせた処理を行う。特に部分一致検索の際にハッシュ値を用いた検索を行うことが有効となる。   Although the basic processing of the encrypted data search is as described above, it is necessary to consider the case where the search result is a large amount of data, and therefore a processing method for improving the search efficiency is provided. The search support function of the encryption management server 4 provides a search process using a hash value as a process for realizing efficient search. When a search processing request is generated, a search processing mode such as complete match search or partial match search is determined, and processing corresponding to that is performed. In particular, it is effective to perform a search using a hash value in a partial match search.

ハッシュ値を用いる検索処理について説明する。この処理を行う形態では、クライアント1側からデータをデータベースへ入力する際に、暗号管理サーバ4で、対象データを暗号化することに加え、対象データを所定の一方向ハッシュ関数によりハッシュ化してそのハッシュ値を生成する。ハッシュ化は非可逆暗号化でありそのハッシュ値は固定ビットサイズのデータとなる。生成したハッシュ値についての情報は、暗号管理情報におけるハッシュ情報43としてデータID41他に関連付けて保管する。DBサーバ3では、暗号化データを保管すると共に、検索に備えてこの暗号化データの元データについてのハッシュ値を関連付けて両方参照できるように管理しておく。   Search processing using a hash value will be described. In this embodiment, when data is input from the client 1 side to the database, the encryption management server 4 encrypts the target data, and in addition to encrypting the target data with a predetermined one-way hash function, Generate a hash value. Hashing is irreversible encryption, and the hash value is data of a fixed bit size. Information about the generated hash value is stored in association with the data ID 41 and others as hash information 43 in the encryption management information. The DB server 3 stores the encrypted data and manages the hash value of the original data of the encrypted data so that both can be referred to in preparation for the search.

暗号化データ検索時、ハッシュ値を用いた検索処理を行う場合に、HTTPプロクシ12は、暗号管理サーバ4に依頼して検索キーについて所定の一方向ハッシュ関数によりハッシュ化してハッシュ値の生成を行わせる。HTTPプロクシ12は、このハッシュ値を検索キーとしてサーバ側に与え、データベースの検索を行わせる。データベースの検索は、データベース中の暗号化データに対応する元データのハッシュ値が対象となるように行う。前記検索キーとなるハッシュ値によってデータベース中で一致する値の領域を抽出する。この抽出結果には元の検索キーに対応しない領域も含まれるので、後の処理(検索支援機能による検索処理)で確認して元の検索キーに対応する領域のみ抽出することとする。この抽出結果のリストに対して、SQLプロクシ31は、暗号管理サーバ4の検索支援機能に対し要求を行い、検索処理セッションを実行する。この検索処理セッションで、前記検索キーのハッシュ値に一致する値の領域に対応する暗号化データを復号化し、元の検索キーに一致する領域のみ選んでこれを検索結果として暗号化データの状態で返す。この検索結果をASPサーバ2を経由してHTTPプロクシ12及び暗号管理サーバ4で復号化処理を経てからWebブラウザ11に出力する。ハッシュ値を用いた検索を行うことで扱う情報量を減少させるので、検索速度を向上できる。   When performing a search process using a hash value when searching for encrypted data, the HTTP proxy 12 requests the encryption management server 4 to hash the search key with a predetermined one-way hash function to generate a hash value. Make it. The HTTP proxy 12 gives this hash value as a search key to the server side, and causes the database to be searched. The database search is performed so that the hash value of the original data corresponding to the encrypted data in the database is targeted. A region of matching values in the database is extracted based on the hash value serving as the search key. Since this extraction result includes a region that does not correspond to the original search key, only the region corresponding to the original search key is extracted after confirmation in a later process (search process by the search support function). For this list of extraction results, the SQL proxy 31 makes a request to the search support function of the encryption management server 4 and executes a search processing session. In this search processing session, the encrypted data corresponding to the area of the value that matches the hash value of the search key is decrypted, and only the area that matches the original search key is selected and used as the search result in the state of the encrypted data. return. The search result is output to the Web browser 11 after being decrypted by the HTTP proxy 12 and the encryption management server 4 via the ASP server 2. Since the amount of information handled by performing a search using a hash value is reduced, the search speed can be improved.

次に、本実施の形態の情報セキュリティシステムにおける処理動作について以下(1)〜(5)において図4〜図8に示すシーケンスを参照して順に説明する。   Next, processing operations in the information security system according to the present embodiment will be described in order in the following (1) to (5) with reference to the sequences shown in FIGS.

(1)ユーザ認証、接続チケットの入手: まず、図4のシーケンスを参照しながら、ユーザ認証、及びデータベースアクセスのための接続チケット入手処理の流れについて説明する。まず、クライアント1のWebブラウザ11から、HTTPのGETメソッドによるアクセスがASPサーバ2に対してなされる。ASPサーバ2からは、アクセス要求に対応するHTMLデータが返される(ステップS101〜S103)。ここではASPサーバ2で既存のASP部21が、Webアプリケーションへのユーザ単位でのアクセス権をユーザID及びパスワードの認証により確認する処理を行っているものとする。HTTPプロクシ12は、これに介入し、HTMLヘッダの解析を行い、入力フォームをWebブラウザ11に対して返す。次に、Webブラウザ11を通じてユーザIDとパスワード、あるいは認証トークン6から読み込んだ情報などのユーザ情報の入力がなされると、そのユーザ情報がサーバ側に対し送信される(S105〜S107)。   (1) User authentication and connection ticket acquisition: First, the flow of a connection ticket acquisition process for user authentication and database access will be described with reference to the sequence of FIG. First, the ASP 1 is accessed from the Web browser 11 of the client 1 by the HTTP GET method. HTML data corresponding to the access request is returned from the ASP server 2 (steps S101 to S103). Here, it is assumed that the existing ASP unit 21 in the ASP server 2 performs a process of confirming the access right for each user to the Web application by the authentication of the user ID and the password. The HTTP proxy 12 intervenes in this, analyzes the HTML header, and returns an input form to the Web browser 11. Next, when user information such as a user ID and password or information read from the authentication token 6 is input through the Web browser 11, the user information is transmitted to the server side (S105 to S107).

HTTPプロクシ12は、Webブラウザ11側からのユーザ情報を受け取り、ポリシー管理サーバ5に対しユーザ認証要求を行う。ポリシー管理サーバ5は、ユーザ認証要求を受けて認証チャレンジをHTTPプロクシ12に送信する。HTTPプロクシ12は、ユーザ認証のための認証情報を生成し、これをポリシー管理サーバ5に送信する。認証情報の生成及び送信は、具体的には、認証トークン6内でデジタル署名を生成してポリシー管理サーバ5側に送付するなどする(S108〜S111)。ポリシー管理サーバ5は、HTTPプロクシ12から認証情報を受け取ると、これを検証する処理を行う。正当な認証トークン6を持たないユーザはデジタル署名の生成が行えないので認証を通過できない。ポリシー管理サーバ5では、ユーザ証明書7の情報を検索し、認証トークン6の正当性をPKIに基づき認証局に検証してもらうことで確認する。そしてユーザ認証結果をHTTPプロクシ12に返す。クライアント1側からの認証情報からユーザが本人確認された場合は、データベースへの接続チケットとセッション情報とを同時に返す。セッション情報は、ユーザのデータベース接続セッションを識別する制御情報である(S112,S113)。   The HTTP proxy 12 receives user information from the Web browser 11 side and makes a user authentication request to the policy management server 5. In response to the user authentication request, the policy management server 5 transmits an authentication challenge to the HTTP proxy 12. The HTTP proxy 12 generates authentication information for user authentication and transmits it to the policy management server 5. Specifically, the authentication information is generated and transmitted by generating a digital signature in the authentication token 6 and sending it to the policy management server 5 side (S108 to S111). When the policy management server 5 receives the authentication information from the HTTP proxy 12, the policy management server 5 performs a process of verifying the authentication information. A user who does not have a valid authentication token 6 cannot pass the authentication because it cannot generate a digital signature. The policy management server 5 searches the information of the user certificate 7 and confirms it by having the certificate authority verify the validity of the authentication token 6 based on the PKI. Then, the user authentication result is returned to the HTTP proxy 12. When the user is identified from the authentication information from the client 1, the connection ticket to the database and session information are returned simultaneously. The session information is control information for identifying the user's database connection session (S112, S113).

HTTPプロクシ12は、ポリシー管理サーバ5からユーザ認証結果を受信し、アクセスが許可されて接続チケットを受け取った場合は、このユーザ認証結果情報を含んだHTTPにおけるPOSTデータの生成を行い、これをASPサーバ2に対し送信する。ASPサーバ2は、認証通過に対応したHTMLデータをWebブラウザ11側に返す(S114〜S117)。なお前記のクライアント1におけるユーザIDとパスワードのデータ入力は、既存Webアプリケーションとの互換性のために行っている処理であり、認証トークン6からのユーザ証明書7の情報を取り出して認証する処理さえあれば無くても構わない処理である。   The HTTP proxy 12 receives the user authentication result from the policy management server 5, and when access is permitted and the connection ticket is received, generates the POST data in the HTTP including the user authentication result information, and uses this as the ASP. It transmits to the server 2. The ASP server 2 returns HTML data corresponding to passing authentication to the Web browser 11 side (S114 to S117). The data input of the user ID and password in the client 1 is a process performed for compatibility with the existing Web application, and even the process of extracting and authenticating the information of the user certificate 7 from the authentication token 6 is performed. This is a process that can be omitted.

(2)データベースへの接続: 次に、図5のシーケンスを参照しながらデータベースへの接続処理について説明する。まず、Webブラウザ11からASPサーバ2にGETメソッドでアクセスすると、ASPサーバ2からユーザ情報要求のHTMLデータが送信される。HTTPプロクシ12は、HTMLヘッダ解析を行い、入力フォームをWebブラウザ11に返す。Webブラウザ11を通じてデータ入力がなされると、そのユーザ情報がASPサーバ2側に対し送信される(S201〜S207)。それにHTTPプロクシ12が介入し、前記(1)のユーザ認証及び接続チケット入手処理において入手した接続チケットを含んだPOSTデータを生成し、認証情報としてASPサーバ2に送信する。ASPサーバ2は、HTTPプロクシ12から認証情報を受信して、ユーザ情報、セッション情報、認証チケットなどを含んだデータベース接続のための接続情報をSQLプロクシ31に送信する(S208〜S210)。   (2) Connection to Database: Next, a database connection process will be described with reference to the sequence of FIG. First, when accessing the ASP server 2 from the Web browser 11 using the GET method, HTML data for a user information request is transmitted from the ASP server 2. The HTTP proxy 12 performs HTML header analysis and returns an input form to the Web browser 11. When data is input through the Web browser 11, the user information is transmitted to the ASP server 2 (S201 to S207). Then, the HTTP proxy 12 intervenes, generates POST data including the connection ticket obtained in the user authentication and connection ticket acquisition process of (1), and transmits it to the ASP server 2 as authentication information. The ASP server 2 receives the authentication information from the HTTP proxy 12, and transmits connection information for database connection including user information, session information, an authentication ticket, and the like to the SQL proxy 31 (S208 to S210).

SQLプロクシ31は、接続情報をASPサーバ2から受信すると、ユーザ情報と接続チケットを含んだ認証情報をポリシー管理サーバ5に送信する。ポリシー管理サーバ5は、認証処理として接続チケットを検証してデータベース接続資格のあるユーザであるかを確認し、認証結果をSQLプロクシ31に返す(S211〜S213)。SQLプロクシ31は、正規ユーザであることがわかるとDBMS32に対しデータベース接続のためのSQL命令である「CONNECT」を送信する(S214)。DBMS32は、データベース接続処理を行って結果をSQLプロクシ31に返し(S215)、SQLプロクシ31は、接続結果をASPサーバ2に返す。ASPサーバ2は、接続結果のHTMLデータをWebブラウザ11に返す(S216〜S218)。   When receiving the connection information from the ASP server 2, the SQL proxy 31 transmits authentication information including user information and a connection ticket to the policy management server 5. The policy management server 5 verifies the connection ticket as an authentication process, confirms whether the user is qualified for database connection, and returns an authentication result to the SQL proxy 31 (S211 to S213). When it is determined that the user is a legitimate user, the SQL proxy 31 transmits “CONNECT” which is an SQL command for database connection to the DBMS 32 (S214). The DBMS 32 performs database connection processing and returns the result to the SQL proxy 31 (S215), and the SQL proxy 31 returns the connection result to the ASP server 2. The ASP server 2 returns the connection result HTML data to the Web browser 11 (S216 to S218).

(3)データ暗号化: 次に、図6のシーケンスを参照しながら、データの暗号化処理、つまりユーザがクライアント1側からデータを入力してサーバ側のデータベースへ追加・変更する場合の処理について説明する。まず、クライアント1のWebブラウザ11からASPサーバ2に対しHTTPのGETメソッドでのアクセスがなされ、データ入力のための入力フォームを記述したHTMLデータ及び関連データが返される(S301〜S303)。HTTPプロクシ12は、HTMLヘッダを解析し、入力フォームの構造特にそのフィールド(入力項目、入力欄)の属性などを判断する(S304)。例えば、ASPサーバ2でHTMLの入力フォームに対し本発明に係わる処理つまり暗号化/復号化処理を必要とすることを示すマーク付け(処理識別タグの付加)を行っておき、入力フォーム中の名前や電話番号や住所などの特定のフィールドについてデータ暗号化対象とすることを指示する記述を行っておく。これにより名前などの特定のフィールドに入力されるデータについては暗号化を行うものとHTTPプロクシ12及び暗号管理サーバ4で判断される。   (3) Data encryption: Next, with reference to the sequence of FIG. 6, data encryption processing, that is, processing when the user inputs data from the client 1 side and adds / changes it to the database on the server side explain. First, the Web browser 11 of the client 1 accesses the ASP server 2 using the HTTP GET method, and HTML data describing an input form for data input and related data are returned (S301 to S303). The HTTP proxy 12 analyzes the HTML header and determines the structure of the input form, particularly the attributes of the fields (input items, input fields), etc. (S304). For example, the ASP server 2 performs processing related to the present invention, that is, encryption / decryption processing is added to the HTML input form (adding a processing identification tag), and the name in the input form In addition, a description instructing that a specific field such as a telephone number or an address is to be subject to data encryption is provided. Thus, the HTTP proxy 12 and the encryption management server 4 determine that data input to a specific field such as a name is to be encrypted.

HTTPプロクシ12から入力フォームがWebブラウザ11に送信されると、Webブラウザ11での入力フォームの表示を通じてユーザがデータベースに格納したいデータの入力を行って送信提出ボタンが押され入力データがASPサーバ2側に送信される(S305〜S307)。   When the input form is transmitted from the HTTP proxy 12 to the Web browser 11, the user inputs data to be stored in the database through the display of the input form on the Web browser 11, and the transmission submit button is pressed, and the input data is transferred to the ASP server 2. (S305 to S307).

HTTPプロクシ12は、Webブラウザ11からASPサーバ2に送信される入力データに介入し、ここを処理起点として以下で入力データの暗号化を図る。HTTPプロクシ12は、まず認証のために前記(1)のシーケンスで入手済みの接続チケットとユーザ証明書7の情報とを含んだ認証情報を暗号管理サーバ4に送信する。暗号管理サーバ4は、認証情報を簡単に確認してからポリシー管理サーバ5に送信する。ポリシー管理サーバ5は、受信した認証情報をもとに接続チケットの検証を行い(S308〜S310)、認証結果を暗号管理サーバ4に返す。暗号管理サーバ4は認証結果をHTTPプロクシ12に返す(S311,S312)。   The HTTP proxy 12 intervenes in the input data transmitted from the Web browser 11 to the ASP server 2, and uses this as a starting point for processing to encrypt the input data. First, the HTTP proxy 12 transmits authentication information including the connection ticket obtained in the sequence (1) and the information of the user certificate 7 to the encryption management server 4 for authentication. The encryption management server 4 simply confirms the authentication information and transmits it to the policy management server 5. The policy management server 5 verifies the connection ticket based on the received authentication information (S308 to S310), and returns the authentication result to the encryption management server 4. The encryption management server 4 returns the authentication result to the HTTP proxy 12 (S311 and S312).

なおここではユーザ認証のために一旦暗号管理サーバ4を経由してポリシー管理サーバ5に接続する手順としているが、直接ポリシー管理サーバ5に接続して認証を行う手順も可能である。   Here, for user authentication, the procedure is to connect to the policy management server 5 once via the encryption management server 4, but a procedure to connect directly to the policy management server 5 and perform authentication is also possible.

HTTPプロクシ12は、ポリシー管理サーバ5での認証を通過すると、対象データについてのデータ暗号化依頼を暗号管理サーバ4に対して送信する。同時に入力データ中のどのフィールドについて暗号化を施すかを示すフィールド情報なども送信される(S313)。この際、データ暗号化依頼に含まれる対象データはSSL通信で保護される。暗号管理サーバ4は、データ暗号化依頼及びその対象データを受信すると、対象データに対してデータIDを付与あるいは付与済みのデータIDを確認すると共に、所定の暗号化アルゴリズム及び暗号化鍵を用いて暗号化処理を施し(S314)、暗号化データをHTTPプロクシ12にSSL通信で返す。対象データのデータID、その暗号化鍵及び復号化鍵などの暗号化処理関連情報や処理結果は、図3(a)の暗号管理情報として暗号管理サーバ4内に保管する。   When the HTTP proxy 12 passes authentication in the policy management server 5, the HTTP proxy 12 transmits a data encryption request for the target data to the encryption management server 4. At the same time, field information indicating which field in the input data is to be encrypted is transmitted (S313). At this time, the target data included in the data encryption request is protected by SSL communication. When the encryption management server 4 receives the data encryption request and the target data, the encryption management server 4 assigns a data ID to the target data or confirms the data ID that has been assigned, and uses a predetermined encryption algorithm and encryption key. Encryption processing is performed (S314), and the encrypted data is returned to the HTTP proxy 12 by SSL communication. The encryption processing related information such as the data ID of the target data, the encryption key and the decryption key, and the processing result are stored in the encryption management server 4 as the encryption management information in FIG.

なおこの暗号化処理をHTTPプロクシ12において行う形態にすることも可能である。その場合、暗号化処理時に暗号管理サーバ4は鍵情報42などの暗号管理情報を確認あるいは提供し、HTTPプロクシ12で所定の暗号化アルゴリズム及び暗号化鍵で対象データの暗号化処理を行う。暗号化及び鍵管理の方式は所定技術を使用する。   Note that this encryption processing may be performed in the HTTP proxy 12. In this case, the encryption management server 4 confirms or provides encryption management information such as the key information 42 during the encryption process, and the HTTP proxy 12 encrypts the target data with a predetermined encryption algorithm and encryption key. The encryption and key management methods use predetermined techniques.

HTTPプロクシ12は、暗号管理サーバ4との通信を通じて対象データの暗号化データを取得すると、その暗号化データと接続チケットなどを含んだHTMLのPOSTデータを生成し、HTTPのPOSTメソッドでASPサーバ2に送信する(S316,S317)。ASPサーバ2は、暗号化データを含んだPOSTデータを受信すると、データベースへのデータ追加変更のための、暗号化データ、セッション情報、接続チケットを含んだSQL形式の追加変更情報をSQLプロクシドライバ22からSQLプロクシ31に送信する(S318)。   When the HTTP proxy 12 acquires the encrypted data of the target data through communication with the encryption management server 4, the HTTP proxy 12 generates HTML POST data including the encrypted data and the connection ticket, and the ASP server 2 uses the HTTP POST method. (S316, S317). When the ASP server 2 receives the POST data including the encrypted data, the SQL server 22 sends the SQL format additional change information including the encrypted data, the session information, and the connection ticket for adding and changing the data to the database. To the SQL proxy 31 (S318).

SQLプロクシ31は、ASPサーバ2側から追加変更情報を受けると、DBMS32に渡す前に、ポリシー管理サーバ5に対し接続チケットを含んだ認証情報を送信して認証を行わせる。ポリシー管理サーバ5は、接続チケットの検証及びアクセス権限の確認を行ってユーザがデータベースへのデータ入力の資格があることを確認し、認証結果をSQLプロクシ31に返す(S319〜S321)。SQLプロクシ31は、認証後、DBMS32に対し適切なデータベース問い合わせ条件を設定してデータ追加変更を指示するSQL命令である「INSERT」/「UPDATE」などを送信する(S322)。DBMS32は、データベースへ対象となる暗号化データの追加変更処理を行って追加変更結果を返す(S323)。SQLプロクシ31は、データベースへの追加変更結果をASPサーバ2に返し、ASPサーバ2は、その追加変更結果のHTMLデータをWebブラウザ11に返す(S324〜S326)。   When the SQL proxy 31 receives the additional change information from the ASP server 2 side, it sends authentication information including a connection ticket to the policy management server 5 to perform authentication before passing it to the DBMS 32. The policy management server 5 verifies the connection ticket and confirms the access authority, confirms that the user is qualified to input data into the database, and returns the authentication result to the SQL proxy 31 (S319 to S321). After authentication, the SQL proxy 31 transmits an “INSERT” / “UPDATE” or the like, which is an SQL command for setting an appropriate database inquiry condition to the DBMS 32 and instructing data addition / change (S322). The DBMS 32 performs an additional change process of the target encrypted data to the database and returns an additional change result (S323). The SQL proxy 31 returns the addition change result to the database to the ASP server 2, and the ASP server 2 returns the HTML data of the addition change result to the Web browser 11 (S324 to S326).

(4)データ復号化: 次に、図7のシーケンスを参照しながら、データの復号化処理、つまりユーザがサーバ側のデータベースからデータを抽出、取得してクライアント1側に出力する場合の処理について説明する。まず、クライアント1のWebブラウザ11からASPサーバ2に対しHTTPのGETメソッドでのアクセスがなされ、データ出力のための入力フォームのHTMLデータ及び関連データが返される(S401〜S403)。HTTPプロクシ12は、HTMLヘッダを解析し、入力フォームの構造特にそのフィールドの属性などを判断する(S404)。なおデータベースからのデータ取得処理は広義には検索処理(SQL命令「SELECT」による処理)であり、後述の暗号化データ検索処理と基本処理が共通している。   (4) Data Decryption: Next, with reference to the sequence of FIG. 7, data decryption processing, that is, processing when the user extracts and acquires data from the server side database and outputs it to the client 1 side. explain. First, the Web browser 11 of the client 1 accesses the ASP server 2 using the HTTP GET method, and returns HTML data and related data of an input form for data output (S401 to S403). The HTTP proxy 12 analyzes the HTML header and determines the structure of the input form, particularly the attribute of the field (S404). The data acquisition process from the database is a search process (a process based on the SQL command “SELECT”) in a broad sense, and the basic process is common to an encrypted data search process described later.

HTTPプロクシ12から入力フォームがWebブラウザ11に送信されると、Webブラウザ11での入力フォームの表示を通じてユーザがデータベースから取得したいデータの指示の入力を行って送信提出ボタンが押され入力データ(取得対象の指示データ)がASPサーバ2側に送信される(S405〜S407)。HTTPプロクシ12は、Webブラウザ11からASPサーバ2側に送信される入力データに介入する。HTTPプロクシ12は、データ暗号化の際と同様に、まず前記(1)のシーケンスで入手済みの接続チケットを含んだ認証情報を暗号管理サーバ4に送信し、暗号管理サーバ4は、認証情報をポリシー管理サーバ5に送信する。ポリシー管理サーバ5は、受信した認証情報をもとに接続チケットの検証を行い、認証結果を暗号管理サーバ4に返し、暗号管理サーバ4は認証結果をHTTPプロクシ12に返す(S408〜S412)。   When the input form is transmitted from the HTTP proxy 12 to the Web browser 11, the user inputs an instruction for data to be acquired from the database through the display of the input form on the Web browser 11, and the transmission submit button is pressed to input data (acquirement). Target instruction data) is transmitted to the ASP server 2 (S405 to S407). The HTTP proxy 12 intervenes in input data transmitted from the Web browser 11 to the ASP server 2 side. As in the case of data encryption, the HTTP proxy 12 first transmits authentication information including the connection ticket obtained in the sequence of (1) to the encryption management server 4, and the encryption management server 4 transmits the authentication information. It transmits to the policy management server 5. The policy management server 5 verifies the connection ticket based on the received authentication information, returns the authentication result to the encryption management server 4, and the encryption management server 4 returns the authentication result to the HTTP proxy 12 (S408 to S412).

HTTPプロクシ12は、認証後、取得対象暗号化データの指示データ(データIDなど)を含んだHTMLのGETデータを生成し、HTTPのGETメソッドでASPサーバ2に送信する(S413,S413)。ASPサーバ2は、HTTPプロクシ12から指示データを含んだGETデータを受信すると、データベースからのデータ取得のための、指示データ、セッション情報、認証チケットを含んだSQL形式の取得情報をSQLプロクシドライバ22からSQLプロクシ31に送信する(S415)。   After authentication, the HTTP proxy 12 generates HTML GET data including the instruction data (data ID and the like) of the encryption data to be acquired, and transmits it to the ASP server 2 using the HTTP GET method (S413, S413). When the ASP server 2 receives the GET data including the instruction data from the HTTP proxy 12, the SQL server 22 acquires the acquisition information in the SQL format including the instruction data, the session information, and the authentication ticket for acquiring data from the database. To the SQL proxy 31 (S415).

SQLプロクシ31は、ASPサーバ2側から取得情報を受けると、ポリシー管理サーバ5に接続チケットを含んだ認証情報を送信して認証を行わせる。ポリシー管理サーバ5は、接続チケットの検証及びアクセス権限の確認を行ってユーザがデータベースからのデータ出力の資格があることを確認し(S416,S417)、その認証結果を返す。ポリシー管理サーバ5は、この認証結果に、ユーザのアクセス権限に対応したデータベースアクセス領域絞り込み条件となるWHERE句の情報を含めて送信する。前記WHERE句の情報は、データベースにおいてユーザがアクセスを許可される領域あるいはデータIDなどを限定する指示情報である。SQLプロクシ31は、ポリシー管理サーバ5での認証後、DBMS32に対し、適切なデータベース問い合わせ条件を設定して、データ抽出のSQL命令である「SELECT」に前記絞り込み条件となるWHERE句の情報を付加した形で送信する(S418)。なお前記絞り込み条件となるWHERE句の情報の作成をSQLプロクシ31で行う形態でも構わない。その場合、ポリシー管理サーバ5でのアクセス権限確認をもとに絞り込み条件を作成する。DBMS32は、データベースから取得対象である暗号化データを抽出して取得する処理を行って結果を返す(S419,S420)。SQLプロクシ31は、データベースからの取得結果をASPサーバ2に返し、ASPサーバ2は、取得結果のHTMLデータをWebブラウザ11に返す(S421,S422)。   When the SQL proxy 31 receives the acquisition information from the ASP server 2 side, it sends authentication information including the connection ticket to the policy management server 5 to perform authentication. The policy management server 5 verifies the connection ticket and confirms the access authority, confirms that the user is qualified to output data from the database (S416, S417), and returns the authentication result. The policy management server 5 transmits the authentication result including information on the WHERE clause that is a database access area narrowing condition corresponding to the access authority of the user. The information of the WHERE phrase is instruction information for limiting a region or a data ID that the user is allowed to access in the database. After authentication by the policy management server 5, the SQL proxy 31 sets an appropriate database query condition for the DBMS 32, and adds the information of the WHERE clause as the narrowing condition to “SELECT” that is a SQL command for data extraction. It transmits in the form (S418). It should be noted that the SQL proxy 31 may be used to create the information of the WHERE clause that is the narrowing-down condition. In that case, a narrowing-down condition is created based on the access authority confirmation in the policy management server 5. The DBMS 32 performs processing for extracting and acquiring the encrypted data to be acquired from the database, and returns the result (S419, S420). The SQL proxy 31 returns the acquisition result from the database to the ASP server 2, and the ASP server 2 returns the HTML data of the acquisition result to the Web browser 11 (S421, S422).

HTTPプロクシ12は、ASPサーバ2からWebブラウザ11に送信される取得結果のHTMLデータに介入して受信し、そのHTMLヘッダを解析してデータ復号化の必要性を判断する。そして対象の暗号化データについて復号化が必要と判断するとデータ復号化依頼を暗号管理サーバ4に対して送信する。同時に取得暗号化データ中のどのフィールドについて復号化を施すかを示すフィールド情報なども送信される(S423,S424)。   The HTTP proxy 12 intervenes and receives the acquired HTML data transmitted from the ASP server 2 to the Web browser 11 and analyzes the HTML header to determine the necessity of data decoding. When it is determined that the target encrypted data needs to be decrypted, a data decryption request is transmitted to the cipher management server 4. At the same time, field information indicating which field in the obtained encrypted data is to be decrypted is transmitted (S423, S424).

暗号管理サーバ4は、データ復号化依頼及びその対象の暗号化データを受信すると、暗号管理情報を参照しながら対象の暗号化データに対して所定の復号化アルゴリズム及び復号化鍵を用いて復号化処理を施し(S425)、復号化されたデータをHTTPプロクシ12に返す。復号化されたデータを返す際にはSSL通信でデータが保護される。復号化処理の関連情報や処理結果などは、暗号管理情報として暗号管理サーバ4内に保管する。HTTPプロクシ12は、復号化されて元に戻ったデータをWebブラウザ11に返し、Webブラウザ11で判読可能な形で出力される(S426,S427)。   Upon receiving the data decryption request and the target encrypted data, the cryptographic management server 4 decrypts the target encrypted data using a predetermined decryption algorithm and decryption key while referring to the cryptographic management information. Processing is performed (S425), and the decrypted data is returned to the HTTP proxy 12. When returning the decrypted data, the data is protected by SSL communication. Information related to decryption processing, processing results, and the like are stored in the cryptographic management server 4 as cryptographic management information. The HTTP proxy 12 returns the decrypted and restored data to the Web browser 11 and outputs it in a form that can be read by the Web browser 11 (S426, S427).

なお暗号化処理の場合と同様に復号化処理をHTTPプロクシ12において行う形態にすることも可能である。その場合、暗号管理サーバ4では暗号管理情報を確認あるいは提供し、HTTPプロクシ12において所定の復号化アルゴリズム及び復号化鍵で対象暗号化データを復号化処理する。復号化及び鍵管理の方式は所定技術を使用する。   Note that, as in the case of the encryption process, the decryption process may be performed in the HTTP proxy 12. In that case, the cryptographic management server 4 confirms or provides the cryptographic management information, and the HTTP proxy 12 decrypts the target encrypted data with a predetermined decryption algorithm and decryption key. The decryption and key management scheme uses a predetermined technique.

(5)データ検索: 次に、図8、図9を参照しながら、データ検索処理、つまりクライアント1側から検索条件を入力してサーバ側のデータベース中のデータを検索しクライアント1側に出力する場合の処理について説明する。暗号化データ検索の際は、クライアント1側からサーバ側及び暗号管理サーバ4やポリシー管理サーバ5に対して特別の検索処理である旨を告げ、検索モードに応じた処理を行う。   (5) Data Search: Next, referring to FIG. 8 and FIG. 9, data search processing, that is, a search condition is input from the client 1 side, data in the server side database is searched and output to the client 1 side. The processing in this case will be described. When searching for encrypted data, the client 1 informs the server side, the encryption management server 4 and the policy management server 5 that it is a special search process, and performs a process according to the search mode.

検索モードとして、まずデータに対する暗号化/復号化の暗号鍵を単一(PKIの場合は公開鍵と秘密鍵の一組)とする場合でかつ完全一致検索を行う場合は、前記ハッシュ値を用いた検索処理は必要でなく、検索キーを対象データの暗号鍵と同一鍵で暗号化してこれにより検索を行うことができる。ここで完全一致検索とは、検索キーの単位が、入力データの暗号化の単位、つまり本実施の形態の場合では入力フォームにおけるフィールド単位、と対応する場合である。またデータに対する暗号鍵を複数(複数組)とする場合でかつ完全一致検索を行う場合は、前記ハッシュ値を用いた検索処理を行う。データに対する暗号鍵を複数とする場合とは、例えば同一データに対して異なる鍵で暗号化を施すことでセキュリティ強度を高める場合である。例えば、電子カルテシステムにおいてあるグループ例えば外科の患者の名前を暗号化する鍵と、別グループ例えば内科の患者の名前を暗号化する鍵とで異なるものとする場合などである。また暗号鍵の数に係わらず部分一致検索を行う場合は、入力データを検索最小単位に分割したデータに対するハッシュ値セットを生成してこれを用いた検索処理を行う。ここで部分一致検索とは、検索キーの単位が、入力データの暗号化の単位よりも細かい単位となる場合である。   As the search mode, first, when the encryption / decryption key for data is single (in the case of PKI, a set of a public key and a private key) and when a complete match search is performed, the hash value is used. Thus, the search processing can be performed by encrypting the search key with the same key as the encryption key of the target data. Here, the exact match search is a case where the unit of the search key corresponds to the unit of encryption of the input data, that is, the field unit in the input form in this embodiment. When a plurality of encryption keys for data (a plurality of sets) are used and a complete match search is performed, a search process using the hash value is performed. The case where a plurality of encryption keys for data is used is a case where the strength of security is increased by performing encryption with different keys on the same data, for example. For example, the key for encrypting the name of a group such as a surgical patient in the electronic medical record system may be different from the key for encrypting the name of a patient such as a medical department. When performing a partial match search regardless of the number of encryption keys, a hash value set is generated for data obtained by dividing input data into search minimum units, and search processing using this is performed. Here, the partial match search is a case where the search key unit is smaller than the input data encryption unit.

図9は、本実施の形態における情報セキュリティシステムで、ハッシュ値を用いた暗号化データ検索処理におけるデータの状態を示す説明図である。HTMLの入力フォーム中のあるフィールドとして例えば住所入力欄があるものとする。このフィールドにユーザにより入力されるデータを例えばA=“東京都新宿区新宿三丁目”とする。HTTPプロクシ12及び暗号管理サーバ4における暗号化処理の際は、このフィールド内のデータAを暗号化の単位として所定の暗号鍵により暗号化を施し、その暗号化データをE(A)とする。また一方向ハッシュ関数をHとし、データAのハッシュ値をH(A)と表わす。暗号管理サーバ4では、データベースへの新規入力データAについて、暗号化データE(A)を生成すると共に、暗号化データ検索に備えるために、データAのハッシュ値H(A)も生成してデータAとその暗号化データE(A)に関連付ける。DBMS32のデータベースでは、暗号化データE(A)を格納すると共に、ハッシュ値H(A)も関連付けて参照可能な状態としておく。暗号化データ検索の際は、検索キー、例えばA、をハッシュ化し、この検索キーハッシュ値H(A)により、データベースにおける暗号化データに対応するハッシュ値の領域を検索させる。これにより、値がH(A)と一致するような領域がヒットするので、その領域に対応する暗号化データの領域を候補群として抽出する。   FIG. 9 is an explanatory diagram showing the data state in the encrypted data search process using the hash value in the information security system according to the present embodiment. Assume that there is an address input field as a certain field in the HTML input form. The data input by the user in this field is, for example, A = “Shinjuku 3-chome, Shinjuku-ku, Tokyo”. At the time of encryption processing in the HTTP proxy 12 and the encryption management server 4, encryption is performed with a predetermined encryption key using the data A in this field as an encryption unit, and the encrypted data is set to E (A). The one-way hash function is H, and the hash value of data A is represented as H (A). The encryption management server 4 generates encrypted data E (A) for new input data A to the database, and also generates a hash value H (A) of the data A to prepare for encrypted data search. A is associated with the encrypted data E (A). In the database of the DBMS 32, the encrypted data E (A) is stored, and the hash value H (A) is also associated and can be referred to. When searching for encrypted data, a search key, for example, A, is hashed, and a hash value area corresponding to the encrypted data in the database is searched using the search key hash value H (A). As a result, an area whose value matches H (A) is hit, and the encrypted data area corresponding to that area is extracted as a candidate group.

暗号管理サーバ4では、フィールドに入力されたデータAに対する部分一致検索を可能とするために、入力データAを所定単位に分割し、分割されたデータそれぞれをハッシュ化する処理を行う。データAをn個に区切ったデータを{A1,A2,…,An}とする。それぞれをハッシュ化してハッシュ値のセットS={H(A1),H(A2),…,H(An)}を生成し、データA及び暗号化データE(A)に関連付けして、データベース側でこのハッシュ値セットSを対象として検索可能な状態としておく。入力データ分割の例として、前記データAを、A1=“東京都”,A2=“新宿区”,A3=“新宿”,A4=“三丁目”のように分割する。これが最小検索単位となる。   The encryption management server 4 divides the input data A into predetermined units and performs a process of hashing each of the divided data in order to enable partial match search for the data A input in the field. Data obtained by dividing the data A into n pieces is assumed to be {A1, A2,..., An}. Each is hashed to generate a set of hash values S = {H (A1), H (A2),..., H (An)} and associate them with the data A and the encrypted data E (A) on the database side. Thus, this hash value set S is set in a searchable state. As an example of input data division, the data A is divided such that A1 = “Tokyo”, A2 = “Shinjuku-ku”, A3 = “Shinjuku”, A4 = “3-chome”. This is the minimum search unit.

データ検索時において、検索キーを仮にA2=“新宿区”とすれば、そのハッシュ値H(A2)を用いてデータベース側における前記ハッシュ値セットSを含んだ領域を対象とした検索を行うことで、値がハッシュ値H(A2)と一致する領域に対応する暗号化データの領域例えばXを候補群として抽出する。ハッシュ値を用いているので、候補群中には検索キーA2に対応しない暗号化データも含まれている可能性がある。候補群としてデータベースから抽出した暗号化データをHTTPプロクシ12及び暗号管理サーバ4側において復号化し、復号化されたデータが検索キーA2を含むか確認する。検索キーA2を含んだデータ領域のみを検索結果とする。例えば、データベースから暗号化データX,Y,Zが候補群として得られ、これらを復号化するとデータA,B,Cが得られたとする。データA,Bは検索キーA2を含むデータであったのでこれを検索結果とし、データCは検索キーA2を含まない関係無いデータであったので捨てる。   At the time of data search, if the search key is A2 = “Shinjuku-ku”, a search for the area including the hash value set S on the database side is performed using the hash value H (A2). The encrypted data area corresponding to the area whose value matches the hash value H (A2), for example, X is extracted as a candidate group. Since the hash value is used, the candidate group may include encrypted data that does not correspond to the search key A2. The encrypted data extracted from the database as a candidate group is decrypted on the HTTP proxy 12 and the cryptographic management server 4 side, and it is confirmed whether or not the decrypted data includes the search key A2. Only the data area including the search key A2 is set as a search result. For example, it is assumed that encrypted data X, Y, and Z are obtained as a candidate group from a database, and data A, B, and C are obtained by decrypting them. Since the data A and B are data including the search key A2, this is used as a search result, and the data C is discarded because it is irrelevant data not including the search key A2.

以下、前記部分一致検索を行う場合において前記ハッシュ値を用いた検索処理を行う場合の処理の流れについて示す。図8で、まず、クライアント1のWebブラウザ11からASPサーバ2に対しデータ検索を行うためにHTTPのGETメソッドでのアクセスがなされる。ASPサーバ2は、データ検索のための入力フォームを含むHTMLデータ及び関連データを返す(S501〜S503)。HTTPプロクシ12は、そのHTMLヘッダを解析して検索処理であることを認識し、入力フォームをWebブラウザ11に送信する(S504,S505)。   Hereinafter, the flow of processing in the case of performing search processing using the hash value in the case of performing the partial match search will be described. In FIG. 8, first, in order to perform a data search from the Web browser 11 of the client 1 to the ASP server 2, an access is made using the HTTP GET method. The ASP server 2 returns HTML data including an input form for data search and related data (S501 to S503). The HTTP proxy 12 analyzes the HTML header and recognizes that it is a search process, and transmits the input form to the Web browser 11 (S504, S505).

HTTPプロクシ12から入力フォームがWebブラウザ11に送信されると、Webブラウザ11での入力フォームの表示を通じてユーザがデータベースから検索したいデータのための検索条件となる検索キーの入力を行って送信提出ボタンが押され入力データである検索キーがASPサーバ2側に送信される。HTTPプロクシ12は、Webブラウザ11からASPサーバ2側に送信される入力データに介入し、この検索キーのデータを取得する(S506,S507)。   When an input form is transmitted from the HTTP proxy 12 to the Web browser 11, a search key serving as a search condition for data that the user wants to search from the database is displayed through the display of the input form on the Web browser 11, and a submit submission button Is pressed and a search key as input data is transmitted to the ASP server 2 side. The HTTP proxy 12 intervenes in the input data transmitted from the Web browser 11 to the ASP server 2 and acquires the search key data (S506, S507).

HTTPプロクシ12は、まず前記(1)のシーケンスで入手済みの接続チケットを含んだ認証情報を暗号管理サーバ4に送信し、暗号管理サーバ4は、認証情報をポリシー管理サーバ5に送信する。ポリシー管理サーバ5は、受信した認証情報をもとに接続チケットの検証を行い(S508〜S510)、認証結果を暗号管理サーバ4に返し、暗号管理サーバ4は認証結果をHTTPプロクシ12に返す(S511,S512)。   The HTTP proxy 12 first transmits authentication information including the connection ticket obtained in the sequence (1) to the encryption management server 4, and the encryption management server 4 transmits the authentication information to the policy management server 5. The policy management server 5 verifies the connection ticket based on the received authentication information (S508 to S510), returns the authentication result to the encryption management server 4, and the encryption management server 4 returns the authentication result to the HTTP proxy 12 ( S511, S512).

HTTPプロクシ12は、認証通過後、前記検索キーデータを含んだデータ検索依頼を暗号管理サーバ4に送信する(S513)。暗号管理サーバ4は、HTTPプロクシ12からデータ検索依頼を受けると、サーバ側で検索条件として使用するための検索情報の生成を行う(S514)。検索情報生成として、処理モードに応じて前記検索キーデータについての暗号化やハッシュ化を行い、また検索セッション生成などを行う。処理結果などは暗号管理情報として保管する。ここで検索キーデータのハッシュ値を生成してこの検索キーハッシュ値をサーバ側における検索キーと設定する。暗号管理サーバ4は、生成した検索キーハッシュ値を含んだ検索情報をHTTPプロクシ12に送信する(S515)。   After passing the authentication, the HTTP proxy 12 transmits a data search request including the search key data to the encryption management server 4 (S513). When receiving the data search request from the HTTP proxy 12, the encryption management server 4 generates search information to be used as a search condition on the server side (S514). As search information generation, the search key data is encrypted or hashed according to the processing mode, and a search session is generated. The processing result is stored as encryption management information. Here, a hash value of the search key data is generated, and this search key hash value is set as a search key on the server side. The encryption management server 4 transmits the search information including the generated search key hash value to the HTTP proxy 12 (S515).

HTTPプロクシ12は、暗号管理サーバ4から前記検索キーハッシュ値を含んだ検索情報を受信すると、データ検索のためのHTMLのPOSTデータを生成し、HTTPのPOSTメソッドでASPサーバ2に送信する(S516,S517)。ASPサーバ2は、HTTPプロクシ12から検索キーハッシュ値を含んだ検索情報のPOSTデータを受信すると、データベースからのデータ検索のための、検索データ(前記検索キーハッシュ値)、セッション情報、接続チケット、を含んだSQL形式の検索情報をSQLプロクシドライバ22からSQLプロクシ31に送信する(S518)。   When receiving the search information including the search key hash value from the encryption management server 4, the HTTP proxy 12 generates HTML POST data for data search, and transmits it to the ASP server 2 using the HTTP POST method (S516). , S517). When the ASP server 2 receives the POST data of the search information including the search key hash value from the HTTP proxy 12, the search data (search key hash value), session information, connection ticket, Search information in the SQL format including is transmitted from the SQL proxy driver 22 to the SQL proxy 31 (S518).

SQLプロクシ31は、ASPサーバ2側からSQL形式の検索情報を受けると、ポリシー管理サーバ5に接続チケットを含んだ認証情報を送信して認証を行わせる。ポリシー管理サーバ5は、接続チケットの検証及びアクセス権限の確認を行ってユーザがデータベースからのデータ検索の資格があることを確認し(S519,S520)、ユーザのアクセス権限に対応したデータベースアクセス領域絞り込み条件となるWHERE句の情報を含めた認証結果を返す(S521)。なお、前記のステップS505における検索情報生成の処理を、このSQLプロクシ31がASPサーバ2側からSQL形式の検索情報を受けてから行う処理形態とすることも可能である。この場合、この時点でSQLプロクシ31が暗号管理サーバ4に対して依頼を行って検索キーの暗号化あるいはハッシュ化を行わせて検索情報を取得する。   When the SQL proxy 31 receives the search information in the SQL format from the ASP server 2 side, the SQL proxy 31 transmits authentication information including a connection ticket to the policy management server 5 to perform authentication. The policy management server 5 verifies the connection ticket and confirms the access authority to confirm that the user is eligible for data retrieval from the database (S519, S520), and narrows down the database access area corresponding to the user's access authority. An authentication result including information on the condition WHERE clause is returned (S521). It should be noted that the search information generation process in step S505 may be performed after the SQL proxy 31 receives search information in the SQL format from the ASP server 2 side. In this case, at this time, the SQL proxy 31 requests the encryption management server 4 to encrypt or hash the search key and acquire the search information.

SQLプロクシ31は、ポリシー管理サーバ5での認証後、DBMS32に対し、適切なデータベース問い合わせ条件を設定して、データ検索のSQL命令である「SELECT」に前記絞り込み条件となるWHERE句の情報を付加した形で送信する(S522)。DBMS32では、データベースから暗号化データに対応するハッシュ値セットを対象として含めながら前記検索キーハッシュ値により検索を行い、これと値が一致した領域に対応する暗号化データの領域を候補群として抽出する処理を行って結果を返す(S523)。この抽出結果の候補群には、ハッシュ化前の元の検索キーに対応しない暗号化データの領域も含まれている可能性がある。図9に示すように例として、検索キーを前記データA2=“新宿区”とすると、検索キーハッシュ値H(A2)により、データベース中の暗号化データE(A)に対応する前記ハッシュ値セットSの領域を対象として含めた形で検索することで、値がハッシュ値H(A2)に一致する領域に対応する暗号化データの領域がヒットする。   After authentication by the policy management server 5, the SQL proxy 31 sets an appropriate database query condition for the DBMS 32, and adds the information of the WHERE clause as the narrowing condition to “SELECT” that is a SQL command for data search. It transmits in the form (S522). The DBMS 32 performs a search using the search key hash value while including a hash value set corresponding to the encrypted data as a target from the database, and extracts an area of the encrypted data corresponding to an area whose value matches this as a candidate group. The process is performed and the result is returned (S523). This candidate group of extraction results may include an encrypted data area that does not correspond to the original search key before hashing. As an example, as shown in FIG. 9, when the search key is the data A2 = “Shinjuku-ku”, the hash value set corresponding to the encrypted data E (A) in the database is obtained by the search key hash value H (A2). By performing a search including the S area as a target, the area of the encrypted data corresponding to the area whose value matches the hash value H (A2) is hit.

SQLプロクシ31は、データベースからの抽出結果である、前記検索キーハッシュ値(例えばH(A2))に値が一致した領域に対応する暗号化データの領域群(例えばX,Y,Z)について、元の検索キー(A2)に対応するものを抽出するために、暗号管理サーバ4の検索支援機能に対して検索処理依頼を行って検索セッションを実行する(S524)。SQLプロクシ31は、前記抽出結果の暗号化データ(X,Y,Z)を暗号管理サーバ4に渡す。   The SQL proxy 31 is the result of extraction from the database, and the encrypted data area group (for example, X, Y, Z) corresponding to the area whose value matches the search key hash value (for example, H (A2)), In order to extract the one corresponding to the original search key (A2), a search processing request is made to the search support function of the encryption management server 4 to execute a search session (S524). The SQL proxy 31 passes the extracted encrypted data (X, Y, Z) to the encryption management server 4.

暗号管理サーバ4の検索支援機能は、SQLプロクシ31から検索処理依頼を受けて、前記データベースからの抽出結果の暗号化データのすべてに対して、あるいは一つずつ順次に、暗号管理情報における鍵情報42を参照して適切な復号化鍵により復号化を行い、復号化したデータについて元の検索キー(A2)で検索し、それを含んだデータに対応する暗号化データを検索結果として選んでSQLプロクシ31に返す(S525,S526)。ここではあくまで元の検索キーに対応した暗号化データを検索結果として返し、復号化したデータは渡さない。SQLプロクシ31は、暗号管理サーバ4から検索結果の暗号化データを受けると、必要であればDBMS32のデータベースから検索結果の暗号化データに対応する他フィールドのデータも取り出して補完する。例えばレコード単位などの所定データ単位で検索結果の暗号化データを構成する。そしてASPサーバ2に検索結果として送信する(S527)。なおSQLプロクシ31から暗号管理サーバ4に対し前記他フィールドデータも含めて渡して検索セッションを実行するなど、検索処理の形態は各種可能である。   The search support function of the encryption management server 4 receives the search processing request from the SQL proxy 31, and the key information in the encryption management information for all of the encrypted data extracted from the database or sequentially one by one. 42, decryption is performed with an appropriate decryption key, the decrypted data is retrieved with the original retrieval key (A2), and encrypted data corresponding to the data including the retrieved data is selected as a retrieval result and SQL Return to the proxy 31 (S525, S526). Here, the encrypted data corresponding to the original search key is returned as the search result, and the decrypted data is not passed. When receiving the encrypted data of the search result from the encryption management server 4, the SQL proxy 31 extracts the data of the other field corresponding to the encrypted data of the search result from the database of the DBMS 32 and complements it if necessary. For example, the encrypted data of the search result is configured in a predetermined data unit such as a record unit. Then, the search result is transmitted to the ASP server 2 (S527). Various forms of search processing are possible, such as executing a search session from the SQL proxy 31 to the encryption management server 4 including the other field data.

ASPサーバ2は、SQLプロクシ31から暗号化データを含んだ検索結果を受信し、検索結果のHTMLデータとしてクライアント1のWebブラウザ11に返す。HTTPプロクシ12は、ASPサーバ2からWebブラウザ11に送信される検索結果のHTMLデータに介入して受信し、そのHTMLヘッダを解析してデータ復号化の必要性を判断する。そして検索結果の暗号化データについて復号化が必要と判断するとデータ復号化依頼及び復号化対象の暗号化データを暗号管理サーバ4に対して送信する(S528〜S530)。暗号管理サーバ4は、データ復号化依頼及び復号化対象の暗号化データを受信すると、暗号管理情報を参照しながら対象の暗号化データに対して所定の復号化アルゴリズム及び復号化鍵を用いて復号化処理を施し、復号化されたデータをHTTPプロクシ12に返す。復号化されたデータを返す際にはSSL通信でデータが保護される。復号化処理の関連情報や処理結果などは、暗号管理情報として暗号管理サーバ4内に保管される。   The ASP server 2 receives the search result including the encrypted data from the SQL proxy 31, and returns it to the Web browser 11 of the client 1 as the HTML data of the search result. The HTTP proxy 12 intervenes and receives the search result HTML data transmitted from the ASP server 2 to the Web browser 11 and analyzes the HTML header to determine the necessity of data decoding. If it is determined that the encrypted data as the search result needs to be decrypted, the data decryption request and the encrypted data to be decrypted are transmitted to the cipher management server 4 (S528 to S530). When the encryption management server 4 receives the data decryption request and the encrypted data to be decrypted, the encryption management server 4 decrypts the target encrypted data using a predetermined decryption algorithm and decryption key while referring to the encryption management information. The decrypted data is returned to the HTTP proxy 12. When returning the decrypted data, the data is protected by SSL communication. Information related to the decryption processing, processing results, and the like are stored in the cryptographic management server 4 as cryptographic management information.

HTTPプロクシ12は、復号化されたデータを暗号管理サーバ4から受信すると、検索結果のHTMLデータにおける暗号化データ部分を復号化されたデータに置き換えてWebブラウザ11に送信し、Webブラウザ11では判読可能な形で検索結果が出力される(S531〜S533)。処理のシーケンスは以上である。   When receiving the decrypted data from the encryption management server 4, the HTTP proxy 12 replaces the encrypted data portion in the HTML data of the search result with the decrypted data and transmits it to the web browser 11. Search results are output in a possible form (S531 to S533). The processing sequence is as described above.

本発明の他の実施の形態について説明する。まず、前記したように、データの暗号化/復号化の際にHTTPプロクシ12から暗号管理サーバ4へデータ暗号化/復号化依頼を行って暗号管理サーバ4で暗号化/復号化処理を行う形態に限らず、データの暗号化/復号化処理について暗号管理サーバ4でなくHTTPプロクシ12で行う形態としても良い。この場合、クライアント1内にHTTPプロクシ12を配置し、HTTPプロクシ12で、対象データについて所定の暗号アルゴリズム及び鍵情報を用いて暗号化/復号化を行う。この際、暗号化/復号化に必要な鍵情報を暗号管理サーバ4が確認し、HTTPプロクシ12に提供する構成としても良いし、またクライアント1内でHTTPプロクシ12と暗号管理サーバ4の両方の機能を配置及び動作させて暗号化/復号化処理を行う構成としても良い。また暗号化データ検索処理の際の前記暗号管理サーバ4による検索支援機能、つまりデータベースから抽出した結果に対する復号化及び元の検索キーでの検索処理(前記S525の処理)などについても、同様にHTTPプロクシ12で処理する構成とすることが可能である。   Another embodiment of the present invention will be described. First, as described above, when encrypting / decrypting data, the HTTP proxy 12 sends a data encryption / decryption request to the encryption management server 4, and the encryption management server 4 performs encryption / decryption processing. However, the data encryption / decryption processing may be performed by the HTTP proxy 12 instead of the encryption management server 4. In this case, the HTTP proxy 12 is arranged in the client 1, and the HTTP proxy 12 encrypts / decrypts the target data using a predetermined encryption algorithm and key information. At this time, the encryption management server 4 may confirm the key information necessary for encryption / decryption and provide it to the HTTP proxy 12, or both the HTTP proxy 12 and the encryption management server 4 may be provided in the client 1. It may be configured to perform encryption / decryption processing by arranging and operating functions. Similarly, the search support function by the encryption management server 4 in the encrypted data search process, that is, the decryption of the result extracted from the database and the search process with the original search key (the process of S525) are similarly performed. A configuration in which processing is performed by the proxy 12 is possible.

また、Webブラウザ11とHTTPプロクシ12を独立した構成とする以外にも、これを独立せずに同一アプリケーションとしてクライアント1内に構成する形態としても良い。例えばWebブラウザ上でJava(R)アプリケーション(スクリプト)などのプログラムを動作させることでWebブラウザ11とHTTPプロクシ12(さらには暗号管理サーバ4)の機能を同一Webブラウジング・アプリケーションとして構成する。   In addition to the configuration in which the Web browser 11 and the HTTP proxy 12 are independent, the web browser 11 and the HTTP proxy 12 may be configured in the client 1 as the same application without being independent. For example, the functions of the Web browser 11 and the HTTP proxy 12 (and the encryption management server 4) are configured as the same Web browsing application by operating a program such as a Java application (script) on the Web browser.

また同様に、SQLプロクシ31とDBMS32を独立した構成とする以外にも、DBMS32とSQLプロクシ31を同一アプリケーションとしてサーバ側に構成しても構わない。   Similarly, in addition to the configuration in which the SQL proxy 31 and the DBMS 32 are independent, the DBMS 32 and the SQL proxy 31 may be configured on the server side as the same application.

また、データベースに格納するデータについての暗号化/復号化では、すべてのデータを暗号化して格納する構成としても構わないが、一部の特定タイプのデータをフィールド情報などから判断して暗号化しデータベースに格納する形態とすることで、データを必要十分に保護しながら効率的なデータ入出力を行うことが可能である。プライバシー保護などのための機密化が必要十分に実現されるように、所定の性質のデータについてのみ対象として暗号化を行えば良い。どのようなデータに対して暗号化を施すかについては、システム適用の時点で例えばHTMLの入力フォーム中のフィールド情報に対し暗号化あるいは非暗号化の指示を記述するなどの手法を用いる。前記の実施の形態の場合は、HTMLの入力フォーム中のフィールド情報を判断して、名前、住所、電話番号などのフィールドに入力されたデータについて暗号化を施すこととした。   In addition, in the encryption / decryption of the data stored in the database, all data may be encrypted and stored. However, some specific types of data are encrypted by judging from field information and the like. Thus, efficient data input / output can be performed while protecting the data as necessary and sufficiently. It is only necessary to encrypt only data of a predetermined property so that confidentiality for privacy protection and the like is realized sufficiently. As to what kind of data is to be encrypted, for example, a method of describing an encryption or non-encryption instruction for field information in an HTML input form is used at the time of system application. In the case of the above-described embodiment, field information in the HTML input form is determined, and data input to fields such as name, address, and telephone number is encrypted.

また前記入力データの検索最小単位への分割例としては、例えば前記データAを、{A1=“東”,A2=“京”,A3=“都”,…}のように文字ごとに分割してそれぞれハッシュ化する処理形態とすることも可能である。この処理形態では、例えば検索キーを“新宿区”とした場合、データベースでハッシュ値「H(“新”),H(“宿”),H(“区”)」を含むデータ列を検索することで、ヒットした結果に“新宿区”を含むか否かを復号化しなくとも判断できる。   As an example of dividing the input data into the minimum search unit, for example, the data A is divided for each character such as {A1 = “east”, A2 = “Kyo”, A3 = “city”,. It is also possible to adopt a processing form in which each is hashed. In this processing mode, for example, if the search key is “Shinjuku ward”, a data string including the hash values “H (“ new ”), H (“ hotel ”), H (“ ku ”)” is searched in the database. Thus, it is possible to determine whether or not “Shinjuku-ku” is included in the hit result without decoding.

また、前記入力データの検索最小単位への分割に関し、そのハッシュ値のサイズを何ビットとするか、また分割してできたデータ(ハッシュ値)を正順に並べてストアするかランダムに並べるかなど、各種の処理形態が可能である。このような検索のための処理形態に関しては、本情報セキュリティシステムを情報処理システムへ適用する際に、入力データの分割方法、分割サイズ、ハッシュ値サイズ、データストア順などのデータ分割及びハッシュ化のルールを決めておく。   In addition, regarding the division of the input data into the minimum search unit, how many bits the hash value size is, whether the data (hash value) obtained by the division is stored in order or stored in random order, etc. Various processing forms are possible. Regarding the processing mode for such a search, when this information security system is applied to an information processing system, data division and hashing such as input data division method, division size, hash value size, data store order, etc. Determine the rules.

また、前記暗号化データ検索処理では、名前や住所といった整数値列を対象として検索する例を示したが、実数値や整数値についても検索を行えることが望ましい。完全一致検索の場合は前記整数値列の場合と同様のハッシュ化方法により実現できるが、値の大小を比較する比較検索のためには別途工夫が必要となる。実数値や整数値についての比較検索を行うためにハッシュ値の生成に関して工夫した処理形態を以下に示す。ハッシュ化に関して、対象とする表現区間をCと考えるとその正常値がほとんど入る制限区間を規定するYが考えられる。これを下記式(1)で表わす。異常値については、式(1)のXより小さければXとし、式(1)のYより大きければYとする。これに何らかの評価式を適用して整数空間にマッピングする。例えば、元のデータの分散が一様であればリニアにマッピングするだけで良く、下記式(2),(3)のようになる。そしてそのBをハッシュ値とする。この際、Zは小さければ小さいほど情報を隠蔽できるが検索速度が下がり、逆に大きければ大きいほど情報は漏れやすくなるが検索速度を上げることができる。これについてはアプリケーションの特性に応じて適当な値を設定する。このようにして求めたハッシュ値は元データを類推し難くかつ上下関係を逆転させない特性を有しているため、比較検索が可能となる。   In the encrypted data search process, an example of searching for an integer value string such as a name or an address has been shown. However, it is desirable that a search can be performed for a real value or an integer value. In the case of an exact match search, it can be realized by the same hashing method as in the case of the integer value sequence. However, a separate device is required for the comparison search for comparing the magnitudes of values. A processing form devised with respect to generation of a hash value in order to perform a comparison search for a real value or an integer value is shown below. Regarding hashing, if the target expression interval is considered as C, Y that defines a restriction interval in which almost normal values are included can be considered. This is expressed by the following formula (1). The abnormal value is X if it is smaller than X in equation (1), and Y if it is larger than Y in equation (1). Some kind of evaluation formula is applied to this and it maps to the integer space. For example, if the distribution of the original data is uniform, it is only necessary to perform linear mapping, and the following equations (2) and (3) are obtained. And let B be a hash value. At this time, the smaller Z is, the more information can be concealed, but the search speed decreases. Conversely, the larger the Z is, the easier it is to leak information, but the search speed can be increased. For this, an appropriate value is set according to the characteristics of the application. Since the hash value obtained in this way has characteristics that it is difficult to infer the original data and the vertical relationship is not reversed, a comparative search is possible.

X<C<Y ・・・(1)
B=(C−X)×Z/(Y−X) (BとZは整数)・・・(2)
0<B<Z ・・・(3)
また、データベースに格納する暗号化データに対し処理識別用の管理IDを付与した形で格納する形態とすれば、暗号化データの復号化の際などに、その管理IDを参照することですぐに復号化鍵を判断して復号化することができる。具体的にはHTTPプロクシ12及び暗号管理サーバ4で、入力データに対し暗号化を行う際に、暗号化処理と共に、暗号化データのヘッダ情報として管理IDや処理識別タグなどを生成して付与する処理を行うなどする。このような暗号化データに管理IDを付与する処理形態以外でも、復号化の際に暗号管理情報を参照してデータIDやユーザIDなどの諸情報から復号化鍵を判断することが可能である。また、データベース中の暗号化領域と非暗号化領域が判別できるように、暗号化領域と非暗号化領域の区別を示す識別情報や暗号化領域アドレス情報などをDBサーバ3やその他のモジュールで保持して使用することとしても良い。
X <C <Y (1)
B = (C−X) × Z / (Y−X) (B and Z are integers) (2)
0 <B <Z (3)
Further, if the encrypted data stored in the database is stored in a form in which a management ID for processing identification is added, it is possible to immediately refer to the management ID when decrypting the encrypted data. The decryption key can be determined and decrypted. Specifically, when encryption is performed on the input data by the HTTP proxy 12 and the encryption management server 4, a management ID, a process identification tag, and the like are generated and attached as header information of the encrypted data together with the encryption process. Perform processing. It is possible to determine the decryption key from various information such as the data ID and the user ID by referring to the encryption management information at the time of decryption other than the processing mode in which the management ID is assigned to the encrypted data. . Also, the identification information indicating the distinction between the encrypted area and the unencrypted area, the encrypted area address information, etc. are held in the DB server 3 and other modules so that the encrypted area and the unencrypted area in the database can be distinguished. It is also possible to use it.

また本実施の形態ではデータの暗号化/復号化の際の鍵については暗号管理サーバ4やポリシー管理サーバ5が必要に応じて作成して管理するものとし特に限定しなかったが、認証トークン6内に保持されているユーザの秘密鍵などの情報を、対象データの暗号化/復号化処理に使用する構成としても良い。   In the present embodiment, the encryption management server 4 and the policy management server 5 create and manage the key for data encryption / decryption as necessary, but the authentication token 6 is not particularly limited. Information such as a user's private key held in the server may be used for encryption / decryption processing of the target data.

また、ポリシー管理サーバ5に関して、これを設けない形態、あるいは暗号管理サーバと一体とする形態も可能である。その該当例は、ユーザ単位や所定データ単位のデータベースアクセス権限の設定を行わない場合である。例えばすべてのユーザがデータベースの同一領域にしかアクセスできないポリシー設定とする場合などである。この場合、SQLプロクシ31におけるアクセス領域絞り込み条件の付加の処理が不要である。   Further, the policy management server 5 may be configured so as not to be provided or integrated with the encryption management server. A corresponding example is a case where database access authority is not set for each user or for a predetermined data unit. For example, a policy setting in which all users can access only the same area of the database is used. In this case, the processing for adding the access area narrowing condition in the SQL proxy 31 is unnecessary.

また、DBサーバ3で扱うデータベースの方式はリレーショナル・データベースに限らず、所定のデータ単位に対して暗号化した状態で格納が可能であれば良いので、オブジェクト指向型データベースなどその他の方式を用いることもできる。   Further, the database system handled by the DB server 3 is not limited to a relational database, and any other system such as an object-oriented database may be used as long as it can be stored in an encrypted state with respect to a predetermined data unit. You can also.

また、ユーザIDを有する特定ユーザではなく、一般の不特定多数のユーザが本情報処理システムにアクセスを行う場合の構成及び処理については例えば以下(1),(2)のようになる。(1):クライアント1において、Java(R)アプレットやActiveXなどのプログラムを用いて前記HTTPプロクシ12に相当するような暗号処理アプリケーションをWebブラウザ11上で動作させる。そして、一般ユーザのアクセスの際は、その暗号処理アプリケーション及び暗号管理サーバ4でデータを暗号化し、暗号化データはASPサーバ2に送信する。(2):一般不特定多数ユーザ向けの共用のHTTPプロクシサーバをネットワーク上に配置する。データの暗号化/復号化のための鍵を持たないユーザのアクセスはそのプロクシサーバで担当し、そこでの処理を経由してデータの暗号化/復号化を行う。   The configuration and processing when a general unspecified number of users, not a specific user having a user ID, access the information processing system are as follows (1) and (2), for example. (1): In the client 1, a cryptographic processing application corresponding to the HTTP proxy 12 is operated on the Web browser 11 using a program such as Java® Applet or ActiveX. When a general user accesses, the data is encrypted by the encryption processing application and the encryption management server 4, and the encrypted data is transmitted to the ASP server 2. (2): A common HTTP proxy server for general unspecified users is arranged on the network. Access of a user who does not have a key for data encryption / decryption is handled by the proxy server, and data encryption / decryption is performed through processing there.

本実施の形態の情報セキュリティシステムの利用例を述べる。一例として病院内の電子カルテシステムが考えられる。電子カルテには、患者のプライバシーに係る情報が記載されるのでその機密性の保護が重要となると同時に、医療業務のためにデータ検索機能も必要である。ユーザとなる看護士や医師がポリシー管理サーバ5におけるポリシーの設定に従って所定のデータベースアクセス権限を与えられる。例えば外科、内科などを単位としてアクセス権限が設定される。また認証トークン6及びクライアント1となるコンピュータを使用してデータベースに保存される電子カルテデータへのアクセスを行う。ASPサーバ2は電子カルテ操作のアプリケーションを提供する。ユーザがクライアント1のWebブラウザ11から電子カルテデータへのアクセス要求を行うと、HTTPプロクシ12が介入し、ポリシー管理サーバ5でユーザ認証が行われ、データ暗号化/復号化の必要性が判断されて必要な場合は暗号管理サーバ4でデータ暗号化/復号化処理が行われる。電子カルテにデータを入力する際は、クライアント1における入力データがHTTPプロクシ12及び暗号管理サーバ4で暗号化処理されてからサーバ側に渡されデータベースに暗号化データが格納される。データベースに格納されている電子カルテデータからデータ例えば担当患者データを出力する際は、サーバ側で該当データは暗号化されており暗号化データを取得してHTTPプロクシ12及び暗号管理サーバ4によって復号化処理してからWebブラウザ11で出力される。電子カルテデータについての検索を行う際も同様に、クライアント1で適当な検索キーを入力すると、HTTPプロクシ12及び暗号管理サーバ4で検索キーが暗号化されこの暗号化された検索キーでデータベースの検索が行われる。前記ハッシュ値を用いる検索によりフィールド中の部分一致検索も可能であり検索結果についてはHTTPプロクシ12及び暗号管理サーバ4で復号化処理されてからWebブラウザ11に渡され判読可能な状態で出力される。   An example of using the information security system of this embodiment will be described. As an example, an electronic medical record system in a hospital can be considered. Since information related to patient privacy is described in the electronic medical record, protection of confidentiality is important, and at the same time, a data search function is necessary for medical work. A nurse or doctor as a user is given a predetermined database access authority according to the policy setting in the policy management server 5. For example, access authority is set in units of surgery, internal medicine, and the like. Also, the electronic medical record data stored in the database is accessed using the authentication token 6 and the computer serving as the client 1. The ASP server 2 provides an application for electronic medical chart operation. When the user makes an access request to the electronic medical record data from the Web browser 11 of the client 1, the HTTP proxy 12 intervenes, the user authentication is performed by the policy management server 5, and the necessity of data encryption / decryption is determined. If necessary, the encryption management server 4 performs data encryption / decryption processing. When data is input to the electronic medical record, the input data in the client 1 is encrypted by the HTTP proxy 12 and the encryption management server 4 and then passed to the server side, and the encrypted data is stored in the database. When data such as patient data is output from the electronic medical record data stored in the database, the corresponding data is encrypted on the server side, and the encrypted data is acquired and decrypted by the HTTP proxy 12 and the encryption management server 4 After processing, it is output by the Web browser 11. Similarly, when searching for electronic medical record data, when an appropriate search key is input by the client 1, the search key is encrypted by the HTTP proxy 12 and the encryption management server 4, and the database is searched by using the encrypted search key. Is done. The partial match search in the field is also possible by the search using the hash value, and the search result is decrypted by the HTTP proxy 12 and the cryptographic management server 4 and then passed to the Web browser 11 and output in a legible state. .

以上の本発明の実施の形態における情報セキュリティシステムにより、クライアント1のWebブラウザ11からサーバ側(ASPサーバ2)へのデータの出入り口で暗号機能により暗号化/復号化を行うことで、サーバ側においては暗号化データしか流れないように情報の機密化が実現されている。これにより特に内部者によるデータの盗み見や入手などの不正を効果的に防止できる。またクライアント1からサーバ側(ASPサーバ2)への入口と、データベース(DBMS32)への入口において、アクセス制限機能によりユーザ認証、及びアクセス権限を含むポリシーの確認に基づくデータベースアクセス制限を行うことでセキュア化を実現している。データの暗号化/復号化はHTTPプロクシ12を処理起点としてWebブラウザ11の背後で透過的に行われるので、ユーザはデータの暗号化/復号化について意識する必要なくWebアプリケーションを利用して判読可能な形式でデータを扱うことができる。またユーザ認証にPKIに基づく認証方式などを採用してユーザIDベースの認証により安全に運用可能である。   With the information security system in the embodiment of the present invention described above, encryption / decryption is performed by the encryption function at the gateway of data from the Web browser 11 of the client 1 to the server side (ASP server 2). Information is kept confidential so that only encrypted data flows. Thereby, it is possible to effectively prevent fraud such as snooping or obtaining data by insiders. Secure access by restricting database access based on user authentication and policy confirmation including access authority at the entrance from the client 1 to the server side (ASP server 2) and the entrance to the database (DBMS 32). Has been realized. Data encryption / decryption is transparently performed behind the Web browser 11 starting from the HTTP proxy 12, so that the user can read it using a Web application without having to be aware of the data encryption / decryption. Can handle data in various formats. In addition, an authentication method based on PKI or the like is adopted for user authentication, and it can be safely operated by user ID-based authentication.

また、データベースに格納される暗号化データに対しての検索機能も提供しており、ユーザはクライアント1側で通常の判読可能な形式で検索条件を入力すれば、HTTPプロクシ12及び暗号管理サーバ4での検索支援機能を通じて、データベースから抽出され復号化された検索結果を得ることができる。またハッシュ値を用いた検索処理を行うことにより特にフィールドにおける部分一致検索を可能とし、暗号化データの検索速度を向上することができる。   In addition, a search function for encrypted data stored in the database is also provided. If the user inputs a search condition in a normal readable format on the client 1 side, the HTTP proxy 12 and the encryption management server 4 are provided. Through the search support function, the search result extracted from the database and decrypted can be obtained. Further, by performing a search process using a hash value, a partial match search can be made particularly in the field, and the search speed of encrypted data can be improved.

また、Webベースの情報処理システムにおいてデータベースのアクセス権限は、PKIなどによるユーザ認証と、所定データ単位での権限設定とを組み合わせて設定可能であるため、ユーザ単位、部課単位、カラム単位、レコード単位、セル単位など、細やかなセキュリティポリシーを構築可能である。   Further, in the Web-based information processing system, the database access authority can be set by combining user authentication by PKI or the like and authority setting in a predetermined data unit. It is possible to construct a detailed security policy such as cell unit.

また、ASPサーバ2とDBMS32との間にSQLプロクシ31を配置してポリシー管理サーバ5との間でユーザ認証やアクセス権限の確認を行うことで、クライアント1内にHTTPプロクシ11のみ配置した場合に比べてより高いセキュリティレベルを構築できる。仮に不正者によりASPサーバ2を通過されたとしてもSQLプロクシ31を処理起点としてデータベースアクセスに係わる認証の通過が必要なので、よりセキュアなシステムとなっている。   In addition, when only the HTTP proxy 11 is arranged in the client 1 by arranging the SQL proxy 31 between the ASP server 2 and the DBMS 32 and confirming user authentication and access authority with the policy management server 5. A higher security level can be established. Even if an unauthorized person passes the ASP server 2, it is necessary to pass authentication related to database access from the SQL proxy 31 as a process starting point, so that the system is more secure.

また、HTTPプロクシ12、SQLプロクシ31、暗号管理サーバ4、ポリシー管理サーバ5などの各処理の機能をモジュール単位で提供可能であるため、適用対象の情報処理システムに合わせて必要最小限から最大までのセキュリティを確保することができる。   In addition, since the functions of each process such as the HTTP proxy 12, the SQL proxy 31, the encryption management server 4, and the policy management server 5 can be provided in units of modules, the necessary minimum to maximum are adapted to the information processing system to be applied. Security can be ensured.

以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることは言うまでもない。   As mentioned above, the invention made by the present inventor has been specifically described based on the embodiment. However, the present invention is not limited to the embodiment, and various modifications can be made without departing from the scope of the invention. Needless to say.

本発明は、顧客データ、社員データなど保護すべき情報を扱う情報処理システム全般に対して利用可能である。   The present invention can be used for all information processing systems that handle information to be protected, such as customer data and employee data.

本発明の一実施の形態における情報セキュリティシステムの全体構成を示す図である。It is a figure showing the whole information security system composition in one embodiment of the present invention. 本発明の一実施の形態における情報セキュリティシステムで、情報処理システム上におけるデータの暗号化/復号化の状態を示す説明図である。It is explanatory drawing which shows the state of the encryption / decryption of data on an information processing system with the information security system in one embodiment of this invention. 本発明の一実施の形態における情報セキュリティシステムの管理する情報について示す図であり、(a)は暗号管理サーバが管理する暗号管理情報を、(b)はポリシー管理サーバが管理するポリシー管理情報を示す。It is a figure shown about the information which the information security system in one embodiment of this invention manages, (a) is the encryption management information which a encryption management server manages, (b) is the policy management information which a policy management server manages Show. 本発明の一実施の形態における情報セキュリティシステムの処理動作として、ユーザ認証と接続チケット入手の処理の流れを示すシーケンス図である。It is a sequence diagram which shows the flow of a process of user authentication and a connection ticket acquisition as a processing operation of the information security system in one embodiment of this invention. 本発明の一実施の形態における情報セキュリティシステムの処理動作として、データベース接続の処理の流れを示すシーケンス図である。It is a sequence diagram which shows the flow of a database connection process as a process operation of the information security system in one embodiment of this invention. 本発明の一実施の形態における情報セキュリティシステムの処理動作として、データ入力時のデータ暗号化処理の流れを示すシーケンス図である。It is a sequence diagram which shows the flow of the data encryption process at the time of data input as a processing operation of the information security system in one embodiment of this invention. 本発明の一実施の形態における情報セキュリティシステムの処理動作として、データ出力時のデータ復号化処理の流れを示すシーケンス図である。It is a sequence diagram which shows the flow of the data decoding process at the time of data output as a processing operation of the information security system in one embodiment of this invention. 本発明の一実施の形態における情報セキュリティシステムの処理動作として、データ検索時におけるハッシュ値を用いた暗号化データ検索処理の流れを示すシーケンス図である。It is a sequence diagram which shows the flow of the encryption data search process using the hash value at the time of a data search as a processing operation of the information security system in one embodiment of this invention. 本発明の一実施の形態における情報セキュリティシステムで、ハッシュ値を用いた暗号化データ検索処理におけるデータの状態を示す説明図である。It is explanatory drawing which shows the state of the data in the encryption data search process using a hash value with the information security system in one embodiment of this invention.

符号の説明Explanation of symbols

1…クライアント、2…ASPサーバ、3…DBサーバ、4…暗号管理サーバ、5…ポリシー管理サーバ、6…認証トークン、7…ユーザ証明書、8…ASP証明書、9…DB証明書、10…認証局、11…Webブラウザ、12…HTTPプロクシ、21…ASP部、22…SQLプロクシドライバ、31…SQLプロクシ、32…DBMS、311…IPパケットプロクシ、d1,d2…データ、d3,d4,d5…暗号化データ、41,52…データID、42…鍵情報、43…ハッシュ情報、44…処理属性、51…ユーザID。   DESCRIPTION OF SYMBOLS 1 ... Client, 2 ... ASP server, 3 ... DB server, 4 ... Encryption management server, 5 ... Policy management server, 6 ... Authentication token, 7 ... User certificate, 8 ... ASP certificate, 9 ... DB certificate, 10 ... Certificate Authority, 11 ... Web Browser, 12 ... HTTP Proxy, 21 ... ASP Unit, 22 ... SQL Proxy Driver, 31 ... SQL Proxy, 32 ... DBMS, 311 ... IP Packet Proxy, d1, d2 ... Data, d3, d4 d5 ... encrypted data, 41, 52 ... data ID, 42 ... key information, 43 ... hash information, 44 ... processing attribute, 51 ... user ID.

Claims (17)

ユーザがデータを入出力するクライアントと、データベースに前記データを格納するサーバと、を有する情報処理システムを保護対象とする情報セキュリティシステムのプログラムであって、
前記クライアント内または前記クライアントとサーバとの間において前記データの入出力の通信に介入し、前記データが前記サーバ側で暗号化状態となり前記データベースに暗号化データとして格納され逆に前記クライアント側では復号化状態で出力されるように前記データの暗号化/復号化を行う暗号機能をコンピュータに実行させることを特徴とする、情報セキュリティシステムのプログラム。
A program of an information security system for protecting an information processing system having a client for a user to input and output data and a server for storing the data in a database,
Intervene in the input / output communication of the data within the client or between the client and the server, the data is in an encrypted state on the server side, stored as encrypted data in the database, and conversely decrypted on the client side A program for an information security system, which causes a computer to execute an encryption function for encrypting / decrypting the data so that the data is output in an encrypted state.
請求項1記載の情報セキュリティシステムのプログラムにおいて、
前記データの入力時において、前記クライアント内または前記クライアントとサーバとの間において前記クライアントの前記データについての入出力インターフェイス部から前記サーバ側への通信に介入して前記データについて暗号化の必要を判断する手順と、
暗号化が必要と判断した場合に前記データが前記サーバ側で暗号化状態となり前記データベースに暗号化データとして格納されるように前記データについての暗号化の要求を送信する手順と、
前記要求に基づき前記データの暗号化を所定の暗号アルゴリズム及び暗号化鍵を用いて行って暗号化データを返す手順と、
前記暗号化データを受信して前記サーバ側に送信する手順と、を有し、
また前記データの出力時において、前記クライアント内または前記クライアントとサーバとの間において前記サーバ側から前記クライアントの入出力インターフェイス部への通信に介入して前記データについて復号化の必要を判断する手順と、
復号化が必要と判断した場合に前記データが前記クライアント側の入出力インターフェイス部に復号化状態で出力されるように前記データについての復号化の要求を送信する手順と、
前記要求に基づき前記データの復号化を所定の暗号アルゴリズム及び復号化鍵を用いて行って復号化されたデータを返す手順と、
前記復号化されたデータを受信して前記入出力インターフェイス部に送信して出力させる手順と、を有することを特徴とする、情報セキュリティシステムのプログラム。
The information security system program according to claim 1,
At the time of inputting the data, it is determined whether the data needs to be encrypted by intervening in communication from the input / output interface unit for the data of the client to the server side in the client or between the client and the server. And the steps to
A procedure for transmitting an encryption request for the data so that the data is encrypted on the server side and stored as encrypted data in the database when it is determined that encryption is necessary;
A procedure of performing encryption of the data based on the request using a predetermined encryption algorithm and an encryption key and returning encrypted data;
And receiving the encrypted data and transmitting it to the server side,
A procedure for determining whether the data needs to be decrypted by intervening in communication from the server side to the input / output interface unit of the client in the client or between the client and the server at the time of outputting the data; ,
A procedure for transmitting a decryption request for the data so that the data is output in a decrypted state to the input / output interface unit on the client side when it is determined that decryption is necessary;
A step of decrypting the data based on the request using a predetermined encryption algorithm and a decryption key and returning the decrypted data;
A program for an information security system, comprising: receiving the decrypted data, and transmitting the decrypted data to the input / output interface unit for output.
ユーザがデータを入出力するクライアントと、データベースに前記データを格納するサーバと、を有する情報処理システムを保護対象とする情報セキュリティシステムのプログラムであって、
前記クライアント内で前記データの入出力インターフェイス部の周囲あるいは一部要素において前記サーバ側との前記データの入出力の通信に介入し、これを処理起点として前記データが前記サーバ側で暗号化状態となり前記データベースに暗号化データとして格納され逆に前記クライアント側では復号化状態で出力されるように前記データの暗号化/復号化を行う第1の処理をコンピュータに実行させることを特徴とする、情報セキュリティシステムのプログラム。
A program of an information security system for protecting an information processing system having a client for a user to input and output data and a server for storing the data in a database,
In the client, the data input / output communication with the server side is intervened around the data input / output interface unit or in some elements, and the data is in an encrypted state on the server side using this as a processing start point. Information that causes a computer to execute a first process for encrypting / decrypting the data so that the data is stored in the database as encrypted data and is output in a decrypted state on the client side. Security system program.
請求項3記載の情報セキュリティシステムのプログラムであって、
前記データの暗号化/復号化に使用する鍵情報を管理する処理と、前記第1の処理からの要求に基づき前記データについて前記鍵情報を使用して暗号化/復号化処理して暗号化/復号化されたデータを返す処理と、を行う第2の処理をコンピュータに実行させることを特徴とする、情報セキュリティシステムのプログラム。
An information security system program according to claim 3,
A process for managing key information used for encryption / decryption of the data, and an encryption / decryption process using the key information for the data based on a request from the first process. A program for an information security system, which causes a computer to execute a second process for performing a process of returning decrypted data.
請求項3記載の情報セキュリティシステムのプログラムにおいて、
前記データベースに対する前記データの入出力のための通信に介入し、前記クライアント側またはサーバ側からのユーザの認証情報の受信に基づくユーザ認証処理と、前記データについてのユーザ単位及び前記データベースにおける所定データ単位でのアクセス権限の設定を含んだポリシー設定を確認してこれに基づき前記データベースへのアクセス対象領域またはデータを制限して問い合わせを行う処理と、を行うアクセス制限機能をコンピュータに実行させることを特徴とする、情報セキュリティシステムのプログラム。
In the information security system program according to claim 3,
Intervening in communication for input / output of the data to / from the database, user authentication processing based on reception of user authentication information from the client side or server side, a user unit for the data, and a predetermined data unit in the database And making the computer execute an access restriction function for checking the policy setting including setting of the access right in the database and performing a query by restricting the access target area or data to the database based on the policy setting. An information security system program.
請求項5記載の情報セキュリティシステムのプログラムにおいて、
前記クライアント側からサーバ側への前記データの入出力のためのアクセスに際して前記クライアント側からのユーザの認証情報の受信に基づくユーザ認証処理を行う手順と、
前記ユーザ認証の通過後における前記データベースの前段での前記データの入出力のためのデータベースアクセスに際して前記サーバ側からのユーザの認証情報の受信に基づくユーザ認証処理を行い、前記データについてのユーザ単位及び前記データベースにおける所定データ単位でのアクセス権限を確認する手順と、
前記アクセス権限の確認に基づき前記データベースへのアクセス対象領域またはデータを制限して問い合わせを行って前記データベースから結果を得る手順と、を有することを特徴とする、情報セキュリティシステムのプログラム。
In the information security system program according to claim 5,
A procedure for performing user authentication processing based on reception of user authentication information from the client side at the time of access for input / output of the data from the client side to the server side;
Performing user authentication processing based on reception of user authentication information from the server side at the time of database access for input / output of the data in the previous stage of the database after passing the user authentication, A procedure for confirming access authority in a predetermined data unit in the database;
A program for an information security system, comprising: a step of making an inquiry by limiting an access target area or data to the database based on the confirmation of the access authority and obtaining a result from the database.
請求項5記載の情報セキュリティシステムのプログラムにおいて、
前記サーバ側のデータベースの前段あるいは一部要素において前記データベースに対する前記データの入出力の通信に介入し、前記データについてのユーザ単位及び前記データベースにおける所定データ単位でのアクセス権限の設定を含んだポリシー設定を確認して、これに基づき前記データベースへのアクセス対象領域またはデータを制限して問い合わせを行う第3の処理をコンピュータに実行させることを特徴とする、情報セキュリティシステムのプログラム。
In the information security system program according to claim 5,
Policy setting including intervention of data input / output communication with the database in the previous stage or a part of the server-side database, and setting of access authority for each user in the database and for a predetermined data unit in the database A program for an information security system, which causes a computer to execute a third process of confirming and restricting an access target area or data to the database based on this and making an inquiry.
請求項7記載の情報セキュリティシステムのプログラムにおいて、
前記データについてのユーザ単位及び前記データベースにおける所定データ単位でのアクセス権限の設定を含んだポリシー設定を管理する処理と、前記クライアント側またはサーバ側からのユーザの認証情報の受信に基づくユーザ認証及び前記第3の処理からの要求に基づくポリシー設定の確認を行う処理と、を行う第4の処理をコンピュータに実行させることを特徴とする、情報セキュリティシステムのプログラム。
The information security system program according to claim 7,
Processing for managing policy settings including setting of access authority in units of users and predetermined data units in the database, user authentication based on reception of user authentication information from the client side or server side, and A program for an information security system, which causes a computer to execute a fourth process for performing a process for confirming policy setting based on a request from a third process.
ユーザが入出力インターフェイス部を通じてデータを入出力するクライアントと、前記クライアントからのアクセスに応じて前記データを所定のビジネスロジックで処理するアプリケーションサーバと、前記アプリケーションサーバを通じて前記データをデータベースに入出力するデータベースサーバと、を有する情報処理システムを保護対象とする情報セキュリティシステムのプログラムであって、
前記クライアント内で前記データの入出力インターフェイス部の周囲あるいは一部要素において前記アプリケーションサーバとの間での前記データの入出力の通信に介入し、これを処理起点として前記データが前記サーバ側で暗号化状態となり前記データベースに暗号化データとして格納され逆に前記クライアント側では前記入出力インターフェイス部に復号化状態で出力されるように前記データの暗号化/復号化を行う第1の処理と、
前記データの暗号化/復号化に使用する鍵情報を管理する処理と前記第1の処理からの要求に基づき前記データについて前記鍵情報で暗号化/復号化処理して暗号化/復号化されたデータを返す処理とを行う第2の処理と、
前記データベースサーバのデータベースの前段あるいは一部要素において前記データベースに対する前記データの入出力の通信に介入し、前記データについてのユーザ単位及び前記データベースにおける所定データ単位でのアクセス権限の設定を含んだポリシー設定を確認してこれに基づき前記データベースへのアクセス対象領域またはデータを制限して問い合わせを行う第3の処理と、
前記データについてのユーザ単位及び前記データベースにおける所定データ単位でのアクセス権限の設定を含んだポリシー設定を管理する処理と前記クライアント側またはサーバ側からのユーザの認証情報の受信に基づくユーザ認証及び前記第3の処理からの要求に基づく前記ポリシー設定の確認を行う処理とを行う第4の処理と、をコンピュータに実行させることを特徴とする、情報セキュリティシステムのプログラム。
A client in which a user inputs / outputs data through an input / output interface unit, an application server that processes the data with a predetermined business logic in response to access from the client, and a database in which the data is input / output to / from the database through the application server And an information security system program for protecting an information processing system having a server,
Intervene in the input / output communication of the data with the application server in the client around the data input / output interface unit or in a part of the data, and the data is encrypted on the server side using this as a processing start point. A first process for encrypting / decrypting the data so that the data is stored in the database as encrypted data and conversely output to the input / output interface unit in the decrypted state on the client side;
The data is encrypted / decrypted by encrypting / decrypting the data with the key information based on a request from the process for managing the key information used for encryption / decryption of the data and the first process. A second process for performing a process of returning data;
Policy setting including intervention of data input / output communication with respect to the database at a preceding stage or a part of the database of the database server, and setting of access authority for each user in the data base and a predetermined data unit in the database And a third process for making an inquiry by restricting the access target area or data to the database based on this,
Processing for managing policy settings including setting of access authority in units of users for the data and predetermined data units in the database, user authentication based on reception of user authentication information from the client side or server side, and the first 4. A program for an information security system, which causes a computer to execute a fourth process for performing a process for confirming the policy setting based on a request from the process 3.
請求項3記載の情報セキュリティシステムのプログラムにおいて、
前記データベースに格納された暗号化データを検索するための検索機能として、前記クライアント側で指定された検索条件を前記第1の処理を通じて暗号化または一方向ハッシュ化し、前記暗号化または一方向ハッシュ化された検索条件について前記サーバ側のデータベースの前段においてデータベース問い合わせのための具体的な検索条件として設定してデータベース問い合わせを行わせ、これにより抽出された暗号化データ群について、検索結果絞り込みの処理を行い、この検索結果について前記第1の処理を通じて復号化してから前記クライアントの入出力インターフェイス部に出力する機能をコンピュータに実行させることを特徴とする、情報セキュリティシステムのプログラム。
In the information security system program according to claim 3,
As a search function for searching the encrypted data stored in the database, the search condition designated on the client side is encrypted or one-way hashed through the first processing, and the encryption or one-way hashing is performed. In the preceding stage of the database on the server side, the specified query condition is set as a specific query condition for the database query, the database query is performed, and the search result narrowing process is performed on the extracted encrypted data group. A program for an information security system that causes a computer to execute a function of decrypting the search result through the first process and outputting the result to the input / output interface unit of the client.
請求項10記載の情報セキュリティシステムのプログラムにおいて、
前記検索機能として、前記クライアントで指定された検索条件を判断して前記第1の処理により検索キーを暗号化してこの暗号化された検索キーを前記サーバ側に送信し、前記サーバ側では前記暗号化された検索キーを用いて前記データベースに対する問い合わせを行ってこれによりデータベースから抽出された暗号化データを前記クライアント側に送信し、これを前記第1の処理により復号化して前記クライアントの入出力インターフェイス部に検索結果として出力する機能をコンピュータに実行させることを特徴とする、情報セキュリティシステムのプログラム。
The information security system program according to claim 10,
As the search function, the search condition specified by the client is judged, the search key is encrypted by the first processing, and the encrypted search key is transmitted to the server side. An inquiry is made to the database by using the converted search key, and the encrypted data extracted from the database is transmitted to the client side, and this is decrypted by the first processing to input / output interface of the client A program for an information security system, which causes a computer to execute a function of outputting a search result to a computer.
請求項10記載の情報セキュリティシステムのプログラムにおいて、
前記クライアント側からの前記データの入力時、前記第1の処理により前記データを暗号化することに加え、前記データについて所定の一方向ハッシュ関数によりハッシュ値を生成しこれを前記暗号化されたデータと関連付ける処理と、
検索時、前記クライアントで入力された検索キーについて前記一方向ハッシュ関数によりハッシュ値の生成を行ってこれを前記サーバ側に送信し、前記サーバ側で前記検索キーのハッシュ値により前記データベース中の前記暗号化データに関連付けされたハッシュ値を対象として検索して値が一致する領域に対応する暗号化データを抽出させる処理と、
前記抽出結果の暗号化データについて復号化して元の検索キーが含まれるものを選んでこれを検索結果として前記クライアントに返す処理と、をコンピュータに実行させることを特徴とする、情報セキュリティシステムのプログラム。
The information security system program according to claim 10,
At the time of inputting the data from the client side, in addition to encrypting the data by the first processing, a hash value is generated for the data by a predetermined one-way hash function, and this is used as the encrypted data Processing to associate with
At the time of search, a hash value is generated by the one-way hash function for the search key input by the client and transmitted to the server side, and the server side stores the hash value of the search key in the database. A process of searching for a hash value associated with the encrypted data and extracting the encrypted data corresponding to the area where the values match,
A program for an information security system, which causes a computer to execute processing for decrypting the encrypted data of the extraction result and selecting the one containing the original search key and returning it to the client as a search result .
請求項12記載の情報セキュリティシステムのプログラムにおいて、
前記クライアント側から前記データを前記データベースへ入力する際、前記第1の処理により前記データを暗号化することに加え、前記データを所定単位に分割し、各分割されたデータについて所定の一方向ハッシュ関数によりハッシュ値を生成し前記暗号化データと関連付けて前記データベースにおける検索の際に参照可能となるように保管する処理をコンピュータに実行させることを特徴とする、情報セキュリティシステムのプログラム。
The information security system program according to claim 12,
When inputting the data from the client side to the database, in addition to encrypting the data by the first processing, the data is divided into predetermined units, and a predetermined one-way hash is assigned to each divided data A program for an information security system, which causes a computer to execute a process of generating a hash value by a function and storing it in association with the encrypted data so that it can be referred to when searching in the database.
請求項1〜13のいずれか一項に記載の情報セキュリティシステムのプログラムにおいて、
前記クライアントが、前記データに関するアクセスの際、ユーザ証明書情報を保持する認証トークンを読み込んでここから前記認証情報を生成し、これにより所定の認証方式に基づいて前記ユーザ認証及びポリシー設定の確認を行わせる処理をコンピュータに実行させることを特徴とする、情報セキュリティシステムのプログラム。
In the information security system program according to any one of claims 1 to 13,
When accessing the data, the client reads an authentication token holding user certificate information and generates the authentication information therefrom, thereby confirming the user authentication and policy setting based on a predetermined authentication method. A program for an information security system, which causes a computer to execute processing to be performed.
請求項1〜14のいずれか一項に記載の情報セキュリティシステムのプログラムにおいて、
前記データベースに格納されるデータについて判断してその内の特定タイプのデータに対してのみ前記暗号化/復号化の対象とする処理をコンピュータに実行させることを特徴とする、情報セキュリティシステムのプログラム。
In the information security system program according to any one of claims 1 to 14,
A program for an information security system, characterized in that data stored in the database is judged and a process to be encrypted / decrypted is executed only for specific types of data in the database.
請求項1〜15のいずれか一項に記載の情報セキュリティシステムのプログラムを記憶したことを特徴とする記憶媒体。   A storage medium storing the information security system program according to any one of claims 1 to 15. 請求項1〜15のいずれか一項に記載の情報セキュリティシステムのプログラムを読み込んで実行することを特徴とする情報処理装置。

An information processing apparatus that reads and executes the information security system program according to any one of claims 1 to 15.

JP2004052787A 2004-02-27 2004-02-27 Program, storage medium and information processor in information security system Pending JP2005242740A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004052787A JP2005242740A (en) 2004-02-27 2004-02-27 Program, storage medium and information processor in information security system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004052787A JP2005242740A (en) 2004-02-27 2004-02-27 Program, storage medium and information processor in information security system

Publications (1)

Publication Number Publication Date
JP2005242740A true JP2005242740A (en) 2005-09-08

Family

ID=35024402

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004052787A Pending JP2005242740A (en) 2004-02-27 2004-02-27 Program, storage medium and information processor in information security system

Country Status (1)

Country Link
JP (1) JP2005242740A (en)

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007079794A (en) * 2005-09-13 2007-03-29 Casio Comput Co Ltd Organization chart editing device and program
JP2010061103A (en) * 2008-05-30 2010-03-18 Nec (China) Co Ltd Method, device and system for fast searchable encryption
JP2011522298A (en) * 2008-07-16 2011-07-28 サムスン エレクトロニクス カンパニー リミテッド Apparatus and method for providing security service in user interface
JP2012517064A (en) * 2009-02-05 2012-07-26 ダブリューダブリューパス コーポレイション Centralized authentication system and method with secure private data storage
WO2013042412A1 (en) * 2011-09-22 2013-03-28 九州日本電気ソフトウェア株式会社 Communication system, communication method, and computer readable recording medium
JP2013516642A (en) * 2009-12-31 2013-05-13 バウルティブ リミテッド System, apparatus and method for encrypting and decrypting data transmitted over a network
US8898394B2 (en) 2009-08-12 2014-11-25 Fujitsu Limited Data migration method
US9002976B2 (en) 2008-09-15 2015-04-07 Vaultive Ltd System, apparatus and method for encryption and decryption of data transmitted over a network
JP2016533606A (en) * 2013-10-14 2016-10-27 ファスー ドット コム カンパニー リミテッドFasoo. Com Co., Ltd Index generation method and apparatus for fields encrypted in database
JP2016200938A (en) * 2015-04-09 2016-12-01 株式会社日立ソリューションズ Search system
JPWO2016017324A1 (en) * 2014-07-28 2017-04-27 エンクリプティア株式会社 User information management system, user information management method, management server program and recording medium recording the same, user terminal program and recording medium recording the same, service server program and recording medium recording the same
JP2017134728A (en) * 2016-01-29 2017-08-03 富士ゼロックス株式会社 Information processing device and information processing program
JP2018147364A (en) * 2017-03-08 2018-09-20 株式会社リコー Information processing system, information processing apparatus, and program
JP6429962B1 (en) * 2017-09-04 2018-11-28 ヤフー株式会社 Information processing apparatus, information processing method, and information processing program
US10313371B2 (en) 2010-05-21 2019-06-04 Cyberark Software Ltd. System and method for controlling and monitoring access to data processing applications
JP2020201818A (en) * 2019-06-12 2020-12-17 日本電気株式会社 Information processing apparatus, information processing method, and program
JP2021039143A (en) * 2019-08-30 2021-03-11 株式会社日立製作所 Confidential information processing system and confidential information processing method
US11233629B2 (en) 2018-01-17 2022-01-25 Mitsubishi Electric Corporation Registration apparatus, search operation apparatus, data management apparatus

Cited By (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007079794A (en) * 2005-09-13 2007-03-29 Casio Comput Co Ltd Organization chart editing device and program
JP2010061103A (en) * 2008-05-30 2010-03-18 Nec (China) Co Ltd Method, device and system for fast searchable encryption
US8930688B2 (en) 2008-07-16 2015-01-06 Samsung Electronics Co., Ltd. Apparatus and method for providing security service of user interface
JP2011522298A (en) * 2008-07-16 2011-07-28 サムスン エレクトロニクス カンパニー リミテッド Apparatus and method for providing security service in user interface
US9444793B2 (en) 2008-09-15 2016-09-13 Vaultive Ltd. System, apparatus and method for encryption and decryption of data transmitted over a network
US9338139B2 (en) 2008-09-15 2016-05-10 Vaultive Ltd. System, apparatus and method for encryption and decryption of data transmitted over a network
US9002976B2 (en) 2008-09-15 2015-04-07 Vaultive Ltd System, apparatus and method for encryption and decryption of data transmitted over a network
JP2012517064A (en) * 2009-02-05 2012-07-26 ダブリューダブリューパス コーポレイション Centralized authentication system and method with secure private data storage
US8898394B2 (en) 2009-08-12 2014-11-25 Fujitsu Limited Data migration method
JP2013516642A (en) * 2009-12-31 2013-05-13 バウルティブ リミテッド System, apparatus and method for encrypting and decrypting data transmitted over a network
US10313371B2 (en) 2010-05-21 2019-06-04 Cyberark Software Ltd. System and method for controlling and monitoring access to data processing applications
JPWO2013042412A1 (en) * 2011-09-22 2015-03-26 Necソリューションイノベータ株式会社 COMMUNICATION SYSTEM, COMMUNICATION METHOD, AND PROGRAM
WO2013042412A1 (en) * 2011-09-22 2013-03-28 九州日本電気ソフトウェア株式会社 Communication system, communication method, and computer readable recording medium
JP2016533606A (en) * 2013-10-14 2016-10-27 ファスー ドット コム カンパニー リミテッドFasoo. Com Co., Ltd Index generation method and apparatus for fields encrypted in database
JPWO2016017324A1 (en) * 2014-07-28 2017-04-27 エンクリプティア株式会社 User information management system, user information management method, management server program and recording medium recording the same, user terminal program and recording medium recording the same, service server program and recording medium recording the same
JP2016200938A (en) * 2015-04-09 2016-12-01 株式会社日立ソリューションズ Search system
JP2017134728A (en) * 2016-01-29 2017-08-03 富士ゼロックス株式会社 Information processing device and information processing program
JP2022000819A (en) * 2017-03-08 2022-01-04 株式会社リコー Information processing system, information processing device and program
JP2018147364A (en) * 2017-03-08 2018-09-20 株式会社リコー Information processing system, information processing apparatus, and program
JP7279760B2 (en) 2017-03-08 2023-05-23 株式会社リコー Information processing system, information processing device and program
JP6429962B1 (en) * 2017-09-04 2018-11-28 ヤフー株式会社 Information processing apparatus, information processing method, and information processing program
JP2019046262A (en) * 2017-09-04 2019-03-22 ヤフー株式会社 Information processing apparatus, information processing method, and information processing program
US11233629B2 (en) 2018-01-17 2022-01-25 Mitsubishi Electric Corporation Registration apparatus, search operation apparatus, data management apparatus
JP2020201818A (en) * 2019-06-12 2020-12-17 日本電気株式会社 Information processing apparatus, information processing method, and program
JP7318328B2 (en) 2019-06-12 2023-08-01 日本電気株式会社 Information processing device, information processing method, and program
JP2021039143A (en) * 2019-08-30 2021-03-11 株式会社日立製作所 Confidential information processing system and confidential information processing method
JP7249248B2 (en) 2019-08-30 2023-03-30 株式会社日立製作所 Confidential Information Processing System and Confidential Information Processing Method

Similar Documents

Publication Publication Date Title
US9141822B2 (en) Computer system for storing and retrieval of encrypted data items, client computer, computer program product and computer-implemented method
CN107925581B (en) Biometric authentication system and authentication server
US7155616B1 (en) Computer network comprising network authentication facilities implemented in a disk drive
KR102177848B1 (en) Method and system for verifying an access request
JP2005242740A (en) Program, storage medium and information processor in information security system
JP4896054B2 (en) Personal information management device, personal information management program, and personal information management system
US20060248345A1 (en) Access authentication method, information processing unit, and computer product
EP3477891A1 (en) Methods for recording and sharing a digital identity of a user using distributed ledgers
WO2005119960A2 (en) Structure preserving database encryption method and system
CN104239820A (en) Secure storage device
US20140156988A1 (en) Medical emergency-response data management mechanism on wide-area distributed medical information network
JPH09282393A (en) Cooperation method for health insurance medical care card and on-line data base
JPH10111897A (en) Clinical consultation information sharing method
JP4947562B2 (en) Key information management device
JP2006099548A (en) Data sharing system, data sharing method, data holder device and data server
Rahunathan et al. Efficient and Secure Interoperable Healthcare Information System Using Keyword Searchable and Role-Based Access Control in Cloud Environment
EP2920732B1 (en) Computer system for storing and retrieval of encrypted data items, client computer, computer program product and computer-implemented method
US20090241184A1 (en) Method for generating access data for a medical device
JP4657706B2 (en) Authority management system, authentication server, authority management method, and authority management program
JP4521514B2 (en) Medical information distribution system, information access control method thereof, and computer program
CN108345801B (en) Ciphertext database-oriented middleware dynamic user authentication method and system
KR101049472B1 (en) A portable USB security module device, a method of registering and querying a document file using the portable USB security module device, and a program recording medium for executing the method
Mundy et al. Secure knowledge management for healthcare organizations
JP5257202B2 (en) Information provision system
JPH11212920A (en) Computer management system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051004

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20071105

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071127

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080325