JP2005242740A - Program, storage medium and information processor in information security system - Google Patents
Program, storage medium and information processor in information security system Download PDFInfo
- 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
Links
Images
Landscapes
- Storage Device Security (AREA)
- Computer And Data Communications (AREA)
Abstract
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
本実施の形態の情報セキュリティシステムは、一般的な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
本実施の形態では、クライアント1は、ユーザの使用するPCやモバイル端末などの各種Webクライアント装置に対応し、ASPサーバ2はASPサーバ装置に、DBサーバ3はDBサーバ装置にそれぞれ対応する。ハードウェア的に三つのコンピュータで分割されて構成される。なお、本発明で用いているWebベースの情報処理システムの構成は一般的な3層クライアント・サーバの概念モデルに基づくものであって前記のように三つのハードウェアで分割される構成に限定するものではない。例えばビジネスロジックを処理するASPサーバ2相当の機能をクライアント装置側やDBサーバ装置側に実装することも可能である。
In the present embodiment, the
本情報セキュリティシステムは、前記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
クライアント1−ASPサーバ2間は、HTTPプロトコルで通信接続される。ASPサーバ2−DBサーバ3間は、SQLに本発明関連の処理識別タグなどが加わった独自プロトコルで通信接続される。HTTPプロクシ12は、暗号管理サーバ4及びポリシー管理サーバ5と例えばSSLプロトコルを用いてセキュア通信で接続される。また、SQLプロクシ31は、暗号管理サーバ4及びポリシー管理サーバ5と例えばSSLプロトコルを用いてセキュア通信で接続される。
The
また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
クライアント1は、これに対応する一つ以上のWebクライアント装置が、ユーザが使用可能な任意位置に配置される。これには遠隔端末からのネットワークアクセスの構成も含む。ASPサーバ2、DBサーバ3は、例えば所定のサーバルームに配置される。暗号管理サーバ4、ポリシー管理サーバ5は、任意のセキュアな位置に配置される。例えば所定のセキュリティレベルを保証するセキュリティサービス会社やデータセンターなどのサーバルームへの配置などである。
In the
クライアント1は、Webブラウザ11と、HTTPプロクシ12とを有する。HTTPプロクシ12は、Webブラウザ11とは独立しており、その背後において透過的に暗号化/復号化処理動作を行う。HTTPプロクシ12と認証トークン6との間では、認証トークン6内に記憶されているユーザ証明書7などのユーザ情報のやり取りが必要に応じて行われる。
The
ユーザは、クライアント1において、Webブラウザ11を操作し、ASPサーバ2のWebアプリケーションからHTMLデータを得る。またクライアント1で認証トークン6の情報を読み込ませてポリシー管理サーバ5におけるユーザ認証を通過してデータベースへの接続チケットを得る。ユーザは、Webブラウザ11において必要に応じてデータの入力や出力を行う。データの入力とは、DBサーバ3にアクセスしてデータベースにデータを蓄積することであり、データの出力とはDBサーバ3にアクセスしてデータベースからデータを抽出することである。
The user operates the
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
DBサーバ3は、SQLプロクシ31と、DBMS32とを有する。本実施の形態では、リレーショナル・データベースとその問い合わせ言語であるSQLを扱う。
The
SQLプロクシ31は、ASPサーバ2−DBMS32間に介在し、ASPサーバ2のSQLプロクシドライバ22からSQL命令及び本発明関連処理のための処理識別情報(制御情報)を受け取ると、ポリシー管理サーバ5と通信を行って該当ユーザのアクセス権限を確認してそれに対応する適切な問い合わせ条件を設定してDBMS32に対しSQL命令を送信する。
When the
DBMS32は、リレーショナル・データベースを管理するデータベース管理システムであり、SQLプロクシ31を通じて受信するSQL命令に応じてデータベースの制御、データ操作、抽出などを行って結果を返す。具体的には、データベース接続(対応するSQL命令は「CONNECT」)、データの追加(「INSERT」)や変更(「UPDATE」)、指定データの取得やデータ検索(「SELECT」)などがある。また、DBMS32ではデータベースのバックアップ処理など所定の運用管理がなされる。データベースには暗号化データが格納されるので、バックアップデータも同様に暗号化データの形式となり、仮にこれが不正者により持ち出されても復号化に必要な鍵情報は暗号管理サーバ4に管理されているため意味をなさない。
The
暗号管理サーバ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
暗号管理サーバ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
ポリシー管理サーバ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
ポリシー管理サーバ5は、HTTPプロクシ12やSQLプロクシ31からの要求に応じて、PKIに基づくユーザ認証と、ユーザのアクセス権限の設定を含むポリシー設定の確認処理及び該当アクセスユーザに対する権限付与とを行う。特にSQLプロクシ31からアクセス権限の確認及び付与の要求を受けた場合は、ユーザがデータベースにおいてアクセス許可される領域あるいはデータを制限する条件を記述した情報を生成して返す。ポリシー管理サーバ5は、ポリシー管理情報として、ユーザを一意に特定するユーザIDとデータを一意に特定するデータIDとの対応を管理する。あるデータIDで識別されるデータにアクセス可能なユーザがユーザIDで対応付けされる。ポリシー管理サーバ5は、認証トークンとの間でのユーザ認証処理後、認証を正常に通過したユーザに対して、データベースへの接続の許可を示す情報である接続チケットを発行し、以後セッション内ではこの接続チケットをもとに認証や確認を行わせる。HTTPプロクシ12は、発行された接続チケットの情報を必要に応じて提示してサーバ側にアクセスを行う。
In response to a request from the
HTTPプロクシ12は、クライアント1のWebブラウザ11とASPサーバ2との間におけるHTTPプロトコル及び関連プロトコルによる通信に自動的に介入し、DBサーバ3のデータベースに格納されるデータについて暗号化/復号化の必要を判断して暗号管理サーバ4により暗号化/復号化処理を行わせる。HTTPプロクシ12は、Webブラウザ11/ASPサーバ2から受信した対象データについて暗号化/復号化の必要があると判断した場合は暗号管理サーバ4に対象データの暗号化/復号化の依頼を行ってそこで適切な鍵情報を使用して対象データの暗号化/復号化処理を行わせ、暗号化/復号化されたデータを得てASPサーバ2/Webブラウザ11に返す。
The
HTTPプロクシ12は、Webブラウザ11との通信部、ASPサーバとの通信部、暗号管理サーバ4との通信部、ポリシー管理サーバ5との通信部、認証トークン6の情報を読み込んでポリシー管理サーバ5などとの間で認証処理を行う認証処理部、データの暗号化を判断する暗号化処理部、データの復号化を判断する復号化処理部、データ検索を判断する検索処理部などの図示しないプログラムモジュールを有し、それぞれ連携して処理を行う。クライアント1に対応するコンピュータは、メモリ上にHTTPプロクシ12を構成する前記各プログラムモジュールを有し、プロセッサにより読み込んで処理命令を実行することで各種処理が実現される。
The
なお一般の「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
図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
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プロクシ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
暗号管理サーバ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
情報処理システムの利用を所定のポリシー設定に基づき許可されるユーザに対しては、システムへのアクセス許可証として機能する認証トークン6が与えられている。認証トークン6は、耐タンパー性を持った、ソフトウェアまたはハードウェアによって実装される暗号演算器であり、ユーザに固有の情報(秘密鍵など)を保持するものである。本実施の形態では、認証トークン6はハードウェア構成によるモジュールであり、メモリとプロセッサを有する所定形状の情報記憶媒体である。認証トークン6内のメモリにユーザ証明書7、PKIにおける秘密鍵の情報などを保持している。認証トークン6内では、ユーザ証明書7の提供の他、プロセッサによりデジタル署名の生成などの処理が行われる。認証トークン6は、例えばUSBトークンやICカードなどの形態を採る。本実施の形態では、クライアント1において認証トークン6の情報を読み込むことでユーザ証明書7の情報を用いてポリシー管理サーバ5でユーザ認証処理が行われる。ユーザ証明書7とポリシー管理サーバ5で管理されるユーザIDは対応し、これを用いてユーザ単位のアクセス権限管理が行われる。ポリシー管理サーバ5でのユーザ認証に成功すると、ユーザのデータベースアクセスが許可され、ユーザに対し接続チケットが発行される。この接続チケットは、一認証セッションにおいて有効な情報を暗号化して保存したものであり、リトライ攻撃などから保護するために、保存情報として有効期限などの情報を持つ。クライアント1は、この接続チケットをサーバ側に提示することで正規ユーザであること及びアクセス権限を有することを伝える。
An
図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
なおHTTPプロクシ12及び暗号管理サーバ4における暗号処理方式は特に限定されないのでその暗号化と復号化の鍵を区別せずにまとめて一つの鍵42として表わしている。暗号処理方式に応じて複数の鍵を使用する場合は必要な複数の鍵情報が暗号管理サーバ4で管理される。
The encryption processing method in the
図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
暗号管理サーバ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
暗号化データ検索の基本的な処理は上のようになるが、検索結果が多量のデータとなる場合を考慮しなければならないため、検索の効率化のための処理方法を提供する。暗号管理サーバ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
暗号化データ検索時、ハッシュ値を用いた検索処理を行う場合に、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
次に、本実施の形態の情報セキュリティシステムにおける処理動作について以下(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
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プロクシ12は、ポリシー管理サーバ5からユーザ認証結果を受信し、アクセスが許可されて接続チケットを受け取った場合は、このユーザ認証結果情報を含んだHTTPにおけるPOSTデータの生成を行い、これをASPサーバ2に対し送信する。ASPサーバ2は、認証通過に対応したHTMLデータをWebブラウザ11側に返す(S114〜S117)。なお前記のクライアント1におけるユーザIDとパスワードのデータ入力は、既存Webアプリケーションとの互換性のために行っている処理であり、認証トークン6からのユーザ証明書7の情報を取り出して認証する処理さえあれば無くても構わない処理である。
The
(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
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
(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
HTTPプロクシ12から入力フォームがWebブラウザ11に送信されると、Webブラウザ11での入力フォームの表示を通じてユーザがデータベースに格納したいデータの入力を行って送信提出ボタンが押され入力データがASPサーバ2側に送信される(S305〜S307)。
When the input form is transmitted from the
HTTPプロクシ12は、Webブラウザ11からASPサーバ2に送信される入力データに介入し、ここを処理起点として以下で入力データの暗号化を図る。HTTPプロクシ12は、まず認証のために前記(1)のシーケンスで入手済みの接続チケットとユーザ証明書7の情報とを含んだ認証情報を暗号管理サーバ4に送信する。暗号管理サーバ4は、認証情報を簡単に確認してからポリシー管理サーバ5に送信する。ポリシー管理サーバ5は、受信した認証情報をもとに接続チケットの検証を行い(S308〜S310)、認証結果を暗号管理サーバ4に返す。暗号管理サーバ4は認証結果をHTTPプロクシ12に返す(S311,S312)。
The
なおここではユーザ認証のために一旦暗号管理サーバ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プロクシ12において行う形態にすることも可能である。その場合、暗号化処理時に暗号管理サーバ4は鍵情報42などの暗号管理情報を確認あるいは提供し、HTTPプロクシ12で所定の暗号化アルゴリズム及び暗号化鍵で対象データの暗号化処理を行う。暗号化及び鍵管理の方式は所定技術を使用する。
Note that this encryption processing may be performed in the
HTTPプロクシ12は、暗号管理サーバ4との通信を通じて対象データの暗号化データを取得すると、その暗号化データと接続チケットなどを含んだHTMLのPOSTデータを生成し、HTTPのPOSTメソッドでASPサーバ2に送信する(S316,S317)。ASPサーバ2は、暗号化データを含んだPOSTデータを受信すると、データベースへのデータ追加変更のための、暗号化データ、セッション情報、接続チケットを含んだSQL形式の追加変更情報をSQLプロクシドライバ22からSQLプロクシ31に送信する(S318)。
When the
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
(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
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プロクシ12は、認証後、取得対象暗号化データの指示データ(データIDなど)を含んだHTMLのGETデータを生成し、HTTPのGETメソッドでASPサーバ2に送信する(S413,S413)。ASPサーバ2は、HTTPプロクシ12から指示データを含んだGETデータを受信すると、データベースからのデータ取得のための、指示データ、セッション情報、認証チケットを含んだSQL形式の取得情報をSQLプロクシドライバ22からSQLプロクシ31に送信する(S415)。
After authentication, the
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
HTTPプロクシ12は、ASPサーバ2からWebブラウザ11に送信される取得結果のHTMLデータに介入して受信し、そのHTMLヘッダを解析してデータ復号化の必要性を判断する。そして対象の暗号化データについて復号化が必要と判断するとデータ復号化依頼を暗号管理サーバ4に対して送信する。同時に取得暗号化データ中のどのフィールドについて復号化を施すかを示すフィールド情報なども送信される(S423,S424)。
The
暗号管理サーバ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プロクシ12において行う形態にすることも可能である。その場合、暗号管理サーバ4では暗号管理情報を確認あるいは提供し、HTTPプロクシ12において所定の復号化アルゴリズム及び復号化鍵で対象暗号化データを復号化処理する。復号化及び鍵管理の方式は所定技術を使用する。
Note that, as in the case of the encryption process, the decryption process may be performed in the
(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
検索モードとして、まずデータに対する暗号化/復号化の暗号鍵を単一(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
暗号管理サーバ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
以下、前記部分一致検索を行う場合において前記ハッシュ値を用いた検索処理を行う場合の処理の流れについて示す。図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
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プロクシ12は、まず前記(1)のシーケンスで入手済みの接続チケットを含んだ認証情報を暗号管理サーバ4に送信し、暗号管理サーバ4は、認証情報をポリシー管理サーバ5に送信する。ポリシー管理サーバ5は、受信した認証情報をもとに接続チケットの検証を行い(S508〜S510)、認証結果を暗号管理サーバ4に返し、暗号管理サーバ4は認証結果をHTTPプロクシ12に返す(S511,S512)。
The
HTTPプロクシ12は、認証通過後、前記検索キーデータを含んだデータ検索依頼を暗号管理サーバ4に送信する(S513)。暗号管理サーバ4は、HTTPプロクシ12からデータ検索依頼を受けると、サーバ側で検索条件として使用するための検索情報の生成を行う(S514)。検索情報生成として、処理モードに応じて前記検索キーデータについての暗号化やハッシュ化を行い、また検索セッション生成などを行う。処理結果などは暗号管理情報として保管する。ここで検索キーデータのハッシュ値を生成してこの検索キーハッシュ値をサーバ側における検索キーと設定する。暗号管理サーバ4は、生成した検索キーハッシュ値を含んだ検索情報をHTTPプロクシ12に送信する(S515)。
After passing the authentication, the
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
SQLプロクシ31は、ASPサーバ2側からSQL形式の検索情報を受けると、ポリシー管理サーバ5に接続チケットを含んだ認証情報を送信して認証を行わせる。ポリシー管理サーバ5は、接続チケットの検証及びアクセス権限の確認を行ってユーザがデータベースからのデータ検索の資格があることを確認し(S519,S520)、ユーザのアクセス権限に対応したデータベースアクセス領域絞り込み条件となるWHERE句の情報を含めた認証結果を返す(S521)。なお、前記のステップS505における検索情報生成の処理を、このSQLプロクシ31がASPサーバ2側からSQL形式の検索情報を受けてから行う処理形態とすることも可能である。この場合、この時点でSQLプロクシ31が暗号管理サーバ4に対して依頼を行って検索キーの暗号化あるいはハッシュ化を行わせて検索情報を取得する。
When the
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プロクシ31は、データベースからの抽出結果である、前記検索キーハッシュ値(例えばH(A2))に値が一致した領域に対応する暗号化データの領域群(例えばX,Y,Z)について、元の検索キー(A2)に対応するものを抽出するために、暗号管理サーバ4の検索支援機能に対して検索処理依頼を行って検索セッションを実行する(S524)。SQLプロクシ31は、前記抽出結果の暗号化データ(X,Y,Z)を暗号管理サーバ4に渡す。
The
暗号管理サーバ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
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
HTTPプロクシ12は、復号化されたデータを暗号管理サーバ4から受信すると、検索結果のHTMLデータにおける暗号化データ部分を復号化されたデータに置き換えてWebブラウザ11に送信し、Webブラウザ11では判読可能な形で検索結果が出力される(S531〜S533)。処理のシーケンスは以上である。
When receiving the decrypted data from the encryption management server 4, the
本発明の他の実施の形態について説明する。まず、前記したように、データの暗号化/復号化の際に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
また、Webブラウザ11とHTTPプロクシ12を独立した構成とする以外にも、これを独立せずに同一アプリケーションとしてクライアント1内に構成する形態としても良い。例えばWebブラウザ上でJava(R)アプリケーション(スクリプト)などのプログラムを動作させることでWebブラウザ11とHTTPプロクシ12(さらには暗号管理サーバ4)の機能を同一Webブラウジング・アプリケーションとして構成する。
In addition to the configuration in which the
また同様に、SQLプロクシ31とDBMS32を独立した構成とする以外にも、DBMS32とSQLプロクシ31を同一アプリケーションとしてサーバ側に構成しても構わない。
Similarly, in addition to the configuration in which the
また、データベースに格納するデータについての暗号化/復号化では、すべてのデータを暗号化して格納する構成としても構わないが、一部の特定タイプのデータをフィールド情報などから判断して暗号化しデータベースに格納する形態とすることで、データを必要十分に保護しながら効率的なデータ入出力を行うことが可能である。プライバシー保護などのための機密化が必要十分に実現されるように、所定の性質のデータについてのみ対象として暗号化を行えば良い。どのようなデータに対して暗号化を施すかについては、システム適用の時点で例えば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
また本実施の形態ではデータの暗号化/復号化の際の鍵については暗号管理サーバ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
また、ポリシー管理サーバ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
また、DBサーバ3で扱うデータベースの方式はリレーショナル・データベースに限らず、所定のデータ単位に対して暗号化した状態で格納が可能であれば良いので、オブジェクト指向型データベースなどその他の方式を用いることもできる。
Further, the database system handled by the
また、ユーザ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
本実施の形態の情報セキュリティシステムの利用例を述べる。一例として病院内の電子カルテシステムが考えられる。電子カルテには、患者のプライバシーに係る情報が記載されるのでその機密性の保護が重要となると同時に、医療業務のためにデータ検索機能も必要である。ユーザとなる看護士や医師がポリシー管理サーバ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
以上の本発明の実施の形態における情報セキュリティシステムにより、クライアント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
また、データベースに格納される暗号化データに対しての検索機能も提供しており、ユーザはクライアント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
また、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プロクシ12、SQLプロクシ31、暗号管理サーバ4、ポリシー管理サーバ5などの各処理の機能をモジュール単位で提供可能であるため、適用対象の情報処理システムに合わせて必要最小限から最大までのセキュリティを確保することができる。
In addition, since the functions of each process such as the
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることは言うまでもない。 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.
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
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.
前記データの入力時において、前記クライアント内または前記クライアントとサーバとの間において前記クライアントの前記データについての入出力インターフェイス部から前記サーバ側への通信に介入して前記データについて暗号化の必要を判断する手順と、
暗号化が必要と判断した場合に前記データが前記サーバ側で暗号化状態となり前記データベースに暗号化データとして格納されるように前記データについての暗号化の要求を送信する手順と、
前記要求に基づき前記データの暗号化を所定の暗号アルゴリズム及び暗号化鍵を用いて行って暗号化データを返す手順と、
前記暗号化データを受信して前記サーバ側に送信する手順と、を有し、
また前記データの出力時において、前記クライアント内または前記クライアントとサーバとの間において前記サーバ側から前記クライアントの入出力インターフェイス部への通信に介入して前記データについて復号化の必要を判断する手順と、
復号化が必要と判断した場合に前記データが前記クライアント側の入出力インターフェイス部に復号化状態で出力されるように前記データについての復号化の要求を送信する手順と、
前記要求に基づき前記データの復号化を所定の暗号アルゴリズム及び復号化鍵を用いて行って復号化されたデータを返す手順と、
前記復号化されたデータを受信して前記入出力インターフェイス部に送信して出力させる手順と、を有することを特徴とする、情報セキュリティシステムのプログラム。 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.
前記データの暗号化/復号化に使用する鍵情報を管理する処理と、前記第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.
前記データベースに対する前記データの入出力のための通信に介入し、前記クライアント側またはサーバ側からのユーザの認証情報の受信に基づくユーザ認証処理と、前記データについてのユーザ単位及び前記データベースにおける所定データ単位でのアクセス権限の設定を含んだポリシー設定を確認してこれに基づき前記データベースへのアクセス対象領域またはデータを制限して問い合わせを行う処理と、を行うアクセス制限機能をコンピュータに実行させることを特徴とする、情報セキュリティシステムのプログラム。 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.
前記クライアント側からサーバ側への前記データの入出力のためのアクセスに際して前記クライアント側からのユーザの認証情報の受信に基づくユーザ認証処理を行う手順と、
前記ユーザ認証の通過後における前記データベースの前段での前記データの入出力のためのデータベースアクセスに際して前記サーバ側からのユーザの認証情報の受信に基づくユーザ認証処理を行い、前記データについてのユーザ単位及び前記データベースにおける所定データ単位でのアクセス権限を確認する手順と、
前記アクセス権限の確認に基づき前記データベースへのアクセス対象領域またはデータを制限して問い合わせを行って前記データベースから結果を得る手順と、を有することを特徴とする、情報セキュリティシステムのプログラム。 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.
前記サーバ側のデータベースの前段あるいは一部要素において前記データベースに対する前記データの入出力の通信に介入し、前記データについてのユーザ単位及び前記データベースにおける所定データ単位でのアクセス権限の設定を含んだポリシー設定を確認して、これに基づき前記データベースへのアクセス対象領域またはデータを制限して問い合わせを行う第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.
前記データについてのユーザ単位及び前記データベースにおける所定データ単位でのアクセス権限の設定を含んだポリシー設定を管理する処理と、前記クライアント側またはサーバ側からのユーザの認証情報の受信に基づくユーザ認証及び前記第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.
前記データベースに格納された暗号化データを検索するための検索機能として、前記クライアント側で指定された検索条件を前記第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.
前記検索機能として、前記クライアントで指定された検索条件を判断して前記第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.
前記クライアント側からの前記データの入力時、前記第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 .
前記クライアント側から前記データを前記データベースへ入力する際、前記第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.
前記クライアントが、前記データに関するアクセスの際、ユーザ証明書情報を保持する認証トークンを読み込んでここから前記認証情報を生成し、これにより所定の認証方式に基づいて前記ユーザ認証及びポリシー設定の確認を行わせる処理をコンピュータに実行させることを特徴とする、情報セキュリティシステムのプログラム。 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.
前記データベースに格納されるデータについて判断してその内の特定タイプのデータに対してのみ前記暗号化/復号化の対象とする処理をコンピュータに実行させることを特徴とする、情報セキュリティシステムのプログラム。 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.
An information processing apparatus that reads and executes the information security system program according to any one of claims 1 to 15.
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)
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 |
-
2004
- 2004-02-27 JP JP2004052787A patent/JP2005242740A/en active Pending
Cited By (27)
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 |