WO2020119258A1 - 一种数据处理方法和装置 - Google Patents
一种数据处理方法和装置 Download PDFInfo
- Publication number
- WO2020119258A1 WO2020119258A1 PCT/CN2019/112591 CN2019112591W WO2020119258A1 WO 2020119258 A1 WO2020119258 A1 WO 2020119258A1 CN 2019112591 W CN2019112591 W CN 2019112591W WO 2020119258 A1 WO2020119258 A1 WO 2020119258A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- execution environment
- trusted execution
- piece
- authorization information
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/6272—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 by registering files or documents with a third party
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
- H04L63/0478—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload applying multiple layers of encryption, e.g. nested tunnels or encrypting the content with a first key and then with at least a second key
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/03—Protecting confidentiality, e.g. by encryption
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2107—File encryption
Definitions
- the embodiments of the present specification relate to the technical field of data processing, and more specifically, to a data processing method and device based on data usage authorization.
- service providers such as credit evaluation agencies, loan institutions, and insurance companies
- an object such as credit, preferences, etc.
- an individual or enterprise conducts business with an object (such as business cooperation)
- it often needs to evaluate the object (such as credit, assets, etc.).
- Evaluation requires the user's trusted data, and the user's data is scattered among various data sources (such as banks, tax bureaus, real estate bureaus, etc.).
- the existing technology usually runs a secure multi-party computing protocol between the evaluator (ie, the data consumer) and one or more data sources (ie, the data provider), so that the evaluation The result is evaluated.
- the calculation is mainly based on cryptography technology. During the calculation process, multiple parties such as data consumers and data providers are required to cooperate in real time.
- the embodiments of the present specification aim to provide a more effective data processing method and device to solve the deficiencies in the prior art.
- one aspect of the present specification provides a data processing method, the method is executed by a data provider, and the data provider owns first plain text data, and the method includes:
- the first key and the authorization information are securely transmitted to the first trusted execution environment.
- the first encrypted data is provided to the data management party.
- Another aspect of this specification provides a data processing method that is executed by a data provider who owns first plaintext data.
- the method includes:
- the first clear text data and the authorization information are securely transmitted to the first trusted execution environment.
- the authorization information includes at least one code hash value, and the at least one code hash value is respectively a code hash value of at least one program that is allowed to use the first clear text data.
- the authorization information includes at least one access authority information corresponding to the at least one code hash value, and the access authority information is information about the calculation result of the corresponding program.
- the access right information is a second key
- the second key is used to encrypt the corresponding calculation result and is provided by the calculation result user corresponding to the calculation result.
- the access authority information is empty information.
- verifying based on the authentication information includes verifying based on the authentication information: whether a program for data use authorization is installed and is being executed in the first trusted execution environment.
- the secure transmission is encrypted transmission.
- Another aspect of this specification provides a data processing method that is executed by a data management party that includes a first trusted execution environment and stores at least one piece of encrypted data, wherein, in the first At least one first key and at least one piece of authorization information respectively corresponding to the at least one first key are stored in the trusted execution environment, wherein the at least one first key is used to decrypt the at least one Copies of encrypted data to obtain at least one piece of plaintext data, the at least one piece of authorization information corresponding to the at least one piece of plaintext data, and the authorization information is information about at least one program that is allowed to use the corresponding cleartext data ,
- the method includes:
- the first trusted execution environment securely transmits the first key corresponding to the piece of authorization information to the second trusted execution environment
- the corresponding encrypted data is provided to the data consumer.
- Another aspect of the present specification provides a data processing method that is executed by a data management party that includes a first trusted execution environment, where at least one of the first trusted execution environment is stored A piece of plaintext data and at least one piece of authorization information corresponding to the at least one piece of plaintext data, wherein the authorization information is information about at least one program that is allowed to use the corresponding cleartext data, and the method includes:
- the first trusted execution environment securely transmits the plaintext data corresponding to the piece of authorization information to the second trusted execution environment.
- the first trusted execution environment and the second trusted execution environment are located on one platform, or on different platforms.
- receiving authentication information from the data consumer includes receiving, by the first trusted execution environment, authentication information that is securely transmitted from the second trusted execution environment.
- the authentication information includes the first code hash value of the first program installed and running in the second trusted execution environment, wherein the each piece of authorization information includes the at least one A respective code hash value of the program, wherein, for each share of the authorization information, verifying based on the authentication information and the share of authorization information includes, for each share of authorization information, verifying whether the first code hash value is the A code hash included in the authorization information.
- each piece of the authorization information includes a first code hash value and a second key corresponding to the first code hash value, and the second key is used to The calculation result of a program is encrypted and provided by the user of the calculation result corresponding to the calculation result, wherein the method further includes that, for each copy of the authorization information, in the case where verification is passed, the first The trusted execution environment securely transmits the second key to the second trusted execution environment.
- the data manager further includes a data storage module, wherein the at least one piece of encrypted data is stored in the data storage module.
- Another aspect of the present specification provides a data processing method that is executed by a data consumer, and the data consumer includes a second trusted execution environment, and a first program runs in the second trusted execution environment.
- the methods described include:
- the second trusted execution environment receives the first key corresponding to the piece of authorization information securely transmitted from the first trusted execution environment;
- the data management party obtains the encrypted data corresponding to the authorization information; decrypts the encrypted data using the first key in the second trusted execution environment to obtain the corresponding plaintext data;
- the first program is used to perform calculation based on the at least one piece of plain text data to obtain a calculation result.
- Another aspect of the present specification provides a data processing method that is executed by a data consumer, and the data consumer includes a second trusted execution environment, and a first program runs in the second trusted execution environment.
- the methods described include:
- the data management party includes a first trusted execution environment, stored in the first trusted execution environment There is the at least one piece of plaintext data and at least one piece of authorization information corresponding to the at least one piece of plaintext data, wherein the authorization information is information about at least one program that is allowed to use the corresponding cleartext data;
- the second trusted execution environment For each piece of the authorization information, in the case where verification is passed, the second trusted execution environment receives the plaintext data corresponding to the piece of authorization information securely transmitted from the first trusted execution environment;
- the first program is used to perform calculation based on the at least one piece of plain text data to obtain a calculation result.
- the first program has a first code hash value, where each piece of authorization information includes a first code hash value and a second key corresponding to the first code hash value.
- the second key is used to encrypt the calculation result of the first program and is provided by the calculation result user corresponding to the calculation result.
- the method further includes:
- the second trusted execution environment receives the second key securely transmitted from the first trusted execution environment;
- the second key is used to encrypt the calculation result in the second trusted execution environment to obtain the encrypted calculation result.
- the method further includes, after acquiring the encryption calculation result, sending the encryption calculation result to the calculation result consumer.
- obtaining the encrypted data corresponding to the share of authorization information from the data manager includes reading the encrypted data corresponding to the share of authorization information from the data manager.
- Another aspect of the present specification provides a data processing device, the device is implemented at a data provider, the data provider owns first plain text data, the device includes:
- An obtaining unit configured to obtain first encrypted data of the first plain text data, a first key used to decrypt the first encrypted data, and authorization information about the first clear text data;
- a sending unit configured to send a verification request to a data management party, wherein the data management party includes a first trusted execution environment
- a verification unit configured to receive authentication information from the data management party and perform verification based on the authentication information, wherein the authentication information is generated by the first trusted execution environment;
- a secure transmission unit configured to securely transmit the first key and the authorization information to the first trusted execution environment when the verification is passed
- the providing unit is configured to provide the first encrypted data to the data management party.
- Another aspect of the present specification provides a data processing device, the device is implemented at a data provider, the data provider owns first plain text data, the device includes:
- An obtaining unit configured to obtain authorization information about the first plain text data
- a sending unit configured to send a verification request to a data management party, wherein the data management party includes a first trusted execution environment
- a verification unit configured to receive authentication information from the data management party and perform verification based on the authentication information, wherein the authentication information is generated by the first trusted execution environment;
- the secure transmission unit is configured to securely transmit the first plaintext data and the authorization information to the first trusted execution environment when the verification is passed.
- the verification unit is further configured to verify, based on the authentication information: whether a program for data use authorization is installed and is being executed in the first trusted execution environment.
- Another aspect of the present specification provides a data processing apparatus, the apparatus is implemented in a data management party, the data management party includes a first trusted execution environment, and stores at least one piece of encrypted data, wherein, in the first At least one first key and at least one piece of authorization information respectively corresponding to the at least one first key are stored in the trusted execution environment, wherein the at least one first key is used to decrypt the at least one Copies of encrypted data to obtain at least one piece of plaintext data, the at least one piece of authorization information corresponding to the at least one piece of plaintext data, and the authorization information is information about at least one program that is allowed to use the corresponding cleartext data ,
- the device includes:
- the first receiving unit is configured to receive a data request from a data consumer, the data request being used to request the use of the at least one piece of clear text data, wherein the data consumer includes a second trusted execution environment;
- a second receiving unit configured to receive authentication information from the data consumer, the authentication information being generated by the second trusted execution environment
- a verification unit configured to, in the first trusted execution environment, for each share of the authorization information, verify based on the certification information and the share of authorization information;
- the first secure transmission unit for each piece of authorization information is configured to, in the case where verification is passed, the first trusted execution environment securely transmits the first key corresponding to the piece of authorization information to the second trusted Execution environment;
- the providing unit is configured to provide corresponding encrypted data to the data consumer.
- Another aspect of this specification provides a data processing apparatus, the apparatus is implemented in a data management party, the data management party includes a first trusted execution environment, wherein at least one stored in the first trusted execution environment A piece of plaintext data and at least one piece of authorization information corresponding to the at least one piece of plaintext data, wherein the authorization information is information about at least one program that is allowed to use the corresponding cleartext data, and the device includes:
- the first receiving unit is configured to receive a data request from a data consumer, the data request being used to request the use of the at least one piece of clear text data, wherein the data consumer includes a second trusted execution environment;
- a second receiving unit configured to receive authentication information from the data consumer, wherein the authentication information is generated by the second trusted execution environment
- a verification unit configured to, in the first trusted execution environment, for each share of the authorization information, verify based on the certification information and the share of authorization information;
- each secure transmission unit of the authorization information it is configured that, in the case of verification, the first trusted execution environment securely transmits the plaintext data corresponding to the authorization information to the second trusted execution environment .
- the verification unit is further configured to receive the authentication information safely transmitted from the second trusted execution environment by the first trusted execution environment.
- the authentication information includes the first code hash value of the first program installed and running in the second trusted execution environment, wherein the each piece of authorization information includes the at least one Each code hash value of the program, wherein the verification unit is further configured to, for each piece of authorization information, verify whether the first code hash value is a code hash value included in the piece of authorization information.
- each piece of the authorization information includes a first code hash value and a second key corresponding to the first code hash value, and the second key is used to
- the calculation result of a program is encrypted and provided by the calculation result user corresponding to the calculation result
- the device further includes a second secure transmission unit configured to, for each copy of the authorization information, pass the verification In the first trusted execution environment, the second key is also securely transmitted to the second trusted execution environment.
- Another aspect of this specification provides a data processing device, the device is implemented in a data consumer, the data consumer includes a second trusted execution environment, the second trusted execution environment runs a first program, so The device includes:
- the first sending unit is configured to send a data request to the data manager for requesting to use at least one piece of plaintext data corresponding to at least one piece of encrypted data stored in the data manager, wherein the data manager includes the first A trusted execution environment, where at least one first key and at least one piece of authorization information respectively corresponding to the at least one first key are stored in the first trusted execution environment, wherein the at least one first key
- the key is used to separately decrypt the at least one piece of encrypted data to obtain the at least one piece of plaintext data respectively, the at least one piece of authorization information corresponds to the at least one piece of plaintext data respectively, and the authorization information is about Information of at least one program that allows the use of corresponding plaintext data;
- the second sending unit is configured to send authentication information to the data management party, so that the first trusted execution environment verifies each piece of the authorization information based on the authentication information and the piece of authorization information, wherein, The authentication information is generated by the second trusted execution environment;
- the first receiving unit is configured to, in a case where verification is passed, receive, by the second trusted execution environment, the piece of authorization information securely transmitted from the first trusted execution environment Corresponding first key; acquisition unit, configured to acquire encrypted data corresponding to the piece of authorization information from the data management party; decryption unit, configured to use the first key in the second trusted execution environment The key decrypts the encrypted data to obtain the corresponding plaintext data; and
- the calculation unit is configured to perform calculation based on the at least one piece of plain text data by the first program in the second trusted execution environment to obtain a calculation result.
- Another aspect of this specification provides a data processing device, the device is implemented in a data consumer, the data consumer includes a second trusted execution environment, the second trusted execution environment runs a first program, so The device includes:
- the first sending unit is configured to send a data request to the data manager for requesting to use at least one piece of plaintext data stored in the data manager, wherein the data manager includes the first trusted execution environment, The first trusted execution environment stores the at least one piece of plaintext data and at least one piece of authorization information corresponding to the at least one piece of plaintext data respectively, wherein the authorization information is about permission to use the corresponding cleartext data Information about at least one program;
- the second sending unit is configured to send authentication information to the data management party, so that the first trusted execution environment verifies each piece of the authorization information based on the authentication information and the piece of authorization information, wherein, The authentication information is generated by the second trusted execution environment;
- the first receiving unit is configured to, for each copy of the authorization information, in the case where verification is passed, the second trusted execution environment receives from the first trusted execution environment Clearly transmitted clear text data corresponding to the authorization information;
- the calculation unit is configured to perform calculation based on the at least one piece of plain text data by the first program in the second trusted execution environment to obtain a calculation result.
- the first program has a first code hash value, where each piece of authorization information includes a first code hash value and a second key corresponding to the first code hash value.
- the second key is used to encrypt the calculation result of the first program and provided by a user of the calculation result corresponding to the calculation result.
- the device further includes:
- the second receiving unit for each share of the authorization information is configured to, in the case where verification is passed, receive, by the second trusted execution environment, the share of authorization information securely transmitted from the first trusted execution environment The corresponding second key;
- the determining unit is configured to, after acquiring the calculation result, determine whether the second keys corresponding to the respective pieces of the authorization information are consistent in the second trusted execution environment, and
- the encryption unit is configured to use the second key to encrypt the calculation result in the second trusted execution environment when the second keys are consistent to obtain the encrypted calculation result.
- the apparatus further includes a third sending unit configured to send the encrypted calculation result to the calculation result consumer after acquiring the encrypted calculation result.
- the acquisition unit is further configured to read the encrypted data corresponding to the piece of authorization information from the data management party.
- a reliable data authorization system for data providers is built using TEE and RA technologies, which can guarantee the privacy of data and the compliant use of data from multiple parties; Data usage behavior authorization, and selective access control of the output of digital data fusion, to meet the general entrance and exit authority control of actual multi-party data fusion; the data authorization system serves as an intermediate layer for data providers and data With user decoupling, data providers do not need to deploy data provision services to transmit data in real time with converged services, improving ease of use.
- FIG. 1 shows a schematic diagram of a data processing system 100 according to an embodiment of this specification
- FIG. 2 shows a flowchart of a data processing method according to an embodiment of this specification
- FIG. 3 schematically shows the information securely transmitted to the first TEE by the data provider
- FIG. 5 shows a flowchart of a data processing method according to an embodiment of this specification
- FIG. 6 schematically shows data stored in the data management party
- FIG. 7 shows a flowchart of a data processing method according to an embodiment of this specification.
- FIG. 8 shows a flowchart of a data processing method according to an embodiment of this specification
- FIG. 10 shows an interaction diagram between a data provider, a data manager, and a data user in the data processing method according to an embodiment of this specification
- FIG. 11 shows a data processing device 1100 according to an embodiment of this specification
- FIG. 12 shows a data processing device 1200 according to an embodiment of this specification
- FIG. 13 shows a data processing device 1300 according to an embodiment of this specification
- FIG. 14 shows a data processing device 1400 according to an embodiment of this specification
- FIG. 15 shows a data processing device 1500 according to an embodiment of this specification
- FIG. 16 shows a data processing device 1600 according to an embodiment of this specification.
- FIG. 1 shows a schematic diagram of a data processing system 100 according to an embodiment of this specification.
- the system 100 includes a data provider 11, a data provider 12, a data manager 13, a data consumer 14, and a result consumer 15.
- the data provider 11/12 is, for example, a party with original data such as a bank, taxation bureau, real estate bureau, etc.;
- the data management party 13 is equivalent to a data escrow platform, including a first trusted execution environment (TEE) 131 and a storage module 132,
- TEE trusted execution environment
- the data provider uploads the data and its authorization information to the data manager in advance to authorize the use of the data, so that the data provider does not need to be online in real time when the data is used;
- the data user 14 is, for example, a credit evaluation agency, a loan institution, Service providers such as insurance companies include the second TEE 141;
- the result consumer 15 is, for example, the service target of the data consumer 14, such as enterprises and individuals.
- the data provider 11 may upload the encrypted data X of the locally-owned clear text data X to the storage module 132 of the data manager 13, and secure the corresponding first key and authorization information for decryption
- the first TEE 131 transmitted to the data manager 13 is used by the first TEE to authorize the use of the plaintext data X.
- the data provider 12 may upload the encrypted data Y of its local plaintext data Y to the storage module 132 similarly to the data provider 11, and securely transmit the corresponding first key and authorization information to the first TEE 131.
- the first TEE may verify the second TEE141 according to the authorization information corresponding to the plaintext data X, and after the verification is passed, the corresponding first secret
- the key is securely transmitted to the second TEE, and the encrypted data X is provided to the data consumer to authorize the data consumer 14 to use the plaintext data X, for example, in the second TEE141, model calculation is performed based on the plaintext data X.
- the data consumer 14 can acquire the plaintext data Y from the data manager 13 by a method similar to the above.
- the data consumer 14 may encrypt the calculation result based on the calculation result key securely transmitted from the first TEE to the second TEE, and send the encrypted calculation result to The result consumer 15 providing the calculation result key.
- FIG. 1 and the above description are only a brief overview of the embodiments of the specification, and do not limit the scope of the embodiments of the specification.
- the system 100 is not limited to include two data providers, and may include one data provider or multiple data providers. Each data provider, similar to the above, trusts its local data to the data manager 13.
- FIG. 2 shows a flowchart of a data processing method according to an embodiment of the present specification.
- the method is executed by a data provider, and the data provider owns first plain text data.
- the method includes:
- step S202 obtain first encrypted data of the first clear text data, a first key used to decrypt the first encrypted data, and authorization information about the first clear text data;
- step S204 a verification request is sent to the data management party, where the data management party includes the first trusted execution environment;
- step S206 receiving authentication information from the data management party and verifying based on the authentication information, wherein the authentication information is generated by the first trusted execution environment;
- step S208 in the case where verification is passed, the first key and the authorization information are securely transmitted to the first trusted execution environment.
- step S210 the first encrypted data is provided to the data management party.
- step S202 first encrypted data of the first clear text data, a first key used to decrypt the first encrypted data, and authorization information about the first clear text data are acquired.
- the first encrypted data may be obtained by performing symmetric encryption or asymmetric encryption on the first plain text data.
- the first key is the key used to encrypt the first plaintext data.
- the first key is the key used to encrypt the first
- the key of a plaintext data is different from another key. It can be understood that the descriptions of "first”, “second”, etc. in this article are for distinguishing similar concepts only for simplicity of description, and have no other limiting effect.
- the authorization information regarding the first plain text data includes respective code hashes of at least one program that can use the first plain text data.
- the code hash value may be the hash value of all codes of the program, or may be a hash value occupied by the program in memory at a known execution point.
- the at least one program is at least one program that allows the data provider to use the first clear text data. For example, in the case where the authorization information includes multiple code hashes, it indicates that the first plaintext data can be used for calculation of multiple programs.
- the first plain text data is individual transaction data within a predetermined period of time
- the transaction data can be used for the calculation of the first program of personal credit evaluation, the calculation of the second program of personal consumption propensity, and the third program of the consumption level of a specific group of people Calculation, etc.
- the data provider such as a bank
- the data provider may include the code hash values of the first program, the second program, and the third program in the authorization information corresponding to the transaction data, which are used to Authorization of the second and third procedures.
- the authorization information about the first plaintext data may further include calculation result access permission information corresponding to each code hash value.
- the access right information is a second key, which is provided by the user of the calculation result and used to encrypt the calculation result obtained by the program corresponding to the corresponding code hash value.
- the encryption of the calculation result is asymmetric encryption, that is, the second key is the public key of the user of the calculation result, and when decrypting the encrypted calculation result, the private key of the user of the calculation result needs to be decrypted .
- the encryption of the calculation result may also be symmetric encryption.
- the above authorization information also includes a second key corresponding to the hash value of the first program.
- the second key is, for example, the public key of the service object of the loan institution (such as an enterprise or an individual).
- the individual transmits to the bank (data provider) in advance, and after obtaining the corresponding calculation result based on the first clear text data through the first program, the data user (such as a loan institution) will use the public key to encrypt the calculation result, and After obtaining the encrypted calculation result, the enterprise or individual will use its private key for decryption to obtain the calculation result in plain text. It can be understood that, in the authorization information, the corresponding second key is not included for any code hash value.
- the calculation result based on the first plain text data is the consumption level of a specific group of people, and the result does not involve personal privacy, so there is no need to encrypt the calculation result, so in the authorization information
- the second key corresponding to the code hash value of the third program may not be included, that is, the access authority information is empty information.
- the authorization information is not limited to including the code hash value and the second key, for example, the authorization information may include a code signature of a program that can use the first clear text data, based on a predetermined encryption algorithm Encrypted data, etc.
- step S204 a verification request is sent to the data management party, where the data management party includes the first trusted execution environment.
- the data management party includes an authorization module for authorizing data usage by the data consumer.
- the authorization module is the first trusted execution environment, which is, for example, a trusted execution environment (TEE, Trusted Execution Environment) generated by technologies such as SGX and Trust Zone.
- TEE trusted execution environment
- the verification request is, for example, a request to verify whether the first TEE is a trusted execution environment, whether it is installed therein, and is running a program for authorizing data use, and so on.
- the data provider may send the verification request directly to the first TEE, or may send the verification request to the data management platform, and the platform forwards the verification request to the first TEE.
- step S206 authentication information is received from the data management party and verified based on the authentication information, wherein the authentication information is generated by the first trusted execution environment.
- the first TEE After receiving the verification request, the first TEE generates authentication information based on its internal mechanism, and sends the authentication information to the data provider for verification.
- the authentication information includes, for example, signature information, hardware information, and software information of the first TEE.
- the signature information is generated by, for example, the hardware key of the first TEE; the hardware information includes, for example, indicators of various hardware, such as CPU frequency, memory capacity, etc.; and the software information includes code of each program Hope value, code name, version, running log, etc.
- TEE can perform “measurement” of a program running in it through memory hardware, such as obtaining the code hash value of the program, the hash value of the memory occupied by the program at a specific execution point, etc., and
- the authentication information includes "measurement” information on the program. Since the "measurement” information is executed by the first TEE's own entity (memory hardware) without involving any software or operating system, it is authentic of. It can be understood that the authentication information is not limited to the above, for example, the authentication information does not necessarily include signature information, software information, etc., but may only include software information, so that the data provider can perform procedures for running the program in the first TEE verification.
- the data provider may verify whether the first TEE is a trusted execution environment based on the authentication information, for example, verifying whether the signature information is obtained by a hardware public key of the first TEE obtained in advance Signing information of the first TEE, verifying whether the hardware configuration of the first TEE matches the pre-acquired configuration, etc.
- the first TEE may also compare the "measurement" information of the program in which the first TEE included in the authentication information with the code hash value of the pre-acquired program for data use authorization to verify to determine the first Whether the program for data use authorization is installed and running in TEE.
- the code hash value is obtained, for example, from a code signature provided by a program publisher, or calculated and obtained from the open source program.
- the verification process based on the authentication information is not limited to the above, for example, the authentication information may not include the hardware information, signature information, etc. of the first TEE. Accordingly, the data provider may pass the A third-party server that provides technical support for TEE (such as an Intel server that provides verification services for Enclave) verifies the signature information and hardware configuration of the first TEE.
- the A third-party server that provides technical support for TEE (such as an Intel server that provides verification services for Enclave) verifies the signature information and hardware configuration of the first TEE.
- the specific content and form of the authentication information provided by the TEE obtained based on different technologies will have some differences.
- the authentication provided by it can enable the data user to perform corresponding verification to determine whether the TEE To safely execute the environment, and/or determine whether the program running in it is the expected program.
- the authentication information is not limited to be sent to the data provider by the first TEE, and other modules in the data management party may obtain the authentication information from the first TEE and send it to the data provider.
- step S208 in the case where verification is passed, the first key and the authorization information are securely transmitted to the first trusted execution environment.
- the data provider may hand over the data it owns to the data management party for hosting. Specifically, first, the data provider securely transmits the first key and corresponding authorization information to the first TEE.
- the secure transmission is, for example, encrypted transmission, by encrypting the data to be transmitted before transmission, and decrypting after transmission to the receiver to enable the receiver to obtain clear text data, ensuring that no malicious third parties will be transmitted during the transmission Stealing plaintext data guarantees the security of data transmission.
- the secure transmission is not limited to encrypted transmission, but any transmission method that can be obtained by those skilled in the art to ensure data security, such as a secure transmission method through quantum communication, etc., can be used.
- FIG. 3 is a schematic diagram showing the information A securely transmitted to the first TEE by the data provider.
- the information A securely transmitted by the data provider to the first TEE corresponds to the first plaintext data described above, including the first key A and the authorization information A, where the authorization information A is as shown in the "first secret
- the black box below the key A includes: the corresponding first code hash value and the second key C, the corresponding second code hash value and the second key D, and the third code hash value.
- the first key is used to decrypt the first encrypted data to obtain the first plain text data.
- the first code hash value, the second code hash value, and the third code hash value are, for example, the code hash values of the above-mentioned first program, second program, and third program, respectively.
- the second key C is, for example, the public key of the first result user C, that is, the calculation result of the first program based on the first plaintext data is only authorized for use by the first result user C.
- the second key D is, for example, the public key of the second result consumer D, that is, the calculation result of the second program based on the first plaintext data is only authorized for use by the second result consumer D.
- the authorization information is not limited to include the code hash value of each of the programs, but may include different information according to different authorization methods, for example, the authorization information may include the code signature of each of the programs , Encrypted data, etc.
- the second key C/D is not limited to the public key of the corresponding result user. In the case where the encryption method of the calculation result is symmetric encryption, the second key C/D can also be used to Decryption of encryption calculation results. Among them, the "second" in the second key is used to distinguish it from the "first key” in this article.
- step S210 the first encrypted data is provided to the data management party.
- the data provider sends the first locally stored encrypted data to the data manager.
- the first encrypted data is read by the data manager from the data provider.
- the data management party may, for example, read the first encrypted data related to the individual based on the personal identification (such as ID number, etc.), data identification, etc. .
- the data provider sends the address of the network disk storing the first encrypted data to the data management party to obtain the first encrypted data.
- FIG. 4 shows a flowchart of a data processing method according to an embodiment of the present specification.
- the method is executed by a data provider, and the data provider owns first plain text data.
- the method includes:
- step S402 obtain authorization information about the first plaintext data
- step S404 a verification request is sent to the data management party, where the data management party includes the first trusted execution environment;
- step S406 receiving authentication information from the data management party and verifying based on the authentication information, wherein the authentication information is generated by the first trusted execution environment;
- step S408 in the case where verification is passed, the first clear text data and the authorization information are securely transmitted to the first trusted execution environment.
- the method shown in FIG. 4 is different from the method shown in FIG. 2 in that the data provider does not encrypt the first plain text data. Therefore, in step S402, only the authorization information about the first plain text data is obtained, but the first The encrypted data of the plaintext data and the first key. After verifying the first TEE as described above, in step S408, the data provider directly and securely transmits the first clear text data and related authorization information to the first TEE, that is, there is no need to encrypt the first clear text data. To obtain encrypted data (and thus no storage module of the data management party is required), and there is no need to separately provide encrypted data and a decryption key for safely transmitting the encrypted data.
- the first plaintext data is stored in the form of plaintext data and is safe in the first TEE, and the first plaintext data is transmitted through secure transmission, and the first plaintext will not be leaked during the transmission process data. Therefore, in this way, the first clear text data can also be safely managed.
- FIG. 5 shows a flowchart of a data processing method according to an embodiment of the present specification.
- the method is executed by a data management party.
- the data management party includes a first trusted execution environment and stores at least one piece of encrypted data.
- At least one first key and at least one piece of authorization information respectively corresponding to the at least one first key are stored in the first trusted execution environment, wherein the at least one first key is used for Separately decrypt the at least one piece of encrypted data to obtain at least one piece of plaintext data respectively, the at least one piece of authorization information corresponds to the at least one piece of plaintext data respectively, and the authorization information is about being allowed to use the corresponding cleartext data Information of at least one program, the method includes:
- step S502 a data request of a data consumer is received, the data request is used to request the use of the at least one piece of plain text data, wherein the data consumer includes a second trusted execution environment;
- step S504 receiving authentication information from the data consumer, the authentication information is generated by the second trusted execution environment
- step S506 in the first trusted execution environment, for each piece of the authorization information, verification is performed based on the authentication information and the piece of authorization information;
- step S508 when the verification is passed, the first trusted execution environment securely transmits the first key corresponding to the piece of authorization information to the second trusted execution environment;
- step S510 the corresponding encrypted data is provided to the data consumer.
- FIG. 6 shows a schematic diagram of the storage module of the data manager and the data stored in the first TEE.
- the storage module stores encrypted data X and encrypted data Y, where the encrypted data X is uploaded in advance by the data provider A to the data manager, which corresponds to the plaintext data X, and the encrypted data Y is, for example, data.
- the provider B uploads to the data manager in advance, which corresponds to the plaintext data Y.
- the encrypted data X/Y is not limited to be stored in the storage module, for example, the encrypted data X/Y may be stored in the first TEE, or may be stored in a cloud disk, and so on.
- the first TEE stores information A and information B, where information A is related to encrypted data X, including first key A and authorization information A, and information B is related to encrypted data Y, including first key B and authorization Information B.
- the first key A is used to encrypt and decrypt the plaintext data X
- the authorization information A is authorization information about the plaintext data X
- the second key B is used to encrypt and decrypt the plaintext data Y
- the authorization information B is Authorization information about plaintext data Y.
- content of the authorization information A refer to FIG. 3. Although only two pieces of encrypted data and two pieces of information corresponding thereto are shown schematically in FIG.
- the first TEE is not limited to storing only two pieces of information, but may store multiple pieces corresponding to multiple pieces of encrypted data respectively information.
- the information A and the information B in FIG. 6 respectively correspond to different data providers, and the embodiment of this specification is not limited thereto.
- the information A and the information B may correspond to one data provider, that is, the data provider A and the data provider Party B may be a data provider, that is to say, plaintext data X and plaintext data Y may be provided by a data provider.
- the encrypted data X indicates that the encrypted data is data obtained by encrypting the plaintext data X
- the encrypted data Y can be interpreted in the same manner
- the information A, the first key A, and the authorization information A indicate that they are all related to the data
- the provider A is related
- the information B, the first key B and the authorization information B can be interpreted in the same way.
- step S502 a data request from a data consumer is received, the data request is used to request the use of the at least one piece of plain text data, wherein the data consumer includes a second trusted execution environment.
- the user of the data is, for example, a credit evaluation agency. When performing a credit evaluation on a user, it can request the data manager for two copies of data related to the user. provide.
- the data consumer may acquire data related to the user based on, for example, the user's identity (eg, ID number, etc.), data provider's identity, data identity, etc.
- the data consumer may also be a cloud computing platform, for example, which receives a commission from a credit evaluation agency to calculate the user's credit evaluation through a model.
- the data consumer includes a second trusted execution environment (ie, a second TEE) in which a predetermined program (for example, the first program) is run for, for example, F (based on the above-mentioned plaintext data X and plaintext data Y X, Y) calculation, so that through the security mechanism of the second TEE, the plaintext data X and the plaintext data Y will not be disclosed to the outside during the calculation process.
- the second TEE and the first TEE are located in a platform.
- the Alipay platform data hosting and credit evaluation of users can be performed at the same time, that is, the Alipay platform is both a data management party and a Data consumer.
- the second TEE can send a data usage request to the first TEE. It can be understood that in this case, the second TEE may also send the data usage request to the data manager, or the data usage may send the data usage request to the data manager or the first TEE.
- the first TEE and the second TEE are located in different platforms.
- the Alipay platform is the data management party, which includes the first TEE
- the cloud computing platform is the data consumer
- the cloud computing platform includes the second TEE.
- the data usage request may be sent by the data consumer platform to the data manager platform.
- a data usage request may be sent by the data consumer platform to the first TEE, or a data usage request may be sent by the second TEE to the data manager platform or the first TEE.
- the data user sends a request to the data manager to request at least one piece of plaintext data corresponding to at least one piece of encrypted data in the data manager, that is, to request the at least one piece of encrypted data and the corresponding decryption key (first password key).
- step S504 authentication information is received from the data consumer, and the authentication information is generated by the second trusted execution environment.
- the data consumer may send the authentication information generated by the second TEE to the data manager after sending the data request, or may send the authentication information generated by the second TEE to the data manager after the data management sends a verification request to the data consumer .
- the second TEE generates authentication information based on an internal mechanism for verification by the data management party.
- the authentication information includes, for example, signature information, hardware information, and software information of the second TEE.
- the signature information is generated by, for example, the hardware key of the second TEE;
- the hardware information includes, for example, indicators of various hardware, such as CPU frequency, memory capacity, etc.;
- the software information includes code of each program Hope value, code name, version running log, etc.
- TEE can perform “measurement” of a program running in it through memory hardware, such as obtaining the code hash value of the program, the hash value of the memory occupied by the program at a specific execution point, etc.
- the authentication information includes "measurement” information (for example, code hash value) of the program. Since the "measurement” information is executed by the TEE's own entity (memory hardware), it does not involve any software or operating system. Therefore it is true and credible. It can be understood that the authentication information is not limited to the above, for example, the authentication information does not necessarily include signature information, software information, etc., but may only include software information for the first TEE to perform the program running in the second TEE verification.
- the authentication information does not necessarily include signature information, software information, etc., but may only include software information for the first TEE to perform the program running in the second TEE verification.
- the first TEE and the second TEE are located in a platform, and the authentication information is Intra-Platform authentication information.
- the authentication information is Intra-Platform authentication information.
- a file "REPORT” is generated as the platform Certification Information.
- the first TEE and the second TEE are located in different platforms, and the authentication information is inter-platform (Inter-Platform) authentication information.
- the TEE generates a file "QUOTE" as the inter-platform authentication information for remote authentication (RA).
- the authentication information within the platform and the authentication information between the platforms may have different file formats and encryption methods.
- the authentication information within the platform may use a symmetric encryption method
- the authentication information between the platforms may use an asymmetric encryption method
- the authentication information includes information related to the running program in the second TEE (such as the first program).
- the second TEE securely transmits the authentication information to the first TEE.
- the second TEE or data user may send the authentication information to the data manager, and the data manager may send the authentication information to the first TEE after receiving the authentication information .
- step S506 in the first trusted execution environment, for each piece of the authorization information, verification is performed based on the authentication information and the piece of authorization information;
- the first TEE After acquiring the authentication information, the first TEE internally verifies the authorization information corresponding to each of the at least one piece of data requested by the data consumer based on the authentication information. For example, referring to FIG. 6, the data consumer requests the use of plaintext data X and plaintext data Y, and the authorization information in the information A corresponding to the plaintext data X in the first TEE includes, for example, the respective code hashes of each program that can use the plaintext data X The authorization information in the information B corresponding to the plain text data Y includes, for example, the code hash value of each program that can use the plain text data Y. The first TEE needs to be verified based on authentication information, information A and information B.
- the first TEE may verify whether the second TEE is a trusted execution environment based on the authentication information, for example, verify whether the signature information is the signature information of the second TEE through a hardware public key of the second TEE obtained in advance, It is verified whether the hardware configuration of the second TEE matches the pre-acquired configuration and so on.
- the first TEE may also verify whether the "measured" hash value is consistent with the multiple code hash values included in the information A based on the "measured" hash value of the program running in the second TEE included in the authentication information One of them matches to determine whether the program running in the second TEE is a program that can be authorized to use the plaintext data X. Similarly, it is verified whether the "measured" hash value matches one of the code hash values included in the information B.
- the verification of each piece of authorization information may be performed sequentially or in parallel, which is not limited in this application.
- the authorization information is not limited to including the code hash value of each program, and for example, may also include the code signature of each program, code encrypted data, and the like.
- the first TEE may obtain the corresponding code hash value based on the code signature and the public key of the corresponding code obtained in advance from, for example, the data provider, for use in the above verification.
- the verification process based on the authentication information is not limited to the above, for example, the authentication information may not include hardware information, signature information, etc. of the second TEE. Accordingly, the data management party may pass the Second TEE provides technical support to third-party servers (such as Intel servers that provide verification services for Enclave) to verify the second TEE's signature information, hardware configuration, etc.
- third-party servers such as Intel servers that provide verification services for Enclave
- the specific content and form of the authentication information provided by the TEE obtained based on different technologies will be somewhat different, however, the authentication information provided by it can enable the data user to perform corresponding verification to determine the TEE Whether it is a safe execution environment, and/or to determine whether the program running in it is an authorized program.
- Steps 508-step 510 are steps performed for each piece of authorization information corresponding to at least one piece of plaintext data requested by the data consumer. For each piece of authorization information, steps 508-step 510 may be executed sequentially or in parallel. In the following description, it is described as an example that steps 508-510 are executed for a piece of authorization information (for example, authorization information A as shown in FIG. 6). Those skilled in the art can understand that for other authorization information in the at least one piece of authorization information, steps 508-510 can be performed in the same way.
- step S508 in the case where verification is passed, the first trusted execution environment securely transmits the first key corresponding to the piece of authorization information to the second trusted execution environment.
- the first TEE can securely transmit the first key A to the second TEE.
- step S510 the corresponding encrypted data is provided to the data consumer.
- the data management party sends the encrypted data X stored in its storage module to the second TEE.
- the encrypted data X is read by the data consumer from the storage module of the data manager.
- the plaintext data X is, for example, personal transaction data provided by a bank
- the data consumer can read based on, for example, personal identification (such as ID card number, etc.), data provider identification (such as bank identification), data identification, etc. Encrypted data X related to the individual.
- the data management party may provide the download address of the encrypted data X to the data consumer for downloading.
- the authorization information A included in the information A may further include the second keys of the result consumers corresponding to the partial hash code values, respectively.
- the authorization information A includes the second key C corresponding to the first code hash value.
- the first TEE also securely transmits the second key C to the second TEE for use in encrypting the calculation result.
- the method is executed by a data management party, and the data management party includes a first trusted execution environment, where the first trusted execution At least one piece of plaintext data and at least one piece of authorization information respectively corresponding to the at least one piece of plaintext data are stored in the environment, wherein the authorization information is information about at least one program that is allowed to use the corresponding cleartext data,
- the method includes:
- step S702 a data request from a data consumer is received, the data request is used to request the use of the at least one piece of plain text data, wherein the data consumer includes a second trusted execution environment;
- step S704 receiving authentication information from the data consumer, wherein the authentication information is generated by the second trusted execution environment;
- step S706 in the first trusted execution environment, for each piece of the authorization information, verification is performed based on the authentication information and the piece of authorization information;
- step S708 for each copy of the authorization information, in the case where verification is passed, the first trusted execution environment securely transmits the at least one piece of plaintext data to the second trusted execution environment.
- the method shown in FIG. 7 corresponds to the method shown in FIG. 4, and by the method shown in FIG. 4, at least one piece of plaintext data and at least one piece of plaintext data are stored in the first trusted execution environment At least one piece of authorization information corresponding to each.
- the method shown in FIG. 7 is different from the method shown in FIG. 5 in that after the verification is passed, the at least one piece of plaintext data is securely transmitted from the first TEE to the second TEE without the data manager having to encrypt at least one piece of encrypted data It is transmitted to the second TEE, and the first key (decryption key) corresponding to at least one piece of encrypted data is securely transmitted from the first TEE to the second TEE. Since the at least one piece of plain text data can be well protected in the first TEE, in the secure transmission process, and in the second TEE, the security of the method can be guaranteed.
- FIG. 8 shows a flowchart of a data processing method according to an embodiment of the present specification.
- the method is executed by a data consumer, and the data consumer includes a second trusted execution environment, and the second trusted execution environment runs in With the first procedure, the method includes:
- a data request is sent to the data manager for requesting the use of at least one piece of plaintext data corresponding to at least one piece of encrypted data stored in the data manager, wherein the data manager includes the first trusted execution environment , At least one first key and at least one piece of authorization information respectively corresponding to the at least one first key are stored in the first trusted execution environment, wherein the at least one first key is used for Separately decrypt the at least one piece of encrypted data to obtain the at least one piece of plain text data respectively, the at least one piece of authorization information corresponds to the at least one piece of plain text data respectively, and the authorization information is about Information on at least one program of plaintext data;
- step S804 authentication information is sent to the data management party, so that the first trusted execution environment verifies each piece of the authorization information based on the authentication information and the piece of authorization information, wherein the authentication information Generated by the second trusted execution environment;
- step S806 in the case where verification is passed, the second trusted execution environment receives the first key corresponding to the piece of authorization information that is securely transmitted from the first trusted execution environment;
- step S808 obtain encrypted data corresponding to the piece of authorization information from the data management party;
- step S810 use the first key to decrypt the encrypted data in the second trusted execution environment to obtain the corresponding plaintext data
- step S812 the first program is used to perform calculation based on the at least one piece of plain text data in the second trusted execution environment to obtain a calculation result.
- the method shown in FIG. 8 is a method performed by the data consumer as opposed to the method shown in FIG. 5.
- the data consumer includes a second TEE.
- the second TEE runs a first program, and the second program uses data for calculation.
- the corresponding data was first requested from the data management party, and then the model calculation was performed based on the corresponding data. Therefore, for the specific description of steps S802-S810, reference may be made to the corresponding descriptions of steps S502-S508 in the foregoing, which will not be repeated here.
- the first key is used to decrypt the encrypted data in the second trusted execution environment to obtain corresponding plaintext data.
- the second TEE can use the first key in the second TEE A decrypts the encrypted data X to obtain the plaintext data X.
- the plaintext data Y can be acquired.
- the first program is used to perform calculation based on the at least one piece of plain text data in the second trusted execution environment to obtain a calculation result.
- the program performs calculation of F(X,Y) based on data X and data Y, for example, where F(X,Y) corresponds to a specific calculation model, by running the first program in a second TEE, using F(X , Y) Calculate based on X and Y to obtain the calculation result.
- the first TEE also securely transmits the key used to encrypt the calculation result corresponding to the code hash value to the second TEE,
- the first program has, for example, a first code hash value, wherein each piece of authorization information corresponding to at least one piece of plaintext data requested by the data user includes, for example, a first code hash value and the first code hash value.
- a second key (for example, a second key C) corresponding to the code hash value, the second key is used to encrypt the calculation result of the first program, and the calculation result user corresponding to the calculation result provide.
- the method further includes that, for each piece of the authorization information, in the case where verification is passed, the second trusted execution environment receives the first corresponding to the authorization information securely transmitted from the first trusted execution environment Two keys; after obtaining the calculation result, determine in the second trusted execution environment whether the second keys corresponding to the respective pieces of the authorization information are consistent, for example, determine the received from the first TEE Whether the second key corresponding to the encrypted data X is consistent with the second key corresponding to the encrypted data Y; and, in the case where each of the second keys is consistent, used in the second trusted execution environment
- the second key encrypts the calculation result to obtain an encrypted calculation result, that is, in a case where the second keys are all the second key C, the second key C is used to perform the calculation result encryption.
- the second key may be an asymmetrically encrypted encryption key, that is, a public key. After the encrypted calculation result is sent to the result consumer C, the result consumer C will use its private key C decrypts the encrypted calculation result.
- this embodiment is not limited to this.
- the second key may be a symmetrically encrypted key, that is, the result user C also uses the second key for decryption when decrypting.
- the encrypted calculation result can be sent to the corresponding result consumer by the second TEE or data consumer platform, or the encrypted calculation result can be read from the platform by the corresponding result consumer .
- FIG. 9 shows a flowchart of a data processing method according to an embodiment of the present specification.
- the method is executed by a data consumer, and the data consumer includes a second trusted execution environment.
- the method includes:
- step S902 a data request is sent to the data management party for requesting the use of at least one piece of plaintext data stored in the data management party, where the data management party includes a first trusted execution environment, where the first trusted The execution environment stores the at least one piece of plain text data and at least one piece of authorization information corresponding to the at least one piece of plain text data respectively, wherein the authorization information is about at least one program that is allowed to use the corresponding clear text data information;
- step S904 authentication information is sent to the data management party, so that the first trusted execution environment verifies each piece of the authorization information based on the authentication information and the piece of authorization information, wherein the authentication information Generated by the second trusted execution environment;
- step S906 for each copy of the authorization information, in the case where verification is passed, the second trusted execution environment receives the plaintext data corresponding to the copy of the authorization information safely transmitted from the first trusted execution environment ;as well as
- step S908 in the second trusted execution environment, the first program is used to perform calculation based on the at least one piece of plain text data to obtain a calculation result.
- the method shown in FIG. 9 is opposite to the method shown in FIG. 7, which is different from the method shown in FIG. 8 in that, in step S906, in the case where verification is passed, the at least the secure transmission from the first trusted execution environment is received.
- One piece of plaintext data, that is, the encrypted data and the corresponding decryption key are not obtained separately, so that the step of decryption is not required, so that at step S908, the first program can be directly calculated based on the at least one piece of plaintext data to obtain Calculation results.
- FIG. 10 shows an interaction diagram between a data provider, a data manager, and a data user in the data processing method according to an embodiment of the present specification.
- the three-party interaction includes two stages.
- the first stage is the interaction between the data provider and the data manager, including:
- the data provider obtains the first encrypted data of the first plaintext data, which is used to decrypt the first The first key of the encrypted data and the authorization information about the first plaintext data;
- the data provider sends a verification request to the data manager;
- the data manager sends an authentication to the data provider after receiving the verification request Information, wherein the authentication information is generated by the first trusted execution environment; at step 1004, the data manager verifies based on the authentication information; and at step 1005, after verification is passed, the data manager verifies the first The key and authorization information are safely transmitted to the first TEE, and the first encrypted data is provided to the data management party.
- the data provider can trust its own data to the data management party to authorize the third party to use the first plaintext data through the
- the second stage is the interaction between the data manager and the data user, including the following steps:
- the data user sends a data request to the data manager to request the use of at least one piece of plaintext data from the data manager;
- the data user sends authentication information to the data manager, which is generated by the second TEE in the data user;
- step 1008 based on the authentication information and the first in the first TEE of the data manager Verify the relevant authorization information already in the TEE;
- the first trusted execution environment securely transmits the first key corresponding to the piece of authorization information to the The second trusted execution environment, and the data management provides corresponding encrypted data to the data consumer;
- step 1010 for each piece of authorization information, the data consumer uses the corresponding key in the second TEE to perform the corresponding encrypted data Decrypt to obtain the corresponding plaintext data;
- step 1011 the data consumer performs model calculation based on the at least one piece of plaintext data in the second TEE, thereby obtaining
- FIG. 11 shows a data processing device 1100 according to an embodiment of the present specification.
- the device is implemented at a data provider, and the data provider owns first plain text data.
- the device includes:
- the obtaining unit 111 is configured to obtain first encrypted data of the first plain text data, a first key used to decrypt the first encrypted data, and authorization information about the first plain text data;
- the sending unit 112 is configured to send a verification request to a data management party, where the data management party includes a first trusted execution environment;
- the verification unit 113 is configured to receive authentication information from the data management party and perform verification based on the authentication information, where the authentication information is generated by the first trusted execution environment;
- the secure transmission unit 114 is configured to securely transmit the first key and the authorization information to the first trusted execution environment when the verification is passed;
- the providing unit 115 is configured to provide the first encrypted data to the data management party.
- the verification unit 113 is further configured to verify, based on the authentication information: whether a program for data use authorization is installed and is being executed in the first trusted execution environment.
- FIG. 12 shows a data processing apparatus 1200 according to an embodiment of the present specification.
- the apparatus is implemented at a data provider, and the data provider owns first plain text data.
- the apparatus includes:
- the obtaining unit 121 is configured to obtain authorization information about the first clear text data
- the sending unit 122 is configured to send a verification request to a data management party, where the data management party includes a first trusted execution environment;
- the verification unit 123 is configured to receive authentication information from the data management party and perform verification based on the authentication information, wherein the authentication information is generated by the first trusted execution environment;
- the secure transmission unit 124 is configured to securely transmit the first plaintext data and the authorization information to the first trusted execution environment when the verification is passed.
- FIG. 13 shows a data processing apparatus 1300 according to an embodiment of the present specification.
- the apparatus is implemented in a data management party.
- the data management party includes a first trusted execution environment and stores at least one piece of encrypted data, wherein, At least one first key and at least one piece of authorization information respectively corresponding to the at least one first key are stored in the first trusted execution environment, wherein the at least one first key is used for Decrypting the at least one piece of encrypted data to obtain at least one piece of plaintext data respectively, the at least one piece of authorization information corresponding to the at least one piece of plaintext data respectively, and the authorization information is about being allowed to use the corresponding cleartext data
- the device includes:
- the first receiving unit 1301 is configured to receive a data request from a data consumer, and the data request is used to request the use of the at least one piece of clear text data, wherein the data consumer includes a second trusted execution environment;
- the second receiving unit 1302 is configured to receive authentication information from the data consumer, the authentication information being generated by the second trusted execution environment;
- the verification unit 1303 is configured to, in the first trusted execution environment, verify each piece of the authorization information based on the certification information and the piece of authorization information;
- the first secure transmission unit 1304 is configured to, in the case where verification is passed, the first trusted execution environment securely transmits the first key corresponding to the piece of authorization information to the second Letter execution environment;
- the providing unit 1350 is configured to provide corresponding encrypted data to the data consumer.
- the verification unit 1303 is further configured to receive authentication information safely transmitted from the second trusted execution environment by the first trusted execution environment.
- the authentication information includes the first code hash value of the first program installed and running in the second trusted execution environment, wherein the each piece of authorization information includes the at least one Each code hash value of the program, wherein the verification unit 1303 is further configured to, for each piece of authorization information, verify whether the first code hash value is a code hash value included in the piece of authorization information.
- each piece of the authorization information includes a first code hash value and a second key corresponding to the first code hash value, and the second key is used to
- the calculation result of a program is encrypted and provided by the user of the calculation result corresponding to the calculation result
- the device further includes a second secure transmission unit 1306 configured to, for each copy of the authorization information, pass the verification
- the second trusted execution environment is also securely transmitted by the first trusted execution environment to the second trusted execution environment.
- FIG. 14 shows a data processing apparatus 1400 according to an embodiment of the present specification.
- the apparatus is implemented in a data management party, and the data management party includes a first trusted execution environment, wherein, in the first trusted execution environment At least one piece of plaintext data and at least one piece of authorization information corresponding to the at least one piece of plaintext data, respectively, wherein the authorization information is information about at least one program that is allowed to use the corresponding cleartext data.
- the device includes:
- the first receiving unit 1401 is configured to receive a data request from a data consumer, and the data request is used to request the use of the at least one piece of plain text data, wherein the data consumer includes a second trusted execution environment;
- the second receiving unit 1402 is configured to receive authentication information from the data consumer, wherein the authentication information is generated by the second trusted execution environment;
- the verification unit 1403 is configured to, in the first trusted execution environment, verify each piece of the authorization information based on the certification information and the piece of authorization information;
- the secure transmission unit 1404 for each piece of the authorization information is configured to, in the case where verification is passed, the first trusted execution environment securely transmit the plaintext data corresponding to the piece of authorization information to the second trusted execution surroundings.
- FIG. 15 shows a data processing apparatus 1500 according to an embodiment of the present specification.
- the apparatus is implemented by a data consumer.
- the data consumer includes a second trusted execution environment, and the second trusted execution environment runs The first procedure, the device includes:
- the first sending unit 1501 is configured to send a data request to the data manager for requesting to use at least one piece of plain text data corresponding to at least one piece of encrypted data stored in the data manager, wherein the data manager includes the first A trusted execution environment in which at least one first key and at least one piece of authorization information respectively corresponding to the at least one first key are stored in the first trusted execution environment, wherein the at least one first key A key is used to separately decrypt the at least one piece of encrypted data to obtain the at least one piece of plaintext data respectively, the at least one piece of authorization information corresponds to the at least one piece of plaintext data respectively, and the authorization information is about Information about at least one program that is allowed to use the corresponding plaintext data;
- the second sending unit 1502 is configured to send authentication information to the data management party, so that the first trusted execution environment verifies each piece of the authorization information based on the authentication information and the piece of authorization information, wherein , The authentication information is generated by the second trusted execution environment;
- the first receiving unit 1503 is configured to, in the case where verification is passed, receive the first key corresponding to the piece of authorization information that is securely transmitted from the first trusted execution environment by the second trusted execution environment;
- the obtaining unit 1504 is configured to obtain encrypted data corresponding to the share of authorization information from the data manager;
- the decrypting unit 1505 is configured to use the first key to encrypt the data in the second trusted execution environment Decrypt the data to obtain the corresponding plaintext data;
- the calculation unit 1506 is configured to perform calculation based on the at least one piece of plain text data through the first program in the second trusted execution environment to obtain a calculation result.
- the first program has a first code hash value, where each piece of authorization information includes a first code hash value and a second key corresponding to the first code hash value.
- the second key is used to encrypt the calculation result of the first program and provided by a user of the calculation result corresponding to the calculation result.
- the device further includes:
- the second receiving unit 1507 is configured to, in the case of passing verification, receive a second key corresponding to the piece of authorization information that is securely transmitted from the first trusted execution environment by the second trusted execution environment;
- the determining unit 1508 is configured to, after acquiring the calculation result, determine in the second trusted execution environment whether the respective second keys corresponding to the respective pieces of the authorization information are consistent, and
- the encryption unit 1509 is configured to use the second key to encrypt the calculation result in the second trusted execution environment to obtain an encrypted calculation result when the second keys are consistent .
- the apparatus further includes a third sending unit 1510 configured to, after acquiring the encryption calculation result, send the encryption calculation result to the calculation result consumer.
- the obtaining unit 1504 is further configured to read encrypted data corresponding to the share of authorization information from the data management party.
- FIG. 16 shows a data processing apparatus 1600 according to an embodiment of the present specification.
- the apparatus is implemented by a data consumer, and the data consumer includes a second trusted execution environment, and the second trusted execution environment runs The first procedure, the device includes:
- the first sending unit 161 is configured to send a data request to the data manager for requesting to use at least one piece of plain text data stored in the data manager, where the data manager includes the first trusted execution environment, and The first trusted execution environment stores the at least one piece of plaintext data and at least one piece of authorization information corresponding to the at least one piece of plaintext data, respectively, wherein the authorization information is about permission to use the corresponding cleartext data Information of at least one program;
- the second sending unit 162 is configured to send authentication information to the data management party, so that the first trusted execution environment verifies each piece of the authorization information based on the authentication information and the piece of authorization information, wherein , The authentication information is generated by the second trusted execution environment;
- the first receiving unit 163 for each share of the authorization information is configured to, for each share of the authorization information, in the case where verification is passed, the second trusted execution environment receives from the first trusted execution Clear text data corresponding to the authorization information transmitted by the environment safely;
- the calculation unit 164 is configured to perform calculation based on the at least one piece of plain text data by the first program in the second trusted execution environment to obtain a calculation result.
- a reliable data authorization system for data providers is built using TEE and RA technologies, and the intermediate data authorization platform will not be snooped or tampered with data provision through technical level rather than third-party trust.
- the data of the party runs fast, supports fusion calculations that can be represented by any code, and is more efficient and versatile; a set of protocol processes is proposed for the data authorization system, data provider, and data user, through which the data can be guaranteed Privacy, the compliant use of multi-party data; the design has achieved two features that can be authorized for data use behavior, and selectively control access to the output of data fusion, to meet the general entrance of actual multi-party data fusion 3.
- the data authorization system acts as an intermediate layer to decouple the data provider from the data consumer.
- the data provider can upload only once.
- the data consumer can use it multiple times without repeated uploads by the data provider.
- the data access efficiency can be effectively improved; the data authorization system is designed to allow the data provider to upload offline in advance.
- the data provider does not need to deploy data provision services to transmit data in real time with the converged service, improving ease of use.
- RAM random access memory
- ROM read-only memory
- electrically programmable ROM electrically erasable and programmable ROM
- registers hard disks, removable disks, CD-ROMs, or all fields of technology. Any other known storage medium.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Power Engineering (AREA)
- Databases & Information Systems (AREA)
- Storage Device Security (AREA)
Abstract
本说明书实施例提供一种数据处理方法和装置,其中,在数据提供方执行的方法包括:获取所述第一明文数据的第一加密数据、用于解密所述第一加密数据的第一密钥、以及关于所述第一明文数据的授权信息;向数据管理方发送验证请求,其中,所述数据管理方包括第一可信执行环境;从所述数据管理方接收认证信息,并基于所述认证信息进行验证;在验证通过的情况中,将所述第一密钥和所述授权信息安全传输至所述第一可信执行环境;以及将所述第一加密数据提供给所述数据管理方。
Description
本说明书实施例涉及数据处理技术领域,更具体地,涉及基于数据使用授权的数据处理方法和装置。
在互联网大数据背景下,服务提供商(如信用评估机构、贷款机构、保险公司)在为一个对象(个人或企业、组织)提供服务时,经常会使用该对象的历史数据对对象进行评估(如信用、喜好等)。个人或企业在与一个对象开展业务(如商业合作),经常也需要对该对象进行评估(如信用、资产等)。评估需要用户的可信数据,而用户的数据分散在各个数据源(如银行、税务局、房产局等)中。为了保护对象的隐私和评估方法的隐私,现有的技术通常是在评估者(即数据使用方)和一个或多个数据源(即数据提供方)之间运行安全多方计算协议,以使得评估者得到评估结果。在安全多方计算中,主要基于密码学技术进行计算,计算过程中需要数据使用方和数据提供方等多方实时配合。
因此,需要一种更有效的用于保护各方数据安全的数据处理方案。
发明内容
本说明书实施例旨在提供一种更有效的数据处理方法和装置,以解决现有技术中的不足。
为实现上述目的,本说明书一个方面提供一种数据处理方法,所述方法在数据提供方执行,所述数据提供方拥有第一明文数据,所述方法包括:
获取所述第一明文数据的第一加密数据、用于解密所述第一加密数据的第一密钥、以及关于所述第一明文数据的授权信息;
向数据管理方发送验证请求,其中,所述数据管理方包括第一可信执行环境;
从所述数据管理方接收认证信息,并基于所述认证信息进行验证,其中,所述认证信息由所述第一可信执行环境生成;
在验证通过的情况中,将所述第一密钥和所述授权信息安全传输至所述第一可信 执行环境;以及
将所述第一加密数据提供给所述数据管理方。
本说明书另一方面提供一种数据处理方法,所述方法在数据提供方执行,所述数据提供方拥有第一明文数据,所述方法包括:
获取关于所述第一明文数据的授权信息;
向数据管理方发送验证请求,其中,所述数据管理方包括第一可信执行环境;
从所述数据管理方接收认证信息,并基于所述认证信息进行验证,其中,所述认证信息由所述第一可信执行环境生成;以及
在验证通过的情况中,将所述第一明文数据和所述授权信息安全传输至所述第一可信执行环境。
在一个实施例中,所述授权信息包括至少一个代码哈希值,所述至少一个代码哈希值分别为被允许使用所述第一明文数据的至少一个程序各自的代码哈希值。
在一个实施例中,所述授权信息包括与所述至少一个代码哈希值分别对应的至少一个访问权限信息,所述访问权限信息为关于相应程序的计算结果的信息。
在一个实施例中,所述访问权限信息为第二密钥,所述第二密钥用于加密相应的计算结果、由与该计算结果对应的计算结果使用方提供。
在一个实施例中,所述访问权限信息为空信息。
在一个实施例中,基于所述认证信息进行验证包括,基于所述认证信息验证:所述第一可信执行环境中是否安装有并正在执行用于数据使用授权的程序。
在一个实施例中,所述安全传输为加密传输。
本说明书另一方面提供一种数据处理方法,所述方法在数据管理方执行,所述数据管理方包括第一可信执行环境、并且存储有至少一份加密数据,其中,在所述第一可信执行环境中存储有至少一个第一密钥和与所述至少一个第一密钥分别对应的至少一份授权信息,其中,所述至少一个第一密钥用于分别解密所述至少一份加密数据以分别获取至少一份明文数据,所述至少一份授权信息与所述至少一份明文数据分别对应,且所述授权信息为关于被允许使用相应的明文数据的至少一个程序的信息,所述方法包括:
接收数据使用方的数据请求,所述数据请求用于请求使用所述至少一份明文数据, 其中,所述数据使用方包括第二可信执行环境;
从所述数据使用方接收认证信息,所述认证信息由所述第二可信执行环境生成;
在所述第一可信执行环境中,对于每份所述授权信息,基于所述认证信息和该份授权信息进行验证;以及
对于每份所述授权信息,
在验证通过的情况中,由第一可信执行环境将与该份授权信息对应的第一密钥安全传输给所述第二可信执行环境,以及
将相应的加密数据提供给所述数据使用方。
本说明书另一方面提供一种数据处理方法,所述方法在数据管理方执行,所述数据管理方包括第一可信执行环境,其中,在所述第一可信执行环境中存储有至少一份明文数据、以及与所述至少一份明文数据分别对应的至少一份授权信息,其中,所述授权信息为关于被允许使用相应的明文数据的至少一个程序的信息,所述方法包括:
接收数据使用方的数据请求,所述数据请求用于请求使用所述至少一份明文数据,其中,所述数据使用方包括第二可信执行环境;
从所述数据使用方接收认证信息,其中,所述认证信息由所述第二可信执行环境生成;
在所述第一可信执行环境中,对于每份所述授权信息,基于所述认证信息和该份授权信息进行验证;以及
对于每份所述授权信息,在验证通过的情况中,由第一可信执行环境将与该份授权信息对应的明文数据安全传输给所述第二可信执行环境。
在一个实施例中,所述第一可信执行环境与所述第二可信执行环境位于一个平台、或不同的平台中。
在一个实施例中,从所述数据使用方接收认证信息包括,由所述第一可信执行环境接收从所述第二可信执行环境安全传输的认证信息。
在一个实施例中,所述认证信息中包括所述第二可信执行环境中安装并正在运行的第一程序的第一代码哈希值,其中,所述每份授权信息包括所述至少一个程序各自的代码哈希值,其中,对于每份所述授权信息,基于所述认证信息和该份授权信息进行验证包括,对于每份授权信息,验证所述第一代码哈希值是否为该份授权信息中包括的一 个代码哈希值。
在一个实施例中,每份所述授权信息中包括第一代码哈希值、和与所述第一代码哈希值对应的第二密钥,所述第二密钥用于对所述第一程序的计算结果进行加密、由与该计算结果对应的计算结果使用方提供,其中,所述方法还包括,对于每份所述授权信息,在验证通过的情况中,还由所述第一可信执行环境将所述第二密钥安全传输给所述第二可信执行环境。
在一个实施例中,所述数据管理方还包括数据存储模块,其中,所述至少一份加密数据被存储在所述数据存储模块中。
本说明书另一方面提供一种数据处理方法,所述方法在数据使用方执行,所述数据使用方包括第二可信执行环境,所述第二可信执行环境中运行有第一程序,所述方法包括:
向数据管理方发送数据请求,用于请求使用与数据管理方中存储的至少一份加密数据对应的至少一份明文数据,其中,所述数据管理方包括第一可信执行环境,在所述第一可信执行环境中存储有至少一个第一密钥和与所述至少一个第一密钥分别对应的至少一份授权信息,其中,所述至少一个第一密钥用于分别解密所述至少一份加密数据以分别获取所述至少一份明文数据,所述至少一份授权信息与所述至少一份明文数据分别对应,且所述授权信息为关于被允许使用相应的明文数据的至少一个程序的信息;
向所述数据管理方发送认证信息,以使得所述第一可信执行环境对于每份所述授权信息基于所述认证信息和该份授权信息进行验证,其中,所述认证信息由所述第二可信执行环境生成;
对于每份所述授权信息,在验证通过的情况中,由所述第二可信执行环境接收从所述第一可信执行环境安全传输的与该份授权信息对应的第一密钥;从所述数据管理方获取与该份授权信息对应的加密数据;在所述第二可信执行环境中使用该第一密钥对该加密数据进行解密,以获取相应的明文数据;以及
在所述第二可信执行环境中通过所述第一程序基于所述至少一份明文数据进行计算,以获取计算结果。
本说明书另一方面提供一种数据处理方法,所述方法在数据使用方执行,所述数据使用方包括第二可信执行环境,所述第二可信执行环境中运行有第一程序,所述方法包括:
向数据管理方发送数据请求,用于请求使用数据管理方中存储的至少一份明文数据,其中,所述数据管理方包括第一可信执行环境,在所述第一可信执行环境中存储有所述至少一份明文数据和与所述至少一份明文数据分别对应的至少一份授权信息,其中,所述授权信息为关于被允许使用相应的明文数据的至少一个程序的信息;
向所述数据管理方发送认证信息,以使得所述第一可信执行环境对于每份所述授权信息基于所述认证信息和该份授权信息进行验证,其中,所述认证信息由所述第二可信执行环境生成;
对于每份所述授权信息,在验证通过的情况中,由所述第二可信执行环境接收从所述第一可信执行环境安全传输的与该份授权信息对应的明文数据;以及
在所述第二可信执行环境中通过所述第一程序基于所述至少一份明文数据进行计算,以获取计算结果。
在一个实施例中,所述第一程序具有第一代码哈希值,其中,每份授权信息中包括第一代码哈希值、及与第一代码哈希值对应的第二密钥,所述第二密钥用于对所述第一程序的计算结果进行加密、由与该计算结果对应的计算结果使用方提供,所述方法还包括:
对于每份所述授权信息,在验证通过的情况中,由所述第二可信执行环境接收从所述第一可信执行环境安全传输的所述第二密钥;
在获取所述计算结果之后,在所述第二可信执行环境中确定与各份所述授权信息分别对应的各个第二密钥是否一致;以及
在各个所述第二密钥一致的情况中,在所述第二可信执行环境中使用所述第二密钥对所述计算结果进行加密,以获取加密计算结果。
在一个实施例中,所述方法还包括,在获取加密计算结果之后,将所述加密计算结果发送给所述计算结果使用方。
在一个实施例中,从所述数据管理方获取与该份授权信息对应的加密数据包括,从所述数据管理方读取与该份授权信息对应的加密数据。
本说明书另一方面提供一种数据处理装置,所述装置在数据提供方实施,所述数据提供方拥有第一明文数据,所述装置包括:
获取单元,配置为,获取所述第一明文数据的第一加密数据、用于解密所述第一 加密数据的第一密钥、以及关于所述第一明文数据的授权信息;
发送单元,配置为,向数据管理方发送验证请求,其中,所述数据管理方包括第一可信执行环境;
验证单元,配置为,从所述数据管理方接收认证信息,并基于所述认证信息进行验证,其中,所述认证信息由所述第一可信执行环境生成;
安全传输单元,配置为,在验证通过的情况中,将所述第一密钥和所述授权信息安全传输至所述第一可信执行环境;以及
提供单元,配置为,将所述第一加密数据提供给所述数据管理方。
本说明书另一方面提供一种数据处理装置,所述装置在数据提供方实施,所述数据提供方拥有第一明文数据,所述装置包括:
获取单元,配置为,获取关于所述第一明文数据的授权信息;
发送单元,配置为,向数据管理方发送验证请求,其中,所述数据管理方包括第一可信执行环境;
验证单元,配置为,从所述数据管理方接收认证信息,并基于所述认证信息进行验证,其中,所述认证信息由所述第一可信执行环境生成;以及
安全传输单元,配置为,在验证通过的情况中,将所述第一明文数据和所述授权信息安全传输至所述第一可信执行环境。
在一个实施例中,所述验证单元还配置为,基于所述认证信息验证:所述第一可信执行环境中是否安装有并正在执行用于数据使用授权的程序。
本说明书另一方面提供一种数据处理装置,所述装置在数据管理方实施,所述数据管理方包括第一可信执行环境、并且存储有至少一份加密数据,其中,在所述第一可信执行环境中存储有至少一个第一密钥和与所述至少一个第一密钥分别对应的至少一份授权信息,其中,所述至少一个第一密钥用于分别解密所述至少一份加密数据以分别获取至少一份明文数据,所述至少一份授权信息与所述至少一份明文数据分别对应,且所述授权信息为关于被允许使用相应的明文数据的至少一个程序的信息,所述装置包括:
第一接收单元,配置为,接收数据使用方的数据请求,所述数据请求用于请求使用所述至少一份明文数据,其中,所述数据使用方包括第二可信执行环境;
第二接收单元,配置为,从所述数据使用方接收认证信息,所述认证信息由所述 第二可信执行环境生成;
验证单元,配置为,在所述第一可信执行环境中,对于每份所述授权信息,基于所述认证信息和该份授权信息进行验证;以及
针对每份授权信息的第一安全传输单元,配置为,在验证通过的情况中,由第一可信执行环境将与该份授权信息对应的第一密钥安全传输给所述第二可信执行环境;以及
提供单元,配置为,将相应的加密数据提供给所述数据使用方。
本说明书另一方面提供一种数据处理装置,所述装置在数据管理方实施,所述数据管理方包括第一可信执行环境,其中,在所述第一可信执行环境中存储有至少一份明文数据、以及与所述至少一份明文数据分别对应的至少一份授权信息,其中,所述授权信息为关于被允许使用相应的明文数据的至少一个程序的信息,所述装置包括:
第一接收单元,配置为,接收数据使用方的数据请求,所述数据请求用于请求使用所述至少一份明文数据,其中,所述数据使用方包括第二可信执行环境;
第二接收单元,配置为,从所述数据使用方接收认证信息,其中,所述认证信息由所述第二可信执行环境生成;
验证单元,配置为,在所述第一可信执行环境中,对于每份所述授权信息,基于所述认证信息和该份授权信息进行验证;以及
针对每份所述授权信息的安全传输单元,配置为,在验证通过的情况中,由第一可信执行环境将与该份授权信息对应的明文数据安全传输给所述第二可信执行环境。
在一个实施例中,所述验证单元还配置为,由所述第一可信执行环境接收从所述第二可信执行环境安全传输的认证信息。
在一个实施例中,所述认证信息中包括所述第二可信执行环境中安装并正在运行的第一程序的第一代码哈希值,其中,所述每份授权信息包括所述至少一个程序各自的代码哈希值,其中,所述验证单元还配置为,对于每份授权信息,验证所述第一代码哈希值是否为该份授权信息中包括的一个代码哈希值。
在一个实施例中,每份所述授权信息中包括第一代码哈希值、和与所述第一代码哈希值对应的第二密钥,所述第二密钥用于对所述第一程序的计算结果进行加密、由与该计算结果对应的计算结果使用方提供,其中,所述装置还包括第二安全传输单元,配 置为,对于每份所述授权信息,在验证通过的情况中,还由所述第一可信执行环境将所述第二密钥安全传输给所述第二可信执行环境。
本说明书另一方面提供一种数据处理装置,所述装置在数据使用方实施,所述数据使用方包括第二可信执行环境,所述第二可信执行环境中运行有第一程序,所述装置包括:
第一发送单元,配置为,向数据管理方发送数据请求,用于请求使用与数据管理方中存储的至少一份加密数据对应的至少一份明文数据,其中,所述数据管理方包括第一可信执行环境,在所述第一可信执行环境中存储有至少一个第一密钥和与所述至少一个第一密钥分别对应的至少一份授权信息,其中,所述至少一个第一密钥用于分别解密所述至少一份加密数据以分别获取所述至少一份明文数据,所述至少一份授权信息与所述至少一份明文数据分别对应,且所述授权信息为关于被允许使用相应的明文数据的至少一个程序的信息;
第二发送单元,配置为,向所述数据管理方发送认证信息,以使得所述第一可信执行环境对于每份所述授权信息基于所述认证信息和该份授权信息进行验证,其中,所述认证信息由所述第二可信执行环境生成;
针对每份所述授权信息的第一接收单元,配置为,在验证通过的情况中,由所述第二可信执行环境接收从所述第一可信执行环境安全传输的与该份授权信息对应的第一密钥;获取单元,配置为,从所述数据管理方获取与该份授权信息对应的加密数据;解密单元,配置为,在所述第二可信执行环境中使用该第一密钥对该加密数据进行解密,以获取相应的明文数据;以及
计算单元,配置为,在所述第二可信执行环境中通过所述第一程序基于所述至少一份明文数据进行计算,以获取计算结果。
本说明书另一方面提供一种数据处理装置,所述装置在数据使用方实施,所述数据使用方包括第二可信执行环境,所述第二可信执行环境中运行有第一程序,所述装置包括:
第一发送单元,配置为,向数据管理方发送数据请求,用于请求使用数据管理方中存储的至少一份明文数据,其中,所述数据管理方包括第一可信执行环境,在所述第一可信执行环境中存储有所述至少一份明文数据和与所述至少一份明文数据分别对应的至少一份授权信息,其中,所述授权信息为关于被允许使用相应的明文数据的至少一 个程序的信息;
第二发送单元,配置为,向所述数据管理方发送认证信息,以使得所述第一可信执行环境对于每份所述授权信息基于所述认证信息和该份授权信息进行验证,其中,所述认证信息由所述第二可信执行环境生成;
针对每份所述授权信息的第一接收单元,配置为,对于每份所述授权信息,在验证通过的情况中,由所述第二可信执行环境接收从所述第一可信执行环境安全传输的与该份授权信息对应的明文数据;以及
计算单元,配置为,在所述第二可信执行环境中通过所述第一程序基于所述至少一份明文数据进行计算,以获取计算结果。
在一个实施例中,所述第一程序具有第一代码哈希值,其中,每份授权信息中包括第一代码哈希值、及与第一代码哈希值对应的第二密钥,所述第二密钥用于对所述第一程序的计算结果进行加密、由与该计算结果对应的计算结果使用方提供,所述装置还包括,
针对每份所述授权信息的第二接收单元,配置为,在验证通过的情况中,由所述第二可信执行环境接收从所述第一可信执行环境安全传输的与该份授权信息对应的第二密钥;
确定单元,配置为,在获取所述计算结果之后,在所述第二可信执行环境中确定与各份所述授权信息分别对应的各个第二密钥是否一致,以及
加密单元,配置为,在各个所述第二密钥一致的情况中,在所述第二可信执行环境中使用所述第二密钥对所述计算结果进行加密,以获取加密计算结果。
在一个实施例中,所述装置还包括第三发送单元,配置为,在获取加密计算结果之后,将所述加密计算结果发送给所述计算结果使用方。
在一个实施例中,所述获取单元还配置为,从所述数据管理方读取与该份授权信息对应的加密数据。
本说明书另一方面提供一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现上述任一项方法。
在根据本说明书实施例的数据处理方案中,利用TEE、RA技术搭建了数据提供方可信赖的数据授权系统,可以保证数据的隐私性,多方数据的合规使用;在设计上达成 了可以针对数据使用行为授权、可选择性地对数数据融合的输出结果进行访问控制两个特性,以满足实际多方数据融合的通用入口、出口权限控制;数据授权系统作为中间层,为数据提供方和数据使用方解耦,数据提供方无需部署数据提供服务来实时配合融合业务传输数据,提升易用性。
通过结合附图描述本说明书实施例,可以使得本说明书实施例更加清楚:
图1示出根据本说明书实施例的数据处理系统100的示意图;
图2示出根据本说明书实施例的一种数据处理方法流程图;
图3示意示出由数据提供方安全传输至第一TEE的信息;
图4示出根据本说明书实施例的一种数据处理方法流程图;
图5示出根据本说明书实施例的一种数据处理方法流程图;
图6示意示出在数据管理方中存储的数据;
图7示出根据本说明书实施例的一种数据处理方法流程图;
图8示出根据本说明书实施例的一种数据处理方法流程图;
图9示出根据本说明书实施例的一种数据处理方法流程图;
图10示出根据本说明书实施例的数据处理方法中数据提供方、数据管理方、数据使用方之间的交互图;
图11示出根据本说明书实施例的一种数据处理装置1100;
图12示出根据本说明书实施例的一种数据处理装置1200;
图13示出根据本说明书实施例的一种数据处理装置1300;
图14示出根据本说明书实施例的一种数据处理装置1400;
图15示出根据本说明书实施例的一种数据处理装置1500;
图16示出根据本说明书实施例的一种数据处理装置1600。
下面将结合附图描述本说明书实施例。
图1示出根据本说明书实施例的数据处理系统100的示意图。如图1所示,系统100包括数据提供方11、数据提供方12、数据管理方13、数据使用方14以及结果使用方15。其中数据提供方11/12例如为银行、税务局、房产局等拥有原始数据的一方;数据管理方13相当于数据托管平台,包括第一可信执行环境(TEE)131和存储模块132,可由数据提供方将数据及其授权信息预先上传至数据管理方,以进行数据的使用授权,从而使得数据提供方不需在数据使用时实时在线;数据使用方14例如为信用评估机构、贷款机构、保险公司等服务提供商,其包括第二TEE141;结果使用方15例如为数据使用方14的服务对象,如企业、个人等。数据提供方11可在验证第一TEE之后,将本地拥有的明文数据X的加密数据X上传至数据管理方13的存储模块132,并将相应的用于解密的第一密钥和授权信息安全传输至数据管理方13的第一TEE131,以由第一TEE进行对该明文数据X的使用授权管理。数据提供方12可以与数据提供方11类似地将其本地的明文数据Y的加密数据Y上传给存储模块132,并将相应的第一密钥和授权信息安全传输至第一TEE131。例如在数据使用方14向数据管理方13请求使用明文数据X时,第一TEE可根据与明文数据X对应的授权信息对第二TEE141进行验证,并在验证通过之后,将相应的第一密钥安全传输至第二TEE,并将加密数据X提供给数据使用方,以授权数据使用方14使用该明文数据X,例如在第二TEE141中基于该明文数据X进行模型计算。数据使用方14可通过与上述类似地方法从数据管理方13获取明文数据Y。数据使用方14在例如基于明文数据X和明文数据Y获取计算结果之后,可基于第一TEE安全传输至第二TEE的计算结果密钥对该计算结果进行加密,并将加密的计算结果发送给提供所述计算结果密钥的结果使用方15。
图1及上述描述只是对本说明书实施例的简单概述,并不限定本说明书实施例的范围,例如,在系统100中不限于包括两个数据提供方,可包括一个数据提供方,也可包括多个数据提供方,其都与上述类似地将其本地的数据托管给数据管理方13。
图2示出根据本说明书实施例的一种数据处理方法流程图,所述方法在数据提供方执行,所述数据提供方拥有第一明文数据,所述方法包括:
在步骤S202,获取所述第一明文数据的第一加密数据、用于解密所述第一加密数据的第一密钥、以及关于所述第一明文数据的授权信息;
在步骤S204,向数据管理方发送验证请求,其中,所述数据管理方包括第一可信执行环境;
在步骤S206,从所述数据管理方接收认证信息,并基于所述认证信息进行验证,其中,所述认证信息由所述第一可信执行环境生成;以及
在步骤S208,在验证通过的情况中,将所述第一密钥和所述授权信息安全传输至所述第一可信执行环境;以及
在步骤S210,将所述第一加密数据提供给所述数据管理方。
首先,在步骤S202,获取所述第一明文数据的第一加密数据、用于解密所述第一加密数据的第一密钥、以及关于所述第一明文数据的授权信息。
所述第一加密数据可通过对第一明文数据进行对称加密或非对称加密获取。在对称加密的情况中,所述第一密钥即为用于加密所述第一明文数据的密钥,在非对称加密的情况中,所述第一密钥为与用于加密所述第一明文数据的密钥不同的另一密钥。可以理解,本文中的“第一”,“第二”等描述,仅仅为了描述的简单而对相似概念进行区分,并不具有其他限定作用。
在一个实施例中,关于第一明文数据的授权信息包括可使用该第一明文数据的至少一个程序各自的代码哈希值。所述代码哈希值可以为程序的全部代码的哈希值,也可以为程序在已知执行点的内存占有的哈希值。该至少一个程序即为数据提供者允许使用该第一明文数据的至少一个程序。例如,在授权信息包括多个代码哈希值的情况中,表示该第一明文数据可用于多个程序的计算。例如,该第一明文数据为个人在预定时段内的交易数据,该交易数据可用于个人信用评估的第一程序的计算、个人消费倾向的第二程序的计算、特定人群消费水平的第三程序的计算等,则数据提供者(如银行)可在与该交易数据对应的授权信息中包括第一程序、第二程序和第三程序的代码哈希值,以用于分别对第一程序、第二程序和第三程序的授权。
在一个实施例中,关于第一明文数据的授权信息还可以包括与各个代码哈希值分别对应的计算结果访问权限信息。在一个实施例中,所述访问权限信息为第二密钥,该第二密钥由计算结果使用方提供,用于对通过与相应的代码哈希值对应的程序获取的计算结果进行加密。通常,该对计算结果的加密为非对称加密,即,第二密钥是计算结果使用方的公钥,而在对该加密的计算结果解密时,需要用计算结果使用方的私钥进行解密。可以理解,该对计算结果的加密也可以为对称加密。例如,在上述授权信息中,还 包括与第一程序的哈希值对应的第二密钥,该第二密钥例如为贷款机构服务对象(如企业或个人)的公钥,由该企业或个人预先传输给银行(数据提供者),在通过第一程序基于该第一明文数据获取相应的计算结果之后,数据使用者(如贷款机构)将使用该公钥对该计算结果进行加密,而所述企业或个人在获取该加密的计算结果之后,将使用其私钥进行解密,从而获取明文的计算结果。可以理解,在所述授权信息中并不是对于任一代码哈希值都包括相应的第二密钥。例如,在上述第三程序的情况中,其基于第一明文数据的计算结果是特定人群的消费水平,该结果并不涉及个人隐私,因此不需要对该计算结果进行加密,因此在授权信息中可不包括与第三程序的代码哈希值对应的第二密钥,即,所述访问权限信息为空信息。
可以理解,所述授权信息不限于包括所述代码哈希值和所述第二密钥,例如,所述授权信息可以包括可使用所述第一明文数据的程序的代码签名、基于预定加密算法的加密数据等等。
在步骤S204,向数据管理方发送验证请求,其中,所述数据管理方包括第一可信执行环境。
在一个实施例中,数据管理方包括授权模块,用于进行对数据使用方的数据使用授权。其中,授权模块为第一可信执行环境,其例如为通过SGX、Trust Zone等技术生成的可信执行环境(TEE,Trusted Execution Environment)。所述验证请求例如用于请求验证该第一TEE是否为可信执行环境、其中是否安装、并正在运行用于进行数据使用授权的程序等等。数据提供方可向第一TEE直接发送验证请求,或者可向数据管理方平台发送验证请求,并由所述平台将验证请求转发给第一TEE。
在步骤S206,从所述数据管理方接收认证信息,并基于所述认证信息进行验证,其中,所述认证信息由所述第一可信执行环境生成。
第一TEE在接收所述验证请求之后,基于其内部机制生成认证信息,并将该认证信息发送给数据提供者以供其验证。所述认证信息例如包括所述第一TEE的签名信息、硬件信息和软件信息等。其中,所述签名信息例如通过第一TEE的硬件密钥生成;所述硬件信息例如包括,各种硬件的指标,比如CPU主频,内存容量等等;所述软件信息包括各个程序的代码哈希值、代码名称、版本、运行日志等。如本领域技术人员所知,TEE可通过内存硬件执行对其中运行程序的“测量”,例如获取该程序的代码哈希值、该程序在特定执行点的内存占有的哈希值等等,并在所述认证信息中包括对所述程序的“测量”信息,由于该“测量”信息由该第一TEE自身实体(内存硬件)执行,而不 涉及任何软件、操作系统,因此是真实可信的。可以理解,所述认证信息不限于如上所述,例如,所述认证信息不必需包括签名信息、软件信息等,而可以只包括软件信息,以供数据提供方进行对第一TEE中运行程序的验证。
数据提供者在从第一TEE接收认证信息之后,可以基于所述认证信息验证所述第一TEE是否为可信执行环境,例如通过预先获取的第一TEE的硬件公钥验证所述签名信息是否为所述第一TEE的签名信息、验证所述第一TEE的硬件配置是否与预先获取的配置相符等等。第一TEE还可以将认证信息中包括的第一TEE对其中运行程序的“测量”信息与预先获取的用于进行数据使用授权的程序的代码哈希值相比较以进行验证,以确定第一TEE中是否安装并正在运行用于进行数据使用授权的程序。所述代码哈希值例如从由程序发布者提供的代码签名获取,或者从开源的所述程序计算获取。
在本说明书实施例中,基于认证信息的验证过程不限于如上所述,例如,所述认证信息中可能不包括第一TEE的硬件信息、签名信息等,相应地,数据提供方可通过为第一TEE提供技术支持的第三方服务器(如为围圈(Enclave)提供验证服务的Intel服务器)验证第一TEE的签名信息、硬件配置等。
可以理解,对于基于不同技术获取的TEE,其提供的认证信息的具体内容、形式等会有一些差别,然而,其提供的认证都可使得数据使用者能够进行相应的验证,以确定该TEE是否为安全执行环境,和/或确定其中运行的程序是否是预期程序。另外,所述认证信息不限于由第一TEE发送给数据提供方,也可由数据管理方中其它模块从第一TEE获取所述认证信息并发送给数据提供方。
在步骤S208,在验证通过的情况中,将所述第一密钥和所述授权信息安全传输至所述第一可信执行环境。
在通过上述验证确定第一TEE是可信执行环境,并且其可提供数据使用授权服务之后,数据提供者可将自己拥有的数据交给该数据管理方进行托管。具体是,首先,数据提供者将第一密钥和相应的授权信息安全传输至第一TEE。所述安全传输例如为加密传输,通过在传输之前对待传输的数据进行加密,并在传输到接收方之后进行解密以使得接收方获取明文数据,保障了在传输过程中不会被恶意的第三方窃取明文数据,保障了数据传输的安全性。可以理解所述安全传输不限于加密传输,而可以采用本领域技术人员可获取的任意保障数据安全性的传输方式,如通过量子通信的安全传输方式等等。
图3示意示出由数据提供方安全传输至第一TEE的信息A的示意图。如图中所示, 由数据提供方安全传输至第一TEE的信息A与上述第一明文数据相对应,包括第一密钥A和授权信息A,其中授权信息A如图中“第一密钥A”下方的黑框所示包括:对应的第一代码哈希值和第二密钥C、对应的第二代码哈希值和第二密钥D、以及第三代码哈希值。其中,第一密钥用于对第一加密数据进行解密以获取第一明文数据。第一代码哈希值、第二代码哈希值和第三代码哈希值例如分别为上述第一程序、第二程序和第三程序的代码哈希值。第二密钥C例如为第一结果使用方C的公钥,即,第一程序基于第一明文数据的计算结果只授权给第一结果使用方C使用。类似地,第二密钥D例如为第二结果使用方D的公钥,即,第二程序基于第一明文数据的计算结果只授权给第二结果使用方D使用。而在上述信息A中并没有与第三代码哈希值对应的公钥,也就是说,第三程序基于第一明文数据的计算结果不涉及隐私数据,不需要进行加密。可以理解,所述授权信息中不限于包括各个所述程序的代码哈希值,而是根据授权的方式不同可包括不同的信息,例如,所述授权信息中可包括各个所述程序的代码签名、加密数据等等。另外,所述第二密钥C/D不限于为相应结果使用方的公钥,在对计算结果的加密方式为对称加密的情况中,所述第二密钥C/D也可以用于对加密计算结果的解密。其中,第二密钥中的“第二”用于与本文中的“第一密钥”相区分。
在步骤S210,将所述第一加密数据提供给所述数据管理方。
在一个实施例中,由数据提供方将存储在本地的第一加密数据发送给数据管理方。在一个实施例中,由数据管理方从数据提供方读取所述第一加密数据。例如,在第一明文数据为例如银行提供的个人交易数据的情况中,数据管理方例如可以基于个人身份标识(例如身份证号码等)、数据标识等读取与该个人相关的第一加密数据。在一个实施例中,由数据提供方将存储第一加密数据的网盘地址发送给数据管理方以使其获取所述第一加密数据。
图4示出根据本说明书实施例的一种数据处理方法流程图,所述方法在数据提供方执行,所述数据提供方拥有第一明文数据,所述方法包括:
在步骤S402,获取关于所述第一明文数据的授权信息;
在步骤S404,向数据管理方发送验证请求,其中,所述数据管理方包括第一可信执行环境;
在步骤S406,从所述数据管理方接收认证信息,并基于所述认证信息进行验证,其中,所述认证信息由所述第一可信执行环境生成;以及
在步骤S408,在验证通过的情况中,将所述第一明文数据和所述授权信息安全传输至所述第一可信执行环境。
图4所示方法与图2所示方法不同在于,数据提供方未对第一明文数据进行加密,因此,在步骤S402,仅获取关于所述第一明文数据的授权信息,而没有获取第一明文数据的加密数据以及第一密钥。数据提供方在如上文所述对第一TEE进行验证之后,在步骤S408,直接将第一明文数据和相关的授权信息一起安全传输至第一TEE,即,不需要对第一明文数据进行加密以获取加密数据(也从而不需数据管理方的存储模块),并且不需要分别提供加密数据、安全传输加密数据的解密密钥。由于第一TEE的安全机制,第一明文数据以明文数据的形式存储与第一TEE中是安全的,而通过安全传输的方式传输第一明文数据,在传输过程中也不会泄露第一明文数据。因此,通过该方式也可以安全地进行对第一明文数据的托管。
图5示出根据本说明书实施例的一种数据处理方法流程图,所述方法在数据管理方执行,所述数据管理方包括第一可信执行环境、并且存储有至少一份加密数据,其中,在所述第一可信执行环境中存储有至少一个第一密钥和与所述至少一个第一密钥分别对应的至少一份授权信息,其中,所述至少一个第一密钥用于分别解密所述至少一份加密数据以分别获取至少一份明文数据,所述至少一份授权信息与所述至少一份明文数据分别对应,且所述授权信息为关于被允许使用相应的明文数据的至少一个程序的信息,所述方法包括:
在步骤S502,接收数据使用方的数据请求,所述数据请求用于请求使用所述至少一份明文数据,其中,所述数据使用方包括第二可信执行环境;
在步骤S504,从所述数据使用方接收认证信息,所述认证信息由所述第二可信执行环境生成;
在步骤S506,在所述第一可信执行环境中,对于每份所述授权信息,基于所述认证信息和该份授权信息进行验证;以及
对于每份所述授权信息,
在步骤S508,在验证通过情况下,由第一可信执行环境将与该份授权信息对应的第一密钥安全传输给第二可信执行环境;以及
在步骤S510,将相应的加密数据提供给所述数据使用方。
图6示出数据管理方的存储模块和第一TEE中存储的数据的示意图。如图6所示, 存储模块中存储有加密数据X和加密数据Y,其中,加密数据X例如由数据提供方A向数据管理方预先上传,其对应于明文数据X,加密数据Y例如由数据提供方B向数据管理方预先上传,其对应于明文数据Y。可以理解,所述加密数据X/Y不限于存储于存储模块中,例如,加密数据X/Y可存储于第一TEE中、或者可存储于云盘中等等。
第一TEE中存储有信息A和信息B,其中信息A与加密数据X相关,其中包括第一密钥A和授权信息A,信息B与加密数据Y相关,其中包括第一密钥B和授权信息B。其中,第一密钥A用于对明文数据X进行加密和解密,授权信息A为关于明文数据X的授权信息,第二密钥B用于对明文数据Y进行加密和解密,授权信息B为关于明文数据Y的授权信息。其中,授权信息A的示例内容可参考图3所示。图6中虽然只示意示出了两份加密数据和与其分别对应的两份信息,然而,第一TEE中不限于只存储两份信息,而是可以存储与多份加密数据分别对应的多份信息。另外,图6中的信息A和信息B分别对应于不同的数据提供方,本说明书实施例不限于此,信息A和信息B可对应于一个数据提供方,即,数据提供方A与数据提供方B可以为一个数据提供方,也就是说,明文数据X和明文数据Y可由一个数据提供方提供。在上述描述中,加密数据X表示该加密数据是通过对明文数据X进行加密所获取的数据,加密数据Y可同样地解释,信息A、第一密钥A和授权信息A表示其都与数据提供方A相关,信息B、第一密钥B和授权信息B可同样地解释。
下面详细描述图5中的各个步骤。
首先,在步骤S502,接收数据使用方的数据请求,所述数据请求用于请求使用所述至少一份明文数据,其中,所述数据使用方包括第二可信执行环境。
数据使用方例如为信用评估机构,其在对用户进行信用评估时,可向数据管理方请求与该用户相关的例如两份数据,该两份数据例如分别由银行和税务部门向数据管理方预先提供。数据使用方例如可以基于用户身份标识(例如身份证号码等)、数据提供方标识、数据标识等获取与该用户相关的数据。所述数据使用方例如还可以为云计算平台,其例如接收信用评估机构的委托通过模型对用户的信用评估进行计算。
数据使用方包括第二可信执行环境(即第二TEE),在该第二TEE中运行有预定程序(例如第一程序),以用于基于上述明文数据X和明文数据Y进行例如F(X,Y)的计算,从而通过第二TEE的安全机制,在计算过程中不会对外泄露明文数据X和明文数据Y。在一个实施例中,第二TEE与第一TEE位于一个平台中,例如,在支付宝平台中,可同时进行数据的托管、以及对用户进行信用评估,即所述支付宝平台既是数 据管理方,也是数据使用方。在该情况中,由于相关的数据使用授权、数据使用都是在第一TEE和第二TEE中进行,即通过硬件对数据隐私进行保护,从而即使数据管理方与数据使用方为同一方,也不影响数据的安全性。在第一TEE和第二TEE在一个平台的情况中,可由第二TEE向第一TEE发送数据使用请求。可以理解,在该情况中,也可以由第二TEE向数据管理方发送数据使用请求、或者由数据使用方向数据管理方或第一TEE发送数据使用请求。
在一个实施例中,第一TEE与第二TEE位于不同的平台中,例如支付宝平台为数据管理方,其包括第一TEE,而云计算平台为数据使用方,云计算平台中包括第二TEE。在第一TEE和第二TEE在不同平台的情况中,可由数据使用方平台向数据管理方平台发送数据使用请求。类似地,也可以由数据使用方平台向第一TEE发送数据使用请求,或者也可由第二TEE向数据管理方平台或第一TEE发送数据使用请求。
数据使用方向数据管理方发送请求,以请求获取数据管理方中的至少一份加密数据对应的至少一份明文数据,即请求获取所述至少一份加密数据及相应的解密密钥(第一密钥)。
在步骤S504,从所述数据使用方接收认证信息,所述认证信息由所述第二可信执行环境生成。
数据使用方可在发送数据请求之后将第二TEE生成的认证信息发送给数据管理方,也可以在数据管理方向数据使用方发送验证请求之后,将由第二TEE生成的认证信息发送给数据管理方。
第二TEE基于内部机制生成认证信息,以供数据管理方进行验证。所述认证信息例如包括所述第二TEE的签名信息、硬件信息和软件信息等。其中,所述签名信息例如通过第二TEE的硬件密钥生成;所述硬件信息例如包括,各种硬件的指标,比如CPU主频,内存容量等等;所述软件信息包括各个程序的代码哈希值、代码名称、版本运行日志等。如本领域技术人员可知,TEE可通过内存硬件执行对其中运行程序的“测量”,例如获取该程序的代码哈希值、该程序在特定执行点的内存占有的哈希值等等,从而在所述认证信息中包括对所述程序的“测量”信息(例如,代码哈希值),由于该“测量”信息由该TEE自身实体(内存硬件)执行,而不涉及任何软件、操作系统,因此是真实可信的。可以理解,所述认证信息不限于如上所述,例如,所述认证信息不必需包括签名信息、软件信息等,而可以只包括软件信息,以供第一TEE进行对第二TEE中运行程序的验证。
在一个实施例中,第一TEE与第二TEE位于一个平台中,所述认证信息为平台内(Intra-Platform)认证信息,例如,在SGX技术中,生成文件“REPORT”作为所述平台内认证信息。在一个实施例中,第一TEE与第二TEE位于不同平台中,所述认证信息为平台间(Inter-Platform)认证信息。例如,在SGX技术中,TEE生成文件“QUOTE”作为所述平台间认证信息,以用于进行远程认证(RA,remote attestation)。平台内认证信息和平台间认证信息可具有不同的文件格式,加密方式等。例如,所述平台内认证信息(如REPROT)可采用对称加密方式,所述平台间认证信息(如QUOTE)可采用非对称加密方式等。在一个实施例中,所述认证信息中包括与第二TEE中的运行程序(如第一程序)相关的信息,为了不泄露运行程序中的模型数据(如参数、算法等),由第二TEE向第一TEE安全传输该认证信息。在计算模型不需要进行保护的情况中,也可由第二TEE或数据使用方向数据管理方发送所述认证信息,并且数据管理方在接收所述认证信息之后将所述认证信息发送给第一TEE。
在步骤S506,在所述第一可信执行环境中,对于每份所述授权信息,基于所述认证信息和该份授权信息进行验证;
第一TEE在获取所述认证信息之后,在其内部通过基于该认证信息和数据使用方请求的至少一份数据各自对应的授权信息进行验证。例如,参考图6,数据使用方请求使用明文数据X和明文数据Y,第一TEE中与明文数据X对应的信息A中的授权信息例如包括可使用明文数据X的各个程序各自的代码哈希值,与明文数据Y对应的信息B中的授权信息例如包括可使用明文数据Y的各个程序各自的代码哈希值。第一TEE需要基于认证信息、信息A和信息B进行验证。第一TEE可以基于所述认证信息验证所述第二TEE是否为可信执行环境,例如通过预先获取的第二TEE的硬件公钥验证所述签名信息是否为所述第二TEE的签名信息、验证所述第二TEE的硬件配置是否与预先获取的配置相符等等。第一TEE还可以基于所述认证信息中包括的第二TEE中运行程序的“测量”哈希值,验证该“测量”哈希值是否与所述信息A中包括的多个代码哈希值中的一个匹配,以确定所述第二TEE中运行的程序是否是可以授权使用所述明文数据X的程序。类似地,验证该“测量”哈希值是否与所述信息B中包括的多个代码哈希值中的一个匹配。其中,针对各份授权信息的验证可以先后进行、也可以并行进行,本申请对此并不限制。
如上文所述,所述授权信息中不限于包括各个程序的代码哈希值,例如还可以包括各个程序的代码签名、代码加密数据等。例如,在授权信息中为代码签名的情况中, 第一TEE可基于代码签名和预先从例如数据提供方获取的相应代码的公钥,获取相应的代码哈希值,以用于上述验证。
在本说明书实施例中,基于认证信息的验证过程不限于如上所述,例如,所述认证信息中可能不包括第二TEE的硬件信息、签名信息等,相应地,数据管理方可通过为第二TEE提供技术支持的第三方服务器(如为围圈(Enclave)提供验证服务的Intel服务器)验证第二TEE的签名信息、硬件配置等。
可以理解,对于基于不同技术获取的TEE,其提供的认证信息的具体内容、形式等会有一些差别,然而,其提供的认证信息都可使得数据使用者能够进行相应的验证,以确定该TEE是否为安全执行环境,和/或确定其中运行的程序是否是可授权的程序。
步骤508-步骤510是针对数据使用方请求的至少一份明文数据对应的每份授权信息执行的步骤,对于每份授权信息,可依次地、或并行地执行步骤508-步骤510。在下面的描述中,描述了针对一份授权信息(例如如图6中所示的授权信息A)执行步骤508-510作为示例。本领域技术人员可以理解,对于所述至少一份授权信息中的其它授权信息,可同样地执行步骤508-510。
在步骤S508,在验证通过的情况中,由第一可信执行环境将与该份授权信息对应的第一密钥安全传输给所述第二可信执行环境。
例如参考图6所示,在基于信息A和认证信息的验证通过之后,也就是说在第一TEE中验证第二TEE是可信执行环境,并且第二TEE中的运行程序的测量代码哈希值是明文数据X对应的授权代码哈希值之后,第一TEE可将第一密钥A安全传输给第二TEE。
在步骤S510,将相应的加密数据提供给所述数据使用方。
在一个实施例中,数据管理方在如上所述将第一密钥A安全传输给数据使用方之后,将其存储模块中存储的加密数据X发送给第二TEE。在一个实施例中,由数据使用方从数据管理方的存储模块中读取加密数据X。例如,在明文数据X为例如银行提供的个人交易数据的情况中,数据使用方例如可以基于个人身份标识(例如身份证号码等)、数据提供方标识(如银行标识)、数据标识等读取与该个人相关的加密数据X。
在一个实施例中,在所述加密数据X由数据管理方存入云盘中的情况中,数据管理方可将加密数据X的下载地址提供给数据使用方,以供其下载。
在一个实施例中,如图3所示,信息A中包括的授权信息A中还可能包括与部分 哈希代码值分别对应的结果使用方的第二密钥。例如,授权信息A中包括与第一代码哈希值对应的第二密钥C。在该情况中,在基于授权信息A的验证通过之后,第一TEE还将第二密钥C安全传输给第二TEE,以用于对计算结果进行加密。
图7示出根据本说明书实施例的一种数据处理方法流程图,所述方法在数据管理方执行,所述数据管理方包括第一可信执行环境,其中,在所述第一可信执行环境中存储有至少一份明文数据、以及与所述至少一份明文数据分别对应的至少一份授权信息,其中,所述授权信息为关于被允许使用相应的明文数据的至少一个程序的信息,所述方法包括:
在步骤S702,接收数据使用方的数据请求,所述数据请求用于请求使用所述至少一份明文数据,其中,所述数据使用方包括第二可信执行环境;
在步骤S704,从所述数据使用方接收认证信息,其中,所述认证信息由所述第二可信执行环境生成;
在步骤S706,在所述第一可信执行环境中,对于每份所述授权信息,基于所述认证信息和该份授权信息进行验证;以及
在步骤S708,对于每份所述授权信息,在验证通过的情况中,由第一可信执行环境将所述至少一份明文数据安全传输给所述第二可信执行环境。
图7所示方法与图4所示方法相对应,通过图4所示的方法,使得在所述第一可信执行环境中存储有至少一份明文数据、以及与所述至少一份明文数据分别对应的至少一份授权信息。图7所示方法与图5所示方法不同在于,在验证通过之后,由第一TEE向第二TEE安全传输所述至少一份明文数据,而不需要由数据管理方将至少一份加密数据传输给第二TEE,并由第一TEE向第二TEE安全传输与至少一份加密数据分别对应的第一密钥(解密密钥)。由于,所述至少一份明文数据在第一TEE中、在安全传输过程中、以及在第二TEE中都可以得到很好的保护,因此可保障该方法的安全性。
图8示出根据本说明书实施例的一种数据处理方法流程图,所述方法在数据使用方执行,所述数据使用方包括第二可信执行环境,所述第二可信执行环境中运行有第一程序,所述方法包括:
在步骤S802,向数据管理方发送数据请求,用于请求使用与数据管理方中存储的至少一份加密数据对应的至少一份明文数据,其中,所述数据管理方包括第一可信执行环境,在所述第一可信执行环境中存储有至少一个第一密钥和与所述至少一个第一密钥 分别对应的至少一份授权信息,其中,所述至少一个第一密钥用于分别解密所述至少一份加密数据以分别获取所述至少一份明文数据,所述至少一份授权信息与所述至少一份明文数据分别对应,且所述授权信息为关于被允许使用相应的明文数据的至少一个程序的信息;
在步骤S804,向所述数据管理方发送认证信息,以使得所述第一可信执行环境对于每份所述授权信息基于所述认证信息和该份授权信息进行验证,其中,所述认证信息由所述第二可信执行环境生成;
对于每份所述授权信息,
在步骤S806,在验证通过的情况中,由所述第二可信执行环境接收从所述第一可信执行环境安全传输的与该份授权信息对应的第一密钥;
在步骤S808,从所述数据管理方获取与该份授权信息对应的加密数据;
在步骤S810,在所述第二可信执行环境中使用该第一密钥对该加密数据进行解密,以获取相应的明文数据;以及
在步骤S812,在所述第二可信执行环境中通过所述第一程序基于所述至少一份明文数据进行计算,以获取计算结果。
图8所示方法是在数据使用方执行的与图5所示方法相对的方法,数据使用方中包括第二TEE,第二TEE中例如运行有第一程序,第二程序在使用数据进行计算之前,首先从数据管理方请求相应的数据,然后在基于该相应的数据进行模型计算。因此步骤S802-S810的具体描述可参考上文中对步骤S502-S508的相应描述,在此不再赘述。
在步骤S810,在所述第二可信执行环境中使用该第一密钥对该加密数据进行解密,以获取相应的明文数据。例如,第二TEE在如上文所述获取图6所示的第一密钥A、并且从数据管理方的存储模块读取了加密数据X之后,在第二TEE中,可使用第一密钥A对加密数据X进行解密,从而获取明文数据X。类似地,通过使用从数据管理方获取的第二密钥B对第二加密数据Y解密,从而可获取明文数据Y。
在步骤S812,在所述第二可信执行环境中通过所述第一程序基于所述至少一份明文数据进行计算,以获取计算结果。所述程序例如基于数据X和数据Y进行F(X,Y)的计算,其中F(X,Y)对应于特定计算模型,通过在第二TEE中运行所述第一程序,使用F(X,Y)基于X和Y进行计算,从而获取计算结果。
在一个实施例中,如上文所述,对于每份授权信息,在验证通过之后,所述第一TEE还向第二TEE安全传输与代码哈希值对应的用于加密计算结果的密钥,如图3所示的第二密钥C。所述第一程序例如具有第一代码哈希值,其中,所述数据使用者请求的至少一份明文数据对应的每份授权信息中例如包括第一代码哈希值、及与所述第一代码哈希值对应的第二密钥(例如第二密钥C),所述第二密钥用于对所述第一程序的计算结果进行加密、由与该计算结果对应的计算结果使用方提供。所述方法还包括,对于每份所述授权信息,在验证通过的情况中,由所述第二可信执行环境接收从所述第一可信执行环境安全传输的与该授权信息对应的第二密钥;在获取所述计算结果之后,在所述第二可信执行环境中确定与各份所述授权信息分别对应的各个第二密钥是否一致,例如,确定从第一TEE接收的对应于加密数据X的第二密钥与对应于加密数据Y的第二密钥是否一致;以及,在各个所述第二密钥一致的情况中,在所述第二可信执行环境中使用所述第二密钥对所述计算结果进行加密,以获取加密计算结果,即,在所述第二密钥都是第二密钥C的情况中,使用第二密钥C对计算结果进行加密。可以理解,在上述情况中,第二密钥可以为非对称加密的加密密钥,即公钥,当将该加密的计算结果发送给结果使用方C之后,结果使用方C将使用其私钥C对该加密的计算结果进行解密。然而,本实施例不限于此,例如,所述第二密钥可以为对称加密的密钥,即,结果使用方C在解密时也使用该第二密钥进行解密。
在获取加密的计算结果之后,可由第二TEE或数据使用方平台将该加密的计算结果发送给相应的结果使用方,或者可由相应的结果使用方从所述平台读取所述加密的计算结果。
图9示出根据本说明书实施例的一种数据处理方法流程图,所述方法在数据使用方执行,所述数据使用方包括第二可信执行环境,所述方法包括:
在步骤S902,向数据管理方发送数据请求,用于请求使用数据管理方中存储的至少一份明文数据,其中,所述数据管理方包括第一可信执行环境,在所述第一可信执行环境中存储有所述至少一份明文数据和与所述至少一份明文数据分别对应的至少一份授权信息,其中,所述授权信息为关于被允许使用相应的明文数据的至少一个程序的信息;
在步骤S904,向所述数据管理方发送认证信息,以使得所述第一可信执行环境对于每份所述授权信息基于所述认证信息和该份授权信息进行验证,其中,所述认证信息由所述第二可信执行环境生成;
在步骤S906,对于每份所述授权信息,在验证通过的情况中,由所述第二可信执行环境接收从所述第一可信执行环境安全传输的与该份授权信息对应的明文数据;以及
在步骤S908,在所述第二可信执行环境中通过所述第一程序基于所述至少一份明文数据进行计算,以获取计算结果。
图9所示方法与图7所示方法相对,其与图8所示方法不同在于,在步骤S906,在验证通过的情况中,接收从所述第一可信执行环境安全传输的所述至少一份明文数据,即不是分开获取加密数据和相应的解密密钥,从而不需要解密的步骤,从而可以在步骤S908,直接通过所述第一程序基于所述至少一份明文数据进行计算,获取计算结果。
图10示出根据本说明书实施例的数据处理方法中数据提供方、数据管理方、数据使用方之间的交互图。该三方交互中包括两个阶段,第一阶段为数据提供方与数据管理方之间的交互,包括:在步骤1001,数据提供方获取第一明文数据的第一加密数据、用于解密第一加密数据的第一密钥、以及关于第一明文数据的授权信息;在步骤1002,数据提供方向数据管理方发送验证请求;在步骤1003,数据管理方在接收验证请求之后向数据提供方发送认证信息,其中,所述认证信息由所述第一可信执行环境生成;在步骤1004,数据管理方基于认证信息进行验证;以及在步骤1005,在验证通过之后,数据管理方将所述第一密钥和授权信息安全传输至第一TEE,将第一加密数据提供给数据管理方。通过上述步骤,数据提供方可将己方的数据托管给数据管理方,以通过数据管理方进行对第三方使用第一明文数据的授权,从而不需要在数据使用过程中实时在线。
第二阶段为数据管理方与数据使用方之间的交互,包括以下步骤:在步骤1006,数据使用方向数据管理方发送数据请求,以请求使用所述数据管理方中的至少一份明文数据;在步骤1007,数据使用方向数据管理方发送认证信息,所述认证信息由数据使用方中的第二TEE生成;在步骤1008,在数据管理方的第一TEE中基于所述认证信息和第一TEE中已有的相关授权信息进行验证;在步骤1009,对于每份授权信息,在验证通过之后,由第一可信执行环境将与该份授权信息对应的第一密钥安全传输给所述第二可信执行环境,并且,数据管理方向数据使用方提供相应的加密数据;在步骤1010,对于每份授权信息,数据使用方在第二TEE中使用相应的密钥对相应的加密数据进行解密,获取相应的明文数据;在步骤1011,数据使用方在第二TEE中基于所述至少一份明文数据进行模型计算,从而获取计算结果;以及在步骤1012,数据使用方在第二TEE中使用授权信息中包括的第二密钥对计算结果加密。在获取加密的计算结果之后,数据使用方可将该加密结果发送给结果使用方,或者也可以由结果使用方主动从数据使用方 读取所述加密结果。
图11示出根据本说明书实施例的一种数据处理装置1100,所述装置在数据提供方实施,所述数据提供方拥有第一明文数据,所述装置包括:
获取单元111,配置为,获取所述第一明文数据的第一加密数据、用于解密所述第一加密数据的第一密钥、以及关于所述第一明文数据的授权信息;
发送单元112,配置为,向数据管理方发送验证请求,其中,所述数据管理方包括第一可信执行环境;
验证单元113,配置为,从所述数据管理方接收认证信息,并基于所述认证信息进行验证,其中,所述认证信息由所述第一可信执行环境生成;
安全传输单元114,配置为,在验证通过的情况中,将所述第一密钥和所述授权信息安全传输至所述第一可信执行环境;以及
提供单元115,配置为,将所述第一加密数据提供给所述数据管理方。
在一个实施例中,所述验证单元113还配置为,基于所述认证信息验证:所述第一可信执行环境中是否安装有并正在执行用于数据使用授权的程序。
图12示出根据本说明书实施例的一种数据处理装置1200,所述装置在数据提供方实施,所述数据提供方拥有第一明文数据,所述装置包括:
获取单元121,配置为,获取关于所述第一明文数据的授权信息;
发送单元122,配置为,向数据管理方发送验证请求,其中,所述数据管理方包括第一可信执行环境;
验证单元123,配置为,从所述数据管理方接收认证信息,并基于所述认证信息进行验证,其中,所述认证信息由所述第一可信执行环境生成;以及
安全传输单元124,配置为,在验证通过的情况中,将所述第一明文数据和所述授权信息安全传输至所述第一可信执行环境。
图13示出根据本说明书实施例的一种数据处理装置1300,所述装置在数据管理方实施,所述数据管理方包括第一可信执行环境、并且存储有至少一份加密数据,其中,在所述第一可信执行环境中存储有至少一个第一密钥和与所述至少一个第一密钥分别对应的至少一份授权信息,其中,所述至少一个第一密钥用于分别解密所述至少一份加密数据以分别获取至少一份明文数据,所述至少一份授权信息与所述至少一份明文数据 分别对应,且所述授权信息为关于被允许使用相应的明文数据的至少一个程序的信息,所述装置包括:
第一接收单元1301,配置为,接收数据使用方的数据请求,所述数据请求用于请求使用所述至少一份明文数据,其中,所述数据使用方包括第二可信执行环境;
第二接收单元1302,配置为,从所述数据使用方接收认证信息,所述认证信息由所述第二可信执行环境生成;
验证单元1303,配置为,在所述第一可信执行环境中,对于每份所述授权信息,基于所述认证信息和该份授权信息进行验证;以及
针对每份授权信息的第一安全传输单元1304,配置为,在验证通过的情况中,由第一可信执行环境将与该份授权信息对应的第一密钥安全传输给所述第二可信执行环境;以及
提供单元1350,配置为,将相应的加密数据提供给所述数据使用方。
在一个实施例中,所述验证单元1303还配置为,由所述第一可信执行环境接收从所述第二可信执行环境安全传输的认证信息。
在一个实施例中,所述认证信息中包括所述第二可信执行环境中安装并正在运行的第一程序的第一代码哈希值,其中,所述每份授权信息包括所述至少一个程序各自的代码哈希值,其中,所述验证单元1303还配置为,对于每份授权信息,验证所述第一代码哈希值是否为该份授权信息中包括的一个代码哈希值。
在一个实施例中,每份所述授权信息中包括第一代码哈希值、和与所述第一代码哈希值对应的第二密钥,所述第二密钥用于对所述第一程序的计算结果进行加密、由与该计算结果对应的计算结果使用方提供,其中,所述装置还包括第二安全传输单元1306,配置为,对于每份所述授权信息,在验证通过的情况中,还由所述第一可信执行环境将所述第二密钥安全传输给所述第二可信执行环境。
图14示出根据本说明书实施例的一种数据处理装置1400,所述装置在数据管理方实施,所述数据管理方包括第一可信执行环境,其中,在所述第一可信执行环境中存储有至少一份明文数据、以及与所述至少一份明文数据分别对应的至少一份授权信息,其中,所述授权信息为关于被允许使用相应的明文数据的至少一个程序的信息,所述装置包括:
第一接收单元1401,配置为,接收数据使用方的数据请求,所述数据请求用于请求使用所述至少一份明文数据,其中,所述数据使用方包括第二可信执行环境;
第二接收单元1402,配置为,从所述数据使用方接收认证信息,其中,所述认证信息由所述第二可信执行环境生成;
验证单元1403,配置为,在所述第一可信执行环境中,对于每份所述授权信息,基于所述认证信息和该份授权信息进行验证;以及
针对每份所述授权信息的安全传输单元1404,配置为,在验证通过的情况中,由第一可信执行环境将与该份授权信息对应的明文数据安全传输给所述第二可信执行环境。
图15示出根据本说明书实施例的一种数据处理装置1500,所述装置在数据使用方实施,所述数据使用方包括第二可信执行环境,所述第二可信执行环境中运行有第一程序,所述装置包括:
第一发送单元1501,配置为,向数据管理方发送数据请求,用于请求使用与数据管理方中存储的至少一份加密数据对应的至少一份明文数据,其中,所述数据管理方包括第一可信执行环境,在所述第一可信执行环境中存储有至少一个第一密钥和与所述至少一个第一密钥分别对应的至少一份授权信息,其中,所述至少一个第一密钥用于分别解密所述至少一份加密数据以分别获取所述至少一份明文数据,所述至少一份授权信息与所述至少一份明文数据分别对应,且所述授权信息为关于被允许使用相应的明文数据的至少一个程序的信息;
第二发送单元1502,配置为,向所述数据管理方发送认证信息,以使得所述第一可信执行环境对于每份所述授权信息基于所述认证信息和该份授权信息进行验证,其中,所述认证信息由所述第二可信执行环境生成;
针对每份所述授权信息的
第一接收单元1503,配置为,在验证通过的情况中,由所述第二可信执行环境接收从所述第一可信执行环境安全传输的与该份授权信息对应的第一密钥;获取单元1504,配置为,从所述数据管理方获取与该份授权信息对应的加密数据;解密单元1505,配置为,在所述第二可信执行环境中使用该第一密钥对该加密数据进行解密,以获取相应的明文数据;以及
计算单元1506,配置为,在所述第二可信执行环境中通过所述第一程序基于所述 至少一份明文数据进行计算,以获取计算结果。
在一个实施例中,所述第一程序具有第一代码哈希值,其中,每份授权信息中包括第一代码哈希值、及与第一代码哈希值对应的第二密钥,所述第二密钥用于对所述第一程序的计算结果进行加密、由与该计算结果对应的计算结果使用方提供,所述装置还包括,
针对每份所述授权信息的
第二接收单元1507,配置为,在验证通过的情况中,由所述第二可信执行环境接收从所述第一可信执行环境安全传输的与该份授权信息对应的第二密钥;
确定单元1508,配置为,在获取所述计算结果之后,在所述第二可信执行环境中确定与各份所述授权信息分别对应的各个第二密钥是否一致,以及
加密单元1509,配置为,在各个所述第二密钥一致的情况中,在所述第二可信执行环境中使用所述第二密钥对所述计算结果进行加密,以获取加密计算结果。
在一个实施例中,所述装置还包括第三发送单元1510,配置为,在获取加密计算结果之后,将所述加密计算结果发送给所述计算结果使用方。
在一个实施例中,所述获取单元1504还配置为,从所述数据管理方读取与该份授权信息对应的加密数据。
图16示出根据本说明书实施例的一种数据处理装置1600,所述装置在数据使用方实施,所述数据使用方包括第二可信执行环境,所述第二可信执行环境中运行有第一程序,所述装置包括:
第一发送单元161,配置为,向数据管理方发送数据请求,用于请求使用数据管理方中存储的至少一份明文数据,其中,所述数据管理方包括第一可信执行环境,在所述第一可信执行环境中存储有所述至少一份明文数据和与所述至少一份明文数据分别对应的至少一份授权信息,其中,所述授权信息为关于被允许使用相应的明文数据的至少一个程序的信息;
第二发送单元162,配置为,向所述数据管理方发送认证信息,以使得所述第一可信执行环境对于每份所述授权信息基于所述认证信息和该份授权信息进行验证,其中,所述认证信息由所述第二可信执行环境生成;
针对每份所述授权信息的第一接收单元163,配置为,对于每份所述授权信息,在 验证通过的情况中,由所述第二可信执行环境接收从所述第一可信执行环境安全传输的与该份授权信息对应的明文数据;以及
计算单元164,配置为,在所述第二可信执行环境中通过所述第一程序基于所述至少一份明文数据进行计算,以获取计算结果。
本说明书另一方面提供一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现上述任一项方法。
在根据本说明书实施例的数据处理方案中,利用TEE、RA技术搭建了数据提供方可信赖的数据授权系统,通过技术层面而非第三方信赖来保证中间数据授权平台不会窥探、篡改数据提供方的数据,同时运行速度快,支持任何代码可表示的融合计算,更有效率、更加通用;为数据授权系统、数据提供方以及数据使用方提出了一整套协议流程,通过该流程可以保证数据的隐私性,多方数据的合规使用;在设计上达成了可以针对数据使用行为授权、可选择性地对数数据融合的输出结果进行访问控制两个特性,以满足实际多方数据融合的通用入口、出口权限控制;数据授权系统作为中间层,为数据提供方和数据使用方解耦,数据提供方一次上传即可,数据使用方多次使用不需要数据提供方重复上传,在重复使用数据时可以有效提升数据访问效率;数据授权系统在设计上允许数据提供方事先离线上传好即可,数据提供方无需部署数据提供服务来实时配合融合业务传输数据,提升易用性。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本领域普通技术人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示 例的组成及步骤。这些功能究竟以硬件还是软件方式来执轨道,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执轨道的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请的具体实施方式而已,并不用于限定本申请的保护范围,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (41)
- 一种数据处理方法,所述方法在数据提供方执行,所述数据提供方拥有第一明文数据,所述方法包括:获取所述第一明文数据的第一加密数据、用于解密所述第一加密数据的第一密钥、以及关于所述第一明文数据的授权信息;向数据管理方发送验证请求,其中,所述数据管理方包括第一可信执行环境;从所述数据管理方接收认证信息,并基于所述认证信息进行验证,其中,所述认证信息由所述第一可信执行环境生成;在验证通过的情况中,将所述第一密钥和所述授权信息安全传输至所述第一可信执行环境;以及将所述第一加密数据提供给所述数据管理方。
- 一种数据处理方法,所述方法在数据提供方执行,所述数据提供方拥有第一明文数据,所述方法包括:获取关于所述第一明文数据的授权信息;向数据管理方发送验证请求,其中,所述数据管理方包括第一可信执行环境;从所述数据管理方接收认证信息,并基于所述认证信息进行验证,其中,所述认证信息由所述第一可信执行环境生成;以及在验证通过的情况中,将所述第一明文数据和所述授权信息安全传输至所述第一可信执行环境。
- 根据权利要求1或2所述的方法,其中,所述授权信息包括至少一个代码哈希值,所述至少一个代码哈希值分别为被允许使用所述第一明文数据的至少一个程序各自的代码哈希值。
- 根据权利要求3所述的方法,其中,所述授权信息包括与所述至少一个代码哈希值分别对应的至少一个访问权限信息,所述访问权限信息为关于相应程序的计算结果的信息。
- 根据权利要求4所述的方法,其中,所述访问权限信息为第二密钥,所述第二密钥用于加密相应的计算结果、由与该计算结果对应的计算结果使用方提供。
- 根据权利要求4所述的方法,其中,所述访问权限信息为空信息。
- 根据权利要求1或2所述的方法,其中,基于所述认证信息进行验证包括,基于所述认证信息验证:所述第一可信执行环境中是否安装有并正在执行用于数据使用授权的程序。
- 根据权利要求1或2所述的方法,其中,所述安全传输为加密传输。
- 一种数据处理方法,所述方法在数据管理方执行,所述数据管理方包括第一可信执行环境、并且存储有至少一份加密数据,其中,在所述第一可信执行环境中存储有至少一个第一密钥和与所述至少一个第一密钥分别对应的至少一份授权信息,所述至少一个第一密钥用于分别解密所述至少一份加密数据以分别获取至少一份明文数据,所述至少一份授权信息与所述至少一份明文数据分别对应,且所述授权信息为关于被允许使用相应的明文数据的至少一个程序的信息,所述方法包括:接收数据使用方的数据请求,所述数据请求用于请求使用所述至少一份明文数据,其中,所述数据使用方包括第二可信执行环境;从所述数据使用方接收认证信息,所述认证信息由所述第二可信执行环境生成;在所述第一可信执行环境中,对于每份所述授权信息,基于所述认证信息和该份授权信息进行验证;以及对于每份所述授权信息,在验证通过的情况中,由第一可信执行环境将与该份授权信息对应的第一密钥安全传输给所述第二可信执行环境,以及将相应的加密数据提供给所述数据使用方。
- 一种数据处理方法,所述方法在数据管理方执行,所述数据管理方包括第一可信执行环境,其中,在所述第一可信执行环境中存储有至少一份明文数据、以及与所述至少一份明文数据分别对应的至少一份授权信息,其中,所述授权信息为关于被允许使用相应的明文数据的至少一个程序的信息,所述方法包括:接收数据使用方的数据请求,所述数据请求用于请求使用所述至少一份明文数据,其中,所述数据使用方包括第二可信执行环境;从所述数据使用方接收认证信息,其中,所述认证信息由所述第二可信执行环境生成;在所述第一可信执行环境中,对于每份所述授权信息,基于所述认证信息和该份授权信息进行验证;以及对于每份所述授权信息,在验证通过的情况中,由第一可信执行环境将与该份授权信息对应的明文数据安全传输给所述第二可信执行环境。
- 根据权利要求9或10所述的方法,其中所述第一可信执行环境与所述第二可信执行环境位于一个平台、或不同的平台中。
- 根据权利要求9或10所述的方法,其中,从所述数据使用方接收认证信息包括,由所述第一可信执行环境接收从所述第二可信执行环境安全传输的认证信息。
- 根据权利要求9所述的方法,其中,所述认证信息中包括所述第二可信执行环境中安装并正在运行的第一程序的第一代码哈希值,其中,所述每份授权信息包括所述至少一个程序各自的代码哈希值,其中,对于每份所述授权信息,基于所述认证信息和该份授权信息进行验证包括,对于每份授权信息,验证所述第一代码哈希值是否为该份授权信息中包括的一个代码哈希值。
- 根据权利要求13所述的方法,其中,每份所述授权信息中包括第一代码哈希值、和与所述第一代码哈希值对应的第二密钥,所述第二密钥用于对所述第一程序的计算结果进行加密、由与该计算结果对应的计算结果使用方提供,其中,所述方法还包括,对于每份所述授权信息,在验证通过的情况中,还由所述第一可信执行环境将所述第二密钥安全传输给所述第二可信执行环境。
- 根据权利要求9所述的方法,其中,所述数据管理方还包括数据存储模块,其中,所述至少一份加密数据被存储在所述数据存储模块中。
- 一种数据处理方法,所述方法在数据使用方执行,所述数据使用方包括第二可信执行环境,所述第二可信执行环境中运行有第一程序,所述方法包括:向数据管理方发送数据请求,用于请求使用与数据管理方中存储的至少一份加密数据对应的至少一份明文数据,其中,所述数据管理方包括第一可信执行环境,在所述第一可信执行环境中存储有至少一个第一密钥和与所述至少一个第一密钥分别对应的至少一份授权信息,其中,所述至少一个第一密钥用于分别解密所述至少一份加密数据以分别获取所述至少一份明文数据,所述至少一份授权信息与所述至少一份明文数据分别对应,且所述授权信息为关于被允许使用相应的明文数据的至少一个程序的信息;向所述数据管理方发送认证信息,以使得所述第一可信执行环境对于每份所述授权信息基于所述认证信息和该份授权信息进行验证,其中,所述认证信息由所述第二可信执行环境生成;对于每份所述授权信息,在验证通过的情况中,由所述第二可信执行环境接收从所述第一可信执行环境安全传输的与该份授权信息对应的第一密钥;从所述数据管理方获取与该份授权信息对应的加密数据;在所述第二可信执行环境中使用该第一密钥对该加密数据进行解密,以获取相应的明文数据;以及在所述第二可信执行环境中通过所述第一程序基于所述至少一份明文数据进行计算,以获取计算结果。
- 一种数据处理方法,所述方法在数据使用方执行,所述数据使用方包括第二可信执行环境,所述第二可信执行环境中运行有第一程序,所述方法包括:向数据管理方发送数据请求,用于请求使用数据管理方中存储的至少一份明文数据,其中,所述数据管理方包括第一可信执行环境,在所述第一可信执行环境中存储有所述至少一份明文数据和与所述至少一份明文数据分别对应的至少一份授权信息,其中,所述授权信息为关于被允许使用相应的明文数据的至少一个程序的信息;向所述数据管理方发送认证信息,以使得所述第一可信执行环境对于每份所述授权信息基于所述认证信息和该份授权信息进行验证,其中,所述认证信息由所述第二可信执行环境生成;对于每份所述授权信息,在验证通过的情况中,由所述第二可信执行环境接收从所述第一可信执行环境安全传输的与该份授权信息对应的明文数据;以及在所述第二可信执行环境中通过所述第一程序基于所述至少一份明文数据进行计算,以获取计算结果。
- 根据权利要求16或17所述的方法,其中,所述第一程序具有第一代码哈希值,其中,每份授权信息中包括第一代码哈希值、及与第一代码哈希值对应的第二密钥,所述第二密钥用于对所述第一程序的计算结果进行加密、由与该计算结果对应的计算结果使用方提供,所述方法还包括,对于每份所述授权信息,在验证通过的情况中,由所述第二可信执行环境接收从所述第一可信执行环境安全传输的与该份授权信息对应的第二密钥;在获取所述计算结果之后,在所述第二可信执行环境中确定与各份所述授权信息分别对应的各个第二密钥是否一致;以及在各个所述第二密钥一致的情况中,在所述第二可信执行环境中使用所述第二密钥对所述计算结果进行加密,以获取加密计算结果。
- 根据权利要求18所述的方法,还包括,在获取加密计算结果之后,将所述加密计算结果发送给所述计算结果使用方。
- 根据权利要求16所述的方法,其中,从所述数据管理方获取与该份授权信息对应的加密数据包括,从所述数据管理方读取与该份授权信息对应的加密数据。
- 一种数据处理装置,所述装置在数据提供方实施,所述数据提供方拥有第一明文数据,所述装置包括:获取单元,配置为,获取所述第一明文数据的第一加密数据、用于解密所述第一加密数据的第一密钥、以及关于所述第一明文数据的授权信息;发送单元,配置为,向数据管理方发送验证请求,其中,所述数据管理方包括第一可信执行环境;验证单元,配置为,从所述数据管理方接收认证信息,并基于所述认证信息进行验证,其中,所述认证信息由所述第一可信执行环境生成;安全传输单元,配置为,在验证通过的情况中,将所述第一密钥和所述授权信息安全传输至所述第一可信执行环境;以及提供单元,配置为,将所述第一加密数据提供给所述数据管理方。
- 一种数据处理装置,所述装置在数据提供方实施,所述数据提供方拥有第一明文数据,所述装置包括:获取单元,配置为,获取关于所述第一明文数据的授权信息;发送单元,配置为,向数据管理方发送验证请求,其中,所述数据管理方包括第一可信执行环境;验证单元,配置为,从所述数据管理方接收认证信息,并基于所述认证信息进行验证,其中,所述认证信息由所述第一可信执行环境生成;以及安全传输单元,配置为,在验证通过的情况中,将所述第一明文数据和所述授权信息安全传输至所述第一可信执行环境。
- 根据权利要求21或22所述的装置,其中,所述授权信息包括至少一个代码哈希值,所述至少一个代码哈希值分别为被允许使用所述第一明文数据的至少一个程序各自的代码哈希值。
- 根据权利要求23所述的装置,其中,所述授权信息包括与所述至少一个代码哈希值分别对应的至少一个访问权限信息,所述访问权限信息为关于相应程序的计算结果的信息。
- 根据权利要求24所述的装置,其中,所述访问权限信息为第二密钥,所述第二密钥用于加密相应的计算结果、由与该计算结果对应的计算结果使用方提供。
- 根据权利要求24所述的装置,其中,所述访问权限信息为空信息。
- 根据权利要求21或22所述的装置,其中,所述验证单元还配置为,基于所述认证信息验证:所述第一可信执行环境中是否安装有并正在执行用于数据使用授权的程序。
- 根据权利要求21或22所述的装置,其中,所述安全传输为加密传输。
- 一种数据处理装置,所述装置在数据管理方实施,所述数据管理方包括第一可信执行环境、并且存储有至少一份加密数据,其中,在所述第一可信执行环境中存储有至少一个第一密钥和与所述至少一个第一密钥分别对应的至少一份授权信息,其中,所述至少一个第一密钥用于分别解密所述至少一份加密数据以分别获取至少一份明文数据,所述至少一份授权信息与所述至少一份明文数据分别对应,且所述授权信息为关于被允 许使用相应的明文数据的至少一个程序的信息,所述装置包括:第一接收单元,配置为,接收数据使用方的数据请求,所述数据请求用于请求使用所述至少一份明文数据,其中,所述数据使用方包括第二可信执行环境;第二接收单元,配置为,从所述数据使用方接收认证信息,所述认证信息由所述第二可信执行环境生成;验证单元,配置为,在所述第一可信执行环境中,对于每份所述授权信息,基于所述认证信息和该份授权信息进行验证;以及针对每份授权信息的,第一安全传输单元,配置为,在验证通过的情况中,由第一可信执行环境将与该份授权信息对应的第一密钥安全传输给所述第二可信执行环境;以及提供单元,配置为,将相应的加密数据提供给所述数据使用方。
- 一种数据处理装置,所述装置在数据管理方实施,所述数据管理方包括第一可信执行环境,其中,在所述第一可信执行环境中存储有至少一份明文数据、以及与所述至少一份明文数据分别对应的至少一份授权信息,其中,所述授权信息为关于被允许使用相应的明文数据的至少一个程序的信息,所述装置包括:第一接收单元,配置为,接收数据使用方的数据请求,所述数据请求用于请求使用所述至少一份明文数据,其中,所述数据使用方包括第二可信执行环境;第二接收单元,配置为,从所述数据使用方接收认证信息,其中,所述认证信息由所述第二可信执行环境生成;验证单元,配置为,在所述第一可信执行环境中,对于每份所述授权信息,基于所述认证信息和该份授权信息进行验证;以及针对每份所述授权信息的安全传输单元,配置为,在验证通过的情况中,由第一可信执行环境将与该份授权信息对应的明文数据安全传输给所述第二可信执行环境。
- 根据权利要求29或30所述的装置,其中所述第一可信执行环境与所述第二可信执行环境位于一个平台、或不同的平台中。
- 根据权利要求29或30所述的装置,其中,所述验证单元还配置为,由所述第一可信执行环境接收从所述第二可信执行环境安全传输的认证信息。
- 根据权利要求29所述的装置,其中,所述认证信息中包括所述第二可信执行环境中安装并正在运行的第一程序的第一代码哈希值,其中,所述每份授权信息包括所述至少一个程序各自的代码哈希值,其中,所述验证单元还配置为,对于每份授权信息,验证所述第一代码哈希值是否为该份授权信息中包括的一个代码哈希值。
- 根据权利要求33所述的装置,其中,每份所述授权信息中包括第一代码哈希值、 和与所述第一代码哈希值对应的第二密钥,所述第二密钥用于对所述第一程序的计算结果进行加密、由与该计算结果对应的计算结果使用方提供,其中,所述装置还包括第二安全传输单元,配置为,对于每份所述授权信息,在验证通过的情况中,还由所述第一可信执行环境将所述第二密钥安全传输给所述第二可信执行环境。
- 根据权利要求29所述的装置,其中,所述数据管理方还包括数据存储模块,其中,所述多个加密数据被存储在所述数据存储模块中。
- 一种数据处理装置,所述装置在数据使用方实施,所述数据使用方包括第二可信执行环境,所述第二可信执行环境中运行有第一程序,所述装置包括:第一发送单元,配置为,向数据管理方发送数据请求,用于请求使用与数据管理方中存储的至少一份加密数据对应的至少一份明文数据,其中,所述数据管理方包括第一可信执行环境,在所述第一可信执行环境中存储有至少一个第一密钥和与所述至少一个第一密钥分别对应的至少一份授权信息,其中,所述至少一个第一密钥用于分别解密所述至少一份加密数据以分别获取所述至少一份明文数据,所述至少一份授权信息与所述至少一份明文数据分别对应,且所述授权信息为关于被允许使用相应的明文数据的至少一个程序的信息;第二发送单元,配置为,向所述数据管理方发送认证信息,以使得所述第一可信执行环境对于每份所述授权信息基于所述认证信息和该份授权信息进行验证,其中,所述认证信息由所述第二可信执行环境生成;针对每份所述授权信息的,第一接收单元,配置为,在验证通过的情况中,由所述第二可信执行环境接收从所述第一可信执行环境安全传输的与该份授权信息对应的第一密钥;获取单元,配置为,从所述数据管理方获取与该份授权信息对应的加密数据;解密单元,配置为,在所述第二可信执行环境中使用该第一密钥对该加密数据进行解密,以获取相应的明文数据;以及计算单元,配置为,在所述第二可信执行环境中通过所述第一程序基于所述至少一份明文数据进行计算,以获取计算结果。
- 一种数据处理装置,所述装置在数据使用方实施,所述数据使用方包括第二可信执行环境,所述第二可信执行环境中运行有第一程序,所述装置包括:第一发送单元,配置为,向数据管理方发送数据请求,用于请求使用数据管理方中存储的至少一份明文数据,其中,所述数据管理方包括第一可信执行环境,在所述第一可信执行环境中存储有所述至少一份明文数据和与所述至少一份明文数据分别对应的至少一份授权信息,其中,所述授权信息为关于被允许使用相应的明文数据的至少一个 程序的信息;第二发送单元,配置为,向所述数据管理方发送认证信息,以使得所述第一可信执行环境对于每份所述授权信息基于所述认证信息和该份授权信息进行验证,其中,所述认证信息由所述第二可信执行环境生成;针对每份所述授权信息的第一接收单元,配置为,对于每份所述授权信息,在验证通过的情况中,由所述第二可信执行环境接收从所述第一可信执行环境安全传输的与该份授权信息对应的明文数据;以及计算单元,配置为,在所述第二可信执行环境中通过所述第一程序基于所述至少一份明文数据进行计算,以获取计算结果。
- 根据权利要求36或37所述的装置,其中,所述第一程序具有第一代码哈希值,其中,每份授权信息中包括第一代码哈希值、及与第一代码哈希值对应的第二密钥,所述第二密钥用于对所述第一程序的计算结果进行加密、由与该计算结果对应的计算结果使用方提供,所述装置还包括,针对每份所述授权信息的第二接收单元,配置为,在验证通过的情况中,由所述第二可信执行环境接收从所述第一可信执行环境安全传输的与该份授权信息对应的第二密钥;确定单元,配置为,在获取所述计算结果之后,在所述第二可信执行环境中确定与各份所述授权信息分别对应的各个第二密钥是否一致,以及加密单元,配置为,在各个所述第二密钥一致的情况中,在所述第二可信执行环境中使用所述第二密钥对所述计算结果进行加密,以获取加密计算结果。
- 根据权利要求38所述的装置,还包括第三发送单元,配置为,在获取加密计算结果之后,将所述加密计算结果发送给所述计算结果使用方。
- 根据权利要求36所述的装置,其中,所述获取单元还配置为,从所述数据管理方读取与该份授权信息对应的加密数据。
- 一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-20中任一项所述的方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP19896220.1A EP3813324B1 (en) | 2018-12-12 | 2019-10-22 | Data processing method and device |
SG11202100822YA SG11202100822YA (en) | 2018-12-12 | 2019-10-22 | Data Processing Method And Apparatus |
US17/159,553 US11038673B2 (en) | 2018-12-12 | 2021-01-27 | Data processing method and apparatus |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811521025.0A CN110011956B (zh) | 2018-12-12 | 2018-12-12 | 一种数据处理方法和装置 |
CN201811521025.0 | 2018-12-12 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/159,553 Continuation US11038673B2 (en) | 2018-12-12 | 2021-01-27 | Data processing method and apparatus |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2020119258A1 true WO2020119258A1 (zh) | 2020-06-18 |
Family
ID=67165116
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2019/112591 WO2020119258A1 (zh) | 2018-12-12 | 2019-10-22 | 一种数据处理方法和装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11038673B2 (zh) |
EP (1) | EP3813324B1 (zh) |
CN (1) | CN110011956B (zh) |
SG (1) | SG11202100822YA (zh) |
TW (1) | TWI709314B (zh) |
WO (1) | WO2020119258A1 (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110737905B (zh) * | 2019-09-19 | 2021-11-23 | 深圳市先河系统技术有限公司 | 数据授权方法、数据授权装置及计算机存储介质 |
CN110750803B (zh) * | 2019-10-18 | 2021-04-09 | 支付宝(杭州)信息技术有限公司 | 数据提供和融合的方法及装置 |
US11868318B1 (en) * | 2019-12-06 | 2024-01-09 | Pure Storage, Inc. | End-to-end encryption in a storage system with multi-tenancy |
CN111079152B (zh) * | 2019-12-13 | 2022-07-22 | 支付宝(杭州)信息技术有限公司 | 一种模型部署方法、装置及设备 |
CN110968743B (zh) * | 2019-12-13 | 2021-07-06 | 支付宝(杭州)信息技术有限公司 | 针对隐私数据的数据存储、数据读取方法及装置 |
CN111625815B (zh) * | 2020-05-26 | 2023-09-26 | 牛津(海南)区块链研究院有限公司 | 一种基于可信执行环境的数据交易方法及装置 |
TWI770676B (zh) * | 2020-11-17 | 2022-07-11 | 玉山商業銀行股份有限公司 | 線上交易處理系統及方法 |
CN112702740B (zh) * | 2020-12-24 | 2023-04-07 | 国网浙江省电力有限公司经济技术研究院 | 一种LoRa物联网系统的数据安全传输方法 |
CN112861169B (zh) * | 2021-01-14 | 2022-06-14 | 支付宝(杭州)信息技术有限公司 | 一种基于隐私保护的数据处理方法、装置及设备 |
US20220321332A1 (en) * | 2021-03-30 | 2022-10-06 | International Business Machines Corporation | Post-quantum cryptography secured execution environments for edge devices |
CN112800436B (zh) * | 2021-04-07 | 2021-06-29 | 支付宝(杭州)信息技术有限公司 | 数据授权方法、装置及电子设备 |
CN113886773A (zh) * | 2021-08-23 | 2022-01-04 | 阿里巴巴(中国)有限公司 | 数据处理方法及装置 |
CN113987554B (zh) * | 2021-12-23 | 2022-04-08 | 支付宝(杭州)信息技术有限公司 | 获取数据授权的方法、装置及系统 |
CN114143117B (zh) * | 2022-02-08 | 2022-07-22 | 阿里云计算有限公司 | 数据处理方法及设备 |
CN114679453B (zh) * | 2022-03-10 | 2023-10-27 | 蚂蚁区块链科技(上海)有限公司 | 多方协同计算中检测恶意攻击的方法、装置、介质和计算设备 |
CN114584306B (zh) * | 2022-05-05 | 2022-08-02 | 腾讯科技(深圳)有限公司 | 一种数据处理方法和相关装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060234772A1 (en) * | 2005-04-14 | 2006-10-19 | Radio Tactics Limited | Forensic toolkit and method for accessing data stored on electronic smart cards |
CN102413132A (zh) * | 2011-11-16 | 2012-04-11 | 北京数码视讯软件技术发展有限公司 | 基于双向安全认证的数据下载方法及系统 |
CN104980477A (zh) * | 2014-04-14 | 2015-10-14 | 航天信息股份有限公司 | 云存储环境下的数据访问控制方法和系统 |
CN105592019A (zh) * | 2014-11-05 | 2016-05-18 | 中国银联股份有限公司 | 双执行环境之间双向访问应用的方法 |
CN106453196A (zh) * | 2015-08-04 | 2017-02-22 | 中国移动通信集团公司 | 一种针对可信执行环境的密钥写入装置、系统及方法 |
CN110034924A (zh) * | 2018-12-12 | 2019-07-19 | 阿里巴巴集团控股有限公司 | 一种数据处理方法和装置 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070217603A1 (en) * | 2006-03-15 | 2007-09-20 | Terayon Communication Systems, Inc. | Decryption key reuse in encrypted digital data stream distribution systems |
US9698979B2 (en) * | 2011-04-15 | 2017-07-04 | Quintessencelabs Pty Ltd. | QKD key management system |
US20140195804A1 (en) * | 2012-10-12 | 2014-07-10 | Safelylocked, Llc | Techniques for secure data exchange |
CN103179114B (zh) * | 2013-03-15 | 2015-09-23 | 华中科技大学 | 一种云存储中的数据细粒度访问控制方法 |
CN104144048B (zh) * | 2013-05-10 | 2018-02-02 | 华为技术有限公司 | 一种可信云存储环境下的密钥管理方法、装置和系统 |
US9071581B2 (en) * | 2013-09-23 | 2015-06-30 | Nvidia Corporation | Secure storage with SCSI storage devices |
US20160294551A1 (en) * | 2013-12-02 | 2016-10-06 | Mitsubishi Electric Corporation | Data processing system, encryption apparatus, decryption apparatus, and computer readable medium |
US9405920B1 (en) * | 2014-05-21 | 2016-08-02 | Amazon Technologies, Inc. | Data integrity verification |
US9397832B2 (en) * | 2014-08-27 | 2016-07-19 | International Business Machines Corporation | Shared data encryption and confidentiality |
CN104581214B (zh) * | 2015-01-28 | 2018-09-11 | 三星电子(中国)研发中心 | 基于ARM TrustZone系统的多媒体内容保护方法和装置 |
US10701039B2 (en) * | 2015-09-25 | 2020-06-30 | Intel Corporation | Mutual approval for privacy-preserving computing |
US9977918B2 (en) * | 2015-09-30 | 2018-05-22 | Robert Bosch Gmbh | Method and system for verifiable searchable symmetric encryption |
CN105592071A (zh) * | 2015-11-16 | 2016-05-18 | 中国银联股份有限公司 | 一种在设备之间进行授权的方法和装置 |
CN107959567B (zh) * | 2016-10-14 | 2021-07-27 | 阿里巴巴集团控股有限公司 | 数据存储方法、数据获取方法、装置及系统 |
US11075887B2 (en) * | 2016-10-24 | 2021-07-27 | Arm Ip Limited | Federating data inside of a trusted execution environment |
CN106790304A (zh) * | 2017-03-24 | 2017-05-31 | 联想(北京)有限公司 | 数据访问方法、装置、节点以及服务器集群 |
CN108400989B (zh) * | 2018-03-01 | 2021-07-30 | 恒宝股份有限公司 | 一种共享资源身份认证的安全认证设备、方法及系统 |
JP6852009B2 (ja) * | 2018-03-20 | 2021-03-31 | 株式会社東芝 | 情報処理装置及び情報処理方法 |
-
2018
- 2018-12-12 CN CN201811521025.0A patent/CN110011956B/zh active Active
-
2019
- 2019-09-20 TW TW108133964A patent/TWI709314B/zh active
- 2019-10-22 WO PCT/CN2019/112591 patent/WO2020119258A1/zh unknown
- 2019-10-22 SG SG11202100822YA patent/SG11202100822YA/en unknown
- 2019-10-22 EP EP19896220.1A patent/EP3813324B1/en active Active
-
2021
- 2021-01-27 US US17/159,553 patent/US11038673B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060234772A1 (en) * | 2005-04-14 | 2006-10-19 | Radio Tactics Limited | Forensic toolkit and method for accessing data stored on electronic smart cards |
CN102413132A (zh) * | 2011-11-16 | 2012-04-11 | 北京数码视讯软件技术发展有限公司 | 基于双向安全认证的数据下载方法及系统 |
CN104980477A (zh) * | 2014-04-14 | 2015-10-14 | 航天信息股份有限公司 | 云存储环境下的数据访问控制方法和系统 |
CN105592019A (zh) * | 2014-11-05 | 2016-05-18 | 中国银联股份有限公司 | 双执行环境之间双向访问应用的方法 |
CN106453196A (zh) * | 2015-08-04 | 2017-02-22 | 中国移动通信集团公司 | 一种针对可信执行环境的密钥写入装置、系统及方法 |
CN110034924A (zh) * | 2018-12-12 | 2019-07-19 | 阿里巴巴集团控股有限公司 | 一种数据处理方法和装置 |
Non-Patent Citations (1)
Title |
---|
See also references of EP3813324A4 * |
Also Published As
Publication number | Publication date |
---|---|
TW202023250A (zh) | 2020-06-16 |
EP3813324A1 (en) | 2021-04-28 |
SG11202100822YA (en) | 2021-02-25 |
CN110011956A (zh) | 2019-07-12 |
EP3813324B1 (en) | 2023-04-26 |
CN110011956B (zh) | 2020-07-31 |
US11038673B2 (en) | 2021-06-15 |
US20210152343A1 (en) | 2021-05-20 |
EP3813324A4 (en) | 2022-03-02 |
TWI709314B (zh) | 2020-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020119258A1 (zh) | 一种数据处理方法和装置 | |
CN110034924B (zh) | 一种数据处理方法和装置 | |
US11025435B2 (en) | System and method for blockchain-based cross-entity authentication | |
US11533164B2 (en) | System and method for blockchain-based cross-entity authentication | |
JP7545489B2 (ja) | 企業環境におけるブロックチェーンの統合、グループ権限とアクセスの管理 | |
US10673632B2 (en) | Method for managing a trusted identity | |
JP2012518329A (ja) | 信頼済みクラウドコンピューティングおよびサービスに関するフレームワーク | |
Chidambaram et al. | Enhancing the security of customer data in cloud environments using a novel digital fingerprinting technique | |
Shah et al. | Third party public auditing scheme for security in cloud storage | |
US20240348592A1 (en) | Apparatus and method for managing credentials | |
Paul et al. | Secure decentralised storage networks | |
Zadka et al. | Cryptography | |
Fugkeaw et al. | Secure and Fine-grained Access Control with Optimized Revocation for Outsourced IoT EHRs With Adaptive Load-Sharing in Fog-Assisted Cloud Environment | |
Fernando et al. | Information Security | |
Saki et al. | TTSM: Trust Threshold Security Model for User Assured Security in Cloud Computing |
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: 19896220 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2019896220 Country of ref document: EP Effective date: 20210122 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |