Key Capability Storage Circuitry for Temporal Safety
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing memory protection techniques are coarse-grained and lack the ability to provide temporal safety, as they do not effectively manage temporary access rights and revocation of capabilities within software compartments.
Innovation Solution
Implementing key capability storage circuitry to store key capabilities with specific bounds, allowing only software compartments with the key capability operating privilege to transfer and manipulate these capabilities, thereby controlling temporary access rights and ensuring temporal safety by preventing unauthorized transfers.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If capability-based architecture is implemented to provide fine-grained memory protection, then security against memory exploitation is improved, but device complexity increases due to additional capability storage and checking circuitry
Solution Approach 1:
The capability storage is segmented into two distinct structures: capability storage circuitry for storing regular capabilities, and key capability storage circuitry for storing key capabilities with operating privileges. This segmentation allows the system to separate security-critical operations from general capability management, providing fine-grained control while organizing complexity into manageable segments.
Solution Approach 2:
Key capabilities act as an intermediary mechanism between the operating system and regular capabilities. The key capability storage circuitry serves as a mediator that controls which software compartments can create or transfer capabilities, thereby managing security privileges without requiring direct intervention from the operating system for every capability operation.
2Reliability
If key capability storage circuitry is added to control temporary access rights, then temporal safety is improved, but device complexity increases due to additional storage structures
Solution Approach 1:
The capability storage is segmented into two distinct structures: capability storage circuitry for storing regular capabilities, and key capability storage circuitry for storing key capabilities with operating privileges. This segmentation allows the system to separate security-critical operations from general capability management, providing fine-grained control while organizing complexity into manageable segments.
Solution Approach 2:
The system performs preliminary checks by the capability checking circuitry to determine whether a software compartment has the necessary key capability operating privilege before allowing creation or transfer of capabilities. This preliminary action prevents unauthorized operations before they occur, ensuring temporal safety by validating privileges in advance rather than reacting to violations afterward.
3Reliability
If fine-grained capability compartmentalisation is implemented, then resistance to memory exploitation is improved, but ease of operation deteriorates due to restricted capability transfer operations
Solution Approach 1:
Key capabilities act as an intermediary mechanism between the operating system and regular capabilities. The key capability storage circuitry serves as a mediator that controls which software compartments can create or transfer capabilities, thereby managing security privileges without requiring direct intervention from the operating system for every capability operation.
Solution Approach 2:
The capability checking circuitry automatically performs privilege verification and enforces transfer restrictions without requiring external intervention. The system self-regulates capability operations by checking whether the executing software compartment has the necessary key capability operating privilege, thereby maintaining security while reducing the need for manual security management.
Data Source
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.


