Information processing systems, programs, and authentication methods
The described system enhances device authentication by using encrypted data sets and multiple derived keys to prevent tampering and ensure resilient key management, providing secure and flexible authentication.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2025-05-15
- Publication Date
- 2026-04-10
AI Technical Summary
Existing device authentication methods using the challenge & response method lack flexibility and security, particularly in preventing tampering and ensuring resilient key management.
A system where clients store encrypted data sets and parameter data, servers verify and set response keys based on parameter data, using multiple derived keys and varying parameters to generate and verify response data, ensuring secure and flexible authentication.
This approach enhances security by preventing tampering and ensuring resilient key management, allowing for efficient and secure device authentication.
Smart Images

Figure 0007843944000001 
Figure 0007843944000002 
Figure 0007843944000003
Abstract
Description
Technical Field
[0001] The present disclosure relates to a device authentication method using a challenge & response method.
Background Art
[0002] Conventionally, as a method for authenticating a client device, an authentication method using a challenge & response method is known (for example, Non-Patent Document 1).
Prior Art Documents
Non-Patent Documents
[0003]
Non-Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0004] Regarding the device authentication method using the above challenge & response method, there was room to provide a new method.
Means for Solving the Problems
[0005] In view of the above points, for example, the following configuration examples can be cited.
[0006] (Configuration 1) Configuration 1 includes a client connected to a network and a server, and is an information processing system that performs authentication processing of the client between the client and the server by a challenge & response method. The above-mentioned servers (meaning a group of servers, and may be different server devices from the server device that issues and sends challenge data to the client) are equipped with means for issuing and sending challenge data to the client. The above-mentioned client includes a memory that stores encrypted data set data containing multiple encrypted data encrypted with a predetermined server key, and parameter data A; means for receiving challenge data; means for generating response data from the received challenge data using the client's response key; and means for transmitting the generated response data, encrypted data set data, and parameter data A to the server. The server further includes means for receiving response data, encryption group data, and parameter data A; means for selecting the encryption data to be used from the received encryption group data based on the received parameter data A; means for decrypting the selected encryption data with a server key and setting a server-side response key based on the decrypted data; means for verifying the received response data based on the challenge data and the server-side response key set above; and means for notifying the client of the verification result. The above client further includes means for receiving the verification results.
[0007] According to the above configuration, the client sends encrypted data set containing multiple encrypted data, and also sends parameter data A. The server selects the encrypted data from the multiple encrypted data based on parameter data A, and sets the server-side response key. This allows for variations in the server-side response key. Note that parameter data A may be signed data (for example, data such as the first specific parameter described later) or unsigned data (for example, data such as the second specific parameter described later).
[0008] (Configuration 2) Configuration 2 is a configuration in which the encrypted data and the parameter data A are signed together, the server further includes means for verifying the signature, the selection is configured to select the encrypted data to be used from the received encrypted data based on the verified parameter data A, and the setting of the response key on the server side may be configured to be performed based on the encrypted data whose signature has been verified.
[0009] The above configuration prevents tampering with encrypted data, as well as tampering with information about which encrypted data to use. Furthermore, it is efficient because it is performed with a single signature.
[0010] (Composition 3) Configuration 3 is a configuration in which, in Configuration 1 or 2, the encrypted data is signed data, the parameter data A may be unsigned data, the server further includes means for verifying the signature, and the server-side response key setting may be configured to be performed based on the encrypted data whose signature has been verified.
[0011] According to the above configuration, tampering with encrypted data is prevented, and the information used to determine which encrypted data to use can be set later.
[0012] (Composition 4) Configuration 4 is one in which each encrypted data included in the encrypted data group data in any of the above configurations 1 to 3 may be multiple derived key data generated from the same master key.
[0013] According to the above configuration, the server-side response key is set by a derived key data selected from multiple derived key data generated from the same master key, thus allowing for variations in the derived key used to set the server-side response key.
[0014] (Composition 5) Configuration 5 may be derived key data in any of the above configurations 1 to 4, where each encrypted data included in the encrypted data group data is generated such that each encrypted data is different, in addition to the master key, by varying parameters (hereinafter referred to as "variable parameters").
[0015] According to the above configuration, multiple derived key data are generated using variable parameters, allowing for efficient generation of encryption group data.
[0016] (Composition 6) Configuration 6 is a configuration in which, in any of the above configurations 1 to 5, the server further stores data indicating the correspondence between parameter data A and encrypted data (hereinafter referred to as correspondence data), and the selection may be configured to select encrypted data based on parameter data A by referring to the correspondence data.
[0017] With the above configuration, the correspondence between parameter data A and encrypted data is set in the server's data, so the mapping between parameter data A and encrypted data can be determined later.
[0018] (Composition 7) Configuration 7 is configured such that, in any of the above configurations 1 to 6, each encrypted data included in the encrypted data group is encrypted with a different server key, and the server further includes means for identifying the server key based on the received parameter data A, and decryption is performed based on the identified server key.
[0019] With the above configuration, since each encrypted data has a different encryption key, even if one encryption key is compromised, it will not affect other encryptions, thus providing security resilience. Furthermore, since the server key is identified based on parameter data A used for selecting encrypted data, parameter data A can be effectively utilized.
[0020] (Composition 8) In Configuration 8, in any of the above Configurations 1 to 6, each encrypted data included in the encrypted group data is data generated by executing at least some of the operations for setting the server-side response key, and the setting of the server-side response key may be a process of setting the response key by further performing a predetermined operation based on the decrypted data and Parameter Data A.
[0021] According to the above configuration, since the response key is set by a plurality of operations, a response key that is difficult to predict can be obtained. Also, based on Parameter Data A, selection of encrypted data and a second-stage operation are performed, so that Parameter Data A can be effectively utilized.
[0022] (Configuration 9) In Configuration 9, in the above Configuration 2, the memory may further store at least encrypted group data, Parameter Data A, and unsigned Parameter Data B. The client may further include means for transmitting Parameter Data B to the server, and the reception at the server may be a process of further receiving Parameter Data B. The server may further include means for performing signature verification, and the above selection may be configured to select encrypted data to be used from the received encrypted group data based on the Parameter Data A for which signature verification has been performed and Parameter Data B.
[0023] According to the above configuration, it is possible to determine which encrypted data to use based on both data that is easy to sign in advance (for example, fixed data) and data that is difficult to sign in advance (for example, changing data).
[0024] (Configuration 10) Configuration 10 is configured such that, in Configuration 9 above, each encrypted data included in the encrypted data group may be data encrypted with a different server key, and the server may further include means for identifying the server key based on the signature-verified parameter data A and parameter data B, and decryption may be configured to be performed based on the identified server key.
[0025] According to the above configuration, the server key can be identified based on both data that is easy to sign in advance (e.g., static data) and data that is difficult to sign in advance (e.g., changing data).
[0026] (Composition 11) Configuration 11, in configuration 9 or 10 above, may further include memory for storing data indicating the correspondence between parameter data A and parameter data B and encrypted data (hereinafter referred to as correspondence data). The above selection may be configured to select encrypted data based on parameter data A and parameter data B whose signatures have been verified by referring to the correspondence data.
[0027] With the above configuration, the correspondence between parameter data A and B and encrypted data is set in the server's data, so the mapping between parameter data A and B and encrypted data can be determined later. Furthermore, processing can be performed based on both data that is easy to sign in advance (e.g., fixed data) and data that is difficult to sign in advance (e.g., changing data).
[0028] (Composition 12) Configuration 12 may be a configuration in which each encrypted data included in the encrypted data group data in any of the above configurations 9 to 11 is generated by pre-executing at least some of the calculations for setting the server-side response key. Setting the server-side response key may be a process that sets the response key by further performing predetermined calculations based on the decrypted data, parameter data A, and parameter data B.
[0029] According to the above configuration, the server-side response key is also set by performing further calculations based on both data that is easy to sign in advance (e.g., static data) and data that is difficult to sign in advance (e.g., changing data), thus enabling the setting of an even more secure response key.
[0030] Furthermore, each of the above configuration examples may also be applied to a client authentication method using a challenge-response method between a client and a server, comprising a program that causes the client computer to function as one of the above means for performing authentication processing with the server using a challenge-response method, and a client and server connected to a network. [Brief explanation of the drawing]
[0031] [Figure 1] A schematic diagram showing the overall structure of the system of this embodiment. [Figure 2] Diagram illustrating the overview of the response key setting process. [Figure 3] Diagram showing an overview of the certificate creation process. [Figure 4] Example of the structure of certificate data D101 [Figure 5] This diagram outlines the process of generating and submitting challenge datasets. [Figure 6] An example of the structure of the challenge dataset D102 [Figure 7] A diagram illustrating the process of generating response datasets. [Figure 8]An example of data that client 3 sends to server 1. [Figure 9] This diagram shows an overview of the response key setting process on Server 1. [Figure 10] An example of the data structure of the counter value identification table SV404. [Figure 11] An example of the data structure of the 2nd KDF seed data specific table SV405. [Figure 12] Diagram illustrating the overview of the verification process. [Figure 13] Block diagram showing the hardware configuration of Client 3 [Figure 14] An example of data stored in the memory unit 32 of client 3. [Figure 15] Diagram illustrating the functional configuration of the system program CL201. [Figure 16] An example of data stored in the storage unit 12 of server 1. [Figure 17] An example of data stored in the memory unit 42 of PC4 [Figure 18] Example of a flowchart for certificate generation and writing process [Figure 19] Diagram showing the details of the process in a challenge issuance session. [Figure 20] Flowchart showing the details of the challenge generation process [Figure 21] Diagram showing details of the processing in the verification session. [Figure 22] Flowchart showing the details of the response generation process [Figure 23] A flowchart showing the first example of the first derived key setting process. [Figure 24] A flowchart showing a second example of the first derived key setting process. [Figure 25] A flowchart showing the first example of the second derived key setting process. [Figure 26] A flowchart showing a second example of the second derived key setting process. [Figure 27] A flowchart showing the details of the response dataset generation process. [Figure 28]A flowchart showing the details of the verification process. [Figure 29] A flowchart showing the details of the verification process. [Figure 30] Flowchart showing details of online game processing [Modes for carrying out the invention]
[0032] The embodiments will be described below.
[0033] This embodiment relates to a process for device authentication. In this embodiment, the process of performing device authentication when providing a predetermined communication service to a device or enabling a predetermined function of the device (more specifically, when providing online services, for example, online games, matching with opponents, accessing online shops (software and content download sites), etc.) is described as an example. In device authentication, the legitimacy of the client device (hereinafter simply referred to as the client) is confirmed.
[0034] In this embodiment, a challenge-response method is used as the device authentication method. In this method, authentication is performed in the following manner. First, Figure 1 schematically shows the overall configuration of the authentication processing system according to this embodiment. In Figure 1, a client authentication server (hereinafter simply referred to as server) 1 and a client device (hereinafter simply referred to as client) 3 are connected via a network. Note that server 1 may be composed of multiple server devices. In such a configuration, first, (1) a client 3 that wishes to start an online game requests server 1 (which in this embodiment is different from the server that provides the online game) to send challenge data. (2) In response to the request, server 1 generates challenge data and sends it to client 3. (3) Client 3 performs predetermined calculation processing based on the challenge data to generate response data and sends it to server 1. (4) Server 1 verifies the response data received from the client and sends predetermined data to client 3 according to the success or failure of the verification, thereby authenticating the legitimacy of client 3. In the case of a server composed of multiple server devices, it is permissible that the server device that performs the processing in (2) and the server device that performs the processing in (4) are different.
[0035] Next, we will describe the device authentication process using the challenge-response method in this embodiment (hereinafter simply referred to as the authentication process). First, we will explain the "response key" used in the authentication process.
[0036] [About Response Keys] A response key is key data used in the process of creating response data. Response data is generated by performing calculations using this response key on the challenge data received from Server 1.
[0037] Figure 2 is a diagram illustrating the overview of the response key setting process in this embodiment, and schematically shows the data flow in the process. In Figure 2, elements shown as ellipses represent data parameter elements, and elements shown as rectangles represent processing elements. For the sake of explanation, in Figure 2, data parameter elements are denoted with a reference sign of the form "Dnn (where nn is an integer)". Similar diagrams will appear hereafter, and these will also be denoted with the same reference sign.
[0038] In the example shown in Figure 2, a key derivation function (KDF) is used to generate key data from predetermined data, and the generated key data is set as the response key. Here, a KDF is a function for generating another key based on key data. When key data and predetermined data called seed data are input to the KDF, another key data is generated based on these. Hereafter, the key data output by the KDF will be called the "derived key". In this embodiment, derived key data generated using multiple KDFs (two KDFs in this embodiment) is used as the response key. In the following explanation, the first KDF will be called the "first KDF", the second KDF will be called the "second KDF", the key data output by the first KDF will be called the "first derived key data" or simply the "first derived key", and the key data output by the second KDF will be called the "second derived key data" or simply the "second derived key". The calculations performed by each KDF can be anything, but examples include KDFs that use HMAC or CMAC as the PRF, or KDFs that use a hash function or block cipher. Also, the calculations performed by each stage of the KDF may be the same or different.
[0039] Figure 2 illustrates the flow of response key setting. The response key setting process is performed on both the server and the client, but in this embodiment, as will be described later, there are differences between the response key setting process performed on the server and the response key setting process performed on the client. Figure 2 illustrates the response key setting process performed on client 3. The response key set on client 3 is sometimes referred to as "response key (client)," and the response key set on server 1 is sometimes referred to as "response key (server)." Also, the second derived key calculated on client 3 is sometimes referred to as "second derived key (client)," and the second derived key calculated on server 1 is sometimes referred to as "second derived key (server)."
[0040] First, the memory unit of client 3 stores the master key D01, counter value D02, first KDF seed data D03, and second KDF seed data D04. The master key D01 is the key data input to the first KDF. The master key D01 may be configured as a fixed value or as modifiable data. Also, the master key D01 may be different data depending on the client. If the client is implemented using emulator technology, it may be the same data as the master key being emulated.
[0041] The counter value D02, the first KDF seed data D03, and the second KDF seed data D04 are data used as seed data for the KDF, respectively. The counter value D02 can take on different values depending on the client 3. For example, it is a value that may change in response to system updates of client 3, and specifically, it is incremented by 1. In this embodiment, as an example, we will describe the case where the counter value can take on any of the four values from 0 to 3. Also, in this embodiment, the initial value of the counter value D02 is 0.
[0042] The first KDF seed data D03 is seed data input to the first KDF and may take different values depending on the client 3. The second KDF seed data D04 is seed data input to the second KDF and may take different values depending on the client 3. These seed data can be any kind of data, but for example, the first KDF seed data D03 may be a fixed value, or more specifically, identification data that indicates a certain characteristic of client 3. For example, it may be identification data that indicates either a development machine or a production machine. If the client is implemented using emulator technology, the identification data may be data that indicates the characteristics of the object being emulated. The second KDF seed data D04 may be data that client 3 can set or change itself or in response to instructions from an external source such as a server. More specifically, it may be identification data that indicates another characteristic of client 3 (for example, data that indicates security settings). It may also be data that differs depending on the system version (data that is updated by version upgrades). If the client is implemented using emulator technology, the identification data may be data that indicates the characteristics of the object being emulated. Furthermore, each KDF seed data D03 and D04 may be changed, for example, by a system software update. Also, both the first KDF seed data D03 and the second KDF seed data D04 may have different values depending on the client.
[0043] Of this data, the master key D01, the (current) counter value D02, and the first KDF seed data D03 are first input into the first KDF. As a result, the derived key "first derived key" D05, which is output by the first KDF calculation, is generated.
[0044] Next, the second KDF seed data D04 is input to the second KDF along with the generated first derived key D05. This generates the "second derived key (client)" D06, which is the derived key output by the second KDF calculation.
[0045] In this embodiment, the second derived key (client) D06 is used as the response key (client). That is, in this embodiment, the response key (client) is set by generating the second derived key and is used in the process of generating the response dataset D103, which will be described later.
[0046] The calculations for each KDF in the response key setting process may be performed at runtime (i.e., each time authentication is performed), but the results of the calculations may be stored in advance and read when authentication is performed, thus avoiding repeated calculations. For example, the first derived key data and / or second derived key data may be calculated and stored when client 3's system starts up, and the response key may be set by reading them when authentication is performed. Alternatively, the calculated data (first derived key data and / or second derived key data) may be obtained from an external source and stored, and the response key may be set by reading it when authentication is performed. Furthermore, one of the calculations for the first KDF and the second KDF may be performed at runtime, while the other is calculated by reading pre-calculated data.
[0047] As described above, in this embodiment, the response key setting process performed on Server 1 and the response key setting process performed on Client 3 are different. One of these differences is that the calculation of the first KDF is not performed in the response key setting process performed on Server 1. More specifically, the calculated data (first derived key data; in this embodiment, encrypted first derived key data as described later) which is the result of performing the calculation of the first KDF in advance (for example, in the Client 3 setup process performed in advance before the start of the authentication process) is written to the storage unit of Client 3. Then, when the authentication process is performed, the calculated data is sent from Client 3 to Server 1, and Server 1 uses this calculated data to perform the calculation of the second KDF without performing the calculation of the first KDF and sets the response key. In this embodiment, as described later, this calculated data is included in the client certificate data (hereinafter simply referred to as certificate data).
[0048] Here, we will explain how to generate certificate data. The above certificate data is stored in Client 3 in advance (before the start of the authentication process). This certificate data is written to the storage unit (described later) of Client 3 during the Client 3 configuration process. Figure 3 is a schematic diagram showing the overview of the certificate creation process when the writing process is performed by a PC (hereinafter referred to as PC4). In Figure 3, first, the master key D01 of the Client 3 to be manufactured, the counter value D02, and the first KDF seed data D03 are input to the first KDF. This generates the first derived key D05. The master key D01 can be read, for example, from Client 3 connected to PC4 and targeted for the certificate data writing process. Here, as described above, in this embodiment, the counter value D02 can take four values. Therefore, the calculation of the first KDF in PC4 is performed for each possible value of the counter value D02 (0 to 3), and the first derived key D05 corresponding to each value of the counter value D02 is generated. In other words, in this example, four first derived keys D05 are generated. Below, when referring to these four first derived keys D05 individually, we will use the notations D05A (counter value 0), D05B (counter value 1), D05C (counter value 2), and D05D (counter value 3).
[0049] Next, each first derived key D05 is encrypted. Specifically, each first derived key D05 is encrypted using the encryption key, the first server key D07. Hereafter, the encrypted first derived key D05 will be referred to as the "encrypted first derived key" D08. In this embodiment, a different first server key D07 is prepared for each counter value D02. Hereafter, the first server key D07 used when the counter value D02 is 0 will be referred to as "first server key (counter value 0) D07A", the first server key D07 used when the counter value D02 is 1 will be referred to as "first server key (counter value 1) D07B", and so on, and the encrypted encrypted first derived key D08 will be referred to as "encrypted first derived key (counter value 0) D08A", "encrypted first derived key (counter value 1) D08B", and so on. In this way, a first derived encryption key D08 is generated for each counter value D02, and in this embodiment, a total of four first derived encryption keys D08 are generated. The first server key D07 may be a symmetric key or a private key / public key.
[0050] Next, an electronic signature (hereinafter simply referred to as "signature") D12 to be attached to the client certificate is generated. Signature D12 is generated by performing calculations using a predetermined signature generation algorithm that uses the signing key D09, which is the key used for signing. Specifically, it is generated by signing data containing a total of seven data elements: (A) client ID_D10, (B) the first parameter for identifying the second KDF seed (hereinafter sometimes referred to as the first identification parameter) D11, which will be described later, and (C) the four first encryption derived keys D08 mentioned above, using the signing key D09.
[0051] Here, client ID_D10 is an ID used to identify client 3. For example, client ID_D10 may be the ID, serial number, or manufacturing number of the client device's SoC. If the client is implemented using emulator technology, this number may be information related to the object being emulated. When generating the certificate, for example, client ID_D10 may be read from client 3, which is connected to PC4 and is the target of the certificate data writing process, and used. In addition, the first specific parameter D11 is used by server 1 to specify the value of the second KDF seed data D04 (details will be described later).
[0052] Next, certificate data D101 is generated, which includes client ID_D10, first specific parameter D11, and the four first encryption derived keys D08 mentioned above, and is accompanied by the signature D12 generated as described above. Figure 4 shows the structure of certificate data D101. Certificate data D101 includes signature D12, four first encryption derived keys D08A~08D, client ID_D10, and the first specific parameter D11 mentioned above.
[0053] Finally, the generated certificate data D101 is written to the non-volatile storage unit (described later) of client 3. As described later, the certificate data D101 is sent from client 3 to server 1 during the authentication process, and each piece of data contained in the certificate data D101 is used by server 1. Of the data contained in the certificate data D101, the first derived key D08 (more precisely, the first derived key D05 obtained by decrypting it) is the first derived key data, which is the result of performing the first KDF operation, and server 1 uses this data to set the response key. Therefore, server 1 does not need to perform the first KDF operation. Note that the certificate data D101 may also be downloaded or transferred from a designated server or other PC to client 3 and written to client 3.
[0054] Furthermore, in this embodiment, the counter value D02 is used as seed data for the KDF calculation for setting the response key. This makes it possible to change the response key depending on the situation.
[0055] Furthermore, in this embodiment, multiple derived keys are included in the certificate and can be selected and used, enabling efficient modification of the response key.
[0056] [Overview of Challenge Creation and Submission] Next, we will explain the overview of the challenge data generation and transmission process in Server 1. This process is executed in response to a challenge issuance request from Client 3. When Client 3 requests a challenge issuance, it sends certificate data D101. Figure 5 shows an overview of the challenge data generation and transmission process in Server 1, and schematically illustrates the data flow in this process. In this process, first, certificate data D101 is received from Client 3 and verified (signature verification) is performed. If there are no problems as a result of this verification, Client ID_D10 is extracted from certificate data D101.
[0057] Next, the client ID_D10, the "challenge version" D14, and the "challenge issuance time" D15 are used as the calculation targets, and a predetermined MAC calculation is performed using the "second server key" D13 to calculate the first MAC (Message Authentication Code) value D16. The first MAC value D16 is used as the challenge data.
[0058] In this embodiment, challenge data was generated by MAC operation, but any cryptographic operation capable of generating tamper-verification data (data used for tamper verification) may be used, for example, the AES-GCM algorithm. Also, the second server key used in the operation may be a symmetric key or a private key / public key.
[0059] Here, Challenge Version D14 is data stored on Server 1, and it is information that defines the "version" of the method for generating challenge data generated on Server 1 at a given time, and it indicates the current version. For example, Challenge Version D14 is initially set to "1.0" and can be changed to "2.0" at a predetermined time.
[0060] Furthermore, the challenge issuance time D15 is the time on Server 1 when the process of generating the challenge data is performed on Server 1.
[0061] Furthermore, the second server key D13 is key data used to calculate the first MAC value (challenge data) D16. In this embodiment, the second server key D13 may differ for each challenge version D14 (although the key may remain the same even if the version changes). In this embodiment, the second server key D13 corresponding to the current challenge version D14 is selected and used to calculate the first MAC value (challenge data) D16. The first MAC value D16 is the data that is the target of calculations using the response key in client 3, and is the so-called challenge data.
[0062] Once the first MAC value D16 is calculated, a challenge dataset D102 is generated based on the (current) challenge version D14, the challenge issuance time D15, and the first MAC value (challenge data) D16. Figure 6 schematically shows the structure of the challenge dataset D102. Note that the challenge dataset D102 is data that includes challenge data as well as other data. In this embodiment, the challenge dataset D102 is data with the structure of "challenge version D14 + challenge issuance time D15 + first MAC value (challenge data) D16". Note that the value of the result of the MAC calculation is generally attached to the data to be calculated (message data) and transmitted, but in this embodiment, the client ID_D10 is used in the calculation of the first MAC value but is not included in the challenge dataset.
[0063] The challenge dataset D102 generated as described above is sent to client 3, who requested the challenge.
[0064] [Overview of response generation process in Client 3] Next, we will explain the overview of the response generation process executed by client 3, which receives the challenge dataset D102. Figure 7 is a diagram illustrating the overview of this process. First, the second MAC value (response data) D17 is calculated by performing a MAC operation on the first MAC value (challenge data) D16 contained in the challenge dataset D102 received from server 1, using the response key (client) (second derived key (client) D06) set as described above using Figure 2. The second MAC value D17 is the result of performing an operation on the challenge data using the response key, and is the so-called response data. Note that the content of the MAC operation when calculating the second MAC value (response data) D17 may be the same as the content of the MAC operation when calculating the first MAC value (challenge data) D16, or it may be a different operation. Note that the length of the first MAC value, which is the data input to the second MAC operation, is determined by the content of the first MAC operation and is a fixed length regardless of the length of the data input to the first MAC operation. In this embodiment, MAC calculation was used to generate response data from challenge data using the response key, but any algorithm that can generate response data from challenge data using the response key is acceptable, not limited to MAC calculation.
[0065] Next, a response dataset D103 is generated based on the second MAC value (response data) D17, the challenge version D14 included in the received challenge dataset D102, and the challenge issuance time D15. The response dataset D103 includes the response data and other data (in this embodiment, data other than the challenge data included in the challenge dataset D102 received from server 1; specifically, the challenge version D14 and the challenge issuance time D15). As mentioned above, the result of the MAC calculation is generally attached to the data to be calculated (message data) and transmitted, but in this embodiment, the first MAC value (challenge data) D16 is used in the calculation of the second MAC value (response data) D17, but it is not included in the data sent to the server (the response dataset and client-sent data described later).
[0066] Once the response dataset D103 is generated, client 3 sends (A) the response dataset D103, (B) the certificate data D101, and (C) the second parameter for identifying the second KDF seed data (hereinafter sometimes referred to as the second identification parameter) D19, which will be described later, to server 1. Figure 8 is a schematic diagram of the data that client 3 sends to server 1 (hereinafter sometimes collectively referred to as client-sent data D104). Note that each piece of client-sent data may be sent as a set, or it may be sent separately at different times. In Figure 8, the response dataset D103 includes the challenge version D14, the challenge issuance time D15, and the second MAC value (response data) D17. This is a configuration similar to that of the challenge dataset D102 described above, but with the first MAC value (challenge data) D16 replaced by the second MAC value (response data) D17. In other words, the challenge version D14 and challenge issuance time D15 included in the challenge dataset received from Server 1 when receiving challenge data are included in the response dataset and sent to Server 1 when sending response data. The certificate data D101 is the same as the certificate data D101 sent when requesting challenge issuance. That is, the certificate data D101 is sent when requesting Server 1 to send challenge data and when sending response data to Server 1. The second specific parameter D19, together with the first specific parameter D11, is a parameter used in Server 1's processing to identify the value of the second KDF seed data D04 (details will be described later).
[0067] Next, we will explain the process involved in response verification at Server 1, which receives client-transmitted data D104. First, a response key (server) is set at Server 1. Next, a second MAC value (during verification) D217 is calculated using the set response key (server). Then, it is determined whether the second MAC value (during verification) D217 calculated at Server 1 matches the second MAC value (response data) D17 sent from the client, thereby verifying the response data D17.
[0068] Figure 9 is a diagram illustrating the overview of the response key setting process in Server 1. First, the signature D12 is verified for the certificate data D101 contained in the client transmission data D104. If there are no problems with the verification, the first encryption derived key D08 and the first identification parameter D11 are extracted from the certificate data D101. Here, as described above, the certificate data D101 contains four first encryption derived keys D08, but one of them is identified and extracted by the following procedure. First, the current counter value D02 in Client 3 is identified. This identification is done by referring to the "counter value identification table" which is stored in advance in Server 1. The counter value identification table is a table for identifying the current counter value D02 of the client based on the first identification parameter D11 and the second identification parameter D19 sent from Client 3. In other words, the current counter value D02 in client 3 (client 3 being authenticated), which sent the response data, is determined using the first specific parameter D11 extracted from the certificate data D101 and the second specific parameter D19 that was sent along with the certificate data D101. Figure 10 shows an example of the data structure of the counter value identification table SV404. In the counter value identification table SV404, the counter value D02 is defined in association with the combination of the value of the first specific parameter D11 and the value of the second specific parameter D19.
[0069] Returning to Figure 9, next, Server 1 selects the encryption first derived key D08 corresponding to the counter value D02 identified using the counter value identification table SV404 from among the multiple encryption first derived keys D08 contained in the certificate data D101, and retrieves it from the certificate data D101. Next, in Server 1, the retrieved encryption first derived key D08 is decrypted using the first server key D07 stored in Server 1 to obtain the first derived key D05. Here, the first server key D07 is different key data depending on the counter value D02 as described above. If the counter value D02 may differ depending on Client 3, Server 1 stores each first server key D07 corresponding to the currently possible counter value D02, and the first server key D07 corresponding to the identified counter value D02 is used.
[0070] Next, the second KDF is processed using the decrypted first derived key D05 and the second KDF seed data D204. Here, the value of the second KDF seed data D204 in the second KDF processing is determined as follows. The "second KDF seed data identification table" is used to identify the value of the second KDF seed data D204. The second KDF seed data identification table is a table for identifying the second KDF seed data D04 based on the first identification parameter D11 and the second identification parameter D19. In other words, the second KDF seed data D04 in client 3, which sent the response data, is identified using the first identification parameter D11 extracted from the certificate data D101 and the second identification parameter D19 sent from the client along with the certificate data D101. Figure 11 shows an example of the data structure of the second KDF seed data identification table SV405. In the second KDF seed data identification table SV405, the value of the second KDF seed data D204 is defined in association with the combination of the first identification parameter D11 and the second identification parameter D19. That is, as described above using Figure 2, in the response key setting process of client 3, the response key is set using the second KDF seed data stored in client 3. On the other hand, in the response key setting process of server 1, the value of the second KDF seed data D04 stored in client 3, which sent the response data, is identified based on the first identification parameter D11 and the second identification parameter D19 received from client 3, and the response key is set using that value. This is one of the differences between the response key setting process performed on the server and the response key setting process performed on the client.
[0071] In this embodiment, Server 1 identifies the KDF seed data using specific parameters sent from Client 3. This configuration allows for response key settings that take into account the attributes and state of the client (or the emulated client device if implemented using emulator technology). Furthermore, in this embodiment, two parameters are used to identify the KDF seed data: the first specific parameter is subject to signing, while the second specific parameter is not. This configuration allows for flexibility in the composition of the KDF seed data, for example, by using parameters that can be signed and parameters that are difficult to sign.
[0072] The parameters to be designated as the first specific parameter D11 and the second specific parameter D19 can be designed as appropriate. For example, the first specific parameter D11 may be a fixed value. For example, it may be attribute information of the client 3 hardware. The second specific parameter D19 may be data that can be set or changed in client 3. For example, it may be attribute information of software, or attribute information of system software (for example, system software version information). The first specific parameter D11 may be data that can be set or changed in client 3, and the second specific parameter D19 may be a fixed value. Note that if client 3 is implemented using emulator technology, the first specific parameter and the second specific parameter may be attribute information of the object to be emulated. However, in this embodiment, the first specific parameter and the second specific parameter are data different from the second KDF seed data, and the second KDF seed data can be identified by the combination of the first specific parameter and the second specific parameter. Also, in this embodiment, the first specific parameter and the second specific parameter are data different from the first KDF seed data.
[0073] Returning to Figure 9, Server 1 performs the second KDF calculation using the second KDF seed data D204 determined as described above and the first derived key D05 extracted from the certificate data D101, thereby generating the second derived key (server) D206. The calculation method (algorithm) for the second KDF performed on Server 1 is the same as that performed on Client 3. Then, Server 1 uses the generated second derived key (server) D206 as the response key. In other words, the response key (server) is set by generating the second derived key (server) D206.
[0074] Here, if the data used as the basis for the KDF calculation and the calculation content of the KDF calculation differ depending on the client configuration, when generating a derived key in Server 1, it would be necessary to manage a database or the like to change the data used as the basis for the KDF calculation and the calculation content of the KDF calculation according to the configuration of each client. However, in this embodiment, for the first KDF calculation, the data (derived key) after the KDF calculation is sent from Client 3 to Server 1, and Server 1 uses it to generate a response key, so there is no need to have such a database.
[0075] Furthermore, in this embodiment, the KDF calculation is multi-stage. For the first KDF calculation, the calculated derived key is sent from client 3 to server 1, and server 1 uses it to perform another KDF calculation (second KDF calculation) to generate a response key. This allows for some aspects of the verification elements to be calculated in advance, while other aspects are calculated on the server, enabling verification in a manner appropriate to the nature of the verification elements.
[0076] As shown in Figure 9, the response key setting process on Server 1 does not utilize the response dataset D103. In the verification process described next, the second MAC value (response data) D17 included in the response dataset D103 is verified.
[0077] [Overview of the verification process] Next, we will explain the overview of the verification process performed on the server (in this embodiment, this includes not only verification of the response data but also verification of the challenge issuance time included in the response data, as will be described later). Figure 12 is a diagram illustrating the overview of the verification process. In the verification process, Server 1 calculates the second MAC value (at the time of verification) D217 and determines whether it matches the second MAC value (response data) D17 sent from Client 3, thereby verifying the second MAC value D17, which is the response data.
[0078] First, Server 1 performs a process to calculate the first MAC value (during verification) D216. This process is basically the same as the process described above using Figure 5 to calculate the first MAC value (challenge data) D16 in the challenge generation process. Based on the challenge version D14 contained in the response dataset D103 sent from Client 3, the second server key D13 corresponding to the challenge version D14 is selected. Then, using the selected second server key D13, the first MAC value (during verification) D216 is calculated by performing a MAC value calculation targeting "the challenge version D14 and challenge issuance time D15 contained in the response dataset D103, and the client ID_D10 contained in the certificate data D101 sent from the client (certificate data D101 sent at the time of verification request)".
[0079] Furthermore, regarding the calculation process of the first MAC value (during verification) D16, in other embodiments, the first MAC value (challenge data) D16 calculated in the challenge generation process may be stored on server 1. Then, the stored first MAC value (challenge data) D16 may be used in the verification process, thereby omitting the calculation process of the first MAC value (during verification) D16.
[0080] Next, using the response key (server) D206 and the first MAC value (during verification) D216 set above, the second MAC value (during verification) D217 is calculated using the same algorithm as the MAC calculation in client 3.
[0081] Next, the second MAC value (response data) D17 included in the response dataset D103 is compared with the second MAC value (during verification) D217 calculated above, and it is determined whether they match. If they match, the response verification result is determined to be OK (affirmative); if they do not match, the response verification result is determined to be NG (negative).
[0082] Furthermore, in this embodiment, Server 1 performs a verification process from a temporal perspective. This process determines whether the time from when Server 1 issues the challenge dataset D102 until when the client returns the response dataset D103, etc. (or the time from when the challenge data is issued until the verification is performed) is within a certain time limit. Specifically, the challenge issuance time D15 included in the response dataset D103 is compared with the current time of Server 1 at the time the verification process is performed. If this time is within a certain time limit, it is judged as OK; if it takes longer than a certain time limit, it is judged as NG.
[0083] If both the verification of response data D17 and the verification from a temporal perspective are OK, authentication is determined to be successful. Otherwise, authentication is determined to be failed. If authentication is successful, the process of sending a predetermined service token to the client is executed. If authentication fails, an error message or similar will be sent. The contents of the service token include, for example, the client ID, the identifier of the predetermined online service, the expiration date, and information including the signature or MAC value of that data.
[0084] As described above, in this embodiment, when a challenge is issued, Server 1 sends a MAC value (first MAC value) to Client 3, which is calculated using at least the challenge issuance time, along with the challenge issuance time. Furthermore, when generating response data, Client 3 generates a value (second MAC value) by further calculating the MAC value using the response key, and sends it to Server 1 as response data. Server 1 verifies this value, and also performs temporal verification using the challenge issuance time. This prevents fraud during the authentication process.
[0085] The following describes the details of the process according to this embodiment.
[0086] [Client 3 Hardware Configuration] Next, the hardware configuration of client 3 will be described. Figure 13 is a block diagram showing the hardware configuration of client 3. In this embodiment, client 3 is a game device, but it may also be a general-purpose PC, smartphone, tablet device, etc. Client 3 is an example of a computer and includes a processor, memory, peripheral processors such as a communication processor and a display processor. Client 3 comprises at least a processing unit 31, a storage unit 32, a network communication unit 35, an operation device 36 (game controller), and an image output unit 37. The processing unit 31 is, for example, a processor and executes various programs for controlling client 3. Client 3 may be composed of multiple devices. The processing unit 31 may be composed of multiple processors, in which case it may be multiple processors of multiple devices. Also, the processor may be a general-purpose processor or a dedicated processor, and is not limited to any form such as a SoC, CPU, ASIC, or microcontroller. The storage unit 32 stores various programs executed by the processing unit 31 and various data used. The program may be a group of multiple programs, each program may be executed by a different processor, and each program may be stored in a different memory location. Furthermore, the program may be application software, system software, firmware, an emulator, or any other form of software. In addition to code, the program may include data and table parameters. Specifically, the storage unit 32 includes a non-volatile storage unit 33 and a volatile storage unit 34. The non-volatile storage unit 33 is, for example, flash memory or an SSD (Solid State Drive). The volatile storage unit 34 is, for example, DRAM and functions as main memory. Various programs and data stored in the non-volatile storage unit 33 are loaded onto the volatile storage unit 34 as needed, and the processing unit 31 can execute various processes as described later. The network communication unit 35 communicates with other servers and clients 3 via a network, such as the Internet (this may be wireless or wired). Alternatively, the system may communicate directly with the communication partner without using a network.The network communication unit 35 may be, for example, a network controller IC or a wireless communication IC. The operating device 36 is various operating devices (keyboard, mouse, etc.). The image output unit 37 outputs a predetermined image generated as a result of information processing by the processing unit 31.
[0087] Furthermore, a portion of the non-volatile storage unit 33 and the volatile storage unit 34 may be configured as a secure area. Some of the various types of data described later may be configured to be stored in a secure area such as the memory within the SoC (System on a Chip).
[0088] The hardware configuration of Server 1 and PC 4 can be any common server or PC hardware configuration, and the explanation is omitted, but it is the same configuration as in Figure 13. Server 1 may be composed of multiple server devices. Specifically, Server 1 consists of a processing unit 11 and a storage unit 12 including a non-volatile storage unit 13 such as flash memory and a volatile storage unit 14 such as DRAM. Server 1 is an example of a computer. PC 4 consists of a processing unit 41 and a storage unit 42 including a non-volatile storage unit 43 such as flash memory and a volatile storage unit 44 such as DRAM.
[0089] Next, we will explain the various data used in the processing according to this embodiment.
[0090] [Data used by Client 3] Figure 14 shows an example of data stored in the memory unit 32 of client 3. The data shown in Figure 14 is data stored in the non-volatile memory unit 33, and when authentication processing is performed, this data is read into the volatile memory unit 34 as needed, thereby enabling the authentication process to be executed. Note that this data may be stored in different memories. For example, some of the data may be stored in the secure area mentioned above.
[0091] In Figure 14, the non-volatile memory unit 33 stores at least the system program CL201, the online game program CL202, the master key D01, the counter value D02, the first KDF seed data D03, the second KDF seed data D04, the certificate data D101, and the second parameter D19 for identifying the second KDF seed data. In Figure 14, all data other than the system program CL201 and the online game program CL202 are essentially the same as the various data described above.
[0092] In Figure 14, the system program CL201 is a program for controlling the client 3 system. The system program CL201 includes at least the programs for realizing the authentication function of this embodiment, as shown in Figure 15. First, the system program CL201 includes a challenge issuance request program that requests the server 1 to issue a challenge. The system program CL201 also includes a response key setting program that has the function of setting a response key (client). The system program CL201 also includes a response generation and transmission program that has the function of receiving the challenge dataset D102, generating a response dataset D103, and transmitting the response dataset D103, etc. (the client transmission data described above). The system program CL201 also includes an authentication result processing program that has the function of starting an online game based on the authentication result. The device authentication process according to this embodiment is executed as one of the system-side processes that control client 3 (not as an application process).
[0093] Returning to Figure 14, the online game program CL202 is a program for a predetermined online game. In this embodiment, as described above, a device authentication process is performed when starting to play the online game.
[0094] Furthermore, the various data mentioned above (including various data necessary for setting the response key (client) (seed data for each KDF calculation, certificate data, parameters for identifying the seed data, etc.)) may be downloaded at a predetermined timing or transferred from another information processing device and stored in the storage unit 32. In this case, for example, the response key setting program may have a function to specify the various data that have been downloaded or transferred. Alternatively, it may have a function to specify the location where the various data is stored (a folder on client 3, etc.).
[0095] In another embodiment, for example, the data for the first derived key D05 may be stored in the storage unit 32. In this case, the master key D01 and the first KDF seed data D03 do not need to be stored in the storage unit 32.
[0096] Furthermore, in another embodiment, for example, the data for the second derived key D06 may be stored in the storage unit 32. In this case, the master key D01, the first KDF seed data D03, and the second KDF seed data D04 do not need to be stored. Also in this case, the response key setting program may be configured not to have a first derived key setting function.
[0097] [Data used on Server 1] Next, we will describe the data stored in the storage unit 12 of server 1. Figure 16 shows the data stored in the non-volatile storage unit 13 of server 1. When the authentication process is executed, this data is read into the volatile storage unit 14 as needed, thereby enabling the authentication process on the server 1 side to be executed.
[0098] The non-volatile memory unit 13 of server 1 stores the authentication program SV401, the first server key D07, the second server key D13, the counter value identification table SV404, the second KDF seed data identification table SV405, the CA public key SV406, the challenge version D14, and the like.
[0099] The authentication program SV401 is a program that performs authentication processing on the server 1 side. The authentication program SV401 has a challenge issuance function that issues the above challenge data to client 3 and sends other data, and a verification function that verifies using the response dataset D103 etc. from client 3. The verification function also includes a function to set the response key (server) as described above using Figure 12.
[0100] Here, we will provide some additional information regarding the first server key D07. As described above, in this embodiment, multiple key data are prepared for the first server key D07 according to the counter value, but only one of these key data is stored as the first server key D07 in Server 1. And each time the counter value is incremented, the key data is replaced with the key data corresponding to the counter value.
[0101] Furthermore, if the increment of counter value D02 in client 3 occurs during a system update of client 3, the timing of the update of counter value D02 in each client 3 may not be the same. Therefore, for a certain period after the increment of counter value D02 occurs (for example, at the time of a system update), the first server key D07 corresponding to the counter value D02 before the increment may be stored as the "old first server key". During this period, even if authentication is requested from a client 3 that has not yet undergone a system update, the system may be configured to determine that authentication was successful using the "old first server key".
[0102] As described above, in this embodiment, the second server key D13 is key data with different content for each challenge version D14. The storage unit 12 of server 1 stores key data corresponding to the currently used challenge version D14 as the second server key D13. When the challenge version D14 is changed, there is a possibility that there are clients 3 that make verification requests using challenges issued with the old challenge version. Therefore, the second server key D13 corresponding to the old challenge version may be stored to respond to verification requests from such clients 3.
[0103] The counter value identification table SV404 contains the data shown in Figure 10 above. Therefore, a detailed explanation is omitted here.
[0104] The second KDF seed data specific table SV405 contains the data shown in Figure 11 above. Therefore, a detailed explanation is omitted here.
[0105] The CA public key SV406 is the key data paired with the signing key D09, and is the key data (decryption key or verification key in public-key cryptography) used by Server 1 to verify the signature D12 of certificate data D101.
[0106] Challenge version D14 is the challenge version assigned to the challenge issued at that time. As described above, in this embodiment, the second server key D13 is different for each challenge version, so when challenge data D16 is generated, challenge version D14 is used to determine which second server key D13 was used to calculate the first MAC value (challenge data) D16. In addition, various processes of server 1 and / or client 3 may be changed depending on the challenge version, other than the change of the second server key D13. In this case, the processing may be branched according to the challenge version D14 included in the challenge.
[0107] [Data used in PC4] Next, Figure 17 shows an example of the data stored in the storage unit 42 of the PC4 described above. That is, Figure 3 shows an example of the data used in the certificate creation process described above. The storage unit 42 of the PC4 stores the certificate generation / writing program FC501, master key D01 (master key D01 corresponding to client 3 to be manufactured), first KDF seed data D03 (first KDF seed data D03 corresponding to client 3 to be manufactured), four first server keys D07A to D07D, signing key D09, client ID_D10 (client ID_D10 corresponding to client 3 to be manufactured), and first identification parameter D11 (first parameter D11 for identifying second KDF seed data corresponding to client 3 to be manufactured).
[0108] The certificate generation and writing program FC501 is a program that generates the certificate data D101 described above using Figure 3 and writes it to the non-volatile storage unit 33 of client 3.
[0109] Furthermore, the first parameter D11 used in PC4 to identify the second KDF seed data is pre-set to a predetermined value corresponding to the client 3 to which the data is to be written.
[0110] The following flowcharts describe the details of the processes performed by PC4, Client3, and Server1. Note that the flowcharts shown below are merely examples of the processing steps. Therefore, the order of each step may be changed if similar results can be obtained. Also, the variable values and thresholds used in the judgment steps are merely examples; other values may be used as needed.
[0111] First, we will explain the details of the certificate generation and writing process performed on PC4. Figure 18 is an example of a flowchart of the certificate generation and writing process. First, the processing unit 41 of PC4 sets the variable counter value n to 0 (step S201).
[0112] Next, the processing unit 41 reads the master key D01, the first KDF seed data D03, and the client ID_D10 from the client 3 that is the target of the certificate data D101 writing, and stores them in the storage unit 42 (step S202). For example, these data are read from the client 3 that is connected to the PC4 and is the target of the writing process. Note that these data may be generated on the manufacturing equipment side or read from the storage device on the manufacturing equipment side, rather than being read from the client 3.
[0113] Next, the processing unit 41 performs a first KDF operation based on the master key D01, the current counter value n, and the first KDF seed data D03 to generate a first derived key n corresponding to the current counter value n (step S203).
[0114] Next, the processing unit 41 encrypts the generated first derived key n with the first server key D07 (the key at counter value n) corresponding to the current counter value n (step S204).
[0115] Next, the processing unit 41 adds 1 to the counter value n (step S205).
[0116] Next, the processing unit 41 determines whether the counter value n has become greater than a predetermined value (step S206). In this embodiment, the counter value n takes one of four values from 0 to 3, so this predetermined value is 3. If the result of this determination is that the value has not become greater than the predetermined value (NO in step S206), the process returns to step S203 and is repeated.
[0117] On the other hand, if the counter value n becomes greater than a predetermined value (YES in step S206), the processing unit 41 creates a signature D12 using the hash values of the four first encryption derived keys D08, the client ID_D10, the first specific parameter D11, and the signing key FC-D09 (step S207).
[0118] Next, the processing unit 41 creates certificate data D101 (see Figure 4) which includes four first encryption derived keys D08, client ID_D10, and first specific parameter D11, and is assigned the signature D12 created above. Furthermore, the processing unit 41 writes the certificate data D101 to the non-volatile storage unit 33 of client 3 (step S208). Alternatively, the certificate data may be downloaded or transferred from a predetermined server or other PC and written to the non-volatile storage unit 33 of client 3.
[0119] Next, the details of the authentication process will be explained. In this embodiment, the authentication process consists of a challenge issuance session and a verification session. The challenge issuance session is initiated when a challenge issuance request is made from client 3, and is primarily a session for server 1 to issue challenge data D16 and send it to client 3 (other processes are also performed as described later). The verification session is initiated when a verification request (requesting verification of the response) is made from client 3, and is primarily a session for client 3 to send a response, server 1 to verify this response, and send the result to client 3. In this embodiment, the challenge issuance session and the verification session are separate communication sessions. Note that if server 1 is composed of multiple server devices, the challenge issuance session and the verification session may be executed on separate server devices. The challenge issuance session and the verification session are different communication sessions, and these communication sessions do not constitute a series of processes. Therefore, the issued challenge cannot be used directly when verifying the response. In this embodiment, the data on which the challenge originated is sent to the client along with the challenge, and the client returns that data (the data on which the challenge originated) to the server along with the response. The server then regenerates the challenge from that data, thereby ensuring the relationship between the issued challenge and the response. Figures 19 to 30 illustrate the processes executed by the processing unit 11 of server 1 and the processing unit 31 of client 3. Note that the order of the processes described in Figures 19 to 30 is merely an example, and the order may be changed as appropriate. In addition, multiple processes may be performed in parallel.
[0120] [Details of processing challenge issuance sessions] Figure 19 shows the details of the processing in a challenge issuance session. Figure 19 shows the processing of the processing unit 31 of client 3, which executes the system program (authentication function) CL201, and the processing unit 11 of server 1, which executes the authentication program SV401. In Figure 19, first, the processing unit 31 of client 3 establishes a session with server 1 and sends a request for challenge issuance and certificate data D101 via the network communication unit 35 (step S1).
[0121] Next, the processing unit 11 of server 1 performs the process of receiving certificate data D101 via the network communication unit 15 (step S2).
[0122] Next, the processing unit 11 verifies the signature D12 (step S3). Specifically, the processing unit 11 decrypts the signature D12 using the CA public key SV406. Using the decryption result, it determines whether the four encryption first derived keys D08, client ID_D10, and first specific parameter D11 contained in the certificate data D101 have not been tampered with. If they match, the verification result is determined to be positive. If the decryption result does not match, it is determined to be negative, and the challenge dataset D102 is not sent. The processing is then terminated by notifying client 3 of this fact (communication may be terminated without notification).
[0123] If the verification is positive, the processing unit 11 extracts the client ID_D10 from the certificate data D101 (step S4). Next, the processing unit 11 executes the challenge generation process (step S5).
[0124] Figure 20 is a flowchart detailing the challenge generation process (step S5). First, the processing unit 11 obtains the current time of server 1 as the challenge issuance time D15 (step S21).
[0125] Next, the processing unit 11 calculates the first MAC value (challenge data) D16 using the second server key D13 corresponding to the challenge version D14, with respect to the challenge version D14 read from the storage unit 12, the challenge issuance time D15 obtained in step S21, and the client ID_D10 obtained in step S4 (step S22).
[0126] Next, the processing unit 11 generates a challenge dataset D102 that includes the challenge version D14, the challenge issuance time D15, and the first MAC value (challenge data) D16 calculated in step S22 (step S23). This completes the challenge generation process.
[0127] Returning to Figure 19, once the challenge dataset D102 is generated, the processing unit 11 performs the process of sending the challenge dataset D102 to the client 3 via the network communication unit 15 (step S6).
[0128] Next, the processing unit 31 of client 3 receives the challenge dataset D102 via the network communication unit 35 (step S7). After that, the challenge issuance session is terminated (step S8).
[0129] Figure 21 shows the details of the processing in the verification session. First, the processing unit 31 of client 3, which has received the challenge dataset D102, executes the response generation process (step S9).
[0130] Figure 22 is a flowchart detailing the response generation process performed in client 3. In Figure 22, first, processing unit 31 performs the first derived key setting process (step S31).
[0131] Figure 23 is a flowchart showing a first example of the first derived key setting process described above. In Figure 23, the processing unit 31 reads the master key D01, the counter value D02, and the first KDF seed data D03 from the storage unit 32 (step S41).
[0132] Next, the processing unit 31 performs calculations for the first KDF based on the read master key D01, counter value D02, and first KDF seed data D03, and generates the first derived key D05 (step S42). This completes the first derived key setting process.
[0133] In addition, the first derived key D05 calculated in advance may be stored in the storage unit 32. In this configuration, as part of the first derived key setting process, the processing unit 31 may set the first derived key by reading the first derived key data stored in advance from the storage unit 32 (step S43), as shown in Figure 24. In other words, if the client 3 has already calculated the first KDF and stored the first derived key D05 as data, the calculation process using the first KDF may be omitted.
[0134] Returning to Figure 22, the processing unit 31 then executes the second derived key setting process (step S32). Figure 25 is a flowchart of the first example of the second derived key setting process. In Figure 25, the processing unit 31 reads the second KDF seed data D04 from the storage unit 32 (step S51). Next, the processing unit 31 performs calculations on the second KDF based on the first derived key D05 and the second KDF seed data D04 to generate the second derived key (client) D06 (step S52). This completes the second derived key setting process.
[0135] Alternatively, the second derived key (client) D06 calculated in advance may be stored in the storage unit 32. In this configuration, as shown in Figure 26, the processing unit 31 may set the second derived key by reading the data of the second derived key (client) D06 stored in advance from the storage unit 32 (step S53). In other words, if the client 3 has already stored the second derived key, which is data for which the second KDF calculation has been performed, the second KDF calculation process may be omitted. Also, in this example, the first derived key setting process itself may be omitted.
[0136] In this embodiment, the second derived key (client) set by the second derived key setting process is used as the response key (client) in the response generation process.
[0137] Returning to Figure 22, the processing unit 31 then executes the response data generation process (step S34). Figure 27 is a flowchart detailing the response data generation process. First, the processing unit 31 reads the first MAC value (challenge data) D16 from the challenge dataset D102 received in step S8 of Figure 19 (step S61).
[0138] Next, the processing unit 31 calculates the second MAC value (response data) D17 based on the first MAC value (challenge data) D16 and the response key (client) set as described above (the second derived key (client) set by the second derived key setting process) (step S62).
[0139] Next, the processing unit 31 generates a response dataset D103 (see Figure 8 above) which includes the challenge version D14, the challenge issuance time D15, and the second MAC value (response data) D17 calculated above, all of which are included in the challenge dataset D102 received in step S8 of Figure 21 (step S63). This completes the response dataset generation process.
[0140] In this example, the processes in steps S31 to S34 described above are executed in a series of steps as part of the response generation process shown in Figure 22. In other embodiments, the process of setting the response key (client) (steps S31 to S32) may be performed by pre-calculating the data and storing it in the storage unit 32, and then reading it in step S9. For example, the response key (client) data may be executed when client 3 is started and stored in the storage unit 32, and then read in step S9.
[0141] Returning to Figure 21, once the response generation process is complete, the processing unit 31 re-establishes a session with server 1 (which does not have to be the same server device). Then, the processing unit 31 performs the process of sending the verification request and the client transmission data D104 via the network communication unit 35 to server 1 (step S10). That is, the response dataset D103 generated in step S9, the certificate data D101 read from the storage unit 32, and the second specific parameter D19 are sent to server 1. The system program (authentication function) CL201 may have a function to specify the area where the certificate data D101 is stored, and thereby read the certificate data D101 from the specified area. The response generation and transmission program may also have a function to specify the area where the second specific parameter D19 is stored, and thereby read the second specific parameter D19 from the specified area. Furthermore, the system program (authentication function) CL201 may have a function to obtain (for example, download) certificate data D101 and / or second specific parameter D19 from a predetermined server or PC, and may store the obtained certificate data D101 and / or second specific parameter D19 in the designated area.
[0142] Next, the processing unit 11 of server 1 performs the process of receiving the response dataset D103, certificate data D101, and second specific parameter D19 via the network communication unit 15 (step S11).
[0143] Next, the processing unit 11 performs a verification process (step S12). Figures 28 and 29 are flowcharts detailing the verification process. In Figure 28, first, the processing unit 11 verifies the signature D12 of the received certificate data D101 (step S71). This process is the same as the process described above, so a detailed explanation is omitted.
[0144] If there are no problems with signature verification, the processing unit 11 then extracts the first specific parameter D11 from the certificate data D101 (step S72).
[0145] Next, the processing unit 11 refers to the second KDF seed data identification table SV405 based on the extracted first identification parameter D11 and the second identification parameter D19 received from client 3, and identifies the value of the second KDF seed data D04. The processing unit 11 also refers to the counter value identification table SV404 based on the first identification parameter D11 and the second identification parameter D19, and identifies the counter value D02 (step S73).
[0146] Next, the processing unit 11 retrieves the first derived encryption key D08 corresponding to the identified counter value D02 from the certificate data D101 received from client 3 (step S74).
[0147] Next, the processing unit 11 decrypts the extracted encryption first derived key D08 into the first derived key D05 using the first server key D07 corresponding to the identified counter value D02 (step S75).
[0148] Next, the processing unit 11 performs calculations on the second KDF based on the first derived key D05 and the value of the second KDF seed data D04 identified in step S73, and generates the second derived key (server) D206. This second derived key (server) D206 is used as the response key (server) (step S76). In other words, the response key (server) is set by generating the second derived key D206.
[0149] Next, the processing unit 11 calculates the first MAC value (at time of verification) D216 based on the challenge version D14 and challenge issuance time D15 included in the response dataset D103 received in step S11, the client ID_D10 included in the certificate data D101 received in step S11, and the second server key D13 corresponding to the challenge version D14 (step S77).
[0150] Next, the processing unit 11 calculates the second MAC value (during verification) D217 based on the first MAC value (during verification) D216 and the response key (server) set in step S76 (second derived key (server) D206 generated in step S76) (step S78). The calculation algorithm in this process is the same as the algorithm for calculating the second MAC value in client 3.
[0151] Next, the processing unit 11 verifies whether the second MAC value (response data) D17 received from client 3 matches the second MAC value (verification time) D217 calculated by server 1 (step S79).
[0152] Next, the processing unit 11 determines whether the results of the above verification match (step S80). If they do not match (NO in step S80), the processing unit 11 executes a process to return an error to client 3 (step S83). After that, the verification process ends. On the other hand, if they match (YES in step S80), the response data D17 received from client 3 is considered to be valid. Note that since the MAC value is calculated using the client ID, if the second MAC value (response data) and the second MAC value (verification time) match, it can be determined that the client to which the challenge data was issued in the challenge issuance session and the client to which the response data D17 etc. was sent in the verification session are the same client 3 (they match). Note that it is not necessary to compare the client ID itself in the challenge issuance session and the client ID in the verification session.
[0153] If the answer in step S80 is YES, the processing unit 11 performs verification from a temporal perspective. Specifically, the processing unit 11 determines whether the current time of server 1 has elapsed for a certain amount of time since the challenge issuance time D15 included in the received response dataset D103. If the result of this determination is that the time has elapsed (YES in step S81), the process proceeds to step S83, and the process of returning an error to client 3 is executed. On the other hand, if the time has not elapsed (NO in step S81), the processing unit 11 determines that the legitimacy of client 3 has been confirmed and the verification has been successful, and generates a predetermined service token. After that, the response verification process ends.
[0154] In the example above, we showed a process where the second MAC value was verified first, followed by verification from a temporal perspective. However, the order of these verifications can be reversed.
[0155] Returning to Figure 21, once the response verification process is complete, the processing unit 11 then performs the process of sending a predetermined service token to the client via the network communication unit 15 if the verification was successful (step S13).
[0156] Next, the processing unit 31 of client 3 performs the process of receiving a service token via the network communication unit 35 (step S14). After that, the response session is terminated (step S15).
[0157] Next, the processing unit 31 passes the service token to the application, which in this embodiment is the online game program (step S16). As a result, the online game program uses this service token to request a service from a predetermined server, and the server provides the online game service.
[0158] Furthermore, any communication method may be used for the communication related to the challenge issuance session and the verification session. For example, it may be conducted using encrypted communication such as SSL, or it may be conducted using unencrypted communication.
[0159] Next, using Figure 30, an example of online game processing in client 3 that utilizes the authentication process described above will be explained. In Figure 30, first, the processing unit 31 receives a request to start an online game (step S101). For example, the processing unit 31 receives an online game startup operation from the user.
[0160] Next, the processing unit 31 starts the system software (authentication function) (step S102). This performs the authentication process as described above.
[0161] Next, the processing unit 31 determines whether or not it has received a service token from the system software (step S103). If the result of this determination is that it has not been received (NO in step S103), it waits until it is received.
[0162] On the other hand, if a service token is received (YES in step S103), the processing unit 31 then uses the received service token to request a service from the online game server (step S104).
[0163] Subsequently, the processing unit 31 executes the online game while communicating with the online game server and other clients 3 as needed (step S105). Next, the processing unit 31 determines whether the conditions for terminating the online game have been met (step S106). If the conditions have not been met (NO in step S106), the execution of the online game continues; if the conditions have been met (YES in step S106), the online game process terminates.
[0164] This concludes the detailed explanation of each process according to this embodiment.
[0165] [Differentiation] In other embodiments, the configuration may be such that a counter value is not used as the seed data for the first KDF. That is, the configuration may be such that the first KDF is calculated using the master key D01 and the first KDF seed data D03 to generate the first derived key D05. In this case, the certificate will contain one encrypted first derived key D05. It goes without saying that the counter value is not limited to values between 0 and 3. Furthermore, a predetermined variable value may be used instead of the counter, and it does not have to be changed by an incrementing method.
[0166] Furthermore, the above embodiment shows an example in which KDF calculation is performed in two stages, a first KDF calculation and a second KDF calculation, in the response key setting process. In other embodiments, the KDF calculation may be performed in one stage, or the number of KDF calculation stages may be increased further, and the result of a further KDF calculation (derived key) performed after the second KDF calculation may be set as the response key. As for the "further KDF calculation," for example, a KDF calculation may be performed using data on the volatile memory or non-volatile memory of client 3 or data processed therefrom as seed data. This data on memory may be different for each version of the system software.
[0167] Furthermore, in the above embodiment, the response key setting process in Server 1 identified and used the second KDF seed data D04 based on the first specific parameter D11 and the second specific parameter D19. In other embodiments, however, the response key may be set without using these parameters. For example, the second KDF seed data may be identified using a single parameter, or the second KDF seed data itself may be sent from Client 3 to Server 1. Alternatively, if the second KDF seed data is common to all clients, the second KDF seed data can be stored in Server 1.
[0168] Furthermore, in the above embodiment, the calculation of the first KDF is not performed on server 1, but it is also possible to have server 1 identify the master key D01 and the first KDF seed data and perform the calculation of the first KDF on server 1. In that case, the encrypted first derived key D08 in the certificate data D101 becomes unnecessary. In this case, the data obtained by encrypting the master key D01 with the first server key may be included in the certificate data D101. Then, server 1 should decrypt the master key D01 and perform the first KDF processing described above to obtain the first derived key D05.
[0169] Furthermore, regarding the generation of challenge data, the above example shows how to calculate the first MAC value by performing a MAC operation using the second server key. In other embodiments, a configuration that performs a signature instead of a MAC operation may be used. For example, an RSA signature may be used.
[0170] Furthermore, regarding the generation of response data using the above response key, instead of calculating the second MAC value, the response data may be generated using a blocking encryption operation. The blocking encryption operation may be, for example, AES.
[0171] In another embodiment, when client 3 sends response data D17, it may be configured to send a parameter for identifying the current value of counter value D02 along with the response data D17. Server 1 may then use this transmitted parameter to identify counter value D02 and set the response key using the process described above.
[0172] Furthermore, although the challenge issuance session and the verification session were treated as separate communication sessions in the above embodiment, challenge issuance and verification may be performed in a single session.
[0173] Furthermore, although the encrypted derived key was included in the client certificate in the above embodiment, the encrypted derived key may also be sent to the server separately from the client certificate when sending response data. This is similar to the first parameter for identifying the second KDF seed data. The second parameter for identifying the second KDF seed data may also be included in the certificate, and the certificate, etc., may be separately signed and sent. [Industrial applicability]
[0174] The information processing system described herein can provide a novel authentication method for authenticating a client's device. [Explanation of Symbols]
[0175] 1 server 3 clients 4 PC 11 Processing Section 12 Storage section 13 Non-volatile memory unit 14. Volatile memory 15 Network Communications Department 16 Operating devices 17 Image Output Unit 31 Processing Unit 32 Storage section 33 Non-volatile memory unit 34. Volatile memory unit 35 Network Communications Department 36 Operating Devices 37 Image output section 41 Processing Unit 42 Storage section 43 Non-volatile memory unit 44. Volatile memory unit 45 Network Communications Department 46 Operating Devices 47 Image output section
Claims
1. An information processing system comprising a client and a server connected to a network, wherein authentication processing of the client is performed between the client and the server using a challenge-and-response method, The server includes means for issuing challenge data and transmitting it to the client. The aforementioned client, A memory that stores encrypted data set data containing multiple encrypted data encrypted with a predetermined server key, and parameter data A, A means for receiving the aforementioned challenge data, A means for generating response data from the received challenge data using the client-side response key, The server includes means for transmitting the generated response data, the encrypted group data, and the parameter data A. The aforementioned server further, A means for receiving the response data, the encrypted data group, and the parameter data A, A means for selecting the encryption data to be used from the received encryption data group based on the received parameter data A, A means for decrypting the selected encrypted data with a server key and setting a server-side response key based on the decrypted data, A means for verifying the received response data based on the challenge data and the configured server-side response key, The system includes means for notifying the client of the results of the verification, The aforementioned client further stated, An information processing system comprising means for receiving the results of the aforementioned verification.
2. The encrypted data and the parameter data A are data that are signed together. The server further comprises means for verifying the signature, The selection is configured to select the encrypted data to be used from the received encrypted data group based on the parameter data A that has been verified. The information processing system according to claim 1, wherein the setting of the response key on the server side is configured to be performed based on the encrypted data on which the signature has been verified.
3. The aforementioned encrypted data is signed data, and the aforementioned parameter data A is unsigned data. The aforementioned server, The means for verifying the aforementioned signature is further provided. The information processing system according to claim 1, wherein the setting of the response key on the server side is configured to be performed based on the encrypted data on which the signature has been verified.
4. The information processing system according to claim 1, wherein each encrypted data included in the encrypted data group is a plurality of derived key data generated from the same master key.
5. The information processing system according to claim 1, wherein each encrypted data included in the encrypted data set is derived key data generated such that each encrypted data is different, in addition to the master key, by varying parameters (hereinafter referred to as varying parameters).
6. The server further includes a memory for storing data indicating the correspondence between the parameter data A and the encrypted data (hereinafter referred to as correspondence data), The information processing system according to claim 1, wherein the selection is configured to select the encrypted data based on the parameter data A by referring to the correspondence relationship data.
7. Each encrypted data included in the aforementioned encrypted data set is data encrypted with a different server key. The server further includes means for performing server key identification processing based on the received parameter data A, The information processing system according to any one of claims 1 to 6, wherein the decryption is configured to be performed based on the identified server key.
8. Each encrypted data included in the aforementioned encrypted data group is data generated by pre-executing at least some of the calculations for setting the server-side response key. The information processing system according to any one of claims 1 to 6, wherein the setting of the server-side response key is a process of setting the response key by performing a predetermined calculation based on the decoded data and the parameter data A.
9. The memory further stores at least the encryption group data, the parameter data A, and the unsigned parameter data B. The client further comprises means for transmitting the parameter data B to the server, The reception at the aforementioned server is a process of further receiving the parameter data B, The server further comprises means for verifying the signature, The information processing system according to claim 2, wherein the selection is configured to select the encrypted data to be used from the received encrypted data group data based on the parameter data A and parameter data B whose signatures have been verified.
10. Each encrypted data included in the aforementioned encrypted data set is data encrypted with a different server key. The server further includes means for identifying the server key based on the parameter data A and parameter data B, which have been verified for signature verification. The information processing system according to claim 9, wherein the decryption is configured to be performed based on the identified server key.
11. The server further includes a memory for storing data (hereinafter referred to as correspondence data) that shows the correspondence between the parameter data A and the parameter data B and the encrypted data. The information processing system according to claim 9, wherein the selection is configured to select the encrypted data based on the parameter data A and the parameter data B whose signatures have been verified, by referring to the correspondence relationship data.
12. Each encrypted data included in the aforementioned encrypted data group is data generated by pre-executing at least some of the calculations for setting the server-side response key. The information processing system according to any one of claims 9 to 11, wherein the setting of the server-side response key is a process of setting the response key by further performing a predetermined calculation based on the decoded data, parameter data A, and parameter data B.
13. The client computer performs authentication with the server using a challenge-response method. A means of receiving challenge data from the server, A means for generating response data from the received challenge data using the client-side response key, Means for reading from the client's memory an encrypted data set containing multiple encrypted data used for setting a server-side response key encrypted with a predetermined server key, and parameter data A used for selecting the encrypted data to be used from the encrypted data set, The server is provided with means for transmitting the generated response data, the encrypted group data, and the parameter data A. A program to function as a means for receiving the results of the verification of response data from the server, which is performed using encrypted data selected from the encrypted data group data based on the parameter data A.
14. The program according to claim 13, wherein the encrypted group data and the parameter data A are data that are signed together.
15. The program according to claim 13, wherein the encrypted data is signed data, and the parameter data A is unsigned data.
16. The program according to claim 13, wherein each encrypted data included in the encrypted data group is a plurality of derived key data generated from the same master key.
17. The program according to claim 13, wherein each encrypted data included in the encrypted data set is derived key data generated such that each encrypted data is different, in addition to the master key, by varying parameters (hereinafter referred to as varying parameters).
18. The program according to claim 13, wherein each encrypted data included in the encrypted data group is data encrypted with a different server key, and the parameter data A is data used to identify the server key.
19. The program according to any one of claims 13 to 18, wherein each encrypted data included in the encrypted data group is data generated by pre-executing at least a portion of the calculations for setting the server-side response key.
20. The aforementioned computer further, The program according to claim 13, for causing the server to function as a means for transmitting unsigned parameter data B used for the selection.
21. The program according to claim 20, wherein each encrypted data included in the encrypted data group is data encrypted with a different server key, and parameter data A and parameter data B are data used to identify the server key.
22. The program according to claim 20 or 21, wherein each encrypted data included in the encrypted data group is data generated by pre-executing at least a portion of the calculations for setting the server-side response key.
23. A client and a server connected to a network, wherein the client and the server are authenticated using a challenge-and-response method, The server issues challenge data and sends it to the client. The aforementioned client, Upon receiving the aforementioned challenge data, Using the client-side response key, response data is generated from the received challenge data. The server is sent the generated response data, the encrypted data set including multiple encrypted data encrypted with a predetermined server key, and the parameter data A. The aforementioned server further, The response data, the encrypted data set, and the parameter data A are received. Based on the received parameter data A, select the encryption data to be used from the received encryption group data. The selected encrypted data is decrypted using the server key, and the server-side response key is set based on the decrypted data. Based on the challenge data and the configured server-side response key, the received response data is verified, and The results of the verification will be notified to the aforementioned client. The aforementioned client further stated, An authentication method for receiving the results of the aforementioned verification.
Citation Information
Patent Citations
Authentication system, authentication program for server, and authentication program for client
JP2005301577A
Authentication method, authentication device, authentication target device, and image forming apparatus
JP2019075774A