TEE Runtime Integrity Verification via Polymorphic MTD

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Trusted Execution Environments (TEEs) are unable to effectively identify and authenticate general-purpose application software, as they consider such software untrusted and lack mechanisms to verify the integrity of software outside the TEE during execution, making key protection ineffective against compromised applications.

Innovation Solution

A secure communication channel is generated between the TEE and executable programs, utilizing a Moving Target Defense (MTD) module with disposable polymorphic code to verify the integrity of executable programs by transforming and signing data, ensuring only cryptographically verified code can communicate with the TEE.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If TEE hardware verifies internal software validity, then internal software integrity is ensured, but external application software cannot be authenticated

Engineering Contradiction:
Improveinternal software integrityVSAvoidexternal software authentication capability
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The verification system is segmented into two distinct components: an internal verification mechanism for TEE software and an external verification mechanism for application software. The external verifier module separately authenticates application code by comparing runtime hashes against stored baseline hashes, enabling independent verification of external software without compromising internal TEE security.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

An external verifier module acts as an intermediary between the TEE and application software. This mediator captures execution context, computes hashes of running applications, and compares them against baseline values stored outside the TEE, thereby enabling authentication of external software without requiring modifications to the TEE hardware itself.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If TEE protects encryption keys, then key secrecy is maintained, but compromised applications can still exfiltrate data by mimicking legitimate software

Engineering Contradiction:
Improvekey secrecyVSAvoiddata exfiltration by compromised software
Core Design Contradiction:
ReliabilityVSObject-affected harmful factors

Solution Approach 1:

The system performs preliminary verification by capturing and storing baseline hash values of legitimate application code before execution. The external verifier uses these pre-stored baselines to authenticate applications at runtime, preventing compromised software from accessing encrypted data by mimicking legitimate applications.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The external verification system continuously monitors application integrity by computing runtime hashes and comparing them against baseline values. This feedback mechanism detects when applications have been compromised or modified, allowing the system to revoke access privileges and prevent data exfiltration by malicious software.

Inventive Principle:
Principle #23Feedback

3Ease of operation

If traditional authentication methods are used, then basic security is provided, but they cannot detect code integrity or prevent injection attacks

Engineering Contradiction:
Improveauthentication simplicityVSAvoidcode integrity verification
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The system replaces traditional mechanical authentication methods (passwords, certificates) with a cryptographic hash-based verification mechanism. The external verifier computes cryptographic hashes of application code at runtime and compares them against baseline hashes, providing robust code integrity verification that detects even minor modifications or injection attacks.

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

Solution Approach 2:

The verification system dynamically changes the parameter being verified from static authentication credentials to dynamic code hash values. By computing hashes of the actual running application memory contents and comparing them against baseline values, the system adapts verification to the actual execution state, detecting code modifications that static authentication cannot prevent.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS11139983B2System and method of verifying runtime integrity
Publication Date: 2021.10.05 CYBER ARMOR LTD
  • US11139983B2 patent drawing
  • US11139983B2 patent drawing
  • US11139983B2 patent drawing

AI summary

Systems and methods of verifying runtime integrity with a trusted execution environment (TEE) may include generating, by a processor in communication with the TEE, a secure communication channel between the TEE and at least one executable program attempting to communicate with the TEE, providing, by the processor, a moving target defense (MTD) module to the at least one executable program via the generated secure communication channel, wherein the MTD module comprises disposable polymorphic code, sending over the secured communication channel, by the processor: data, received from the at least one executable program, and a transformed runtime digest of the at least one executable program, and allowing, by the processor, communication with the TEE when the validity of the transformed runtime digest of the corresponding at least one executable program is verified.