Identity verification methods, electronic devices, and computer-readable storage media
The identity authentication method uses a Merkle tree-based verification path to authenticate identity certificates by selectively disclosing attributes, addressing privacy concerns and enhancing security in identity verification processes.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2022-11-30
- Publication Date
- 2026-04-08
AI Technical Summary
Current identity authentication methods are simple and prone to privacy information leakage, posing a significant risk of user data exposure and related losses.
An identity authentication method that allows users to selectively disclose identity attributes, using a Merkle tree-based verification path to authenticate identity certificates, ensuring privacy protection by only verifying the disclosed attributes.
Enhances privacy protection by reducing the risk of personal information leakage and improving security through selective attribute disclosure and high-speed verification.
Smart Images

Figure 0007842865000001 
Figure 0007842865000002 
Figure 0007842865000003
Abstract
Description
Technical Field
[0001] [Cross - reference to Related Applications] This application claims the priority of Chinese Patent Application CN202111459938.6, titled "Identity Authentication Method, Electronic Device, and Computer - Readable Storage Medium", filed on December 2, 2021, and all the content disclosed therein is incorporated herein by reference.
[0002] [Technical Field] The embodiments of this application relate to the field of information security authentication technology, and particularly to an identity authentication method, an electronic device, and a computer - readable storage medium.
Background Art
[0003] As people's online activities become increasingly frequent, a prerequisite for using Internet services is to solve the problem of identity identification. Current identity authentication means are simple, and there is a significant hidden risk of privacy information leakage, which may lead to the sale of user information and cause significant property and related interest losses. How to solve the privacy protection problem of personal information data is the main challenge faced by current digital identity authentication technology.
Summary of the Invention
Problems to be Solved by the Invention
[0004] The embodiments of this application provide an identity authentication method, an electronic device, and a computer - readable storage medium to reduce the risk of personal privacy information leakage and improve the security of personal privacy data.
Means for Solving the Problems
[0005] Embodiments of the present invention provide an identity authentication method comprising the steps of: obtaining a user's identity certificate, wherein the identity certificate includes the user's identity attributes and a Merkleroof verification path, and the Merkleroof verification path in the identity certificate is a verification path obtained based on the identity attributes that the user has selected to disclose when generating the identity certificate; simulating the Merkleroof verification path based on the identity attributes disclosed in the identity certificate; and authenticating the user's identity certificate based on the simulated verification path and the verification path in the identity certificate.
[0006] Embodiments of the present invention further provide an electronic device comprising at least one processor and a memory communicated to the at least one processor, wherein the memory stores instructions executable by the at least one processor, and the at least one processor can perform the identity authentication method when the instructions are executed by the at least one processor.
[0007] Embodiments of the present invention further provide a computer-readable storage medium for storing a computer program that implements the above-described identity authentication method when executed by a processor. [Brief explanation of the drawing]
[0008] [Figure 1] This is a flowchart of the identity authentication method according to the embodiment of the present invention. [Figure 2] This is a schematic diagram of a graphic-format identity card according to an embodiment of the present invention. [Figure 3] This is a schematic diagram of a Merkle tree constructed according to an embodiment of the present invention. [Figure 4] This is a schematic diagram simulating the verification process based on the published identity attributes in the embodiments of the present application. [Figure 5] This is a flowchart of the method for generating an identity certificate according to the embodiment of the present invention. [Figure 6] This is a schematic diagram of a graphic form of employment evidence according to an embodiment of the present invention. [Figure 7] This is a schematic diagram of a distributed service-oriented software architecture according to an embodiment of the present invention. [Figure 8] This is a flowchart of the model registration flow according to the embodiment of the present invention. [Figure 9] This is a flowchart of the identity registration flow according to the embodiment of the present invention. [Figure 10] This is a flowchart of the identity verification application process according to the embodiment of the present invention. [Figure 11] This is a flowchart of the identity certificate generation flow according to the embodiment of the present invention. [Figure 12] This is a flowchart of the identity verification process according to the embodiment of the present invention. [Figure 13] This is a schematic diagram of the structure of an electronic device according to an embodiment of the present invention. [Modes for carrying out the invention]
[0009] To clarify the purpose, technical solutions, and advantages of the embodiments of this application, each embodiment will be described in detail below with reference to the drawings. However, as will be understood by those skilled in the art, each embodiment of this application provides many technical details to help the reader better understand the embodiments. However, the technical solutions that the embodiments of this application seek to protect can be realized without these technical details and the various changes and modifications based on the embodiments below. The classification of each embodiment below is for the sake of clarity and does not limit the specific realization of the embodiments of this application, and each embodiment can be combined and referenced to one another under non-consistent assumptions.
[0010] To facilitate understanding of the embodiments of this application, the related technologies relating to the embodiments of this application will be described below.
[0011] Digital identity is the process of condensing real-world identity information into a public / private key in digital code form, enabling the binding, querying, and verification of an individual's real-time behavioral information. Digital identity includes not only identity encoding information such as birth information, individual descriptions, and biometric characteristics, but also personal behavioral information of multiple attributes. At the core of digital identity is digital evidence, and with the development of centralized, alliance-based, and self-sovereign identities, the latest evolutionary direction of digital evidence is verifiable evidence.
[0012] A Merkler tree is a crucial technology for transaction and memory storage in blockchain blocks. Its role is to quickly summarize and check the existence and completeness of block data. In other words, it allows for the inspection of a single tree node even when it is not necessary to know the entire tree. The rapid verification technique of Merkler trees is widely used to verify the validity of blockchain block transactions.
[0013] One embodiment of the present invention provides an identity authentication method applicable to the identity authentication side, which may be an electronic device used by the authentication side, such as a terminal. The identity authentication side can also be understood as the identity verification side, and is abbreviated as the verification side. The identity authentication method in this embodiment can be used in a public cloud internet environment or in a user company's private cloud environment. The system adopts a mode that combines a server side and a terminal, where a digital identity service is mainly deployed on the server side, and an application app is mainly deployed on the terminal. This application app may include two types of role views: a user-side user and a verification-side user. These two types of role views can be understood as user interfaces for two different roles. The user interface for the user-side user mainly concerns operations such as registration, evidence application, and certificate generation, while the user interface for the verification-side user mainly concerns verification operations on identity certificates presented to the user. The server side and the terminal can communicate over the network using HTTP (Hypertext Transfer Protocol). A flowchart of the identity authentication method in this embodiment can be seen in Figure 1. Step 101 is a step of obtaining a user's identity certificate, wherein the identity certificate includes the user's identity attributes and the Merkleroof verification path, the identity attributes in the identity certificate include published and unpublished identity attributes, and the Merkleroof verification path in the identity certificate is a verification path obtained based on the identity attributes that the user chose to publish when generating the identity certificate. Step 102 simulates the verification route of the Markleroof based on the identity attributes published on the identity document, Step 103 includes authenticating the user's identity document based on the simulated verification path and the verification path in the identity document.
[0014] In the embodiments of the present application, when performing identity authentication, identity authentication can be completed based on the identity attributes that the user selects to disclose, and the identity attributes that the user does not want to disclose may be regarded as non-disclosed identity attributes, which is advantageous for avoiding the leakage of the identity attributes that the user does not want to disclose. That is, in the embodiments of the present application, identity authentication can be completed only by disclosing a small amount of identity attributes, thereby avoiding the problem of leakage of the user's privacy information. The conventional digital identity authentication method (for example, it is necessary to disclose all identity attributes) is inferior in protecting personal privacy data and solves the security problem that there is a leakage of privacy information.
[0015] In step 101, the identity authentication side can obtain the identity certificate presented by the user, and the form of the identity certificate may be a graphic form or a text form. The identity certificate may be an employment certificate, an academic certificate, etc. For a graphic form of identity certificate, reference can be made to FIG. 2. The identity authentication side can obtain the identity certificate presented by the user by scanning the identity certificate. Obtaining the user's identity certificate can be understood as obtaining the information in the identity certificate. The information in the identity certificate includes the user's identity attributes and the verification path of the Merkle loop. The identity attributes in the identity certificate include disclosed identity attributes and non-disclosed identity attributes. The verification path of the Merkle loop in the identity certificate is a verification path obtained based on the identity attributes that the user selects to disclose when generating the identity certificate. That is, when generating the identity certificate, the user can select the identity attributes that the user wants to disclose as the identity attributes to be disclosed, so that the digital identity service can obtain the verification path of the Merkle loop, that is, the verification path of the Merkle loop shown in FIG. 2, based on the identity attributes that the user selects to disclose.
[0016] Here, the published identity attributes can be understood as the specific content of the identity attributes known from the identity certificate. For example, the name, phone number, and mailbox in Figure 2 are all published identity attributes. The identity attributes that are not published can be understood as the specific content of the identity attributes not known from the identity certificate. For example, the specific content of the identity attributes that are not published is blurred. Referring to Figure 2, for example, the job number, department, and position in Figure 2 are all identity attributes that are not published.
[0017] In some embodiments, the identity certificate further includes the issuing agency of the identity certificate, the issuing agency ID, the institutional signature for the Merkle root of the issuing agency by the secret key of the issuing agency, the issuing time, the user signature for the user's identity certificate by the user's secret key, the signature algorithm adopted by the user signature, and the two-dimensional verification code of the employment certificate. The two-dimensional verification code of the employment certificate may be a URL (Uniform Resource Locator) generated based on the verification information of the identity certificate. The URL points to the online service address of the digital identity service, and by accessing the URL, the verification result of whether the identity certificate is valid, that is, the authentication result of whether the authentication is passed, can be obtained. Referring to Figure 2, the Merkle root signature on the right side of Figure 2 is the institutional signature for the Merkle root of the issuing agency by the secret key of the issuing agency, and the signature in Figure 2 is the user signature for the user's identity certificate by the user's secret key.
[0018] In step 102, the identity authentication side can simulate the verification path of the Merkle root based on the identity attributes published in the identity certificate.
[0019] In one embodiment, simulating the Merkle loop verification path includes calculating the hash value of the identity attributes published in the identity certificate based on the identity attributes published in the identity certificate, and simulating the Merkle loop verification path based on the hash value of the published identity attributes and the constructed Merkle tree. Here, the schematic diagram of the constructed Merkle tree can be referred to Figure 3, and the Merkle tree can be constructed based on the user's identity attributes (such as name, job number, department, position, phone, mailbox in Figure 3). In this embodiment, the Merkle tree's high-speed verification technology can be used to verify multiple identity attributes at one time, with higher efficiency.
[0020] In one embodiment, the step of simulating the Merkle loop verification path based on the hash value of the published identity attributes and the constructed Merkle tree includes determining the node corresponding to the hash value of the published identity attributes in the L1 layer of the Merkle tree and adding the node to the simulation queue T1 corresponding to the L1 layer, and simulating the Merkle tree from bottom to top, sequentially traversing the pair nodes (Hx, Hy) of each layer. After traversing the pair nodes (Hx, Hy) of each layer, simulating to obtain the Merkle loop verification path. Here, the following operations are performed on (Hx, Hy) in the traversed Li layer. If one of the nodes in (Hx, Hy) is included in the simulation queue Ti corresponding to the Li layer, add the hash value of the other node in (Hx, Hy) to the verification path, calculate the hash value of (Hx, Hy), and add the hash value of (Hx, Hy) to the simulation queue Ti+1 corresponding to the Li+1 layer. Here, 1 ≤ i < deep, and deep is the depth of the Merkle tree. If both of the two nodes in (Hx, Hy) are included in the simulation queue Ti corresponding to the Li layer, calculate the hash value of (Hx, Hy), and add the hash value of (Hx, Hy) to the simulation queue Ti+1 corresponding to the Li+1 layer. If there is no node in the simulation queue Ti corresponding to the Li layer at (Hx, Hy), then traverse the next (Hx, Hy).
[0021] To facilitate the understanding of the above simulation process, an example will be described below. The number of identity attribute nodes is N, the depth of the Merkle tree is deep = log(N) + 1, the levels of the Merkle tree are denoted as Li (1 ≤ i < deep), where i = 1 starts from the L1 layer. The nodes in the L1 layer define the attribute value Hash of the identity attribute as Hj, and j is the node number (numbered continuously from 1). Referring to Figure 4, the Merkle tree includes L1, L2, and L3 layers. The published identity attributes include D1, D3, and D5, and the unpublished identity attributes include D2, D4, D6, D7, and D8. In the L1 layer of the Merkle tree, it is determined that the nodes corresponding to the Hash values of the published identity attributes include Hl, H3, and H5, and the nodes Hl, H3, and H5 are added to the simulation queue T1 corresponding to the L1 layer.
[0022] Simulate the Merkle tree from bottom to top. First, traverse each pair of nodes (Hx, Hy) in the L1 layer. The pairs of nodes in the L1 layer include (H1, H2), (H3, H4), (H5, H6), and (H7, H8). For the pair of nodes (H1, H2), if the node H1 located in T1 exists, add H2 to the verification path, calculate the Hash value of (H1, H2), that is, H9, and add H9 to the simulation queue T2 corresponding to the L2 layer. For the pair of nodes (H3, H4), if the node H3 located in T1 exists, add H4 to the verification path, calculate the Hash value of (H3, H4), that is, H10, and add H10 to the simulation queue T2 corresponding to the L2 layer. For the pair of nodes (H5, H6), if the node H5 located in T1 exists, add H6 to the verification path, calculate the Hash value of (H5, H6), that is, H11, and add H11 to the simulation queue T2 corresponding to the L2 layer. For the pair node (H7,H8), if there is no node located at T1, it skips and begins traversing the next (Hx,Hy). Since (H7,H8) is the last pair node in the L1 layer, skipping here means beginning traversing the pair nodes in the L2 layer. In concrete implementation, if (H7,H8) is not the last pair node in the L1 layer, skipping means beginning traversing the pair nodes after (H7,H8).
[0023] After traversing each pair node in the L1 layer, it is determined that the simulation queue T2 corresponding to the L2 layer contains H9, H10 and H11, and the verification path contains H2, H4 and H6. Starting to traverse each pair node in the L2 layer, the pair nodes in the L2 layer include (H9,H10) and (H11,H12), For paired nodes (H9, H10), if both H9 and H10 are located at T2, the hash value of (H9, H10), i.e., H13, is calculated and added to the simulation queue T3 corresponding to the L3 layer. For paired nodes (H11, H12), if node H11 exists at T2, H12 is added to the verification path, the hash value of (H11, H12), i.e., H14, is calculated, and H14 is added to the simulation queue T3 corresponding to the L3 layer.
[0024] After traversing each pair node in the L2 layer, it is determined that the simulation queue T3 corresponding to the L3 layer contains H13 and H14, and the verification path contains H2, H4, H6 and H12. Starting to traverse each pair node in the L3 layer, the pair node in the L3 layer contains (H13, H14), For paired nodes (H13, H14), if both H13 and H14 are located in T2, the hash value of (H13, H14), i.e., the Merkle Root, is calculated. Each layer of the Merkle tree is traversed up to this point, and the final verification path obtained includes H2, H4, H6, and H12.
[0025] In one embodiment, the method for determining the verification path in an identity document can also be obtained by referring to the above simulation process. The simulation method provided in this embodiment facilitates simulation to obtain an accurate verification path and can improve the accuracy and efficiency of identity authentication by verifying multiple non-public identity attributes at once.
[0026] In step 103, the identity verification system may decide to pass the user's identity verification if it determines that the simulated verification path matches the verification path in the identity document.
[0027] In one embodiment, the identity certificate further includes an identity certificate verification code, and the process further includes the steps of generating a graphic identity certificate based on identity attributes to be disclosed selected by the user before obtaining the user's identity certificate, wherein the identity certificate verification code is displayed on the graphic identity certificate, and obtaining the result of identity authentication for the user by scanning the verification code in the graphic identity certificate. Here, the verification code may also be a URL generated based on the identity certificate, the URL points to the online service address of the digital identity service, and by accessing the URL, the verification result of whether or not the identity certificate is valid can be obtained. After generating the graphic identity certificate, the identity authentication side can send the generated graphic identity certificate to the terminal used by the user, and if it is necessary to authenticate the user's identity certificate, the identity authentication side can scan the graphic identity certificate presented by the user and obtain the identity authentication result. The identity certificate verification code may also be a two-dimensional verification code as shown in Figure 2, and the identity authentication side can obtain the result of identity authentication for the user by scanning the two-dimensional verification code. The code scanning verification method makes it easy to obtain the authentication results of identity documents.
[0028] In one embodiment, the identity certificate further includes the user's digital identity ID and a user signature on the user's identity certificate using the user's private key, and further includes the step of obtaining the user's identity certificate, obtaining the user's public key from the blockchain based on the user's digital identity ID, and verifying the user signature with the user's public key. In step 103, the step of authenticating the user's identity certificate based on the simulated verification path and the verification path in the identity certificate determines that the user's identity authentication is successful if the simulated verification path matches the verification path in the identity certificate and the verification of the user signature is successful.
[0029] In one embodiment, the step of obtaining a user's public key from the blockchain based on the user's digital identity ID includes the steps of obtaining a user profile based on the user's digital identity ID, the user profile being obtained based on the user's identity registration information when the user is registered, and the user profile being stored on the blockchain, and obtaining the user's public key from the blockchain based on the user profile. Users can register in a digital identity service deployed on the server side. The user profile does not contain the user's privacy information, and the identity registration information may include the user's personal account, identity model, the user's digital identity ID, the version of the identity model, and the user's public key. The identity model may be a model for generating an identity certificate created by an issuing authority, and the issuing authority may issue the identity model to the blockchain after creating it. In this embodiment, associating the issuing authority, user, and identity authentication side with the blockchain facilitates the identity authentication side obtaining the user's public key from the blockchain.
[0030] In one embodiment, the identity certificate further includes a digital identity ID of the issuing authority and an authority signature to the Merkleroof of the issuing authority using the issuing authority's private key, and further includes a step of obtaining the user's identity certificate, obtaining the issuing authority's public key from the blockchain based on the issuing authority's digital identity ID, and verifying the authority signature using the issuing authority's public key, and in step 103, the step of authenticating the user's identity certificate based on a simulated verification path and a verification path in the identity certificate includes a step of determining that identity authentication for the user is successful if the simulated verification path matches the verification path in the identity certificate and the verification against the authority signature is passed.
[0031] In one embodiment, the step of obtaining the public key of the issuing mechanism from the blockchain based on the digital identity ID of the issuing mechanism includes the step of obtaining the profile of the issuing mechanism based on the digital identity ID of the issuing mechanism, wherein the profile of the issuing mechanism is obtained based on the identity registration information of the issuing mechanism when identity registration is performed with the issuing mechanism, and the profile of the issuing mechanism is stored on the blockchain, and the step of obtaining the public key of the issuing mechanism from the blockchain based on the profile of the issuing mechanism. The profile of the issuing mechanism does not include the privacy information of the issuing mechanism, and the registration information of the issuing mechanism may include the name of the issuing mechanism, the digital identity ID of the issuing mechanism, and the public key of the issuing mechanism. Before issuing an identity model on the blockchain, the issuing mechanism can first perform identity registration in a digital identity service deployed on the server side. In this embodiment, associating the issuing mechanism, user, and identity authentication side in combination with the blockchain makes it easier for the identity authentication side to obtain the public key of the issuing mechanism from the blockchain.
[0032] In one embodiment, the identity certificate further includes the user's digital identity ID, the digital identity ID of the identity certificate issuing authority, the authority's signature on the issuing authority's Merkleroof using the issuing authority's private key, and the user's signature on the user's identity certificate using the user's private key. After obtaining the user's identity certificate, the steps further include obtaining the user's public key from the blockchain based on the user's digital identity ID, verifying the user's signature using the user's public key, obtaining the issuing authority's public key from the blockchain based on the issuing authority's digital identity ID, and verifying the authority's signature using the issuing authority's public key. Step 103, based on the simulated verification path and the verification path in the identity certificate, includes determining that user identity authentication is passed if the simulated verification path matches the verification path in the identity certificate, and both the signature verification for the user and the signature verification for the authority are passed.
[0033] In this embodiment, verifying the verification path obtained through simulation, while simultaneously verifying the user signature and / or institution signature, is equivalent to raising the pass criteria for identity authentication, which is advantageous in further improving the security of identity authentication.
[0034] In one embodiment, the method for generating the identity document can be seen in Figure 5. Step 501, which determines the identity evidence issued to the user, wherein the identity evidence includes all of the user's identity attributes, the Merkleroof of all of the identity attributes, and the issuing authority's signature on the Merkleroof by the issuing authority's private key. Step 502 involves determining which identity attributes the user intends to disclose from all identity attributes in the identity evidence, Step 503 involves obtaining a verification path based on the identity attributes that the user has selected to disclose, Step 504 includes generating an identity certificate based on the identity attributes, verification paths, and institutional signatures selected by the user to be disclosed, signing the identity certificate with the user's private key to obtain a user signature, and obtaining an identity certificate containing the user signature.
[0035] In this embodiment, it is advantageous to generate an identity certificate that discloses only a portion of the user's identity attributes by combining the identity evidence issued to the user with the identity attributes the user has selected to disclose, thereby protecting identity attributes that the user does not want to be leaked.
[0036] In step 50l, the identity evidence may be issued by a digital identity service deployed on the server side, and the identity evidence may be employment evidence, educational evidence, degree evidence, identification card, etc., and the issuing agency for the identity evidence is generally an authoritative agency, for example, the issuing agencies for educational evidence, degree evidence, and identification card are all specific agencies prescribed by the state. The format of the identity evidence may be graphic or text format, and a schematic diagram of employment evidence in graphic format can be seen in Figure 6, and the employment evidence may include all of the user's identity attributes (e.g., name, job number, department, job title, telephone, mailbox in Figure 6), the Merkle roof of all identity attributes (e.g., the Merkle roof of the last row on the left in Figure 6), and the agency signature on the Merkle roof by the private key of the issuing agency (e.g., company A in Figure 6) (the agency signature is, for example, the Merkle roof signature in Figure 6). Preferably, in some embodiments, the identity evidence may further include the issuing institution's institution ID, the issuance time of the identity evidence, the user's signature on the identity evidence with their private key and the signature algorithm used for the signature, and the authentication code for the employment evidence. Here, the verification code for the employment evidence may be a URL generated based on the evidence verification information, the URL pointing to the online service address of the digital identity service, and accessing the URL allows the user to obtain a verification result of whether or not the employment evidence is valid. The display order of identity attributes in the employment evidence may be the order of the leaf nodes in the Merkle tree.
[0037] In step 502, the user can select which identity attributes to disclose from all the identity attributes displayed on the application screen, and the identity authentication system then obtains the identity attributes that the user has selected to disclose.
[0038] In step 503, the identity authentication side can obtain a verification path based on the identity attributes that the user has selected to disclose. The specific method for obtaining the verification path can be seen in the schematic diagram of the verification path simulation process in Figure 4 above, and the explanation is omitted here to avoid duplication.
[0039] In step 504, the identity authentication side generates an identity certificate containing the disclosed identity attributes, verification paths, and institutional signatures based on the identity attributes, verification paths, and institutional signatures selected by the user to be disclosed. The identity certificate can then be signed with the user's private key to obtain a user signature, and an identity certificate further containing the user signature can be obtained.
[0040] In one embodiment, the identity verification method can employ a decentralized service-oriented software architecture with respect to three parties, the three parties including the service provider of the digital identity service, the user side, and the verifier (the verifier is also called the identity verification side), and the three parties have a many-to-many relationship linked by a blockchain network. Referring to Figure 7, the software architecture includes the digital identity service, the digital identity application, the blockchain network, and smart contracts. Here, the digital identity service may include a digital identity service corresponding to issuing authority X and a digital identity service corresponding to issuing authority Y, issuing authority X may provide digital identity service X, issuing authority Y may provide digital identity service Y, and the digital identity application is a terminal APP, which may include an operating interface directed to the user side and an operating interface directed to the verifier side. The software architecture will be described in detail below.
[0041] The blockchain network may be a general blockchain such as Hyperledger Fabric or Fisco Bcos, and is an alliance chain network built on digital identity services. It is used to store evidence by adding it to the blockchain during processes such as the issuance of model services, digital identity, and proof, facilitating lookup and retrospection.
[0042] A digital identity service is a software-as-a-Service (SaaS) issued by a digital identity service provider and provided to terminal users. Different service providers can issue different digital identity services, and each digital identity service issues identity models to the blockchain network for terminal users to access. Terminal users find service addresses based on their identity models on the blockchain network and perform the associated identity registration and evidence application activities. A digital identity service includes an access layer, identity management, evidence management, model management, storage layer, and communication layer, and the contents of a digital identity service are described in detail below.
[0043] The access layer provides access operations to the digital identity service and may be a UI interface or a command-line interface.
[0044] Identity management is a function that manages the user identities registered with the digital identity service, and includes identity registration, user profile establishment, and logout functions for registered identities.
[0045] Evidence management is a management function that generates verifiable identity evidence based on an identity model and issues evidence, and includes functions for issuing and deleting evidence.
[0046] Model management includes modeling, issuing, and adding identity models to the blockchain, as well as the functionality to issue identity models and configure evidence templates related to identity.
[0047] The memory layer stores identity model metadata and encrypts and stores the identity attributes of registered users.
[0048] The communication layer provides an HTTP service interface for terminal users to access the network, as well as a maintenance and transaction interface with the blockchain network.
[0049] The digital identity application is the application APP in the diagram, which is deployed on the terminal user's mobile phone or tablet device and includes two types of role views: the application-side user (i.e., the user in the lower left corner of the diagram) and the review-side user (i.e., the review-side in the lower right corner of the diagram). The application APP mainly concerns registration, evidence application, and certificate generation operations, while the review mainly concerns verification operations against the presented certificate. The digital identity application mainly concerns human-computer interaction, service search, My Identity, My Evidence, evidence verification, TEE trusted environment, TEE interface layer, operating system layer, and hardware layer, and the following will specifically describe the main aspects of the digital identity application.
[0050] Human-computer interaction (HOC) is a UI (User Interface) that is realized through hardware input and output such as touch panels and touch buttons.
[0051] The service search searches for identity models within the blockchain network and obtains service access addresses for digital identity services.
[0052] My Identity allows users of an application to register their identity with a digital identity service provider and obtain an identity identifier and identity profile.
[0053] MyEvidence allows application users to submit an evidence request to a digital identity service provider, obtain identity evidence, and generate an identity certificate.
[0054] Evidence verification provides users on the reviewing side with features for identity verification, profile inquiries, evidence review, and certificate verification.
[0055] The TEE trusted environment is the TEE trusted environment inherent in the terminal device itself, providing management of user privacy data and trusted applications. This includes user private key management and signing and decryption operations using private keys. All computational processing on privacy data is performed in a trusted environment, protecting the user's privacy security.
[0056] The TEE interface layer is the communication interface between the TEE environment and the outside world. The operating system layer refers to the operating system installed on the device itself, such as Android® or iOS.
[0057] The hardware layer consists of terminal hardware devices, including chips, memory, touch panels, and the like.
[0058] Smart contracts are responsible for issuing digital identity services, adding identity registrations to the blockchain, adding evidence issuance to the blockchain, user screening, and adding key information such as credit ratings to the blockchain, making it easier to search and trace back.
[0059] This embodiment employs a decentralized service-oriented software architecture, where the relationship between the issuing authority, users, and verifiers is many-to-many, linked via a blockchain network. Users register with the issuing authority, which issues digital identity IDs to users, publishes these digital identity IDs, and adds them to the blockchain. Based on the digital identity IDs on the chain, the corresponding public key can be obtained and used for signature verification. The blockchain Merkle tree high-speed verification technology is adopted for data identity authentication, solving the security problem of data privacy leakage that exists in conventional identity verification. In this embodiment, multiple identity attributes can be verified at once using the Merkle tree high-speed verification technology, resulting in higher efficiency.
[0060] In one embodiment, the user's registered identity attributes are organized using the Merkle tree method, and the Merkle roof of the Merkle tree is calculated. The organization method is shown in Figure 3. When identity attributes are organized using the Merkle tree method, the Merkle tree can be called an identity attribute tree.
[0061] In one embodiment, the issuing mechanism issues digital identity evidence, which can employ a graphic representation method. The graphic representation includes all identity attributes, a Merkle roof of the identity attribute tree, a Merkle roof of the issuing mechanism, and a signature on the identity evidence content. Verifiable effects of the identity evidence can be achieved by verifying the signature and Merkle roof. The graphic identity evidence is shown in Figure 6. Here, the display order of the evidence attributes is the positional order of the leaf nodes in the Merkle tree.
[0062] In one embodiment, a user with evidence can select and publish some identity attributes to generate an identity certificate, which can employ a graphic representation method. The graphic includes some of the published identity attributes, a Merkle roof of the identity attributes, a verification path for the Merkle roof, and the issuing authority's signature on the Merkle roof. The user's signature on the contents of the identity certificate verifies the signature, and the Merkle roof is verified based on the published attributes and verification path to achieve a verifiable effect of the identity certificate. The graphic identity certificate is shown in Figure 2. Here, the display order of the published identity attributes is the positional order of the leaf nodes in the Merkle tree, and non-published identity attributes are displayed as if they were mosaicked.
[0063] In this embodiment, a verification method using 2D code scanning is introduced to the graphical representation method of identity evidence and identity certificates, making it possible to easily examine and verify the evidence and certificates.
[0064] In one embodiment, the identity verification method relates to a model registration flow, an identity registration flow, an identity evidence application flow, an identity certificate generation flow, and an identity certificate review flow. The model registration flow is the flow in which the issuing authority creates a model and publishes the digital identity service on the blockchain. The identity registration flow is the flow in which a user searches for an identity model on the blockchain, registers with the issuing authority, creates a profile, and applies for identity evidence. The identity evidence application flow is the flow in which the issuing authority issues verifiable identity evidence to the applicant user and adds the process to the blockchain to store the evidence. The identity certificate generation flow is the flow in which a user selects and publishes some of the identity attributes of the identity evidence and generates an identity certificate. The identity certificate review flow is the flow in which the reviewing authority examines the validity of the evidence when only a small amount of the user's identity attributes are obtained, and verifies the reliability and validity of the identity certificate. The following describes each of the above flows in detail.
[0065] Refer to Figure 8, which is a flowchart of the model registration flow. Here, model registration refers to the registration of identity models, and the issuing authority creates identity models, with each type of identity model corresponding to one type of digital identity. A single user can register different identity models from one issuing authority, or different identity models from different issuing authorities. The model registration flow is as follows: First, the issuing authority creates an identity model using the model management function of the digital identity system and writes the model parameters of the identity model, the model parameters including name, version and model metadata information, Next, after creating the identity model, the process involves configuring evidence information related to the identity model using the template configuration function of the model management, the configuration contents including a name and a template file (used for graphical representation of the evidence), Next, after successfully issuing an identity model, the model management system adds the created identity model to the blockchain, and the information added to the blockchain includes the model ID, name, metadata information, and service access address, facilitating user search and access. Finally, the model management includes a step in which it sends a creation success message back to the issuing mechanism.
[0066] Refer to Figure 9, which is a flowchart of the identity registration flow. In this flow, the user searches for a relevant identity model from the blockchain using the application APP, obtains a service access address based on the identity model, and registers their identity with the service provider corresponding to the service access address. The issuing institution generates a digital identity ID for the user, creates a profile, and adds the user's digital identity to the blockchain. The identity registration flow is: First, the user enters the "Service Search" screen of the app, searches for a service from the blockchain, and obtains a service access address. Next, the user enters the "My Identity" function screen of the app and registers their identity, and the registration information includes the individual account, model, version, and the user's public key. Next, the digital identity service issues a Digital Identity document (DID) to the user, creates a user profile, adds the DID and user profile to the blockchain to store evidence and facilitate retrieval by the reviewing body, and the user profile does not contain the user's private information. Finally, the digital identity service sends a registration success message and replies with the user's digital identity ID.
[0067] Refer to Figure 10, which is a flowchart of the identity certificate application flow. After completing identity registration, users can apply for identity proof to the digital identity service deployed on the server side. The identity proof includes identity model information, a Merkleroof of identity attributes, and a signature on the Merkleroof of the issuing authority. Furthermore, the issuing authority adds the process to the blockchain to store the evidence and facilitate retrospection. The identity certificate application flow is: First, the user enters the "My Evidence" function screen of the application app, selects the corresponding identity model from the registered identity, and submits the evidence application to the digital identity service deployed on the server side. Then, after the system administrator reviews and approves it, the data identity service constructs a Merkle tree and calculates a Merkle roof based on the identity attributes. Next, the issuing authority signs the Merkleroof using the issuing authority's private key, generating identity evidence that includes two types of display formats: graphic and text. Next, the issuing authority signs the identity evidence with a private key and adds the issuance process to the blockchain to store the evidence (the information added to the blockchain includes the issuing authority's identity ID, the identity evidence ID, the Merkleroof, and the user's digital identity ID, etc.), Finally, the process includes the steps of the data identity service returning identity verification to the application app, and the application app returning identity verification to the user.
[0068] Refer to Figure 11, which is a flowchart of the identity certificate generation flow. The user selects and publishes some of the identity attributes in the identity evidence to generate an identity certificate. (For example, employment evidence generates an employment certificate, and degree evidence generates a degree certificate). The identity certificate includes the published identity attributes, the Merkleroof, the issuing authority's signature on the Merkleroof, a verification path to verify that the published identity attributes belong to the Merkleroof, and the user's signature on the identity certificate. The certificate generation flow is: First, the user enters the "My Proof" function screen of the application app, selects an already issued identity proof, and clicks to generate an identity certificate. Then, the user selects one or more identity attributes from the identity evidence to be made public, clicks to submit, Next, the application APP generates an identity certificate, signs the identity certificate with the user's private key, and obtains an identity certificate that includes the user's signature. Finally, the application app will return the identity verification document.
[0069] Referring to Figure 12, which is a flowchart of the identity document review flow. The reviewing party verifies the reliability and validity of the identity document. The identity document includes some publicly disclosed identity attributes, the Merkle roof of the Merkle tree in which some identity attributes are located, and the verification path. By simulating the verification path, the validity of some publicly disclosed identity attributes can be verified, thus avoiding the risk of leakage of other private information of the user. The review of the identity document can also be understood as the authentication of the identity document, and the result of the review of the identity document is the authentication result of the identity document. The identity document review flow is: First, the reviewing party enters the application's "Certificate Verification" function screen, scans the verification 2D code in the picture of the identity document provided by the user, and performs identity document verification. Then, the application app retrieves the user profile from the blockchain based on the user's digital identity ID, retrieves the user's public key from the user profile, and verifies the validity of the user's signature on the identity certificate (Verification 1), Next, the application APP retrieves the issuing authority's profile from the blockchain based on the issuing authority's digital identity, retrieves the issuing authority's public key from the issuing authority's profile, and verifies the validity of the issuing authority's signature to the Merkleroof (Verification 2). Next, the application simulates the verification path based on the published identity attributes and verifies whether the simulated verification path matches the verification path in the identity certificate (Verification 3), Finally, if all of the above verifications 1-3 are passed, the review result is determined to be that the identity document has passed the review. If any of the above verifications 1-3 are not passed, the review result is determined to be that the identity document has not passed the review. The reviewing body then adds the results of the verification to the blockchain to preserve the evidence, incorporates the fraudulent act of forging the certificate into the user's credit record, and facilitates subsequent retrospective actions.
[0070] In this embodiment, the method of completing identity verification by disclosing only a portion of the user's identity attributes using blockchain Merkle Roof high-speed verification technology, the graphic display method for identity certificates, and the 2D code verification method for identity certificates not only solve the problem of protecting personal privacy data, but also matches current user habits, is highly user-friendly, and facilitates the market penetration of the product.
[0071] Furthermore, the above examples in the embodiments of this application are described illustratively for the sake of ease of understanding and do not limit the technical solutions of the embodiments of this application.
[0072] The above division of steps into various methods is merely for the purpose of clarifying the explanation, and integrating them into a single step or dividing some steps into multiple steps during implementation is within the scope of this patent, as long as it includes the same logical relationship, and adding unnecessary modifications or introducing unnecessary designs to the algorithm or flow without changing the core design of the algorithm and flow is also within the scope of this patent.
[0073] One embodiment of the present invention, as shown in Figure 13, includes at least one processor 1301 and a memory 1302 that is communicated to the at least one processor 1301, wherein the memory 1302 stores instructions that can be executed by the at least one processor 1301, and when the instructions are executed by the at least one processor 1301, at least one processor 13 can perform the identity authentication method described above.
[0074] Here, the memory 1302 and the processor 1301 are connected by a bus, the bus may include any number of interconnected buses and bridges, and the bus connects one or more processors 1301 and various circuits of the memory 1302. The bus may further connect various other circuits such as peripherals, regulators and power management circuits, all of which are known to those skilled in the art and therefore will not be described further herein. The bus interface provides an interface between the bus and the transceiver. The transceiver may be a single element or a plurality of elements, such as a plurality of receivers and transmitters, and provides a unit for communicating with various other devices on a transmission medium. Data processed by the processor 1301 is transmitted wirelessly via an antenna, and the antenna further receives and transmits data back to the processor 1301.
[0075] The processor 1301 is responsible for managing the bus and normal processing, and can also provide various functions including timing, peripheral interfaces, voltage regulation, power management, and other control functions. The memory 1302 can be used to store data used by the processor 1301 when performing operations.
[0076] Embodiments of the present invention further provide a computer-readable storage medium for storing a computer program. The computer program implements embodiments of the above method when executed by a processor.
[0077] As those skilled in the art will understand, all or some of the steps in the methods of the above embodiments can be completed by instructing the relevant hardware by a program, which is stored in a storage medium and includes several instructions to cause a device (which may be a single-chip microcontroller, a chip, etc.) or processor to perform all or some of the steps in the methods of each embodiment of the present application. The aforementioned storage mediums include various media capable of storing program code, such as U disks, removable hard disks, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.
[0078] As those skilled in the art will understand, the above embodiments are specific examples for realizing the present application, and various modifications can be made in form and detail without departing from the spirit and scope of the embodiments of the present application when actually using them.
Claims
1. An identity authentication method performed by at least one processor included in an electronic device, A step of obtaining a user's identity certificate, wherein the identity certificate includes the user's identity attributes and a Merkleroof verification path, and the Merkleroof verification path in the identity certificate is a verification path obtained based on the identity attributes that the user selected to disclose when generating the identity certificate; Based on the identity attributes published in the aforementioned identity document, the step of simulating the verification route of the Markleroof, The process includes the step of authenticating the user's identity document based on the simulated verification path and the verification path in the identity document, The identity certificate further includes the user's digital identity ID and the user's signature on the identity certificate using the user's private key, and after obtaining the user's identity certificate, the method further includes the step of obtaining the user's public key from the blockchain based on the user's digital identity ID and verifying the user signature using the user's public key. The step of authenticating the user's identity document based on a simulated verification path and the verification path in the identity document is the step of determining that identity authentication for the user is passed if the simulated verification path matches the verification path in the identity document and the signature verification is passed, wherein the passing of the signature verification includes the step of passing verification of the user's signature. The step of simulating the verification path of the Merkle roof based on the identity attributes published in the identity certificate includes the steps of: calculating the hash value of the identity attributes published in the identity certificate based on the identity attributes published in the identity certificate; and simulating the verification path of the Merkle roof based on the hash value of the published identity attributes and the constructed Merkle tree. The step of simulating the verification path of the Merkle tree based on the published Hash values of the identity attributes and the constructed Merkle tree includes the steps of determining the node corresponding to the published Hash values of the identity attributes in the L1 layer of the Merkle tree and adding the node to the simulation queue T1 corresponding to the L1 layer, and simulating the Merkle tree from bottom to top, sequentially traversing the pair nodes (Hx, Hy) of each layer, and after traversing the pair nodes (Hx, Hy) of each layer, simulating to obtain the verification path of the Merkle tree, wherein the following operation is performed on (Hx, Hy) in the traversed Li layer, and one node in (Hx, Hy) corresponds to the simulation of the Li layer If the node is included in the simulation queue Ti, the Hash values of the other nodes in (Hx, Hy) are added to the verification path, the Hash value of (Hx, Hy) is calculated, and the Hash value of (Hx, Hy) is added to the simulation queue Ti+1 corresponding to the Li+1 layer, where 1 ≤ i < deep, deep is the depth of the Merkle tree. If both nodes in (Hx, Hy) are included in the simulation queue Ti corresponding to the Li layer, the Hash value of (Hx, Hy) is calculated, and the Hash value of (Hx, Hy) is added to the simulation queue Ti+1 corresponding to the Li+1 layer. If there are no nodes in (Hx, Hy) included in the simulation queue Ti corresponding to the Li layer, the next (Hx, Hy) is traversed. Identity verification method.
2. The aforementioned identity document further includes a verification code for the aforementioned identity document, and before obtaining the user's identity document, A step of generating a graphical identity certificate based on the identity attributes that the user has selected to disclose, wherein the graphical identity certificate displays the verification code of the identity certificate. The identity authentication method according to claim 1, further comprising the step of obtaining the result of identity authentication for the user by scanning the verification code in the graphicized identity certificate.
3. The identity certificate further includes the digital identity ID of the issuing authority and the authority's private key, and after obtaining the user's identity certificate, The identity authentication method according to claim 1, further comprising the steps of obtaining the public key of the issuing authority from the blockchain based on the digital identity ID of the issuing authority, and verifying the authority signature using the public key of the issuing authority.
4. The identity authentication method according to claim 3, wherein passing the signature verification includes passing the verification of the institution signature.
5. The step of obtaining the user's public key from the blockchain based on the user's digital identity ID is: A step of obtaining a user profile based on the user's digital identity ID, wherein the user profile is obtained based on the user's identity registration information when the user is registered, and the user profile is stored on the blockchain. The steps include, and / or, obtaining the user's public key from the blockchain based on the user's profile. The step of obtaining the public key of the issuing authority from the blockchain based on the digital identity ID of the issuing authority is: A step of obtaining a profile of the issuing authority based on the digital identity ID of the issuing authority, wherein the profile of the issuing authority is obtained based on the identity registration information of the issuing authority when identity registration is performed with the issuing authority, and the profile of the issuing authority is stored on the blockchain. The identity authentication method according to claim 3, comprising the step of obtaining the public key of the issuing authority from the blockchain based on the profile of the issuing authority.
6. The method for generating the aforementioned identity certificate is: Determine the identity evidence issued to the user, wherein the identity evidence includes all of the user's identity attributes, the Merkleroof of all of the identity attributes, and the signature of the issuing mechanism of the identity evidence by the issuing mechanism's private key. The user determines which identity attributes to be made public from all the identity attributes in the identity evidence, Based on the identity attributes that the user has selected to disclose, the verification path is obtained, The identity authentication method according to any one of claims 1 to 5, comprising generating an identity certificate based on the identity attributes to be disclosed selected by the user, the verification path, and the institution signature, signing the identity certificate with the user's private key to obtain a user signature, and obtaining an identity certificate including the user signature.
7. At least one processor, Includes a memory that is communicated to at least one of the processors, The memory stores instructions that can be executed by the at least one processor, and the at least one processor can execute the identity authentication method described in any one of claims 1 to 5 by executing the instructions. electronic equipment.
8. A computer-readable storage medium for storing a computer program that, when executed by a processor, implements the identity authentication method described in any one of claims 1 to 5.
Citation Information
Patent Citations
Certification method for authenticity of electronic document and publication system thereof
JP2006060722A
Certificate distribution system, certificate distribution method, and certificate distribution program
JP2018117287A
Identity authentication using barcode
JP2018186495A
2D barcode processing method, device, and system
JP2020502674A
Blocked tree authorization and status systems
US20050114666A1