Dynamic Pointer Authentication Regime Switching
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current computing systems face challenges in enabling interoperability between processes configured for pointer authentication and those not configured for it, limiting the use of system libraries compiled with pointer authentication by unauthenticated processes.
Innovation Solution
The system enables interoperability by placing unauthenticated portions of system libraries in a separate virtual memory region and dynamically enabling/disabling authentication features during context switches, using distinct authentication keys for kernel and user mode pointers, and implementing thread state signing and pointer ABI versioning.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If pointer authentication is enabled for system libraries, then security against ROP/JOP attacks is improved, but compatibility with unauthenticated processes deteriorates
Solution Approach 1:
The system segments the authentication state by creating separate authentication contexts that can be independently enabled or disabled. The processor maintains multiple authentication regimes (authenticated and unauthenticated) that can be dynamically switched between, allowing system libraries to operate in authenticated mode while unauthenticated processes run in unauthenticated mode without conflict
Solution Approach 2:
The system dynamically switches between pointer authentication regimes based on the execution context. During context switches between authenticated and unauthenticated processes, the processor enables or disables authentication features accordingly, allowing the same system to adapt its security level to match the requirements of the running process
2Adaptability or versatility
If pointer authentication is dynamically enabled/disabled during context switches, then interoperability between authenticated and unauthenticated processes is improved, but processor complexity increases
Solution Approach 1:
The processor implements self-service mechanisms by automatically managing the enabling and disabling of pointer authentication during context switches. The authentication regime is switched based on the execution context without requiring external intervention, reducing the burden on the operating system and software while maintaining interoperability
3Reliability
If distinct authentication keys are used for kernel and user mode pointers, then security against attacks is improved, but key management complexity increases
Solution Approach 1:
The system applies local quality by using distinct authentication keys for different execution modes (kernel mode versus user mode). This allows the system to tailor the security characteristics to the specific requirements of each mode, with kernel mode pointers using one set of keys and user mode pointers using another, thereby containing the complexity to specific domains rather than requiring a unified complex key management system
Data Source
AI summary
Embodiments described herein enable the interoperability between processes configured for pointer authentication and processes that are not configured for pointer authentication. Enabling the interoperability between such processes enables essential libraries, such as system libraries, to be compiled with pointer authentication, while enabling those libraries to still be used by processes that have not yet been compiled or configured to use pointer authentication.


