Dynamic Secure Enclave Module Loading via Hash Tree Verification

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current secure enclave technologies, such as Intel SGX, are static and do not allow for dynamic loading of additional code or data, which can lead to resource inefficiencies and increased complexity, particularly in applications that only use a portion of their code or data.

Innovation Solution

A computing device that divides an executable image into chunks, using a hash tree for integrity verification and dynamic loading, allowing for the secure and efficient loading of only the necessary modules into a secure enclave, reducing pressure on resources like the enclave page cache and simplifying the trusted loader process.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If all code and data are loaded into the secure enclave, then security and integrity are maintained, but resource pressure increases and efficiency decreases

Engineering Contradiction:
ImprovesecurityVSAvoidresource pressure
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent divides the executable image into multiple chunks, allowing selective loading of only necessary code and data segments into the secure enclave. This segmentation enables the system to maintain security for loaded portions while reducing overall resource pressure by not loading unused portions.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements dynamic loading capability where chunks can be loaded into the secure enclave on-demand based on actual execution needs. This transforms the static enclave model into a dynamic one, allowing the enclave contents to change over time and optimizing resource utilization.

Inventive Principle:
Principle #15Dynamics

2Device complexity

If static enclave design is used, then implementation simplicity is maintained, but adaptability and resource efficiency deteriorate

Engineering Contradiction:
Improveimplementation simplicityVSAvoiddynamic loading capability
Core Design Contradiction:
Device complexityVSAdaptability or versatility

Solution Approach 1:

By dividing the executable into chunks and implementing a chunk loading mechanism, the patent adds dynamic adaptability while maintaining a relatively simple overall structure. The segmentation approach allows incremental complexity addition without complete system redesign.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary actions by dividing the executable into chunks and preparing a hash tree structure in advance. This preliminary preparation enables efficient dynamic loading operations later without adding significant complexity during runtime.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If integrity verification is performed on all code, then security is ensured, but verification time and processing overhead increase

Engineering Contradiction:
Improveintegrity verificationVSAvoidverification time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent applies segmentation to integrity verification by using a hash tree structure where only the loaded chunk needs to be verified against its corresponding hash in the tree. This segmented verification approach is much faster than verifying the entire executable image.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs partial verification by only verifying the integrity of chunks that are actually loaded into the secure enclave, rather than verifying all code. This partial action approach maintains security for loaded portions while significantly reducing verification time.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS10511598B2Technologies for dynamic loading of integrity protected modules into secure enclaves
Publication Date: 2019.12.17 INTEL CORP
  • US10511598B2 patent drawing
  • US10511598B2 patent drawing
  • US10511598B2 patent drawing

AI summary

Technologies for dynamic loading of integrity protected modules into a secure enclave include a computing device having a processor with secure enclave support. The computing device divides an executable image into multiple chunks, hashes each of the chunks with corresponding attributes that affect security to generate a corresponding hash value, and generates a hash tree as a function of the hash values. The computing device generates an initial secure enclave memory image that includes the root value of the hash tree. At runtime, the computing device accesses a chunk of the executable image from within the secure enclave, which generates a page fault. In response to the page fault, the secure enclave verifies the associated chunk based on the hash tree and accepts the chunk into the secure enclave in response to successful verification. The root value of the hash tree is integrity-protected. Other embodiments are described and claimed.