WO2024001038A1 - 检测隐私数据泄漏的方法 - Google Patents
检测隐私数据泄漏的方法 Download PDFInfo
- Publication number
- WO2024001038A1 WO2024001038A1 PCT/CN2022/135611 CN2022135611W WO2024001038A1 WO 2024001038 A1 WO2024001038 A1 WO 2024001038A1 CN 2022135611 W CN2022135611 W CN 2022135611W WO 2024001038 A1 WO2024001038 A1 WO 2024001038A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- statement
- privacy
- application
- output
- private data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
Definitions
- Embodiments of the present disclosure belong to the field of computer technology, and in particular relate to methods for detecting privacy data leakage for applications that can run in a trusted execution environment, and methods for deploying applications to a trusted execution environment.
- TEE Trusted Execution Environment
- Cloud access requires remote access, and the end user is invisible to the hardware platform.
- the first step in using TEE is to confirm that the TEE is authentic and trustworthy. Therefore, current TEE technology has introduced a remote certification mechanism, which is endorsed by hardware manufacturers (mainly CPU manufacturers) and uses digital signature technology to ensure that users can verify the TEE status. At the same time, only secure resource isolation cannot meet the security needs, and further data privacy protection has also been proposed.
- Commercial TEEs including Intel SGX and AMD SEV also provide memory encryption technology, which limits trusted hardware inside the CPU. The data on the bus and memory are all ciphertext to prevent malicious users from snooping. For example, TEE technologies such as Intel's Software Guard Extensions (SGX) isolate code execution, remote attestation, secure configuration, secure storage of data, and trusted paths for executing code. Applications running in the TEE are securely protected and almost impossible to access by third parties.
- SGX Software Guard Extensions
- SGX provides an enclave, also known as an enclave, which is an encrypted trusted execution area in the memory where the CPU protects data from being stolen.
- enclave also known as an enclave
- a part of the area EPC Enclave Page Cache, Enclave Page Cache or Enclave Page Cache
- EPC Enclave Page Cache, Enclave Page Cache or Enclave Page Cache
- MEE Memory
- private data can be encrypted and passed to the circle in ciphertext, and the corresponding secret key can also be passed to the circle through remote certification. Then, the data is used to perform calculations under the encryption protection of the CPU, and the results are returned in ciphertext.
- the purpose of this disclosure is to provide a method of detecting privacy data leakage for an application program capable of running in a trusted execution environment, a method of deploying an application program to a trusted execution environment, a non-transitory computer-readable storage medium, and a computing device.
- a method for detecting privacy data leakage for an application capable of running in a trusted execution environment including: determining a private data input source; Output outside the environment determines one or more privacy leak detection points; and determining the privacy data based on statements in the application associated with the privacy data input source or the one or more privacy leak detection points Whether the input source is capable of propagating to the one or more privacy leak detection points.
- a method of deploying an application to a trusted execution environment including: before deploying the application, performing privacy data leakage detection on the application as follows: determining private data Input sources; determining one or more privacy leak detection points based on the output of the application to outside the trusted execution environment; and based on the information in the application that is related to the privacy data input source or the one or more Statements associated with privacy leakage detection points determine whether the privacy data input source can be propagated to the one or more privacy leakage detection points.
- a non-transitory computer-readable storage medium is provided.
- a series of computer-executable instructions are stored on the non-transitory computer-readable storage medium.
- the instructions when executed by one or more computing devices, cause the one or more computing devices to perform the method described above.
- a computing device including one or more processors and one or more memories configured to store a sequence of computer-executable instructions, wherein The series of computer-executable instructions, when executed by the one or more processors, causes the one or more processors to perform the method as described above.
- Figure 1 is a schematic flowchart of a method for detecting privacy data leakage for applications capable of running in a trusted execution environment according to an embodiment of the present disclosure
- Figure 2 is a schematic block diagram of a method for detecting privacy data leakage for applications capable of running in a trusted execution environment according to an embodiment of the present disclosure
- Figure 3 is a schematic diagram of on-chain nodes in a blockchain network including a trusted execution environment
- Figure 4 is a schematic diagram of off-chain nodes of a blockchain network including a trusted execution environment
- Figure 5 is a flowchart of a method of deploying an application to a trusted execution environment according to an embodiment of the present disclosure
- Figure 6 is a schematic structural diagram of at least part of a node device according to an embodiment of the present disclosure.
- FIG. 7 is an exemplary block diagram applicable to a general hardware system according to embodiments of the present disclosure.
- connection is intended to include a physical, electrical, and/or communicative connection of one feature to another feature, with or without intervening features.
- connection is a communication connection, even if it is mentioned that A and B are "directly connected", it is only intended to emphasize that one or more features emphasized by one or more embodiments of the present disclosure do not exist between the connection of A and B, but it does not It means that A and B are connected without any components.
- a and B can be connected through cables, routers, gateways, channels, links, networks, etc. It should be noted that in the drawings of one or more embodiments of the present disclosure, whether the direct connection or the indirect connection between A and B is represented by a straight line or other graphic elements connecting A and B.
- a or B includes “A and B” as well as “A or B” and does not exclusively include only “A” or only “B” unless specifically stated otherwise.
- the term "exemplary” means “serving as an example, instance, or illustration” rather than as a “model” that will be accurately reproduced. Any implementation illustratively described herein is not necessarily to be construed as preferred or advantageous over other implementations. Furthermore, the disclosure one or more embodiments is not to be bound by any expressed or implied theory presented in the above technical field, background, brief summary, or detailed description.
- the term “substantially” is meant to include any minor variations resulting from design or manufacturing defects, device or component tolerances, environmental effects, and/or other factors.
- the term “substantially” also allows for differences from the perfect or ideal situation due to parasitics, noise, and other practical considerations that may be present in actual implementations.
- first,” “second,” and similar terms may also be used herein for reference purposes only and are therefore not intended to be limiting.
- the words “first,” “second,” and other such numerical terms referring to structures or elements do not imply a sequence or order unless clearly indicated by the context.
- the steps of the corresponding methods are not necessarily performed in the order shown and described in this disclosure. In some other embodiments, methods may include more or fewer steps than described in this disclosure. In addition, a single step described in this disclosure may be broken down into multiple steps for description in other embodiments; and multiple steps described in this disclosure may also be combined into a single step in other embodiments. describe.
- Computing devices that can create a trusted execution environment TEE can ensure that private data is only decrypted, read or executed in the TEE, and is in an encrypted state once it leaves the TEE, thereby ensuring privacy and security during the processing of private data.
- the application running in the TEE can ensure that the running status is not obtained outside the TEE
- the application running in the TEE (hereinafter referred to as the privacy application or TAPP) is also written by the developer, and there is no guarantee that the written application There will be no privacy breach. If the developer writes the private input data into the output of the privacy application through a certain method, such as an assignment statement, and returns the result to the caller of the privacy application, there is a possibility of privacy leakage.
- the private data referred to in this article can be any type of data that the data owner or data provider does not want others to know.
- it can include: user name, password, account name, checking account number, savings account number, credit card number, ID card Information such as number, transaction content, execution results, device identifier, mobile phone number, geographical location, contact list, and message content.
- FIG. 1 and 2 are schematic diagrams of a method 100 for detecting privacy data leakage for an application capable of running in a trusted execution environment according to an embodiment of the present disclosure.
- the method 100 includes determining a private data input source (operation 110); determining one or more privacy leak detection points based on the application's output to outside the trusted execution environment (operation 120); and based on the application's relationship with the private data input source or Statements associated with one or more privacy leak detection points determine whether the private data input source can be propagated to one or more privacy leak detection points (operation 130).
- a private data input source is determined.
- the owner or provider of private data can specify a private data input source so that privacy data leakage detection can be performed for the specified private data input source.
- private data is input from outside the application, such as file contents read, data received from the network, parameters passed in from the command line, etc. Therefore, the private data input source can include at least the private data in the input parameters of the application, the private data in the files that the application reads during operation, or the private data that the application obtains from the network during operation. one.
- the private data input source may be determined based on designation by a user (eg, owner or provider of private data). Determining the input source of private data based on the user's specification eliminates the need to detect all input data from outside the application, which helps reduce the computational complexity of private data leakage detection.
- one or more privacy leak detection points are determined based on the application's output outside of the trusted execution environment.
- Output from an application outside of the trusted execution environment can be application output parameters, data written to files, and data output to the network.
- the "output parameters of the application” referred to in this article include the return value of the application.
- the application program may have one or more output parameters, and the output parameters of the application program may also be input parameters at the same time.
- the form of output parameters can include numeric values, characters, strings or pointers, etc. Therefore, each of the one or more privacy leak detection points may include output parameters of the application, data that the application writes to a file when it is running, or data that the application writes to the network when it is running. At least one of the output data.
- statement 130 it is determined whether the privacy data input source can be propagated to the one or more privacy leak detection points based on statements in the application associated with the privacy data input source or the one or more privacy leak detection points.
- Statements in the application program refer to any statement in the program code. They can be statements that process variables, such as statements that perform mathematical operations, assignments, copying or rewriting, etc.; they can also be statements that do not process variables. For example, statements for operations such as returning specific content, printing specific content, etc. Statements can be in the form of command lines, functions, application programming interfaces (APIs), dynamic link library (DLL) interfaces, or system call interfaces.
- APIs application programming interfaces
- DLL dynamic link library
- taint analysis can be performed using the private data input source as a starting point to determine whether there is a propagation chain between the private data input source and the identified one or more privacy leakage detection points.
- the privacy data input source may be polluted, and an input-output analysis may be performed on each statement in the application associated with the privacy data input source or one or more privacy leak detection points to determine the statement's Whether the output has a data dependency on the input to this statement. If the output of the statement has a data dependency on the input of the statement and the input of the statement is contaminated, the output of the statement is determined to be contaminated. The output of a statement has data dependence on the input of the statement.
- the input parameters are returned directly, the input parameters are returned after reversible processing, and the input parameters are returned after semi-reversible processing. (In this case, the person with the key can pass the output data Reverse the input data), etc.
- the input of the statement cannot be deduced based on the output of the statement, even if the input of the statement is a contaminated variable, it should be The output of this statement is determined to be uncontaminated.
- the statement is an encryption function, such as a hash function
- the statement includes a function implemented by unknown code, such as a function whose implementation code cannot be obtained
- whether the output of the statement has a data dependency on the input of the statement is determined based on the abstract implementation of the function.
- Abstract implementations of functions can be provided by the application developer. Determine whether taint can propagate from the function's input to the function's output based on the relationship between the input and output of the function's abstract implementation.
- the private data input source can be propagated to a specific privacy leak detection point among one or more privacy leak detection points, it means that the specific privacy leak detection point may leak private data when the application is running. Therefore, alarm information can be output to warn of this situation, or a detection report of privacy data leakage can be output to present the propagation path of each private data input source and whether there is a propagation chain between it and each privacy leakage detection point. .
- the trusted execution environment may be created in an on-chain node device in the blockchain network, such as in the first blockchain node shown in Figure 3 .
- the application can be a smart contract that will be deployed in the blockchain network.
- the first blockchain node can be divided into a regular execution environment and a trusted execution environment. Transactions submitted by the client (taking transactions submitted by the client as an example) first enter the "transaction/query interface" in the regular execution environment for type identification. The identified transactions that can be processed in plain text are left for processing in the regular execution environment, while the identified transactions that require privacy processing (referred to as "private transactions") are passed to the trusted execution environment for processing.
- the private transaction is passed to the trusted execution environment of the first blockchain node, and the first blockchain node is in the trusted execution environment Decrypt this private transaction.
- the client can first generate the plain text transaction content, and then encrypt the plain text transaction content with a key.
- the encryption may be symmetric encryption or asymmetric encryption. Accordingly, the first blockchain node can decrypt the private transaction using the corresponding key to obtain the plaintext transaction content.
- the transactions in the present disclosure can be used to implement relatively simple processing logic, such as transfer logic similar to that in related technologies.
- the plain text transaction content for example, in the Ethereum network, can include fields such as to, value, and data to respectively indicate the address of the transaction recipient, the amount of Ether coins transferred by the transaction, and other data that the transaction can carry.
- the transactions in the present disclosure can also be used to implement relatively complex processing logic, for example, by means of smart contracts.
- the plain text transaction content can contain the code of the smart contract used to create the smart contract in the blockchain; the clear text transaction content can contain the contract address of a certain smart contract that has been created in the blockchain, used to create the smart contract in the blockchain. Call the smart contract.
- the application can be deployed to the TEE of each node on the chain in the blockchain network, so that the application can be deployed in the blockchain network.
- Smart contracts for private transactions After the smart contract is deployed, the smart contract can be called.
- the first blockchain node can use the new processor instructions in the CPU to allocate a part of the area EPC in the memory, and encrypt the above plaintext code through the encryption engine MEE in the CPU and store it. in EPC.
- the encrypted content in EPC is decrypted into plain text after entering the CPU.
- the plaintext code is calculated to complete the execution process of the smart contract.
- Storing account status or contract status into the blockchain means writing the account status or contract status into a database, such as a local database, from the perspective of a blockchain node.
- the database is generally stored in a storage medium, more commonly a persistent storage medium.
- Persistent storage media can be disks, floppy disks, or memory that can restore data after power is turned on so that it can be stored permanently.
- the first blockchain node can ensure that the ciphertext execution result itself is sufficiently secure by encrypting the plaintext execution result into a ciphertext execution result using a key, and the ciphertext execution result can only be decrypted through a trusted execution environment.
- the first blockchain node can execute the storage function code outside the trusted execution environment and store the ciphertext execution results in an external storage space outside the trusted execution environment.
- the first blockchain node can execute the write cache function code in the trusted execution environment to store the plaintext execution results in the write cache in the trusted execution environment.
- the write cache can correspond to " as shown in Figure 3 cache".
- the first blockchain node can encrypt the data in the write cache and output it from the trusted execution environment to store it in the external storage space.
- the trusted execution environment can be created in an off-chain node device outside the blockchain network, as shown in Figure 4.
- the operation of the off-chain node device may be similar to that described above for the first blockchain node in connection with FIG. 3 .
- Each off-chain node device can be connected to at least one on-chain node in the blockchain network to receive computing requests from the on-chain node.
- the controller can be responsible for message forwarding between the on-chain nodes and off-chain nodes.
- each off-chain node device can perform its own computing tasks, and the controller can schedule computing resources among multiple off-chain node devices.
- the blockchain network can send a transaction request to the off-chain node device, such as the transaction request received by the controller from the on-chain node 4 as shown in Figure 4.
- the transaction request can be, for example, calling an application that has been deployed in the off-chain node device.
- the program's calculation request In response to the request of the blockchain network, the off-chain node device performs privacy calculations in a trusted execution environment and returns the calculation results to the blockchain network, for example, to the on-chain node 4 via the controller.
- the returned calculation results can be stored in the blockchain network.
- FIG. 5 is a flowchart of a method 200 of deploying an application to a trusted execution environment according to an embodiment of the present disclosure.
- Method 200 includes: before deploying the application, performing privacy data leakage detection on the application (operation 210); in response to determining that the private data input source cannot be propagated to one or more privacy leakage detection points, the trusted execution environment is located The node device performs a remote attestation process to prove to the client that the node device is a trusted node (operation 220); and the node device receives a transaction request to deploy the application from the client, stores and deploys the application, and returns the application to the client.
- Hash value operation 230
- Operation 210 may be accomplished by method 100 as described above.
- the node device where the trusted execution environment is located can be an on-chain node in the blockchain network or an off-chain node outside the blockchain network.
- the hash value of the application program returned to the client in operation 230 may be used for verification by the client.
- the client compares the hash value returned by the trusted execution environment with the hash value of the application stored locally. If they are identical, the application deployed by the trusted execution environment is the application it requested to be deployed. Additionally, the application's hash can be used as the application's ID for clients to initiate calls to the application. After completing operation 230, the application that has passed the privacy data leakage detection is deployed to the node device.
- the client can then initiate a call to the application, for example, through the ID of the application (for example, it can be returned by the power-saving device the above hash value given to the client).
- FIG. 6 is a schematic structural diagram of at least part of a node device 600 (or computing device) according to an embodiment of the present disclosure.
- the node device 600 may be, for example, the above-mentioned on-chain node device or off-chain node device.
- Node device 600 includes one or more processors 610, one or more memories 620, and other components typically found in a computer or the like (not shown).
- Each of the one or more memories 620 may store content that may be accessed by the one or more processors 610 , including instructions 621 that may be executed by the one or more processors 610 and that may be executed by the one or more processors 610 . retrieve, manipulate or store data 622.
- Instructions 621 may be any set of instructions, such as machine code, to be executed directly by one or more processors 610, or any set of instructions to be executed indirectly, such as a script.
- the terms “instructions,” “applications,” “processes,” “steps,” and “programs” in this disclosure may be used interchangeably in this disclosure.
- Instructions 621 may be stored in object code format for direct processing by one or more processors 610, or in any other computer language, including a script or collection of independent source code modules that are interpreted on demand or compiled ahead of time. The functions, methods, and routines of instructions 621 are explained in greater detail elsewhere in this disclosure.
- the one or more memories 620 may be any transitory or non-transitory computer-readable storage medium capable of storing content accessible by the one or more processors 610, such as a hard drive, memory card, ROM, RAM, DVD, CD, USB memory, writable memory, read-only memory, etc.
- One or more of the memory 620 may include a distributed storage system, in which instructions 621 and/or data 622 may be stored on multiple different storage devices that may be physically located at the same or different geographic locations.
- One or more of the one or more memories 620 may be connected to the one or more first devices 610 via a network, and/or may be directly connected to or incorporated into any of the one or more processors 610 .
- One or more processors 610 may retrieve, store, or modify data 622 in accordance with instructions 621 .
- data 622 may also be stored in a computer register (not shown), as a table with many different fields and records, or as an XML document in a relational database.
- Data 622 may be formatted in any format readable by a computing device, such as, but not limited to, binary values, ASCII, or Unicode. Additionally, data 622 may include any information sufficient to identify the relevant information, such as numbers, descriptive text, proprietary code, pointers, references to data stored in other memory, such as at other network locations, or used by functions to calculate correlations. Data information.
- the one or more processors 610 may be any conventional processor, such as a commercially available central processing unit (CPU), graphics processing unit (GPU), or the like. Alternatively, one or more processors 610 may also be dedicated components, such as application specific integrated circuits (ASICs) or other hardware-based processors. Although not required, one or more processors 610 may include specialized hardware components to perform certain computing processes faster or more efficiently.
- CPU central processing unit
- GPU graphics processing unit
- ASICs application specific integrated circuits
- processors 610 may include specialized hardware components to perform certain computing processes faster or more efficiently.
- processors 610 and one or more memories 620 are schematically shown in the same box in Figure 6, the node device 600 may actually include multiple processors that may exist within the same physical enclosure or in different Multiple processors or memories within one physical enclosure.
- reference to a processor, computer, computing device, or memory should be understood to include reference to a collection of processors, computers, computing devices, or memories that may or may not operate in parallel.
- System 700 is an exemplary block diagram of a general hardware system 700 applicable in accordance with one or more exemplary embodiments of the present disclosure.
- System 700 will now be described with reference to Figure 7, which is an example of a hardware device that may be applied to aspects of the present disclosure.
- the node device 600 or the computing device in the above embodiments may include all or part of the system 700.
- System 700 may be any machine configured to perform processing and/or computation, and may be, but is not limited to, a workstation, a server, a desktop computer, a laptop computer, a tablet computer, a personal data assistant, a smartphone, a vehicle-mounted computer, or any combination.
- System 700 may include elements that may be coupled to or in communication with bus 702 via one or more interfaces.
- system 700 may include bus 702, as well as one or more processors 704, one or more input devices 706, and one or more output devices 707.
- the one or more processors 704 may be any type of processor and may include, but are not limited to, one or more general purpose processors and/or one or more special purpose processors (eg, special processing chips). Each operation and/or step in the method described above can be implemented by one or more processors 704 executing instructions.
- Input device 706 may be any type of device that can input information to a computing device and may include, but is not limited to, a mouse, a keyboard, a touch screen, a microphone, and/or a remote control.
- Output device 707 may be any type of device that can present information and may include, but is not limited to, a display, speakers, video/audio output terminal, vibrator, and/or printer.
- the System 700 may also include or be connected to non-transitory storage device 710 .
- the non-transitory storage device 710 may be any storage device that is non-transitory and can implement data storage, and may include but is not limited to a disk drive, an optical storage device, a solid state memory, a floppy disk, a hard disk, a tape or any other magnetic media, an optical disk or any Other optical media, ROM (read only memory), RAM (random access memory), cache memory, and/or any other memory chip/chipset, and/or from which the computer can read data, instructions and/or code any other media.
- Non-transitory storage device 710 is removable from the interface.
- the non-transitory storage device 710 may have data/instructions/code for implementing the methods, operations, steps and processes described above.
- System 700 may also include communications device 712.
- Communication device 712 may be any type of device or system capable of communicating with external devices and/or with a network, and may include, but is not limited to, a modem, a network card, an infrared communication device, a wireless communication device, and/or a chipset, such as a Bluetooth device, 702.11 equipment, WiFi equipment, WiMax equipment, cellular communications equipment, satellite communications equipment, and/or the like.
- Bus 702 may include, but is not limited to, an Industry Standard Architecture (ISA) bus, a Micro Channel Architecture (MCA) bus, an Enhanced ISA (EISA) bus, a Video Electronics Standards Association (VESA) local bus, and a Peripheral Component Interconnect (PCI) bus.
- bus 702 may also include a controller area network (CAN) bus or other architecture designed for use on a vehicle.
- ISA Industry Standard Architecture
- MCA Micro Channel Architecture
- EISA Enhanced ISA
- VESA Video Electronics Standards Association
- PCI Peripheral Component Interconnect
- bus 702 may also include a controller area network (CAN) bus or other architecture designed for use on a vehicle.
- CAN controller area network
- Software elements may be located in working memory 714, including, but not limited to, operating system 716, one or more applications 717, drivers, and/or other data and code. Instructions for performing the methods, operations, and steps described above may be included in one or more applications 717.
- the executable code or source code of the instructions of the software elements may be stored in a non-transitory computer-readable storage medium, such as the storage device 710 described above, and may be read into the working memory 714 through compilation and/or installation.
- the executable code or source code of the instructions for the software element may also be downloaded from a remote location.
- system 700 can be distributed over a network. For example, some processing may be performed using one processor, while other processing may be performed by another processor remote from the one processor. Other components of system 700 may be similarly distributed. As such, system 700 may be interpreted as a distributed computing system that performs processing at multiple locations.
- PLD Programmable Logic Device
- FPGA Field Programmable Gate Array
- HDL Hardware Description Language
- the controller may be implemented in any suitable manner, for example, the controller may take the form of, for example, a microprocessor or processor and a computer readable medium storing computer readable program code (eg, software or firmware) executable by the (micro)processor. , logic gates, switches, Application Specific Integrated Circuit (ASIC), programmable logic controllers and embedded microcontrollers.
- controllers include but are not limited to the following microcontrollers: ARC 625D, Atmel AT91SAM, For Microchip PIC18F26K20 and Silicone Labs C8051F320, the memory controller can also be implemented as part of the memory's control logic.
- the controller in addition to implementing the controller in the form of pure computer-readable program code, the controller can be completely programmed with logic gates, switches, application-specific integrated circuits, programmable logic controllers and embedded logic by logically programming the method steps. Microcontroller, etc. to achieve the same function. Therefore, this controller can be considered as a hardware component, and the devices included therein for implementing various functions can also be considered as structures within the hardware component. Or even, the means for implementing various functions can be considered as structures within hardware components as well as software modules implementing the methods.
- the systems, devices, modules or units described in the above embodiments may be implemented by computer chips or entities, or by products with certain functions.
- a typical implementation device is a server system.
- the computer that implements the functions of the above embodiments may be, for example, a personal computer, a laptop computer, a vehicle-mounted human-computer interaction device, a cellular phone, a camera phone, a smart phone, or a personal digital assistant. , media player, navigation device, email device, game console, tablet, wearable device, or a combination of any of these devices.
- the functions of each module can be implemented in the same or multiple software and/or hardware, or the modules that implement the same function can be implemented by a combination of multiple sub-modules or sub-units, etc. .
- the device embodiments described above are only illustrative.
- the division of the units is only a logical function division. In actual implementation, there may be other division methods.
- multiple units or components may be combined or integrated. to another system, or some features can be ignored, or not implemented.
- the coupling or direct coupling or communication connection between each other shown or discussed may be through some interfaces, and the indirect coupling or communication connection of the devices or units may be in electrical, mechanical or other forms.
- These computer program instructions may also be stored in a computer-readable memory that causes a computer or other programmable data processing apparatus to operate in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including the instruction means, the instructions
- the device implements the functions specified in a process or processes of the flowchart and/or a block or blocks of the block diagram.
- These computer program instructions may also be loaded onto a computer or other programmable data processing device, causing a series of operating steps to be performed on the computer or other programmable device to produce computer-implemented processing, thereby executing on the computer or other programmable device.
- Instructions provide steps for implementing the functions specified in a process or processes of a flowchart diagram and/or a block or blocks of a block diagram.
- a computing device includes one or more processors (CPUs), input/output interfaces, network interfaces, and memory.
- processors CPUs
- input/output interfaces network interfaces
- memory volatile and non-volatile memory
- Memory may include non-permanent storage in computer-readable media, random access memory (RAM) and/or non-volatile memory in the form of read-only memory (ROM) or flash memory (flash RAM). Memory is an example of computer-readable media.
- RAM random access memory
- ROM read-only memory
- flash RAM flash random access memory
- Computer-readable media includes permanent and non-transitory, removable and non-removable media and may be implemented by any method or technology for storage of information. Information may be computer-readable instructions, data structures, modules of programs, or other data. Examples of computer storage media include, but are not limited to, phase change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), and read-only memory.
- PRAM phase change memory
- SRAM static random access memory
- DRAM dynamic random access memory
- RAM random access memory
- read-only memory read-only memory
- ROM read-only memory
- EEPROM electrically erasable programmable read-only memory
- flash memory or other memory technology
- compact disc read-only memory CD-ROM
- DVD digital versatile disc
- Magnetic tape magnetic tape storage, graphene storage or other magnetic storage devices or any other non-transmission medium can be used to store information that can be accessed by a computing device.
- computer-readable media does not include transitory media, such as modulated data signals and carrier waves.
- one or more embodiments of the present disclosure may be provided as a method, system, or computer program product. Accordingly, one or more embodiments of the present disclosure may take the form of an entirely hardware embodiment, an entirely software embodiment, or an embodiment that combines software and hardware aspects. Furthermore, one or more embodiments of the present disclosure may employ a computer program embodied on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, etc.) having computer-usable program code embodied therein. Product form.
- computer-usable storage media including, but not limited to, disk storage, CD-ROM, optical storage, etc.
- One or more embodiments of the present disclosure may be described in the general context of computer-executable instructions, such as program modules, being executed by a computer.
- program modules include routines, programs, objects, components, data structures, etc. that perform specific tasks or implement specific abstract data types.
- One or more embodiments of the present disclosure may also be practiced in distributed computing environments where tasks are performed by remote processing devices connected through a communications network.
- program modules may be located in both local and remote computer storage media including storage devices.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Debugging And Monitoring (AREA)
- Storage Device Security (AREA)
Abstract
Description
Claims (27)
- 一种针对能够在可信执行环境中运行的应用程序检测隐私数据泄漏的方法,包括:确定隐私数据输入源;根据所述应用程序向所述可信执行环境之外的输出确定一个或多个隐私泄漏检测点;以及基于所述应用程序中与所述隐私数据输入源或所述一个或多个隐私泄漏检测点相关联的语句,确定所述隐私数据输入源是否能够传播到所述一个或多个隐私泄漏检测点。
- 根据权利要求1所述的方法,还包括:根据用户的指定确定所述隐私数据输入源。
- 根据权利要求1所述的方法,其中,所述隐私数据输入源包括以下中的至少一个:所述应用程序的输入参数中的隐私数据;所述应用程序在运行中会读取的文件中的隐私数据;和所述应用程序在运行中会从网络中获取的隐私数据。
- 根据权利要求1所述的方法,其中,所述一个或多个隐私泄漏检测点中的每个隐私泄漏检测点包括以下中的至少一个:所述应用程序的输出参数;所述应用程序在运行中会向文件中写入的数据;和所述应用程序在运行中会向网络中输出的数据。
- 根据权利要求1所述的方法,还包括:响应于确定为所述隐私数据输入源能够传播到所述一个或多个隐私泄漏检测点,输出告警信息。
- 根据权利要求1所述的方法,还包括:根据所确定的所述隐私数据输入源是否能够传播到所述一个或多个隐私泄漏检测点,输出隐私数据泄漏的检测报告。
- 根据权利要求1所述的方法,还包括:污染隐私数据输入源;针对所述应用程序中与所述隐私数据输入源或所述一个或多个隐私泄漏检测点相关联的语句中的每条语句,确定该语句的输出是否对该语句的输入具有数据依赖;响应于该语句的输出对该语句的输入具有数据依赖并且该语句的输入被污染,将该语句的输出确定为被污染;以及响应于被污染的数据到达所述一个或多个隐私泄漏检测点,确定所述隐私数据输入源能够传播到所述一个或多个隐私泄漏检测点。
- 根据权利要求7所述的方法,还包括:响应于根据该语句的输出不能反推出该语句的输入,将该语句的输出确定为未被污染。
- 根据权利要求8所述的方法,其中,所述语句包括加密函数。
- 根据权利要求7所述的方法,还包括:响应于该语句包括由未知代码实现的函数,根据该函数的抽象实现来确定该语句的输出是否对该语句的输入具有数据依赖。
- 根据权利要求1所述的方法,其中,所述可信执行环境在区块链网络中的链上节点设备中实现,所述应用程序为将要被部署在区块链网络中的智能合约。
- 根据权利要求1所述的方法,其中,所述可信执行环境在区块链网络之外的链下节点设备中实现,所述链下节点设备被配置为响应于区块链网络的请求,在所述可信执行环境中进行隐私计算,并将计算结果返回给所述区块链网络。
- 一种将应用程序部署到可信执行环境的方法,包括:在部署所述应用程序之前,根据如下对所述应用程序进行隐私数据泄漏检测:确定隐私数据输入源;根据所述应用程序向所述可信执行环境之外的输出确定一个或多个隐私泄漏检测点;以及基于所述应用程序中与所述隐私数据输入源或所述一个或多个隐私泄漏检测点相关联的语句,确定所述隐私数据输入源是否能够传播到所述一个或多个隐私泄漏检测点。
- 根据权利要求13所述的方法,还包括:根据用户的指定确定所述隐私数据输入源。
- 根据权利要求13所述的方法,其中,所述隐私数据输入源包括以下中的至少一个:所述应用程序的输入参数中的隐私数据;所述应用程序在运行中会读取的文件中的隐私数据;和所述应用程序在运行中会从网络中获取的隐私数据。
- 根据权利要求13所述的方法,其中,所述一个或多个隐私泄漏检测点中的每个隐私泄漏检测点包括以下中的至少一个:所述应用程序的输出参数;所述应用程序在运行中会向文件中写入的数据;和所述应用程序在运行中会向网络中输出的数据。
- 根据权利要求13所述的方法,还包括:响应于确定为所述隐私数据输入源能够传播到所述一个或多个隐私泄漏检测点,输出告警信息。
- 根据权利要求13所述的方法,还包括:根据所确定的所述隐私数据输入源是否能够传播到所述一个或多个隐私泄漏检测点,输出隐私数据泄漏的检测报告。
- 根据权利要求13所述的方法,还包括:污染隐私数据输入源;针对所述应用程序中与所述隐私数据输入源或所述一个或多个隐私泄漏检测点相关联的语句中的每条语句,确定该语句的输出是否对该语句的输入具有数据依赖;响应于该语句的输出对该语句的输入具有数据依赖并且该语句的输入被污染,将该语句的输出确定 为被污染;以及响应于被污染的数据到达所述一个或多个隐私泄漏检测点,确定所述隐私数据输入源能够传播到所述一个或多个隐私泄漏检测点。
- 根据权利要求19所述的方法,还包括:响应于根据该语句的输出不能反推出该语句的输入,将该语句的输出确定为未被污染。
- 根据权利要求20所述的方法,其中,所述语句包括加密函数。
- 根据权利要求19所述的方法,还包括:响应于该语句包括由未知代码实现的函数,根据该函数的抽象实现来确定该语句的输出是否对该语句的输入具有数据依赖。
- 根据权利要求13所述的方法,其中,所述可信执行环境在区块链网络中的链上节点设备中实现,所述应用程序为将要被部署在区块链网络中的智能合约。
- 根据权利要求13所述的方法,其中,所述可信执行环境在区块链网络之外的链下节点设备中实现,所述链下节点设备被配置为响应于区块链网络的请求,在所述可信执行环境中进行隐私计算,并将计算结果返回给所述区块链网络。
- 根据权利要求13所述的方法,还包括:响应于确定为所述隐私数据输入源不能够传播到所述一个或多个隐私泄漏检测点,所述可信执行环境所在的节点设备执行远程证明过程以向客户端证明所述节点设备为可信节点;所述节点设备从客户端接收部署所述应用程序的交易请求,存储并部署所述应用程序,并向客户端返回所述应用程序的哈希值。
- 一种非临时性计算机可读存储介质,所述非临时性计算机可读存储介质上存储有一系列计算机可执行的指令,当所述一系列计算机可执行的指令被一个或多个计算设备执行时,使得所述一个或多个计算设备进行如权利要求1至25中任一项所述的方法。
- 一种计算设备,包括一个或多个处理器和一个或多个存储器,所述一个或多个存储器被配置为存储一系列计算机可执行指令,其中,所述一系列计算机可执行指令在由所述一个或多个处理器执行时,使所述一个或多个处理器执行如权利要求1至25中任一项所述的方法。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202210748238.7 | 2022-06-29 | ||
| CN202210748238.7A CN115098866A (zh) | 2022-06-29 | 2022-06-29 | 检测隐私数据泄漏的方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2024001038A1 true WO2024001038A1 (zh) | 2024-01-04 |
Family
ID=83295368
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2022/135611 Ceased WO2024001038A1 (zh) | 2022-06-29 | 2022-11-30 | 检测隐私数据泄漏的方法 |
Country Status (2)
| Country | Link |
|---|---|
| CN (1) | CN115098866A (zh) |
| WO (1) | WO2024001038A1 (zh) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN119557915A (zh) * | 2024-10-23 | 2025-03-04 | 北京百度网讯科技有限公司 | 隐私数据处理方法和装置、电子设备、可读存储介质 |
Families Citing this family (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US11972007B2 (en) * | 2021-12-09 | 2024-04-30 | Cisco Technology, Inc. | Enforcing location-based data privacy rules across networked workloads |
| US11960607B2 (en) | 2021-12-09 | 2024-04-16 | Cisco Technology, Inc. | Achieving minimum trustworthiness in distributed workloads |
| CN115098866A (zh) * | 2022-06-29 | 2022-09-23 | 蚂蚁区块链科技(上海)有限公司 | 检测隐私数据泄漏的方法 |
| CN115756599A (zh) * | 2022-10-31 | 2023-03-07 | 蚂蚁区块链科技(上海)有限公司 | 一种针对隐私计算流程图的静态分析方法及装置 |
| CN117077151B (zh) * | 2023-10-16 | 2024-01-26 | 北京华云安信息技术有限公司 | 漏洞挖掘方法、装置、设备以及存储介质 |
| CN118734325B (zh) * | 2024-07-12 | 2025-12-09 | 北京工业大学 | 安卓应用调用可信执行环境的检测方法、装置和存储介质 |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN112836217A (zh) * | 2021-01-12 | 2021-05-25 | 清华大学深圳国际研究生院 | 基于sgx的动态减小tcb的区块链虚拟机方法及系统 |
| CN113704211A (zh) * | 2021-10-26 | 2021-11-26 | 浙江口碑网络技术有限公司 | 数据查询方法及装置、电子设备、存储介质 |
| CN114357492A (zh) * | 2022-01-10 | 2022-04-15 | 天津大学 | 一种基于区块链的医疗数据隐私融合方法及装置 |
| CN115098866A (zh) * | 2022-06-29 | 2022-09-23 | 蚂蚁区块链科技(上海)有限公司 | 检测隐私数据泄漏的方法 |
| CN115134067A (zh) * | 2022-06-29 | 2022-09-30 | 蚂蚁区块链科技(上海)有限公司 | 检测隐私数据泄漏的方法 |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN107330345B (zh) * | 2017-07-05 | 2020-11-27 | 北京理工大学 | 一种检测隐私数据泄露的方法和装置 |
| CN111090875B (zh) * | 2020-03-18 | 2020-10-02 | 支付宝(杭州)信息技术有限公司 | 部署合约的方法及装置 |
-
2022
- 2022-06-29 CN CN202210748238.7A patent/CN115098866A/zh active Pending
- 2022-11-30 WO PCT/CN2022/135611 patent/WO2024001038A1/zh not_active Ceased
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN112836217A (zh) * | 2021-01-12 | 2021-05-25 | 清华大学深圳国际研究生院 | 基于sgx的动态减小tcb的区块链虚拟机方法及系统 |
| CN113704211A (zh) * | 2021-10-26 | 2021-11-26 | 浙江口碑网络技术有限公司 | 数据查询方法及装置、电子设备、存储介质 |
| CN114357492A (zh) * | 2022-01-10 | 2022-04-15 | 天津大学 | 一种基于区块链的医疗数据隐私融合方法及装置 |
| CN115098866A (zh) * | 2022-06-29 | 2022-09-23 | 蚂蚁区块链科技(上海)有限公司 | 检测隐私数据泄漏的方法 |
| CN115134067A (zh) * | 2022-06-29 | 2022-09-30 | 蚂蚁区块链科技(上海)有限公司 | 检测隐私数据泄漏的方法 |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN119557915A (zh) * | 2024-10-23 | 2025-03-04 | 北京百度网讯科技有限公司 | 隐私数据处理方法和装置、电子设备、可读存储介质 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN115098866A (zh) | 2022-09-23 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN111539813B (zh) | 业务行为的回溯处理方法、装置、设备及系统 | |
| US10594489B2 (en) | Method and device for processing service request | |
| US10917394B2 (en) | Data operations using a proxy encryption key | |
| CN114297692B (zh) | 基于数据处理系统的隐私数据处理方法 | |
| CN109886682B (zh) | 区块链中实现合约调用的方法及节点、存储介质 | |
| CN113079200A (zh) | 一种数据处理的方法、装置及系统 | |
| CN115134067B (zh) | 检测隐私数据泄漏的方法 | |
| CN115098866A (zh) | 检测隐私数据泄漏的方法 | |
| TWI725709B (zh) | 資料儲存方法、裝置及設備 | |
| CN107111433B (zh) | 具有访问管理机制的电子系统及操作该电子系统的方法 | |
| CN112434326B (zh) | 一种基于数据流的可信计算方法及装置 | |
| CN110008735A (zh) | 区块链中实现合约调用的方法及节点、存储介质 | |
| CN113282959A (zh) | 业务数据处理方法、装置及电子设备 | |
| US10250642B2 (en) | System, method and apparatus for fine-grained privacy specification and verification | |
| CN117131541A (zh) | 一种用于隐私保护的数据处理方法和计算设备 | |
| CN115640571A (zh) | 用于可信执行环境TEE的库操作系统LibOS的方法 | |
| WO2021228230A1 (zh) | 一种基于安全执行环境的数据验证方法及装置 | |
| WO2024221905A1 (zh) | 区块链中账户数据的隐私保护方法及装置 | |
| CN110866274A (zh) | 一种数据融合方法、平台、系统以及数据处理平台 | |
| CN116156000A (zh) | 服务处理方法、装置及系统 | |
| CN116050847A (zh) | 一种数据风险评估的方法、装置、存储介质及电子设备 | |
| US10382952B2 (en) | Generating and utilizing a secondary security key | |
| CN107566499A (zh) | 数据同步的方法、装置和系统 | |
| CN109995773A (zh) | 数据处理方法和装置 | |
| CN116521360A (zh) | 一种数据处理系统、方法及装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 22949117 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 22949117 Country of ref document: EP Kind code of ref document: A1 |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 22949117 Country of ref document: EP Kind code of ref document: A1 |
|
| 32PN | Ep: public notification in the ep bulletin as address of the adressee cannot be established |
Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 25.06.2025) |