Service provision system
A service provision system with multiple hashing units and unique salts for tenant servers addresses data privacy issues, ensuring tenant data confidentiality and increasing system adoption.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-09-05
- Publication Date
- 2026-03-12
AI Technical Summary
Conventional service provision systems face inefficiencies in protecting tenant data privacy, as a common salt value used for hashing allows service providers to infer relationships between multiple tenants, potentially compromising tenant competitive advantages.
Implementing a service provision system with multiple hashing units generating unique salts, transmitting these salts to tenant servers, and allowing tenant servers to select a predetermined salt for hashing, thereby making it difficult for service providers to grasp data relationships between tenants.
Enhances tenant privacy by preventing service providers from understanding tenant data relationships, encouraging more tenants to use the system with confidence.
Smart Images

Figure JP2024031890_12032026_PF_FP_ABST
Abstract
Description
Service provision system
[0001] The present disclosure relates to a service providing system that authenticates a user who wishes to receive a product or service from a tenant of an e-commerce site or the like.
[0002] When comparing matching data such as user IDs (identities) of end users managed by a service providing system, which is a platform for an EC (electronic commerce) site, with matching data such as user IDs of end users managed by a tenant server operated by a tenant that has set up shop on the EC site, it is important from the perspective of data security to consider a method for comparing data while protecting the end users' personal information, etc. In such cases, when the matching data between the service providing system and the tenant server matches, the service providing system provides services to the end users who are customers of the tenants.
[0003] In recent years, a countermeasure against rainbow table attacks (a type of attack that deciphers plain text from a hash) has been implemented by adding a salt to each piece of verification data and hashing it. A salt is a random string used in technology that prevents passwords from being cracked by adding a random value when hashing a password. However, since it is inefficient for the service providing system to generate a hash table for each tenant, the service providing system stores a common salt in the database (Non-Patent Document 1).
[0004] "What is addressable advertising? Explaining its benefits, use cases, and compliance with the Personal Information Protection Act," Priv Lab, November 7, 2023
[0005] However, in conventional technology, because the salt is a constant and common value, the data relationships between multiple tenants are transmitted to the service provider operating the service provision system. For example, if Tenant A, a food retailer, and Tenant B, a travel agency, use the same service provision system, and if Tenant A and Tenant B have common end users, information such as which cuisines a person likes and which countries or regions they are interested in is transmitted to the service provider. In this way, if the service provider's analysis, unintended by the tenant, allows them to understand customer status, it can predict the tenant's future corporate activities and business development, potentially damaging the tenant's competitive advantage, making it difficult for the tenant to use the service provision system.
[0006] The present disclosure has been made in consideration of the above circumstances, and aims to make it more difficult for service providers to grasp the data relationships between multiple tenants, thereby allowing each tenant to use the service provision system with more peace of mind than before, thereby contributing to increasing the number of tenants using the service provision system.
[0007] In order to solve the above problem, the present disclosure provides a service provision system that authenticates a user who wishes to receive goods or services from a tenant, the service provision system having: a plurality of hashing units that generate a plurality of hash values by hashing a plurality of pieces of matching data each including a plurality of different salts; a transmitting unit that transmits the plurality of salts to a tenant server of the tenant; a receiving unit that receives from the tenant server a predetermined hash value generated by hashing the matching data including a predetermined salt selected from the plurality of salts; a matching unit that compares a specific hash value generated by hashing the matching data including the predetermined salt, among the plurality of hash values generated by the plurality of hashing units, with the predetermined hash value received by the receiving unit; and a service provision unit that provides a service to the user in accordance with the matching result by the matching unit.
[0008] As described above, according to the present disclosure, by making it difficult for service providers to grasp the data relationships between multiple tenants, each tenant can use the service provision system with more peace of mind than before, thereby contributing to increasing the number of tenants using the service provision system.
[0009] FIG. 1 is a schematic diagram of a communication system according to an embodiment of the present invention; FIG. 2 is a hardware configuration diagram of each server and each user terminal; FIG. 3 is a functional configuration diagram of a service providing server, a matching server, and a tenant server; FIG. 4 is a conceptual diagram showing a matching server management table, where (b) shows a case where the operating status has been changed from (a); FIG. 5 is a conceptual diagram showing a user information management table; FIG. 6 is a sequence diagram showing processing of the communication system; FIG. 7 is a sequence diagram showing processing of the communication system.
[0010] Hereinafter, embodiments of the present invention will be described with reference to the drawings. Note that the present invention is not limited to the embodiments shown below, and various modifications are possible within the scope of the technical concept of the present invention. Since the drawings are intended to conceptually explain the present invention, dimensions, ratios, or numbers may be exaggerated or simplified as necessary to facilitate understanding.
[0011] [Outline of System of Embodiment] First, an outline of the configuration of a communication system of this embodiment will be described with reference to Fig. 1. Fig. 1 is a schematic diagram of a communication system according to this embodiment.
[0012] 1, a communication system 10 of this embodiment includes a service providing system 20, tenant servers 70a and 70b, and user terminals 90a, 90b, 90c, and 90d of respective users. The service providing system 20 also includes a service providing server 30 and multiple matching servers 50a, 50b, 50c, and 50d.
[0013] The service providing server 30 is capable of data communication with each tenant server 70 and each user terminal 90 via a communication network 100 such as the Internet. The service providing server 30 is also capable of data communication with a plurality of matching servers 50a, 50b, 50c, and 50d via a LAN (Local Area Network) or the like.
[0014] The service providing system 20 authenticates a user who desires to receive a product or service from a tenant, and if the user is a legitimate user, the user is allowed to receive the product or service from the tenant. This authentication is performed by comparing hash values.
[0015] The service providing server 30 is a computer and a platform for an EC (electronic commerce) site or the like operated by a service provider. The service providing server 30 may provide not only an EC site but also services such as a communication service, a storage usage service, a video distribution service, a company's job application site, a community site, etc.
[0016] The verification servers 50a, 50b, 50c, and 50d are computers that verify verification data such as user IDs (identities) of end users with verification data such as user IDs of end users managed by tenant servers 70a and 70b operated by tenants who set up stores on e-commerce sites, etc. Note that IDs are an example of identification information.
[0017] The tenant server 70a is a server operated by a tenant A who opens a store on the EC site, and the tenant server 70b is a server operated by a tenant B who opens a store on the EC site.
[0018] The user terminals 90 a , 90 b , 90 c , and 90 d are terminals of users who use the services of the service providing server 30 to receive products or services from tenant A or tenant B.
[0019] Any of the matching servers 50a, 50b, 50c, and 50d will be referred to as a "matching server 50." Any of the tenant servers 70a and 70b will be referred to as a "tenant server 70." Any of the user terminals 90a, 90b, 90c, and 90d will be referred to as a "user terminal 90."
[0020] The tenant server 70 is a computer and is capable of data communication with each user terminal 90 via the communication network 100 .
[0021] The user terminal 90 is a notebook PC, a desktop PC, a tablet terminal, a smartphone, etc. The user terminal 90 registers a user ID such as an email address, a name, an address, etc. with the service providing system 20 and the tenant server 70a or the tenant server 70b. This allows the user terminal 90 to use the services of the service providing system 20 to receive products or services from Tenant A or Tenant B.
[0022] Due to space limitations, FIG. 1 shows four matching servers 50, two tenant servers 70, and four user terminals 90, but the numbers are not limited to those shown in FIG.
[0023] [Hardware Configuration] Next, the electrical hardware configuration of the service providing server 30 will be described with reference to Fig. 2. Fig. 2 is a diagram showing the hardware configuration of each server and each user terminal.
[0024] As shown in Figure 2, the service providing server 30 has a drive device 1000, an auxiliary storage device 1002, a memory device 1003, a processor 1004, an interface device 1005, a display device 1006, an input device 1007, an output device 1008, etc., which are all interconnected by a bus 1010.
[0025] The program that realizes the processing on the computer is provided by a recording medium 1001, such as a CD-ROM or a memory card. When the recording medium 1001 storing the program is set in the drive device 1000, the program is installed from the recording medium 1001 to the auxiliary storage device 1002 via the drive device 1000. However, the program does not necessarily have to be installed from the recording medium 1001, but may be downloaded from another computer via the communication network 100. The auxiliary storage device 1002 stores the installed program as well as necessary files, data, etc.
[0026] When an instruction to start a program is received, the memory device 1003 reads the program from the auxiliary storage device 1002 and stores it. The processor 1004 realizes functions related to the device in accordance with the program stored in the memory device 1003. The processor 1004 may include not only a CPU (Central Processing Unit) but also a GPU (Graphics Processing Unit).
[0027] The interface device 1005 is used as an interface for connecting to a communication network, etc. The display device 1006 displays a GUI (Graphical User Interface) or the like according to a program. The input device 1007 is composed of a keyboard, mouse, buttons, a touch panel, etc., and is used to input various operation instructions. The output device 1008 outputs the calculation results to an external device such as a printer or an external display.
[0028] The matching server 50, the tenant server 70, and the user terminal 90 have the same hardware configuration as the service providing server 30, and therefore a description thereof will be omitted.
[0029] [Functional Configuration of Service Providing System] Next, the functional configurations of the service providing server 30, the matching server 50, and the tenant server 70 will be described with reference to Fig. 3. Fig. 3 is a functional configuration diagram of the service providing server, the matching server, and the tenant server. Note that the functional configuration of the user terminal 90 is omitted because it is a general-purpose configuration.
[0030] 3, the service providing server 30 includes a communication unit 31, a generation unit 32, and a service providing unit 38. Each of these units has a function that is realized by an instruction from the processor 1004 in FIG. 2 based on a program.
[0031] Furthermore, a matching server management DB (Data Base) 39 is constructed in the storage unit such as the auxiliary storage device 1002 or the memory device 1003 in FIG.
[0032] (Matching Server Management DB) The matching server management DB 39 is configured by the matching server management table shown in Fig. 4. Fig. 4 is a conceptual diagram showing the matching server management table, and Fig. 4(b) shows a case where the operating status has been changed from Fig. 4(a).
[0033] The matching server management table manages the server ID for identifying the matching server 50, the current operating status of the matching server, and the salt assigned to the matching server 50. Note that "salt" is a random character string used in technology that adds a random value when hashing a password to prevent it from being cracked.
[0034] (Functional Configuration) The communication unit 31 performs data communication with the matching server 50 , the tenant server 70 , and the user terminal 90 .
[0035] The generating unit 32 generates the salt. A specific method for generating the salt will be described later.
[0036] The service providing unit 38 provides, for example, services provided by an e-commerce site, communication services, storage usage services, video distribution services, or services provided by a company's job application site or community site.
[0037] 3, the matching server 50 includes a communication unit 51, an operating status change unit 53, a hashing unit 55, and a matching unit 57. Each of these units has a function that is realized by an instruction from the processor 1004 in FIG. 2 based on a program.
[0038] Furthermore, in the verification server 50, a user information management DB 59 is constructed in the storage unit such as the auxiliary storage device 1002 or the memory device 1003 shown in FIG.
[0039] (User Information Management DB) The user information management DB 59 is configured by a user information management table shown in Fig. 5. Fig. 5 is a conceptual diagram showing the user information management table. In this user information management table, personal information of users (address, name, age, etc.) is managed for each user ID for identifying the user.
[0040] (Functional Configuration) The communication unit 51 performs data communication with the service providing server 30 .
[0041] The operation status change unit 53 periodically (for example, every 12 hours) changes the operation status of the verification server from the operation status to the standby status, and from the standby status to the operation status.
[0042] The hashing unit 55 uses, for example, a hash function H to hash data such as a user ID and generate a hash value.
[0043] The comparison unit 57 compares the hash value generated by the hashing unit 55 (an example of a specific hash value, an example of a first hash value) with the hash value received by the communication unit 51 (an example of a predetermined hash value, an example of a second hash value), and outputs the comparison result.
[0044] 3, the tenant server 70 includes a communication unit 71, a hashing unit 75, and a selection unit 76. These units each have a function that is realized by an instruction from the processor 1004 in FIG. 2 based on a program.
[0045] Furthermore, in the tenant server 70, a user information management DB 79 is constructed in the storage unit such as the auxiliary storage device 1002 or the memory device 1003 shown in FIG.
[0046] (User Information Management DB) The user information management DB 79 has the same data structure as the user information management DB 59 (see FIG. 5), and therefore a description thereof will be omitted.
[0047] Since the customers of tenants A and B are not all the same, the user information management DBs 79 of tenant servers 70a and 70b may manage the same user information or different user information. On the other hand, the user information management DB 59 of the verification server 50 manages the user information of all customers of tenants A and B.
[0048] (Functional Configuration) The communication unit 71 performs data communication with the service providing server 30 and the user terminal 90 .
[0049] The hashing unit 75 uses the same hash function H as the hashing unit 55 to hash data such as a user ID and generate a hash value.
[0050] The selection unit 76 automatically selects a predetermined salt at random from among the multiple salts received by the communication unit 71 .
[0051] [Processing or Operation of the Embodiment] Next, processing or operation of the embodiment will be described with reference to Fig. 6 and Fig. 7. Fig. 6 and Fig. 7 are sequence diagrams showing processing of the communication system.
[0052] S11: The service providing server 30 transmits a hash function H for verification (authentication) to each tenant server 70. As a result, the communication unit 71 of the tenant server 70 receives the hash function H. Note that this hash function H is shared by the service providing server 30 and each verification server 50.
[0053] S12: At this point, the matching server 50a is on standby (S12a), the matching server 50b is on standby (S12b), the matching server 50c is in operation (S12c), and the matching server 50d is in operation (S12d).
[0054] S13: In the service providing server 30, the generation unit 32 generates each salt for each matching server 50. That is, a different salt is used in each matching server 50. The generation unit 32 generates the salt using the following (Equation 1).
[0055] salt i = Hash(r i )...(Formula 1) r i is a random number, i∈{1, 2, ..., m}, m=#{number of servers}. Note that the generation unit 32 generates a random number r as shown in (Equation 2). i The date and time information, time information, etc. may be added to the generated image.
[0056] salt i = Hash(r i || yyyy / mm / dd / hh / mm / ss) ... (Formula 2) S14: In the service providing server 30, the communication unit 31 identifies the matching servers 50a and 50b that are managed as "standby" in the matching server management DB 39. Then, the communication unit 31 transmits the salt generated by the generation unit 32 to the waiting matching server 50a. a In the same manner, the communication unit 31 transmits the salt generated by the generation unit 32 to the waiting matching server 50b (S14a). b By transmitting the above, the salt managed by the verification server 50b is updated (S14b).
[0057] S15: Thereafter, the operation status change unit 53 of the matching server 50a changes the operation status from standby to operating (S15a). Similarly, the operation status change unit 53 of the matching server 50b changes the operation status from standby to operating (S15b).
[0058] Meanwhile, the operation status change unit 53 of the verification server 50c changes the operation status from operation to standby (S15c).Similarly, the operation status change unit 53 of the verification server 50d changes the operation status from operation to standby (S15d).
[0059] S16: The communication unit 51 of the matching server 50a sends a change notification to the service providing server 30 indicating that the operation status has been changed to "in operation" (S16a). Similarly, the communication unit 51 of the matching server 50b sends a change notification to the service providing server 30 indicating that the operation status has been changed to "in operation" (S16b).
[0060] Meanwhile, the communication unit 51 of the matching server 50c transmits a change notification to the service providing server 30 indicating that the operating status has been changed to standby (S16c). Similarly, the communication unit 51 of the matching server 50d transmits a change notification to the service providing server 30 indicating that the operating status has been changed to standby (S16d).
[0061] The change notification includes the server ID of the verification server 50 that sent it.
[0062] As a result, in the service providing server 30 , the communication unit 31 receives each change notification and changes (updates) the operating status corresponding to the server ID of the matching server managed in the matching server management DB 39 .
[0063] S17: After the operation of the process S15a, the hashing unit 55 of the verification server 50a calculates the salt using the same hash function H as the hash function H sent in the process S11. a Similarly, the hashing unit 55 of the verification server 50b hashes the verification data (such as the email address of the end user) including the salt using the hash function H after the operation of the process S15b. b The collation data including the above (such as the end user's email address) is hashed (S17b).
[0064] 7, in the tenant server 70, in response to a request from the user terminal 90 of the end user, the communication unit 71 transmits a request for a service desired by the user to the service providing server 30. As a result, in the service providing server 30, the communication unit 31 receives the service request.
[0065] S22: The communication unit 31 refers to the matching server management DB 39 to identify the matching servers 50a and 50b that are currently in operation, and also obtains the server IDs of the matching servers in operation and the corresponding salts.a ,salt b Then, the communication unit 31 transmits the salt including the server ID of the verification server 50a to the tenant server 70. a , and a salt including the server ID of the matching server 50a b As a result, in the tenant server 70, the communication unit 71 transmits the salt a and salt b Receive.
[0066] S23: In the tenant server 70, the selection unit 76 selects the plurality of salts received by the communication unit 71. a and salt b Among them, randomly select a predetermined salt (e.g., salt a ) automatically.
[0067] S24: The hashing unit 75 uses the hash function H acquired in step S11 to generate a hash value of a By hashing the matching data including the salt, a predetermined hash value Hash(data || salt a )
[0068] S25: The communication unit 71 transmits the predetermined hash value Hash(data ∥ salt ) generated by the hashing unit 75 to the service providing server 30. a ) and the salt received in step S22 a , and transmits the server ID “150a” of the predetermined matching server included in the data. a ) and the server ID "150a" of the specified matching server.
[0069] S26: In the service providing server 30, the communication unit 31 transmits the predetermined hash value Hash(data ∥ salt a ) in the verification server 50a. As a result, the communication unit 51 transmits a predetermined hash value Hash(data || salt a ) is received.
[0070] S27: In the verification server 50a, the verification unit 57 verifies the specific hash value generated in step S17a against the predetermined hash value received in step S26, and outputs the verification result. In this case, if the specific hash value matches the predetermined hash value, the service providing system 20 determines that the user is legitimate based on user authentication.
[0071] S28: The communication unit 51 transmits the result of the comparison (match or mismatch) in step S27 to the service providing server 30. As a result, the communication unit 31 of the service providing server 30 receives the result of the comparison.
[0072] S29: In the service providing server 30, the communication unit 31 transmits the collation result (match or mismatch) to the tenant server 70, which is the source of the process S25b.
[0073] S30: If the collation result received in process S28 indicates a "match," the service providing unit 38 provides a predetermined service to the user terminal 90 that is the source of process S21.
[0074] The matching unit 57 may be included in the service providing server 30 instead of the matching server 50. In this case, the service providing server 30 matches the specific hash value received from the matching server 50 with the predetermined hash value received from the tenant server 70.
[0075] [Major Effects of the Embodiment] As described above, according to this embodiment, as shown in Fig. 6, multiple matching servers 50 are installed, and the service providing server 30 transmits a different salt assigned to each matching server 50 (see S14), and each matching server 50 generates a hash value from the matching data including the salt (see S17). Meanwhile, as shown in Fig. 7, the service providing server 30 transmits multiple salts to the tenant server 70 (see S22), and the tenant server 70 generates a hash value from the matching data including a predetermined salt selected from the multiple salts (see S23 and S24), and transmits this to the service providing server 30. As a result, the service providing server 30 transmits the predetermined hash value to a predetermined matching server 50a to which the predetermined salt has been assigned (see S26), and causes the predetermined matching server 50a to perform hash value verification (S27).
[0076] As described above, in this embodiment, the service providing server 30 prepares a plurality of salts, and furthermore, a system is provided in which the tenant server side can select a predetermined salt from the plurality of salts.
[0077] This makes it difficult for service providers to grasp the data relationships between multiple tenants, allowing each tenant to use the service provision system with more peace of mind than before, thereby contributing to increasing the number of tenants using the service provision system.
[0078] [Supplementary Note] The present invention is not limited to the above-described embodiment, and may have the following configurations or processes (operations).
[0079] (1) The service providing server 30, the matching server 50, and the tenant server 70 can be realized by a computer and a program, but this program can also be recorded on a (non-temporary) recording medium or provided via the communication network 100.
[0080] (2) The processor 1004 shown in FIG. 2 as hardware may be a single processor or may be multiple processors.
[0081] REFERENCE SIGNS LIST 10 Communication system 20 Service providing system 30 Service providing server 31 Communication unit (an example of a transmission unit, an example of a reception unit) 32 Generation unit 38 Service providing unit 39 Matching server management DB (an example of a matching server management unit) 50 Matching server 51 Communication unit 53 Operation status change unit 55 Hashing unit 57 Matching unit 59 User information management DB (an example of a user information management unit) 70 Tenant server 71 Communication unit 75 Hashing unit 76 Selection unit 79 User information management DB (an example of a user information management unit) 100 Communication network
Claims
1. A service provision system that authenticates a user who wishes to receive goods or services from a tenant, comprising: a plurality of hashing units that generate a plurality of hash values by hashing a plurality of pieces of matching data, each of which includes a plurality of different salts; a transmitting unit that transmits the plurality of salts to a tenant server of the tenant; a receiving unit that receives from the tenant server a predetermined hash value that has been generated by hashing the matching data, each of which includes a predetermined salt selected from the plurality of salts; a comparing unit that compares a specific hash value, generated by hashing the matching data, each of which includes the predetermined salt, from the plurality of hash values generated by the plurality of hashing units, with the predetermined hash value received by the receiving unit; and a service provision unit that provides a service to the user in accordance with the result of the comparing by the comparing unit.
2. A service providing system as claimed in claim 1, comprising: a plurality of matching servers each having a plurality of hashing units and a matching unit; and a service providing server having the transmitting unit, the receiving unit, and the service providing unit.
3. The service providing system according to claim 2, wherein the transmitting unit transmits each of the plurality of salts to the plurality of matching servers, and the plurality of hashing units hash the matching data including each of the salts.
4. The service providing system according to claim 3, wherein the transmitting unit transmits one of the plurality of salts to a standby matching server among the plurality of matching servers.
Citation Information
Patent Citations
Product multi-tenant security credit granting method and system, and electronic equipment
CN111241492A
Number of apparatuses counting system and method
JP2016034056A
Method for checking the equality of cryptographic secrets
JP2024507704A