Secure Enclave Key Provisioning for Protected Data on Untrusted Hosts
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing methods for protecting sensitive data or code on third-party devices, such as cloud servers or user PCs, are inadequate as they either expose the data to potential attacks or require high resource usage due to complex obfuscation techniques.
Innovation Solution
A method involving a secure execution environment (TEE) generates a key pair, sends the public key to an insecure environment, verifies and converts encrypted data using obfuscated program code, and decrypts it in the secure environment, ensuring only the enclave code can access the decrypted data.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If sophisticated obfuscation techniques are used to protect sensitive data or code, then the level of protection is improved, but resource requirements in terms of memory and software runtime are significantly increased
Solution Approach 1:
The system divides the execution environment into two distinct segments: a secure execution environment (SEE) for generating and protecting cryptographic keys, and an insecure execution environment (IEE) for running obfuscated code. This segmentation allows the sensitive key generation operations to occur in a protected context while the resource-intensive obfuscation and verification operations occur in the unprotected context, thereby achieving high protection levels without burdening the secure environment with excessive resource requirements.
Solution Approach 2:
The patent introduces an intermediary mechanism in the form of cryptographic key pairs and encrypted data structures that mediate between the secure and insecure environments. The public key acts as an intermediary that allows the IEE to verify authenticity and process obfuscated code without direct access to sensitive private keys, while the encrypted data structures serve as intermediaries that protect sensitive information during transmission and processing. This intermediary layer enables sophisticated protection without requiring the SEE to directly handle all resource-intensive operations.
2Adaptability or versatility
If code or data is made available on third-party devices to serve its intended purpose, then functionality is improved, but the risk of misuse through analysis, reverse engineering, or cloning increases
Solution Approach 1:
The system performs preliminary actions by generating cryptographic key pairs and encrypting sensitive data or code before deploying them to third-party devices. The secure execution environment预先 generates public-private key pairs and uses the public key to encrypt sensitive information, creating a protected state before the data leaves the secure environment. This preliminary encryption and key generation ensures that even if the deployed code is analyzed or reverse-engineered, the sensitive information remains protected without compromising the functionality of the deployed system.
Solution Approach 2:
The patent transforms the state of sensitive data by changing its cryptographic parameters - converting plaintext or unencrypted code into encrypted forms using asymmetric encryption. The data is transformed from a vulnerable state (where it could be easily analyzed or cloned) into a protected state (where only authorized parties with the corresponding private key can decrypt and use it). This parameter change in the cryptographic state allows the system to maintain functionality while significantly reducing the risk of misuse through analysis or reverse engineering.
Data Source
AI summary
Various embodiments include methods for providing data to be protected in a secure execution environment. An example includes: executing an enclave code in the environment; generating a key pair using the code with a public key and a private key; sending the public key to an insecure execution environment outside the secure execution environment; sending the public key and sending first encrypted data to an obfuscated program code, wherein the obfuscated program code is part of the insecure execution environment; verifying the public key by means of the obfuscated program code and, depending on results of the verification, converting the first encrypted data into second encrypted data, wherein the second encrypted data are encrypted with the public key; sending the second encrypted data to the enclave in the secure execution environment; and decrypting the second encrypted data into the data to be protected.

