Secure Runtime Process Forking via Encrypted State Transfer
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing systems face challenges in efficiently and securely forming processes within enclaved applications, particularly due to inefficient memory usage and security vulnerabilities introduced by interactive protocols between parent and child enclaves during fork operations.
Innovation Solution
The solution involves intercepting fork, vfork, and clone system calls to capture state snapshots, using copy-on-write techniques to minimize parent process freezing, and transferring encrypted state to spawn independent child applications, ensuring secure and efficient process formation within secure runtime environments.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If interactive protocols between parent and child enclaves are used for fork operations, then process formation is enabled, but memory efficiency deteriorates and security vulnerabilities are introduced
Solution Approach 1:
The patent segments the fork operation into distinct phases: parent enclave captures its state snapshot, transfers encrypted state to child enclave, and child enclave restores state independently. This eliminates the need for continuous interactive protocols between parent and child enclaves, reducing memory usage and improving security.
Solution Approach 2:
The parent enclave performs preliminary actions by capturing its state snapshot before forking. This pre-prepared encrypted state is then transferred to the child enclave, which independently restores and executes. This preliminary action eliminates the need for ongoing interactive protocols, resolving the memory efficiency and security issues.
2Adaptability or versatility
If interactive protocols between parent and child enclaves are used for fork operations, then process formation is enabled, but security deteriorates due to introduced vulnerabilities
Solution Approach 1:
The patent extracts the interactive protocol step from the fork operation, replacing it with independent state capture and restoration. The parent enclave captures its state, encrypts it, and transfers it to the child enclave without requiring ongoing interaction. This extraction eliminates security vulnerabilities associated with interactive protocols while maintaining process formation capability.
Solution Approach 2:
The patent uses copying of the parent enclave's state snapshot to create the child enclave's initial state. The encrypted state is copied from parent to child, which then independently restores and executes. This copying approach eliminates security vulnerabilities of interactive protocols while enabling process formation.
3Adaptability or versatility
If state snapshot capture and child process spawning are performed synchronously, then process formation is completed, but parent process execution is frozen increasing latency
Solution Approach 1:
The parent enclave performs preliminary state capture and encryption before the actual fork operation. This pre-prepared encrypted state is then transferred to the child enclave, which independently restores and executes. This preliminary action allows the parent process to resume execution immediately, reducing latency while completing process formation.
Solution Approach 2:
The patent replaces the synchronous mechanical interaction between parent and child process creation with an asynchronous state transfer mechanism. The parent captures state and transfers encrypted data, then the child independently restores and executes without blocking the parent. This substitution eliminates the freezing effect and reduces latency.
Data Source
AI summary
A non-transitory computer readable storage medium has instructions executed by a processor to define a parent application executing on a secure runtime hardware resource. A state snapshot of the secure runtime hardware resource is maintained. A fork request for a child application to be derived from the parent application is received. An updated state snapshot of the state snapshot is formed. The child application is instantiated. Encrypted state is transferred from the parent application to the child application. The encrypted state is used to derive an encryption key shared by the parent application and the child application. The encrypted state in the child application is decrypted using the encryption key to spawn an independent child application operative as an additional secure runtime instance. The parent application on the secure runtime hardware resource and the child application operative as the additional secure runtime instance are executed independently.


