Data interaction method and device, terminal, storage medium and program product
By running trusted virtual machines and trusted applications on the terminal, data sharing between different applications in the terminal is realized, data silos and data security issues are solved, and user privacy is ensured.
Patent Information
- Application Number
- CN202411671566.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-11-21
- Publication Date
- 2025-03-14
AI Technical Summary
The prior art realizes data sharing between different applications in the terminal through server transit, but there are data security issues such as user privacy information leakage.
By running a trusted virtual machine on the terminal, using trusted applications for data interaction, ensure that application data is always processed within the terminal, reduce the risk of privacy data leakage, and realize data sharing through data desensitization.
On the premise of ensuring data security and privacy, data sharing between different applications in the terminal is realized, solving the problem of data islands.
Smart Images

Figure CN119621370A_ABST
Abstract
Description
Technical Field
[0001] The embodiments of the present application relate to the field of terminal technology, and in particular to a data interaction method, device, terminal, storage medium and program product. Background Art
[0002] Data islands refer to the phenomenon that each application in a terminal manages its own application data independently for the purpose of data security and privacy, and does not share application data with other applications in the terminal.
[0003] In order to solve the problem of data silos and realize data sharing between different applications in the terminal, in the related technology, data exchange between different applications can be carried out on the server. However, transferring data through the server may cause data security issues such as leakage of user privacy information. Summary of the invention
[0004] The embodiments of the present application provide a data interaction method, device, terminal, storage medium and program product. The technical solution is as follows:
[0005] On the one hand, an embodiment of the present application provides a data interaction method, the method comprising:
[0006] Obtaining application data of a second application client from a second application server through a first application server, wherein the first application server is used to provide services for the first application client, the second application server is used to provide services for the second application client, the first application client and the second application client run on an operating system, and the first application server and the second application server run on a trusted virtual machine;
[0007] According to the application data of the second application client, the calculation result required by the first application client is calculated through the first application server;
[0008] The calculation result is returned to the first application client through the first application server.
[0009] On the other hand, an embodiment of the present application provides a data interaction device, the device comprising:
[0010] A first application service module, configured to obtain application data of a second application client module from a second application service module, wherein the first application service module is configured to provide services for the first application client module, the second application service module is configured to provide services for the second application client module, the first application client module and the second application client module are run on an operating system, and the first application service module and the second application service module are run on a trusted virtual machine;
[0011] The first application service module is further configured to calculate a calculation result required by the first application client module according to the application data of the second application client module;
[0012] The first application service module is further used to return the calculation result to the first application client module.
[0013] On the other hand, an embodiment of the present application provides a terminal, which includes a processor and a memory, wherein the memory stores at least one computer instruction, and the at least one computer instruction is loaded and executed by the processor to implement the method described in the above aspect.
[0014] On the other hand, an embodiment of the present application provides a computer-readable storage medium, in which at least one computer instruction is stored. The computer instruction is loaded and executed by a processor to implement the method described in the above aspects.
[0015] On the other hand, an embodiment of the present application provides a computer program product, which includes computer instructions, and the computer instructions are stored in a computer-readable storage medium. A processor of a terminal reads the computer instructions from the computer-readable storage medium, and the processor executes the computer instructions, so that the terminal executes the method provided in various optional implementations of the above aspects.
[0016] In the embodiment of the present application, on the one hand, the first application client and the second application client run on the operating system, and the first application server and the second application server run on the trusted virtual machine. Since the trusted virtual machine belongs to a trusted execution environment isolated from the operating system, and the application data never leaves the terminal, compared with the method of data transfer through the server in the related art, the present application can greatly reduce the risk of privacy data leakage; on the other hand, since the terminal obtains the application data of the second application client from the second application server through the first application server, and calculates the calculation result required by the first application client through the first application server, and then returns the calculation result to the first application client, instead of directly sending the application data to the first application client, in fact, the first application client will not obtain the application data in the second application client, but can use the application data to perform the calculation required by the first application client, so data desensitization can be achieved, thereby further avoiding the occurrence of privacy data leakage. That is, the data interaction method provided by the present application can realize data sharing between different applications in the terminal under the premise of ensuring data security and privacy, and solve the problem of data islands. BRIEF DESCRIPTION OF THE DRAWINGS
[0017] In order to more clearly illustrate the technical solutions in the embodiments of the present application, the drawings required for use in the description of the embodiments will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without creative work.
[0018] Figure 1 is a schematic diagram of an Android virtualization framework provided by an exemplary embodiment of the present application;
[0019] Figure 2 is a flow chart of a data interaction method provided by an exemplary embodiment of the present application;
[0020] Figure 3 It is a schematic diagram of installing a first application server and a second application server in a trusted virtual machine through a privacy sandbox service provided by an exemplary embodiment of the present application;
[0021] Figure 4 It is a schematic diagram of determining the access permission of a first application server to application data of a second application client through a privacy sandbox service provided by an exemplary embodiment of the present application;
[0022] Figure 5 is a schematic diagram of returning a calculation result to a first application client provided by an exemplary embodiment of the present application;
[0023] Figure 6 is a flow chart of performing security check on calculation results provided by an exemplary embodiment of the present application;
[0024] Figure 7 is a structural block diagram of a data interaction device provided by an exemplary embodiment of the present application;
[0025] Figure 8 It is a structural block diagram of a terminal provided by an exemplary embodiment of the present application. DETAILED DESCRIPTION
[0026] In order to make the objectives, technical solutions and advantages of the present application clearer, the implementation methods of the present application will be further described in detail below with reference to the accompanying drawings.
[0027] First, the terms involved in the embodiments of the present application are introduced.
[0028] Trusted Virtual Machine (TVM): A virtual machine used to run trusted applications in a Trusted Execution Environment (TEE), also known as a protected Virtual Machine (pVM), secure OS, etc. A trusted virtual machine is a hardware-supported isolated area in a terminal device that can securely execute code and process data without interference from the operating system or other applications.
[0029] Operating System (OS): used to run common applications in a non-trusted execution environment (REE). Since it does not have specific security functions, there may be data security issues such as user privacy leakage and malware attacks. For example, the operating system may be an Android operating system or an IOS operating system.
[0030] Trusted Application (TA): An application running on a trusted virtual machine that can provide security services for ordinary applications running on the operating system. It can also be called a protected application (PA) or a secure application.
[0031] Ordinary applications: applications running on the operating system. For example, social applications and payment applications running on the Android operating system are ordinary applications. They can also be called untrusted applications or unsafe applications.
[0032] Hypervisor: A system software that acts as an intermediary between computer hardware and virtual machines and is responsible for efficiently allocating and utilizing hardware resources used by virtual machines.
[0033] Privacy Sandbox Service (PSS): Privacy Sandbox Service provides a bridge for the interaction between the operating system and the trusted virtual machine. Through the privacy sandbox service, a security mechanism that isolates running programs, it can play a role in ensuring data security and avoiding unknown attacks. In this application, the privacy sandbox service is used to implement functions such as starting a trusted virtual machine, verifying digital signatures, installing and running trusted applications, and performing security checks on calculation results.
[0034] Data sharing between different applications in the terminal can be achieved through server transfer. For example, the social application uploads application data (such as geographic location) to the server, and the payment application requests the application data of the social application from the server. If the payment application meets the data acquisition conditions (such as meeting relevant laws and regulations), the server returns the application data of the social application to the payment application, so that the payment application can use the data of the social application for calculation (for example, combining whether the geographic location is overseas to determine whether there is a risk in the transaction), thereby solving the data island problem and realizing the interconnection and interoperability of data between different applications.
[0035] However, transferring data through servers may cause data security issues such as leakage of user privacy information.
[0036] Therefore, the present application provides a data interaction method, which realizes data interaction between common applications running on an operating system by running a trusted application on a trusted virtual machine, thereby solving the data island problem while ensuring data security.
[0037] In some embodiments, the terminal has a trusted execution environment and a non-trusted execution environment provided by hardware. For example, ordinary applications are run in the operating system (belonging to the non-trusted execution environment); while trusted applications with higher data security requirements are run separately in a trusted virtual machine isolated from the operating system (belonging to the trusted execution environment), thereby achieving the effect of ensuring data security.
[0038] See also Figure 1 , Figure 1 It is a schematic diagram of an Android virtualization framework provided by an exemplary embodiment of the present application.
[0039] like Figure 1 As shown, the Android Virtualization Framework (AVF) includes two parts: an operating system 110 (Android) and a trusted virtual machine 120 (pVM).
[0040] The operating system 110 is used to run common applications, and the trusted virtual machine 120 is used to run trusted applications. By isolating from the operating system 110, the trusted virtual machine 120 provides a secure execution environment, thereby ensuring data security. The following briefly introduces the structures of the operating system 110 (Android) and the trusted virtual machine 120 (pVM).
[0041] Android part:
[0042] Application layer: Contains APKs and APEXes, which are the installation package formats of Android applications.
[0043] Middle layer:
[0044] Java API: Provides Java interface.
[0045] Virtualization service: Android service that manages the pVM lifecycle.
[0046] crosvm: Application used to create virtual machines.
[0047] Binder: The main way for virtual machines to communicate.
[0048] Core layer: Based on Linux kernel, the core of Android operating system.
[0049] Virtual machine layer: Hypervisor (pKVM), a virtual machine monitor based on the ARM architecture.
[0050] pVM part:
[0051] Application layer: Contains APKs and APEXes, which are the installation package formats of Android applications.
[0052] Middle layer:
[0053] Native API: Provides Native interface.
[0054] userspace tools: provides system services such as apexd, zipfuse, and authfs.
[0055] microdroid_manager: Microdroid management service.
[0056] Binder: The main way for virtual machines to communicate.
[0057] Core layer: Based on Linux kernel, with pvmfw (pVM firmware) added.
[0058] Virtual machine layer: Use Hypervisor (pKVM), which is the same as the Android part.
[0059] Figure 1There are three privilege levels from EL0 to EL2, with EL0 being the lowest privilege and EL2 being the highest privilege. In the Android virtualization framework, Android and microdroid mainly run at EL0, while the Linux kernel runs at EL1 and the Hypervisor runs at EL2, providing an isolated environment.
[0060] In some embodiments, the macro kernel (Linux kernel running at EL1) in the pVM can be replaced with a smaller micro kernel OS.
[0061] like Figure 1 The virtualization framework shown isolates common applications to run in the operating system 110, and isolates trusted applications with higher security requirements to run in the trusted virtual machine 120. By providing a trusted execution environment, it can prevent malicious software from obtaining data from trusted applications or interfering with their operation, thereby improving data security.
[0062] It should be noted that Figure 1 The virtualization framework is introduced by taking the Android operating system as an example. In fact, the operating system may be any other possible operating system, such as the IOS operating system. The system may also include more or fewer components, or combine certain components, which is not limited in this embodiment.
[0063] See also Figure 2 , Figure 2 1 is a flow chart of a data interaction method provided by an exemplary embodiment of the present application. In some embodiments, the method is executed by a terminal. The method includes the following steps.
[0064] Step 201, obtaining application data of a second application client from a second application server through a first application server, wherein the first application server is used to provide services for the first application client, the second application server is used to provide services for the second application client, the first application client and the second application client run on an operating system, and the first application server and the second application server run on a trusted virtual machine.
[0065] The operating system is used to run common applications in a non-trusted execution environment. Since it does not have specific security functions, the operating system may have data security issues such as user privacy leakage and malware attacks.
[0066] Exemplarily, the operating system may be an Android operating system or an IOS operating system, or any other possible operating system, without limitation.
[0067] In some embodiments, the first application client and the second application client are common applications (or non-trusted applications, non-secure applications) running on an operating system.
[0068] In some embodiments, the second application client is represented as a common application A, and the first application client is represented as a common application B. For example only, the first application client (common application B) is a payment application client, and the second application client (common application A) is a social application client.
[0069] A trusted virtual machine (TVM) is used to run trusted applications in a trusted execution environment. It can also be called a protected virtual machine (pVM), secure OS, etc. A trusted virtual machine is a hardware-supported isolated area in a terminal device that can securely execute code and process data without interference from the operating system or other applications.
[0070] In some embodiments, the trusted virtual machine supports and must enable security mechanisms such as secure boot mechanism (for preventing malware intrusion), selinux mechanism (for mandatory access control), and full disk encryption mechanism (for encoding all user data on the device using a key). In some embodiments, the trusted virtual machine supports functions such as key generation, key comparison, and must not be connected to the Internet to ensure data security in the trusted execution environment.
[0071] In some embodiments, the first application server and the second application server are trusted applications (or secure applications) running on a trusted virtual machine. The first application server is used to provide services to the first application client, and the second application server is used to provide services to the second application client.
[0072] In some embodiments, the second application server is represented as a trusted application PA(A), which is used to provide services for ordinary application A; the first application server is represented as a trusted application PA(B), which is used to provide services for ordinary application B.
[0073] For example only, the first application server PA(B) is a payment application server, which is used to provide services to the payment application client B (for example, to receive data sent by the payment application client and return data provided by the second application server to the payment application client).
[0074] For example only, the second application server PA(A) is a social application server, which is used to provide services for the social application client A (for example, to receive data sent by the social application client).
[0075] In some embodiments, the volume of the first application server is smaller than the volume of the first application client, and the volume of the second application server is smaller than the volume of the second application client. For example, the installation package volume of the payment application client is 55M, and the installation package volume of the payment application server is 0.4M; the installation package volume of the social application client is 200M, and the installation package volume of the payment application server is 1M.
[0076] In some embodiments, the installation package of the application server is included in the installation package of the application client. The terminal can download the installation package of the application client through an application store or other channels, and parse it to obtain the installation package of the application server.
[0077] In some embodiments, when the first application client has a data acquisition demand, the terminal acquires application data of the second application client from the second application server through the first application server.
[0078] The data acquisition requirement is a requirement for the first application client to acquire application data of the second application client. For example, the data acquisition requirement of the payment application client may be a requirement for acquiring a geographic location from a social application client.
[0079] It should be noted that in the process of collecting relevant data of the user (such as geographic location), the present application may display a prompt interface, a pop-up window or output a voice prompt information, and the prompt interface, pop-up window or voice prompt information is used to prompt the user that the relevant data is currently being collected, so that the present application only starts to execute the relevant steps of obtaining the relevant data of the user after obtaining the confirmation operation issued by the user to the prompt interface or pop-up window, otherwise (that is, when the confirmation operation issued by the user to the prompt interface or pop-up window is not obtained), the relevant steps of obtaining the relevant data of the user are terminated, that is, the relevant data of the user is not obtained. In other words, the information involved in the present application (including but not limited to user device information, user personal information, user geographic location), data (including but not limited to data for analysis, data for storage, data for display, etc.) and signals are all authorized by the user or fully authorized by all parties, and the collection, use and processing of relevant data need to comply with the relevant laws, regulations and standards of relevant countries and regions. For example, the geographical location of the user involved in the present application is obtained with full authorization.
[0080] In a possible implementation, the second application client A may send the application data of the second application client A to the second application server PA(A). When the first application client B has a data acquisition requirement, the first application client B sends a data acquisition request to the first application server PA(B), and the first application server PA(B) acquires the application data of the second application client A from the second application server PA(A) upon receiving the data acquisition request.
[0081] In a possible implementation, the specific method in which the terminal obtains the application data of the application client from the second application server through the first application server can be implemented through the Privacy Sandbox Service (PSS). In a possible implementation, the terminal can determine the first application server PA (B)'s access rights to the application data of the second application client A through the Privacy Sandbox Service, and obtain the application data of the second application client A from the second application server PA (A) through the first application server PA (B) when the access rights situation indicates that the first application server PA (B) has the access rights to the application data. For more information about the Privacy Sandbox Service and the access rights situation, please refer to the following embodiments and related descriptions, which will not be repeated here.
[0082] Step 202: According to the application data of the second application client, the calculation result required by the first application client is calculated through the first application server.
[0083] Optionally, the data type of the calculation result is a Boolean value. For example only, the calculation result is 0 (indicating that the transaction does not have risk) or 1 (indicating that the transaction has risk).
[0084] Optionally, the data type of the calculation result is an enumeration value. For example only, the calculation result is an integer between 0 and 100, representing the possibility of risk in the transaction. Alternatively, the calculation result is level 1, level 2, or level 3, representing the risk level of the transaction.
[0085] Optionally, the number of data bits of the calculation result is less than or equal to a bit threshold (eg, 2 bits).
[0086] Regarding the specific method in which the terminal calculates the calculation results required by the first application client based on the application data of the second application client through the first application server, in some embodiments, the first application server PA(B) obtains the application data of the second application client A, and calculates the calculation results required by the first application client B according to pre-set calculation rules.
[0087] Regarding the specific method in which the terminal calculates the calculation result required by the first application client through the first application server based on the application data of the second application client, in other embodiments, the first application server PA(B) obtains the application data of the first application client B and the application data of the second application client A, and calculates the calculation result required by the first application client B according to pre-set calculation rules.
[0088] That is, the first application server PA(B) can obtain calculation results based only on the application data of the other application (the second application client A), or can obtain calculation results based on the application data of both the other application (the second application client A) and its own application (the first application client B).
[0089] Optionally, the first application server PA(B) uses mathematical privacy calculation methods such as multi-party calculation and privacy intersection to obtain calculation results.
[0090] Step 203: Return the calculation result to the first application client through the first application server.
[0091] In some embodiments, the terminal may perform a security check on the calculation result, and if the calculation result meets the security requirements, the terminal may return the calculation result to the first application client through the first application server, thereby ensuring data security.
[0092] Regarding the specific manner in which the terminal returns the calculation result to the first application client through the first application server, in some embodiments, it can be implemented through a privacy sandbox service. For more information about returning the calculation result to the first application client through the privacy sandbox service, please refer to the following embodiments and related descriptions, which will not be repeated here.
[0093] It should be noted that this embodiment introduces a method for realizing data interaction between two application clients running on an operating system. However, it does not constitute a limitation on the number of application clients running on the operating system. In fact, a method similar to this embodiment can also be used to realize data interaction between three or more application clients. For example, application A simultaneously combines the application data of application B and application C for calculation. Such variations are within the scope of protection of this application.
[0094] In summary, on the one hand, the first application client and the second application client run on the operating system, and the first application server and the second application server run on the trusted virtual machine. Since the trusted virtual machine belongs to a trusted execution environment isolated from the operating system, and the application data never leaves the terminal, compared with the method of data transfer through the server in the related art, the present application can greatly reduce the risk of privacy data leakage; on the other hand, since the terminal obtains the application data of the second application client from the second application server through the first application server, and calculates the calculation result required by the first application client through the first application server, and then returns the calculation result to the first application client, instead of directly sending the application data to the first application client, in fact, the first application client will not obtain the application data in the second application client, but can use the application data to perform the calculation required by the first application client, so data desensitization can be achieved, thereby further avoiding the occurrence of privacy data leakage. That is, the data interaction method provided by the present application can realize data sharing between different applications in the terminal under the premise of ensuring data security and privacy, and solve the problem of data islands.
[0095] In a possible scenario, the terminal needs to pre-install the first application server and the second application server in the trusted virtual machine.
[0096] Regarding the installation process of the application server, in some embodiments, the terminal can start a trusted virtual machine (pVM) through a privacy sandbox service (PSS). In some embodiments, the terminal sends the installation package of the application server from the operating system to the trusted virtual machine through the privacy sandbox service, and then installs the application server in the trusted virtual machine based on the installation package through the privacy sandbox service.
[0097] The application server includes a first application server PA(B) and a second application server PA(A).
[0098] The privacy sandbox service, a security mechanism that isolates running programs, can ensure data security and avoid unknown attacks. In some embodiments, some components of the privacy sandbox service run on the operating system, and other components run on the trusted virtual machine, thereby serving as a bridge for interaction between the operating system and the trusted virtual machine.
[0099] See also Figure 3 , Figure 3 This is a schematic diagram of installing a first application server and a second application server in a trusted virtual machine through a privacy sandbox service provided by an exemplary embodiment of the present application.
[0100] like Figure 3 As shown, the terminal includes an operating system 310 , a trusted virtual machine 320 , and a privacy sandbox service 330 .
[0101] The specific process of installing the first application server and the second application server in the trusted virtual machine through the privacy sandbox service includes the following steps S1 to S5.
[0102] Step S1, data signature.
[0103] In some embodiments, the terminal obtains the digital signature of the installation package of the application server from the server.
[0104] Optionally, the installation package of the application server is included in the installation package of the corresponding application client, and the terminal can parse the installation package of the application client to obtain the installation package of the application server.
[0105] Optionally, the digital signature of the server on the installation package of the application server is included in the installation package of the application server, and the terminal can parse the installation package of the application server to obtain the digital signature.
[0106] Optionally, the installation package of the application server also includes permission information of the corresponding application client, wherein the permission information is used to indicate the permission of other application servers to obtain the application data of the application client. For example only, when the permission information included in the first application server PA(A) includes "second application server PA(B), geographic location", it indicates that the second application server PA(B) has the permission to obtain the geographic location of the first application client A from the first application server PA(A).
[0107] like Figure 3 In the example, the installation package of the second application server PA (A) is included in the installation package of the second application client (application A), and the installation package of the first application server PA (B) is included in the installation package of the first application client (application B).
[0108] In one possible scenario, the terminal may not have installed the second application client (application A) and the first application client (application B); in another possible scenario, the terminal may have installed the second application client (application A) and the first application client (application B), and the installation package may be the latest version of the installation package.
[0109] In a possible implementation, the terminal can download the installation package of the application client through an application store or the like, and parse the installation package of the application server from the installation package of the application client. In a possible implementation, the installation package of the application server includes the digital signature of the server for the installation package of the application server. For example, the terminal obtains the digital signature of the server for the installation packages of the second application server PA(A) and the first application server PA(B) by parsing the installation package of the application server from the server 301.
[0110] Regarding the way in which the server digitally signs the installation package of the application server, optionally, the server may use a hash function to calculate the digest value of the installation package of the application server, and encrypt the digest value to obtain a digital signature. Alternatively, the server may also use any other possible way to digitally sign the installation package of the application server, without limitation.
[0111] Step S2, signature verification in the operating system.
[0112] In some embodiments, the terminal performs signature verification on the digital signature corresponding to the installation package in the operating system through the privacy sandbox service, and the digital signature is obtained by signing the installation package by the server.
[0113] In one possible implementation, the first application management component 311 in the privacy sandbox service 330 runs on the operating system 310 , and the signature verification component included in the first application management component 311 is used to perform signature verification on the digital signature corresponding to the installation package in the operating system 310 .
[0114] For example, the signature verification component included in the first application management component 311 performs signature verification on the digital signature corresponding to the installation package of the second application server PA(A) and the digital signature corresponding to the installation package of the first application server PA(B).
[0115] Regarding the specific method of performing signature verification, optionally, the signature verification component decrypts the data signature to obtain a decrypted value, and uses a hash function to calculate the summary value of the installation package of the application server. If the decrypted value is consistent with the summary value, the verification is determined to be passed; if the decrypted value is inconsistent with the summary value, the verification is determined to be failed. Alternatively, the signature verification component can also use any other possible method to perform signature verification on the digital signature, which is not limited.
[0116] Step S3, sending the installation package.
[0117] In some embodiments, when the digital signature corresponding to the installation package in the operating system passes the signature verification, the terminal sends the installation package of the application server from the operating system to the trusted virtual machine through the privacy sandbox service.
[0118] In a possible implementation, the first communication management component 312 in the privacy sandbox service 330 runs on the operating system 310 , and the first communication management component 312 is used to communicate with the second communication management component 321 running in the trusted virtual machine 320 .
[0119] like Figure 3In the case where the digital signatures corresponding to the installation packages of the second application server PA(A) and the first application server PA(B) pass the signature verification, the first application management component 311 sends the installation package to the first communication management component 312. The terminal sends the installation packages of the second application server PA(A) and the first application server PA(B) to the second communication management component 321 through the first communication management component 312 in the privacy sandbox service 330, thereby sending the installation package from the operating system 310 to the trusted virtual machine 320.
[0120] Regarding the specific method in which the first communication management component 312 sends the installation package to the second communication management component 321, optionally, the first communication management component 312 sub-packets, encrypts and calculates the hash value of the installation package and then sends it to the second communication management component 321, and the second communication management component 321 decrypts the encrypted sub-packets, combines the packages and verifies the hash value, and sends the installation package to the second application management component 322 if the verification passes.
[0121] Step S4, signature verification in the trusted virtual machine.
[0122] In some embodiments, the terminal performs signature verification on the digital signature corresponding to the installation package in the trusted virtual machine through the privacy sandbox service.
[0123] In one possible implementation, the second application management component 322 in the privacy sandbox service 330 runs on the trusted virtual machine 320 , and the signature verification component included in the second application management component 322 is used to perform signature verification on the digital signature corresponding to the installation package in the trusted virtual machine 320 .
[0124] For example, the second communication management component 321 sends the installation package to the second application management component 322. The signature verification component included in the second application management component 322 parses the digital signature from the installation packages of the second application server PA(A) and the first application server PA(B), and performs signature verification on the digital signature.
[0125] Regarding the specific method of performing signature verification, optionally, the signature verification component decrypts the data signature to obtain a decrypted value, and uses a hash function to calculate the summary value of the installation package of the application server. If the decrypted value is consistent with the summary value, the verification is determined to be passed; if the decrypted value is inconsistent with the summary value, the verification is determined to be failed. Alternatively, the signature verification component can also use any other possible method to perform signature verification on the digital signature, which is not limited.
[0126] Step S5, installation and startup.
[0127] In some embodiments, when the digital signature corresponding to the installation package in the trusted virtual machine passes the signature verification, the terminal installs the application server in the trusted virtual machine based on the installation package through the privacy sandbox service.
[0128] In one possible implementation, when the signature verification component included in the second application management component 322 determines that the digital signatures corresponding to the installation packages of the second application server PA(A) and the first application server PA(B) in the trusted virtual machine 320 pass the signature verification, the second application management component 322 installs and starts the second application server PA(A) and the first application server PA(B) based on the installation packages in the trusted virtual machine 320.
[0129] In another possible implementation, the second application management component 322 is also used to directly start the second application server PA(A) and the first application server PA(B) when the second application server PA(A) and the first application server PA(B) have been installed in the trusted virtual machine 320.
[0130] In this embodiment, the installation packages of the second application server PA(A) and the first application server PA(B) are sent from the operating system to the trusted virtual machine through the privacy sandbox service, and the second application server PA(A) and the first application server PA(B) are installed and started in the trusted virtual machine based on the installation packages, so that the second application server PA(A) can subsequently provide services to the second application client A, and the first application server PA(B) can provide services to the first application client B.
[0131] When the first application client (application B) has a data acquisition requirement, the terminal obtains the application data of the second application client from the second application server through the first application server. The data acquisition requirement is the requirement of the first application client to obtain the application data of the second application client.
[0132] In one possible implementation, the terminal determines, through a privacy sandbox service, the first application server's permission to obtain application data of the second application client; when the permission status indicates that the first application server has the permission to obtain application data, the terminal obtains the application data of the second application client from the second application server through the first application server.
[0133] See also Figure 4 , Figure 4 This is a schematic diagram of determining the access permissions of a first application server to application data of a second application client through a privacy sandbox service, provided by an exemplary embodiment of the present application.
[0134] like Figure 4As shown, the terminal includes an operating system 410, a trusted virtual machine 420, and a privacy sandbox service 430. Among them, the first application management component 411 and the first communication management component 412 in the privacy sandbox service 430 run on the operating system 410, and the second communication management component 421 and the second application management component 422 run on the trusted virtual machine 420. The second application server PA (A) and the first application server PA (B) are also running in the trusted virtual machine 420.
[0135] The specific process of obtaining the application data of the second application client from the second application server through the first application server includes the following steps S6 to S9.
[0136] S6, data acquisition application.
[0137] In a possible implementation, when the first application client (application B) has a data acquisition requirement, the first application server PA (B) sends a data acquisition request to the second application management component 422 in the privacy sandbox service 430. The data acquisition requirement is the requirement of the first application client to obtain the application data of the second application client. For example only, the data acquisition requirement of the first application client (application B) may be the requirement to obtain the geographic location from the second application client (application A).
[0138] Optionally, when the first application client (application B) has a data acquisition demand, the first application client (application B) sends a data calculation notification to the first application server PA (B) through the privacy sandbox service 430.
[0139] Optionally, the data calculation notification may include identification information of the second application client (application A) and information about what kind of data to be obtained.
[0140] Optionally, when it is necessary to combine the other party's data (application data of application A) and one's own data (application data of application B) for calculation, the data calculation notification may also include the application data of the first application client (application B) (such as transaction data of the payment application client).
[0141] S7, permission check.
[0142] In some embodiments, the terminal obtains a permission check list through the privacy sandbox service, and the permission check list is obtained by parsing the permission information contained in the installation package of the second application server by the privacy sandbox service.
[0143] In a possible implementation, upon receiving a data acquisition request sent by the first application server PA(B), the second application management component 422 in the privacy sandbox service 430 acquires a permission check list through the permission check component 422-1.
[0144] The permission check table is obtained by parsing the permission information contained in the installation package of the second application server PA(A) by the permission check component 422-1 in the privacy sandbox service 430.
[0145] Optionally, the installation package of the application server includes permission information of the corresponding application client, wherein the permission information is used to indicate the permission of other application servers to obtain the application data of the application client. For example only, when the permission information included in the first application server PA(A) includes "second application server PA(B), geographic location", it indicates that the second application server PA(B) has the permission to obtain the geographic location of the first application client A from the first application server PA(A).
[0146] In a possible implementation, the permission check component 422-1 can parse the permission information contained in the installation package of the second application server PA(A) to obtain a permission check table. For example, the permission check table records that the second application server PA(B) has the permission to obtain the geographic location of the first application client A from the first application server PA(A).
[0147] In some embodiments, the terminal determines, through the privacy sandbox service and based on a permission check list, the permission status of the first application server to obtain application data of the second application client.
[0148] For example, when the second application management component 422 in the privacy sandbox service 430 receives a data acquisition application sent by the first application server PA(B), the terminal obtains the permission check table through the permission check component 422-1 in the second application management component 422, and determines the acquisition permission situation based on the data recorded in the permission check table that the first application server PA(B) has the permission to obtain the application data (such as geographic location) of the second application client A from the second application server PA(A).
[0149] S8, return to the data interface.
[0150] In some embodiments, when the permission acquisition situation indicates that the first application server has permission to acquire application data, the terminal acquires application data of the second application client from the second application server through the first application server.
[0151] In one possible implementation, the data interface corresponding to the application data of the second application client A is recorded in the permission check table. When the permission acquisition situation indicates that the first application server has the permission to acquire the application data, the second application management component 422 returns the data interface to the first application server PA(B).
[0152] S9, obtaining application data.
[0153] In some embodiments, the first application server PA(B) obtains application data (such as geographic location) of the first application server A from the second application server PA(A) based on a data interface.
[0154] In a possible implementation, the second application client A sends the application data (such as geographic location) to the second application server PA(A) in advance through the privacy sandbox service.
[0155] It should be noted that the terminal may also use other methods to obtain the application data of the second application client from the second application server through the first application server. For example, when the permission check component 422-1 determines that the first application server PA(B) has the permission to obtain the application data of the second application client A from the second application server PA(A), the second application management component 422 may also obtain the application data from the second application server PA(A) through the data interface and return it to the first application server PA(B), without limitation.
[0156] In this embodiment, the privacy sandbox service is used to check the first application server's permission to obtain the application data of the second application client, thereby ensuring that the first application server cannot obtain the application data of the second application client if it does not have permission, thereby further ensuring data security.
[0157] After the first application server PA(B) obtains the application data of the second application client A from the second application server PA(A), the first application server PA(B) calculates the calculation result required by the first application client B based on the application data.
[0158] After determining the calculation result, the terminal returns the calculation result to the first application client through the first application server. To ensure data security, the terminal can perform a security check on the calculation result returned to the first application client.
[0159] See also Figure 5 , Figure 5 It is a schematic diagram of returning a calculation result to a first application client provided by an exemplary embodiment of the present application.
[0160] like Figure 5As shown, the terminal includes an operating system 510, a trusted virtual machine 520, and a privacy sandbox service 530. Among them, the first application management component 511 and the first communication management component 512 in the privacy sandbox service 530 run on the operating system 510, and the second communication management component 521 and the second application management component 522 run on the trusted virtual machine 520. The second application server PA (A) and the first application server PA (B) are also running in the trusted virtual machine 520.
[0161] The specific process of the first application server PA (B) determining the calculation result and returning the calculation result to the first application client (application B) includes the following steps S10 to S12.
[0162] S10, determining the calculation result.
[0163] Regarding the calculation method of the calculation result, in some embodiments, the terminal parses the installation package of the first application server to obtain the calculation rule.
[0164] Optionally, the installation package of the first application server includes pre-set calculation rules. The calculation rules may include a calculation model (such as an artificial intelligence model). For example, the server pre-trains the calculation model and compresses the calculation model into the installation package of the first application server.
[0165] In some embodiments, the terminal calculates the calculation result required by the first application client according to the calculation rules through the first application server based on the application data of the second application client and the application data of the first application client.
[0166] For example only, the first application server PA(B) calculates the calculation result required by the first application client (for example, the risk situation of the transaction) according to the calculation model based on the application data (geographic location) of the second application client A and the application data (transaction data) of the first application client B.
[0167] S11, safety check.
[0168] In some embodiments, the terminal sends the calculation result to the privacy sandbox service through the first application server; when the privacy sandbox service determines that the calculation result meets the security requirements, the terminal returns the calculation result to the first application client through the privacy sandbox service.
[0169] In one possible implementation, the first application server PA(B) sends the calculation result to the second communication application component 522, and the second communication application component 522 then passes the calculation result to the second application communication component 521. The security check component 521-1 in the second application communication component 521 is used to perform a security check on the calculation result.
[0170] Regarding the specific method of security check, in some embodiments, the security check component 521-1 can determine whether the calculation result meets the security requirements based on at least one of the data type and the number of data bits of the calculation result.
[0171] In some embodiments, when the data type of the calculation result is a specified data type, the privacy sandbox service determines that the calculation result meets the security requirements.
[0172] In some embodiments, when the number of data bits of the calculation result is less than or equal to the number of bits threshold, the privacy sandbox service determines that the calculation result meets the security requirements.
[0173] See also Figure 6 , Figure 6 This is a flow chart of performing security check on a calculation result provided by an exemplary embodiment of the present application. In a possible implementation, the process may be executed by the security check component 521-1, and the process includes the following steps.
[0174] Step 601, obtaining the calculation result of the first application server.
[0175] For example, the security check component 521 - 1 obtains the calculation result of the first application server PA(B) from the second communication application component 522 .
[0176] Step 602, determine whether the data type of the calculation result is a specified data type.
[0177] Optionally, specifies the data type to be determined by the terminal settings.
[0178] Optionally, specify a Boolean data type. For example, if the calculation result is 0 (indicating that the transaction is not risky) or 1 (indicating that the transaction is risky), the data type of the calculation result is the specified data type.
[0179] Optionally, specify an enumeration value as the data type. For example only, the calculation result is an integer between 0 and 100, representing the possibility of risk in the transaction. Alternatively, the calculation result is level 1, level 2, or level 3, representing the risk level of the transaction. The data type of the calculation result is the specified data type.
[0180] In some embodiments, when the data type of the calculation result is a specified data type, step 603 is executed; when the data type of the calculation result is not a specified data type, step 604 is executed.
[0181] Step 603, determining whether the number of data bits of the calculation result is less than or equal to a bit threshold.
[0182] Optionally, the bit number threshold is a value preset by the terminal, such as 2 bits.
[0183] In some embodiments, when the number of data bits of the calculation result is less than or equal to the bit threshold, step 605 is executed; when the data type of the calculation result is not the specified data type, step 604 is executed.
[0184] Step 604: Modify the calculation result based on the security requirement through the privacy sandbox service to obtain a modified calculation result.
[0185] In some embodiments, when the calculation result does not meet the security requirements (for example, the data type is not a specified data type, or the number of data bits is greater than a bit threshold), the terminal modifies the calculation result based on the security requirements through the privacy sandbox service to obtain a modified calculation result.
[0186] Regarding the specific method of modifying the calculation results based on security requirements, in one possible implementation method, when the number of data bits of the calculation result is greater than the bit threshold, the terminal retains the data of specified bits in the calculation result through the privacy sandbox service, and discards the data of other bits in the calculation result except the specified bits, to obtain the modified calculation result.
[0187] Wherein, the number of specified bits is less than or equal to the bit number threshold.
[0188] Optionally, the designated bit is preset by the terminal, for example, the designated bit is the last 2 bits of data in the calculation result.
[0189] For example only, when the bit threshold is 2 bits and the number of bits of the calculation result exceeds 2 bits, the security check component 521-1 retains the last 2 bits of the calculation result and discards the data of other bits except the last 2 bits in the calculation result to obtain a modified calculation result.
[0190] Regarding the specific method of modifying the calculation results based on security requirements, in one possible implementation method, when the calculation result contains multiple calculation data and the data type of some of the calculation data is not the specified data type, the security check component 521-1 discards the part of the calculation data and only includes the calculation data with the specified data type as the modified calculation result.
[0191] Step 605: Determine whether the calculation result meets the security requirements.
[0192] S12, returns the calculation result.
[0193] In some embodiments, when the privacy sandbox service determines that the calculation result meets the security requirements, the terminal returns the calculation result to the first application client through the privacy sandbox service.
[0194] In other embodiments, when the privacy sandbox service determines that the calculation result does not meet the security requirements, the privacy sandbox service modifies the calculation result based on the security requirements; the terminal returns the modified calculation result to the first application client through the privacy sandbox service.
[0195] For example, the second application communication component 521 running in the trusted virtual machine 520 sends the calculation result to the first communication management component 512 running in the operating system 510, and the first communication management component 512 then sends the calculation result to the first application client (application B).
[0196] In this embodiment, by performing a security check on the calculation results of the first application server PA(B) through the privacy sandbox service, it can be ensured that the calculation results returned to the first application client (application B) meet the security requirements, avoiding the leakage of data that does not meet the security requirements, thereby further ensuring the security of data interaction between different applications.
[0197] See also Figure 7 , Figure 7 This is a structural block diagram of a data interaction device provided by an exemplary embodiment of the present application. The device includes:
[0198] A first application service module 721 is used to obtain application data of a second application client module 712 from a second application service module 722, wherein the first application service module 721 is used to provide services for the first application client module 711, and the second application service module 722 is used to provide services for the second application client module 712, the first application client module 711 and the second application client module 712 run on an operating system 710, and the first application service module 721 and the second application service module 722 run on a trusted virtual machine 720;
[0199] The first application service module 721 is further used to calculate the calculation result required by the first application client module 711 according to the application data of the second application client module 712;
[0200] The first application service module 721 is further configured to return the calculation result to the first application client module 711 .
[0201] Optionally, the privacy sandbox service module 730 is used to:
[0202] Sending the installation package of the application service module from the operating system 710 to the trusted virtual machine 720, the application service module including the first application service module 721 and the second application service module 722;
[0203] The application service module is installed in the trusted virtual machine 720 based on the installation package.
[0204] Optionally, the privacy sandbox service module 730 is used to:
[0205] Performing signature verification on a digital signature corresponding to the installation package in the operating system 710, where the digital signature is obtained by signing the installation package by the server;
[0206] When the digital signature corresponding to the installation package in the operating system 710 passes the signature verification, the installation package of the application service module is sent from the operating system 710 to the trusted virtual machine 720 .
[0207] Optionally, the privacy sandbox service module 730 is used to:
[0208] Performing signature verification on the digital signature corresponding to the installation package in 720 in the trusted virtual machine;
[0209] When the digital signature corresponding to the installation package in the trusted virtual machine 720 passes the signature verification, the application service module is installed in the trusted virtual machine 720 based on the installation package.
[0210] Optionally, the privacy sandbox service module 730 is used to:
[0211] Determine the first application service module 721's access rights to the application data of the second application client module 712;
[0212] Optionally, the first application service module 721 is used to:
[0213] When the acquisition authority situation indicates that the first application service module 721 has the acquisition authority to the application data, the application data of the second application client module 712 is acquired from the second application service module 722 .
[0214] Optionally, the privacy sandbox service module 730 is used to:
[0215] Obtaining a permission check table, where the permission check table is obtained by parsing the permission information contained in the installation package of the second application service module 722 by the privacy sandbox service;
[0216] Based on the permission check table, the permission of the first application service module 721 to obtain the application data of the second application client module 712 is determined.
[0217] Optionally, the first application service module 721 is used to:
[0218] Sending the calculation result to the privacy sandbox service 730;
[0219] Optionally, the privacy sandbox service module 730 is used to:
[0220] When it is determined that the calculation result meets the security requirement, the calculation result is returned to the first application client module 711 .
[0221] Optionally, the privacy sandbox service module 730 is used for at least one of the following:
[0222] When the data type of the calculation result is a specified data type, determining that the calculation result meets the security requirements;
[0223] When the number of data bits of the calculation result is less than or equal to the number threshold, it is determined that the calculation result meets the security requirement.
[0224] Optionally, the privacy sandbox service module 730 is used to:
[0225] If the calculation result does not meet the security requirement, modify the calculation result based on the security requirement to obtain a modified calculation result;
[0226] The modified calculation result is returned to the first application client module 711.
[0227] Optionally, the privacy sandbox service module 730 is used to:
[0228] When the number of data digits of the settlement result is greater than the digit threshold, retain the data of the designated digits in the calculation result, and discard the data of other digits in the calculation result except the designated digits, to obtain the modified calculation result;
[0229] The number of designated bits is less than or equal to the bit number threshold.
[0230] Optionally, the first application service module 721 is used to:
[0231] Parsing the installation package of the first application service module 721 to obtain a calculation rule;
[0232] Based on the application data of the second application client module 712 and the application data of the first application client module 711, the calculation result required by the first application client module 711 is calculated according to the calculation rule through the first application service module 721.
[0233] In some embodiments, the device further includes a core 741 for supporting the operation of the operating system 710. In some embodiments, the device further includes a core 742 for supporting the operation of the trusted virtual machine 720. In some embodiments, the device further includes a virtual machine monitor 751 for supporting the operating system 710 and the trusted virtual machine 720 to run efficiently, securely and compatibly on the same physical hardware.
[0234] See also Figure 8 , Figure 8 It is a structural block diagram of a terminal provided by an exemplary embodiment of the present application.
[0235] The terminal can execute the data interaction method of the above embodiment. The terminal can be an electronic device that supports running applications, such as a smart phone, a laptop, a tablet computer, a navigation device, a smart TV, etc. The terminal may also be called a user device, a portable terminal, or other names. The terminal may include one or more of the following components: a processor 810 and a memory 820.
[0236] Optionally, the processor 810 uses various interfaces and lines to connect various parts of the entire electronic device, and executes various functions of the electronic device and processes data by running or executing instructions, programs, code sets or instruction sets stored in the memory 820, and calling data stored in the memory 820. Optionally, the processor 810 can be implemented in at least one hardware form of digital signal processing (DSP), field-programmable gate array (FPGA), and programmable logic array (PLA). The processor 810 can integrate one or a combination of a central processing unit (CPU), a graphics processing unit (GPU), a neural network processor (NPU), and a baseband chip. Among them, the CPU mainly processes the operating system, user interface, and application programs; the GPU is responsible for rendering and drawing the content that needs to be displayed on the touch display; the NPU is used to implement artificial intelligence (AI) functions; and the baseband chip is used to process wireless communications. It is understandable that the above baseband chip may not be integrated into the processor 810, but may be implemented by a separate chip.
[0237] The memory 820 may include a random access memory (RAM) or a read-only memory (ROM). Optionally, the memory 820 includes a non-transitory computer-readable storage medium. The memory 820 may be used to store instructions, programs, codes, code sets, or instruction sets. The memory 820 may include a program storage area and a data storage area, wherein the program storage area may store instructions for implementing an operating system, instructions for at least one function (such as a touch function, a sound playback function, an image playback function, etc.), instructions for implementing the following various method embodiments, etc.; the data storage area may store data created according to the use of the electronic device (such as audio data, a phone book), etc.
[0238] In addition, those skilled in the art will appreciate that the structure of the terminal shown in the above figures does not constitute a limitation on the terminal, and the terminal may include more or fewer components than shown, or a combination of certain components, or a different arrangement of components.
[0239] The embodiment of the present application also provides a computer-readable storage medium, in which at least one computer instruction is stored, and at least one computer instruction is loaded and executed by a processor to implement the method described in the above embodiment. Optionally, the computer-readable storage medium may include: ROM, RAM, solid state drives (SSD, Solid State Drives) or optical disks, etc. Among them, RAM may include resistance random access memory (ReRAM, Resistance Random Access Memory) and dynamic random access memory (DRAM, Dynamic Random Access Memory).
[0240] The embodiment of the present application also provides a computer program product or a computer program, which includes a computer instruction stored in a computer-readable storage medium. The processor of the computer device reads the computer instruction from the computer-readable storage medium, and the processor executes the computer instruction, so that the computer device executes the method provided in various optional implementations of the above aspects.
[0241] The above description is only an optional embodiment of the present application and is not intended to limit the present application. Any modifications, equivalent substitutions, improvements, etc. made within the spirit and principles of the present application shall be included in the protection scope of the present application.
Claims
1. A data interaction method, characterized in that: The method comprises: Obtaining application data of a second application client from a second application server through a first application server, wherein the first application server is used to provide services for the first application client, the second application server is used to provide services for the second application client, the first application client and the second application client run on an operating system, and the first application server and the second application server run on a trusted virtual machine; According to the application data of the second application client, the calculation result required by the first application client is calculated through the first application server; The calculation result is returned to the first application client through the first application server.
2. The method according to claim 1, characterized in that The method further comprises: Sending an installation package of an application server from the operating system to the trusted virtual machine through a privacy sandbox service, wherein the application server includes the first application server and the second application server; The application server is installed in the trusted virtual machine based on the installation package through the privacy sandbox service.
3. The method according to claim 2, characterized in that The step of sending the installation package of the application server from the operating system to the trusted virtual machine through the privacy sandbox service includes: Performing a signature verification on the digital signature corresponding to the installation package in the operating system through the privacy sandbox service, where the digital signature is obtained by signing the installation package by the server; When the digital signature corresponding to the installation package in the operating system passes the signature verification, the installation package of the application server is sent from the operating system to the trusted virtual machine through the privacy sandbox service.
4. The method according to claim 3, characterized in that The step of installing the application server in the trusted virtual machine based on the installation package through the privacy sandbox service includes: Performing signature verification on the digital signature corresponding to the installation package in the trusted virtual machine through the privacy sandbox service; When the digital signature corresponding to the installation package in the trusted virtual machine passes the signature verification, the application server is installed in the trusted virtual machine based on the installation package through the privacy sandbox service.
5. The method according to claim 1, characterized in that The obtaining, through the first application server, application data of the second application client from the second application server includes: Determining, through the privacy sandbox service, the permission of the first application server to obtain the application data of the second application client; When the permission acquisition situation indicates that the first application server has permission to acquire the application data, the application data of the second application client is acquired from the second application server through the first application server.
6. The method according to claim 5, characterized in that The determining, through the privacy sandbox service, the permission of the first application server to obtain the application data of the second application client includes: Obtaining, through the privacy sandbox service, a permission check list, wherein the permission check list is obtained by parsing, by the privacy sandbox service, permission information contained in the installation package of the second application server; Through the privacy sandbox service, based on the permission check table, the access permission of the first application server to the application data of the second application client is determined.
7. The method according to any one of claims 1 to 6, characterized in that: The returning the calculation result to the first application client through the first application server includes: Sending the calculation result to the privacy sandbox service through the first application server; When the privacy sandbox service determines that the calculation result meets the security requirements, the calculation result is returned to the first application client through the privacy sandbox service.
8. The method according to claim 7, characterized in that The method further comprises at least one of the following: When the data type of the calculation result is a specified data type, the privacy sandbox service determines that the calculation result meets the security requirement; When the number of data bits of the calculation result is less than or equal to the bit threshold, the privacy sandbox service determines that the calculation result meets the security requirement.
9. The method according to claim 7, characterized in that: The method further comprises: If the calculation result does not meet the security requirement, modify the calculation result based on the security requirement through the privacy sandbox service to obtain the modified calculation result; The modified calculation result is returned to the first application client through the privacy sandbox service.
10. The method according to claim 9, characterized in that When the calculation result does not meet the security requirement, modifying the calculation result based on the security requirement through the privacy sandbox service to obtain the modified calculation result includes: When the number of data digits of the settlement result is greater than the digit threshold, the privacy sandbox service is used to retain the data of the designated digits in the calculation result, and discard the data of other digits in the calculation result except the designated digits, so as to obtain the modified calculation result; The number of designated bits is less than or equal to the bit number threshold.
11. The method according to any one of claims 1 to 6, characterized in that: The calculating, through the first application server, according to the application data of the second application client, a calculation result required by the first application client includes: Parsing the installation package of the first application server to obtain a calculation rule; Based on the application data of the second application client and the application data of the first application client, the calculation result required by the first application client is calculated by the first application server according to the calculation rule.
12. A data interaction device, characterized in that: The device comprises: A first application service module, configured to obtain application data of a second application client module from a second application service module, wherein the first application service module is configured to provide services for the first application client module, the second application service module is configured to provide services for the second application client module, the first application client module and the second application client module are run on an operating system, and the first application service module and the second application service module are run on a trusted virtual machine; The first application service module is further configured to calculate a calculation result required by the first application client module according to the application data of the second application client module; The first application service module is further used to return the calculation result to the first application client module.
13. A terminal, characterized in that: The terminal includes a processor and a memory; the memory stores at least one computer instruction, and the at least one computer instruction is used to be executed by the processor to implement the data interaction method as described in any one of claims 1 to 11.
14. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores at least one computer instruction, and the computer instruction is loaded and executed by a processor to implement the data interaction method according to any one of claims 1 to 11.
15. A computer program product, characterized in that The computer program product includes computer instructions, which are stored in a computer-readable storage medium; the processor of the terminal reads the computer instructions from the computer-readable storage medium, and the processor executes the computer instructions, so that the terminal executes the data interaction method as described in any one of claims 1 to 11.