Trusted computing remote attestation method and device, computer device and storage medium
By utilizing random verification information and trusted proof information and root certificates on the blockchain in the trusted computing remote proof method, the problem of low security in traditional methods is solved, and accurate verification and freshness proof of signature information are achieved.
Patent Information
- Application Number
- CN202210036891.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-01-13
- Publication Date
- 2026-08-25
- Estimated Expiration
- 2042-01-13
AI Technical Summary
Traditional trusted computing remote proof methods are not very secure and cannot guarantee the accuracy of verification results.
A remote proof request is generated by obtaining random verification information, output to the party being verified, and receives the random signature information and digital signature certificate. The signature information is then verified using trusted proof information and root certificates on a pre-set blockchain to ensure its freshness and trustworthiness.
It improves the security and accuracy of remote verification, ensures that the verified party is in a trusted execution environment, and realizes secure verification and freshness proof of signature information.
Smart Images

Figure CN116484347B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of computer technology, and in particular to a trusted computing remote verification method, apparatus, computer device, and storage medium. Background Technology
[0002] With the development of computer technology, trusted computing remote proof technology has emerged. Trusted computing remote proof is an essential step for privacy computing using a trusted execution environment. Its main function is to prove to a remote end that the logic running in a trusted computing environment has not been tampered with. In the case of SGX (software guard extensions), it means proving that the software of the computing environment runs securely in the SGX secure memory enclave.
[0003] In traditional technologies, trusted computing remote authentication methods based on SGX mainly include the DCAP (Data Center Attestation Service) method. This method only requires a one-time network connection during the registration phase to complete the storage of the PCK certificate, and then the DCAP remote authentication service can be used in the subsequent intranet.
[0004] However, traditional methods have security issues and cannot guarantee the accuracy of verification results. Summary of the Invention
[0005] Therefore, it is necessary to provide a trusted computing remote verification method, apparatus, computer equipment, storage medium, and program product that can improve security and achieve accurate verification in response to the above-mentioned technical problems.
[0006] A trusted computing remote proof method, the method comprising:
[0007] Obtain random verification information and generate a remote proof request based on the random verification information;
[0008] Output a remote proof request to the verified party, receive the signature random information and signature digital certificate from the verified party. The verified party is a trusted computing executor. The signature digital certificate is generated by the verified party after signing the trusted digital certificate. The trusted digital certificate is issued to the verified party by a trusted authority.
[0009] Obtain the trusted proof information of the verified party and the root certificate of the trusted institution from the preset blockchain;
[0010] When the signature digital certificate passes the verification based on the root certificate and trusted proof information, the signature random information is verified based on the signature digital certificate and random verification information.
[0011] When the verification of the random signature information passes, the remote proof is deemed successful.
[0012] A trusted computing remote proof device, the device comprising:
[0013] The first acquisition module is used to acquire random verification information and generate a remote proof request based on the random verification information.
[0014] The receiving module is used to output a remote proof request to the verified party, receive the signature random information and signature digital certificate fed back by the verified party. The verified party is a trusted computing executor. The signature digital certificate is generated by the verified party after signing the trusted digital certificate. The trusted digital certificate is issued to the verified party by a trusted authority.
[0015] The second acquisition module is used to obtain the trusted proof information of the verified party and the root certificate of the trusted institution from the preset blockchain.
[0016] The verification module is used to verify the random signature information based on the signature digital certificate and the random verification information when the signature digital certificate passes the verification based on the root certificate and the trusted proof information.
[0017] The processing module is used to determine that the remote proof is successful when the verification of the random signature information is successful.
[0018] A computer device includes a memory and a processor, the memory storing a computer program, and the processor executing the computer program performing the following steps:
[0019] Obtain random verification information and generate a remote proof request based on the random verification information;
[0020] Output a remote proof request to the verified party, receive the signature random information and signature digital certificate from the verified party. The verified party is a trusted computing executor. The signature digital certificate is generated by the verified party after signing the trusted digital certificate. The trusted digital certificate is issued to the verified party by a trusted authority.
[0021] Obtain the trusted proof information of the verified party and the root certificate of the trusted institution from the preset blockchain;
[0022] When the signature digital certificate passes the verification based on the root certificate and trusted proof information, the signature random information is verified based on the signature digital certificate and random verification information.
[0023] When the verification of the random signature information passes, the remote proof is deemed successful.
[0024] A computer-readable storage medium having a computer program stored thereon, the computer program performing the following steps when executed by a processor:
[0025] Obtain random verification information and generate a remote proof request based on the random verification information;
[0026] Output a remote proof request to the verified party, receive the signature random information and signature digital certificate from the verified party. The verified party is a trusted computing executor. The signature digital certificate is generated by the verified party after signing the trusted digital certificate. The trusted digital certificate is issued to the verified party by a trusted authority.
[0027] Obtain the trusted proof information of the verified party and the root certificate of the trusted institution from the preset blockchain;
[0028] When the signature digital certificate passes the verification based on the root certificate and trusted proof information, the signature random information is verified based on the signature digital certificate and random verification information.
[0029] When the verification of the random signature information passes, the remote proof is deemed successful.
[0030] A computer program product includes a computer program that, when executed by a processor, performs the following steps:
[0031] Obtain random verification information and generate a remote proof request based on the random verification information;
[0032] Output a remote proof request to the verified party, receive the signature random information and signature digital certificate from the verified party. The verified party is a trusted computing executor. The signature digital certificate is generated by the verified party after signing the trusted digital certificate. The trusted digital certificate is issued to the verified party by a trusted authority.
[0033] Obtain the trusted proof information of the verified party and the root certificate of the trusted institution from the preset blockchain;
[0034] When the signature digital certificate passes the verification based on the root certificate and trusted proof information, the signature random information is verified based on the signature digital certificate and random verification information.
[0035] When the verification of the random signature information passes, the remote proof is deemed successful.
[0036] The aforementioned trusted computing remote proof method, apparatus, computer equipment, storage medium, and program products, by acquiring random verification information, generating a remote proof request based on the random verification information, and outputting the remote proof request to the party being verified, can initiate a remote proof process to the party being verified. By receiving the signature random information and signature digital certificate fed back by the party being verified, and obtaining the trusted proof information of the party being verified and the root certificate of the trusted institution from a preset blockchain, it can achieve secure verification of the signature digital certificate based on the root certificate and trusted proof information on the blockchain that are not easily changed, determine that the party being verified is a trusted execution environment certified by the trusted institution, and improve the security of remote proof by verifying the signature random information based on the signature digital certificate and random verification information through freshness proof. When the verification of the signature random information passes, the remote proof is determined to be successful. The entire process can improve verification security and achieve accurate verification by utilizing the root certificate and trusted proof information on the blockchain that are not easily changed and by performing freshness proof on the signature random information based on the signature digital certificate and random verification information. Attached Figure Description
[0037] Figure 1 This is a diagram illustrating the application environment of a trusted computing remote proof method in one embodiment.
[0038] Figure 2 This is a flowchart illustrating a trusted computing remote proof method in one embodiment;
[0039] Figure 3 This is a flowchart illustrating the trusted execution environment initialization phase in one embodiment;
[0040] Figure 4 This is an application scenario diagram of a trusted computing remote proof method in one embodiment;
[0041] Figure 5 This is a schematic diagram of a specific authentication process for remote verification in one embodiment;
[0042] Figure 6 This is a flowchart illustrating a trusted computing remote proof method in another embodiment;
[0043] Figure 7 This is a structural block diagram of a trusted computing remote proof device in one embodiment;
[0044] Figure 8 This is an internal structural diagram of a computer device in one embodiment. Detailed Implementation
[0045] To make the objectives, technical solutions, and advantages of this application clearer, the following detailed description is provided in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are merely illustrative and not intended to limit the scope of this application.
[0046] The trusted computing remote proof method provided in this application can be applied to, for example... Figure 1 In the application environment shown, the verifier 102 communicates with the verified party 104 via a network. Before outputting the data to be processed to the verified party 104, the verifier 102 needs to perform trusted computing remote proof on the verified party 104 to confirm whether the verified party 104 is a trusted execution environment. At this time, the verifier 102 obtains random verification information, generates a remote proof request based on the random verification information, outputs the remote proof request to the verified party 104, and receives the signature random information and signature digital certificate fed back by the verified party 104. The verified party 104 is a trusted computing executor. The signature digital certificate is generated by the verified party 104 after signing the trusted digital certificate. The trusted digital certificate is issued to the verified party 104 by a trusted authority. The verifier obtains the trusted proof information of the verified party 104 and the root certificate of the trusted authority from the preset blockchain. When the signature digital certificate is verified successfully based on the root certificate and trusted proof information, the signature random information is verified based on the signature digital certificate and random verification information. When the signature random information is verified successfully, the remote proof is confirmed to be successful. The verifier 102 and the verifiable party 104 can be implemented using independent servers or server clusters composed of multiple servers, or they can be nodes on the blockchain.
[0047] In one embodiment, such as Figure 2 As shown, a trusted computing remote proof method is provided, which can be applied to... Figure 1 Taking the verification method 102 as an example, the following steps are included:
[0048] Step 202: Obtain random verification information and generate a remote verification request based on the random verification information.
[0049] Random verification information refers to randomly generated information used for freshness verification. For example, random verification information could specifically refer to a randomly generated string. Freshness verification refers to verifying whether the random signature information returned by the verified party corresponds to the current remote verification. A remote verification request is a request initiated by the verifier to the verified party, requesting the verified party to prove that the logic running within the verified party's trusted computing environment has not been tampered with.
[0050] Specifically, before the verifier needs to output the data to be processed to the verifier for processing, it needs to perform trusted computing remote verification on the verifier to confirm whether the verifier is a trusted execution environment. Only when the verifier proves that it is a trusted execution environment will the verifier output the data to be processed to the verifier. When trusted computing remote verification is required, the verifier will obtain random verification information and generate a remote verification request based on the random verification information. Trusted computing is a technology promoted and developed by the Trusted Computing Group (Trusted Computing Cluster). Trusted computing technology is based on a trusted computing platform supported by hardware security modules to improve the overall security of the system and to protect data privacy and the integrity and reliability of authentication data. The effect of using trusted computing is that data and program logic within the trusted computing domain cannot be spied on by the external environment unless actively output. A trusted execution environment refers to a trustworthy execution environment that provides a secure execution environment for authorized trusted applications, while also protecting the confidentiality, integrity, and access rights of the resources and data of trusted applications.
[0051] Step 204: Output a remote verification request to the verified party, receive the signature random information and signature digital certificate from the verified party. The verified party is a trusted computing executor. The signature digital certificate is generated by the verified party after signing the trusted digital certificate. The trusted digital certificate is issued to the verified party by a trusted authority.
[0052] The random signature information is obtained by the party being verified signing the random verification information using its own signature private key. The trusted computing executor refers to the party performing trusted computing. The data provider can output its data to be processed to the trusted computing executor so that the trusted computing executor can perform data processing. In this application, the verifier is the data provider.
[0053] Specifically, the verifier sends a remote verification request to the verified party. Upon receiving the request, the verified party provides a trusted digital certificate. This is done by signing the random verification information and the cached trusted digital certificate using its own signing private key, and then sending back the signed random information and the signed digital certificate to the verifier. The signing private key is pre-generated by the verified party. During the Trusted Execution Environment (TEE) initialization phase, the verified party generates two asymmetric key pairs within the Enclave and encrypts and stores the private keys. One key pair is used for signature verification, including the signing public key and the signing private key; the other pair is used for encryption / decryption or key negotiation, including the encryption public key and the encryption private key. For example, the private key can be encrypted using SGX's sealing key.
[0054] The following section will first explain the initialization phase of the trusted execution environment, such as... Figure 3As shown, during the Trusted Execution Environment (TEE) initialization phase, the verified party generates two sets of asymmetric key pairs within the Enclave, calls the interface to generate trusted proof information, calls the blockchain interface to upload the trusted proof information to the preset blockchain for storage, generates a certificate issuance request, and includes the encrypted public key and trusted proof information as extended fields in the certificate issuance request. The signing public key of the certificate issuance request is set, and the signed private key is used to sign the completed certificate issuance request. The signed certificate issuance request is then sent to a trusted authority. Upon receiving the signed certificate issuance request, the trusted authority retrieves the trusted proof information uploaded by the verified party from the preset blockchain and verifies the signed certificate issuance request using the trusted proof information. When the trusted proof information matches the trusted proof information in the extended fields of the signed certificate issuance request, the verification is considered successful, and a trusted digital certificate is issued to the verified party. Upon receiving the trusted digital certificate, the verified party imports the trusted digital certificate into the TEE and performs certificate verification. After successful verification, the trusted digital certificate is loaded and saved. Since trusted organizations upload their root certificates to a pre-defined blockchain for storage, the party being verified can use the following method when verifying a certificate: obtain the root certificate of the trusted organization from the pre-defined blockchain and use the root certificate of the trusted organization to verify the trusted digital certificate.
[0055] Step 206: Obtain the trusted proof information of the verified party and the root certificate of the trusted institution from the preset blockchain.
[0056] A pre-defined blockchain refers to a blockchain designated in advance for storing data. Blockchain is a novel application model of computer technologies such as distributed data storage, peer-to-peer transmission, consensus mechanisms, and encryption algorithms. Essentially, a blockchain is a decentralized database, a chain of data blocks linked using cryptographic methods. Each data block contains information about a batch of network transactions, used to verify the validity of the information (anti-counterfeiting) and generate the next block. A blockchain can include an underlying platform, a platform product service layer, and an application service layer.
[0057] The underlying blockchain platform can include modules for user management, basic services, smart contracts, and operational monitoring. The user management module is responsible for managing the identity information of all blockchain participants, including maintaining public and private key generation (account management), key management, and maintaining the correspondence between user identities and blockchain addresses (access management). Under authorization, it also monitors and audits transactions of certain real identities and provides risk control rule configuration (risk control audit). The basic service module is deployed on all blockchain node devices to verify the validity of business requests. After consensus is reached on valid requests, they are recorded in storage. For a new business request, the basic service first performs interface adaptation parsing and authentication (interface adaptation), and then encrypts the business information using a consensus algorithm (consensus management). The blockchain process involves several layers of data transmission and processing. The first layer, after encryption, transmits the encrypted data consistently and completely to the shared ledger (network communication) and stores it. The second layer, the smart contract module, is responsible for contract registration, issuance, triggering, and execution. Developers can define contract logic using a programming language and publish it to the blockchain (contract registration). Based on the contract terms, the module invokes keys or other events to trigger execution, completing the contract logic. It also provides functions for contract upgrades and cancellations. The third layer, the operations monitoring module, is primarily responsible for deployment, configuration modification, contract settings, cloud adaptation, and real-time visualization of the product's operational status during product release, such as alarms, network monitoring, and monitoring the health status of node devices. The platform's product service layer provides basic capabilities and implementation frameworks for typical applications. Developers can leverage these capabilities and add business characteristics to implement business logic on the blockchain. The fourth layer, the application service layer, provides blockchain-based application services to business stakeholders.
[0058] Trusted proof information refers to proof of the configuration information of the party being verified, used to report the integrity metric value in the configuration register of the party being verified. For example, trusted proof information can specifically refer to the metric report of the configuration register. A root certificate is a certificate issued by a trusted authority to itself, and it is the starting point of the trust chain.
[0059] Specifically, after receiving the signature random information and signature digital certificate from the party being verified, the verifier will call the blockchain interface to obtain the trusted proof information of the party being verified and the root certificate of the trusted institution from the preset blockchain. The verifier will then use the trusted proof information and the root certificate to verify the signature digital certificate and signature random information.
[0060] Step 208: When the signature digital certificate passes the verification based on the root certificate and trusted proof information, the signature random information is verified based on the signature digital certificate and random verification information.
[0061] Specifically, the verifier first verifies the signature digital certificate based on the root certificate and trusted proof information. When the verification of the signature digital certificate based on the root certificate and trusted proof information passes, it indicates that the signature digital certificate is trusted. The verifier then obtains the signature public key from the signature digital certificate, uses the signature public key to perform signature consistency verification on the signature information in the signature random information, and uses random verification information to perform information consistency verification on the random information in the signature random information. When both the signature consistency verification and the information consistency verification pass, it is confirmed that the verification of the signature random information has passed.
[0062] Verifying a signed digital certificate based on the root certificate and trusted proof information involves using the root certificate to verify the certificate issuing authority in the signed digital certificate to determine whether the certificate issuing authority can be trusted, and using trusted proof information to verify the trusted information to be verified in the signed digital certificate to verify whether the trusted information to be verified is consistent with the trusted proof information. When both the certificate issuing authority verification and the trusted proof verification are successful, it indicates that the signed digital certificate is trustworthy, and the verification of the signed digital certificate is considered successful.
[0063] Step 210: When the verification of the random signature information passes, the remote proof is confirmed to be successful.
[0064] Specifically, when the verification of the random signature information passes, it indicates that the verified party is a trusted execution environment, and the verifier will confirm that the remote proof has passed.
[0065] The aforementioned trusted computing remote proof method, by acquiring random verification information, generating a remote proof request based on the random verification information, and outputting the remote proof request to the party being verified, can initiate a remote proof process to the party being verified. By receiving the random signature information and digital signature certificate fed back by the party being verified, and obtaining the party's trusted proof information and the root certificate of the trusted authority from a preset blockchain, it can achieve secure verification of the digital signature certificate based on the immutable root certificate and trusted proof information on the blockchain, determining that the party being verified is a trusted execution environment certified by the trusted authority. By verifying the random signature information based on the digital signature certificate and random verification information, it can improve the security of remote proof through freshness proof. When the verification of the random signature information passes, the remote proof is determined to be successful. The entire process can improve verification security and achieve accurate verification by utilizing the immutable root certificate and trusted proof information on the blockchain to verify the digital signature certificate and to prove the freshness of the random signature information based on the digital signature certificate and random verification information.
[0066] In one embodiment, obtaining the trusted proof information of the verified party and the root certificate of the trusted authority from a pre-defined blockchain includes:
[0067] Call the blockchain interface to send a data retrieval request to a blockchain node on a preset blockchain;
[0068] The system receives trusted proof information from the verified party and root certificate from the trusted institution from the blockchain node. The trusted proof information is uploaded to the blockchain node by the verified party, and the root certificate is uploaded to the blockchain node by the trusted institution.
[0069] Here, the blockchain interface refers to the interface used for communication with blockchain nodes. A data retrieval request is used to request data from the blockchain node. The data retrieval request carries a retrieval identifier, which corresponds to the data to be retrieved. In this embodiment, the retrieval identifier corresponds to the trusted proof information of the verified party and the root certificate of the trusted institution.
[0070] Specifically, after generating trusted proof information, the party being verified will upload it to the blockchain node. Similarly, after issuing the root certificate, the trusted institution will also upload it to the blockchain node. Therefore, when it is necessary to verify the digital certificate and random signature information provided by the party being verified, the verifier will call the blockchain interface and send a data retrieval request to the blockchain node on the preset blockchain. After receiving the data retrieval request, the blockchain node will retrieve the trusted proof information of the party being verified and the root certificate of the trusted institution from the stored data and return the trusted proof information of the party being verified and the root certificate of the trusted institution to the verifier.
[0071] In this embodiment, by calling the blockchain interface and sending a data acquisition request to the blockchain node on the preset blockchain, it is possible to receive the trusted proof information of the verified party that is not easily changed and the root certificate of the trusted institution fed back by the blockchain node. Thus, the trusted proof information and the root certificate can be used to accurately verify the signed digital certificate.
[0072] In one embodiment, before verifying the signature digital certificate based on the root certificate and trusted proof information, the method further includes:
[0073] Verify the certificate authority in the signed digital certificate based on the root certificate;
[0074] Extract the trusted information to be verified from the signed digital certificate, and perform trusted verification on the trusted information to be verified based on the trusted proof information.
[0075] When the verification of the certificate issuing authority and the verification of the trusted proof are both passed, the signature digital certificate is deemed to have passed verification.
[0076] The trusted information to be verified refers to the trusted proof information that exists as an extended field in the signed digital certificate. When the party being verified sends a certificate issuance request to the trusted authority, it will include the trusted proof information as an extended field in the certificate issuance request. Therefore, the trusted digital certificate issued by the trusted authority will contain the trusted proof information. The party being verified can obtain the signed digital certificate by signing the trusted digital certificate. The certificate issuing authority is the organization that issues trusted digital certificates; in this embodiment, it is the trusted authority.
[0077] Specifically, since the root certificate is issued by a trusted authority to itself, it serves to demonstrate that digital certificates issued by trusted authorities are trustworthy. The verifier can use the root certificate to verify the certificate issuing authority in the signed digital certificate, and verify whether the certificate issuing authority is trustworthy. When the certificate issuing authority is a trusted authority, the root certificate can be used to determine that the digital certificate issued by the trusted authority is trustworthy, thus confirming that the verification of the certificate issuing authority has passed.
[0078] Specifically, the verifier will extract the trusted information to be verified from the extended fields of the signed digital certificate. By comparing whether the trusted information to be verified and the trusted proof information are consistent, the verifier will perform a trusted proof verification on the trusted information to be verified. When the trusted information to be verified and the trusted proof information are consistent, the verifier determines that the trusted proof verification has passed. When the verification of the certificate issuing authority is passed and the trusted proof verification is passed, the verifier determines that the signed digital certificate has been verified.
[0079] In this embodiment, by using the root certificate to verify the certificate issuing authority in the signed digital certificate, extracting the trusted information to be verified from the signed digital certificate, and using the trusted proof information to perform trusted proof verification on the trusted information to be verified, the signed digital certificate can be accurately verified through dual verification.
[0080] In one embodiment, the trusted computing remote proof method further includes:
[0081] Determine the validity period of the digital signature certificate and verify its validity based on the validity period;
[0082] When the validity verification passes, the process proceeds to the step of obtaining the trusted proof information of the verified party and the root certificate of the trusted institution from the preset blockchain.
[0083] The certificate validity period refers to the duration during which the certificate is valid, or the period during which the certificate is considered credible. For example, the certificate validity period can specifically refer to a specific time period. For instance, the certificate validity period could be in the form of Y1 year X month X day - Y2 year X month X day.
[0084] Specifically, upon receiving a signed digital certificate, the verifier first needs to verify its validity. This involves determining the certificate's validity period within the certificate and comparing it to the current time. If the current time falls within the certificate's validity period, the verifier determines the validity verification has passed and proceeds to obtain the verified party's trusted proof information and the root certificate of the trusted authority from a pre-defined blockchain for further verification. If the current time does not fall within the certificate's validity period, the verifier determines the validity verification has failed and directly determines the remote proof has failed, without proceeding to the next step.
[0085] In this embodiment, by determining the validity period of the signature digital certificate, the validity can be verified based on the certificate validity period to determine whether the signature digital certificate is valid.
[0086] In one embodiment, verifying the signature random information based on the signature digital certificate and random verification information includes:
[0087] Obtain the signing public key from the signing digital certificate;
[0088] The signature consistency is verified by using the public key to verify the signature information in the random signature information, and the information consistency is verified by comparing the random verification information with the random information in the random signature information.
[0089] The signing public key is the public key corresponding to the trusted digital certificate, set by the party being verified when generating the certificate issuance request. Therefore, when the trusted authority issues a trusted digital certificate to the party being verified, the trusted digital certificate will include the signing public key. The signature information refers to the information generated when the party being verified signs random verification information to obtain the signature random information; that is, the signature of the party being verified. The random information refers to the random verification information contained within the signature random information.
[0090] Specifically, the verifier obtains the signature public key of the verified party from the signature digital certificate, and uses the signature public key to perform signature consistency verification on the signature information in the signature random information to determine whether they are all signatures of the verified party. It also performs information consistency verification by comparing whether the random verification information and the random information in the signature random information are the same. When it is determined that the signature information is the signature of the verified party and the random verification information is the same as the random information, the verification of the signature random information is deemed to have passed.
[0091] It should be noted that since the random verification information is generated by the verifier at the start of this trusted computing remote proof, the freshness can be proven by comparing whether the random verification information is the same as the random information. That is, it can be confirmed whether the random signature information returned by the verifier corresponds to this trusted computing remote proof, which can improve the security of trusted computing remote proof.
[0092] In one embodiment, after verifying the signature random information and determining that the remote proof has passed, the method further includes:
[0093] Obtain the data to be processed and retrieve the encrypted public key of the verified party from the signed digital certificate;
[0094] A session key is randomly generated. The data to be processed is encrypted using the session key to obtain encrypted data information. The session key is then encrypted using the public key to obtain the encrypted session key.
[0095] Send encrypted data and the encrypted session key to the party being verified;
[0096] Receive the data processing results from the party being verified.
[0097] The data to be processed refers to the data that the verifier determines needs to be processed in a trusted execution environment, and is also the reason why the verifier initiates a trusted computing remote certification to the verified party. The verified party's encrypted public key refers to the public key pre-generated by the verified party. After generating the encrypted public key, the verified party will include it as an extension field in the certificate issuance request. Therefore, the verified party's encrypted public key will also exist in the trusted digital certificate issued by the trusted authority. Consequently, the encrypted public key will also exist in the trusted digital certificate signed by the verified party, i.e., the signed digital certificate. The encrypted public key is mainly used for encryption / decryption or key negotiation. The session key refers to a randomly generated key used for encryption.
[0098] Specifically, after the remote authentication of the verified party is successful, indicating that the verified party is a trusted execution environment, the verifier obtains the data to be processed and retrieves the verified party's encrypted public key from the signed digital certificate. It then randomly generates a session key and encrypts the data to be processed using this session key to obtain encrypted data. Next, it encrypts the session key using the encrypted public key to obtain an encrypted session key. The verifier then sends the encrypted data and the encrypted session key to the verified party. Upon receiving the encrypted data and the encrypted session key, the verified party decrypts the encrypted session key using the encrypted private key corresponding to the encrypted public key to obtain the session key. It then uses the session key to decrypt the encrypted data to obtain the data to be processed. The verified party can then process the data and return the processing result to the verifier. Since the decryption process is performed within a trusted execution environment, data security is guaranteed. Furthermore, when the verified party is a blockchain node, the data to be processed may include contract call requests. After receiving the data to be processed, the verified party can perform privacy contract calculations based on these contract call requests, i.e., confidentially execute smart contracts.
[0099] In this embodiment, a session key is randomly generated. This session key is then used to encrypt the data to be processed, resulting in encrypted data information. The session key is then encrypted using a public key, yielding an encrypted session key. The encrypted data information and the encrypted session key are then sent to the party being verified. This allows the establishment of a trusted channel for secure communication with the party being verified, using the public key. It should be noted that after the trusted channel is established, the privacy data will not exist in plaintext during transmission and processing, except within a trusted execution environment, thus ensuring data privacy.
[0100] In one embodiment, after verifying the signature random information and determining that the remote proof has passed, the method further includes:
[0101] The random verification information, random signature information, and digital signature certificate are output to the preset blockchain for storage.
[0102] Specifically, after confirming that the remote proof has passed, the verifier will output the random verification information, the random signature information, and the digital signature certificate to the preset blockchain for storage, so that users on the preset blockchain can directly obtain these remote proof materials to verify the remote proof.
[0103] This application also provides an application scenario in which the aforementioned trusted computing remote proof method is applied. Specifically, the trusted computing remote proof method is applied in this scenario as follows:
[0104] like Figure 4 As shown, trusted computing remote proof mainly involves three execution ends: a trusted authority, a computing power provider (the remotely challenged party) (i.e., the party being verified), and a data provider (the remotely challenged party) (i.e., the verifier). The trusted authority communicates with the computing power provider to issue an authentication certificate (i.e., a trusted digital certificate) to the computing power provider upon receiving a certificate request (i.e., a certificate issuance request) containing the identity and trusted zone. The data provider initiates a challenge (i.e., a remote proof request) to the computing power provider. The computing power provider signs the certificate and the challenge (i.e., random verification information) and sends it back, waiting for the data provider to verify it. Once authentication is complete, the data (i.e., the data information to be processed) is transmitted. This mainly involves three processes: a trusted execution environment initialization process, a specific remote proof authentication process, and a trusted channel establishment process. These three processes are explained below:
[0105] In the Trusted Execution Environment (TEE) initialization process, the challenged party generates two sets of asymmetric key pairs and calls an interface to generate trusted proof information. It then calls a blockchain interface to upload the trusted proof information to a pre-defined blockchain for storage, generating a certificate issuance request. The encrypted public key and the trusted proof information are included as extended fields in the certificate issuance request. The signing public key of the certificate issuance request is set, and the signed private key is used to sign the completed certificate issuance request. The signed certificate issuance request is then sent to a trusted authority. Upon receiving the signed certificate issuance request, the trusted authority retrieves the trusted proof information uploaded by the challenged party from the pre-defined blockchain and verifies the signed certificate issuance request using this trusted proof information. If the trusted proof information matches the trusted proof information in the extended fields of the signed certificate issuance request, the verification is considered successful, and a trusted digital certificate is issued to the challenged party. Upon receiving the trusted digital certificate, the challenged party imports it into the TEE and performs certificate verification. After successful verification, the trusted digital certificate is loaded and saved.
[0106] In the specific authentication process of remote verification, such as Figure 5 As shown, the challenger obtains random verification information, generates a remote proof request based on the random verification information, and outputs the remote proof request to the challenged party (i.e., the challenger initiates a challenge). After receiving the remote proof request, the challenged party uses its own signing private key to sign the random verification information and the cached trusted digital certificate, and then sends back the signature random information and the signed digital certificate to the challenger (i.e., the challenged party provides the certificate and signs it). Upon receiving the random signature information and the digital signature certificate, the challenger verifies both. The verification process is as follows: The validity period of the digital signature certificate is determined, and its validity is verified. If the validity verification passes, the challenger calls the blockchain interface, sends a data retrieval request to a blockchain node on a pre-defined blockchain, and receives the trusted proof information of the challenged party and the root certificate of the trusted authority from the blockchain node. Based on the root certificate, the certificate issuing authority in the digital signature certificate is verified. The trusted information to be verified is extracted from the digital signature certificate, and a trusted proof verification is performed on the trusted information to be verified based on the trusted proof information. When both the certificate issuing authority verification and the trusted proof verification pass, the digital signature certificate verification is considered successful. The signature public key is obtained from the digital signature certificate, and the signature consistency is verified on the signature information in the random signature information based on the signature public key. Information consistency is also verified by comparing the random verification information with the random information in the random signature information. When the random signature information verification passes, the remote proof is considered successful, and authentication is complete.
[0107] In the trusted channel establishment process, the challenger obtains the data to be processed and retrieves the challenged party's encryption public key from the signed digital certificate. The challenger then randomly generates a session key, encrypts the data to be processed using the session key to obtain encrypted data, and encrypts the session key using the encryption public key to obtain an encrypted session key. The challenger then sends the encrypted data and the encrypted session key to the challenged party and receives the data processing results from the challenger.
[0108] Traditional trusted computing remote authentication methods primarily include Intel's officially supported IAS (Intel Attestation Service) and DCAP (Data Center Attestation Service). While IAS is simple to use and easy to deploy, it has two drawbacks: the remote authentication process requires network access to connect to the IAS server and receive the verification result, making it unsuitable for isolated network scenarios such as data centers; and the EPID mechanism it uses is not a standard signature algorithm, requiring improvement in versatility. DCAP, on the other hand, does not rely on Intel's online server. It only requires a one-time network connection during registration to store the PCK certificate, after which the DCAP remote authentication service can be used within the intranet. However, the PCK certificate still uses Intel as the root CA, and deployment still relies on Intel's root certificate.
[0109] The highly feasible SGX-based trusted computing remote proof method proposed in this application features customizable CAs (Certificate Authorities) (without requiring reliance on or trust in the Intel root), agile and flexibly configurable signature algorithms, convenient deployment, and an authentication process that does not require third-party server support (such as IAS servers). Furthermore, the remote proof process includes freshness verification, establishment of a trusted channel between the two parties, or key negotiation, exhibiting good process integrity. This scheme also possesses strong compatibility and scalability, making it applicable to various service architecture designs and scenarios. Additionally, some relatively fixed data required in the remote proof process, such as the third-party CA root certificate and the trusted proof report information from the trusted execution environment, are stored on the blockchain, enhancing traceability and verifiability. Moreover, the relevant remote proof materials after the remote proof process is completed can also be stored on the blockchain, allowing on-chain users to directly access these materials for verification. Then, a trusted channel is established based on the trusted execution environment's certificate for the transmission of private data.
[0110] In one embodiment, such as Figure 6As shown, a flowchart of the trusted computing remote proof method of this application is also provided. The trusted computing remote proof method specifically includes the following steps:
[0111] Step 602: Obtain random verification information and generate a remote proof request based on the random verification information;
[0112] Step 604: Output a remote proof request to the verified party, receive the signature random information and signature digital certificate from the verified party. The verified party is a trusted computing executor. The signature digital certificate is generated by the verified party after signing the trusted digital certificate. The trusted digital certificate is issued to the verified party by a trusted authority.
[0113] Step 606: Determine the validity period of the signature digital certificate and verify its validity based on the validity period;
[0114] Step 608: When the validity verification passes, call the blockchain interface and send a data retrieval request to the blockchain node on the preset blockchain;
[0115] Step 610: Receive the trusted proof information of the verified party and the root certificate of the trusted institution from the blockchain node. The trusted proof information is uploaded to the blockchain node by the verified party, and the root certificate is uploaded to the blockchain node by the trusted institution.
[0116] Step 612: Verify the certificate issuing authority in the signature digital certificate based on the root certificate;
[0117] Step 614: Extract the trusted information to be verified from the digital certificate of signature, and perform trusted verification on the trusted information to be verified based on the trusted proof information.
[0118] Step 616: When the verification of the certificate issuing authority and the verification of the trusted proof are both passed, it is determined that the verification of the signature digital certificate has been passed.
[0119] Step 618: Obtain the signing public key from the signing digital certificate;
[0120] Step 620: Perform signature consistency verification on the signature information in the signature random information based on the signature public key, and perform information consistency verification by comparing the random verification information and the random information in the signature random information;
[0121] Step 622: When the verification of the random signature information passes, the remote proof is confirmed to be successful;
[0122] Step 624: Obtain the data to be processed and retrieve the encrypted public key of the verified party from the signed digital certificate;
[0123] Step 626: Randomly generate a session key, encrypt the data to be processed using the session key to obtain encrypted data information, and encrypt the session key using the encryption public key to obtain an encrypted session key;
[0124] Step 628: Send encrypted data information and encrypted session key to the verified party;
[0125] Step 630: Receive the data processing results from the party being verified.
[0126] It should be understood that although the steps in the flowcharts of the above embodiments are shown sequentially according to the arrows, these steps are not necessarily executed in the order indicated by the arrows. Unless explicitly stated herein, there is no strict order restriction on the execution of these steps, and they can be executed in other orders. Moreover, at least some steps in the flowcharts of the above embodiments may include multiple steps or multiple stages. These steps or stages are not necessarily completed at the same time, but can be executed at different times. The execution order of these steps or stages is not necessarily sequential, but can be performed alternately or in turn with other steps or at least some of the steps or stages in other steps.
[0127] In one embodiment, such as Figure 7 As shown, a trusted computing remote verification device is provided. This device can be a software module, a hardware module, or a combination of both integrated into a computer device. Specifically, the device includes: a first acquisition module 702, a receiving module 704, a second acquisition module 706, a verification module 708, and a processing module 710, wherein:
[0128] The first acquisition module 702 is used to acquire random verification information and generate a remote proof request based on the random verification information.
[0129] The receiving module 704 is used to output a remote proof request to the verified party, receive the signature random information and signature digital certificate fed back by the verified party. The verified party is a trusted computing executor. The signature digital certificate is generated by the verified party after signing the trusted digital certificate. The trusted digital certificate is issued to the verified party by a trusted authority.
[0130] The second acquisition module 706 is used to acquire the trusted proof information of the verified party and the root certificate of the trusted institution from the preset blockchain.
[0131] The verification module 708 is used to verify the random signature information based on the signature digital certificate and the random verification information when the signature digital certificate passes the verification based on the root certificate and the trusted proof information.
[0132] The processing module 710 is used to determine that the remote proof is successful when the verification of the random signature information is successful.
[0133] The aforementioned trusted computing remote proof device, by acquiring random verification information, generating a remote proof request based on the random verification information, and outputting the remote proof request to the party being verified, can initiate a remote proof process to the party being verified. By receiving the random signature information and signature digital certificate fed back by the party being verified, and obtaining the party's trusted proof information and the root certificate of the trusted institution from a preset blockchain, it can achieve secure verification of the signature digital certificate based on the root certificate and trusted proof information that are not easily changed on the blockchain, and determine that the party being verified is a trusted execution environment certified by the trusted institution. By verifying the random signature information based on the signature digital certificate and random verification information, it can improve the security of remote proof through freshness proof. When the verification of the random signature information passes, the remote proof is determined to be successful. The entire process can improve verification security and achieve accurate verification by using the root certificate and trusted proof information that are not easily changed on the blockchain to verify the signature digital certificate and to prove the freshness of the random signature information based on the signature digital certificate and random verification information.
[0134] In one embodiment, the second acquisition module is further configured to call the blockchain interface, send a data acquisition request to the blockchain node on the preset blockchain, and receive the trusted proof information of the verified party and the root certificate of the trusted institution fed back by the blockchain node. The trusted proof information is uploaded to the blockchain node by the verified party, and the root certificate is uploaded to the blockchain node by the trusted institution.
[0135] In one embodiment, the verification module is further configured to verify the certificate issuing authority in the signed digital certificate based on the root certificate, extract the trusted information to be verified from the signed digital certificate, perform trusted proof verification on the trusted information to be verified based on the trusted proof information, and determine that the signed digital certificate has been verified when the verification of the certificate issuing authority and the trusted proof verification are both passed.
[0136] In one embodiment, the receiving module is further configured to determine the validity period of the signed digital certificate, perform validity verification based on the validity period, and when the validity verification passes, proceed to the step of obtaining the trusted proof information of the verified party and the root certificate of the trusted authority from the preset blockchain.
[0137] In one embodiment, the verification module is further configured to obtain the signature public key from the signature digital certificate, perform signature consistency verification on the signature information in the signature random information based on the signature public key, and perform information consistency verification by comparing the random verification information and the random information in the signature random information.
[0138] In one embodiment, the trusted computing remote verification device further includes a communication module, which is used to acquire data information to be processed, obtain the encrypted public key of the verified party from the signed digital certificate, randomly generate a session key, encrypt the data to be processed using the session key to obtain encrypted data information, encrypt the session key using the encrypted public key to obtain an encrypted session key, send the encrypted data information and the encrypted session key to the verified party, and receive the data processing result fed back by the verified party.
[0139] In one embodiment, the trusted computing remote proof device further includes a proof storage module, which is used to output random verification information, random signature information and signature digital certificate to a preset blockchain for proof storage.
[0140] Specific limitations regarding the trusted computing remote verification device can be found in the limitations of the trusted computing remote verification method described above, and will not be repeated here. Each module in the aforementioned trusted computing remote verification device can be implemented entirely or partially through software, hardware, or a combination thereof. These modules can be embedded in or independent of the processor in a computer device in hardware form, or stored in the memory of a computer device in software form, so that the processor can call and execute the operations corresponding to each module.
[0141] In one embodiment, a computer device is provided, which may be a server, and its internal structure diagram may be as follows: Figure 8 As shown, the computer device includes a processor, memory, and a network interface connected via a system bus. The processor provides computational and control capabilities. The memory includes non-volatile storage media and internal memory. The non-volatile storage media stores the operating system, computer programs, and a database. The internal memory provides an environment for the operation of the operating system and computer programs stored in the non-volatile storage media. The database stores data such as random verification information. The network interface communicates with external terminals via a network connection. When the computer program is executed by the processor, it implements a trusted computing remote verification method.
[0142] Those skilled in the art will understand that Figure 8 The structure shown is merely a block diagram of a portion of the structure related to the present application and does not constitute a limitation on the computer device to which the present application is applied. Specific computer devices may include more or fewer components than those shown in the figure, or combine certain components, or have different component arrangements.
[0143] In one embodiment, a computer device is also provided, including a memory and a processor, wherein the memory stores a computer program, and the processor executes the computer program to implement the steps in the above method embodiments.
[0144] In one embodiment, a computer-readable storage medium is provided storing a computer program that, when executed by a processor, implements the steps in the above method embodiments.
[0145] In one embodiment, a computer program product or computer program is provided, the computer program product or computer program including computer instructions stored in a computer-readable storage medium. A processor of a computer device reads the computer instructions from the computer-readable storage medium, and executes the computer instructions, causing the computer device to perform the steps in the above method embodiments.
[0146] Those skilled in the art will understand that all or part of the processes in the methods of the above embodiments can be implemented by a computer program instructing related hardware. The computer program can be stored in a non-volatile computer-readable storage medium, and when executed, it can include the processes of the embodiments of the methods described above. Any references to memory, storage, databases, or other media used in the embodiments provided in this application can include at least one of non-volatile and volatile memory. Non-volatile memory can include read-only memory (ROM), magnetic tape, floppy disk, flash memory, or optical storage, etc. Volatile memory can include random access memory (RAM) or external cache memory. By way of illustration and not limitation, RAM can be in various forms, such as static random access memory (SRAM) or dynamic random access memory (DRAM), etc.
[0147] The technical features of the above embodiments can be combined in any way. For the sake of brevity, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, they should be considered to be within the scope of this specification.
[0148] The embodiments described above are merely illustrative of several implementation methods of this application, and while the descriptions are relatively specific and detailed, they should not be construed as limiting the scope of the invention patent. It should be noted that those skilled in the art can make various modifications and improvements without departing from the concept of this application, and these all fall within the protection scope of this application. Therefore, the protection scope of this patent application should be determined by the appended claims.
Claims
1. A trusted computing remote proof method, characterized in that, The method includes: Obtain random verification information and generate a remote proof request based on the random verification information; The remote proof request is output to the verified party, and the signature random information and signature digital certificate are received from the verified party. The verified party is a trusted computing executor. The signature digital certificate is generated by the verified party after signing the trusted digital certificate. The trusted digital certificate is issued to the verified party by a trusted authority. The validity period of the digital signature certificate is determined, and the validity period is verified by comparing the certificate validity period with the current time node. When the current time node falls within the certificate validity period, the validity verification is determined to be successful, and the trusted proof information of the verified party and the root certificate issued by the trusted institution are obtained from the preset blockchain. Based on the root certificate, the certificate issuing authority in the signature digital certificate is verified to check whether the certificate issuing authority is trustworthy; the trust information to be verified is extracted from the signature digital certificate, and the trust information to be verified is verified by comparing the trust information to be verified with the trust proof information. When the verification of the certificate issuing authority and the verification of the trusted proof are both passed, it is determined that the verification of the signature digital certificate is passed. Based on the signature digital certificate and the random verification information, the signature random information is verified. When the verification of the random signature information passes, the remote proof is deemed successful.
2. The method according to claim 1, characterized in that, The step of obtaining the trusted proof information of the verified party and the root certificate of the trusted institution from the preset blockchain includes: Call the blockchain interface to send a data retrieval request to a blockchain node on a preset blockchain; The system receives the trusted proof information of the verified party and the root certificate of the trusted institution from the blockchain node. The trusted proof information is uploaded to the blockchain node by the verified party, and the root certificate is uploaded to the blockchain node by the trusted institution.
3. The method according to claim 1, characterized in that, The step of verifying the signature random information based on the signature digital certificate and the random verification information includes: Obtain the signing public key from the digital certificate. The signature consistency is verified by using the signature public key to verify the signature information in the random signature information, and the information consistency is verified by comparing the random verification information with the random information in the random signature information.
4. The method according to claim 1, characterized in that, When the verification of the signature random information passes, after determining that the remote proof is successful, the method further includes: Obtain the data to be processed and retrieve the encrypted public key of the verified party from the signed digital certificate; A session key is randomly generated, and the data to be processed is encrypted using the session key to obtain encrypted data information. The session key is then encrypted using the encryption public key to obtain an encrypted session key. Send the encrypted data information and the encrypted session key to the verified party; Receive the data processing results fed back by the party being verified.
5. The method according to claim 1, characterized in that, When the verification of the signature random information passes, after determining that the remote proof is successful, the method further includes: The random verification information, the random signature information, and the digital signature certificate are output to the preset blockchain for storage.
6. A trusted computing remote verification device, characterized in that, The device includes: The first acquisition module is used to acquire random verification information and generate a remote proof request based on the random verification information. The receiving module is used to output the remote proof request to the verified party, receive the signature random information and signature digital certificate fed back by the verified party, wherein the verified party is a trusted computing executor, the signature digital certificate is generated by the verified party after signing the trusted digital certificate, and the trusted digital certificate is issued to the verified party by a trusted authority. The receiving module is further configured to determine the validity period of the signed digital certificate and verify the validity period of the certificate by comparing the validity period of the certificate with the current time node; The second acquisition module is used to determine that the validity verification has passed when the current time node falls within the validity period of the certificate, and to obtain the trusted proof information of the verified party and the root certificate issued by the trusted institution from the preset blockchain. The verification module is used to verify the certificate issuing authority in the signed digital certificate based on the root certificate, so as to verify whether the certificate issuing authority is trustworthy; extract the trust information to be verified from the signed digital certificate, and perform trust verification on the trust information to be verified by comparing the trust information to be verified with the trust proof information; when the verification of the certificate issuing authority passes and the trust proof verification passes, it is determined that the verification of the signed digital certificate passes, and the signature random information is verified based on the signed digital certificate and the random verification information. The processing module is used to determine that the remote proof is successful when the verification of the signature random information is successful.
7. The apparatus according to claim 6, characterized in that, The second acquisition module is further configured to call the blockchain interface and send a data acquisition request to a blockchain node on a preset blockchain; receive the trusted proof information of the verified party and the root certificate of the trusted institution fed back by the blockchain node, wherein the trusted proof information is uploaded to the blockchain node by the verified party and the root certificate is uploaded to the blockchain node by the trusted institution.
8. The apparatus according to claim 6, characterized in that, The verification module is further configured to obtain the signature public key from the signature digital certificate; perform signature consistency verification on the signature information in the signature random information according to the signature public key; and perform information consistency verification by comparing the random verification information and the random information in the signature random information.
9. The apparatus according to claim 6, characterized in that, The trusted computing remote verification device also includes a communication module; The communication module is used to acquire data information to be processed, and to acquire the encryption public key of the verified party from the signature digital certificate; to randomly generate a session key, to encrypt the data to be processed using the session key to obtain encrypted data information, and to encrypt the session key using the encryption public key to obtain an encrypted session key; Send the encrypted data information and the encrypted session key to the verified party; Receive the data processing results fed back by the party being verified.
10. The apparatus according to claim 6, characterized in that, The trusted computing remote proof device also includes a proof storage module; The evidence storage module is used to output the random verification information, the random signature information, and the digital signature certificate to the preset blockchain for evidence storage.
11. A computer device comprising a memory and a processor, wherein the memory stores a computer program, characterized in that, When the processor executes the computer program, it implements the steps of the method according to any one of claims 1 to 5.
12. A computer-readable storage medium storing a computer program, characterized in that, When the computer program is executed by a processor, it implements the steps of the method according to any one of claims 1 to 5.