The present invention relates to a system configured to utilize encrypted data.
In various kinds of information systems, for example, personal information such as the name, address, and current position of a user, and living body information of the user should not be provided outside of the system. However, in reality, there are systems needed to be operated by using such information.
In a method as a measure against this, an environment physically separated from other systems is established for operation. This method is effective against data leakage but is likely to be costly.
In a method as another measure, data is encrypted to reduce a leakage risk. No meaningful information can be directly acquired from the encrypted data even when data leakage occurs, and thus the data can be securely handled. This can be achieved by using data encryption functions provided by databases used in many systems.
A cloud environment has become widely used to achieve reduction of running cost of a system and fast use of computer resources. As a result, an increasing amount of data to be confidential in the system is expected to be accumulated in the cloud environment.
In a conventional method, data encryption is performed at a database, and thus, when the database operates in an environment such as a cloud outside of a conventional system, key information used for encryption processing at the database needs to be stored where the database is used, in other words, outside of the system. Thus, data leakage potentially occurs such that an external resource manager such as a cloud service provider acquires the content of confidential data by using an encryption key specified by a user.
A disclosed solution to deal with such a problem uses a special encryption scheme that allows data to be processed in an encrypted state. However, computation that allows processing in an encrypted state is currently restricted depending on an encryption scheme. A disclosed method takes the restriction into account and changes an encryption processing scheme to be used in accordance with an application or predetermined configuration information (PTL 1). In another disclosed method, the restriction is handled by preparing data for various encryption schemes in advance (NPL 1).
These methods can handle various encryption schemes, but an application needs to operate by using decrypted raw data and thus can operate only in a secure environment. This prevents free use of various applications provided in cloud environments such as Platform as a Service (PaaS) and Software as a Service (SaaS).
The present invention changes processing at an application so that processing on encrypted data can be performed in a secure environment irrespective of processing restriction due to an encryption scheme. For example, part of original application processing, which is operated on encrypted data, is replaced with processing converted into a character string, and the processing converted into a character string and the encrypted data are transmitted to a secure environment where the encrypted data is decrypted and the processing converted into a character string is executed.
The present invention allows encryption data to be processed without decryption in an external environment. Accordingly, a data leakage risk can be reduced. In addition, an application does not need to consider whether data is encrypted, and thus can be freely implemented and securely use an application developed by any other company. Moreover, a user can use an encryption scheme in accordance with a use case or a request, and an application developer can perform development without considering restriction due to an encryption scheme used.
An embodiment of the present invention will be described below with reference to the accompanying drawings. The present embodiment does not limit the present invention.
The user system 100 includes a user interface 110 used to, for example, present results of reception and processing of an operation from a user, a confidential processing unit 120 configured to perform encryption processing on data, a key management unit 140 for securely handling key information necessary for use in the encryption processing, and a communication unit 130 for mutual communication with the external environment. In
The user system 100 is an area in which security is assured, in other words, an area in which data can be securely handled, such as an on-premise environment of a company. Accordingly, data does not necessarily need to be encrypted inside the user system 100 and can be used without encryption. In the present configuration, when raw data is provided to the outside of the user system 100, confidential data is encrypted through the confidential processing unit 120, and then system information and another function coupled with the external network 500 through a communication processing unit 130 are provided. External encrypted data received by the communication processing unit 130 from the network 500 is decrypted into raw data at the confidential processing unit 120 for use inside the user system 100.
The user system 100 uses an application extension unit 200, an application 300, and a database 400 through the network 500. The application extension unit 200 includes a database processing extension unit 210, a data processing detection unit 220, and an application processing extension unit 230. The application extension unit 200 provides a function for processing encryption data without problems when an application is operated in an unsecure area outside of the user system like the present configuration. For example, the application extension unit 200 is provided as a function inside a platform that provides PaaS or SaaS. When provided as part of a platform, the application extension unit 200, the existing application 300 and database 400 allows to execute an application without considering the existence of the application extension unit 200 nor restriction on computation by an encryption scheme.
The application 300 may be any application. Examples of the application 300 include published third-party and open source applications. The examples include any application developed by the user.
The database 400 is used to store data provided from the user system 100 or data processed by the application 300. The database includes an encryption processing unit 410 compatible with encryption processing and a function of which is called to execute processing on encrypted data. Specifically, the encryption processing unit 410 is achieved by, for example, a user definition function (UDF). This function, which is provided by the database, can be used to add unique processing without changing the database.
The network 500 is a network for allowing these functions to cooperate with each other. The network 500 is, for example, the Internet. Any communication protocol and any physical configuration are applicable as long as they allow the cooperation of the functions.
The application extension unit 200 operates as a platform for operating the application 300. Specifically, the application 300 communicates with the user system 100 or the database 400 through the application extension unit 200. Although not illustrated in
Recently developed encryption algorithms allow computation on data in an encrypted state but not all kinds of computation. Specifically, an encryption scheme allows addition and subtraction on data in an encrypted state but not modular calculation, and another encryption scheme allows match determination but not magnification comparison. In this manner, processing on data in an encrypted state is restricted depending on a scheme. The encryption processing correspondence table 240 illustrated in
Data notified from the user system is used to perform various computations inside the application and used as an argument of a function (for example, an SQL function) performed in the database as necessary, and then the database is requested to process the data. The application receiving a response from the database performs various computations on the response as necessary and returns the response to the user system. In the present example, data is encrypted when used outside of the user system. Thus, a processing unit and an SQL function for data notified to the application by the user system and the database need to be changed to processing compatible with an encryption scheme in use. The encryption processing correspondence table 240 stores the content of the change. Specifically, the encryption processing correspondence table 240 lists, in SQL column, an encryption processing SQL function that is called for an SQL function for processing plaintext data and processes encrypted data, and in App column, an encryption processing compatible function called for processing performed on received data by the application. Not only a function corresponding to computation one-on-one but also, for example, a script for performing change may be registered.
Addition and change to this content can be performed as necessary to handle a new encryption scheme and new computation. The encryption processing correspondence table 240 stores a processing method corresponding to an encryption scheme through configuration in advance, addition in response to a user request, or the like.
The present invention can be roughly divided into two pieces of processing “change of existing application for encryption processing” and “change of user request and response for encryption compatible processing” to handle encryption. The following describes the “change of existing application for encryption processing”.
Having received the change target application, the application extension unit 200 analyzes the application at the data processing detection unit 220 and specifies processing that the application receives a parameter from the user (step S210). Then, the application extension unit 200 specifies the parameter notified through this interface (step S220).
For example, when the application is a Web application using REST, processing of determining processing parts corresponding to methods such as GET and POST of HTTP and determining parameters notified through these processing parts is executed. The notified parameters are used in the application, and thus the analysis is continued to specifically determine which processing the parameters are used (step S230).
At this processing step, usage of a parameter storing a return value from the database is also analyzed. When a part executing processing that uses a parameter as a trace target is specified, the content thereof is added to the parameter operation storage table 260 (step S240). This specified part is a part to be replaced with encryption compatible processing, and thus, the application processing extension unit 230 replaces processing of the application to allow execution of processing on an encrypted parameter by referring to the encryption processing correspondence table 240 (step S250). For example, in a case with processing of a GET method of a Web application, a parameter of the GET method is encrypted and notified, and thus the application is changed by referring to the encryption processing correspondence table 240 so that processing compatible with each encryption scheme is called. This change can be achieved, for example, by adding processing that bifurcates depending on a parameter encryption scheme, or by extending a parameter expression format in a language in which the application is implemented to produce a format in accordance with an encryption scheme.
Processing not listed in the encryption processing correspondence table 240 cannot be processed in an encrypted state. An exemplary handling method for such processing is a method of converting all processing related to a parameter into a character string. This processing is executed on all interface parts through each of which a parameter is received from the user, and on a response part from the database. For example, when original processing is processing such as “A+B” that adds parameter A and parameter B and returns a result, this processing is changed to processing that returns a character string of the processing “A+B”. This character string is notified to the user system 100 together with encrypted data, and executed at the user system 100.
The entire application is analyzed through this series of processing. In this analysis processing, simultaneously with step S200 at which conversion into encryption compatible processing is performed, specific information on a database used such as MySQL or Oracle is accumulated, and this information is referred to with the database encryption processing management unit 270 to register encryption processing in accordance with the database used (step S300). When it is needed to provide computation unique to encryption on encrypted data stored in the database, this processing needs to be registered to the encryption processing unit 410 of the database in advance.
The database used differs depending on a system, an application, and a user, and thus the database encryption processing management table 270 is used to provide an appropriate encryption processing function in accordance with the difference of the database. Specifically, the database encryption processing management table 270 manages information such as the type of an encryption scheme, the name of processing corresponding to the encryption scheme, and a module (a dynamic library or a jar file of Java (registered trademark), for example) to be registered to a database actually used such as MySQL or Oracle to use the processing. When needed, for example, a script for executing registration processing may be registered. No processing is performed when the same encryption processing is already registered to the database used. When encryption processing cannot be added to the database used, a resource under management by the application extension unit 200 or an external resource may be used to newly provide a database. In this case, an original database configuration used by an application is changed.
When needed, change is performed such that encrypted names of a table and a column used by an original database are used or different names are used. In this case, the changed names of the table and column may be notified to the confidential processing unit 120.
In this exemplary flow of conversion into this encryption compatible processing, change processing is performed at a timing when processing that uses an external parameter notified from the user is found, but replacement with the encryption compatible processing may be performed all at once after analysis of the entire application is ended because information on a change part accumulates in the parameter operation storage table 260.
The following describes a method of the “change of user request and response for encryption compatible processing”.
The user interface 110 is, for example, a Web browser, and accesses the application 300 outside of the user system 100. The user operates the user interface 110 to transmit data to the application 300 (step S1000). Communication from the user interface 110 to the outside of the user system 100 is first notified to the confidential processing unit 120. The confidential processing unit 120 detects raw data in communication data, encrypts confidential data, and notifies the encrypted confidential data to the application (step S2000).
Having received the data, the application 300 queries to the database 400 by using the data (step S3000). Since the data is encrypted, processing on the data cannot be executed directly. Thus, the application processing extension unit 200 updates the query processing from the application 300 to the database 400 so that processing on the encrypted data is called (step S4000).
The database 400 executes database-side processing based on a notified content and returns a result (step S5000). The result is returned to the application 300, but before this return, the application processing extension unit 200 receives this response, changes the processing result as necessary (step S6000), and then returns the result to the application 300. The application 300 advances own processing using the result (step S7000). Since the returned data is encrypted, the application 300 cannot process the data directly.
Thus, a processing part related to the encrypted data is changed from original processing at the application 300 to processing generated by the application extension unit 200. For example, processing of replacing the processing on the encrypted data with a different expression is executed (step S8000). Then, a result of processing at the application 300, including a result of processing at a use place, is returned to the user system 100 (step S7000). Having received data, the confidential processing unit 120 detects and decrypts encrypted data among the received data. Subsequently, the processing that cannot be externally executed since the data is encrypted and that has been replaced with the different expression is executed (step S9000). The user interface 110 receives a result of the execution and provides the result to the user (step S10000).
For example, a screen as illustrated in
On the screen illustrated in
For example, when encrypted names or different names of the names of a table and a column stored in the database 400 are used, the table may store a correspondence relation thereof, and conversion processing may be performed on these names in accordance with change of encryption target data. The encryption data correspondence table 150 may be notified to the application extension unit 200. In this case, the application extension unit 200 manages this information together with information on a requester. In this manner, an encryption scheme and an encryption target parameter can be individually configured for each user.
For example, information on a notification source can be added to the parameter operation storage table 260, and an application can be executed by an encryption processing method in accordance with the user. Alternatively, information on an encryption scheme may be embedded in an encryption parameter notified from the user system 100 to the application extension unit 200. In this scheme, the application extension unit 200 does not need to manage information on a notification source, and the notified encryption scheme can be handled.
When data needs to be encrypted, an encryption processing unit 122 acquires and configures necessary key information in cooperation with the key management unit 140, and encrypts the target data (step S2500). Thereafter, an encryption target data part of information notified from the user interface 110 is replaced with encrypted data (step S2300). This processing is performed on specified data, which ends processing at the confidential processing unit 120, and encrypted information of the specified data is notified to the application 300 through the communication unit 130.
Having received the information from the user system 100, the encryption processing compatible application 300 executes unique processing by using this data. This processing is roughly divided into a case in which encrypted data notified from the user system 100 is processed, and a case in which the data is not processed but directly used.
For example, when the encrypted data received from the application 100 is directly set to a SQL, no processing occurs on the encrypted data, and thus the database is requested to directly process the data (step S3900). When any operation is performed on the encrypted data, processing changed by the application extension unit 200 is called (step S3200). The following description assumes that processing on a notified parameter is converted into a character string. When the processing needs to be confidential, the character string of the processing may be encrypted and transmitted.
The processing converted into the character string and the encrypted data is notified to the data detection unit 121 of the confidential processing unit 120 to first specify an encrypted data part (step S3300). The encrypted data is notified to the encryption processing unit 122 and decrypted (step S3400) to replace the data part yet to be decrypted in the information notified to the confidential processing unit 120 (step S3500). This is repeated while there is encrypted data. Then, processing is executed on the encrypted data originally expressed in a character string (step S3600). A result of the processing at the confidential processing unit 120 is encrypted for return of the result to the application 300 (step S3700) and then returned to the application 300 (step S3800).
This result is used to request the database to perform processing, similarly to the case in which no processing occurs on the encrypted data (step S3900). The application extension unit 200 can determine whether to provide processing on a parameter notified from the user system 100 at production of the parameter operation storage table 260. Thus, when an encryption scheme is configured by using the screen as illustrated in
For example, at notification of an instruction to calculate a maximum value in a certain range to the database 400 when an encryption scheme in which a magnitude relation of data in an encrypted state cannot be determined is used, the conversion processing storage unit 250 stores that the original instruction is the instruction to calculate the maximum value, and then the instruction to calculate the maximum value is replaced with an instruction to acquire all in the specified range.
A specific content of this replacement processing is written to the encryption processing correspondence table 240 in a format such as a script. Processing to be executed when a result of the replacement is notified is registered to the conversion processing storage unit 250. This processing is processed by the database processing extension unit 210 inside the application extension unit 200. After the processing request to the database is changed appropriately, the database is actually requested to perform processing (step S4300).
Having received the request, the database 400 instructs the encryption processing unit 410 to execute processing in accordance with a change instruction (step S5000). For example, the encryption processing unit 410 added as an UDF to the database 400 is called. The database 400 returns a result of the processing to the application extension unit 200.
The result of the database processing is notified to the application extension unit 200. The database processing extension unit 210 inside the application extension unit 200 receives the notification and expresses each return value from the database, for example, as a character string (step S6100). When the original processing is changed by the database processing extension unit 210 at the processing request, processing that the entire character string expressing the return value from the database is provided with original computation stored in the conversion processing storage unit 250 is expressed and returned (step S6200). For example, processing for the above-described instruction to calculate the maximum value is changed to expression in a character string of “MAX({return value 1}, {return value 2}, . . . )”, and this character string is returned to the application as a result of the processing at the database 400.
A correspondence table of a character string expression and processing to be executed is prepared to allow the confidential processing unit 120 and the application extension unit 200 to share in advance a definition that processing of decrypting the character string stored in the parentheses and calculating a maximum value from a result thereof is to be executed when the character string of “MAX( )” is notified. In this example, the expression is made in a character string but may be in another format.
The encryption processing compatible application 300 directly uses received character string data as a result of the processing at the database. Thus, when no processing is performed on the data in particular, the application 300 uses the data as part of a response to be returned to the user system 100 (step S7200). When any computation or processing is provided on the received database processing result, this processing is not original processing at the application 300 but performed at the application processing extension unit 230 of the application extension unit 200. Specifically, processing same as that at step S3200 is executed. Through this processing, processing on encrypted data is expressed as, for example, a character string (step S8100). The application 300 returns, to the user system 100, a response that processing has been normally executed (step S7200). In this manner, the encrypted data and the processing on the encrypted data are converted into, for example, character strings and notified to the user system 100.
First, a processing result returned from the encryption processing compatible application 300 is notified from the communication processing unit 130 to the data detection unit 121 inside the confidential processing unit 120. The data detection unit 121 detects encrypted data in the processing result notified from the application 300, (step S9100). When encrypted data is detected, the data is sent to the encryption processing unit 122 and decrypted (step S9200), original data in response data is rewritten to the decrypted data (step S9300). This is repeated while encrypted data exists.
Although
When the response data includes no processing on encrypted data that cannot be processed at the application 300 after all pieces of encrypted data are decrypted, the response data replaced with decrypted data is transmitted to the user interface 110, which ends processing. When processing on the encrypted data is replaced with different processing by the application processing extension unit 200, processing unperformed at the application is executed (step S9400). Then, similarly to a case in which there is no unperformed processing, a result of the processing is transmitted to the user interface 110, which ends processing at the confidential processing unit 120.
The application 300 in the external environment can process encrypted data through execution of the above-described processing steps without considering an encryption scheme used by the user system 100 at all.
The following describes the above-described processing flow with reference to
It is assumed that data is encrypted by an encryption scheme that allows search in an encrypted state, and the database 400 stores, as personal information, information such as height, weight, age, and sex in an encrypted state. It is also assumed that access from the application 300 to the database 400 is performed in an SQL, and encryption processing (in this example, data match check processing) at the database 400 is achieved as a UDF. In
First, the user operates the browser to instruct the application to “average the weights of thirty-year-old people” (step S1000). In the example illustrated in
Having received the above information, the confidential processing unit 120 checks which parameter is to be encrypted by referring to the encryption data correspondence table 150, and encrypts the parameter (step S2000).
Having received the encrypted data, the application 300 generates an SQL for querying the database 400 by directly using the data (step S3000).
The encryption processing correspondence table 240 is referred to check whether there is an encryption compatible function for the SQL function “AVG” that calculates an average. If there is the compatible function, an “AVG” part is replaced with the encryption compatible function and an SQL sentence is notified to the database. If there is no compatible function, this means that the application has requested an SQL function that cannot be processed by this encryption scheme. In this case, a reason why the processing cannot be performed may be notified as an error by sending, from the application extension unit to the user system through the input-output unit 280, information indicating to which SQL function the processing that cannot be processed corresponds and an encryption type. The user refers to the reason through the user interface 110 of the user system and performs an appropriate measure. The following describes an exemplary method of performing existing processing extension without notifying an error when there is no encryption compatible function for “AVG”. The reference to the encryption processing correspondence table 240 indicates that no “AVG” is available, and thus the database processing extension unit 210 deletes “AVG” from the SQL sentence and changes the SQL sentence such that weight data of all entities is simply acquired from a target table. The conversion processing storage unit 250 stores “AVG”, which cannot be processed. The database processing extension unit 210 also acquires the name of a UDF to be called or the like by referring to the encryption processing table 240 (expressed in a character string of “UDF” in this example), and changes the SQL sentence such that the UDF is to be called. Encryption of the names of a column and a table or change of the names to different names are performed when needed. This SQL sentence change processing may be performed by calling processing listed in the encryption processing table 240 (step S4000). Having received the changed SQL, the database 400 returns a result of execution thereof (step S5000).
Having received the result, the database processing extension unit 210 checks the conversion processing storage unit 250 to determine that the SQL function “AVG” cannot be executed. This determination indicates that processing cannot be performed, and thus weight information received as a result is converted into a character string and provided with a mark indicating that the weight information is to be “averaged” (in this example, the characters “AVG” are provided at the start of the string) (step S6000).
The application 300 recognizes and processes a value returned from the database 400 as an already averaged weight value, but the value is returned as a character string in reality and thus cannot be directly processed. Thus, the application processing extension unit 230 calls changed processing. In this example, the value returned from the database 400, which is an average value, is a “numerical value”, but processing changed to handle this part as a “character string” is executed (step S8000). This ends processing at the application 300, and an HTML document to be displayed on the browser is returned as a result of the processing to the user system 100 (step S7000).
The “average processing” converted into a character string is included in the HTML document notified to the user system 100, and thus is detected by the data detection unit 121 of the confidential processing unit 120. Then, encrypted data is decrypted, and thereafter, the average processing that cannot be processed at the application 300 is executed to update the HTML document (step S9000).
In this manner, the encrypted data is converted into a plain text by the confidential processing unit 120, and the processing that cannot be processed at the application is executed, and notified to and displayed on the browser as the user interface 110 (step S10000).
First, the user notifies data and a processing method to the application 300 through a browser operation. The notified data is encrypted and transmitted to the application 300, and an SQL sentence corresponding to an encryption scheme is generated by the application processing extension unit and notified to the database 400 to obtain a result, which is processing completely same as that of the calculation of an average weight. In this example, however, no SQL function is used, and thus no change is made other than change of an SQL to call an UDF for processing encrypted data in the database, and the result of the processing at the database 400 is directly used (steps S1000 to S6000).
The application 300 performs computation to calculate a BMI by using a returned value. However, the returned value is encrypted and thus cannot be processed. To avoid this, the application processing extension unit 230 refers to the encryption processing correspondence table 240, and when there is, for example, an encryption compatible function that achieves computation on the encrypted data or a processing change script, the returned value is replaced with the function and processed before returned to the application. When there is no encryption compatible function, an error may be returned to notify the user similarly to the replacement of the SQL function. In this case, when information indicating to which SQL function processing that cannot be performed among pieces of processing requested by the user corresponds and an encryption type are sent to the user system through the input-output unit 280 and referred to by the user through the user interface 110, the user can perform an appropriate measure for the error.
The following describes a case in which an existing processing is extended similarly to the case with the SQL function. In this case, since there is no encryption compatible function, processing on encrypted data needs to be notified to the user system 100 and processed. For example, processing extended to convert computation on encrypted data into a character string is called. The processing converted into a character string is provided with a mark indicating processing at the confidential processing unit 120 (in this example, conversion is performed into a character string, and the characters “PROC” are provided at the start of the character string) (step S8000).
Similarly to the case for an average weight, the application 300 returns a result of executed processing to the user system 100 as a result of computation without problems (step S7000).
The following processing proceeds similarly to the case for an average weight, and the confidential processing unit 120 executes data decryption and BMI calculation processing converted into a character string, and returns a response to the user interface 110. Accordingly, when encrypted data is handled by the application internal processing, processing on the encrypted data can be achieved without considering the application.
In the two examples described above, data notified from the browser is directly used for the SQL, but in reality, the data is provided with some computation at the application, and a result thereof is used for an SQL sentence in some cases. Processing in this case is basically same as that at step S8000 and corresponds to processing at steps S3300 to S3800 illustrated in
In the examples described above, processing on encrypted data at the application 300 is converted into a character string and performed at the confidential processing unit 120, but in another exemplary achieving method, processing returned to the user system 100 may be converted into JavaScript (registered trademark) instead of a character string and returned to the user system 100. In this case, the encrypted data may be decrypted in the confidential processing unit 120, and processing on the encrypted data converted into JavaScript may be executed at the browser used as the user interface 110. In the embodiment described above, it is assumed that the source code of an application is rewritten, but a binary image such as Java or C language may be used.
The above describes an exemplary environment in which the user system 100, the application extension unit 200, the application 300, and the database 400 are operated in separate environments. In another embodiment, the application extension unit 200 and the application 300 are provided in the user system 100 whereas only the database 400 is provided externally, or the database 400 is provided in the user system whereas the application extension unit 200 and the application 300 are provided out of the user system 100.
In the configuration 800, the application 300 operates in the user system 100 in which raw data can be handled, and thus there is no need to convert internal processing at the application 300. However, processing at the database needs to be changed. The data detection unit 121 and the encryption data correspondence table 150 are not used for communication between the user interface 110 and the application 300, but used for communication between the confidential processing unit 120 and the database 400. Thus, in the encryption data correspondence table 150, a database to be used, the names of a table and a column, and an encryption scheme are associated with each other.
When an application that operates in an environment separated from the outside, such as the inside of the user system is developed, a developer of the application needs to be a user or one asked by the user to maintain a separated environment. When encryption is used, the developer needs to achieve implementation that takes into account computation compatible with an encryption scheme, which degrades the portability of the application. However, when the application extension unit 200 according to the present invention is introduced, the application developer can perform development without considering the encryption scheme. A processing flow in this case is a procedure substantially same as that in a first embodiment except for change of a processing order, and the processing is performed through the user interface 110, the application 300, the application extension unit 200, the confidential processing unit 120, and the database 400 in this order.
The configuration 900 can be achieved when processing executed on encrypted data at the application 300 is converted into, for example, a character string or JavaScript and executed at the user system 100. Since the database 400 is provided in the user system 100, processing at the database can be used in the user system without encryption taken into consideration. Thus, the database processing extension unit 210, the conversion processing storage unit 250, and the database encryption processing management table 270 inside the application extension unit 200, and the encryption processing unit 410 inside the database 400 are unnecessary unlike in the first embodiment. Processing flows through the user interface 110, the confidential processing unit 120, the application 300, the application extension unit 200, the application 300, and the database 400 in this order, and in this manner, the processing is performed through the application extension unit 200 several times since the application 300 is provided out of the user system 100 whereas the database 400 is provided in the user system 100. Processing at each processing unit is basically same as that in another configuration.
In the above-described embodiments, characteristics of the present invention are achieved by using the application extension unit 200 as a frame work. In this manner, instead of changing the content of processing at the application 300 through the application extension unit 200 dynamically or at deployment of the application 300, an application provided with processing performed by the application extension unit 200 may be prepared by the application developer in advance and used to achieve the present scheme. This method is roughly same as a method of producing an executable file in accordance with a correspondence environment by compiling a source code.
In all above-described embodiments, a third party provides, as a service, a system outside of the user system 100 in some cases. In such a case, it is probable that only an encryption scheme provided by the service provider is available. Thus, when an encryption scheme that is used by the user or that the user desires to use is different from an encryption scheme provided by a service, such a configuration may be provided that the user is notified at an appropriate timing such as a timing at which the application 300 is first accessed or a timing at which the application 300 is deployed.
Number | Date | Country | Kind |
---|---|---|---|
2015-055580 | Mar 2015 | JP | national |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/JP2016/058178 | 3/15/2016 | WO | 00 |