Information terminal, information processing system, and information processing method
The information processing system addresses the challenge of managing complex blockchain private keys by using passkey authentication to generate keys based on biometric authentication and identification information, simplifying user management and enhancing security.
Patent Information
- Application Number
- PCT/JP2024/034783
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-06-25
- Filing Date
- 2024-09-27
- Publication Date
- 2025-08-14
AI Technical Summary
The management of blockchain private keys is burdensome for users, hindering the adoption of blockchain services due to their complexity and difficulty in memorization.
An information processing system utilizing a passkey authentication method, such as FIDO2, that generates a blockchain private key based on a passkey private key, a qualified person ID, and a seed phrase random number, managed by an authenticator and authentication server, reducing the need for users to handle the private key directly.
This system simplifies the management of blockchain private keys by allowing users to authenticate through biometrics, generating keys based on easier-to-remember identification information like email addresses, enhancing security and reducing the burden on users while improving security strength through encryption and distributed key management.
Smart Images

Figure JP2024034783_14082025_PF_FP_ABST
Abstract
Description
Information terminal, information processing system, and information processing method CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This international application claims priority based on Japanese Patent Application No. 2024-015833 filed with the Japan Patent Office on February 5, 2024, and Japanese Patent Application No. 2024-102397 filed with the Japan Patent Office on June 25, 2024, and the entire contents of Japanese Patent Application No. 2024-015833 and Japanese Patent Application No. 2024-102397 are incorporated by reference into this international application.
[0002] The present disclosure relates to an information processing system.
[0003] Various services using blockchain (hereinafter referred to as "blockchain services") are known. For example, Patent Literature 1 discloses a blockchain service that can store input data, including image data, on a blockchain and has excellent credibility of the stored input data.
[0004] Japanese Patent Application Laid-Open No. 2023-101763
[0005] Users of blockchain services log in to their accounts to use the services. However, the private key used to log in to a blockchain service account (hereinafter referred to as a blockchain private key) is a long string of characters that is difficult for users to memorize. This places a heavy burden on users to manage blockchain private keys, which is one of the factors hindering the widespread adoption of blockchain services.
[0006] One aspect of the present disclosure preferably reduces the management burden of blockchain private keys.
[0007] One aspect of the present disclosure is an information terminal comprising a control unit, an authenticator, and a communication unit. The communication unit is configured to communicate with an authentication server that is a device separate from the information terminal. The authenticator is configured to perform identity verification of a user and further to manage a passkey private key and a passkey public key corresponding to the passkey private key. The control unit is configured to acquire the passkey public key from the authenticator on condition that identity verification by the authenticator is successful, and transmit the passkey public key to the authentication server to associate the passkey public key with a predetermined character string and register it in the authentication server. After the predetermined character string is registered in the authentication server, the control unit is configured to acquire a digital signature generated based on the passkey private key from the authenticator and transmit it to the authentication server on condition that identity verification by the authenticator is successful, and, if the authentication server confirms that the digital signature is authentic based on the passkey public key, acquire the predetermined character string registered in the authentication server from the authentication server, and generate a blockchain private key based on the predetermined character string and the qualified person ID acquired from the authenticator. The qualified person ID is an ID generated in the authentication device based on the passkey private key, and is an unchanging value for the passkey private key.
[0008] With this configuration, the information required to generate a blockchain private key can be obtained by verifying the identity of the user, thereby reducing the burden of managing the blockchain private key.
[0009] In one aspect of the present disclosure, the control unit may transmit a predetermined request signal to the authentication server. The control unit may be configured to obtain a challenge with an electronic signature from the authenticator and transmit the challenge to the authentication server on condition that the communication unit receives a response signal including a challenge transmitted by the authentication server in response to the predetermined request signal.
[0010] Such a configuration improves security strength.
[0011] In one aspect of the present disclosure, the control unit may transmit a registration request signal including identification information of the user to the authentication server. The control unit may cause the authentication device to perform identity verification of the user on condition that the communication unit receives a registration response signal transmitted by the authentication server in response to the registration request signal. If the identity verification is successful, the control unit may transmit a passkey public key obtained from the authenticator to the authentication server so that the authentication server can register a predetermined character string in association with the identification information and the passkey public key.
[0012] The control unit may be configured to transmit a request signal including the identification information as the predetermined request signal to the authentication server in order to obtain the predetermined character string from the authentication server.
[0013] According to this configuration, the predetermined character string registered in the authentication server can be safely acquired by the request signal including the identification information, thereby improving security.
[0014] In one aspect of the present disclosure, the registration response signal may include a registration challenge as a challenge transmitted in response to the registration request signal. The control unit may be configured, when identity verification by the authenticator, which is performed conditioned on reception of the registration response signal, to be successful, to obtain from the authenticator the registration challenge to which a digital signature based on the passkey private key has been attached, and further to transmit the registration challenge to which the digital signature has been attached to the authentication server.
[0015] In one aspect of the present disclosure, the predetermined string may be a random number based on the identification information.
[0016] Such a configuration improves security strength.
[0017] In one aspect of the present disclosure, the identification information may include an email address.
[0018] This configuration reduces the burden on users to manage their blockchain private keys.
[0019] In one aspect of the present disclosure, the authentication server may include a server-side communication unit and a server-side control unit. The server-side communication unit may be configured to communicate with the information terminal. The server-side control unit may be configured to associate the passkey public key received by the server-side communication unit from the information terminal with a predetermined character string and register the associated passkey public key in the storage device. The server-side control unit may be further configured to verify the identity of the user using the passkey public key, and transmit the predetermined character string associated with the passkey public key to the information terminal of the user whose identity has been verified. In one aspect of the present disclosure, an information processing system may be provided that includes the above-mentioned information terminal and the authentication server.
[0020] One aspect of the present disclosure may be a computer program for causing a computer to implement the functions of the control unit in the information terminal described above. The computer program may be recorded on a computer-readable recording medium.
[0021] One aspect of the present disclosure is an information processing method executed by a computer installed in an information terminal, the method including: causing an authenticator installed in the information terminal to perform user identity verification; acquiring a passkey public key corresponding to the passkey private key from the authenticator, if the authenticator successfully verifies the user's identity; transmitting the passkey public key to an authentication server, which is a device separate from the information terminal, to associate the passkey public key with a predetermined character string and register it in the authentication server; acquiring an electronic signature generated based on the passkey private key from the authenticator and transmitting the electronic signature to the authentication server, if the authentication server successfully verifies the electronic signature based on the passkey public key; and generating a blockchain private key based on the predetermined character string and a qualified person ID acquired from the authenticator. The qualified person ID is an ID generated in the authenticator based on the passkey private key and is a value that is immutable relative to the passkey private key. This information processing method achieves the same effects as the information terminal described above.
[0022] According to one aspect of the present disclosure, there may be provided a computer program including instructions that, when executed by a computer, cause the computer to at least partially execute the information processing method described above. According to another aspect of the present disclosure, there may be provided a computer-readable recording medium storing the computer program. The recording medium may be a non-transitory tangible computer-readable recording medium.
[0023] According to one aspect of the present disclosure, there may be provided a computer-readable storage medium having stored thereon a computer program or instructions that, when executed by a processor, implements the steps of the above-described information processing method. According to one aspect of the present disclosure, there may be provided a computer program product including a computer program or instructions that, when executed by a processor, implements the steps of the above-described information processing method.
[0024] 1 is a block diagram showing the configuration of an information processing system; FIG. 2 is a sequence diagram of registration processing in the information processing system; FIG. 3 is a flowchart of terminal-side registration processing; FIG. 4 is a flowchart of server-side registration processing; FIG. 5 is a sequence diagram of login processing in the information processing system; FIG. 6 is a flowchart of terminal-side login processing; FIG. 7 is a flowchart of server-side login processing; FIG. 8 is a sequence diagram of registration processing in an information processing system in a second embodiment; FIG. 9 is a flowchart of terminal-side registration processing in the second embodiment; FIG. 10 is a flowchart of server-side registration processing in the second embodiment; and FIG. 11 is a sequence diagram of login processing in an information processing system of another embodiment.
[0025] 1...information processing system, 10...information terminal, 11...communication unit, 12...processor, 15...authentication device, 20...authentication server
[0026] Hereinafter, exemplary embodiments of the present disclosure will be described with reference to the drawings.
[0027] [1. First Embodiment] [1-1. Configuration] An information processing system 1 shown in FIG. 1 is a system for generating a blockchain private key required for logging in to an account of a predetermined blockchain service.
[0028] The information processing system 1 generates a blockchain private key using a passkey authentication method. The passkey authentication method is a passwordless authentication method that uses public key cryptography and fast and easy authentication technologies such as biometric authentication, PIN codes, and security keys. In this embodiment, the passkey authentication method is based on an authentication standard established by the FIDO Alliance called FIDO2 (Fast IDentity Online 2). However, the passkey authentication method is not limited to FIDO2 and may adopt other authentication standards. Hereinafter, the private key used in passkey authentication in the information processing system 1 is referred to as a passkey private key, and the public key corresponding to the passkey private key is referred to as a passkey public key.
[0029] The information processing system 1 includes an information terminal 10 and an authentication server 20. The information terminal 10 and the authentication server 20 are configured to be able to communicate with each other. Examples of the information terminal 10 include a smartphone, a tablet terminal, and a personal computer. The authentication server 20 corresponds to a server that performs authentication under the FIDO2 standard. The authentication server 20 may be configured to operate on a cloud network. The authentication server 20 is a device separate from the information terminal 10.
[0030] The information terminal 10 includes a communication unit 11 , a processor 12 , a memory 13 , a storage 14 , an authentication unit 15 , an input unit 16 , and an output unit 17 .
[0031] The communication unit 11 is configured to be able to communicate with an external system via a wide area network such as the Internet. The information terminal 10 is configured to be able to communicate with an authentication server 20 via the communication unit 11.
[0032] The processor 12 is configured to execute processes according to computer programs recorded in the storage 14 .
[0033] The memory 13 is used as a work area when the processor 12 executes processing. An example of the memory 13 is a RAM (Random Access Memory).
[0034] The storage 14 stores computer programs and data used when executing processes according to the computer programs. Examples of the storage 14 include a hard disk drive (HDD) or a solid state drive (SSD).
[0035] The authenticator 15 functions as an authenticator in accordance with the FIDO2 standard. The authenticator 15 may be built into the information terminal 10 or may be externally attached to the information terminal 10. An example of an external authenticator 15 is a USB key. The authenticator 15 is configured to perform identity verification of a user. In addition, the authenticator 15 is configured to manage a passkey private key and a passkey public key in accordance with the FIDO2 standard and to perform processes related to passkey authentication.
[0036] Specifically, the authenticator 15 is configured to verify the identity of the user when a predetermined condition is met, such as receiving various requests from the processor 12.
[0037] The authentication device 15 performs biometric authentication to verify the identity of the user. Examples of biometric authentication include fingerprint authentication, face authentication, iris authentication, voiceprint authentication, and vein authentication.
[0038] The authenticator 15 is configured to be able to generate a passkey private key and credentials generated based on the passkey private key if the result of identity verification is successful. The credentials include various information used for passkey authentication.
[0039] The credential includes a passkey public key corresponding to the passkey private key and a qualified person ID, which is an invariant value for the passkey private key. The qualified person ID may have different values for different passkey private keys. The qualified person ID may have the same value for the same passkey private key. The qualified person ID may be identification information of the qualified person corresponding to the passkey private key. Once generated, the qualified person ID is stored in the authenticator 15.
[0040] The authenticator 15 has a secure area where external access is restricted. The secure area is, for example, a Trusted Execution Environment (TEE) or a Secure Element (SE). A passkey private key, a qualified person ID, etc. are stored in the secure area of the authenticator 15. The passkey private key may be synchronized with a cloud server in an encrypted state.
[0041] The authentication device 15 is configured to be able to attach a digital signature based on a passkey private key to a challenge, which will be described later, if the result of identity verification is successful.
[0042] The input unit 16 is an interface for inputting operation signals from a user who operates the information terminal 10 to the processor 12 .
[0043] The output unit 17 has a display for displaying various information to the user.
[0044] The authentication server 20 functions as an authentication server based on the FIDO2 standard. That is, the authentication server 20 is configured to verify, using the passkey public key, whether or not a digital signature generated based on a passkey private key is authentic. The authentication server 20 includes a server-side communication unit 21, a server-side processor 22, a server-side memory 23, and a server-side storage 24.
[0045] The server-side communication unit 21 is configured to be able to communicate with external systems via a wide area network such as the Internet. The authentication server 20 is configured to be able to communicate with the information terminal 10 via the server-side communication unit 21.
[0046] The server-side processor 22 is configured to execute processing in accordance with a computer program recorded in the server-side storage 24 .
[0047] The server-side memory 23 is used as a work area when the server-side processor 22 executes processing. An example of the server-side memory 23 is a RAM (Random Access Memory).
[0048] The server-side storage 24 stores computer programs and data used when executing processes according to the computer programs. Examples of the server-side storage 24 include a hard disk drive (HDD) or a solid state drive (SSD).
[0049] [1-2. Processing] The information processing system 1 executes the registration processing shown in FIG. 2 and the login processing shown in FIG. 5 through mutual communication between the information terminal 10 and the authentication server 20.
[0050] The registration process includes a process of registering the passkey public key generated by the information terminal 10 and a seed phrase random number, which will be described later, in the authentication server 20 together with identification information input by the user.
[0051] The login process includes a process in which the information terminal 10 acquires a seed phrase random number registered in the authentication server 20. The information terminal 10 generates a blockchain private key in the registration process and the login process.
[0052] The following describes the processes executed by the information terminal 10 and the authentication server 20 in the registration process and the login process. For details of the registration process shown in Fig. 2 and the login process shown in Fig. 5, please refer to the processes shown in Figs. 3, 4, 6, and 7 and the following description. The step numbers written in parentheses in Figs. 2 and 5 indicate the processes corresponding to the step numbers written in Figs. 3, 4, 6, and 7.
[0053] [1-2-1. Terminal-Side Registration Processing] The processing executed by the processor 12 of the information terminal 10 in the registration processing of FIG. 2 (hereinafter referred to as terminal-side registration processing) will be described with reference to the flowchart of FIG.
[0054] When a registration screen for accepting input of an email address is displayed on the output unit 17 and an email address is input by the user via the input unit 16, the processor 12 starts the terminal-side registration process shown in Figure 3.
[0055] First, in S100, the processor 12 sends a registration request to the authentication server 20. The registration request includes the user's identification information, which includes an email address.
[0056] Next, in S102, the processor 12 receives a registration response including a challenge to the registration request from the authentication server 20. The challenge is a random number generated by the authentication server 20 and used in a challenge-response authentication method. A different value is generated each time the challenge is generated. The registration response further includes a common key generated by the authentication server 20. The common key is a character string generated randomly to be cryptographically secure. The processor 12 stores the challenge and the common key in the memory 13.
[0057] Next, in S104, the processor 12 instructs the authenticator 15 to generate a registration credential as a credential and to attach a digital signature to the challenge. Hereinafter, a challenge attached with a digital signature will be referred to as a signed challenge.
[0058] Upon receiving the instruction, the authenticator 15 performs identity verification for the user (S10 in FIG. 2). If identity verification is successful, the authenticator 15 generates registration credentials and attaches a digital signature to the challenge stored in the memory 13.
[0059] Next, in S106, the processor 12 obtains the result of the identity verification from the authentication device 15 and determines whether the identity verification has been successful.
[0060] If the processor 12 determines in S106 that the identity verification has not been successful (S106: NO), the processor 12 ends the terminal-side registration process of FIG.
[0061] On the other hand, if the processor 12 determines in S106 that the identity verification has been successful (S106: YES), the processor 12 proceeds to S108 and acquires the registration credentials and the signed challenge from the authenticator 15. The registration credentials include a passkey public key and a qualified person ID.
[0062] Next, in S112, the processor 12 generates a seed phrase random number based on the email address entered by the user. The seed phrase random number is a random number that generates a different value each time even based on the same email address.
[0063] Next, in S114, the processor 12 encrypts the registration credentials, the signed challenge, and the seed phrase random number using the common key stored in the memory 13 in S102. Thereafter, the processor 12 discards the common key from the memory 13.
[0064] Next, in S116, the processor 12 transmits the registration credentials encrypted with the common key, the signed challenge, and the seed phrase random number to the authentication server 20. Thereafter, the processor 12 discards the signed challenge from the memory 13.
[0065] Next, in S118, the processor 12 receives from the authentication server 20 the result of verifying the authenticity of the electronic signature in the signed challenge.
[0066] Next, in S120, the processor 12 determines whether the authentication server 20 has successfully confirmed the authenticity of the electronic signature based on the confirmation result received from the authentication server 20. Successful confirmation of the authenticity by the authentication server 20 corresponds to the authentication server 20 determining that the electronic signature is authentic, in other words, the authentication server 20 confirming that the electronic signature is authentic. Unsuccessful confirmation of the authenticity by the authentication server 20 corresponds to the authentication server 20 determining that the electronic signature is not authentic.
[0067] If the processor 12 determines in S120 that the authentication server 20 has not successfully verified the authenticity (S120: NO), the processor 12 ends the terminal-side registration process of FIG.
[0068] On the other hand, if the processor 12 determines in S120 that the authentication server 20 has successfully verified the authenticity (S120: YES), it proceeds to S122 and generates a blockchain private key based on the qualified person ID and the seed phrase random number.
[0069] Next, in S124, after the user has used the blockchain private key, the processor 12 deletes the blockchain private key, the qualified person ID, and the seed phrase random number from the memory 13 and the storage 14. Thereafter, the processor 12 ends the terminal-side registration process of FIG.
[0070] In this way, when identity verification by the authenticator 15 is successful, the processor 12 of the information terminal 10 obtains the registered credentials including the passkey public key and the signed challenge generated by the authenticator 15. The processor 12 transmits the registered credentials, the signed challenge, and the seed phrase random number generated based on the email address to the authentication server 20. Then, when the authentication server 20 successfully verifies the authenticity of the electronic signature of the signed challenge, the processor 12 generates a blockchain private key based on the qualified person ID and the seed phrase random number.
[0071] In the information processing system 1, all blockchain private keys generated based on the same qualified person ID and the same seed phrase random number are the same.
[0072] [1-2-2. Server-Side Registration Processing] The processing executed by the server-side processor 22 of the authentication server 20 in the registration processing of FIG. 2 (hereinafter referred to as server-side registration processing) will be described with reference to the flowchart of FIG.
[0073] When the server-side processor 22 receives a registration request from the information terminal 10, it starts the server-side registration process shown in FIG.
[0074] First, in S200, the server-side processor 22 generates a common key and a challenge and stores them in the server-side memory 23.
[0075] Next, in S202, the server-side processor 22 transmits a registration response including the common key and the challenge to the information terminal 10 as a response to the registration request.
[0076] Next, in S204, the server-side processor 22 receives the registration credentials encrypted with the common key, the signed challenge, and the seed phrase random number from the information terminal 10.
[0077] Next, in S206, the server-side processor 22 decrypts the registration credentials, the signed challenge, and the seed phrase random number, which have been encrypted with the common key, using the common key stored in the server-side memory 23. Thereafter, the server-side processor 22 discards the common key from the server-side memory 23.
[0078] Next, in S208, the server-side processor 22 verifies the authenticity of the electronic signature in the signed challenge. Specifically, the server-side processor 22 acquires information necessary for passkey authentication, including the passkey public key, from the registered credential, and determines whether the electronic signature in the signed challenge is authentic using the acquired information and the passkey public key. Thereafter, the server-side processor 22 discards the challenge and the signed challenge from the server-side memory 23, and discards the registered credential including the qualified person ID.
[0079] If the server-side processor 22 determines in S208 that the digital signature is not authentic (S208: NO), it skips S210 and proceeds to S212.
[0080] On the other hand, if the server-side processor 22 determines in S208 that the digital signature is authentic (S208: YES), the process proceeds to S210, where the server-side processor 22 stores the email address, passkey public key, and seed phrase random number included in the identification information in the server-side storage 24. The email address may be stored in the server-side storage 24 in a state converted into a hash value.
[0081] Next, in S212, the server-side processor 22 transmits the confirmation result regarding the authenticity of the electronic signature to the information terminal 10, and then terminates the server-side registration process of Fig. 4. The confirmation result indicates either that the electronic signature has been determined to be authentic, or that the electronic signature has been determined to be inauthentic.
[0082] In this way, the authentication server 20 checks whether the electronic signature in the signed challenge is authentic, and if the electronic signature is authentic, registers the email address, passkey public key, and seed phrase random number received from the information terminal 10 in the server-side storage 24.
[0083] [1-2-3. Terminal-Side Login Processing] The processing executed by the processor 12 of the information terminal 10 in the login processing of FIG. 5 (hereinafter referred to as terminal-side login processing) will be described with reference to the flowchart of FIG.
[0084] When a login screen for accepting input of an email address is displayed on the display of the output unit 17 and an email address is input by the user via the input unit 16, the processor 12 starts the process shown in FIG. 6 .
[0085] First, in S300, the processor 12 sends a login request to the authentication server 20. The login request includes the user's identification information, which includes an email address.
[0086] Next, in S302, the processor 12 receives a login response including a challenge to the login request from the authentication server 20. The login response further includes a common key generated by the authentication server 20. The processor 12 stores the challenge and the common key in the memory 13.
[0087] Next, in S304, the processor 12 instructs the authenticator 15 to generate login credentials as credentials and to attach a digital signature to the challenge.
[0088] Upon receiving the instruction, the authenticator 15 performs identity verification for the user (S30 in FIG. 5). If identity verification is successful, the authenticator 15 generates login credentials and attaches a digital signature to the challenge stored in the memory 13.
[0089] Next, in S306, the processor 12 obtains the result of the identity verification from the authentication device 15 and determines whether the identity verification has been successful.
[0090] If the processor 12 determines in S306 that the identity verification has not been successful (S306: NO), the processor 12 ends the terminal-side login process of FIG.
[0091] On the other hand, if the processor 12 determines in S306 that the identity verification has been successful (S306: YES), the processor 12 proceeds to S308 and acquires the login credentials and the signed challenge from the authentication device 15. The login credentials include a qualified person ID. The qualified person ID included in the login credentials is the same as the qualified person ID included in the registered credentials.
[0092] Next, in S312, the processor 12 encrypts the login credentials and the signed challenge using the common key stored in the memory 13 in S302. Thereafter, the processor 12 discards the common key from the memory 13.
[0093] Next, in S314, the processor 12 transmits the login credentials encrypted with the common key and the signed challenge to the authentication server 20. Thereafter, the processor 12 discards the signed challenge from the memory 13.
[0094] Next, in S316, the processor 12 receives from the authentication server 20 the result of verifying the authenticity of the electronic signature in the signed challenge.
[0095] Next, in S318, the processor 12 determines, based on the confirmation result received from the authentication server 20, whether or not the authentication server 20 has successfully confirmed the authenticity of the electronic signature.
[0096] If the processor 12 determines in S318 that the authentication server 20 has not successfully verified the authenticity (S318: NO), the processor 12 ends the terminal-side login process of FIG.
[0097] On the other hand, if the processor 12 determines in S318 that the authentication server 20 has successfully verified the authenticity (S318: YES), the processor 12 proceeds to S320 and receives a seed phrase random number from the authentication server 20.
[0098] Next, in S322, the processor 12 generates a blockchain private key based on the qualified person ID and the seed phrase random number.
[0099] Next, in S324, after the user has used the blockchain private key, the processor 12 deletes the blockchain private key, the qualified person ID, and the seed phrase random number from the memory 13 and the storage 14. Thereafter, the terminal-side login process of FIG. 6 is terminated.
[0100] In this way, when identity verification by the authenticator 15 is successful, the processor 12 of the information terminal 10 obtains the signed challenge generated by the authenticator 15. The processor 12 transmits the signed challenge to the authentication server 20. Then, when the authentication server 20 successfully verifies the authenticity of the electronic signature in the signed challenge, the processor 12 receives a seed phrase random number from the authentication server 20 and generates a blockchain private key based on the qualified person ID and the seed phrase random number.
[0101] [1-2-4. Server-Side Login Processing] The processing executed by the server-side processor 22 of the authentication server 20 in the login processing of FIG. 5 (hereinafter referred to as server-side login processing) will be described with reference to the flowchart of FIG.
[0102] When the server-side processor 22 receives a login request from the information terminal 10, it starts the server-side login process shown in FIG.
[0103] First, in S400, the server-side processor 22 generates a common key and a challenge and stores them in the server-side memory 23.
[0104] Next, in S402, the server-side processor 22 transmits a login response including the common key and the challenge to the information terminal 10 as a response to the login request.
[0105] Next, in S404, the server-side processor 22 receives the login credentials encrypted with the common key and the signed challenge from the information terminal 10.
[0106] Next, in S406, the server-side processor 22 decrypts the login credentials and the signed challenge, which have been encrypted with the common key, using the common key. Thereafter, the server-side processor 22 discards the common key from the server-side memory 23.
[0107] Next, in S408 , the server-side processor 22 determines whether the email address included in the login request is registered in the server-side storage 24 of the authentication server 20 .
[0108] If the server-side processor 22 determines in S408 that the email address is not registered, the process proceeds to S414.
[0109] On the other hand, if the server-side processor 22 determines in S408 that the email address is registered, the process proceeds to S410.
[0110] Next, in S410, the server-side processor 22 verifies the authenticity of the electronic signature in the signed challenge. Specifically, the server-side processor 22 acquires information necessary for passkey authentication from the login credentials, and determines whether the electronic signature in the signed challenge is authentic using the acquired information and the passkey public key read from the server-side storage 24. Thereafter, the server-side processor 22 discards the challenge and the signed challenge from the server-side memory 23, and discards the login credentials including the qualified person ID.
[0111] If the server-side processor 22 determines in S410 that the digital signature is not authentic (S410: NO), the process proceeds to S414.
[0112] On the other hand, if the server-side processor 22 determines in S410 that the digital signature is authentic (S410: YES), the process proceeds to S412, where it reads out the seed phrase random number stored in the server-side storage 24.
[0113] Next, in S414, the server-side processor 22 transmits the confirmation result as to whether the email address is registered and the confirmation result regarding the authenticity of the electronic signature to the information terminal 10. At this time, if the seed phrase random number was read in S412 (i.e., if the electronic signature is determined to be authentic in S410), the seed phrase random number is also transmitted to the information terminal 10 along with the confirmation result regarding the authenticity of the electronic signature. Thereafter, the server-side login process of FIG. 7 is terminated.
[0114] In this way, the authentication server 20 checks whether the electronic signature in the signed challenge is authentic, and if the electronic signature is authentic, reads the seed phrase random number stored in the server-side storage 24 and transmits the seed phrase random number to the information terminal 10.
[0115] [1-3. Effects] According to the embodiment described above in detail, the following effects can be obtained.
[0116] (1a) The processor 12 generates a blockchain private key based on a qualified person ID and a seed phrase random number. The qualified person ID is included in a credential generated based on a passkey private key. The credential can be acquired from the authentication device 15 when the user's identity is successfully verified. The identity verification is performed by biometric authentication. The seed phrase random number is generated based on the identification information input by the user to the input unit 16.
[0117] According to this configuration, a user can generate a blockchain private key by inputting the user's identification information into the input unit 16 of the information terminal 10 and then verifying the user's identity through biometric authentication. Therefore, the user only needs to store identification information, which is easier to manage than the blockchain private key, and does not need to store the blockchain private key. Therefore, this embodiment can reduce the user's burden of managing the blockchain private key.
[0118] (1b) The electronic signature used in the registration process and login process is generated based on the passkey private key by performing identity verification through biometric authentication in the authentication device 15. Therefore, the user can perform the registration process and login process by performing identity verification through biometric authentication, and can also generate a blockchain private key.
[0119] (1c) The registration process and login process in the information processing system 1 are both performed using a combination of passkey authentication and challenge-response authentication. This allows for improved security compared to, for example, password authentication.
[0120] (1d) The seed phrase random number is generated based on the identification information input by the user to the input unit 16.
[0121] With this configuration, the identification information is also used as the seed value for the seed phrase random number, thereby improving the randomness of the random number without the user having to separately input a seed value to improve the security strength of the random number.
[0122] (1e) The identification information includes an email address. A seed phrase random number required to generate a blockchain private key is generated based on the email address. That is, the blockchain private key is generated based on the email address.
[0123] Generally, email addresses are character strings that are easier for users to forget and require less management burden than random character strings. Therefore, by generating a blockchain private key based on an email address, the management burden on users of the blockchain private key can be reduced.
[0124] 3, if the authenticator 15 successfully verifies the identity of the user, the processor 12 transmits the registration credentials and the seed phrase random number to the authentication server 20. The registration credentials include a passkey public key.
[0125] As shown in S210 of FIG. 4, the seed phrase random number is held in the authentication server 20.
[0126] According to this configuration, the seed phrase random number required to generate the blockchain private key is stored in the authentication server 20. Therefore, even if the user loses the information terminal 10, the user can obtain the seed phrase random number from the authentication server 20 and generate the same blockchain private key.
[0127] (1g) As shown in S114 and S116 of Fig. 3, the processor 12 encrypts the registration credentials, the signed challenge, and the seed phrase random number using the common key received from the authentication server 20, and then transmits them to the authentication server 20. As shown in S312 and S314 of Fig. 6, the processor 12 encrypts the login credentials and the signed challenge using the common key received from the authentication server 20, and then transmits them to the authentication server 20.
[0128] With this configuration, even if the data transmitted from the information terminal 10 to the authentication server 20 in S116 and S314 is intercepted, the data is protected because it is encrypted with the common key, thereby improving security strength.
[0129] Furthermore, each time the registration process or the login process is performed, a different common key is generated by the authentication server 20. The common key is discarded by both the information terminal 10 and the authentication server 20 after each encrypted data is transmitted by the information terminal 10 in S116 or S314 and after each encrypted data is decrypted by the authentication server 20 in S206 or S406.
[0130] With this configuration, even if a common key is leaked during a certain registration process or login process, the common key cannot be used in other registration processes or login processes, thereby improving security.
[0131] (1h) The blockchain private key is generated based on both the qualified person ID and the seed phrase random number. The qualified person ID is stored in the authenticator 15, which is built into or external to the information terminal 10, but is not stored in the authentication server 20. After the registration process, the seed phrase random number is stored in the authentication server 20, but is not stored in the information terminal 10. The information terminal 10 and the authentication server 20 are separate devices.
[0132] With this configuration, even if either the qualified person ID or the seed phrase random number is leaked due to unauthorized access to either the information terminal 10 or the authentication server 20, the unauthorized generation of the blockchain private key is prevented unless the other is leaked. This improves security.
[0133] (1i) After the user uses the blockchain private key, the blockchain private key, the qualified person ID, and the seed phrase random number are deleted from memory 13 and storage 14.
[0134] According to this configuration, while the user is not using the blockchain private key, it is possible to prevent the blockchain private key, the qualified person ID, and the seed phrase random number from leaking from the information terminal 10. This makes it possible to improve security strength.
[0135] (1j) The seed phrase random number is generated by the processor 12 of the information terminal 10 during the registration process. With this configuration, the load on the authentication server 20 during the registration process can be distributed. In particular, the greater the load of the process of generating the seed phrase random number, the more the load on the authentication server 20 can be distributed.
[0136] (1k) The passkey private key may be synchronized with the cloud server in an encrypted state. With this configuration, the same passkey private key can be used on a terminal other than the information terminal 10. Therefore, for example, even if the information terminal 10 is lost, it is possible to generate a blockchain private key that is the same as the blockchain private key that was used before the loss, using the same passkey private key as before the loss.
[0137] [1-4. Correspondence between Terms] In the above embodiment, the processor 12 corresponds to an example of a control unit, and the seed phrase random number corresponds to an example of a random number based on a predetermined character string and identification information. The registration request corresponds to an example of a registration request signal, the registration response corresponds to an example of a registration response signal, the login request corresponds to an example of a request signal including a predetermined request signal and identification information, and the login response corresponds to an example of a response signal. The server-side storage 24 corresponds to an example of a storage device.
[0138] [2. Second Embodiment] [2-1. Configuration] In the second embodiment, the basic configuration of the information processing system 1 is the same as in the first embodiment. In the second embodiment, components that are assigned the same reference numerals as in the first embodiment and are not described below may be understood to be the same configuration as in the first embodiment.
[0139] [2-2. Processing] The following selectively describes processing performed by the information processing system 1 of the second embodiment that differs from that of the first embodiment. Processing not described below may be understood to be the same as that of the first embodiment.
[0140] In the second embodiment, the information processing system 1 executes the registration process shown in Fig. 8 instead of the registration process shown in Fig. 2 through mutual communication between the information terminal 10 and the authentication server 20. The information terminal 10 executes the terminal-side registration process shown in Fig. 9 instead of the terminal-side registration process shown in Fig. 3. The authentication server 20 executes the server-side registration process shown in Fig. 10 instead of the server-side registration process shown in Fig. 4.
[0141] [2-2-1. Terminal-Side Registration Processing] The terminal-side registration processing executed by the processor 12 of the information terminal 10 in the second embodiment will be described with reference to the flowchart of FIG.
[0142] When a registration screen for accepting input of an email address is displayed on the output unit 17 and an email address is input by the user via the input unit 16, the processor 12 starts the terminal-side registration process shown in Figure 9.
[0143] The processes of S100, S102, S104, S10, S106, S108, S118, S120, S122, and S124 in Figures 8 and 9 are the same as the processes of the same step numbers in Figures 2 and 3 (i.e., the processes in the first embodiment).
[0144] After performing the process of S108, the processor 12 proceeds to S514 and encrypts the registration credentials and the signed challenge using the common key stored in the memory 13 in S102.
[0145] Next, in S516, the processor 12 transmits the registration credentials encrypted with the common key and the signed challenge to the authentication server 20. Thereafter, the processor 12 discards the signed challenge from the memory 13.
[0146] Next, the processor 12 performs the processes of S118 and S120.
[0147] If the processor 12 determines in S120 that the authentication server 20 has not successfully verified the authenticity (S120: NO), the processor 12 ends the terminal-side registration process of FIG.
[0148] On the other hand, if the processor 12 determines in S120 that the authentication server 20 has successfully verified the authenticity (S120: YES), the processor 12 proceeds to S521 and receives the seed phrase random number from the authentication server 20. The processor 12 decrypts the seed phrase random number encrypted with the common key. Thereafter, the processor 12 discards the common key from the memory 13.
[0149] Next, the processor 12 performs the processes of S122 and S124. In S122, a blockchain private key is generated using the seed phrase random number decrypted in S521. Thereafter, the processor 12 ends the terminal-side registration process of FIG. 9.
[0150] In this way, processor 12 does not generate the seed phrase random number itself, but instead obtains it from authentication server 20. The seed phrase random number is transmitted from authentication server 20 in a state encrypted with a common key. Processor 12 discards the common key after decrypting the seed phrase random number.
[0151] [2-2-2. Server-Side Registration Processing] The server-side registration processing executed by the server-side processor 22 of the authentication server 20 in the second embodiment will be described with reference to the flowchart of FIG.
[0152] When the server-side processor 22 receives a registration request from the information terminal 10, it starts the server-side registration process shown in FIG.
[0153] The processes of S200, S202, S208, S210, and S212 in FIGS. 8 and 10 are the same as the processes of the same step numbers in FIGS. 2 and 4, respectively (i.e., the processes in the first embodiment).
[0154] After performing the process of S202, the server-side processor 22 proceeds to S604 and receives the registration credentials encrypted with the common key and the signed challenge from the information terminal 10.
[0155] Next, in S606, the server-side processor 22 decrypts the registration credentials and the signed challenge encrypted with the common key using the common key stored in the server-side memory 23.
[0156] Next, in S607, the server-side processor 22 generates a seed phrase random number based on the email address included in the registration request. The seed phrase random number is a random number that generates a different value each time even based on the same email address.
[0157] Next, in S208, the server-side processor 22 verifies the authenticity of the digital signature in the signed challenge, and then discards the challenge and the signed challenge from the server-side memory 23, and discards the registered credentials including the qualified person ID.
[0158] If the server-side processor 22 determines in S208 that the digital signature is not authentic (S208: NO), it skips S210 and proceeds to S212, where it transmits the confirmation result regarding the authenticity of the digital signature to the information terminal 10. Thereafter, the server-side processor 22 proceeds to S613, where it discards the common key from the server-side memory 23. Thereafter, the server-side processor 22 ends the server-side registration process of FIG.
[0159] On the other hand, if the server-side processor 22 determines in S208 that the digital signature is authentic (S208: YES), the process proceeds to S210, where the server-side processor 22 stores the email address, passkey public key, and seed phrase random number included in the identification information in the server-side storage 24. The email address may be converted into a hash value and then stored in the server-side storage 24. The server-side processor 22 may store identification information in the server-side storage 24, not limited to the email address.
[0160] Next, in S611, the server-side processor 22 encrypts the seed phrase random number using the common key stored in the server-side memory 23.
[0161] Next, in S612, the server-side processor 22 transmits the confirmation result regarding the authenticity of the electronic signature and the encrypted seed phrase random number to the information terminal 10. The confirmation result indicates either that the electronic signature has been determined to be authentic, or that the electronic signature has been determined to be inauthentic.
[0162] Next, in S613, the server-side processor 22 discards the common key from the server-side memory 23, and ends the server-side registration process of FIG.
[0163] In this way, the server-side processor 22 generates a seed phrase random number on behalf of the information terminal 10. The seed phrase random number is encrypted using a common key and transmitted from the authentication server 20 to the information terminal 10. The server-side processor 22 encrypts the seed phrase random number, transmits the encrypted seed phrase random number to the information terminal 10, and then discards the common key.
[0164] [2-3. Effects] According to the second embodiment described above in detail, the same effects as those of the first embodiment can be obtained. In addition, according to the second embodiment, the seed phrase random number is not transmitted from the information terminal 10 to the authentication server 20. Therefore, it is possible to prevent the seed phrase random number from being leaked.
[0165] Furthermore, the process of generating a seed phrase random number is not required in the information terminal 10. Therefore, the load on the information terminal 10 can be reduced.
[0166] 3. Other Embodiments Although the embodiments of the present disclosure have been described above, it goes without saying that the present disclosure is not limited to the above-described embodiments and can take on various forms.
[0167] (3a) In the above embodiment, the authentication device 15 performs user identity verification by biometric authentication. However, the identity verification is not limited to biometric authentication, and may be performed by any other fast and easy authentication technology. For example, the identity verification may be performed by knowledge authentication such as a PIN code, or by possession authentication such as a security key or one-time password.
[0168] (3b) In the above embodiment, the value input by the user to the input unit 16 during the registration process and login process, and the value used to generate the seed phrase random number, are both email addresses. However, the value input by the user to the input unit 16 during the registration process and login process, and the value used to generate the seed phrase random number are not limited to email addresses, and may be any value that can identify the user. For example, the value may be the user's name, telephone number, etc.
[0169] (3c) In the above embodiment, the seed phrase random number is a random number generated based on an email address. However, the seed phrase random number may be generated based on something other than an email address. For example, the seed phrase random number may be generated based on a character string separately input by the user via the input unit 16. The seed phrase random number is not limited to a character string input by the user, and may be generated based on a character string generated within the information terminal 10, for example.
[0170] (3d) In the above embodiment, the seed phrase random number is generated by the processor 12 of the information terminal 10 during the registration process. However, the seed phrase random number does not have to be generated by the information terminal 10. For example, the seed phrase random number may be generated by the authentication server 20.
[0171] When the seed phrase random number is generated by the authentication server 20, the seed phrase random number is prevented from leaking onto the communication path between the information terminal 10 and the authentication server 20. This improves the security strength of the blockchain private key.
[0172] (3e) The information terminal 10 generates a blockchain private key based on the qualified person ID and the seed phrase random number. However, the information used to generate the blockchain private key is not limited to the seed phrase random number. The information terminal 10 may generate the blockchain private key based on the qualified person ID and a predetermined character string that is not limited to a random number. In other words, the predetermined character string may be a random number or a character string other than a random number.
[0173] (3f) In the above embodiment, in the registration process and login process, the information terminal 10 transmits credentials to the authentication server 20. After verifying the authenticity of the digital signature, the server-side processor 22 discards the credentials received from the information terminal 10 from the server-side memory 23. The credentials include a qualified person ID. However, the information terminal 10 does not have to transmit the qualified person ID to the server-side processor 22.
[0174] When the information terminal 10 does not transmit the qualified person ID to the server-side processor 22, the qualified person ID is prevented from leaking onto the communication path between the information terminal 10 and the authentication server 20. This improves the security strength of the blockchain private key.
[0175] (3g) In the above embodiment, after the user uses the blockchain private key, the blockchain private key, qualified person ID, and seed phrase random number are deleted from the memory 13 and storage 14 of the information terminal 10. However, the blockchain private key, qualified person ID, and seed phrase random number do not have to be deleted from the memory 13 and storage 14 of the information terminal 10 even after the user uses the blockchain private key.
[0176] (3h) In the above embodiment, in the terminal-side login process, the common key is discarded from the information terminal 10 after encrypting the login credentials and the signed challenge in S312.
[0177] In the server-side login process, the common key is discarded from the authentication server 20 after the login credentials and the signed challenge encrypted with the common key are decrypted in S406.
[0178] 11, instead of discarding the common key in S406, the authentication server 20 may encrypt the seed phrase random number to be transmitted to the information terminal 10 in S414 using the common key before transmitting it. The authentication server 20 may encrypt the seed phrase random number using the common key, transmit the encrypted seed phrase random number to the information terminal 10, and then discard the common key.
[0179] The information terminal 10 may use the common key to decrypt the seed phrase random number, which is received from the authentication server 20 in S320 and encrypted with the common key, without discarding the common key in S312. The information terminal 10 may discard the common key after decrypting the seed phrase random number.
[0180] With this configuration, in S414, the seed phrase random number can be transmitted from the authentication server 20 to the information terminal 10 more securely than in the case where the seed phrase random number is not encrypted with a common key. This improves security.
[0181] (3i) Multiple functions of one component in the above embodiments may be realized by multiple components, or one function of one component may be realized by multiple components. Also, multiple functions of multiple components may be realized by one component, or one function realized by multiple components may be realized by one component. Also, part of the configuration of the above embodiments may be omitted. Also, at least part of the configuration of the above embodiments may be added to or substituted for the configuration of another of the above embodiments.
[0182] (3j) The present disclosure may be realized in various forms in addition to the information terminal described above, such as a system including the information terminal as a component, a computer program for causing a computer to function as the information terminal, a non-transitory physical recording medium such as a semiconductor memory on which the computer program is recorded, an information processing method, etc.
Claims
1. An information terminal comprising: a control unit; an authenticator; and a communication unit configured to communicate with an authentication server that is a device separate from the information terminal; the authenticator is configured to perform identity verification of a user and further to manage a passkey private key and a passkey public key corresponding to the passkey private key; the control unit is configured to: obtain the passkey public key from the authenticator on condition that the identity verification by the authenticator is successful, and send the passkey public key to the authentication server to associate the passkey public key with a predetermined character string and register it in the authentication server; after the predetermined character string is registered in the authentication server, obtain a digital signature generated based on the passkey private key from the authenticator and send it to the authentication server on condition that the identity verification by the authenticator is successful; obtain the predetermined character string registered in the authentication server from the authentication server when the authenticity of the digital signature is confirmed in the authentication server based on the passkey public key; and generate a blockchain private key based on the predetermined character string and a qualified person ID obtained from the authenticator; The qualified person ID is an ID generated in the authentication device based on the passkey private key, and is an unchanging value for the passkey private key.
2. An information terminal according to claim 1, wherein the control unit is configured to: transmit a predetermined request signal to the authentication server; and, on condition that the communication unit receives a response signal including a challenge transmitted by the authentication server in response to the predetermined request signal, obtain the challenge to which the electronic signature has been attached from the authenticator and transmit it to the authentication server.
3. An information terminal according to claim 2, wherein the control unit is configured to: send a registration request signal including the user's identification information to the authentication server; cause the authentication device to perform the identity verification on condition that the communication unit receives a registration response signal sent by the authentication server in response to the registration request signal; if the identity verification is successful, send the passkey public key obtained from the authenticator to the authentication server in order to have the authentication server register the specified character string in association with the identification information and the passkey public key; and send a request signal including the identification information to the authentication server as the specified request signal in order to obtain the specified character string from the authentication server.
4. An information terminal according to claim 3, wherein the registration response signal includes a registration challenge as a challenge transmitted in response to the registration request signal, and the control unit is configured, when the identity verification by the authenticator, which is performed on the condition that the registration response signal is received, to obtain from the authenticator the registration challenge to which the electronic signature based on the passkey private key has been attached, and to further transmit the registration challenge to which the electronic signature has been attached to the authentication server.
5. An information terminal according to claim 3 or 4, wherein the predetermined character string is a random number based on the identification information.
6. An information terminal according to claim 5, wherein the identification information includes an email address.
7. An information processing system comprising: an information terminal according to any one of claims 1 to 6; and an authentication server, wherein the authentication server comprises: a server-side communication unit configured to communicate with the information terminal; and a server-side control unit configured to associate the passkey public key received by the server-side communication unit from the information terminal with the predetermined character string and register it in a storage device, wherein the server-side control unit is further configured to verify the identity of the user using the passkey public key, and to transmit the predetermined character string associated with the passkey public key to the information terminal of the user whose identity has been verified.
8. An information processing method executed by a computer installed in an information terminal, comprising: causing an authenticator installed in the information terminal to perform identity verification of a user; obtaining a passkey public key corresponding to a passkey private key from the authenticator on condition that the identity verification by the authenticator is successful, and transmitting the passkey public key to the authentication server, which is a device separate from the information terminal, in order to associate the passkey public key with a predetermined character string and register it in the authentication server; after the predetermined character string is registered in the authentication server, obtaining a digital signature generated based on the passkey private key from the authenticator and transmitting it to the authentication server on condition that the identity verification by the authenticator is successful, and obtaining the predetermined character string registered in the authentication server from the authentication server when the digital signature is confirmed to be authentic based on the passkey public key; and generating a blockchain private key based on the predetermined character string and a qualified person ID obtained from the authenticator, wherein the qualified person ID is an ID generated in the authenticator based on the passkey private key, and is a value that is immutable for the passkey private key.
9. A computer program comprising instructions which, when executed by a computer, cause the computer to carry out the information processing method of claim 8.
10. A computer-readable recording medium storing a computer program including instructions for causing a computer to carry out the information processing method of claim 8 when executed by a computer.
Citation Information
Patent Citations
Information processing device, information processing method, and information processing program
JP2023124455A
System, device and method for securely transferring information from a hardware to a blockchain
US20220035932A1