Dynamic Pointer Authentication Regime Switching

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
ImprovesecurityVSAvoidcompatibility
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

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

Inventive Principle:
Principle #1Segmentation

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

Inventive Principle:
Principle #15Dynamics

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

Engineering Contradiction:
ImproveinteroperabilityVSAvoidprocessor complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

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

Inventive Principle:
Principle #25Self-service

3Reliability

If distinct authentication keys are used for kernel and user mode pointers, then security against attacks is improved, but key management complexity increases

Engineering Contradiction:
ImprovesecurityVSAvoidkey management complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

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

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS11748468B2Dynamic switching between pointer authentication regimes
Publication Date: 2023.09.05 APPLE INC
  • US11748468B2 patent drawing
  • US11748468B2 patent drawing
  • US11748468B2 patent drawing

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.