Key Capability Storage Circuitry for Temporal Safety
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing memory protection techniques are coarse-grained and struggle to enforce temporal safety, as software compartments can copy capabilities freely, making it difficult to revoke access efficiently.
Innovation Solution
Implement key capability storage circuitry to manage capabilities with additional bounds checking, restricting transfers and creating temporary access rights using key capabilities, ensuring temporal safety by preventing arbitrary loading and storing of key capabilities.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If capabilities are allowed to be copied freely between memory and registers, then software compartments can maintain flexible access rights, but it becomes difficult to revoke access efficiently and enforce temporal safety
Solution Approach 1:
The capability storage is segmented into key capability storage circuitry and regular capability storage. Key capabilities are stored separately from regular capabilities, allowing the system to distinguish between capabilities that require temporal safety enforcement and those that do not. This segmentation enables selective revocation of access rights without affecting other capabilities.
Solution Approach 2:
The key capability storage circuitry acts as an intermediary layer between the software compartment and the regular capability storage. It mediates the creation, storage, and revocation of capabilities, providing an additional control mechanism that enables efficient temporal safety enforcement while maintaining the flexibility of capability-based access control.
2Reliability
If the entire address space is scrubbed to revoke capabilities, then temporal safety is enforced, but system performance deteriorates due to the costly operation
Solution Approach 1:
The patent extracts the temporal safety enforcement mechanism from the general capability management system by creating a dedicated key capability storage circuitry. This extraction allows revocation operations to be performed selectively on only the key capabilities stored in this separate circuitry, rather than requiring a comprehensive scrub of the entire address space, thus maintaining temporal safety while improving performance.
3Reliability
If key capability storage circuitry is introduced with additional bounds checking, then temporal safety is improved, but device complexity increases
Solution Approach 1:
The key capability storage circuitry is merged with the existing capability management infrastructure, sharing common control logic and bounds checking mechanisms. This merging approach allows the system to benefit from the additional temporal safety enforcement while avoiding the full overhead of a completely separate capability management system, thus reducing the increase in device complexity.
Data Source
Figure 1
Figure 2
Figure 3~5
AI summary
Key capability storage circuitry 90 is provided to store a key capability specifying key bounds indicating information indicative of permissible bounds for information specified by any one or more of: a non-capability operand, a capability, or the key capability itself. For a given software compartment executed by the processing circuitry, which lacks a key capability operating privilege associated with at least a portion of the key capability storage circuitry, the processing circuitry is configured to prohibit certain manipulations of the key capability, including a transfer between key capability storage and a memory location selected by the given software compartment. This can help to support temporal safety.