Enclave Fork Support via Encrypted Snapshot Duplication
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Implementing the fork() function for applications running inside secure enclaves is challenging due to the untrusted host's inability to access enclave data, requiring secure duplication and data protection to maintain the secure environment.
Innovation Solution
A method involving generating a snapshot of the enclave, encrypting it with a snapshot key, copying it to untrusted memory, creating a second enclave, and establishing a secure communication channel using key pairs and assertions to decrypt and duplicate the application within the same secure environment.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If the host operating system provides fork() functionality to duplicate applications, then application duplication is enabled, but the untrusted host can access and manipulate enclave data during the duplication process
Solution Approach 1:
The system segments the fork() operation into distinct phases: snapshot creation within the enclave, encrypted snapshot extraction, and restoration in the new enclave. This segmentation allows the untrusted host to participate in the process without gaining access to plaintext enclave data, as the data remains encrypted during host-mediated operations.
Solution Approach 2:
The patent introduces encrypted snapshots as an intermediary mechanism. The snapshot is encrypted with a key that remains inside the enclave, creating a secure intermediary form that can be safely handled by the untrusted host without compromising the underlying data security.
2Reliability
If the enclave isolates data from the host to maintain security, then data protection is achieved, but the host cannot provide necessary functionalities for application duplication
Solution Approach 1:
The encrypted snapshot serves as a mediator that bridges the isolation boundary. It allows the host to perform duplication operations on encrypted data without breaking enclave isolation, since the host never obtains decryption capabilities.
Solution Approach 2:
The system changes the state of the snapshot from plaintext to encrypted form during the transfer to the host. This parameter change (encryption state) enables the host to manipulate the data structure without accessing the actual sensitive information, resolving the conflict between isolation and functionality.
3Ease of operation
If the snapshot is copied to untrusted memory for duplication, then host-mediated copying is enabled, but the snapshot may be exposed to unauthorized access
Solution Approach 1:
The system performs preliminary encryption of the snapshot before transferring it to untrusted memory. This preliminary action ensures that even if the snapshot is exposed during transit or storage in host memory, the data remains protected by encryption, and only the enclave possessing the decryption key can access the plaintext.
Data Source
AI summary
A fork support is provided for duplicating an application running inside an enclave entity. In this regard, a request to duplicate an application running inside a first enclave may be received by one or more processors of a host computing device of the first enclave. A snapshot of the first enclave including the application may be generated. The snapshot may be encrypted with a snapshot key and copied to untrusted memory of the host. A second enclave may be generated. The snapshot key may be sent from the first enclave to the second enclave through a secure communication channel. The encrypted snapshot may be copied from the untrusted memory of the host into the second enclave. The encrypted snapshot may be decrypted inside the second enclave with the snapshot key.


