Enclave Access Prevention Circuit Logic

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current implementations of secure enclaves in processors do not effectively prevent enclaved applications from accessing data outside their protected memory regions, relying on error-prone software solutions that can compromise enclave integrity.

Innovation Solution

Incorporating circuit logic with a settable 'non-enclave access prevention' flag in a control register to generate exceptions when an enclaved application attempts to access memory outside its secure enclave, thereby preventing unauthorized data access.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If software solutions are used to determine whether data access is directed to inside or outside the enclave memory region, then the system can detect access attempts, but the system creates vulnerabilities that may allow attacks on the integrity of the enclave

Engineering Contradiction:
Improveenclave integrityVSAvoidvulnerabilities to attacks
Core Design Contradiction:
ReliabilityVSObject-affected harmful factors

Solution Approach 1:

The patent replaces the software-based access determination mechanism with a hardware-based mechanism. The processor includes circuit logic that automatically determines whether a data access is directed to inside or outside the enclave memory region and selectively turns off non-enclave memory accesses when the access prevention flag is set, eliminating the vulnerabilities inherent in software solutions.

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

2Reliability

If hardware circuit logic is implemented to prevent non-enclave access, then the integrity of secure enclaves is enhanced, but the device complexity increases

Engineering Contradiction:
Improveenclave integrityVSAvoidprocessor circuit logic
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent implements a targeted hardware solution that adds circuit logic only to the memory access control path, rather than redesigning the entire processor. The access prevention flag and corresponding circuit logic are localized to specifically control non-enclave memory accesses, minimizing the increase in overall device complexity while achieving the security enhancement.

Inventive Principle:
Principle #3Local quality

3Reliability

If the access prevention flag is set to prevent non-enclave access, then unauthorized data access is blocked, but legitimate software solutions for handling access attempts cannot execute

Engineering Contradiction:
Improveaccess controlVSAvoidsoftware handling capability
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent implements a dynamic access control mechanism where the access prevention flag can be set or cleared to change the behavior of the circuit logic. When the flag is set, hardware automatically blocks non-enclave accesses; when cleared, the system reverts to software-based handling. This dynamic switching capability allows the system to adapt between hardware-enforced security and software flexibility as needed.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS10572395B2Non-enclave access prevention
Publication Date: 2020.02.25 INTEL CORP
  • US10572395B2 patent drawing
  • US10572395B2 patent drawing
  • US10572395B2 patent drawing

AI summary

A processing system includes an execution unit comprising a logic circuit to implement an architecturally-protected execution environment associated with a protected region in a memory, in which the execution unit is to execute application code stored in the protected region as a thread running in the architecturally-protected execution environment, determine that an access mode flag is set to a first value, detect an attempt by the thread to access data stored outside the protected region, and responsive to detecting the attempt and determining that the access mode flag is set to the first value, generate an exception.