WO2022029762A1 - System and method for providing a verified privacy-preserving attestation of web service data properties - Google Patents
System and method for providing a verified privacy-preserving attestation of web service data properties Download PDFInfo
- Publication number
- WO2022029762A1 WO2022029762A1 PCT/IL2021/050928 IL2021050928W WO2022029762A1 WO 2022029762 A1 WO2022029762 A1 WO 2022029762A1 IL 2021050928 W IL2021050928 W IL 2021050928W WO 2022029762 A1 WO2022029762 A1 WO 2022029762A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- secure enclave
- attestation
- module
- data
- envelope
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 40
- 238000012795 verification Methods 0.000 claims abstract description 91
- 238000004891 communication Methods 0.000 claims abstract description 15
- 230000004044 response Effects 0.000 claims description 25
- 238000005259 measurement Methods 0.000 claims description 23
- 230000008520 organization Effects 0.000 claims description 6
- 230000001419 dependent effect Effects 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000013475 authorization Methods 0.000 description 1
- 238000003339 best practice Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013496 data integrity verification Methods 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
- H04L9/0897—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
-
- 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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; 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/6245—Protecting personal data, e.g. for financial or medical purposes
-
- 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
- H04L63/0823—Network architectures or network communication protocols for network security for authentication of entities using certificates
-
- 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/12—Applying verification of the received information
- H04L63/126—Applying verification of the received information the source of the received data
-
- 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/16—Implementing security features at a particular protocol layer
- H04L63/166—Implementing security features at a particular protocol layer at the transport layer
-
- 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
-
- 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/3247—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 involving digital signatures
-
- 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/3263—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 involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
Definitions
- the invention is in the field of cryptographic data security and privacy, and in particular pertains to providing a verified privacy-preserving attestation of properties of private data stored on a web service.
- US Patent 9,800,559 B2 discloses techniques for hosting components of provider services within secure execution environments.
- Information associated with a request received at a control plane of a service is received at a secure execution environment and, based at least in part on that information, one or more tasks is determined that may be performed to respond to the request.
- a task of the one or more tasks is performed within the secure execution environment to generate a response to the request, the response is encrypted within the secure execution environment using a key stored within the secure execution environment and available to a component of a computer system, and the encrypted response is made available.
- An agent of the secure execution environment may be configured to decrypt uploaded data and/or applications and may also be configured to validate such uploaded data and/or applications by, for example, providing a certificate or an attestation associated with the validity of the uploaded data and/or applications.
- US Patent 10,176,344 B2 discloses an electronic device that can be configured to receive untrusted input data at an enclave in an electronic device, isolate the untrusted input data from at least a portion of the enclave, communicate at least a portion of the untrusted data to an integrity verification module using an attestation channel, and receive data integrity verification of the untrusted input data from the integrity verification module.
- the integrity verification module can perform data integrity attestation functions to verify the untrusted data and the data integrity attestation functions include a data attestation policy and a whitelist.
- the present invention improves the state-of-the-art in providing attestation from within a secure computing environment, as described below.
- an owner of a bank account can prove to a creditor that the account balance is or remains above a minimum balance required for receiving or maintaining a line of credit, while the account balance itself is not revealed to the creditor.
- the source of the private data is a standard, unmodified HTTPS web service from a web service provider (e.g. bank API).
- a web service provider e.g. bank API
- the TLS protocol used in HTTPS in most web service calls, provides a server certificate proving the identity of the server, but uses a shared symmetric key in order to encrypt message data, and a symmetric MAC signature. It is therefore not possible for a third party to be satisfied that the data in an HTTPS response received by a client really was sent by that HTTPS server, for the client could have created and encrypted it themselves using the symmetric key. TLS thereby does not provide the required artifacts in order to create a valid attestation.
- a system and method for the use of existing TLS artifacts and combining them with artifacts created in a secure enclave in order to create an attestation of the response While such attestation can be provided by third-party hosting of the web client, the third party providing the attestation must be given access to the private data in order to generate an attestation, and must be trusted by verifiers in order to provide an independent attestation.
- a system comprising a secure enclave module to retrieve and process the private data to attest to one or more requisite properties of the private data.
- the secure enclave provider attests to the secure enclave itself, although this attestation does not require the revealing or sharing of the private data to the provider.
- Additional modules attest that the secure enclave module is in fact secure and has a valid trusted computing base (TCB); and that the properties were in fact computed and that the computation was based on data retrieved from the web service, at a given time stated by the web service.
- TDB trusted computing base
- a data attestation server comprising an untrusted host and a secure enclave module
- the system is configured for performing the following steps: a. the untrusted host module, configured to mediate communication to and from the secure enclave module, receiving a data attestation request; b. the untrusted host module sending a secure enclave attestation packet for the secure enclave module — comprising a secure enclave attestation, a secure enclave attestation signature, and an X.509 secure enclave attestation signing certificate — generated by the secure enclave attestation module, to the data owner device; the secure enclave attestation attesting that the secure enclave module associated with the untrusted host module is secure and has a valid trusted computing base (TCB), the secure enclave attestation further comprising a unique measurement of the TCB code and the public keys belonging to the secure enclave; c.
- TDB trusted computing base
- the data owner device requesting a public key of the secure enclave module; d. the data owner device verifying that the public key of the secure enclave module is identical to the public key provided in the secure enclave attestation; e. the data owner device sending credentials for accessing private data stored on a web server to the secure enclave module, encrypted with a secure symmetric key algorithm; f. the secure enclave module making a request for a TLS -encrypted HTTPS connection to the web server to retrieve the private data; g. the secure enclave module performing a TLS handshake with the web server, thereby obtaining a TLS service certificate of the web server; h.
- the secure enclave module decrypting an HTTPS response from the web server, the HTTPS response encapsulating the private data; i. the secure enclave module computing one or more requisite properties of the private data; j. the secure enclave module constructing an attestation envelope, comprising i. the web server TLS service certificate; ii. the computed requisite properties of the private data; iii. the attestation envelope signature of the secure enclave module for the above data.
- k. the untrusted host module receiving the attestation envelope and inserting the secure enclave attestation, secure enclave attestation signature, and X.509 secure enclave attestation signing certificate; l.
- the untrusted host module sending the attestation envelope to the attestation envelope verification server; m. the attestation envelope verification server verifying the attestation envelope, comprising steps of i. checking that the secure enclave attestation verification report is valid and the report was signed by a private key corresponding to the public key certificate chain (a list of certificates where the parent certificate signs the child certificate) and ultimately signed by the root certificate authority of the hardware manufacturer; and ii. checking that the public keys reported in the secure enclave attestation packet matches the secure enclave public keys and contains the unique measurement of the TCB code; iii. checking that the web service TLS server certificate chain is valid; iv. checking that the computed property is signed by a key that is paired with the secure enclave module; and v. checking that the untrusted host module does not have any known security vulnerabilities and the secure enclave is configured correctly.
- the secure enclave module is further configured to generate a secure enclave report comprising i. the code measurements of the TCB; and ii. public keys of the secure enclave module; b. the untrusted host module is further configured to receive the secure enclave report and send it with a remote attestation request to the secure enclave attestation module; and c.
- the secure enclave attestation module is further configured to generate a new secure enclave attestation, secure enclave verification signature, and secure enclave verification certificate and sending them to the untrusted host module. It is a further objective of the invention to provide the previous system, further comprising a quoting module configured to sign the secure enclave report.
- non-private data comprises any combination of data identifying the data owner and a data response timestamp.
- a data attestation server comprising an untrusted host and a secure enclave module; a secure enclave attestation server; • an attestation envelope verification module and a secure enclave attestation verification module of a verification smart contract;
- a blockchain network a decentralized finance smart contract that may represent a liquidity pool whereby release of funds is dependent upon verification of the attestation envelope which may represent financial risk credentials of an individual, organization or document, such as an invoice, or privacypreserving proof of KYC/KYB/KYT/AML credentials of decentralized finance investors; wherein the system is configured to perform steps of a. the untrusted host module configuring the secure enclave module and generates a report about the configuration and TCB code running in the secure enclave module; b. the untrusted host module verifying the report with the secure enclave attestation server; c.
- the data owner device sending a request for a privacy-preserving attestation of private data to the untrusted host module and receiving a public encryption key for the enclave in reply; d. the data owner device signing a message with a blockchain wallet private key of a data owner and sending the signed message and blockchain wallet signature along with their web service credentials to the secure enclave; e. the secure enclave fetching private data and performing privacy-preserving computations on the private data and producing a data attestation envelope comprising the signed message and the blockchain wallet signature in the attestation data envelope with the result of the computation, signing the envelope and returning it to the untrusted host module; f.
- the untrusted host module or data owner device uploading the attestation data envelope and secure enclave verification to an attestation envelope verification module of a smart contract verification server; g. the secure enclave attestation verification module verifying the public keys belong to a secure enclave and the signature of the attestation data envelope is valid and extracting the original blockchain wallet address from the blockchain wallet signature and signed message; and h.
- the blockchain smart contract acting upon correct verification of the attestation envelope by sending the result to a blockchain of a decentralized finance smart contract that may represent a liquidity pool whereby release of funds is dependent upon verification of the attestation envelope which may represent financial risk credentials of an individual, organization or document, such as an invoice, or privacy-preserving proof of KYC/KYB/KYT/AML credentials of decentralized finance investors.
- the untrusted host module sending a secure enclave attestation packet for the secure enclave module — comprising a secure enclave attestation, a secure enclave attestation signature, and an X.509 secure enclave attestation signing certificate — generated by the secure enclave attestation module, to the data owner device; the secure enclave attestation attesting that the secure enclave module associated with the untrusted host module is secure and has a valid trusted computing base (TCB), the secure enclave attestation further comprising a unique measurement of the TCB code and the public keys belonging to the secure enclave; d.
- TDB trusted computing base
- the data owner device requesting a public key of the secure enclave module; e. the data owner device verifying that the public key of the secure enclave module is identical to the public key provided in the secure enclave attestation; f. the data owner device sending credentials for accessing private data stored on a web server to the secure enclave module, encrypted with a secure symmetric key algorithm; g. the secure enclave module making a request for a TLS -encrypted HTTPS connection to the web server to retrieve the private data; h. the secure enclave module performing a TLS handshake with the web server, thereby obtaining a TLS service certificate of the web server; i.
- the secure enclave module decrypting an HTTPS response from the web server, the HTTPS response encapsulating the private data; j. the secure enclave module computing one or more requisite properties of the private data; k. the secure enclave module constructing an attestation envelope, comprising i. the web server TLS service certificate; ii. the computed requisite properties of the private data; iii. the attestation envelope signature of the secure enclave module for the above data. l. the untrusted host module receiving the attestation envelope and inserting the secure enclave attestation, secure enclave attestation signature, and X.509 secure enclave attestation signing certificate; m.
- the untrusted host module sending the attestation envelope to the attestation envelope verification server; n. the attestation envelope verification server verifying the attestation envelope, comprising steps of i. checking that the secure enclave attestation verification report is valid and the report was signed by a private key corresponding to the public key certificate chain (a list of certificates where the parent certificate signs the child certificate) and ultimately signed by the root certificate authority of the hardware manufacturer; and ii. checking that the public keys reported in the secure enclave attestation packet matches the secure enclave public keys and contains the unique measurement of the TCB code; iii. checking that the web service TLS server certificate chain is valid; iv. checking that the computed property is signed by a key that is paired with the secure enclave module; and v. checking that the untrusted host module does not have any known security vulnerabilities and the secure enclave is configured correctly.
- the method further comprises steps of i. the secure enclave module generating a secure enclave report comprising i. the code measurements of the TCB; and ii. public keys of the secure enclave module; j. the untrusted host module receiving the secure enclave report and sending it with a remote attestation request to the secure enclave attestation module; and k. the secure enclave attestation module generating a new secure enclave attestation, secure enclave verification signature, and secure enclave verification certificate and sending them to the untrusted host module.
- non-private data comprises any combination of data identifying the data owner and a data response timestamp.
- the data owner device signing a message with a blockchain wallet private key of a data owner and sending the signed message and blockchain wallet signature along with their web service credentials to the secure enclave; e. the secure enclave fetching private data and performing privacy-preserving computations on the private data and producing a data attestation envelope comprising the signed message and the blockchain wallet signature in the attestation data envelope with the result of the computation, signing the envelope and returning it to the untrusted host module; f. the untrusted host module or data owner device uploading the attestation data envelope and secure enclave verification to an attestation envelope verification module of a smart contract verification server; g.
- the secure enclave attestation verification module verifying the public keys belong to a secure enclave and the signature of the attestation data envelope is valid and extracting the original blockchain wallet address from the blockchain wallet signature and signed message; and h. the blockchain smart contract acting upon correct verification of the attestation envelope by sending the result to a blockchain of a decentralized finance smart contract that may represent a liquidity pool whereby release of funds is dependent upon verification of the attestation envelope which may represent financial risk credentials of an individual, organization or document, such as an invoice, or privacy-preserving proof of KYC/KYB/KYT/AML credentials of decentralized finance investors.
- Figs. 1 and 2 show a high-level and detailed flow diagram, respectively, of a system and method for providing a verified privacy-preserving attestation of properties of private data stored on a web service, according to some embodiments of the invention.
- Fig. 3 shows a functional block diagram of a system for providing a verified privacypreserving attestation of properties of private data stored on a web service, according to some embodiments of the invention.
- Fig. 4 schematically show the sources of elements in the attestation envelope, according to some embodiments of the invention.
- Fig. 5 shows a flow diagram of how each element of an attestation envelope is produced and signed, according to some embodiments of the invention.
- Fig. 6 shows a list of steps of a method for providing a verified privacy-preserving attestation of properties of private data stored on a web service, according to some embodiments of the invention.
- Fig. 7 shows a system for verifying and storing a verified privacy-preserving attestation of properties of private data on a blockchain and associating them with blockchain wallet addresses.
- Computing device refers to any device with at least a processor and non-transitory computer-readable medium (CRM), such as read-only memory, RAM memory, flash memory, or a disk drive.
- CRM computer-readable medium
- two or more elements defined as computing devices does not preclude the computing devices sharing one or more common processors.
- Instructions refers to code stored in CRM, and executable by a processor.
- a web server provides web services of a provider (e.g., bank, government, accounting software, ERP server, KYC, KYB, KYT, AML) holding private data of one or more data owners.
- the web services are provided over a secure internet data transfer protocol such as HTTPS.
- the web services are standard; no modification to the web server is required for its interoperability with a system of the invention.
- a web server comprises an API that services requests from external servers, devices, and modules.
- Data owner device refers to a computing device comprising a non-transitory computer-readable medium storing, 1) credentials needed to access private data stored on a web service or instructions authorizing retrieval thereof; 2) instructions for verifying that secure communication with a secure enclave module has been established; and 3) instructions to a processor for securely initiating and verifying, as further described herein, a privacypreserving data attestation of one or more properties of the private data, such as whether or not the private data meets a one or more requisite criteria.
- the data owner device may further comprise a user interface configured for entering personal access credentials (e.g., password, fingerprint) and for the data owner to authorize data attestations.
- a data attestation server refers to one or more computing devices of an entity providing data attestation services.
- a secure enclave module refers to a computing device of a data attestation server comprising a non-transitory computer-readable medium storing instructions to a processor for securely, 1) receiving a data attestation request and access credentials from a data owner device; 2) fetching a data owner’s private data from a web server; and 3) computing one or more properties of the private data (e.g. whether the private data meets a requisite criterion) and providing a data attestation thereto.
- the signing of the data attestation and other measures to ensure data validity and privacy are further described herein.
- the secure enclave module contains a set of asymmetric public and private cryptographic keys used for various cryptographic functions.
- the keys can either be random and unique to a utilization instance of secure enclave module or derived from a unique measurement of the secure enclave module’s TCB code.
- security refers to the memory of the enclave being inaccessible to the host system regardless of the permission level.
- a secure enclave quoting module refers to a computing device of the data attestation server comprising a non-transitory computer-readable medium storing instructions to a processor for signing a report of the secure enclave module with a private key to form a quote.
- Instructions and data in the secure enclave and secure enclave quoting modules are enabled, for example, by the Intel Software Guard Extensions (SGX), built-in security code stored in protected memory of a processor.
- SGX Intel Software Guard Extensions
- An untrusted host module refers to a computing device of the data attestation server comprising a non-transitory computer-readable medium storing instructions for mediating communication of the secure enclave and secure quoting enclave modules of the data attestation server with servers and devices external to the data attestation server.
- Verifier device refers to a to a computing device comprising a non-transitory computer-readable medium storing instructions to a processor for receiving and verifying, as further described herein, a privacy-preserving attestation that, 1) the web server holds data belonging to the data owner; and 2) the same data has undergone the necessary privacypreserving computation to determine whether the data meets the criterion, leading to a shared output, without learning anything else about the data.
- Each of the servers, modules, and devices described herein may be embodied within a single computing device.
- a functions server, module, or device, as described herein may be distributed over a plurality of computing devices, interconnected, as needed, via one or more means of communication employing appropriate security measures known in the art.
- the plurality of computing devices of a module may be delegated to different entities with common authorizations.
- a server, module, or device may be cloudbased, in whole or in part.
- a data attestation is the result of a computation made in a secure enclave module, attesting that private data has one or more specified properties.
- a secure enclave attestation server attests that a secure enclave is in fact secure and has a valid trusted computing base (TCB).
- TBC trusted computing base
- the secure enclave attestation server may comprise an Intel IAS attestation cloud server.
- An attestation envelope verification report attests that the secure enclave module received the private data from the web server, that the data attestation was computed with the TCB programming code specified in the secure enclave attestation, and that the computation was in fact based on the private data.
- Fig. 1 showing a high-level workflow diagram of a system and method for providing verified privacy-preserving attestation of properties of private data stored on a web service, according to some embodiments of the invention.
- a data owner device 105 e.g., a personal computer or smartphone
- a data owner uses their smartphone to initiate transactions that modify their account balance (the data) on a bank’s server (the web server 140).
- an untrusted host module 115 of the data attestation server 110 summons a secure enclave verification module 125 to verify the security of a secure enclave module 120 of the data attestation server 110.
- the data owner device 105 requests from the data attestation server 110 verification of the security of the secure enclave module 120. Upon checking the authenticity of the verification, assuring that the secure enclave module 120 is secure, the data owner device 105 provides the data attestation server 110 access credentials (e.g. login and/or OAuth) required to access the data owner’s data stored on the web server 140.
- the untrusted host module 115 equipped with the data owner’s access credentials, retrieves the data owner’s data, on behalf of the data owner, from the web server 140, via the web server API 140A, and summons the secure enclave module 120 to perform a security-preserving attestation. For example, that the depositor’s account balance is at least $10,000.
- the secure enclave 120 produces a privacy-preserving data attestation envelope and shares it with the data owner device 105.
- the attestation envelope includes attestation credentials, as further described herein.
- a verifying device 145 calls an attestation envelope verification server 130.
- the verifying device 145 verifies the privacy-preserving data attestation envelope.
- the attestation envelope verification is now available to the third party requesting the attestation.
- Fig. 2 showing a detailed workflow diagrams of a system and method for providing verified privacy-preserving attestation of properties of private data stored on a web service, according to some embodiments of the invention.
- Numerical references in Fig. 2 refer to the same-referenced step or element in the workflow presented in Fig. 1, but in some cases with more detail.
- a letter after a reference number denotes a division, stored instructions, or stored data of the corresponding feature referenced in Fig. 1.
- a client application 105A (e.g., a web browser or mobile app) of a data owner device 105 — under the agency of a data owner 106 — stores data in a web server 140.
- the data owner device 105 or a verifier device 145, a device of an authorized party
- an untrusted host module 115 of the data attestation server 110 receives the attestation request and passes it directly to a secure enclave module 120 of the data attestation server 110.
- the secure enclave module 120 running a secure application defined by the TCB code 120E, receives the attestation request, and then at S2A responds to the untrusted host module 115 with a secure enclave report 120F comprising a set of public keys 120B (corresponding to a set of private keys 120A) and a unique measurement 120D (such as a cryptographic hash) of the TCB code 120C running in the secure enclave module 120.
- the untrusted host module 115 receives the secure enclave report 120F and dispatches it to a secure quoting enclave module 121 (typically provided by the same hardware manufacturer as the secure enclave module 120).
- the secure quoting enclave module 121 verifies and signs the report 120F with a report signing attestation private key 121B to form a quote 121A.
- the untrusted host module 115 receives the quote 121A and dispatches it to a secure enclave attestation server 125.
- the secure enclave attestation server 125 attests that the secure enclave module 120 is secure by using the quote 121A to verify the platform the enclave is running on is secure and the quoting enclave is certified by the hardware manufacturer, and provides a secure enclave attestation to the untrusted host 115.
- the client application 105A verifies the validity of the secure enclave attestation with the untrusted host module 115, thereby verifying that the secure enclave module 120 is in fact secure and assuring the data owner 106 that her data stored on the web server 140 will remain private.
- the client application 105A provides the secure enclave module 120 (via the untrusted host module 115) with web server access credentials 105B to the private data on the web server 140.
- the provided access credentials 105B are encrypted so that only the secure enclave module 120 can read them.
- the secure enclave module 120 in communication with the web server API 140A through the untrusted host module 115, retrieves private data (and, optionally, nonprivate data) from the web server 140, and then the secure enclave module 120 runs a privacypreserving computation of a requisite property of the private data.
- the secure enclave module 120 encapsulates the result of the property computation and other attestation data (further described herein) in an attestation envelope, signs the attestation envelope with one of the private keys 120A, and returns the attestation envelope and signature to the untrusted host module 115.
- the untrusted host module 115 shares the attestation envelope and signature with a verifier application 145A (e.g., a browser or mobile app) of a verifier device 145, under the agency of a verifying entity 146.
- a verifier application 145A e.g., a browser or mobile app
- the verifier application shares the attestation envelope with an attestation envelope verification server 130.
- the attestation envelope verification server 130 performs a series of checks (further described herein), including verifying TLS service certificates (preferably TLS, although other protocols are also possible), to ascertain that a secure enclave received the private data from the web service and performed the property calculation and returns the result of the checks to the verifier application 145A.
- the data verifier 146 is assured that the private data 140C of the data owner 106 meets the requisite property.
- the invention combines aspects of the TLS protocol with a secure enclave attestation capability.
- a valid secure enclave attestation is an attestation that the secure enclave module 120 is genuine and secure and running the expected software (TCB), assuring that the private data is processed in secret and that the expected code is executed.
- TLB expected software
- a public key certificate and certificate chain (preferably X.509, although other formatting standards are possible) of the web server 140 is used in the TLS protocol to derive the keys used by the web server 140 to encrypt the response data of the web server 140. That is, in the basic TLS handshake, 1) the web server 140 provides an X.509; 2) the web server 140 and secure enclave 120 share secrets, such as random numbers, public keys, or premaster secrets that are encrypted using the public key of the web server 140. The X.509 and the secrets are combined by the parties to form a master secret used to authenticate and encrypt future messages.
- Performing the TLS handshake within the TCB code 120B of the secure enclave 120 and including the returned certificate chain in the signed attestation data envelope proves that the data came from the web server 140 bearing the X.509 server certificate and organization identity certificate.
- the web server 140 optionally provides a timestamp in its response (header) to the secure enclave module 120. The timestamp is used to attest the time of response.
- the attestation envelope contains the secure enclave attestation and the web server certificate — proving that the data used in the computation originated from the web server 140 — and the output of the privacy-preserving computation, a unique measurement (such as a cryptographic hash) of the computation source code in the TCB 120C, non-private data (if any), and the public keys of the secure enclave module 120, such that a verifier device 145 can verify the whole package and be assured of its integrity, thereby satisfying the verifier 146 that the data 140C of the data owner 106 stored in the web server 140 meets the requisite criteria.
- a unique measurement such as a cryptographic hash
- Fig. 3 showing a system 100 for providing a verified privacy-preserving attestation of properties of private data stored on a web service, according to some embodiments of the invention.
- the system 100 comprises a data owner device 105, used to by a data owner to access private data stored and which stores or authorizes access to credentials to access private data of a data owner stored in a web server 140.
- the access credentials can include a username/password, biometric data such as finger or iris prints, an API token and secret, access delegation authority such as OAuth2, or any combination thereof.
- the data owner device 105 may comprise a computing device (e.g., a desktop, notebook, tablet, smartphone, smart appliance, etc.) with access software, such as a web browser, to the web server 140.
- Data transfer between the data owner device 105 and the web server 140 is by a secure internet data transfer protocol, preferably HTTPS although other secure protocols may be used.
- the data owner device 105 may comprise a user interface for the data owner to authorize the verified privacy-preserving data attestation of their private data.
- the user interface may further provide access to the data owner for viewing their private data and non-private data stored in the web server 140 and for executing other privileges afforded the data owner by the web service (editing, transactions, etc.)
- the system further comprises a data attestation server 110, which can be provided by a data attestation service entity.
- the data attestation server 110 includes an untrusted host module 115; and a secure enclave module 120 enabled to access the private data and compute its requested properties — in a privacy-preserving manner, as further described herein.
- the untrusted host module 115 is provided to mediate secure communication between the secure enclave module 120 and modules external to the data attestation server 110, as it is best practice is to keep code in the secure enclave module 120 to a minimum, in order to facilitate attestation that the secure enclave 120 is secure. Therefore, some services described herein (e.g.
- the web server 140 exposing a communication port and handling non-encrypted aspects of web transport and communication protocol
- the untrusted host module 115 also preferably stores and presents a secure enclave attestation, further described herein, although in alternative embodiments the secure enclave attestation could reside elsewhere, including in the secure enclave itself.
- the TCB code of a secure enclave module 120 handles common privacy-preserving requests to different web services.
- the system further comprises a secure enclave attestation module 125, which provides an attestation that the secure enclave module is secure, has a valid trusted computing base (TCB), and owns the private keys corresponding to a set of public keys.
- TDB trusted computing base
- An untrusted host module 115 typically configures, launches, and manages several secure enclave modules 120 in the data attestation server 110 for processing data attestation requests.
- the data owner device 105 sends a request for a verified privacy-preserving data attestation of one or more properties of the private data to the untrusted host module 115.
- the desired properties may be included with the request or may be stored in the untrusted host module 115 (e.g., to fulfill a standing order for periodic data attestations).
- the untrusted host module 115 Upon receiving the request, the untrusted host module 115 checks the public keys of the secure enclave module 120 that will service the request.
- the untrusted host module 115 then sends a request to the secure enclave attestation module 125 to attest to the secure enclave module 120.
- the secure enclave attestation module 125 replies with a secure enclave attestation packet for the secure enclave module 120, comprising a secure enclave attestation containing the public keys and a unique measurement of the TCB, a secure enclave attestation signature, and an X.509 secure enclave attestation signing certificate.
- the untrusted host module 115 retains the secure enclave attestation and associated public keys for the lifetime of the secure enclave module 120. In some embodiments, the untrusted host module 115 will de-allocate, i.e. instruct the secure enclave module 120 to delete the public key, after the data attestation. The untrusted host module 115 may implement software updates to the secure enclave module 120. After a software update, the untrusted host module 115 requests new secure enclave attestation from the secure enclave attestation module 125.
- the untrusted host module 115 forwards the secure enclave attestation and at least one of the public encryption keys to the data owner device 105.
- the data owner device 105 may independently verify the secure enclave attestation, thereby determining that the enclave is genuine and secure, and the public keys can be used to encrypt private data.
- the data owner device 105 generates a key pair consisting of a public and private key.
- a shared symmetric key is generated using a key agreement protocol such as Elliptic Curve Diffie-Hellman (ECDH).
- ECDH Elliptic Curve Diffie-Hellman
- a corresponding symmetric key can be generated in the secure enclave module 120 using the public data owner device 105 key and the private encryption key of the secure enclave module 120.
- the data owner device 105 sends the web service access credentials (e.g. username/password, biometrics, secure token) to the secure enclave module 120, encrypted using a secure symmetric key algorithm, such as the Advanced Encryption Standard (AES).
- AES Advanced Encryption Standard
- the secure enclave module can either store the access credentials in temporary memory so that they are removed after the request is completed or encrypt them and save them to memory so that they can be retrieved for later requests allowing for computations on data properties that may change over time.
- the secure enclave module 120 requests a TLS -encrypted HTTPS connection to the web server 140, via the untrusted host module 115.
- the secure enclave module 120 performs a TLS handshake with the web server 140, thereby obtaining a TLS service certificate of the web server 140.
- the secure enclave module 120 provides the access credentials to the web server 140 and requests the data owner’s private data.
- the secure enclave module 120 receives and decrypts the HTTPS response, from the web server 140, within which the private data is encapsulated.
- the secure enclave module 120 computes the requisite properti(es) of the private data.
- the secure enclave module 120 constructs an attestation envelope, comprising a. TLS server certificate received from the web server 140; b. the computed requisite property of the private data 140C; c. optionally, non-private data of the data owner, such as data proving the identity of the data owner 106, and a timestamp from the HTTPS response header; and d. a signature of the above data generated with a private signing key corresponding to one of the public keys included in the report data, generated with a secure asymmetric key signing algorithm such as RSA.
- the untrusted host module 115 receives the attestation envelope and adds the secure enclave attestation report, secure enclave attestation signature and secure enclave verifier certificate of the secure enclave module 120 to the attestation envelope.
- Fig. 4 schematically shows the sources of elements in the attestation envelope — certificates, signatures, and artifacts.
- Fig. 5 shows a flow diagram of how each element is produced and signed.
- the system 100 further comprises an attestation envelope verification server 130.
- the untrusted host module 115 sends the attestation envelope to the attestation envelope verification server 130.
- the attestation envelope is also returned to the data owner device 105, and may be shared with an attestation envelope verification server 130 by other communication means such as email, file sharing, SMS, text messages.
- the attestation envelope to the attestation envelope attestation module 130 constructs an attestation envelope attestation report, based on its checking that a. the secure enclave attestation certificate, secure enclave attestation report, and secure enclave attestation signature are valid and provided by the expected enclave attestation party; and b.
- the secure enclave attestation report matches the secure enclave public keys and contains the unique measurement of the secure enclave TCB code; c. the TLS server certificate chain is valid; d. the computed property is signed by a key that is paired with the secure enclave module 120; and e. the untrusted host module 115 does not have any known security vulnerabilities and the secure enclave module 120 is configured correctly.
- the checks by the attestation envelope verification server 130 may be conducted offline, with no connection required to the other modules.
- the results of the checks by the attestation envelope verification server 130 are shared with a verifier 145 interested in knowing whether the data owner’s private data meet the requisite properties.
- the method 200 comprises steps of a. the untrusted host module, configured to mediate communication to and from the secure enclave module, receiving a data attestation request 210; b.
- the untrusted host module sending a secure enclave attestation packet for the secure enclave module — comprising a secure enclave attestation, a secure enclave attestation signature, and an X.509 secure enclave attestation signing certificate — generated by the secure enclave attestation module, to the data owner device 215; the secure enclave attestation attesting that the secure enclave module associated with the untrusted host module is secure and has a valid trusted computing base (TCB), the secure enclave attestation further comprising a unique measurement of the TCB code and the public keys belonging to the secure enclave; c.
- TDB trusted computing base
- the data owner device requesting a public key of the secure enclave module 225; d. the data owner device verifying that the public key of the secure enclave module is identical to the public key provided in the secure enclave attestation 230; e. the data owner device sending credentials for accessing private data stored on a web server to the secure enclave module, encrypted with a secure symmetric key algorithm 235; f. the secure enclave module making a request for a TLS -encrypted HTTPS connection to the web server to retrieve the private data 240; g. the secure enclave module performing a TLS handshake with the web server, thereby obtaining a TLS service certificate of the web server 245; h.
- the secure enclave module decrypting an HTTPS response from the web server, the HTTPS response encapsulating the private data 250; i. the secure enclave module computing one or more requisite properties of the private data 255; j. the secure enclave module constructing an attestation envelope 260, comprising i. the web server TLS service certificate; ii. the computed requisite properties of the private data; iii. the attestation envelope signature of the secure enclave module for the above data.
- k. the untrusted host module receiving the attestation envelope and inserting the secure enclave attestation, secure enclave attestation signature, and X.509 secure enclave attestation signing certificate 265; l.
- the untrusted host module sending the attestation envelope to the attestation envelope verification server 270; m. the attestation envelope verification server verifying the attestation envelope 275, comprising steps of i. checking that the secure enclave attestation verification report is valid and the report was signed by a private key corresponding to the public key certificate chain (a list of certificates where the parent certificate signs the child certificate) and ultimately signed by the root certificate authority of the hardware manufacturer; and ii. checking that the public keys reported in the secure enclave attestation packet matches the secure enclave public keys and contains the unique measurement of the TCB code; iii. checking that the web service TLS server certificate chain is valid; iv. checking that the computed property is signed by a key that is paired with the secure enclave module; and v. checking that the untrusted host module does not have any known security vulnerabilities and the secure enclave is configured correctly.
- FIG. 7 showing a flow diagram of a system and method for verifying and storing privacy-preserving attestation of properties of private data on a blockchain and associating them with blockchain wallet addresses.
- an untrusted host module 415 configures a secure enclave module 420, and then generates a report about the configuration and TCB code being run in the secure enclave module 420.
- the untrusted host 415 verifies the report using a secure enclave attestation server 425.
- a data owner device 405 sends a request for a privacypreserving attestation of private data to the untrusted host module 420 and receives a public encryption key for the enclave.
- the data owner module verifies the secure enclave module is secure, signs a message with their blockchain wallet private key, and sends the signature, signed message and web service credentials to the secure enclave 420, all encrypted with a secure symmetric key algorithm.
- the secure enclave module uses the web service credentials to retrieve private data on behalf of the data owner, and then runs a privacy-preserving computation on that data.
- the secure enclave module produces a data attestation envelope comprising the result of the computation, optional public data, the blockchain wallet signature, and the signed message in an attestation data envelope and signs the data attestation envelope.
- the secure enclave module returns the attestation data envelope and signature to the untrusted host module.
- the untrusted host module (or in some embodiments, the data owner device) combines the attestation data envelope with the secure enclave verification and uploads them to an attestation envelope verification module of a smart contract verification server.
- the attestation envelope verification module 430 checks a list 440C of verified secure enclave public keys stored therein by checking if the public keys used in the privacypreserving attestation from the untrusted host have been verified and saved on the blockchain network of the verification smart contract 435 previously. If the public keys are not on the list 440C, at S335 the secure enclave attestation verification module 440 is summoned to check the secure enclave attestation, ensuring that it complies with a list 440A of allowed TCB code versions and a list 440B of allowed configurations. If the secure enclave verification module 440 validates the secure enclave attestation successfully, the public keys are saved to the blockchain network of the verification smart contract 435.
- the attestation data verification module 430 then verifies the attestation data envelope signature. If the signature complies, the blockchain wallet address is extracted from the signature originally sent to the secure enclave from the data owner. The verified attestation data envelope can then be shared, at S340, with other smart contracts 445 to trigger a number of decentralized finance actions associated with the data owner’s wallet address.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
A system and method for providing verified privacy-preserving attestations of requisite properties of private data stored on a web server is disclosed. An untrusted host mediates secure communication for a secure enclave with a data owner device and the web server. A secure enclave verification server provides an attestation to the data owner device that the secure enclave module is secure and has a valid trusted computing base (TCB). The data owner module provides credentials to access the private data to the secure enclave, which retrieves the data and calculates the requisite properties. The secure enclave produces an attestation envelope, which is verified by an attestation envelope verification module. Combining the certificates and keys generated during a TLS handshake between the secure enclave and the web server enables a proof that the data coming into the enclave was from a standard (unmodified) web server API provided by the web server.
Description
SYSTEM AND METHOD FOR PROVIDING A VERIFIED PRIVACY-
PRESERVING ATTESTATION OF WEB SERVICE DATA PROPERTIES
FIELD OF THE INVENTION
The invention is in the field of cryptographic data security and privacy, and in particular pertains to providing a verified privacy-preserving attestation of properties of private data stored on a web service.
BACKGROUND TO THE INVENTION
Systems for providing attestation from within a secure computing environment are disclosed in the prior art.
US Patent 9,800,559 B2 discloses techniques for hosting components of provider services within secure execution environments. Information associated with a request received at a control plane of a service is received at a secure execution environment and, based at least in part on that information, one or more tasks is determined that may be performed to respond to the request. A task of the one or more tasks is performed within the secure execution environment to generate a response to the request, the response is encrypted within the secure execution environment using a key stored within the secure execution environment and available to a component of a computer system, and the encrypted response is made available. An agent of the secure execution environment may be configured to decrypt uploaded data and/or applications and may also be configured to validate such uploaded data and/or applications by, for example, providing a certificate or an attestation associated with the validity of the uploaded data and/or applications.
US Patent 10,176,344 B2 discloses an electronic device that can be configured to receive untrusted input data at an enclave in an electronic device, isolate the untrusted input data from at least a portion of the enclave, communicate at least a portion of the untrusted data to an integrity verification module using an attestation channel, and receive data integrity verification of the untrusted input data from the integrity verification module. The integrity verification module can perform data integrity attestation functions to verify the untrusted data and the data integrity attestation functions include a data attestation policy and a whitelist.
The present invention improves the state-of-the-art in providing attestation from within a secure computing environment, as described below.
SUMMARY
In an aspect of the present invention is provided a system and method for proving the origin and properties of sensitive, private data returned by standard HTTPS web services, without requiring modification of the web services or exposing the private data beyond the web service providers.
In an aspect of the invention is provided a system and method whereby individuals and companies may prove properties of sensitive, private data held about them by web service providers, without having to reveal or share the private data. For example, an owner of a bank account can prove to a creditor that the account balance is or remains above a minimum balance required for receiving or maintaining a line of credit, while the account balance itself is not revealed to the creditor.
In some embodiments, the source of the private data is a standard, unmodified HTTPS web service from a web service provider (e.g. bank API).
With presently known technology, it is a challenge to prove that private data has been retrieved from a web service for the following reason: the TLS protocol, used in HTTPS in most web service calls, provides a server certificate proving the identity of the server, but uses a shared symmetric key in order to encrypt message data, and a symmetric MAC signature. It is therefore not possible for a third party to be satisfied that the data in an HTTPS response received by a client really was sent by that HTTPS server, for the client could have created and encrypted it themselves using the symmetric key. TLS thereby does not provide the required artifacts in order to create a valid attestation.
One solution is to modify the web service such that it digitally signs the response that includes the private data. However, this solution is not practically possible in many cases, as the web service is often provided by a third party.
In an aspect of the present invention is provided a system and method for the use of existing TLS artifacts and combining them with artifacts created in a secure enclave in order to create an attestation of the response.
While such attestation can be provided by third-party hosting of the web client, the third party providing the attestation must be given access to the private data in order to generate an attestation, and must be trusted by verifiers in order to provide an independent attestation.
Rather than trusting a third party, in an aspect of the invention is provided a system comprising a secure enclave module to retrieve and process the private data to attest to one or more requisite properties of the private data. Additionally, the secure enclave provider attests to the secure enclave itself, although this attestation does not require the revealing or sharing of the private data to the provider. Additional modules attest that the secure enclave module is in fact secure and has a valid trusted computing base (TCB); and that the properties were in fact computed and that the computation was based on data retrieved from the web service, at a given time stated by the web service.
Therefore, it is an objective of the invention to provide a system for providing a verified privacy-preserving attestation of properties of private data stored on a web service, comprising
• a data owner device;
• a data attestation server comprising an untrusted host and a secure enclave module;
• a secure enclave attestation module;
• an attestation envelope verification module; wherein the system is configured for performing the following steps: a. the untrusted host module, configured to mediate communication to and from the secure enclave module, receiving a data attestation request; b. the untrusted host module sending a secure enclave attestation packet for the secure enclave module — comprising a secure enclave attestation, a secure enclave attestation signature, and an X.509 secure enclave attestation signing certificate — generated by the secure enclave attestation module, to the data owner device; the secure enclave attestation attesting that the secure enclave module associated with the untrusted host module is secure and has a valid trusted computing base (TCB),
the secure enclave attestation further comprising a unique measurement of the TCB code and the public keys belonging to the secure enclave; c. the data owner device requesting a public key of the secure enclave module; d. the data owner device verifying that the public key of the secure enclave module is identical to the public key provided in the secure enclave attestation; e. the data owner device sending credentials for accessing private data stored on a web server to the secure enclave module, encrypted with a secure symmetric key algorithm; f. the secure enclave module making a request for a TLS -encrypted HTTPS connection to the web server to retrieve the private data; g. the secure enclave module performing a TLS handshake with the web server, thereby obtaining a TLS service certificate of the web server; h. the secure enclave module decrypting an HTTPS response from the web server, the HTTPS response encapsulating the private data; i. the secure enclave module computing one or more requisite properties of the private data; j. the secure enclave module constructing an attestation envelope, comprising i. the web server TLS service certificate; ii. the computed requisite properties of the private data; iii. the attestation envelope signature of the secure enclave module for the above data. k. the untrusted host module receiving the attestation envelope and inserting the secure enclave attestation, secure enclave attestation signature, and X.509 secure enclave attestation signing certificate; l. the untrusted host module sending the attestation envelope to the attestation envelope verification server;
m. the attestation envelope verification server verifying the attestation envelope, comprising steps of i. checking that the secure enclave attestation verification report is valid and the report was signed by a private key corresponding to the public key certificate chain (a list of certificates where the parent certificate signs the child certificate) and ultimately signed by the root certificate authority of the hardware manufacturer; and ii. checking that the public keys reported in the secure enclave attestation packet matches the secure enclave public keys and contains the unique measurement of the TCB code; iii. checking that the web service TLS server certificate chain is valid; iv. checking that the computed property is signed by a key that is paired with the secure enclave module; and v. checking that the untrusted host module does not have any known security vulnerabilities and the secure enclave is configured correctly.
It is a further objective of the invention to provide the above system, wherein if the public keys of a secure enclave module have not been verified by the secure enclave attestation server, a. the secure enclave module is further configured to generate a secure enclave report comprising i. the code measurements of the TCB; and ii. public keys of the secure enclave module; b. the untrusted host module is further configured to receive the secure enclave report and send it with a remote attestation request to the secure enclave attestation module; and c. the secure enclave attestation module is further configured to generate a new secure enclave attestation, secure enclave verification signature, and secure enclave verification certificate and sending them to the untrusted host module.
It is a further objective of the invention to provide the previous system, further comprising a quoting module configured to sign the secure enclave report.
It is a further objective of the invention to provide any one of the above systems, wherein the public keys belonging to the secure enclave are randomly generated, derived from the unique measurement of the TCB code, or any combination thereof.
It is a further objective of the invention to provide any one of the above systems, wherein the data owner device is further configured to verify the secure enclave verification credentials and encryption public key before encrypting private data with a symmetric key algorithm.
It is a further objective of the invention to provide any one of the above systems, wherein the secure enclave module is further configured to encrypt and save the access credentials for later use.
It is a further objective of the invention to provide any one of the above systems, wherein the secure enclave module is further configured to include non-private data in the attestation envelope.
It is a further objective of the invention to provide the previous system, wherein the non-private data comprises any combination of data identifying the data owner and a data response timestamp.
It is a further objective of the invention to provide any one of the above systems, further comprising a verifier device provided access to the output of the attestation envelope verification server.
It is a further objective of the invention to provide a system for verifying and storing a privacy-preserving attestation, of properties of private data stored on a web server, on a blockchain and associating them with blockchain wallet addresses, the system comprising
• a data owner device;
• a web server;
• a data attestation server comprising an untrusted host and a secure enclave module; a secure enclave attestation server;
• an attestation envelope verification module and a secure enclave attestation verification module of a verification smart contract;
• a blockchain network a decentralized finance smart contract that may represent a liquidity pool whereby release of funds is dependent upon verification of the attestation envelope which may represent financial risk credentials of an individual, organization or document, such as an invoice, or privacypreserving proof of KYC/KYB/KYT/AML credentials of decentralized finance investors; wherein the system is configured to perform steps of a. the untrusted host module configuring the secure enclave module and generates a report about the configuration and TCB code running in the secure enclave module; b. the untrusted host module verifying the report with the secure enclave attestation server; c. the data owner device sending a request for a privacy-preserving attestation of private data to the untrusted host module and receiving a public encryption key for the enclave in reply; d. the data owner device signing a message with a blockchain wallet private key of a data owner and sending the signed message and blockchain wallet signature along with their web service credentials to the secure enclave; e. the secure enclave fetching private data and performing privacy-preserving computations on the private data and producing a data attestation envelope comprising the signed message and the blockchain wallet signature in the attestation data envelope with the result of the computation, signing the envelope and returning it to the untrusted host module; f. the untrusted host module or data owner device uploading the attestation data envelope and secure enclave verification to an attestation envelope verification module of a smart contract verification server;
g. the secure enclave attestation verification module verifying the public keys belong to a secure enclave and the signature of the attestation data envelope is valid and extracting the original blockchain wallet address from the blockchain wallet signature and signed message; and h. the blockchain smart contract acting upon correct verification of the attestation envelope by sending the result to a blockchain of a decentralized finance smart contract that may represent a liquidity pool whereby release of funds is dependent upon verification of the attestation envelope which may represent financial risk credentials of an individual, organization or document, such as an invoice, or privacy-preserving proof of KYC/KYB/KYT/AML credentials of decentralized finance investors.
It is a further objective of the invention to provide a method for providing a verified privacy-preserving attestation of properties of private data stored on a web service, characterized by steps of a. obtaining a system for providing a verified privacy-preserving attestation of properties of private data stored on a web service; b. the untrusted host module, configured to mediate communication to and from the secure enclave module, receiving a data attestation request; c. the untrusted host module sending a secure enclave attestation packet for the secure enclave module — comprising a secure enclave attestation, a secure enclave attestation signature, and an X.509 secure enclave attestation signing certificate — generated by the secure enclave attestation module, to the data owner device; the secure enclave attestation attesting that the secure enclave module associated with the untrusted host module is secure and has a valid trusted computing base (TCB), the secure enclave attestation further comprising a unique measurement of the TCB code and the public keys belonging to the secure enclave; d. the data owner device requesting a public key of the secure enclave module; e. the data owner device verifying that the public key of the secure enclave module is identical to the public key provided in the secure enclave attestation;
f. the data owner device sending credentials for accessing private data stored on a web server to the secure enclave module, encrypted with a secure symmetric key algorithm; g. the secure enclave module making a request for a TLS -encrypted HTTPS connection to the web server to retrieve the private data; h. the secure enclave module performing a TLS handshake with the web server, thereby obtaining a TLS service certificate of the web server; i. the secure enclave module decrypting an HTTPS response from the web server, the HTTPS response encapsulating the private data; j. the secure enclave module computing one or more requisite properties of the private data; k. the secure enclave module constructing an attestation envelope, comprising i. the web server TLS service certificate; ii. the computed requisite properties of the private data; iii. the attestation envelope signature of the secure enclave module for the above data. l. the untrusted host module receiving the attestation envelope and inserting the secure enclave attestation, secure enclave attestation signature, and X.509 secure enclave attestation signing certificate; m. the untrusted host module sending the attestation envelope to the attestation envelope verification server; n. the attestation envelope verification server verifying the attestation envelope, comprising steps of i. checking that the secure enclave attestation verification report is valid and the report was signed by a private key corresponding to the public key certificate chain (a list of certificates where the parent certificate signs the child certificate) and ultimately signed by the root certificate authority of the hardware manufacturer; and
ii. checking that the public keys reported in the secure enclave attestation packet matches the secure enclave public keys and contains the unique measurement of the TCB code; iii. checking that the web service TLS server certificate chain is valid; iv. checking that the computed property is signed by a key that is paired with the secure enclave module; and v. checking that the untrusted host module does not have any known security vulnerabilities and the secure enclave is configured correctly.
It is a further objective of the invention to provide the above method, wherein if the public keys of a secure enclave module have not been verified by the secure enclave attestation server, the method further comprises steps of i. the secure enclave module generating a secure enclave report comprising i. the code measurements of the TCB; and ii. public keys of the secure enclave module; j. the untrusted host module receiving the secure enclave report and sending it with a remote attestation request to the secure enclave attestation module; and k. the secure enclave attestation module generating a new secure enclave attestation, secure enclave verification signature, and secure enclave verification certificate and sending them to the untrusted host module.
It is a further objective of the invention to provide the previous method, further comprising a step of a quoting module signing the secure enclave report.
It is a further objective of the invention to provide any one of the above methods, wherein the public keys belonging to the secure enclave are randomly generated, derived from the unique measurement of the TCB code, or any combination thereof.
It is a further objective of the invention to provide any one of the above methods, further comprising a step of the data owner device verifying the secure enclave verification credentials and encryption public key before encrypting private data with a symmetric key algorithm.
It is a further objective of the invention to provide any one of the above methods, further comprising a step of the secure enclave module encrypting and saving the access credentials for later use.
It is a further objective of the invention to provide any one of the above methods, further comprising a step of the secure enclave module including non-private data in the attestation envelope.
It is a further objective of the invention to provide the previous method, wherein the non-private data comprises any combination of data identifying the data owner and a data response timestamp.
It is a further objective of the invention to provide any one of the above methods, further comprising a step of providing a verifier device access to the output of the attestation envelope verification server.
It is a further objective of the invention to provide a method for verifying and storing a privacy-preserving attestation, of properties of private data stored on a web server, on a blockchain and associating them with blockchain wallet addresses, the method comprising steps of a. the untrusted host module configuring the secure enclave module and generates a report about the configuration and TCB code running in the secure enclave module; b. the untrusted host module verifying the report with the secure enclave attestation server; c. the data owner device sending a request for a privacy-preserving attestation of private data to the untrusted host module and receiving a public encryption key for the enclave in reply; d. the data owner device signing a message with a blockchain wallet private key of a data owner and sending the signed message and blockchain wallet signature along with their web service credentials to the secure enclave; e. the secure enclave fetching private data and performing privacy-preserving computations on the private data and producing a data attestation envelope comprising the signed message and the blockchain wallet signature in the
attestation data envelope with the result of the computation, signing the envelope and returning it to the untrusted host module; f. the untrusted host module or data owner device uploading the attestation data envelope and secure enclave verification to an attestation envelope verification module of a smart contract verification server; g. the secure enclave attestation verification module verifying the public keys belong to a secure enclave and the signature of the attestation data envelope is valid and extracting the original blockchain wallet address from the blockchain wallet signature and signed message; and h. the blockchain smart contract acting upon correct verification of the attestation envelope by sending the result to a blockchain of a decentralized finance smart contract that may represent a liquidity pool whereby release of funds is dependent upon verification of the attestation envelope which may represent financial risk credentials of an individual, organization or document, such as an invoice, or privacy-preserving proof of KYC/KYB/KYT/AML credentials of decentralized finance investors.
BRIEF DESCRIPTION OF THE DRAWINGS
Figs. 1 and 2 show a high-level and detailed flow diagram, respectively, of a system and method for providing a verified privacy-preserving attestation of properties of private data stored on a web service, according to some embodiments of the invention.
Fig. 3 shows a functional block diagram of a system for providing a verified privacypreserving attestation of properties of private data stored on a web service, according to some embodiments of the invention.
Fig. 4 schematically show the sources of elements in the attestation envelope, according to some embodiments of the invention.
Fig. 5 shows a flow diagram of how each element of an attestation envelope is produced and signed, according to some embodiments of the invention.
Fig. 6 shows a list of steps of a method for providing a verified privacy-preserving attestation of properties of private data stored on a web service, according to some embodiments of the invention.
Fig. 7 shows a system for verifying and storing a verified privacy-preserving attestation of properties of private data on a blockchain and associating them with blockchain wallet addresses.
DETAILED DESCRIPTION
Definitions
Computing device refers to any device with at least a processor and non-transitory computer-readable medium (CRM), such as read-only memory, RAM memory, flash memory, or a disk drive. In this disclosure, two or more elements defined as computing devices does not preclude the computing devices sharing one or more common processors.
Instructions refers to code stored in CRM, and executable by a processor.
A web server provides web services of a provider (e.g., bank, government, accounting software, ERP server, KYC, KYB, KYT, AML) holding private data of one or more data owners. The web services are provided over a secure internet data transfer protocol such as HTTPS. In preferred embodiments, the web services are standard; no modification to the web server is required for its interoperability with a system of the invention. Typically, a web server comprises an API that services requests from external servers, devices, and modules.
Data owner device refers to a computing device comprising a non-transitory computer-readable medium storing, 1) credentials needed to access private data stored on a web service or instructions authorizing retrieval thereof; 2) instructions for verifying that secure communication with a secure enclave module has been established; and 3) instructions to a processor for securely initiating and verifying, as further described herein, a privacypreserving data attestation of one or more properties of the private data, such as whether or not the private data meets a one or more requisite criteria. The data owner device may further comprise a user interface configured for entering personal access credentials (e.g., password, fingerprint) and for the data owner to authorize data attestations. Actions of the data owner device described herein may be performed automatically by the data owner device and/or may be done upon the data owner interacting with the user interface of the data owner device.
A data attestation server refers to one or more computing devices of an entity providing data attestation services.
A secure enclave module refers to a computing device of a data attestation server comprising a non-transitory computer-readable medium storing instructions to a processor for securely, 1) receiving a data attestation request and access credentials from a data owner device; 2) fetching a data owner’s private data from a web server; and 3) computing one or more properties of the private data (e.g. whether the private data meets a requisite criterion) and providing a data attestation thereto. The signing of the data attestation and other measures to ensure data validity and privacy are further described herein. The secure enclave module contains a set of asymmetric public and private cryptographic keys used for various cryptographic functions. The keys can either be random and unique to a utilization instance of secure enclave module or derived from a unique measurement of the secure enclave module’s TCB code. In this context, security refers to the memory of the enclave being inaccessible to the host system regardless of the permission level.
A secure enclave quoting module refers to a computing device of the data attestation server comprising a non-transitory computer-readable medium storing instructions to a processor for signing a report of the secure enclave module with a private key to form a quote.
Instructions and data in the secure enclave and secure enclave quoting modules are enabled, for example, by the Intel Software Guard Extensions (SGX), built-in security code stored in protected memory of a processor.
An untrusted host module refers to a computing device of the data attestation server comprising a non-transitory computer-readable medium storing instructions for mediating communication of the secure enclave and secure quoting enclave modules of the data attestation server with servers and devices external to the data attestation server.
Verifier device refers to a to a computing device comprising a non-transitory computer-readable medium storing instructions to a processor for receiving and verifying, as further described herein, a privacy-preserving attestation that, 1) the web server holds data belonging to the data owner; and 2) the same data has undergone the necessary privacypreserving computation to determine whether the data meets the criterion, leading to a shared output, without learning anything else about the data.
Each of the servers, modules, and devices described herein may be embodied within a single computing device. Conversely, a functions server, module, or device, as described
herein, may be distributed over a plurality of computing devices, interconnected, as needed, via one or more means of communication employing appropriate security measures known in the art. Furthermore, the plurality of computing devices of a module may be delegated to different entities with common authorizations. A server, module, or device may be cloudbased, in whole or in part.
A data attestation is the result of a computation made in a secure enclave module, attesting that private data has one or more specified properties.
A secure enclave attestation server attests that a secure enclave is in fact secure and has a valid trusted computing base (TCB). As a non-limiting example, the secure enclave attestation server may comprise an Intel IAS attestation cloud server.
An attestation envelope verification report attests that the secure enclave module received the private data from the web server, that the data attestation was computed with the TCB programming code specified in the secure enclave attestation, and that the computation was in fact based on the private data.
Reference is now made to Fig. 1, showing a high-level workflow diagram of a system and method for providing verified privacy-preserving attestation of properties of private data stored on a web service, according to some embodiments of the invention.
In step SI, a data owner device 105 (e.g., a personal computer or smartphone) effects storage or modification of data in a web server 140. For example, a bank depositor (the data owner), uses their smartphone to initiate transactions that modify their account balance (the data) on a bank’s server (the web server 140).
In S2, upon a third party’s request to a data attestation server 110 for an attestation, an untrusted host module 115 of the data attestation server 110 summons a secure enclave verification module 125 to verify the security of a secure enclave module 120 of the data attestation server 110.
In S3, the data owner device 105 requests from the data attestation server 110 verification of the security of the secure enclave module 120. Upon checking the authenticity of the verification, assuring that the secure enclave module 120 is secure, the data owner device 105 provides the data attestation server 110 access credentials (e.g. login and/or OAuth) required to access the data owner’s data stored on the web server 140.
In S4, the untrusted host module 115, equipped with the data owner’s access credentials, retrieves the data owner’s data, on behalf of the data owner, from the web server 140, via the web server API 140A, and summons the secure enclave module 120 to perform a security-preserving attestation. For example, that the depositor’s account balance is at least $10,000.
In S5, the secure enclave 120 produces a privacy-preserving data attestation envelope and shares it with the data owner device 105. The attestation envelope includes attestation credentials, as further described herein.
In S6, a verifying device 145 calls an attestation envelope verification server 130.
In S7, the verifying device 145 verifies the privacy-preserving data attestation envelope. The attestation envelope verification is now available to the third party requesting the attestation.
Reference is now made to Fig. 2, showing a detailed workflow diagrams of a system and method for providing verified privacy-preserving attestation of properties of private data stored on a web service, according to some embodiments of the invention. Numerical references in Fig. 2 refer to the same-referenced step or element in the workflow presented in Fig. 1, but in some cases with more detail. In some references in Fig. 2, a letter after a reference number (e.g., S2B, 120C) denotes a division, stored instructions, or stored data of the corresponding feature referenced in Fig. 1.
At step SI, a client application 105A (e.g., a web browser or mobile app) of a data owner device 105 — under the agency of a data owner 106 — stores data in a web server 140. When the data owner device 105 (or a verifier device 145, a device of an authorized party) initiates a request for a verified privacy-preserving data attestation from a data attestation server 110 (step not shown), an untrusted host module 115 of the data attestation server 110 receives the attestation request and passes it directly to a secure enclave module 120 of the data attestation server 110.
The secure enclave module 120, running a secure application defined by the TCB code 120E, receives the attestation request, and then at S2A responds to the untrusted host module 115 with a secure enclave report 120F comprising a set of public keys 120B (corresponding to a set of private keys 120A) and a unique measurement 120D (such as a cryptographic hash) of the TCB code 120C running in the secure enclave module 120. The untrusted host module 115 receives the secure enclave report 120F and dispatches it to a secure quoting enclave
module 121 (typically provided by the same hardware manufacturer as the secure enclave module 120). At S2B, the secure quoting enclave module 121 verifies and signs the report 120F with a report signing attestation private key 121B to form a quote 121A. The untrusted host module 115 receives the quote 121A and dispatches it to a secure enclave attestation server 125. At S2C the secure enclave attestation server 125 attests that the secure enclave module 120 is secure by using the quote 121A to verify the platform the enclave is running on is secure and the quoting enclave is certified by the hardware manufacturer, and provides a secure enclave attestation to the untrusted host 115.
At S3A, the client application 105A verifies the validity of the secure enclave attestation with the untrusted host module 115, thereby verifying that the secure enclave module 120 is in fact secure and assuring the data owner 106 that her data stored on the web server 140 will remain private. Upon positive verification, at S3B the client application 105A provides the secure enclave module 120 (via the untrusted host module 115) with web server access credentials 105B to the private data on the web server 140. The provided access credentials 105B are encrypted so that only the secure enclave module 120 can read them.
At S4, the secure enclave module 120, in communication with the web server API 140A through the untrusted host module 115, retrieves private data (and, optionally, nonprivate data) from the web server 140, and then the secure enclave module 120 runs a privacypreserving computation of a requisite property of the private data.
At S5A, the secure enclave module 120 encapsulates the result of the property computation and other attestation data (further described herein) in an attestation envelope, signs the attestation envelope with one of the private keys 120A, and returns the attestation envelope and signature to the untrusted host module 115. At S5B, the untrusted host module 115 shares the attestation envelope and signature with a verifier application 145A (e.g., a browser or mobile app) of a verifier device 145, under the agency of a verifying entity 146.
At S6, the verifier application shares the attestation envelope with an attestation envelope verification server 130. At S7, the attestation envelope verification server 130 performs a series of checks (further described herein), including verifying TLS service certificates (preferably TLS, although other protocols are also possible), to ascertain that a secure enclave received the private data from the web service and performed the property calculation and returns the result of the checks to the verifier application 145A. The data
verifier 146 is assured that the private data 140C of the data owner 106 meets the requisite property.
The invention combines aspects of the TLS protocol with a secure enclave attestation capability. A valid secure enclave attestation is an attestation that the secure enclave module 120 is genuine and secure and running the expected software (TCB), assuring that the private data is processed in secret and that the expected code is executed.
During communication between the secure enclave module 120 and the web server (at step S4), a public key certificate and certificate chain (preferably X.509, although other formatting standards are possible) of the web server 140 is used in the TLS protocol to derive the keys used by the web server 140 to encrypt the response data of the web server 140. That is, in the basic TLS handshake, 1) the web server 140 provides an X.509; 2) the web server 140 and secure enclave 120 share secrets, such as random numbers, public keys, or premaster secrets that are encrypted using the public key of the web server 140. The X.509 and the secrets are combined by the parties to form a master secret used to authenticate and encrypt future messages. Performing the TLS handshake within the TCB code 120B of the secure enclave 120 and including the returned certificate chain in the signed attestation data envelope proves that the data came from the web server 140 bearing the X.509 server certificate and organization identity certificate. The web server 140 optionally provides a timestamp in its response (header) to the secure enclave module 120. The timestamp is used to attest the time of response.
The attestation envelope contains the secure enclave attestation and the web server certificate — proving that the data used in the computation originated from the web server 140 — and the output of the privacy-preserving computation, a unique measurement (such as a cryptographic hash) of the computation source code in the TCB 120C, non-private data (if any), and the public keys of the secure enclave module 120, such that a verifier device 145 can verify the whole package and be assured of its integrity, thereby satisfying the verifier 146 that the data 140C of the data owner 106 stored in the web server 140 meets the requisite criteria.
Combining the certificates and keys generated during the TLS handshake with the secure enclave capability enables a proof that the data coming into the enclave was from a standard (unmodified) web server API provided by the web service provider.
Reference is now made to Fig. 3, showing a system 100 for providing a verified privacy-preserving attestation of properties of private data stored on a web service, according to some embodiments of the invention.
The system 100 comprises a data owner device 105, used to by a data owner to access private data stored and which stores or authorizes access to credentials to access private data of a data owner stored in a web server 140. The access credentials can include a username/password, biometric data such as finger or iris prints, an API token and secret, access delegation authority such as OAuth2, or any combination thereof.
The data owner device 105 may comprise a computing device (e.g., a desktop, notebook, tablet, smartphone, smart appliance, etc.) with access software, such as a web browser, to the web server 140. Data transfer between the data owner device 105 and the web server 140 is by a secure internet data transfer protocol, preferably HTTPS although other secure protocols may be used. The data owner device 105 may comprise a user interface for the data owner to authorize the verified privacy-preserving data attestation of their private data. The user interface may further provide access to the data owner for viewing their private data and non-private data stored in the web server 140 and for executing other privileges afforded the data owner by the web service (editing, transactions, etc.)
The system further comprises a data attestation server 110, which can be provided by a data attestation service entity. The data attestation server 110 includes an untrusted host module 115; and a secure enclave module 120 enabled to access the private data and compute its requested properties — in a privacy-preserving manner, as further described herein. In preferred embodiments, the untrusted host module 115 is provided to mediate secure communication between the secure enclave module 120 and modules external to the data attestation server 110, as it is best practice is to keep code in the secure enclave module 120 to a minimum, in order to facilitate attestation that the secure enclave 120 is secure. Therefore, some services described herein (e.g. the web server 140 exposing a communication port and handling non-encrypted aspects of web transport and communication protocol) can be run in the untrusted host module 115 alongside the secure enclave module 120, or, alternatively in the secure enclave module 120 itself. The untrusted host module 115 also preferably stores and presents a secure enclave attestation, further described herein, although in alternative embodiments the secure enclave attestation could reside elsewhere, including in the secure enclave itself.
In preferred embodiments, the TCB code of a secure enclave module 120 handles common privacy-preserving requests to different web services.
The system further comprises a secure enclave attestation module 125, which provides an attestation that the secure enclave module is secure, has a valid trusted computing base (TCB), and owns the private keys corresponding to a set of public keys.
An untrusted host module 115 typically configures, launches, and manages several secure enclave modules 120 in the data attestation server 110 for processing data attestation requests. The data owner device 105 sends a request for a verified privacy-preserving data attestation of one or more properties of the private data to the untrusted host module 115. The desired properties may be included with the request or may be stored in the untrusted host module 115 (e.g., to fulfill a standing order for periodic data attestations). Upon receiving the request, the untrusted host module 115 checks the public keys of the secure enclave module 120 that will service the request. If the public keys have not been previously verified as belonging to a secure enclave, the untrusted host module 115 then sends a request to the secure enclave attestation module 125 to attest to the secure enclave module 120. The secure enclave attestation module 125 replies with a secure enclave attestation packet for the secure enclave module 120, comprising a secure enclave attestation containing the public keys and a unique measurement of the TCB, a secure enclave attestation signature, and an X.509 secure enclave attestation signing certificate. In some embodiments, the untrusted host module 115 retains the secure enclave attestation and associated public keys for the lifetime of the secure enclave module 120. In some embodiments, the untrusted host module 115 will de-allocate, i.e. instruct the secure enclave module 120 to delete the public key, after the data attestation. The untrusted host module 115 may implement software updates to the secure enclave module 120. After a software update, the untrusted host module 115 requests new secure enclave attestation from the secure enclave attestation module 125.
Whether the secure enclave module 120 is newly configured, or the secure enclave module 120 is available at the time of the data attestation request, the untrusted host module 115 forwards the secure enclave attestation and at least one of the public encryption keys to the data owner device 105. The data owner device 105 may independently verify the secure enclave attestation, thereby determining that the enclave is genuine and secure, and the public keys can be used to encrypt private data.
The data owner device 105 generates a key pair consisting of a public and private key. A shared symmetric key is generated using a key agreement protocol such as Elliptic Curve Diffie-Hellman (ECDH). A corresponding symmetric key can be generated in the secure enclave module 120 using the public data owner device 105 key and the private encryption key of the secure enclave module 120.
Now that a private, trusted connection has been established between the data owner device 105 and the secure enclave module 120 via the symmetric key, the data owner device 105 sends the web service access credentials (e.g. username/password, biometrics, secure token) to the secure enclave module 120, encrypted using a secure symmetric key algorithm, such as the Advanced Encryption Standard (AES). The secure enclave module can either store the access credentials in temporary memory so that they are removed after the request is completed or encrypt them and save them to memory so that they can be retrieved for later requests allowing for computations on data properties that may change over time.
With the secure enclave module 120 holding the access credentials, the secure enclave module 120 requests a TLS -encrypted HTTPS connection to the web server 140, via the untrusted host module 115. The secure enclave module 120 performs a TLS handshake with the web server 140, thereby obtaining a TLS service certificate of the web server 140. The secure enclave module 120 provides the access credentials to the web server 140 and requests the data owner’s private data. The secure enclave module 120 receives and decrypts the HTTPS response, from the web server 140, within which the private data is encapsulated. The secure enclave module 120 computes the requisite properti(es) of the private data. The secure enclave module 120 constructs an attestation envelope, comprising a. TLS server certificate received from the web server 140; b. the computed requisite property of the private data 140C; c. optionally, non-private data of the data owner, such as data proving the identity of the data owner 106, and a timestamp from the HTTPS response header; and d. a signature of the above data generated with a private signing key corresponding to one of the public keys included in the report data, generated with a secure asymmetric key signing algorithm such as RSA.
The untrusted host module 115 receives the attestation envelope and adds the secure enclave attestation report, secure enclave attestation signature and secure enclave verifier
certificate of the secure enclave module 120 to the attestation envelope. Fig. 4 schematically shows the sources of elements in the attestation envelope — certificates, signatures, and artifacts. Fig. 5 shows a flow diagram of how each element is produced and signed.
The system 100 further comprises an attestation envelope verification server 130. The untrusted host module 115 sends the attestation envelope to the attestation envelope verification server 130. The attestation envelope is also returned to the data owner device 105, and may be shared with an attestation envelope verification server 130 by other communication means such as email, file sharing, SMS, text messages. The attestation envelope to the attestation envelope attestation module 130 constructs an attestation envelope attestation report, based on its checking that a. the secure enclave attestation certificate, secure enclave attestation report, and secure enclave attestation signature are valid and provided by the expected enclave attestation party; and b. the secure enclave attestation report matches the secure enclave public keys and contains the unique measurement of the secure enclave TCB code; c. the TLS server certificate chain is valid; d. the computed property is signed by a key that is paired with the secure enclave module 120; and e. the untrusted host module 115 does not have any known security vulnerabilities and the secure enclave module 120 is configured correctly.
The checks by the attestation envelope verification server 130 may be conducted offline, with no connection required to the other modules. The results of the checks by the attestation envelope verification server 130 are shared with a verifier 145 interested in knowing whether the data owner’s private data meet the requisite properties.
Reference is now made to Fig. 6, showing a method 200 for providing a verified privacy-preserving attestation of properties of private data stored on a web service. The method 200 comprises steps of a. the untrusted host module, configured to mediate communication to and from the secure enclave module, receiving a data attestation request 210;
b. the untrusted host module sending a secure enclave attestation packet for the secure enclave module — comprising a secure enclave attestation, a secure enclave attestation signature, and an X.509 secure enclave attestation signing certificate — generated by the secure enclave attestation module, to the data owner device 215; the secure enclave attestation attesting that the secure enclave module associated with the untrusted host module is secure and has a valid trusted computing base (TCB), the secure enclave attestation further comprising a unique measurement of the TCB code and the public keys belonging to the secure enclave; c. the data owner device requesting a public key of the secure enclave module 225; d. the data owner device verifying that the public key of the secure enclave module is identical to the public key provided in the secure enclave attestation 230; e. the data owner device sending credentials for accessing private data stored on a web server to the secure enclave module, encrypted with a secure symmetric key algorithm 235; f. the secure enclave module making a request for a TLS -encrypted HTTPS connection to the web server to retrieve the private data 240; g. the secure enclave module performing a TLS handshake with the web server, thereby obtaining a TLS service certificate of the web server 245; h. the secure enclave module decrypting an HTTPS response from the web server, the HTTPS response encapsulating the private data 250; i. the secure enclave module computing one or more requisite properties of the private data 255; j. the secure enclave module constructing an attestation envelope 260, comprising i. the web server TLS service certificate; ii. the computed requisite properties of the private data; iii. the attestation envelope signature of the secure enclave module for the above data.
k. the untrusted host module receiving the attestation envelope and inserting the secure enclave attestation, secure enclave attestation signature, and X.509 secure enclave attestation signing certificate 265; l. the untrusted host module sending the attestation envelope to the attestation envelope verification server 270; m. the attestation envelope verification server verifying the attestation envelope 275, comprising steps of i. checking that the secure enclave attestation verification report is valid and the report was signed by a private key corresponding to the public key certificate chain (a list of certificates where the parent certificate signs the child certificate) and ultimately signed by the root certificate authority of the hardware manufacturer; and ii. checking that the public keys reported in the secure enclave attestation packet matches the secure enclave public keys and contains the unique measurement of the TCB code; iii. checking that the web service TLS server certificate chain is valid; iv. checking that the computed property is signed by a key that is paired with the secure enclave module; and v. checking that the untrusted host module does not have any known security vulnerabilities and the secure enclave is configured correctly.
Reference is now made to Fig. 7, showing a flow diagram of a system and method for verifying and storing privacy-preserving attestation of properties of private data on a blockchain and associating them with blockchain wallet addresses.
At S300, an untrusted host module 415 configures a secure enclave module 420, and then generates a report about the configuration and TCB code being run in the secure enclave module 420. At S305, the untrusted host 415 verifies the report using a secure enclave attestation server 425. At S310, a data owner device 405 sends a request for a privacypreserving attestation of private data to the untrusted host module 420 and receives a public encryption key for the enclave. At S315, the data owner module verifies the secure enclave
module is secure, signs a message with their blockchain wallet private key, and sends the signature, signed message and web service credentials to the secure enclave 420, all encrypted with a secure symmetric key algorithm.
At S320, the secure enclave module uses the web service credentials to retrieve private data on behalf of the data owner, and then runs a privacy-preserving computation on that data. The secure enclave module produces a data attestation envelope comprising the result of the computation, optional public data, the blockchain wallet signature, and the signed message in an attestation data envelope and signs the data attestation envelope. At S325, the secure enclave module returns the attestation data envelope and signature to the untrusted host module. At S330, the untrusted host module (or in some embodiments, the data owner device) combines the attestation data envelope with the secure enclave verification and uploads them to an attestation envelope verification module of a smart contract verification server.
The attestation envelope verification module 430 checks a list 440C of verified secure enclave public keys stored therein by checking if the public keys used in the privacypreserving attestation from the untrusted host have been verified and saved on the blockchain network of the verification smart contract 435 previously. If the public keys are not on the list 440C, at S335 the secure enclave attestation verification module 440 is summoned to check the secure enclave attestation, ensuring that it complies with a list 440A of allowed TCB code versions and a list 440B of allowed configurations. If the secure enclave verification module 440 validates the secure enclave attestation successfully, the public keys are saved to the blockchain network of the verification smart contract 435. The attestation data verification module 430 then verifies the attestation data envelope signature. If the signature complies, the blockchain wallet address is extracted from the signature originally sent to the secure enclave from the data owner. The verified attestation data envelope can then be shared, at S340, with other smart contracts 445 to trigger a number of decentralized finance actions associated with the data owner’s wallet address.
Claims
1. A system 100 for providing a verified privacy-preserving attestation of properties of private data stored on a web service, comprising
• a data owner device 105;
• a data attestation server 110 comprising an untrusted host 110 and a secure enclave module 115;
• a secure enclave attestation module 125;
• an attestation envelope verification module 130; wherein the system is configured for performing the following steps: a. the untrusted host module, configured to mediate communication to and from the secure enclave module, receiving a data attestation request; b. the untrusted host module sending a secure enclave attestation packet for the secure enclave module — comprising a secure enclave attestation, a secure enclave attestation signature, and an X.509 secure enclave attestation signing certificate — generated by the secure enclave attestation module, to the data owner device; the secure enclave attestation attesting that the secure enclave module associated with the untrusted host module is secure and has a valid trusted computing base (TCB), the secure enclave attestation further comprising a unique measurement of the TCB code and the public keys belonging to the secure enclave; c. the data owner device requesting a public key of the secure enclave module; d. the data owner device verifying that the public key of the secure enclave module is identical to the public key provided in the secure enclave attestation; e. the data owner device sending credentials for accessing private data stored on a web server to the secure enclave module, encrypted with a secure symmetric key algorithm; f. the secure enclave module making a request for a TLS -encrypted HTTPS connection to the web server to retrieve the private data;
g. the secure enclave module performing a TLS handshake with the web server, thereby obtaining a TLS service certificate of the web server; h. the secure enclave module decrypting an HTTPS response from the web server, the HTTPS response encapsulating the private data; i. the secure enclave module computing one or more requisite properties of the private data; j. the secure enclave module constructing an attestation envelope, comprising i. the web server TLS service certificate; ii. the computed requisite properties of the private data; iii. the attestation envelope signature of the secure enclave module for the above data. k. the untrusted host module receiving the attestation envelope and inserting the secure enclave attestation, secure enclave attestation signature, and X.509 secure enclave attestation signing certificate; l. the untrusted host module sending the attestation envelope to the attestation envelope verification server; m. the attestation envelope verification server verifying the attestation envelope, comprising steps of i. checking that the secure enclave attestation verification report is valid and the report was signed by a private key corresponding to the public key certificate chain (a list of certificates where the parent certificate signs the child certificate) and ultimately signed by the root certificate authority of the hardware manufacturer; and ii. checking that the public keys reported in the secure enclave attestation packet matches the secure enclave public keys and contains the unique measurement of the TCB code; iii. checking that the web service TLS server certificate chain is valid;
iv. checking that the computed property is signed by a key that is paired with the secure enclave module; and v. checking that the untrusted host module does not have any known security vulnerabilities and the secure enclave is configured correctly. The system of claim 1, wherein if the public keys of a secure enclave module have not been verified by the secure enclave attestation server, a. the secure enclave module is further configured to generate a secure enclave report comprising i. the code measurements of said TCB; and ii. public keys of said secure enclave module; b. the untrusted host module is further configured to receive said secure enclave report and send it with a remote attestation request to the secure enclave attestation module; and c. the secure enclave attestation module is further configured to generate a new said secure enclave attestation, secure enclave verification signature, and secure enclave verification certificate and sending them to the untrusted host module. The system of claim 1, further comprising a quoting module configured to sign said secure enclave report. The system of claim 1, wherein said public keys belonging to the secure enclave are randomly generated, derived from the unique measurement of the TCB code, or any combination thereof. The system of claim 1, wherein the data owner device is further configured to verify the secure enclave verification credentials and encryption public key before encrypting private data with a symmetric key algorithm. The system of claim 1, wherein said secure enclave module is further configured to encrypt and save the access credentials for later use.
29 The system of claim 1, wherein the secure enclave module is further configured to include non-private data in the attestation envelope. The system of claim 7, wherein said non-private data comprises any combination of data identifying the data owner and a data response timestamp. The system of claim 1, further comprising a verifier device provided access to the output of the attestation envelope verification server. A system for verifying and storing a privacy-preserving attestation, of properties of private data stored on a web server, on a blockchain and associating them with blockchain wallet addresses, the system comprising
• a data owner device 405;
• a web server 440;
• a data attestation server comprising an untrusted host 415 and a secure enclave module 420;
• a secure enclave attestation server 425;
• an attestation envelope verification module 430 and a secure enclave attestation verification module 440 of a verification smart contract;
• a blockchain network a decentralized finance smart contract 445; wherein said system is configured to perform steps of a. the untrusted host module configuring the secure enclave module and generates a report about the configuration and TCB code running in the secure enclave module; b. the untrusted host module verifying the report with the secure enclave attestation server; c. the data owner device sending a request for a privacy-preserving attestation of private data to the untrusted host module and receiving a public encryption key for the enclave in reply;
30 d. the data owner device signing a message with a blockchain wallet private key of a data owner and sending the signed message and blockchain wallet signature along with their web service credentials to the secure enclave; e. the secure enclave fetching private data and performing privacy-preserving computations on said private data and producing a data attestation envelope comprising the signed message and the blockchain wallet signature in the attestation data envelope with the result of the computation, signing the envelope and returning it to the untrusted host module; f. the untrusted host module or data owner device uploading the attestation data envelope and secure enclave verification to an attestation envelope verification module of a smart contract verification server; g. the secure enclave attestation verification module verifying the public keys belong to a secure enclave and the signature of the attestation data envelope is valid and extracting the original blockchain wallet address from the blockchain wallet signature and signed message; and h. the blockchain smart contract acting upon correct verification of the attestation envelope by sending the result to a blockchain of a decentralized finance smart contract. The system of claim 10, wherein said blockchain represents a liquidity pool whereby release of funds is dependent upon verification of the attestation envelope which may represent financial risk credentials of an individual, organization or document, such as an invoice, or privacy-preserving proof of KYC/KYB/KYT/AML credentials of a decentralized finance investor. A method for providing a verified privacy-preserving attestation of properties of private data stored on a web service, characterized by steps of a. obtaining the system of claim 1 205; b. the untrusted host module, configured to mediate communication to and from the secure enclave module, receiving a data attestation request 210;
31 c. the untrusted host module sending a secure enclave attestation packet for the secure enclave module — comprising a secure enclave attestation, a secure enclave attestation signature, and an X.509 secure enclave attestation signing certificate — generated by the secure enclave attestation module, to the data owner device 215; the secure enclave attestation attesting that the secure enclave module associated with the untrusted host module is secure and has a valid trusted computing base (TCB), the secure enclave attestation further comprising a unique measurement of the TCB code and the public keys belonging to the secure enclave; d. the data owner device requesting a public key of the secure enclave module 225; e. the data owner device verifying that the public key of the secure enclave module is identical to the public key provided in the secure enclave attestation 230; f. the data owner device sending credentials for accessing private data stored on a web server to the secure enclave module, encrypted with a secure symmetric key algorithm 235; g. the secure enclave module making a request for a TLS -encrypted HTTPS connection to the web server to retrieve the private data 240; h. the secure enclave module performing a TLS handshake with the web server, thereby obtaining a TLS service certificate of the web server 245; i. the secure enclave module decrypting an HTTPS response from the web server, the HTTPS response encapsulating the private data 250; j. the secure enclave module computing one or more requisite properties of the private data 255; k. the secure enclave module constructing an attestation envelope 260, comprising i. the web server TLS service certificate; ii. the computed requisite properties of the private data; iii. the attestation envelope signature of the secure enclave module for the above data.
32 l. the untrusted host module receiving the attestation envelope and inserting the secure enclave attestation, secure enclave attestation signature, and X.509 secure enclave attestation signing certificate 265; m. the untrusted host module sending the attestation envelope to the attestation envelope verification server 270; n. the attestation envelope verification server verifying the attestation envelope 275, comprising steps of i. checking that the secure enclave attestation verification report is valid and the report was signed by a private key corresponding to the public key certificate chain (a list of certificates where the parent certificate signs the child certificate) and ultimately signed by the root certificate authority of the hardware manufacturer; and ii. checking that the public keys reported in the secure enclave attestation packet matches the secure enclave public keys and contains the unique measurement of the TCB code; iii. checking that the web service TLS server certificate chain is valid; iv. checking that the computed property is signed by a key that is paired with the secure enclave module; and v. checking that the untrusted host module does not have any known security vulnerabilities and the secure enclave is configured correctly. The method of claim 12, wherein if the public keys of a secure enclave module have not been verified by the secure enclave attestation server, the method further comprises steps of a. the secure enclave module generating a secure enclave report comprising i. said code measurements of said TCB; and ii. public keys of said secure enclave module; b. the untrusted host module receiving said secure enclave report and sending it with a remote attestation request to the secure enclave attestation module; and
33 c. the secure enclave attestation module generating a new said secure enclave attestation, secure enclave verification signature, and secure enclave verification certificate and sending them to the untrusted host module. The method of claim 13, further comprising a step of a quoting module signing said secure enclave report. The method of claim 12, wherein said public keys belonging to the secure enclave are randomly generated, derived from the unique measurement of the TCB code, or any combination thereof. The method of claim 12, further comprising a step of the data owner device verifying the secure enclave verification credentials and encryption public key before encrypting private data with a symmetric key algorithm 220. The method of claim 12, further comprising a step of said secure enclave module encrypting and saving the access credentials for later use. The method of claim 12, further comprising a step of the secure enclave module including non-private data in the attestation envelope. The method of claim 18 wherein said non-private data comprises any combination of data identifying the data owner and a data response timestamp. The method of claim 12, further comprising a step of providing a verifier device access to the output of the attestation envelope verification server. A method for verifying and storing a privacy-preserving attestation, of properties of private data stored on a web server, on a blockchain and associating them with blockchain wallet addresses, the method comprising steps of a. the untrusted host module configuring the secure enclave module and generates a report about the configuration and TCB code running in the secure enclave module S300; b. the untrusted host module verifying the report with the secure enclave attestation server S305;
34 c. the data owner device sending a request for a privacy-preserving attestation of private data to the untrusted host module and receiving a public encryption key for the enclave in reply S310; d. the data owner device signing a message with a blockchain wallet private key of a data owner and sending the signed message and blockchain wallet signature along with their web service credentials to the secure enclave S315; e. the secure enclave fetching private data and performing privacy-preserving computations on said private data and producing a data attestation envelope comprising the signed message and the blockchain wallet signature in the attestation data envelope with the result of the computation, signing the envelope and returning it to the untrusted host module S325; f. the untrusted host module or data owner device uploading the attestation data envelope and secure enclave verification to an attestation envelope verification module of a smart contract verification server S330; g. the secure enclave attestation verification module verifying the public keys belong to a secure enclave and the signature of the attestation data envelope is valid and extracting the original blockchain wallet address from the blockchain wallet signature and signed message S335; and h. the blockchain smart contract acting upon correct verification of the attestation envelope by sending the result to a blockchain of a decentralized finance smart contract S340. The method of claim 21, further comprising a step of said blockchain representing a liquidity pool whereby release of funds is dependent upon verification of the attestation envelope which may represent financial risk credentials of an individual, organization or document, such as an invoice, or privacy-preserving proof of KYC/KYB/KYT/AML credentials of a decentralized finance investor.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US18/017,895 US20230269093A1 (en) | 2020-08-02 | 2021-08-01 | System and method for providing a verified privacy-preserving attestation of web service data properties |
IL300215A IL300215B2 (en) | 2020-08-02 | 2021-08-01 | System and Method for Providing a Verified Privacy-Preserving Attestation of Web Service Data Properties |
EP21852245.6A EP4189915A4 (en) | 2020-08-02 | 2021-08-01 | System and method for providing a verified privacy-preserving attestation of web service data properties |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063060077P | 2020-08-02 | 2020-08-02 | |
US63/060,077 | 2020-08-02 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2022029762A1 true WO2022029762A1 (en) | 2022-02-10 |
Family
ID=80117261
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/IL2021/050928 WO2022029762A1 (en) | 2020-08-02 | 2021-08-01 | System and method for providing a verified privacy-preserving attestation of web service data properties |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230269093A1 (en) |
EP (1) | EP4189915A4 (en) |
IL (1) | IL300215B2 (en) |
WO (1) | WO2022029762A1 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115001744A (en) * | 2022-04-27 | 2022-09-02 | 中国科学院信息工程研究所 | Cloud platform data integrity verification method and system |
WO2024028855A1 (en) * | 2022-08-02 | 2024-02-08 | Applied Blockchain LTD. | A system and method for monitoring and suspending smart contracts |
WO2024078229A1 (en) * | 2022-10-09 | 2024-04-18 | 中兴通讯股份有限公司 | Privacy data use method and apparatus based on privacy computing |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11954226B2 (en) * | 2021-08-17 | 2024-04-09 | International Business Machines Corporation | Verifiable privacy preserving computation |
US20230344812A1 (en) * | 2022-04-20 | 2023-10-26 | Bank Of America Corporation | System and method for establishing a secure session to authenticate dns requests via dynamically configurable trusted network interface controllers |
US20240061938A1 (en) * | 2022-08-18 | 2024-02-22 | NEC Laboratories Europe GmbH | Patching enclaves with shared resources |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002358415A (en) * | 2001-05-31 | 2002-12-13 | Mizuho Corporate Bank Ltd | Method and program for financial transaction |
US20180241572A1 (en) * | 2017-02-22 | 2018-08-23 | Intel Corporation | Techniques for remote sgx enclave authentication |
US20190228469A1 (en) * | 2018-01-22 | 2019-07-25 | Blend Labs, Inc. | Method and apparatus for a consumer controlled, decentralized financial profile |
WO2019168557A1 (en) * | 2018-02-27 | 2019-09-06 | Visa International Service Association | High-throughput data integrity via trusted computing |
RU2715796C1 (en) * | 2019-05-17 | 2020-03-03 | Постников Роман Владимирович | Device for safe calculation of function value using two secret data sets without compromising data sets and method of calculating social rating using device |
-
2021
- 2021-08-01 US US18/017,895 patent/US20230269093A1/en active Pending
- 2021-08-01 WO PCT/IL2021/050928 patent/WO2022029762A1/en unknown
- 2021-08-01 IL IL300215A patent/IL300215B2/en unknown
- 2021-08-01 EP EP21852245.6A patent/EP4189915A4/en active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002358415A (en) * | 2001-05-31 | 2002-12-13 | Mizuho Corporate Bank Ltd | Method and program for financial transaction |
US20180241572A1 (en) * | 2017-02-22 | 2018-08-23 | Intel Corporation | Techniques for remote sgx enclave authentication |
US20190228469A1 (en) * | 2018-01-22 | 2019-07-25 | Blend Labs, Inc. | Method and apparatus for a consumer controlled, decentralized financial profile |
WO2019168557A1 (en) * | 2018-02-27 | 2019-09-06 | Visa International Service Association | High-throughput data integrity via trusted computing |
RU2715796C1 (en) * | 2019-05-17 | 2020-03-03 | Постников Роман Владимирович | Device for safe calculation of function value using two secret data sets without compromising data sets and method of calculating social rating using device |
Non-Patent Citations (1)
Title |
---|
See also references of EP4189915A4 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115001744A (en) * | 2022-04-27 | 2022-09-02 | 中国科学院信息工程研究所 | Cloud platform data integrity verification method and system |
CN115001744B (en) * | 2022-04-27 | 2023-08-29 | 中国科学院信息工程研究所 | Cloud platform data integrity verification method and system |
WO2024028855A1 (en) * | 2022-08-02 | 2024-02-08 | Applied Blockchain LTD. | A system and method for monitoring and suspending smart contracts |
WO2024078229A1 (en) * | 2022-10-09 | 2024-04-18 | 中兴通讯股份有限公司 | Privacy data use method and apparatus based on privacy computing |
Also Published As
Publication number | Publication date |
---|---|
IL300215A (en) | 2023-03-01 |
EP4189915A1 (en) | 2023-06-07 |
IL300215B2 (en) | 2024-03-01 |
EP4189915A4 (en) | 2024-01-31 |
IL300215B1 (en) | 2023-11-01 |
US20230269093A1 (en) | 2023-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12015716B2 (en) | System and method for securely processing an electronic identity | |
US10685099B2 (en) | System and method for mapping decentralized identifiers to real-world entities | |
US20230269093A1 (en) | System and method for providing a verified privacy-preserving attestation of web service data properties | |
WO2021000337A1 (en) | System and method for mapping decentralized identifiers to real-world entities | |
US20230020193A1 (en) | Quantum-safe networking | |
AU2016235539B2 (en) | Automated attestation of device integrity using the block chain | |
US11323274B1 (en) | Certificate authority | |
US9124576B2 (en) | Configuring a valid duration period for a digital certificate | |
US12003505B2 (en) | Custom authorization of network connected devices using signed credentials | |
US20140164764A1 (en) | Assignment of digital signature and qualification for related services | |
US20220158840A1 (en) | Methods and systems for exchanging confidential information via a blockchain | |
CN112948789B (en) | Identity authentication method and device, storage medium and electronic equipment | |
US20210036865A1 (en) | Automatic form completion from a set of federated data providers | |
US11956374B2 (en) | Cryptographic signature delegation | |
JP2022545809A (en) | Secure environment for cryptographic key generation | |
US20220263818A1 (en) | Using a service worker to present a third-party cryptographic credential | |
US20230299958A1 (en) | Methods and systems for authenticating a candidate user of a first and as second electronic service | |
Nizam et al. | Issuing and Verifying of Blockchain Based Certificates | |
CN115150831A (en) | Processing method, device, server and medium for network access request |
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: 21852245 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
ENP | Entry into the national phase |
Ref document number: 2021852245 Country of ref document: EP Effective date: 20230302 |