Data processing method and apparatus, and device and storage medium
By establishing a trusted execution environment in the cloud environment and using virtual image files and decryption keys for encryption, the problem of data management security in third-party cloud environments is solved, and the secure transmission and storage of data is achieved.
Patent Information
- Application Number
- PCT/CN2024/097880
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-06-09
- Filing Date
- 2024-06-06
- Publication Date
- 2024-12-12
AI Technical Summary
In a cloud environment provided by third parties, how to achieve secure and reliable data management to avoid the risk of data leakage.
By establishing a trusted execution environment between the host device and the client device, encrypting with virtual image files and decryption keys, ensuring the security of data during transmission and storage.
Improves the security of the data processing environment, ensures the security of data during the transmission, use and storage stages, reduces the risk of data breaches, and reduces deployment costs.
Smart Images

Figure CN2024097880_12122024_PF_FP_ABST
Abstract
Description
Data processing method, device, equipment and storage medium
[0001] This application claims priority to the Chinese invention patent application entitled “Data processing method, apparatus, device and storage medium” and application number 202310687091X, filed on June 9, 2023. The entire contents of that application are incorporated by reference into this application. Technical Field
[0002] Example embodiments of the present disclosure generally relate to the field of computers, and more particularly, to a data processing method, apparatus, device, and computer-readable storage medium based on a trusted execution environment. Background Art
[0003] With the development of cloud technology, more and more individuals, businesses, and organizations are inclined to upload their data to the cloud for management. However, building a secure and reliable cloud environment requires specialized technical personnel and significant hardware and software costs. Therefore, these individuals, businesses, and organizations often rely on cloud environments provided by third-party companies for data management. However, these third-party cloud environments are untrustworthy. In this situation, how to achieve secure and reliable data management in third-party cloud environments is a pressing technical challenge.
[0004] Summary of the Invention
[0005] In a first aspect of the present disclosure, a data processing method based on a trusted execution environment is provided, comprising: determining, at a host device, a first measurement value based on a first parameter set, the first measurement value being used to describe a target virtual machine hosted on the host device; sending the first measurement value to a client device via a trusted execution environment component of the host device; receiving, from the client device via the trusted execution environment component, a decryption key for decrypting a first virtual image file of the target virtual machine; and, based on the decryption key, running the first virtual image file to start the target virtual machine.
[0006] In a second aspect of the present disclosure, another data processing method based on a trusted execution environment is provided, including: at a client device, receiving a first measurement value from a trusted execution environment component of a host device, the first measurement value being used to describe a target virtual machine hosted on the host device; determining a second measurement value based on a second parameter set, the second measurement value being used to describe the virtual machine expected by the client device; and in response to the second measurement value being consistent with the first measurement value, sending a decryption key for decrypting a first virtual image file of the target virtual machine to the trusted execution environment component of the host device.
[0007] In a third aspect of the present disclosure, a data processing device based on a trusted execution environment is provided, comprising: a first metric value generating module configured to determine a first metric value based on a first parameter set, the first metric value being used to describe a target virtual machine hosted on a host device; a first metric value sending module configured to send the first metric value to a client device via a trusted execution environment component of the host device; a decryption key receiving module configured to receive a decryption key for decrypting a first virtual image file of the target virtual machine from the client device via the trusted execution environment component; and a first virtual image running module configured to run the first virtual image file based on the decryption key to start the target virtual machine.
[0008] In a fourth aspect of the present disclosure, another data processing device based on a trusted execution environment is provided, including: a first measurement value receiving module, configured to receive a first measurement value from a trusted execution environment component of a host device, the first measurement value being used to describe a target virtual machine hosted on the host device; a second measurement value generating module, configured to determine a second measurement value based on a second parameter set, the second measurement value being used to describe the virtual machine expected by the client device; and a decryption key sending module, configured to: in response to the second measurement value being consistent with the first measurement value, send a decryption key for decrypting a first virtual image file of the target virtual machine to the trusted execution environment component of the host device.
[0009] In a fifth aspect of the present disclosure, an electronic device is provided. The device includes at least one processing unit; and at least one memory coupled to the at least one processing unit and storing instructions for execution by the at least one processing unit. When executed by the at least one processing unit, the instructions cause the electronic device to perform the method of the first aspect or the second aspect.
[0010] In a sixth aspect of the present disclosure, a computer-readable storage medium is provided, wherein a computer program is stored on the computer-readable storage medium, and the computer program can be executed by a processor to implement the method of the first aspect or the second aspect.
[0011] It should be understood that the content described in this summary section is not intended to limit the key features or important features of the embodiments of the present disclosure, nor is it intended to limit the scope of the present disclosure. Other features of the present disclosure will become easily understood through the following description. BRIEF DESCRIPTION OF THE DRAWINGS
[0012] The above and other features, advantages and aspects of the embodiments of the present disclosure will become more apparent with reference to the following detailed description in conjunction with the accompanying drawings. In the accompanying drawings, the same or similar reference numerals represent the same or similar elements, wherein:
[0013] 1A and 1B illustrate schematic diagrams of example environments in which embodiments of the present disclosure can be implemented;
[0014] FIG2 shows a signaling interaction diagram of a data processing method according to some embodiments of the present disclosure;
[0015] 3A and 3B are block diagrams illustrating data processing methods according to some embodiments of the present disclosure;
[0016] FIG4 illustrates a flow chart of a data processing process performed by a host device according to some embodiments of the present disclosure;
[0017] FIG5 illustrates a flow chart of a data processing process performed by a client device according to some embodiments of the present disclosure;
[0018] FIG6 shows a schematic structural block diagram of a data processing device according to some embodiments of the present disclosure;
[0019] FIG7 shows a schematic structural block diagram of another data processing device according to some embodiments of the present disclosure; and
[0020] FIG8 illustrates a block diagram of an electronic device in which one or more embodiments of the present disclosure may be implemented. DETAILED DESCRIPTION
[0021] The following describes embodiments of the present disclosure in more detail with reference to the accompanying drawings. Although certain embodiments of the present disclosure are shown in the accompanying drawings, it should be understood that the present disclosure can be implemented in various forms and should not be construed as limited to the embodiments described herein. Rather, these embodiments are provided to provide a more thorough and complete understanding of the present disclosure. It should be understood that the drawings and embodiments of the present disclosure are for illustrative purposes only and are not intended to limit the scope of protection of the present disclosure.
[0022] In the description of the embodiments of the present disclosure, the term "including" and similar terms should be understood as open inclusion, i.e., "including but not limited to". The term "based on" should be understood as "based at least in part on". The term "one embodiment" or "the embodiment" should be understood as "at least one embodiment". The term "some embodiments" should be understood as "at least some embodiments". Other explicit and implicit definitions may be included below.
[0023] Herein, unless explicitly stated otherwise, executing a step “in response to A” does not mean executing the step immediately after “A” but may include one or more intermediate steps.
[0024] It is understandable that the data involved in this technical solution (including but not limited to the data itself, the acquisition or use of the data) must comply with the requirements of relevant laws, regulations and relevant provisions.
[0025] It is understandable that before using the technical solutions disclosed in the various embodiments of this disclosure, the type, scope of use, usage scenarios, etc. of the personal information involved in this disclosure should be informed to the user and the user's authorization should be obtained in an appropriate manner in accordance with relevant laws and regulations.
[0026] For example, in response to a user's active request, a prompt message is sent to the user to clearly inform the user that the operation requested will require the acquisition and use of the user's personal information. This allows the user to independently choose whether to provide personal information to the electronic device, application, server, storage medium, or other software or hardware that performs the operations of the disclosed technical solution based on the prompt message.
[0027] As an optional but non-limiting embodiment, in response to receiving a user's active request, the prompt information may be sent to the user in the form of a pop-up window, in which the prompt information may be presented in text form. Furthermore, the pop-up window may also include a selection control for the user to select "agree" or "disagree" to provide personal information to the electronic device.
[0028] It is understandable that the above notification and user authorization process are merely illustrative and do not limit the embodiments of the present disclosure. Other methods that meet relevant laws and regulations may also be applied to the embodiments of the present disclosure.
[0029] As discussed above, with the development of cloud technology, more and more individuals, businesses, and organizations are inclined to upload their data to the cloud for management. However, building a secure and reliable cloud environment requires specialized technical personnel and significant hardware and software costs. Therefore, these individuals, businesses, and organizations often manage their data through cloud environments provided by third-party companies. In this case, since third-party cloud environments are not fully trustworthy, there is a risk of data leakage when using them.
[0030] In view of this, how to achieve secure and reliable data management in a third-party cloud environment is a technical problem that urgently needs to be solved.
[0031] Embodiments of the present disclosure provide a data processing solution based on a trusted execution environment. According to this solution, a host device determines a first measurement value based on a first parameter set, wherein the first measurement value is used to describe a target virtual machine hosted on the host device. The host device sends the first measurement value to a client device via a trusted execution environment component. Next, the host device receives a decryption key for decrypting a first virtual image file of the target virtual machine from the client device via the trusted execution environment component, and based on the decryption key, executes the first virtual image file to start the target virtual machine.
[0032] In this way, the security of the data processing environment is improved by utilizing the trusted execution environment and the encrypted virtual image file.
[0033] Sample Environment
[0034] FIG1A shows a schematic diagram of an example environment 100A in which embodiments of the present disclosure can be implemented. As shown in FIG1A , the example environment 100A may include a host device 110 and a client device 120 of a user 140 .
[0035] As shown in FIG1A , a host device 110 may be deployed with a trusted execution environment 115. A virtual machine 112 may be run in the trusted execution environment 115, and the virtual machine 112 may be referred to as a target virtual machine 112 or a to-be-started virtual machine 112. Utilizing the virtual machine running in the trusted execution environment 115, the client device 120 may implement data management, i.e., manage and maintain data 114. The embodiments of the present disclosure are not limited in this respect.
[0036] In some embodiments, client device 120 communicates with host device 110 to implement data management. Client device 120 can be any type of mobile, fixed, or portable terminal, including a mobile phone, desktop computer, laptop computer, notebook computer, netbook computer, tablet computer, media computer, multimedia tablet, personal communication system (PCS) device, personal navigation device, personal digital assistant (PDA), audio / video player, digital camera / camcorder, positioning device, television receiver, radio receiver, e-book device, gaming device, or any combination thereof, including accessories and peripherals of these devices or any combination thereof. In some embodiments, client device 120 can also support any type of interface for the user (such as "wearable" circuitry, etc.).
[0037] The host device 110 can be a standalone physical server, a server cluster or distributed system consisting of multiple physical servers, or a cloud server that provides basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communications, middleware services, domain name services, security services, content distribution networks, and big data and artificial intelligence platforms. The host device 110 can include, for example, a computing system / server such as a mainframe, an edge computing node, a computing device in a cloud environment, and the like. The host device 110 can provide backend data management services for the client device 120. An example of a host device 110 is a cloud vendor's host machine.
[0038] A communication connection may be established between the host device 110 and the client device 120. The communication connection may be established via a wired or wireless connection. The communication connection may include, but is not limited to, a Bluetooth connection, a mobile network connection, a Universal Serial Bus connection, a Wi-Fi connection, etc., and the embodiments of the present disclosure are not limited in this respect. In the embodiments of the present disclosure, the host device 110 and the client device 120 may implement signaling interaction via the communication connection between them.
[0039] To achieve secure data management, the host device 110 and the client device may be deployed with corresponding hardware and software configurations. FIG1B shows a schematic diagram of another example environment 100B in which embodiments of the present disclosure can be implemented. For ease of discussion, the environment 100B will be described with reference to the environment 100A of FIG1A .
[0040] In the specific embodiment of FIG1B , host device 110 includes a virtual machine monitor for managing a virtual machine running on host device 110. Furthermore, host device 110 and client device 120 each include a first virtual image file and a second virtual image file. Virtual image files are sometimes also referred to as virtual machine images or virtual machine image programs.
[0041] In some embodiments, the first / second virtual image file may include a database component. Further, in some embodiments, the database component may be selected based on the needs and application scenarios of the user 140. For example, the database component may be a database type that focuses on analysis or a database type that focuses on data management.
[0042] In some embodiments, the database component may include a database engine. The database engine may be any existing or future developed database engine, which may be a user-customized database engine or a general-purpose database engine. The present disclosure is not limited in this respect.
[0043] In some embodiments, the first / second virtual image file may further include an authentication component for providing remote certification services, including but not limited to verifying the reliability of the trusted operating environment and negotiating session keys.
[0044] In some embodiments, the first / second virtual image file may further include an encryption and decryption component, for example, for encrypting the processing results and generated messages of the virtual machine 112 , and decrypting messages received from the client device 120 .
[0045] In some embodiments, the first / second virtual image file may also optionally include a key setting component. The user 140 may use the key setting component to set various keys for communication between the host device 110 and the client device 120 and to modify the keys used to encrypt the virtual machine 112, including symmetric keys and asymmetric keys.
[0046] In addition, although not shown, the first / second virtual image file may also include other components, for example, for storing the signature public-private key pair sk s , pk s , encrypt the public and private key pair sk e , pk e The key storage component of the key.
[0047] IB, host device 110 may include trusted execution environment component 118. In some embodiments, trusted execution environment component 118 may implement a trusted execution environment at the virtual machine level.
[0048] It should be understood that the structure and function of each element in environments 100A and 100B are described for exemplary purposes only and do not imply any limitation on the scope of the present disclosure. In other words, the structure, function, number, and linkage relationship of the elements in environments 100A and 100B may be varied according to actual needs. The present disclosure is not limited in this respect.
[0049] Example Process
[0050] 2 shows a signaling interaction diagram 200 of a data processing method according to some embodiments of the present disclosure. For ease of discussion, process 200 will be described with reference to environment 100A of FIG. 1A and environment 100B of FIG. 1B , for example, using host device 110 and client device 120 .
[0051] According to some embodiments of the present disclosure, the security of data management can be improved by deploying a secure data processing environment and improving the security of data transmission and use, thereby realizing a fully encrypted database system, thereby ensuring the security of data during transmission, use, and storage.
[0052] Next, we will discuss in detail how to deploy a secure data processing environment and how to use the deployed data processing environment to achieve secure data storage, transmission and processing.
[0053] In operation, host device 110 generates 245 a first metric value based on a first parameter set and sends 250 the first metric value to client device 120 via trusted execution environment component 118 , wherein the first metric value is used to describe target virtual machine 112 hosted on host device 110 .
[0054] For the client device 120 , after receiving the first metric value, the client device 120 determines 255 a second metric value based on the second parameter set, wherein the second metric value is used to describe the virtual machine desired by the client device 120 .
[0055] Next, if the second metric value determined by client device 120 is consistent with the received first metric value, a decryption key for decrypting the first virtual image file of target virtual machine 112 is sent 260 to trusted execution environment component 118 of host device 110. Accordingly, trusted execution environment component 118 of host device 110 may execute the first virtual image file based on the decryption key to start target virtual machine 112.
[0056] In this way, the virtual machine 112 running on the host device 110 can be doubly protected by the decryption key set by the user 140 and the trusted execution environment component 118 deployed on the host device 110, thereby improving the security of the data processing environment.
[0057] Furthermore, to ensure that the first metric value can better describe the target virtual machine 112 hosted on the host device 110, the first parameter set may include multiple parameters that are strongly related to the target virtual machine 112. One example parameter is a first parameter related to the host device 110. Another example parameter is a second parameter associated with the first virtual image file. Yet another example parameter is a third parameter associated with user information of the client device 120.
[0058] It should be understood that the above example parameters are only for illustrative purposes. In other embodiments, other example parameters may be adopted, and the present disclosure is not limited in this respect.
[0059] It should be understood that the second parameter set used by client device 120 to generate the second metric value should correspond to the first parameter set. In other words, the parameters included in the first parameter set and the second parameter set should correspond, and the included parameters should be known in advance by host device 110 and client device 120. Therefore, the second parameter set can include multiple parameters that correspond to the first parameter set and are strongly related to the virtual machine expected by client device 120. In some embodiments, the second parameter set can correspondingly include at least one of the following: a first parameter related to host device 110, a second parameter associated with the first virtual image file, and a third parameter associated with user information of client device 120.
[0060] In some embodiments, the first virtual image file may include at least one component configured to be automatically executed in response to starting the target virtual machine 112 , example components including but not limited to a database component, an authentication component, an encryption / decryption component, and a key setting component.
[0061] In some embodiments, for security reasons, once the virtual machine 112 is started, the user 140 is prohibited from operating the virtual machine 112 in any way except through the virtual image file.
[0062] Generally speaking, different trusted execution environments have different requirements for hardware (such as kernel, processor, etc.). In view of this, in some embodiments, the host device 110 needs to be configured with hardware configuration that supports the trusted execution environment 118, such as the corresponding kernel version.
[0063] Different deployment methods can be used depending on the degree of trust that user 140 has in host device 110. In some application scenarios, user 140 has a low degree of trust in host device 110. In this case, the first virtual image file running on host device 110 can be generated by user 140 himself. Specifically, client device 120 generates the first virtual image file and encrypts it using encryption technology, such as Linux-based hard disk encryption or full disk encryption technology. Next, client device 120 can send 220 the encrypted first virtual image file to host device 110.
[0064] Alternatively, in some application scenarios, the user 140 at least partially trusts the host device 110. In this case, the user 140 may generate 225 the first virtual image file using pre-configured components of the host device 110, or may generate the first virtual image file using a pre-configured virtual image file template of the host device 110. In this case, the client device 120 first generates a configuration file for generating the first virtual image file and sends 205 it to the host device 110, wherein the configuration file may indicate software and hardware configuration information required to generate the first virtual image file or a corresponding virtual image file template. Based on the configuration file, the host device 110 may generate the first virtual image file. Furthermore, after generating the first virtual image file, the host device 110 may send information 210 about the generated first virtual image file to the client device so that the client device 120 can understand the execution status of the configuration file.
[0065] Additionally, in some embodiments, to ensure the security of decryption key transmission, a session key may be pre-negotiated 235 between client device 120 and host device 110 before transmitting the decryption key. Specifically, host device 110 negotiates a first session key with client device 120 via trusted execution environment component 118. Subsequently, when transmitting the decryption key, the first session key may be used to encrypt the decryption key. In this manner, the security of decryption key transmission is improved.
[0066] Additionally, during the initial interaction phase, host device 110 may send 215 first authentication information to client device 120 for authenticating host device 110. An example of the first authentication information may be a certificate chain, where the root certificate of the certificate chain may be the hardware manufacturer of the device, and the end certificate of the certificate chain may be a pre-generated certificate representing host device 110. Furthermore, in some embodiments, the first authentication information includes a public key of host device 110 used when communicating with host device 110.
[0067] In some embodiments, the first authentication information may include the public key of host device 110 used to negotiate the first session key with client device 120. In other words, the authentication process of host device 110 may be tied to the transmission of the public key of host device 110. In this case, after completing the authentication of host device 110, client device 120 can obtain the public key of host device 110, thereby improving the security and credibility of the transmission of the public key of host device 110.
[0068] According to some embodiments of the present disclosure, in order to further improve the security of the virtual machine 112 to be started and run, the host device 110 may encrypt 230 the first virtual image file in the memory via the trusted execution environment component 118 .
[0069] In order to better understand the deployment process of the data processing environment, the deployment process of the data processing environment will be further described with reference to FIG. 3A and FIG. 3B .
[0070] 3A and 3B illustrate block diagrams 300A and 300B of data processing methods according to some embodiments of the present disclosure. For ease of discussion, FIG3A and 3B will be described with reference to the environment 100A of FIG1A and the environment 100B of FIG1B, for example, using the host device 110 and the client device 120.
[0071] In Figure 3A, client device 120 obtains first authentication information, such as a certificate chain, from the cloud provider to authenticate host device 110. Client device 120 verifies the correctness of the first authentication information. If client device 120 confirms the correctness of the first authentication information, it sends the encrypted first virtual image file to host device 110. The encrypted first virtual image file requires a decryption key for decryption.
[0072] In some embodiments, the client device 120 may perform key negotiation with the trusted execution environment component 118 to negotiate a first session key sk, and initiate a request to start the virtual machine 112. Additionally, the first session key sk may be negotiated based on a Diffie-Hellman key exchange mechanism.
[0073] In some embodiments, the host device 110 deploys the encrypted first virtual image file and encrypts the first virtual image file in memory through the trusted execution environment component 118 .
[0074] Furthermore, the trusted execution environment component 118 of the host device 110 generates a first metric value mr1 and sends it to the host device 110 . The first metric value is sometimes also referred to as a startup metric value.
[0075] In some embodiments, the generation of the first metric value mr1 is related to the deployed trusted execution environment 115 / trusted execution environment component 118. That is, the first metric value mr1 generated by different trusted execution environments 115 / trusted execution environment components 118 may be different. In some embodiments, the first metric value mr1 is related to the following information: a first parameter associated with the host device 110 (such as platform configuration information), a second parameter associated with the first virtual image file (such as information about the first virtual image), and a third parameter associated with user information of the client device 120. It should be understood that the first metric value mr1 can be determined based on any appropriate parameters or rules, and the present disclosure is not limited in this respect.
[0076] The client device 120 can locally obtain the corresponding parameters to obtain the second measurement value mr2, also known as the expected startup measurement value mr2. Example parameters for generating the second measurement value mr2 include a first parameter associated with the host device 110 (such as, configuration information of the platform), a second parameter associated with the first virtual image file (such as, information of the first virtual image), and a third parameter associated with user information of the client device 120.
[0077] The client device 120 compares the second metric value mr2 with the mr1 sent by the host device 110 , and if they are consistent, sends the decryption key secret to the host device 110 .
[0078] In some embodiments, host device 110 and client device 120 may negotiate a first session key sk. In some embodiments, host device 110 encrypts the decryption key secret with the first session key sk, ie, Enc(sk, secret), and sends the encrypted decryption key to host device 110.
[0079] Host device 110 receives the encrypted decryption key and decrypts it using the first session key sk to obtain a decryption key secret. Based on the decryption key secret, the received first virtual image file can be decrypted. Furthermore, trusted execution environment component 118 of host device 110 can start the first virtual image file in encrypted memory. Because the first virtual image file includes at least one component that is enabled for self-start, when virtual machine 112 is started, client device 120 can use the various components deployed in virtual machine 112, such as the database component, authentication component, encryption and decryption component, and key setting component.
[0080] Further reference is made to Figure 3B. In the embodiment of Figure 3B, the client device 120 selects a configuration file related to the virtual image file provided by the provider of the host device 110, such as the kernel version, database engine, encryption and decryption algorithm, etc. The host device 110 generates a corresponding full-disk encrypted image according to the configuration file of the client device 120, that is, the encrypted first virtual image file. In some embodiments, the full-disk encryption image key of the first virtual image file (that is, the decryption key for decrypting the first virtual image file) is randomly generated by the host device 110 / the corresponding cloud vendor. In some embodiments, the first virtual image file generated by the host device 110 includes a key setting component to facilitate the user 140 to subsequently modify the decryption key for decrypting the first virtual image file.
[0081] Next, the client device 120 obtains first authentication information, such as a certificate chain, from the host device 110. Furthermore, along with the first authentication information, the host device 110 also provides the client device 120 with information related to the generated first virtual image file.
[0082] Client device 120 verifies the correctness of the first authentication information. In some embodiments, if client device 120 confirms that the first authentication information is correct, client device 120 may perform key negotiation with trusted execution environment component 118 to negotiate a first session key sk, and initiate a request to start virtual machine 112. Alternatively, the first session key sk may be negotiated based on a Diffie-Hellman key exchange mechanism.
[0083] In some embodiments, the host device 110 deploys the encrypted first virtual image file and encrypts the first virtual image file in memory through the trusted execution environment component 118 .
[0084] Further, the trusted execution environment component 118 of the host device 110 determines a first measurement value mr1 and sends it to the host device 110. In some embodiments, the generation of the first measurement value mr1 is related to the deployed trusted execution environment 115 / trusted execution environment component 118, that is, the first measurement value mr1 generated by different trusted execution environments 115 / trusted execution environment components 118 is different. In some embodiments, the first measurement value mr1 is related to the following information: a first parameter associated with the host device 110 (such as platform configuration information), a second parameter associated with the first virtual image file (such as information about the first virtual image), and a third parameter associated with user information of the client device 120. It should be understood that the first measurement value mr1 can be determined based on any appropriate parameters or rules, and the present disclosure is not limited in this respect. It should be understood that the first measurement value mr1 can be determined based on any appropriate parameters or rules, and the present disclosure is not limited in this respect.
[0085] The client device 120 can locally obtain the corresponding parameters to obtain the second measurement value mr2, also known as the expected startup measurement value mr2. Example parameters for generating the second measurement value mr2 include a first parameter associated with the host device 110 (such as, configuration information of the platform), a second parameter associated with the first virtual image file (such as, information of the first virtual image), and a third parameter associated with user information of the client device 120.
[0086] The client device 120 compares the second metric value mr2 with mr1 sent by the host device 110, and if they are consistent, the client device 120 sends the decryption key secret to the host device.
[0087] In some embodiments, host device 110 and client device 120 may negotiate a first session key sk. In some embodiments, host device 110 encrypts the decryption key secret with the first session key sk, ie, Enc(sk, secret), and sends the encrypted decryption key to host device 110.
[0088] Host device 110 receives the encrypted decryption key and decrypts it using the first session key sk to obtain a decryption key secret. Based on the decryption key secret, the received first virtual image file can be decrypted. Furthermore, the trusted execution environment component 118 of host device 110 can start the first virtual image file in encrypted memory. Because the first virtual image file includes at least one component that is enabled for self-start, when virtual machine 112 is started, client device 120 can use the various components deployed in virtual machine 112, such as the database component, authentication component, encryption and decryption component, and key setting component.
[0089] In some embodiments, since the first virtual image file includes at least one self-starting component, the client device 120 may first modify the full disk confidentiality key of the virtual machine 112 through the key setting service in the virtual machine 112, and further set the signature public-private key pair sk s , pk s , encrypt the public-private key pair sk e , pk e .
[0090] Through the above process, the trusted execution environment component 118 of the host device 110 can start 265 the virtual machine 112, thereby, a more secure data processing environment can be deployed at the host device 110. Next, the user 140 can implement data management in a more secure manner.
[0091] 2 , the trusted execution environment component 118 of the host device 110 may send 275 second authentication information for authenticating the trusted execution environment to the client device, wherein the second authentication information includes at least one key pair for encrypting and decrypting database operation instructions of the client device 120. Based on the received at least one key pair, the client device 280 may send the encrypted database operation instructions to the host device 110.
[0092] To facilitate understanding, the following example operations are used to further describe how to execute database operation instructions.
[0093] In some embodiments, user 140 completes identity authentication through a user management system of client device 120. Furthermore, user 140 verifies through an authentication component in client device 120 whether the virtual machine 112 environment running the database component in the cloud environment is trustworthy.
[0094] As a specific implementation, user 140 sends a random number nonce to virtual machine 112. The authentication component inside virtual machine 112 generates second authentication information, also known as trusted environment verification data. Together with the second authentication information, host device 110 encrypts the public key pk e , signature public key pk s And the signed private key sk s The random number of the signature (ie, Sig(sk s , nonce)) is sent to the client device 120 together.
[0095] In some embodiments, the second authentication information includes a signature public key pk s , encrypted public key pk eIn this way, it is possible to ensure that the public key value in the returned information is bound to the trusted execution environment, that is, when the trusted execution environment is verified, the public key information transmitted with it is also considered to be trusted. In some embodiments, the signature public key pk s , encrypted public key pk e Transmitted as the report data field in the second authentication information.
[0096] If the client device 120 verifies whether the second authentication information is correct and verifies Sig(sk s If the verification is successful, the user 140 can use the virtual machine 112 without worry.
[0097] In some embodiments, user 140 sends a database operation instruction via client device 120. As a specific embodiment, the permission control module of client device 120 first determines whether it has permission to operate the corresponding data, such as a table or library. If it does not have permission, the instruction is directly discarded. Otherwise, client device 120 encrypts the database operation instruction and sends it to virtual machine 112 via trusted environment execution component 118.
[0098] In some embodiments, the database operation instructions are transmitted in a double encryption manner, that is, Enc(pk e , ssk), Enc(ssk, database operation instruction), where ssk is a randomly selected session key, pk e The encryption public key.
[0099] After receiving the request, the host device 110 first decrypts the database operation instruction and then transmits it to the database component of the virtual machine 112 for database operation. The virtual machine 112 executes the operation library instruction and sends the operation result to the user.
[0100] Accordingly, to ensure data security, the operation result result can also be encrypted and sent to the client device 120, that is, Enc(ssk, result), where ssk is a randomly selected session key. The client device 120 decrypts the data using the session key ssk to obtain the data processing result result.
[0101] It can be seen from the above process that the data included in the virtual image file requires the decryption key of user 140 to be obtained. In other words, before the first virtual image file is loaded into the memory, all data including applications are protected by the image encryption key of the user device. Furthermore, after the first virtual image file is loaded into the memory, all its data operations are performed through the trusted execution environment component. In addition, the data is encrypted during the transmission process, and the key pair used for encryption and decryption is transmitted together with the authentication information of the trusted execution environment. Therefore, whether the data is on the disk or in the memory, whether it is in transmission or in processing, there are corresponding security measures to protect it. In other words, the security of the data is guaranteed at all stages of its life cycle.
[0102] Through the above process, this disclosure utilizes a virtual machine-level trusted execution environment (TEE) to deploy a secure and reliable data processing environment in a cloud environment. Compared to software-based implementations, this improves both data processing performance and system security. Furthermore, in this environment, users do not need to install TEE components or modify existing database components, reducing the deployment cost of the data processing system.
[0103] Example Method
[0104] FIG4 shows a flow chart of a data processing process 400 according to some embodiments of the present disclosure. For ease of discussion, reference is made to the environments 100A and 100B of FIG1A and 1B. The image processing process 400 may be implemented at the host device 110.
[0105] At block 410 , a host device determines a first metric value based on a first parameter set, the first metric value being used to describe a target virtual machine hosted on the host device.
[0106] At block 420 , the host device sends the first metric value to the client device via the trusted execution environment component.
[0107] At block 430 , the host device receives a decryption key for decrypting a first virtual image file of a target virtual machine from the client device via the trusted execution environment component.
[0108] In block 440 , the host device runs the first virtual image file based on the decryption key to start the target virtual machine.
[0109] In some embodiments, the first parameter set includes at least one of the following: a first parameter associated with the host device, a second parameter associated with the first virtual image file, and a third parameter associated with user information of the client device.
[0110] In some embodiments, the host device negotiates a first session key with the client device via the trusted execution environment component, wherein the decryption key is encrypted by the first session key.
[0111] In some embodiments, the host device sends first authentication information for authenticating the host device to the client device, where the first authentication information includes a public key of the host device used when communicating with the host device.
[0112] In some embodiments, the host device may send first authentication information for authenticating the host device to the client device. The first authentication information may include a public key of the host device for negotiating a first session key with the client device.
[0113] In some embodiments, the host device encrypts the first virtual image file in memory via a trusted execution environment component.
[0114] In some embodiments, the host device receives a configuration file for generating a first virtual image file from the client device, and generates the first virtual image file based on the configuration file.
[0115] In some embodiments, the host device receives an encrypted first virtual image file from the client device.
[0116] In some embodiments, the first virtual image file includes at least one component configured to be automatically executed in response to starting the target virtual machine, and the at least one component includes at least one of the following: a database component, an authentication component, an encryption and decryption component, and a key setting component.
[0117] In some embodiments, after the target virtual machine is started, the host device sends second authentication information for authenticating the trusted execution environment to the client device via the trusted execution environment component, wherein the second authentication information includes at least one key pair for encrypting and decrypting database operation instructions of the client device.
[0118] FIG5 shows a flow chart of a data processing process 500 according to some embodiments of the present disclosure. For ease of discussion, reference is made to the environments 100A and 100B of FIG1A and FIG1B . The image processing process 500 may be implemented at the client device 120 .
[0119] At block 510 , a client device receives a first metric value from a trusted execution environment component of a host device, the first metric value describing a target virtual machine hosted on the host device.
[0120] At block 520 , the client device determines a second metric value based on the second parameter set, the second metric value being used to describe the virtual machine desired by the client device.
[0121] At block 530 , in response to the second metric value being consistent with the first metric value, the client device sends a decryption key for decrypting the first virtual image file of the target virtual machine to the trusted execution environment component of the host device.
[0122] In some embodiments, the client device receives first authentication information from the host device for authenticating the host device, where the first authentication information includes a public key of the host device used when communicating with the host device.
[0123] In some embodiments, the client device may receive first authentication information from the host device for authenticating the host device, and the first authentication information may include a public key of the host device for negotiating a first session key with the host device.
[0124] In some embodiments, the second parameter set includes at least one of the following: a first parameter associated with the host device, a second parameter associated with the first virtual image file, and a third parameter associated with user information of the client device.
[0125] In some embodiments, the client device negotiates a first session key with a trusted execution environment component of the host device, wherein the decryption key is encrypted by the first session key.
[0126] In some embodiments, the client device sends a configuration file for generating a first virtual image file to the host device, and the first virtual image file corresponding to the configuration file is generated at the client device.
[0127] In some embodiments, the client device sends the encrypted virtual image file to the host device.
[0128] In some embodiments, after the target virtual machine is started, the client device receives second authentication information for authenticating the trusted execution environment from the trusted execution environment component of the host device, wherein the second authentication information includes at least one key pair for encrypting and decrypting database operation instructions of the client device.
[0129] Example devices and equipment
[0130] 6 shows a schematic structural block diagram of a data processing apparatus 600 according to some embodiments of the present disclosure. Apparatus 600 may be implemented as or included in host device 110. Each module / component in apparatus 600 may be implemented by hardware, software, firmware, or any combination thereof.
[0131] As shown in Figure 6, the device 600 includes a first metric value generating module 610, which is configured to determine a first metric value based on a first parameter set, where the first metric value is used to describe a target virtual machine hosted on a host device; a first metric value sending module 620, which is configured to send the first metric value to a client device via a trusted execution environment component of the host device; a decryption key receiving module 630, which is configured to receive a decryption key for decrypting a first virtual image file of the target virtual machine from the client device via the trusted execution environment component; and a first virtual image running module 640, which is configured to run the first virtual image file based on the decryption key to start the virtual machine.
[0132] In some embodiments, the first parameter set includes at least one of the following: a first parameter associated with the host device, a second parameter associated with the first virtual image file, and a third parameter associated with user information of the client device.
[0133] In some embodiments, the apparatus 600 further includes: a first key negotiation module configured to negotiate a first session key with the client device via the trusted execution environment component, wherein the decryption key is encrypted by the first session key.
[0134] In some embodiments, the apparatus 600 further includes: a first authentication information sending module configured to send first authentication information for authenticating the host device to the client device, where the first authentication information includes a public key of the host device used when communicating with the host device.
[0135] Alternatively, in some embodiments, the apparatus 600 further comprises: a first authentication information sending module configured to send first authentication information for authenticating the host device to the client device, where the first authentication information may include a public key of the host device for negotiating a first session key with the client device.
[0136] In some embodiments, the apparatus 600 further includes: a memory encryption component configured to encrypt the first virtual image file in the memory via the trusted execution environment component.
[0137] In some embodiments, the apparatus 600 further includes: a configuration file receiving module configured to receive a configuration file for generating the first virtual image file from a client device; and generate the first virtual image file based on the configuration file.
[0138] In some embodiments, the apparatus 600 further includes: an image file receiving module configured to receive an encrypted first virtual image file from a client device.
[0139] In some embodiments, the first virtual image file includes at least one component configured to be automatically executed in response to starting the target virtual machine, and the at least one component includes at least one of the following: a database component, an authentication component, an encryption and decryption component, and a key setting component.
[0140] In some embodiments, the device 600 also includes: a second authentication information sending module, which is configured to send second authentication information for authenticating the trusted execution environment to the client device via the trusted execution environment component after the target virtual machine is started, wherein the second authentication information includes at least one key pair for encrypting and decrypting database operation instructions of the client device.
[0141] 7 shows a schematic block diagram of another apparatus 700 for processing interface information according to certain embodiments of the present disclosure. Apparatus 700 may be implemented as or included in client device 120. Each module / component in apparatus 700 may be implemented by hardware, software, firmware, or any combination thereof.
[0142] As shown in Figure 7, the device 700 includes: a first measurement value receiving module 710, configured to receive a first measurement value from a trusted execution environment component of a host device, the first measurement value being used to describe a target virtual machine hosted on the host device; a second measurement value generating module 720, configured to determine a second measurement value based on a second parameter set, the second measurement value being used to describe the virtual machine expected by the client device; and a decryption key sending module 730, configured to: in response to the second measurement value being consistent with the first measurement value, send a decryption key for decrypting the first virtual image file of the target virtual machine to the trusted execution environment component of the host device.
[0143] In some embodiments, the second parameter set includes at least one of the following: a first parameter associated with the host device, a second parameter associated with the first virtual image file, and a third parameter associated with user information of the client device.
[0144] In some embodiments, the apparatus 700 further includes: a second session key negotiation module configured to negotiate a first session key with a trusted execution environment component of the host device, wherein the decryption key is encrypted by the first session key.
[0145] In some embodiments, the apparatus 700 further includes: a first authentication information receiving module configured to receive first authentication information for authenticating the host device from the host device, the first authentication information including a public key of the host device used when communicating with the host device.
[0146] Alternatively, in some embodiments, the apparatus 700 further includes: a first authentication information receiving module, receiving first authentication information for authenticating the host device from the host device, where the first authentication information may include a public key of the host device for negotiating a first session key with the host device.
[0147] In some embodiments, the apparatus 700 further includes: a configuration file sending module configured to send a configuration file for generating the first virtual image file to the host device; and generate, at the client device, the first virtual image file corresponding to the configuration file.
[0148] In some embodiments, the apparatus 700 further includes: an image file sending module configured to send the encrypted virtual image file to the host device.
[0149] In some embodiments, the device 700 also includes: a second authentication information receiving module, configured to receive second authentication information for authenticating the trusted execution environment from the trusted execution environment component of the host device after the target virtual machine is started, wherein the second authentication information includes at least one key pair for encrypting and decrypting database operation instructions of the client device.
[0150] FIG8 shows a block diagram of an electronic device 800 in which one or more embodiments of the present disclosure may be implemented. It should be understood that the electronic device 800 shown in FIG8 is merely exemplary and should not be construed as limiting the functionality and scope of the embodiments described herein. The electronic device 800 shown in FIG8 can be used to implement the client device 120 of FIG1A .
[0151] As shown in FIG8 , electronic device 800 is in the form of a general-purpose electronic device or computing device. Components of electronic device 800 may include, but are not limited to, one or more processors or processing units 810, memory 820, storage device 830, one or more communication units 840, one or more input devices 880, and one or more output devices 860. Processing unit 810 may be a real or virtual processor and is capable of performing various processes according to programs stored in memory 820. In a multi-processor system, multiple processing units execute computer-executable instructions in parallel to increase the parallel processing capabilities of electronic device 800.
[0152] The electronic device 800 typically includes a plurality of computer storage media. Such media can be any accessible media that can be obtained by the electronic device 800, including but not limited to volatile and non-volatile media, removable and non-removable media. The memory 820 can be a volatile memory (e.g., a register, a cache, a random access memory (RAM)), a non-volatile memory (e.g., a read-only memory (ROM), an electrically erasable programmable read-only memory (EEPROM), flash memory), or some combination thereof. The storage device 830 can be a removable or non-removable medium and can include a machine-readable medium, such as a flash drive, a disk, or any other medium that can be used to store information and / or data (e.g., training data for training) and can be accessed within the electronic device 800.
[0153] The electronic device 800 may further include additional removable / non-removable, volatile / non-volatile storage media. Although not shown in FIG8 , a disk drive for reading from or writing to a removable, non-volatile disk (e.g., a “floppy disk”) and an optical drive for reading from or writing to a removable, non-volatile optical disk may be provided. In these cases, each drive may be connected to a bus (not shown) by one or more data media interfaces. The memory 820 may include a computer program product 825 having one or more program modules configured to perform various methods or actions of various embodiments of the present disclosure.
[0154] The communication unit 840 enables communication with other electronic devices via a communication medium. Additionally, the functions of the components of the electronic device 800 can be implemented in a single computing cluster or multiple computing machines that can communicate via a communication connection. Thus, the electronic device 800 can operate in a networked environment using a logical connection with one or more other servers, a network personal computer (PC), or another network node.
[0155] The input device 850 may be one or more input devices, such as a mouse, keyboard, or trackball. The output device 860 may be one or more output devices, such as a display, a speaker, or a printer. The electronic device 800 may also communicate with one or more external devices (not shown) via the communication unit 840 as needed, such as a storage device, a display device, or the like, with one or more devices that allow a user to interact with the electronic device 800, or with any device that allows the electronic device 800 to communicate with one or more other electronic devices (e.g., a network card, a modem, etc.). Such communication may be performed via an input / output (I / O) interface (not shown).
[0156] According to an exemplary implementation of the present disclosure, a computer-readable storage medium is provided, on which computer-executable instructions are stored, wherein the computer-executable instructions are executed by a processor to implement the method described above. According to an exemplary implementation of the present disclosure, a computer program product is also provided, which is tangibly stored on a non-transitory computer-readable medium and includes computer-executable instructions, and the computer-executable instructions are executed by a processor to implement the method described above.
[0157] Various aspects of the present disclosure are described herein with reference to flowcharts and / or block diagrams of methods, apparatuses, devices, and computer program products implemented according to the present disclosure. It should be understood that each block of the flowcharts and / or block diagrams, and combinations of blocks in the flowcharts and / or block diagrams, can be implemented by computer-readable program instructions.
[0158] These computer-readable program instructions can be provided to a processing unit of a general-purpose computer, a special-purpose computer, or other programmable data processing device, thereby producing a machine, such that when these instructions are executed by the processing unit of the computer or other programmable data processing device, a device is generated that implements the functions / actions specified in one or more blocks in the flowchart and / or block diagram. These computer-readable program instructions can also be stored in a computer-readable storage medium, where these instructions cause the computer, programmable data processing device, and / or other device to operate in a specific manner. Thus, the computer-readable medium storing the instructions comprises an article of manufacture that includes instructions for implementing various aspects of the functions / actions specified in one or more blocks in the flowchart and / or block diagram.
[0159] Computer-readable program instructions can be loaded onto a computer, other programmable data processing apparatus, or other device so that a series of operational steps are performed on the computer, other programmable data processing apparatus, or other device to produce a computer-implemented process, thereby causing the instructions executed on the computer, other programmable data processing apparatus, or other device to implement the functions / actions specified in one or more boxes in the flowchart and / or block diagram.
[0160] The flow charts and block diagrams in the accompanying drawings show the possible architecture, functions and operations of the systems, methods and computer program products according to multiple implementations of the present disclosure. In this regard, each box in the flow chart or block diagram can represent a part for a module, program segment or instruction, and a part for a module, program segment or instruction comprises one or more executable instructions for realizing the logical function of the specification. In some alternative implementations, the functions marked in the box can also occur in a sequence different from that marked in the accompanying drawings. For example, two continuous boxes can actually be executed substantially in parallel, and they can sometimes be executed in the opposite order, depending on the functions involved. It should also be noted that each box in the block diagram and / or flow chart, and the combination of the boxes in the block diagram and / or flow chart can be realized by a special hardware-based system that performs the function or action of the specification, or can be realized by a combination of special hardware and computer instructions.
[0161] While various implementations of the present disclosure have been described above, the foregoing description is intended to be illustrative, not exhaustive, and not limited to the disclosed implementations. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the described implementations. The terminology used herein is selected to best explain the principles of the implementations, their practical applications, or improvements to existing technologies, or to enable others skilled in the art to understand the various implementations disclosed herein.
Claims
1. A data processing method based on a trusted execution environment, include: At a host device, determining a first metric value based on a first parameter set, the first metric value being used to describe a target virtual machine hosted on the host device; sending the first metric value to a client device via a trusted execution environment component of the host device; Receiving, via the trusted execution environment component, from the client device a decryption key for decrypting a first virtual image file of the target virtual machine; as well as Based on the decryption key, the first virtual image file is executed to start the target virtual machine.
2. The method according to claim 1, wherein the first parameter set comprises at least one of the following: a first parameter associated with the host device, a second parameter associated with the first virtual image file, and A third parameter is associated with user information of the client device.
3. The method according to claim 1, further comprising: include: A first session key is negotiated with the client device via the trusted execution environment component, wherein the decryption key is encrypted by the first session key.
4. The method according to claim 3, further comprising: include: First authentication information for authenticating the host device is sent to the client device, wherein the first authentication information includes a public key of the host device for negotiating the first session key with the client device.
5. The method according to claim 1, further comprising: include: The first virtual image file is encrypted in the memory via the trusted execution environment component.
6. The method according to claim 1, further comprising: include: receiving a configuration file for generating the first virtual image file from the client device; as well as Based on the configuration file, the first virtual image file is generated.
7. The method according to claim 1, wherein the first virtual image file comprises at least one component configured to be automatically run in response to starting the target virtual machine, and the at least one component comprises at least one of the following: Database components, Authentication components, Encryption and decryption components, and Key setup component.
8. The method according to claim 1, further comprising: include: After the target virtual machine is started, second authentication information for authenticating the trusted execution environment is sent to the client device via the trusted execution environment component, wherein the second authentication information includes at least one key pair for encrypting and decrypting database operation instructions of the client device.
9. A data processing method based on a trusted execution environment, include: At a client device, receiving a first metric value from a trusted execution environment component of a host device, the first metric value being used to describe a target virtual machine hosted on the host device; Determining a second metric value based on a second parameter set, the second metric value being used to describe the virtual machine desired by the client device; as well as In response to the second metric value being consistent with the first metric value, a decryption key for decrypting the first virtual image file of the target virtual machine is sent to the trusted execution environment component of the host device.
10. The method according to claim 9, wherein the second parameter set comprises at least one of the following: a first parameter associated with the host device, a second parameter associated with the first virtual image file, and A third parameter is associated with user information of the client device.
11. The method according to claim 10, further comprising: include: After the target virtual machine is started, second authentication information for authenticating the trusted execution environment is received from the trusted execution environment component of the host device, wherein the second authentication information The second authentication information includes at least one key pair used to encrypt and decrypt the database operation instructions of the client device.
12. A data processing device based on a trusted execution environment, include: A first metric value generating module is configured to: determine a first metric value based on a first parameter set, wherein the first metric value is used to describe a target virtual machine hosted on the host device; A first metric value sending module is configured to: send the first metric value to the client device via the trusted execution environment component of the host device; A decryption key receiving module is configured to: receive a decryption key for decrypting a first virtual image file of the target virtual machine from the client device via the trusted execution environment component; as well as The first virtual image running module is configured to: run the first virtual image file based on the decryption key to start the target virtual machine.
13. A data processing device based on a trusted execution environment, include: A first metric value receiving module is configured to receive a first metric value from a trusted execution environment component of a host device, wherein the first metric value is used to describe a target virtual machine hosted on the host device; A second metric value generating module is configured to determine a second metric value based on a second parameter set, wherein the second metric value is used to describe the virtual machine desired by the client device; as well as The decryption key sending module is configured to: in response to the second metric value being consistent with the first metric value, send a decryption key for decrypting the first virtual image file of the target virtual machine to the trusted execution environment component of the host device.
14. An electronic device, include: at least one processing unit; as well as At least one memory, the at least one memory being coupled to the at least one processing unit and storing instructions for execution by the at least one processing unit, the instructions causing the electronic device to perform the method according to any one of claims 1 to 11 when executed by the at least one processing unit.
15. A computer-readable storage medium having a computer program stored thereon, wherein the computer program implements the method according to any one of claims 1 to 11 when executed by a processor.
Citation Information
Patent Citations
Data processing method, device, equipment and storage medium
CN116680687B
AMD SEV-based trusted execution environment architecture and trusted execution system
CN114647487A
Method for library operating system (LibOS) of trusted execution environment (TEE)
CN115640571A
Hosting security services in virtual security environment
CN115795511A
Data processing method and device, equipment and storage medium
CN116680687A
Cited By
Information transmission method and system based on MCP protocol, equipment and medium
CN121309106A
