Data use control method and device, equipment and medium
By monitoring and intercepting system calls of applications in a trusted execution environment, and controlling data access based on data usage contracts, the problem of inability to effectively control data leakage and abuse in existing technologies is solved, and fine-grained data usage processes are achieved. Improved control and security.
Patent Information
- Application Number
- CN202411385319.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-09-30
- Publication Date
- 2025-01-24
- Estimated Expiration
- 2044-09-30
AI Technical Summary
The existing technology cannot effectively control data leakage and abuse caused by application failure, and cannot achieve fine-grained control of the data usage process, which poses security risks.
In a trusted execution environment, an application's system calls are monitored and intercepted when access to preset data is detected. Based on the data usage contract corresponding to the preset data, it is judged whether the data usage information meets the data usage policy. If it is satisfied, access is allowed and a data usage control sandbox is established to store the data usage policy, thereby controlling the application's use of data.
The access to data through fine particle size controls the data, effectively avoids data leakage and abuse caused by application failure, and improves the security and reliability of the data use process.
Smart Images

Figure CN119357947A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of data protection technology, and in particular to a data use control method, device, equipment and medium. Background Art
[0002] The trusted data space consists of a set of hardware and software. Its main purpose is to build a confidential computing environment through trusted measurement and other methods. By measuring and authenticating hardware, firmware, kernel and applications, the trustworthiness and security of the operating environment are ensured. However, in order to further enhance the security of data during use, a fine-grained control method for the data usage process is urgently needed.
[0003] When using data, existing technologies usually do not pay attention to security issues such as data leakage and abuse caused by application failures and bugs, and are unable to achieve fine-grained control over the corresponding data usage process, so there are still certain security risks. Summary of the invention
[0004] The present invention provides a data usage control method, device, equipment and medium to achieve fine-grained control of the data usage process and further improve the security of the data usage process.
[0005] According to one aspect of the present invention, there is provided a data usage control method, the method comprising:
[0006] In the current trusted execution environment, a system call of at least one application is monitored, and when it is determined that the system call has access to preset data, the system call is intercepted; wherein the preset data includes at least one set of preset data content;
[0007] Based on the data usage contract corresponding to the preset data, determine whether the data usage information corresponding to the intercepted system call meets the data usage policy; wherein the preset data and the corresponding data usage contract are stored in a preset data storage sandbox, and the data usage contract is agreed upon by the data owner and the data user through negotiation;
[0008] If so, the application is allowed to access the preset data, and a data usage control sandbox corresponding to the application is established; wherein the data usage control sandbox is used to store the data usage policy corresponding to the preset data content accessed by the application;
[0009] Based on the data usage control sandbox, the use of the preset data by the application is controlled.
[0010] According to another aspect of the present invention, there is provided a data usage control device, the device comprising:
[0011] A system call interception module, used to monitor the system call of at least one application in the current trusted execution environment, and intercept the system call when it is determined that the system call has access to preset data; wherein the preset data includes at least one set of preset data content;
[0012] A data usage information determination module, configured to determine whether the data usage information corresponding to the intercepted system call satisfies the data usage policy based on the data usage contract corresponding to the preset data; wherein the preset data and the corresponding data usage contract are stored in a preset data storage sandbox, and the data usage contract is agreed upon by the data owner and the data user through negotiation;
[0013] a data usage control sandbox establishment module, used for, if yes, allowing the application to access the preset data, and establishing a data usage control sandbox corresponding to the application; wherein the data usage control sandbox is used to store the data usage policy corresponding to the preset data content accessed by the application;
[0014] A data usage control module is used to control the use of the preset data by the application program based on the data usage control sandbox.
[0015] According to another aspect of the present invention, there is provided an electronic device, the electronic device comprising:
[0016] at least one processor; and
[0017] a memory communicatively connected to the at least one processor; wherein,
[0018] The memory stores a computer program executable by the at least one processor, and the computer program is executed by the at least one processor so that the at least one processor can execute the data usage control method described in any embodiment of the present invention.
[0019] According to another aspect of the present invention, a computer-readable storage medium is provided, wherein the computer-readable storage medium stores computer instructions, and the computer instructions are used to enable a processor to implement the data usage control method described in any embodiment of the present invention when executed.
[0020] According to another aspect of the present invention, a computer program product is provided, comprising a computer program / instruction, wherein when the computer program / instruction is executed by a processor, the data usage control method as described in any embodiment of the present invention is implemented.
[0021] The technical solution of the embodiment of the present invention further establishes an independent data storage sandbox and a data usage control sandbox during the data usage process in the current trusted execution environment, stores the data usage contract negotiated and agreed upon by the data user and the data owner in the data storage sandbox, and controls the monitoring and corresponding interception of the system calls of the application in the trusted environment, so that when the application has access to the corresponding preset data, based on the control of the corresponding data usage control sandbox, the data access and use under the erroneous system call caused by the bug in the application itself is timely intercepted, thereby helping to avoid data abuse and leakage caused by the bug in the application itself, and further helping to improve the security and reliability of the corresponding data usage process, and realize non-intrusive, fine-grained and dynamic use control of data.
[0022] It should be understood that the contents described in this section are not intended to identify the key or important features of the embodiments of the present invention, nor are they intended to limit the scope of the present invention. Other features of the present invention will become easily understood through the following description. BRIEF DESCRIPTION OF THE DRAWINGS
[0023] In order to more clearly illustrate the technical solutions in the embodiments of the present invention, the following briefly introduces the drawings required for use in the description of the embodiments. Obviously, the drawings described below are only some embodiments of the present invention. For ordinary technicians in this field, other drawings can be obtained based on these drawings without creative work.
[0024] Figure 1 This is a flow chart of a data usage control method provided according to Embodiment 1 of the present invention.
[0025] Figure 2 is a flow chart of another data usage control method provided according to the second embodiment of the present invention.
[0026] Figure 3A is a flow chart of another data usage control method provided according to embodiment 3 of the present invention.
[0027] Figure 3B This is an architecture diagram of a trusted execution environment that can be used for data sharing provided according to Embodiment 3 of the present invention.
[0028] Figure 4 It is a structural diagram of a data usage control device provided according to Embodiment 4 of the present invention.
[0029] Figure 5 It is a structural schematic diagram of an electronic device for implementing the data usage control method according to an embodiment of the present invention. DETAILED DESCRIPTION
[0030] In order to enable those skilled in the art to better understand the scheme of the present invention, the technical scheme in the embodiments of the present invention will be clearly and completely described below in conjunction with the drawings in the embodiments of the present invention. Obviously, the described embodiments are only part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without creative work should fall within the scope of protection of the present invention.
[0031] It should be noted that the terms "first", "second", etc. in the specification and claims of the present invention and the above-mentioned drawings are used to distinguish similar objects, and are not necessarily used to describe a specific order or sequence. It should be understood that the data used in this way can be interchanged where appropriate, so that the embodiments of the present invention described herein can be implemented in an order other than those illustrated or described herein. In addition, the terms "including" and "having" and any variations thereof are intended to cover non-exclusive inclusions, for example, a process, method, system, product or device that includes a series of steps or units is not necessarily limited to those steps or units that are clearly listed, but may include other steps or units that are not clearly listed or inherent to these processes, methods, products or devices.
[0032] Figure 1 This is a flow chart of a data usage control method provided in Embodiment 1 of the present invention. This embodiment is applicable to the case of controlling data usage in a trusted execution environment. The method can be executed by a data usage device, which can be implemented in the form of hardware and / or software and can be configured in an electronic device. Figure 1 Said method comprises:
[0033] S110. In the current trusted execution environment, monitor the system call of at least one application, and when it is determined that the system call has access to preset data, intercept the system call; wherein the preset data includes at least one set of preset data content.
[0034] Among them, the trusted execution environment can be a pre-established secure environment for data sharing, such as a pre-configured virtual machine, etc. The trusted execution environment can be used to run and execute at least one application. The data user can use the corresponding preset data through the application. The preset data can be data information provided by at least one data owner for data sharing. Each group of preset data content included in the preset data can be used by at least one application respectively. The preset data corresponding to different groups of preset data content can overlap or be different. The system call can be an application's call to the outside, for example, it can be accessing devices such as the network and graphics card by calling socket() and ioctl(), or it can be accessing the file system by calling open(), etc., which can be set as needed here without specific restrictions. The monitoring of the above-mentioned system calls can be implemented by a pre-set data sandbox listener, which can be a code module with real-time monitoring and interception of the corresponding system calls.
[0035] Specifically, the data sandbox monitor's handler can be written into the system call table by rewriting the system call table, and the data sandbox monitor's handler can be registered as hooks based on the preset interface of the kernel system. Accordingly, when the application initiates each system call, the corresponding system call that accesses the preset data can be intercepted by the use interception module in the data sandbox monitor.
[0036] S120. Based on the data usage contract corresponding to the preset data, determine whether the data usage information corresponding to the intercepted system call satisfies the data usage policy; wherein the preset data and the corresponding data usage contract are stored in a preset data storage sandbox, and the data usage contract is agreed upon by the data owner and the data user through negotiation.
[0037] Among them, the data usage contract may include at least one of the data content, data price and data usage policy corresponding to the preset data. The data user and the data owner can choose the method for negotiating and agreeing on the data usage contract as needed. The data usage policy can be used to describe the method and rules for using data, and can be expressed in the form of a collection. For example, the data usage policy can be: {Data owner: {[user user1], readable: yes, processable: no, number of readable times: 3 times, data usage time (destroyed afterwards): 10 days, the following applications (Application, APP) can use the data: APP1, APP2, processed data usage policy: inheritance}, etc. Data usage information may include at least one of the information types such as data content, usage time and number of uses.
[0038] Specifically, if the data usage information corresponding to the intercepted system call does not satisfy the data usage policy, the access and use of the corresponding preset data content by the system call can be denied. Optionally, the data sandbox monitor may also include a usage decision module, which can be used to determine whether the data usage information corresponding to the intercepted system call satisfies the data usage policy of the preset data content corresponding to the data usage information. Optionally, the data sandbox monitor may also include a data transmission module, and accordingly, the data owner may send the corresponding preset data and the data usage contract corresponding to the preset data to the data transmission module in the corresponding data sandbox monitor, so as to transmit and save the corresponding preset data and the data usage contract corresponding to the preset data to the corresponding data storage sandbox based on the data transmission module.
[0039] S130. If yes, the application is allowed to access the preset data, and a data usage control sandbox corresponding to the application is established; wherein the data usage control sandbox is used to store the data usage policy corresponding to the preset data content accessed by the application.
[0040] Among them, different applications may correspond to different data usage control sandboxes, for example, the data usage control sandbox corresponding to APP1 may correspond to usage control sandbox 1, the data usage control sandbox corresponding to APP2 may correspond to usage control sandbox 2, etc., that is, if an APP can access multiple sets of preset data content, then each preset data content accessed needs to be recorded in the corresponding data usage control sandbox. The same data usage control sandbox may include at least one set of preset data content and at least one data usage policy corresponding to the at least one set of preset data content. A set of preset data content may correspond to at least one data usage policy. The corresponding preset data content and the corresponding data usage policy may also be described in the form of a set in the data usage control sandbox, for example, it may be {application: APP1, data: [data 1, "data usage policy 1" corresponding to data 1]}, etc.
[0041] Specifically, if it is determined that the data usage information corresponding to the intercepted system call does not meet the data usage policy, the access request of the system call to the corresponding preset data can be directly rejected. Accordingly, there is no need to make further judgment and control on the data usage request corresponding to the system call.
[0042] S140: Based on the data usage control sandbox, control the use of the preset data by the application.
[0043] Specifically, after determining that the corresponding application is allowed to access the preset data and completing the establishment of the data usage control sandbox corresponding to the application, the corresponding application can be controlled to use the preset data content based on the agreement of the corresponding data usage policy.
[0044] For example, if the corresponding preset data content is agreed in the data usage policy to be only allowed to be viewed, then during the use of the preset data by the corresponding application, it can be controlled not to allow any file saving and network transmission and other functions, and the corresponding preset data content can only remain in the memory. Accordingly, the preset data content can only be sent to the graphics card for display.
[0045] The technical solution of the embodiment of the present invention further establishes an independent data storage sandbox and a data usage control sandbox during the data usage process in the current trusted execution environment, stores the data usage contract negotiated and agreed upon by the data user and the data owner in the data storage sandbox, and controls the monitoring and corresponding interception of the system calls of the application in the trusted environment, so that when the application has access to the corresponding preset data, based on the control of the corresponding data usage control sandbox, the data access and use under the erroneous system call caused by the bug in the application itself is timely intercepted, thereby helping to avoid data abuse and leakage caused by the bug in the application itself, and further helping to improve the security and reliability of the corresponding data usage process, and realize non-intrusive, fine-grained and dynamic use control of data.
[0046] Figure 2 This is a flow chart of a data usage control method provided in Embodiment 2 of the present invention. This embodiment is further optimized based on the above embodiments. It should be noted that for the parts not described in detail in this embodiment, please refer to the relevant descriptions in other embodiments.
[0047] Furthermore, before establishing a data usage control sandbox corresponding to the application, add "determine whether there is a data usage control sandbox corresponding to the application by traversing the established data usage control sandboxes; if not, establish a data usage control sandbox corresponding to the application, and store the data usage policy corresponding to the preset data content currently accessed by the application in the data usage control sandbox; if so, when it is determined that there is no data usage policy corresponding to the preset data content currently accessed in the data usage control sandbox corresponding to the application, store the data usage policy corresponding to the preset data content currently accessed in the data usage control sandbox" to improve the mechanism for establishing the data usage control sandbox.
[0048] refer to Figure 2 , the method specifically comprises the following steps:
[0049] S210. In the current trusted execution environment, monitor the system call of at least one application, and when it is determined that the system call has access to preset data, intercept the system call; wherein the preset data includes at least one set of preset data content.
[0050] S220. Based on the data usage contract corresponding to the preset data, determine whether the data usage information corresponding to the intercepted system call satisfies the data usage policy; wherein the preset data and the corresponding data usage contract are stored in a preset data storage sandbox, and the data usage contract is agreed upon by the data owner and the data user through negotiation.
[0051] S230: If yes, the application is allowed to access the preset data, and by traversing each established data usage control sandbox, it is determined whether there is a data usage control sandbox corresponding to the application.
[0052] S241. If yes, when it is determined that the data usage control sandbox corresponding to the application does not contain a data usage policy corresponding to the currently accessed preset data content, the data usage policy corresponding to the currently accessed preset data content is stored in the data usage control sandbox.
[0053] Specifically, if it is determined that a data usage control sandbox corresponding to the corresponding application contains a data usage policy corresponding to the currently accessed preset data content, there is no need to re-establish the corresponding data usage control sandbox, nor is there any need to re-store the data usage policy for the currently accessed preset data content. Instead, the determined existing application's data usage control sandbox can be used as the application's current data usage control sandbox.
[0054] S242: If not, establish a data usage control sandbox corresponding to the application, and store the data usage policy corresponding to the preset data content currently accessed by the application in the data usage control sandbox.
[0055] S250: Based on the data usage control sandbox, control the application program's use of the preset data.
[0056] Exemplarily, there may be multiple groups of preset data contents currently accessed by the application program; accordingly, based on the data usage control sandbox, controlling the application program's use of the preset data may include:
[0057] Based on the data usage control sandbox, determine the union of data usage policies corresponding to each group of preset data content currently accessed by the application; wherein the data usage control sandbox includes data usage policies corresponding to each group of preset data content; use the union as a new data usage policy corresponding to each group of preset data content, and control the application's use of each group of preset data content according to the new data usage policy.
[0058] Among them, an application can access multiple sets of preset data content at the same time, and different preset data content can correspond to different data usage policies. Specifically, when the corresponding application accesses multiple sets of preset data content at the same time, the union of the data usage policies corresponding to each set of preset data content can be used as the new data usage policy for each set of preset data content.
[0059] It can be understood that by merging the data usage policies corresponding to each group of preset data content in the form of a union when an application simultaneously accesses multiple groups of preset data content, a more stringent data usage policy can be obtained, which in turn helps to avoid data abuse or leakage caused by the different levels of strictness of the data usage policies for the overlapping parts when there are overlapping parts in multiple groups of preset data content. It also helps to avoid resource occupation and different levels of strictness caused by setting independent data usage policies for each group of preset data content, which in turn helps to improve the security of the data usage process of the corresponding data usage process.
[0060] In an optional embodiment, before monitoring the system call of at least one application program, the following steps may also be included:
[0061] In response to an application download command sent by a data user, at least one application corresponding to the application download command is downloaded; and the downloaded application is verified to determine the integrity of the application.
[0062] The at least one application may be an application selected by the user to access and use the preset data content corresponding to the data usage demand when the user has the data usage demand. The corresponding application download command may be generated based on the application selection information input by the user.
[0063] Specifically, when the data user selects to use at least one corresponding application to use the data, a corresponding application download command is sent to the data sandbox monitor. Accordingly, the data sandbox monitor can respond to the application download command, download the corresponding application, and measure the application after the download is completed to verify the integrity of the application.
[0064] It can be understood that by responding to an application download command sent by a data user in a corresponding trusted execution environment, downloading at least one application corresponding to the application download command, and performing integrity verification on the downloaded application, it helps to avoid situations where the application is downloaded in an untrusted environment and / or the integrity of the downloaded application is not further verified, thereby helping to further ensure the integrity of the corresponding application itself.
[0065] In an embodiment of the present invention, by traversing each established data usage control sandbox, it is determined whether there is a data usage control sandbox corresponding to the corresponding application, and when it is determined that there is a data usage control sandbox corresponding to the application, it is further determined that there is no usage control policy corresponding to the preset data content currently accessed in the data usage control sandbox, and when it is determined that there is no data usage policy corresponding to the preset data content currently accessed in the data usage control sandbox corresponding to the application, the data usage policy is further stored, thereby avoiding the situation where a data usage control sandbox corresponding to the corresponding application already exists and the data usage control sandbox already stores the corresponding data usage policy, and the data usage control sandbox corresponding to the application is re-established, which helps to reduce the waste of computing resources and storage resources, and also helps to improve the execution efficiency of the corresponding data usage process.
[0066] Figure 3A This is a flow chart of a data usage control method provided by Embodiment 3 of the present invention. This embodiment is further optimized based on the above embodiments. It should be noted that for the parts not described in detail in this embodiment, please refer to the relevant descriptions in other embodiments.
[0067] Furthermore, "based on the data usage control sandbox, controlling the application's use of the preset data" is refined into "determining the preset data content currently accessed by the application, and based on the preset data content, determining the data usage policy corresponding to the preset data content in the data usage control sandbox; judging whether the application's use of the preset data content complies with the agreement of the corresponding data usage policy; if not, refusing the application's use of the preset data content", so as to improve the data usage control mechanism.
[0068] refer to Figure 3A , the method specifically comprises the following steps:
[0069] S310. In the current trusted execution environment, monitor the system call of at least one application, and when it is determined that the system call has access to preset data, intercept the system call; wherein the preset data includes at least one set of preset data content.
[0070] S320. Based on the data usage contract corresponding to the preset data, determine whether the data usage information corresponding to the intercepted system call satisfies the data usage policy; wherein the preset data and the corresponding data usage contract are stored in a preset data storage sandbox, and the data usage contract is agreed upon by the data owner and the data user through negotiation.
[0071] S330: If yes, the application is allowed to access the preset data, and a data usage control sandbox corresponding to the application is established; wherein the data usage control sandbox is used to store the data usage policy corresponding to the preset data content accessed by the application.
[0072] S340: Determine the preset data content currently accessed by the application, and determine, based on the preset data content, a data usage policy corresponding to the preset data content in the data usage control sandbox.
[0073] S350: Determine whether the use of the preset data content by the application complies with the agreement of the corresponding data use policy.
[0074] S360: If not, deny the application program from using the preset data content.
[0075] Specifically, if the application's use of the corresponding preset data content complies with the agreement of the corresponding data use policy, it can be released and the preset data content can be controlled to be loaded into the memory, so that the corresponding application can use the preset data content normally based on the agreement of the corresponding data use policy. The judgment process of whether the application's use of the preset data content complies with the agreement of the corresponding data use policy can be performed by the corresponding use decision module.
[0076] In an optional embodiment, the corresponding method may further include:
[0077] If there is a data processor that processes the preset data provided by at least one data owner, the union of at least one data usage policy corresponding to the preset data and the data usage policy newly added by the data processor shall be used as the new data usage policy corresponding to the processed preset data; the new data usage policy and the processed preset data shall be stored in the data storage sandbox, and the owner of the processed preset data shall be recorded; wherein, the owners of the processed preset data include the at least one data owner and the data processor.
[0078] The data processor may be an operator who has the authority to process the preset data shared by the data owner. The data processor may add new data usage policies for the processed preset data.
[0079] Exemplarily, for scenarios where data processing is used, the processed preset data can integrate the data usage policy that retains its original data, and if there are multiple original data, the data usage policies corresponding to the multiple original data can be integrated. For the original data corresponding to the corresponding preset data, the characteristic information and data usage policy of the original data can be sent to the blockchain for traceability and confirmation of ownership. For example, it can be determined who is the holder of the original data, who is the processor, and if the original data is only authorized for use for one year, then all processed data derived from this original data can have a limited period of only one year.
[0080] It can be understood that when the data processing party completes the processing of the corresponding preset data and adds a data usage policy for the processed preset data, the newly added data usage policy and the original data usage policy corresponding to the preset data itself can be merged, and the data usage policy for the processed preset data can be obtained in the form of a union, so that the data usage policy for the processed preset data can merge the usage control policies of all parties, thereby ensuring that the strictness of the corresponding data usage policy can meet the needs of all parties at the same time and avoid data abuse and leakage.
[0081] In an optional embodiment, if the data validity period included in the data usage policy corresponding to the corresponding preset data expires, the data processing party may renegotiate the corresponding data usage policy with the original data owner corresponding to the preset data, and use the negotiated data usage policy as the data usage policy corresponding to the processed preset data.
[0082] In an optional embodiment, the negotiation and agreement process of the data usage contract corresponding to the corresponding preset data may include:
[0083] The description information of the preset data is published on the blockchain, so that the data user can create a candidate data usage smart contract corresponding to the preset data according to the description information of the preset data; wherein the data usage smart contract at least includes the description information of the preset data and the candidate data usage policy; the status of the candidate data usage smart contract is obtained, and when the status is a signed status, the candidate data usage smart contract in the signed status is used as the target data usage smart contract; wherein the target data usage smart contract is the data usage contract corresponding to the preset data, and the target data usage smart contract is obtained after the data owner and the data user negotiate and modify and unanimously confirm.
[0084] Among them, the description information of the preset data may be uploaded by the data owner. The description information may include at least one of the data types such as data fields, number of data items, and data format. The description information may be equivalent to the data content of the corresponding preset data. The data usage smart contract may include the corresponding data usage contract. The status of the candidate data usage smart contract may include a negotiation status and a signing status. The negotiation status may be triggered when the data owner negotiates and modifies the data usage policy corresponding to the corresponding candidate data usage smart contract. The signing status can be used to characterize that both the data owner and the data user agree to the data usage policy in the current data usage smart contract. The current data usage smart contract may be the original candidate data usage smart contract, or it may be a candidate data usage smart contract modified by the data owner. The negotiation method between the data owner and the data user may be based on whether the blockchain upload agrees with the data usage policy in the current data usage smart contract, or it may be other negotiation methods determined as needed, and no specific restrictions are made here.
[0085] It is understandable that the data owner and the data user negotiate and determine the data usage contract corresponding to the corresponding preset data through blockchain, which can ensure the reliability of the corresponding data usage contract finally determined, and is conducive to the rapid and accurate tracing and confirmation of relevant information for the corresponding preset data, thereby helping to improve the security and reliability of the corresponding data usage process.
[0086] In an optional embodiment, the usage records of the preset data can be uploaded to the blockchain so that the owner of the data can view the usage records of the corresponding preset data in real time, and when a record of illegal usage is found, a data access cut-off instruction can be sent to the blockchain in real time, and then the data access cut-off instruction is passed to the sandbox control structure via the blockchain to cut off the data access corresponding to the illegal usage record. The usage records of the corresponding preset data can also be used for auditing and supervision.
[0087] In an embodiment of the present invention, after determining that access to the corresponding preset data is allowed, the use of the preset data is controlled based on the data usage policy in the corresponding data usage control sandbox, thereby being able to further ensure that the corresponding use process of the corresponding preset data cannot violate the agreement of the corresponding data usage policy, thereby helping to avoid data abuse and leakage caused by bugs in the application itself, and improving the security and reliability of the corresponding data use process.
[0088] For ease of understanding, refer to Figure 3B The specific example of a trusted execution environment that can be used for data sharing is provided. Figure 3BThe application programs, data types, and usage control strategies involved are only for illustrative purposes and should not be construed as specific limitations of the present invention.
[0089] Figure 3B is an architectural diagram of a trusted execution environment that can be used for data sharing, such as Figure 3B As shown in , the data owner can provide the corresponding data to the trusted execution environment, and the data user can use the data based on the trusted execution environment. The trusted execution environment can be a virtual machine VM, which can specifically include a security processor, a virtual machine monitor hypervisor, a basic input output system (BIOS), a boot program, a kernel Kernel, a data sandbox monitor, and a virtualized usage control sandbox and a data storage sandbox. The data sandbox monitor may include a usage control sandbox structure, a data storage sandbox monitoring module, a data transmission module, a usage decision module, and a usage interception module. The usage control sandbox may be the above-mentioned data usage control sandbox. The usage control sandbox structure may include a usage control sandbox structure 1, a usage control sandbox structure 2, etc. The usage control sandbox structure may correspond to the established usage control sandbox and may be used to control the use of preset data. The data storage sandbox monitoring module may be used to determine whether the data usage information corresponding to the intercepted system call meets the data usage policy. The corresponding application may be application 1 and application 2, etc., the preset data accessed by application 1 may be data 1, and the data usage policy corresponding to data 1 may be usage control policy 1, the preset data accessed by application 2 may be data 2, and the data usage policy corresponding to data 2 may be usage control policy 2. The preset data stored in the data storage sandbox may include corresponding data 1 and data 2, etc., and correspondingly, the stored data usage policies may include usage control policy 1 and usage control policy 2. The data content in the usage control sandbox corresponds to the data content stored in the data storage sandbox.
[0090] Figure 4 This is a schematic diagram of the structure of a data usage control device provided in Embodiment 4 of the present invention. This embodiment is applicable to the case of controlling data usage in a trusted execution environment. The device can be implemented in the form of hardware and / or software and can be configured in an electronic device. Figure 4 Said device comprises:
[0091] The system call interception module 410 is used to monitor the system calls of at least one application in the current trusted execution environment, and intercept the system call when it is determined that the system call accesses preset data; wherein the preset data includes at least one set of preset data content.
[0092] The data usage information judgment module 420 is used to judge whether the data usage information corresponding to the intercepted system call meets the data usage policy based on the data usage contract corresponding to the preset data; wherein the preset data and the corresponding data usage contract are stored in a preset data storage sandbox, and the data usage contract is agreed upon by the data owner and the data user through negotiation.
[0093] The data usage control sandbox establishment module 430 is used to allow the application to access the preset data and establish a data usage control sandbox corresponding to the application; wherein the data usage control sandbox is used to store the data usage policy corresponding to the preset data content accessed by the application.
[0094] The data usage control module 440 is used to control the use of the preset data by the application program based on the data usage control sandbox.
[0095] The technical solution of the embodiment of the present invention further establishes an independent data storage sandbox and a data usage control sandbox during the data usage process in the current trusted execution environment, stores the data usage contract negotiated and agreed upon by the data user and the data owner in the data storage sandbox, and controls the monitoring and corresponding interception of the system calls of the application in the trusted environment, so that when the application has access to the corresponding preset data, based on the control of the corresponding data usage control sandbox, the data access and use under the erroneous system call caused by the bug in the application itself is timely intercepted, thereby helping to avoid data abuse and leakage caused by the bug in the application itself, and further helping to improve the security and reliability of the corresponding data usage process, and realize non-intrusive, fine-grained and dynamic use control of data.
[0096] Optionally, the corresponding device may further include:
[0097] A usage control sandbox existence determination module is used to determine whether there is a data usage control sandbox corresponding to the application by traversing each established data usage control sandbox before establishing the data usage control sandbox corresponding to the application;
[0098] a data usage policy existence judgment module, for, if it is determined that the data usage policy corresponding to the preset data content currently accessed does not exist in the data usage control sandbox corresponding to the application, storing the data usage policy corresponding to the preset data content currently accessed in the data usage control sandbox;
[0099] A control sandbox is used to establish a trigger module, which is used to establish a data usage control sandbox corresponding to the application program, and store the data usage policy corresponding to the preset data content currently accessed by the application program in the data usage control sandbox.
[0100] Optionally, there may be multiple groups of preset data contents currently accessed by the application program; accordingly, the data usage control module 440 may include:
[0101] A union determination unit, configured to determine, based on the data usage control sandbox, a union of data usage policies corresponding to each set of preset data content currently accessed by the application program; wherein the data usage control sandbox includes the data usage policies corresponding to each set of preset data;
[0102] The data usage control unit is used to use the union as a new data usage policy corresponding to each group of preset data content, and control the application program's use of each group of preset data content according to the new data usage policy.
[0103] Optionally, the data usage control module 440 may further include:
[0104] a data usage policy determination unit, configured to determine the preset data content currently accessed by the application program, and determine, based on the preset data content, a data usage policy corresponding to the preset data content in the data usage control sandbox;
[0105] A protocol compliance determination unit, used to determine whether the use of the preset data content by the application program complies with the protocol of the corresponding data use policy;
[0106] The data use rejection unit is used to reject the use of the preset data content by the application program if no.
[0107] Optionally, the corresponding device may further include:
[0108] A new data usage policy determination module, configured to, if a data processor processes preset data provided by at least one data owner, determine the union of at least one data usage policy corresponding to the preset data and the data usage policy newly added by the data processor as a new data usage policy corresponding to the processed preset data;
[0109] A data owner recording module is used to store the new data usage policy and processed preset data in the data storage sandbox, and record the owner of the processed preset data; wherein the owner of the processed preset data includes the at least one data owner and the data processor.
[0110] Optionally, the negotiation and agreement process of the data usage contract corresponding to the preset data may include:
[0111] Publishing the description information of the preset data on the blockchain, so that the data user can create a candidate data usage smart contract corresponding to the preset data according to the description information of the preset data; wherein the data usage smart contract at least includes the description information of the preset data and the candidate data usage policy;
[0112] The status of the candidate data usage smart contract is obtained, and when the status is a signed status, the candidate data usage smart contract in the signed status is used as the target data usage smart contract; wherein the target data usage smart contract is the data usage contract corresponding to the preset data, and the target data usage smart contract is obtained after the data owner and the data user negotiate and modify and unanimously confirm.
[0113] Optionally, the corresponding device may further include:
[0114] an application download module, configured to download at least one application corresponding to the application download command in response to an application download command sent by a data user before monitoring the system call of at least one application;
[0115] The integrity verification module is used to verify the downloaded application program to determine the integrity of the application program.
[0116] The data usage control device provided in the embodiment of the present invention can execute any one of the data usage control methods provided in the embodiment of the present invention, and has the corresponding functional modules and beneficial effects of executing each data usage control method. For the contents not described in detail in the embodiment of the present invention, reference can be made to the description in any one of the data usage control method embodiments of the present invention.
[0117] According to an embodiment of the present invention, the present invention also provides an electronic device, a readable storage medium and a computer program product.
[0118] Figure 5A schematic diagram of the structure of an electronic device 10 that can be used to implement an embodiment of the present invention is shown. The electronic device is intended to represent various forms of digital computers, such as laptop computers, desktop computers, workstations, personal digital assistants, servers, blade servers, mainframe computers, and other suitable computers. The electronic device can also represent various forms of mobile devices, such as personal digital processing, cellular phones, smart phones, wearable devices (such as helmets, glasses, watches, etc.) and other similar computing devices. The components shown herein, their connections and relationships, and their functions are merely examples and are not intended to limit the implementation of the present invention described and / or required herein.
[0119] like Figure 5 As shown, the electronic device 10 includes at least one processor 11, and a memory connected to the at least one processor 11, such as a read-only memory (ROM) 12, a random access memory (RAM) 13, etc., wherein the memory stores a computer program that can be executed by at least one processor, and the processor 11 can perform various appropriate actions and processes according to the computer program stored in the read-only memory (ROM) 12 or the computer program loaded from the storage unit 18 to the random access memory (RAM) 13. In the RAM 13, various programs and data required for the operation of the electronic device 10 can also be stored. The processor 11, the ROM 12, and the RAM 13 are connected to each other through a bus 14. An input / output (I / O) interface 15 is also connected to the bus 14.
[0120] A number of components in the electronic device 10 are connected to the I / O interface 15, including: an input unit 16, such as a keyboard, a mouse, etc.; an output unit 17, such as various types of displays, speakers, etc.; a storage unit 18, such as a disk, an optical disk, etc.; and a communication unit 19, such as a network card, a modem, a wireless communication transceiver, etc. The communication unit 19 allows the electronic device 10 to exchange information / data with other devices through a computer network such as the Internet and / or various telecommunication networks.
[0121] The processor 11 may be a variety of general and / or special processing components with processing and computing capabilities. Some examples of the processor 11 include, but are not limited to, a central processing unit (CPU), a graphics processing unit (GPU), various special artificial intelligence (AI) computing chips, various processors running machine learning model algorithms, a digital signal processor (DSP), and any appropriate processor, controller, microcontroller, etc. The processor 11 performs the various methods and processes described above, such as a data usage control method.
[0122] In some embodiments, the data usage control method may be implemented as a computer program, which is tangibly contained in a computer-readable storage medium, such as a storage unit 18. In some embodiments, part or all of the computer program may be loaded and / or installed on the electronic device 10 via the ROM 12 and / or the communication unit 19. When the computer program is loaded into the RAM 13 and executed by the processor 11, one or more steps of the data usage control method described above may be performed. Alternatively, in other embodiments, the processor 11 may be configured to perform the data usage control method in any other appropriate manner (e.g., by means of firmware).
[0123] Various implementations of the systems and techniques described above herein can be implemented in digital electronic circuit systems, integrated circuit systems, field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), application specific standard products (ASSPs), systems on chips (SOCs), load programmable logic devices (CPLDs), computer hardware, firmware, software, and / or combinations thereof. These various implementations can include: being implemented in one or more computer programs that can be executed and / or interpreted on a programmable system including at least one programmable processor, which can be a special purpose or general purpose programmable processor that can receive data and instructions from a storage system, at least one input device, and at least one output device, and transmit data and instructions to the storage system, the at least one input device, and the at least one output device.
[0124] Computer programs for implementing the methods of the present invention may be written in any combination of one or more programming languages. These computer programs may be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing device, so that when the computer program is executed by the processor, the functions / operations specified in the flow chart and / or block diagram are implemented. The computer program may be executed entirely on the machine, partially on the machine, partially on the machine and partially on a remote machine as a stand-alone software package, or entirely on a remote machine or server.
[0125] In the context of the present invention, a computer-readable storage medium may be a tangible medium that may contain or store a computer program for use by or in combination with an instruction execution system, device or equipment. A computer-readable storage medium may include, but is not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, devices or equipment, or any suitable combination of the foregoing. Alternatively, a computer-readable storage medium may be a machine-readable signal medium. A more specific example of a machine-readable storage medium may include an electrical connection based on one or more lines, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.
[0126] To provide interaction with a user, the systems and techniques described herein may be implemented on an electronic device having: a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user; and a keyboard and a pointing device (e.g., a mouse or trackball) through which the user can provide input to the electronic device. Other types of devices may also be used to provide interaction with the user; for example, the feedback provided to the user may be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user may be received in any form (including acoustic input, voice input, or tactile input).
[0127] The systems and techniques described herein may be implemented in a computing system that includes backend components (e.g., as a data server), or a computing system that includes middleware components (e.g., an application server), or a computing system that includes frontend components (e.g., a user computer with a graphical user interface or a web browser through which a user can interact with implementations of the systems and techniques described herein), or a computing system that includes any combination of such backend components, middleware components, or frontend components. The components of the system may be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include: a local area network (LAN), a wide area network (WAN), a blockchain network, and the Internet.
[0128] A computing system may include a client and a server. The client and the server are generally remote from each other and usually interact through a communication network. The client and server relationship is generated by computer programs running on the corresponding computers and having a client-server relationship with each other. The server may be a cloud server, also known as a cloud computing server or cloud host, which is a host product in the cloud computing service system to solve the defects of difficult management and weak business scalability in traditional physical hosts and VPS services.
[0129] Artificial intelligence is a discipline that studies how to use computers to simulate certain human thought processes and intelligent behaviors (such as learning, reasoning, thinking, planning, etc.). It includes both hardware-level and software-level technologies. Artificial intelligence hardware technologies generally include technologies such as sensors, dedicated artificial intelligence chips, cloud computing, distributed storage, and big data processing; artificial intelligence software technologies mainly include computer vision technology, speech recognition technology, natural language processing technology, machine learning / deep learning technology, big data processing technology, knowledge graph technology, and other major directions.
[0130] Cloud computing refers to a technology system that uses network access to elastically scalable shared physical or virtual resource pools. Resources can include servers, operating systems, networks, software, applications, and storage devices, and can be deployed and managed on demand and in a self-service manner. Cloud computing technology can provide efficient and powerful data processing capabilities for technical applications such as artificial intelligence and blockchain, as well as model training.
[0131] It should be understood that the various forms of processes shown above can be used to reorder, add or delete steps. For example, the steps recorded in this disclosure can be executed in parallel, sequentially or in different orders, as long as the desired results of the technical solution provided by this disclosure can be achieved, and this document does not limit this.
[0132] The above specific implementations do not constitute a limitation on the protection scope of the present disclosure. It should be understood by those skilled in the art that various modifications, combinations, sub-combinations and substitutions can be made according to design requirements and other factors. Any modification, equivalent substitution and improvement made within the spirit and principle of the present disclosure shall be included in the protection scope of the present disclosure.
Claims
1. A data usage control method, characterized in that: include: In the current trusted execution environment, a system call of at least one application is monitored, and when it is determined that the system call has access to preset data, the system call is intercepted; wherein the preset data includes at least one set of preset data content; Based on the data usage contract corresponding to the preset data, determine whether the data usage information corresponding to the intercepted system call meets the data usage policy; wherein the preset data and the corresponding data usage contract are stored in a preset data storage sandbox, and the data usage contract is agreed upon by the data owner and the data user through negotiation; If so, the application is allowed to access the preset data, and a data usage control sandbox corresponding to the application is established; wherein the data usage control sandbox is used to store the data usage policy corresponding to the preset data content accessed by the application; Based on the data usage control sandbox, the use of the preset data by the application is controlled.
2. The method according to claim 1, characterized in that Before establishing a data usage control sandbox corresponding to the application, include: By traversing each established data usage control sandbox, determining whether there is a data usage control sandbox corresponding to the application; If yes, when it is determined that the data usage control sandbox corresponding to the application does not contain a data usage policy corresponding to the currently accessed preset data content, the data usage policy corresponding to the currently accessed preset data content is stored in the data usage control sandbox; If not, a data usage control sandbox corresponding to the application is established, and a data usage policy corresponding to the preset data content currently accessed by the application is stored in the data usage control sandbox.
3. The method according to any one of claims 1 or 2, characterized in that: There are multiple groups of preset data contents currently accessed by the application program; accordingly, based on the data usage control sandbox, controlling the application program's use of the preset data includes: Based on the data usage control sandbox, determine the union of data usage policies corresponding to each set of preset data content currently accessed by the application; wherein the data usage control sandbox includes the data usage policies corresponding to each set of preset data content; The union is used as a new data usage policy corresponding to each set of preset data content, and the use of each set of preset data content by the application is controlled according to the new data usage policy.
4. The method according to claim 1, characterized in that: Based on the data usage control sandbox, controlling the application program to use the preset data includes: Determine the preset data content currently accessed by the application, and determine, based on the preset data content, a data usage policy corresponding to the preset data content in the data usage control sandbox; Determining whether the use of the preset data content by the application complies with the agreement of the corresponding data use policy; If not, the application is denied from using the preset data content.
5. The method according to claim 1, characterized in that The method further comprises: If a data processor processes the preset data provided by at least one data owner, the union of at least one data usage policy corresponding to the preset data and the data usage policy newly added by the data processor shall be used as the new data usage policy corresponding to the processed preset data; The new data usage policy and the processed preset data are stored in the data storage sandbox, and the owner of the processed preset data is recorded; wherein the owner of the processed preset data includes the at least one data owner and the data processor.
6. The method according to claim 1, characterized in that The negotiation and agreement process of the data usage contract corresponding to the preset data includes: Publishing the description information of the preset data on the blockchain, so that the data user can create a candidate data usage smart contract corresponding to the preset data according to the description information of the preset data; wherein the data usage smart contract at least includes the description information of the preset data and the candidate data usage policy; The status of the candidate data usage smart contract is obtained, and when the status is a signed status, the candidate data usage smart contract in the signed status is used as the target data usage smart contract; wherein the target data usage smart contract is the data usage contract corresponding to the preset data, and the target data usage smart contract is obtained after the data owner and the data user negotiate and modify and unanimously confirm.
7. The method according to claim 1, characterized in that Before monitoring the system call of at least one application, the method further includes: In response to an application download command sent by a data user, download at least one application corresponding to the application download command; The downloaded application is verified to determine the integrity of the application.
8. A data usage control device, characterized in that: include: A system call interception module, used to monitor the system call of at least one application in the current trusted execution environment, and intercept the system call when it is determined that the system call has access to preset data; wherein the preset data includes at least one set of preset data content; A data usage information determination module, configured to determine whether the data usage information corresponding to the intercepted system call satisfies the data usage policy based on the data usage contract corresponding to the preset data; wherein the preset data and the corresponding data usage contract are stored in a preset data storage sandbox, and the data usage contract is agreed upon by the data owner and the data user through negotiation; a data usage control sandbox establishment module, used for, if yes, allowing the application to access the preset data, and establishing a data usage control sandbox corresponding to the application; wherein the data usage control sandbox is used to store the data usage policy corresponding to the preset data content accessed by the application; A data usage control module is used to control the use of the preset data by the application program based on the data usage control sandbox.
9. An electronic device, characterized in that: The electronic device comprises: at least one processor; and a memory communicatively connected to the at least one processor; wherein, The memory stores a computer program executable by the at least one processor, and the computer program is executed by the at least one processor so that the at least one processor can execute the data usage control method according to any one of claims 1 to 7.
10. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores computer instructions, and the computer instructions are used to enable a processor to implement the data usage control method according to any one of claims 1 to 7 when executed.
Citation Information
Patent Citations
Access control
CN101336415A
Data processing method based on private cloud
CN104104679A
Execution method for fine-grained sandbox strategy of Linux containers
CN108021807A
Cloud platform data processing method for private cloud
CN110855653A
Kernel access method and device and medium
CN111079135A