Enriched Pointer Authentication for Secure Program Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for executing computer programs are vulnerable to attacks based on erroneous pointer usage, particularly in contexts where data is encrypted and decrypted in blocks, as they require separate authentication codes for each datum, which is incompatible with block encryption/decryption techniques.

Innovation Solution

A method that uses enriched pointers with unique identifiers for each datum within a block, allowing for secure execution of computer programs by verifying the integrity and authenticity of blocks of data, while maintaining compatibility with block encryption/decryption, by employing a hardware security module to manage encryption, decryption, and authentication processes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If data is encrypted and decrypted in blocks to accelerate transfers, then data transfer speed is improved, but separate authentication codes for each datum cannot be verified

Engineering Contradiction:
Improvedata transfer speedVSAvoidauthentication verification
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent segments the authentication mechanism by introducing unique identifiers for each datum within a block, allowing individual datum authentication while maintaining block-based encryption/decryption efficiency. This segmentation enables the system to verify authentication codes for specific data items without requiring separate encryption operations for each datum.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary authentication structure that links unique identifiers with authentication codes at the datum level while operating within block-level encryption frameworks. This intermediary layer enables fine-grained authentication verification without compromising the performance benefits of block-based cryptographic operations.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of operation

If traditional pointer mechanisms are used for data access, then program execution simplicity is maintained, but the system becomes vulnerable to pointer-related attacks

Engineering Contradiction:
Improveprogram execution simplicityVSAvoidpointer-related attacks
Core Design Contradiction:
Ease of operationVSObject-affected harmful factors

Solution Approach 1:

The patent applies preliminary anti-action by preemptively verifying pointer validity through unique identifiers before data access operations occur. The system checks whether pointers reference legitimate data locations and validates authentication codes in advance, preventing stack overflow, use-after-free, and other pointer-related attacks before they can compromise system security.

Inventive Principle:
Principle #9Preliminary anti-action

3Reliability

If unique identifiers are added to pointers for security verification, then security against pointer attacks is improved, but data structure complexity increases

Engineering Contradiction:
Improvesecurity against pointer attacksVSAvoiddata structure complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent merges the unique identifier with the pointer structure in a unified enriched pointer format, combining security functionality with existing pointer operations. This merging approach allows the system to maintain relatively simple data structures while incorporating authentication verification capabilities, avoiding excessive complexity by integrating security features into existing pointer mechanisms rather than adding separate complex verification layers.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS12088722B2Method for executing a computer program by means of an electronic apparatus
Publication Date: 2024.09.10 COMMISSARIAT A LENERGIE ATOMIQUE ET AUX ENERGIES ALTERNATIVES
  • US12088722B2 patent drawing
  • US12088722B2 patent drawing
  • US12088722B2 patent drawing

AI summary

A method for executing a computer program includes incorporating, into metadata of a block containing a line of code to be accessed using a pointer, a first pointer identifier associated with the line of code to be accessed, then obtaining a pointer including a first range of bits containing the address of the line of code to be accessed, and a different second range of bits containing a second pointer identifier, then verifying that the second pointer identifier contained in the obtained pointer corresponds to the first pointer identifier associated with the line of code to be accessed and contained in the metadata of the loaded block, and when the first and second pointer identifiers do not correspond, then the security module triggers signaling of an execution fault.