Encrypted Pointer Authentication for Secure Program Flow
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing methods for securing pointers and branch instructions in processing systems are inadequate, leaving them vulnerable to malicious attacks that can redirect program flow or modify functionality.
Innovation Solution
Implementing encryption and authentication processes for pointers and branch instructions, including encryption of address bits, determination of authentication values, and combining these with encrypted bits to produce signed encrypted pointers and authenticatable branch instructions, using cryptographic techniques to obscure and secure the integrity of these elements.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If cryptographic signing is applied to pointers and branch instructions, then authentication capability is improved, but security against malicious attacks remains insufficient
Solution Approach 1:
The pointer is divided into separate components: address bits and authentication bits. The authentication bits are generated independently based on the address bits using a cryptographic function, allowing the address and authentication to be segmented and processed separately while maintaining security.
Solution Approach 2:
The authentication bits are calculated and combined with the address bits before the pointer is used in the program. This preliminary authentication action ensures that any modification to the pointer before execution will be detected, preventing malicious attacks in advance.
2Reliability
If pointer authentication bits are added to existing pointer structures, then security is improved, but device complexity increases
Solution Approach 1:
The authentication bits are merged with the address bits to form a unified pointer structure. The combination function integrates both components into a single data structure that can be handled as one entity, reducing the overhead of separate storage and processing mechanisms.
Solution Approach 2:
The pointer structure serves multiple functions: it stores the address information and simultaneously carries authentication information. This multi-functionality eliminates the need for separate authentication mechanisms, reducing overall system complexity while maintaining enhanced security.
Data Source
AI summary
Aspects of the present disclosure relate to interface circuitry to receive a pointer comprising a plurality of address bits, and pointer processing circuitry. The pointer processing circuitry is configured to extract and encrypt plurality of address bits from the pointer, to produce a plurality of encrypted address bits. The pointer processing circuitry determines, based at least in part on the plurality of address bits, a pointer authentication value. It then combines the pointer authentication value with the plurality of encrypted address bits, to produce a signed encrypted pointer.


