Register Access Control via Ownership Variables
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing data processing systems face challenges in securely managing access to registers across different privilege levels, particularly when handling exceptions, as they often rely on exception handling code to save and restore register contents, which can lead to insecure access and data exposure.
Innovation Solution
The implementation of a register access control system that utilizes ownership variables to restrict access based on exception levels, employing target-constrained load and store instructions to ensure that data is saved and restored within protected regions, preventing access by higher privilege levels when operating outside the intended context.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If exception handling code saves and restores register contents, then register data can be preserved across exceptions, but security is compromised as higher privilege levels can access protected register data
Solution Approach 1:
The patent segments register access control by introducing ownership variables that associate each register with a specific exception level. This segmentation allows different exception levels to have differentiated access rights to different registers, preventing higher privilege levels from accessing registers owned by lower privilege levels while still allowing proper saving and restoring of register contents during exception handling.
Solution Approach 2:
The patent introduces an intermediary access control mechanism between the processing circuitry and registers. The ownership variable acts as an intermediary that mediates access requests by comparing the current exception level with the registered owner, allowing legitimate access for saving/restoring while blocking unauthorized access from higher privilege levels.
2Ease of operation
If higher exception levels can access all registers, then exception handling is simplified, but data exposure occurs to hypervisor programs
Solution Approach 1:
The patent applies local quality by making access control properties specific to each register through ownership variables. Instead of a blanket access policy for all registers, each register has its own ownership association with a specific exception level, allowing precise control over which registers can be accessed at each privilege level while maintaining simple exception handling for authorized registers.
3Object-affected harmful factors
If register access is restricted by ownership variables, then security is enhanced, but access control complexity increases
Solution Approach 1:
The patent implements self-service by having the access control mechanism automatically compare the current exception level with the ownership variable stored in each register. The system serves itself by autonomously determining whether access should be granted or denied based on the pre-configured ownership associations, eliminating the need for complex external access control logic while maintaining strong security.
Data Source
AI summary
A data processing system 2 operates at a plurality of exception levels ELx and supports the use of protected execution environments. A register bank 16 contains registers having associated ownership variables indicating an owning exception level. Register access control circuitry 30 is responsive to the ownership values for respective registers to control access to those registers by processing circuitry 14 in dependence upon the ownership values. Target-constrained data transfer operations and associated program instructions may be provided which are able to access data values in registers not owned by the exception level associated with the execution of those program instructions, but are limited to perform data transfers to or from memory locations within a memory 6 indicated by an architected storage pointer for the owning exception level. Target-unconstrained transfer instructions at a given exception level are not able to access register data value marked as owned by a different exception level.


