Cryptographic Pointer Domain Isolation for Serverless Latency
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current cloud computing technologies face challenges in achieving stateless and low-overhead domain isolation, particularly in serverless architectures like Functions-as-a-Service (FaaS), which suffer from high invocation latency and interaction latency due to process-based isolation and shared memory requirements.
Innovation Solution
The implementation of cryptographic computing to provide fine-grained domain isolation by using cryptographically encoded pointers, which encrypt and decrypt code and data based on domain-specific metadata, allowing for zero-copy, object-granular communications and efficient domain transitions.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If process-based isolation is used in FaaS platforms, then domain isolation security is improved, but invocation latency and interaction latency increase
Solution Approach 1:
The patent divides the memory address space into distinct domains using cryptographic encoding. Each domain has its own encrypted address space that is isolated from other domains, providing security similar to process-based isolation but without the overhead of full process contexts. This segmentation allows functions to be isolated securely while sharing the same process space, reducing invocation latency.
Solution Approach 2:
The patent replaces the mechanical process-based isolation mechanism with a cryptographic addressing system. Instead of using separate process contexts and memory spaces, the system uses encrypted pointers and domain-specific cryptographic keys to achieve isolation. This substitution eliminates the overhead of process creation and context switching while maintaining security boundaries.
2Productivity
If shared memory is used in FaaS platforms, then resource utilization is improved, but domain isolation security deteriorates
Solution Approach 1:
The patent applies different security properties to different regions of the memory address space. Each domain has its own encrypted address space with domain-specific cryptographic keys, allowing shared memory regions to be accessed only by authorized domains. This local quality approach enables resource sharing while maintaining domain-specific security guarantees.
Solution Approach 2:
The patent introduces cryptographic encoding as an intermediary layer between domains and shared memory. The encrypted pointers act as mediators that control access to shared memory regions, ensuring that only domains with the appropriate cryptographic keys can access specific memory regions. This intermediary mechanism enables both resource sharing and security isolation.
3Reliability
If fine-grained domain isolation is implemented, then security is improved, but system complexity increases
Solution Approach 1:
The patent uses a universal cryptographic addressing mechanism that handles multiple functions: memory allocation, domain isolation, access control, and security verification. The same cryptographic encoding system provides all these functions simultaneously, reducing the need for separate complex mechanisms for each function and simplifying the overall system architecture.
Data Source
AI summary
Technologies provide domain isolation using encoded pointers to data and code. A system may be configured for decoding an encoded pointer to obtain a linear address of an encrypted code block of a first software component in memory. The first software component shares a linear address space of the memory with a plurality of software components. A processor uses the linear address to access the encrypted code block, determines a relative position of the encrypted code block within a memory slot of the linear address space, and decrypts the encrypted code block to generate a decrypted code block using a code key and a code tweak. The code tweak includes a relative position of the encrypted code block in the address space and domain metadata that uniquely identifies the software component. In some scenarios, the software component may be position independent code and may be relocatable to different address spaces.


