2. Related Work
Traditional cross-domain authentication schemes are usually implemented using public key infrastructure (PKI), but there are vast differences in communication, protocols, and services between different domains, resulting in complex identity certificate management and extremely low authentication efficiency. However, the emergence of blockchain brings a new direction in cross-domain authentication. In view of the performance and security problems of the existing centralized cross-domain authentication, Ref. [
5] proposed a new network cross-domain authentication scheme based on blockchain called Trustroam. In this scheme, it authenticated users and servers in a distributed and anonymous way, which avoids serious problems such as single point of failure and privacy leakage. Ref. [
6] proposed an efficient and secure blockchain-assisted authentication mechanism, which supports the authentication of devices located in different Internet of Things domains. The protocol introduces a consortium blockchain to build trust between different domains and designs an identity management mechanism to keep the authenticated nodes anonymous. In [
7], aiming at the cross-domain data access problem of product manufacturing, the author proposed a centralized cloud cross-domain data sharing platform based on blockchain with multiple security gateways. The platform uses blockchain to store information in a centralized cloud that can be audited, and apps or data providers found to be misbehaving can be penalized using smart contracts. Ref. [
8] proposes a blockchain-based drone intelligent 5G interconnection cross-domain certification plan for the security and privacy issues between drones. This method uses multiple signatures based on threshold sharing to build a collaborative domain and combines with smart contracts to certify reliable communication between cross-domain devices. Ref. [
9] abstracts a general-purpose universal diagram in the certification relationship between IoT intelligent devices, and then converts the certification problem into a signature transitivity problem with the blockchain. Here, the signature only needs to calculate the signatures and witnesses of the relevant edges, which can effectively reduce the pressure of digital signature authentication. All the above studies use key pair as the unique identification of user identity authentication, and the real identity of the current key user cannot be determined during authentication, resulting in the risk of account attack.
With the enhancement of computer computing capabilities, more and more terminal devices have supported biological characteristics detection, so some researchers have considered introducing biological characteristics to further improve the security of blockchain identity certification [
10]. In order to verify user identity, Ref. [
11] proposes a new authentication security framework. This framework uses a novel verification secure framework based on fusion algorithm, which combines radio frequency identification (RFID) and finger vein (FV) biometric characteristics to improve the randomness and security of the system, and combines blockchain and steganography technology to ensure the confidentiality, integrity and availability of user information. Ref. [
12] Designed a multi-purpose iris authentication system. The system uses homogenic encryption technology to encrypt the iris feature information and save it on the blockchain during the authentication certification and high accuracy. Aiming at the common user privacy problem in the Industrial Internet of Things, Ref. [
13] proposed a new intelligent industry identity management system based on blockchain. The system provides participants with anonymous credentials through biometric and fuzzy extractors, and supports selective disclosure, suspension/unfreezing, and revocation of credentials. Aiming at the problems of biometric information leakage risk, unreliable authentication module, and opaque biometric information management in the biometric authentication system, Ref. [
14] proposed a biometric authentication system based on blockchain. The system improves the security and reliability of existing biometric authentication systems by fragmenting biometric templates and managing them with the decentralized and tamper-proof mechanism of blockchain. Ref. [
15] proposes a blockchain based framework that allows secure, transparent and privacy protected biometric authentication. The framework manages biometric data using distributed DID, and allows users to have autonomous and controllable electronic identities, so that they can fully control their own biometric identity information and ensure the security of user information. In view of the challenges faced by blockchain in storing private files and granting access rights, Ref. [
16] proposes a biometric-based blockchain file storage and access authorization scheme. In this scheme, the requests and responses for file storage and access are all executed on the blockchain, and the file owner is not required to store any information locally, so it can be used on devices with limited resources.
In summary, although there are some blockchain-based cross-domain authentication methods, so far less of them can combine security, privacy, versatility, and robustness, making it difficult to apply to complex scenarios in real life. Therefore, it is urgent to research an efficient and universal cross-domain authentication algorithm.
4. Main Protocol Processes
The main protocol processes include three parts: local domain registration, local domain authentication, and cross domain authentication. The specific certification procedures of the cross-domain identity certification agreement is based on face recognition. When a user registers to the system, the user’s primitive face information will be sent to a smart contract. The smart contract first calls the ResNet face feature extraction model on it for feature extraction, and then encrypts the extracted person’s face features to the chain. In the authentication process, besides verifying the user’s private key, the user also needs to send the primitive face to the smart contract. The authentication process first calls the ResNet face feature extraction algorithm on the Authentication Service Center node for feature extraction, and then executes the face feature authentication algorithm on smart contract to compare the extracted feature value with the existing user’s feature value on the chain, and finally draws the conclusion whether the authentication is successful.
Table 1 illustrates the specific symbols and meanings used in this agreement.
4.1. Local Domain Registration
The registration process of local domain is shown in
Figure 5, which can be divided into three stages: certificate generation stage, face collection stage, and contract registration stage.
- 1.
The fundamental processes of certificate generation are as follows:
Step 1.1: User starts the client and inputs username , password , and other necessary information.
Step 1.2: The client generates the current timestamp and encrypts the registration information with the public key of the local domain authentication service center AS: .
Step 1.3: The client sends the encrypted result to the local authentication service center .
Step 1.4: decrypts the registration information with its own private key: .
Step 1.5: check whether the username has been registered and whether it meets the user-name specifications. Subsequently, it checks whether the user-password meets the basic security requirements, and checks if is a valid timestamp lastly. If the timestamp is within three minutes, the request is considered valid and proceeds to the next step.
Step 1.6: send registered data to the Certificate Service Center .
Step 1.7: generates the identity certificate according to the user information through the elliptic curve cryptosystem, and returns it to the local authentication service center . Where is the user’s public key and is the user’s private key.
- 2.
The face collection stage includes:
Step 2.1: stores the received local certificate information temporarily and calls the function to notify the client to collect the user’s primitive face information.
Step 2.2: The face-information-collection module collects the user’s primitive face information through the user’s interface and returns it to the client.
Step 2.3: The client generates the current timestamp and encrypt the information with the public key of the local domain authentication service center : .
Step 2.4: The client sends the user encrypted information to .
Step 2.5: decrypts the encrypted information with its own private key : . check if is a valid timestamp. If the timestamp is within three minutes, the request is considered valid and is proceeded to the next step.
- 3.
The contract registration stage includes:
Step 3.1: The Authentication Service Center calls the face feature extraction model to extract the biometric code of face feature : .
Step 3.2: The smart contract on the consortium chain is called for user registration and gets the input parament registration information from .
Step 3.3: The smart contract uses user public key to encrypt biometric code: .
Step 3.4: The smart contract broadcasts the user’s registration information to the entire network: and notifies the successful registration result.
Step 3.5: The sends the user certificate to the user to notify that the registration is successful and deletes all local registration information.
4.2. Local Domain Authentication
Figure 6 shows the authentication process in local domain, which can be divided into three stages: certificate generation stage, face collection stage, and contract authentication stage.
- 1.
The certificate generation stage includes:
Step 1.1: User opens the client, inputs the account and selects the registered private key .
Step 1.2: The client generates the current timestamp and encrypts using the user’s private key : .
Step 1.3: The client sends the certificate authentication information to the local Authentication Service Center .
Step 1.4: Checks whether is a legitimate user. The username must be registered and not revoked. Check if is a valid timestamp. If the timestamp is within three minutes, the request is considered valid and proceeds to the next step.
Step 1.5: uses ’s public key to decrypt : , if is verified and passed.
- 2.
The face collection phase includes:
Step 2.1: invokes the smart contract to query face authentication information and passes in parameter .
Step 2.2: The smart contract calls to get face authentication information according to and returns the face information to .
Step 2.3: returns to the client and notifies the client to collect the primitive face information of the user.
Step 2.4: The client uses user’s private key to decrypt to get the face feature code: .
Step 2.5: The client invokes the function to notify the primitive face-information-collection module to collect the user’s primitive face information.
Step 2.6: The face-information-collection module collects the user’s primitive face information from the user and returns it to the client.
Step 2.7: The client generates the current timestamp and encrypt the authentication information with the public key of the local domain authentication service center AS: .
Step 2.8: The client packages the face authentication request as and sends it to .
- 3.
The contract certification stage includes:
Step 3.1: decrypts the authentication request using its own private key: . check if is a valid timestamp. If the timestamp is within three minutes, the request is considered valid and proceeds to the next step.
Step 3.2: calls face feature extraction model to extract the biological characteristics of face information : .
Step 3.3: invokes the smart contract on the consortium chain to authenticate the user’s face and input the face authentication information .
Step 3.4: Smart contracts use to encrypt : .
Step 3.5: Smart contracts get face authentication information through the function , and then judge whether . If it is true, the smart contract will continue the next step.
Step 3.6: Smart contract invokes face feature authentication algorithm to judge whether two face features belong to the same person: . If the result is , the authentication passes.
Step 3.7: The smart contract notifies both and the user of the authentication result.
4.3. Cross-Domain Authentication
Figure 7 shows the cross-domain authentication process, which can be divided into four stages: the local certificate authentication stage, local face collection stage, cross-domain certificate authentication stage and contract face authentication stage.
- 1.
Certificate authentication in the local domain includes:
Step 1.1: User of domain A opens the client, inputs the account and selects the registered private key .
Step 1.2: The client in domain A generates the current timestamp and encrypts with the private key : .
Step 1.3: The client sends authentication information to the authentication service center of the consortium chain in domain A.
Step 1.4: check whether is a legitimate user. The username must be registered and not revoked. Check if is a valid timestamp. If the timestamp is within three minutes, the request is considered valid and proceeds to the next step.
Step 1.5: decrypts using ’s public key : , and check if . The equal value means the timestamp with user’s signature is accepted, then the domain certificate of the user is authenticated.
Step 1.6: generates a unique endorsement for the user. encrypts the public key of User with its private key : , and takes the encrypted result as user’s endorsement.
- 2.
The local domain face collection stage includes:
Step 2.1: invokes the smart contract to query face authentication information and passes in parameter .
Step 2.2: Smart contract gets face authentication information by calling the function , and returns human face information to .
Step 2.3: package the face authentication information and endorsement encryption information of the user on the chain as , and send the package to the client.
Step 2.4: The client uses user’s private key to decrypt to get the face feature code: .
Step 2.5: The client invokes the function to notify the primitive face-information-collection module to collect the user’s primitive face information.
Step 2.6: The above face-information-collection module collects the user’s primitive face information from the user and returns the information to the client.
Step 2.7: The client uses the public key of authentication service center in domain B to encrypt and : .
Step 2.8: The client generates the current timestamp and encrypts with the private key : .
Step 2.9: The client packages the cross-domain authentication request as and sends it to .
- 3.
Cross-domain certificate authentication includes:
Step 3.1: After receiving the authentication data, the authentication service center in domain B decrypts with the public key of the authentication service center in domain A: , if , the procedure continues to the next step.
Step 3.2: decrypts with its own private key: .
Step 3.3: checks whether is a valid timestamp. If the value is a timestamp within three minutes, the request is considered valid and proceeds to the next step.
Step 3.4: uses the received user public key to decrypt : . If , the cross-domain certificate authentication succeeds.
Step 3.5: The invokes the face feature extraction model to extract the biometric code of face feature: .
- 4.
The contract face authentication stage includes:
Step 4.1: invokes the smart contract on the consortium chain to authenticate the user’s face and input the face authentication information .
Step 4.2: Smart contracts use encryption : .
Step 4.3: The smart contract gets the face authentication information through the function , and then judges whether . If it is true, the smart contract will continue the next step.
Step 4.4: The smart contract invokes the face feature authentication algorithm to judge whether the two face features belong to the same person: , if the result is , the authentication passes; otherwise, the authentication fails, and the contract face authentication phase ends.
Step 4.5: The smart contract notifies both and the user of the authentication results.