Entry Address Masking for TEE Fault Injection Protection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Trusted Execution Environments (TEE) are vulnerable to physical attacks, such as fault injection attacks, which can bypass memory protection mechanisms and allow unauthorized memory access.

Innovation Solution

A program processing device that masks and un.masks entry addresses using a save value and a setting value, generating a fake entry address and then restoring the original address, ensuring that only matching save and setting values allow access to the entry address, thereby preventing unauthorized access.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If TEE uses memory protection mechanism to control access between applications, then security of security-critical applications is improved, but the system becomes vulnerable to physical attacks such as fault injection attacks that can bypass memory protection

Engineering Contradiction:
ImprovesecurityVSAvoidvulnerability to physical attacks
Core Design Contradiction:
ReliabilityVSObject-affected harmful factors

Solution Approach 1:

The patent applies preliminary action by masking the entry address before the application program executes. The mask value is prepared in advance and applied to the entry address, so that even if a fault injection attack occurs during execution, the attacker cannot access the original entry address because it has already been protected through masking. This proactive protection resolves the contradiction by establishing security before the vulnerable execution phase begins.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces a mask value as an intermediary between the original entry address and the application program. This mask value acts as a protective layer that prevents direct access to the entry address. The processor unit temporarily stores the mask value and applies it during execution, creating an intermediate barrier that thwarts fault injection attacks while maintaining legitimate access through the unmasking mechanism.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If the entry address is masked with a save value before execution, then unauthorized memory access is prevented, but the device complexity increases due to additional masking and unmasking operations

Engineering Contradiction:
Improveaccess controlVSAvoidprocessing complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent implements self-service by having the processor unit automatically manage the mask value throughout execution. The processor unit temporarily stores the mask value, applies it during execution, and automatically restores it when execution completes. This automated self-management eliminates the need for complex external control mechanisms, reducing overall system complexity while maintaining robust access control through the masking process.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS12259966B2Program processing device and program processing method that executes a mask process on an entry address used by an application program
Publication Date: 2025.03.25 MITSUBISHI ELECTRIC CORP
  • US12259966B2 patent drawing
  • US12259966B2 patent drawing
  • US12259966B2 patent drawing

AI summary

A program processing device (100) includes: an entry address masking unit (110) to generate a fake entry address, which is obtained by masking an entry address with the use of a save value copied from a setting value stored in a storage, and to replace an entry address used by an application program with the fake entry address; a memory monitoring unit (111) to determine whether the fake entry address is loaded during execution of the application program; and an entry address unmasking unit (112) to generate a new entry address, which is obtained by loading the setting value from the storage and unmasking the fake entry address with the use of the setting value, and to replace the fake entry address with the new entry address, when the fake entry address is loaded.