Information processing system, one or more non-transitory computer-readable storage media having program stored therein, and authentication method
A server issues challenge data and transmits the challenge data to a client. The client stores encrypted group data including a plurality of encrypted data encrypted with a server key, and parameter data A, in a memory, receives the challenge data, generates response data using a response key on the client side, and transmits the response data, the encrypted group data, and the parameter data A to the server. The server selects encrypted data to be used from the received encrypted group data, based on the received parameter data A, sets a response key on the server side, based on the selected encrypted data and data decrypted with the server key, verifies the received response data, based on the challenge data and the response key on the server side, and notifies a result of the verification to the client. The client receives the notification.
1 . An information processing system comprising a client and a server connected to a network, the information processing system to perform an authentication process on the client according to a challenge & response method, between the client and the server,
the server comprising
one or more processors, and
one or more memories storing instructions that, when executed, cause the one or more processors to perform a first set of operations comprising issuing challenge data and transmitting the challenge data to the client,
the client comprising
one or more processors, and
one or more memories storing parameter data to which a signature is attached, unsigned parameter data, and a plurality of encrypted data encrypted with a server key and instructions that, when executed, cause the one or more processors to perform a second set of operations comprising
receiving the challenge data,
generating response data from the received challenge data, using a response key on the client side, and
transmitting the generated response data, the plurality of encrypted data, the parameter data, and the unsigned parameter data to the server,
the first set of operations further comprising
receiving the response data, the plurality of encrypted data, the parameter data, and the unsigned parameter data,
selecting encrypted data to be used from the received plurality of encrypted data, based on at least the received parameter data and the received unsigned parameter data,
decrypting the selected encrypted data with the server key,
setting a response key on the server side, based on at least the decrypted data,
verifying the received response data, based on at least the challenge data and the set response key on the server side, and
notifying the client of a result of the verification, and
the second set of operations further comprising receiving the result of the verification.
2 . The information processing system according to claim 1 , wherein
the plurality of encrypted data and the parameter data are signed together,
the first set of operations further comprises verifying the signature,
the selecting is performed based on at least the parameter data on which the verification of the signature has been performed, and
the setting of the response key on the server side is performed based on at least the encrypted data on which the signature has been verified.
3 . The information processing system according to claim 1 , wherein
the plurality of encrypted data is signed,
the first set of operations further comprises verifying the signature, and
the setting of the response key on the server side is performed based on at least the encrypted data on which the signature has been verified.
4 . The information processing system according to claim 1 , wherein the plurality of encrypted data comprise a plurality of derived key data generated from the same master key.
5 . The information processing system according to claim 4 , wherein the plurality of encrypted data comprise a plurality of derived key data generated such that each derived key data is different, by a variable parameter.
6 . The information processing system according to claim 1 , wherein
correspondence relationship data indicating a correspondence relationship at least between the parameter data and the encrypted data in the plurality of encrypted data is stored in the one or more memories of the server, and
the selecting is performed based on at least the parameter data, by referring to the correspondence relationship data.
7 . The information processing system according to claim 1 , wherein
each of the encrypted data included in the plurality of encrypted data is encrypted with a different respective server key,
the first set of operations further comprises specifying a server key, based on at least the received parameter data, and
the decrypting performed based on at least the specified server key.
8 . The information processing system according to claim 1 , wherein
each of the encrypted data included in the plurality of encrypted data is generated by a first calculation for setting the response key on the server side, and
the setting of the response key on the server side further comprises performing a second calculation to set the response key on the server side, the second calculation being based on at least the decrypted data and the parameter data and different from the first calculation.
9 . The information processing system according to claim 1 , wherein
each of the plurality of encrypted data comprises is encrypted with a different respective server key,
the first set of operations further comprises specifying a server key, based on at least the signed parameter data and the unsigned parameter data, and
the decrypting is performed based on at least the specified server key.
10 . The information processing system according to claim 1 , wherein
correspondence relationship data indicating a correspondence relationship between at least the singed parameter data, the unsigned parameter data, and the encrypted data is stored in the one or more memories of the server, and
the selecting is performed, based on at least the signed parameter data and the unsigned parameter data on which the signature has been verified, by referring to the correspondence relationship data.
11 . The information processing system according to claim 1 , wherein
each of the plurality encrypted data is generated by a first calculation for setting the response key on the server side, and
the setting of the response key on the server side further comprises performing a second calculation, different from the first calculation, based on at least the decrypted data, the signed parameter data, and the unsigned parameter data.
12 . One or more non-transitory computer-readable storage media storing instructions that, when executed, cause a client computer in a server and client system to perform operations comprising:
receiving challenge data from the server;
generating response data from the received challenge data, using a response key on the client side;
reading, from a memory of the client, parameter data to which a signature is attached, unsigned parameter data, and a plurality of encrypted data encrypted with a server key and used for setting a response key on the server side;
transmitting the generated response data, the plurality of encrypted data, the parameter data, and the unsigned parameter data to the server for selecting one of the plurality of encrypted data; and
receiving, from the server, a result of verification of the generated response data transmitted from the client, the verification being based on at least the challenge data and a response key set on the server side, the response key being set on the server side based on at least decrypted data, the decrypted data being decrypted with the server key from encrypted data selected from the transmitted plurality of encrypted data based on at least the transmitted parameter data and the transmitted unsigned parameter data.
13 . The one or more non-transitory computer-readable storage media according to claim 12 , wherein the plurality of encrypted data and the parameter data are signed together.
14 . The one or more non-transitory computer-readable storage media according to claim 12 , wherein the plurality of encrypted group data is signed.
15 . The one or more non-transitory computer-readable storage media according to claim 12 , wherein each of the plurality of encrypted data comprises derived key data generated from the same master key.
16 . The one or more non-transitory computer-readable storage media according to claim 15 , wherein each of the plurality of encrypted data comprises derived key data generated such that each derived key data is different, by a variable parameter.
17 . The one or more non-transitory computer-readable storage media according to claim 12 , wherein
each of the plurality of encrypted data is encrypted with a different respective server key, and
the parameter data is used for specifying the server key.
18 . The one or more non-transitory computer-readable storage media according to claim 12 , wherein each of the plurality of encrypted data is generated by a calculation for setting the response key on the server side.
19 . The one or more non-transitory computer-readable storage media according to claim 12 , wherein
each of the plurality of encrypted data is encrypted with a different respective server key, and
the signed parameter data and the unsigned parameter data are used for specifying the server key.
20 . The one or more non-transitory computer-readable storage media according to claim 19 , wherein each of the plurality of encrypted data is generated by a calculation for setting the response key on the server side.
21 . A computer-implemented method for, between a client and a server connected to a network, performing authentication on the client according to a challenge & response method, the computer-implemented method comprising:
performing, at the server, operations comprising issuing challenge data and transmitting the challenge data to the client,
performing, at the client, operations comprising
receiving the challenge data,
generating response data from the received challenge data, using a response key on the client side, and
transmitting the generated response data, a plurality of encrypted data encrypted with a server key, parameter data to which a signature is attached, and unsigned parameter data to the server,
further performing, at the server, operations comprising
receiving the response data, the plurality of encrypted data, the parameter data, and the unsigned parameter data,
selecting the encrypted data to be used from the received plurality of encrypted data, based on at least the received parameter data and the received unsigned parameter data,
decrypting the selected encrypted data with the server key,
setting a response key on the server side, based on at least the decrypted data,
verifying the received response data, based on at least the challenge data and the set response key on the server side, and
notifying the client of a result of the verification, and
further performing, at the client, operations comprising receiving the result of the verification.