Hardware Stack Control Information Protection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing software systems are vulnerable to memory corruption and overflow bugs, which can be exploited by attackers to gain control of the system, and finding and fixing these bugs in large codebases is challenging, despite defensive features like DEP, SP, and ASLR.

Innovation Solution

Implementing hardware-based stack control information protection using control data authentication and encryption techniques to secure return addresses and frame pointers, preventing malicious modification and ensuring data integrity by generating and verifying authentication tags or encrypted control information.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If conventional stack protection mechanisms (guard values, SP, DEP, ASLR) are used, then basic exploit mitigation is achieved, but the system remains vulnerable to sophisticated memory corruption attacks

Engineering Contradiction:
Improveexploit mitigation effectivenessVSAvoidvulnerability to memory corruption attacks
Core Design Contradiction:
ReliabilityVSObject-affected harmful factors

Solution Approach 1:

The patent replaces software-based protection mechanisms with hardware-based cryptographic operations. The processor's cryptographic hardware unit performs authentication tag generation and verification, substituting the mechanical/software guard value checking with cryptographic verification that provides stronger security against memory corruption exploits.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Solution Approach 2:

The patent combines multiple protection layers: cryptographic authentication tags, hardware-based verification, and integration with existing stack protection mechanisms. This composite approach layers cryptographic security over conventional protection methods, creating a multi-layered defense that addresses both basic and sophisticated attacks.

Inventive Principle:
Principle #40Composite materials

2Object-affected harmful factors

If control information is protected using cryptographic authentication, then security against exploitation is improved, but processing overhead and system complexity increase

Engineering Contradiction:
Improveprotection against exploitationVSAvoidprocessing complexity
Core Design Contradiction:
Object-affected harmful factorsVSDevice complexity

Solution Approach 1:

The processor's cryptographic hardware unit automatically performs authentication tag generation and verification without requiring software intervention. The hardware unit services the protection function itself, eliminating the need for complex software cryptographic implementations and reducing overall system complexity despite the enhanced security.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The cryptographic hardware unit serves multiple functions: it protects stack control information, validates authentication tags, and integrates with existing processor pipelines. This multi-functional approach consolidates security operations into a single hardware component, reducing overall system complexity while providing comprehensive protection.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Reliability

If authentication tags are generated and verified for all stack operations, then data integrity is ensured, but execution speed decreases

Engineering Contradiction:
Improvedata integrityVSAvoidexecution speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

Authentication tags are generated in advance when control information is pushed onto the stack, rather than verifying at every access point. This preliminary action allows the bulk of stack operations to proceed without verification overhead, maintaining execution speed while ensuring integrity through pre-computed cryptographic protection.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent applies cryptographic verification selectively to critical control information (return addresses, frame pointers) rather than all stack data. This localized approach ensures data integrity for security-critical elements while minimizing the performance impact on general stack operations.

Inventive Principle:
Principle #3Local quality

4Object-affected harmful factors

If hardware-based cryptographic protection is implemented, then security against malicious attacks is improved, but manufacturing complexity and cost increase

Engineering Contradiction:
Improveresistance to malicious attacksVSAvoidprocessor manufacturing complexity
Core Design Contradiction:
Object-affected harmful factorsVSEase of manufacture

Solution Approach 1:

The patent replaces complex software cryptographic implementations with dedicated hardware cryptographic units. This substitution uses specialized hardware circuits that perform cryptographic operations more efficiently and securely, achieving strong attack resistance while using established hardware cryptographic IP blocks that are increasingly available off-the-shelf.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Data Source

PatentUS9390264B2Hardware-based stack control information protection
Publication Date: 2016.07.12 QUALCOMM INC
  • US9390264B2 patent drawing
  • US9390264B2 patent drawing
  • US9390264B2 patent drawing

AI summary

Techniques for protecting contents of a stack associated with a processor are provided. The techniques include a method including receiving a store instruction from a software program being executed by the processor, the store instruction including control information associated with a subroutine, altering the control information to generate secured control information responsive to receiving the store instruction from the software program, storing the secured control information on the stack, receiving a load instruction from the software program; and responsive to receiving the load instruction from the software program, loading the secured control information from the stack, altering the secured control information to recover the control information, and returning the control information to the software program.