Trusted Control Flow Enforcement via Derived Encryption Keys
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current information handling systems face challenges in ensuring trusted control flow enforcement, as existing verification methods are vulnerable to time-of-check, time-of-use race conditions and return-oriented programming attacks, which allow malicious software to introduce changes in verified code segments, leading to potential exploits within the control flow graph.
Innovation Solution
The system employs a communication channel monitor to calculate hash values of encrypted code segments, deriving encryption keys based on the sequence of execution, ensuring that only correctly sequenced code segments can be decrypted and executed, thereby enforcing control flow integrity without requiring access to source code or debug information.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If existing verification methods are used to verify code segments, then code execution can proceed, but the system becomes vulnerable to time-of-check time-of-use race conditions and return-oriented programming attacks
Solution Approach 1:
The system performs preliminary encryption of code segments before execution, where each code segment is encrypted with a key derived from the previous segment. This preliminary cryptographic binding ensures that verification and protection are built into the execution flow itself, preventing race conditions and return-oriented programming attacks by making unauthorized code modifications detectable through decryption failures
Solution Approach 2:
The patent introduces cryptographic keys as an intermediary mechanism between code segments. Each key acts as a mediator that connects the verification of one segment to the execution of the next, creating a chained trust relationship that prevents harmful factors from compromising control flow integrity
2Reliability
If code segments are encrypted and decrypted in sequence, then control flow integrity is enforced, but system complexity increases
Solution Approach 1:
The system employs dynamic key derivation where encryption keys are generated on-the-fly based on the execution state and previous segment verification. This dynamic approach allows the complexity to be distributed across execution steps rather than requiring a complex static encryption infrastructure, enabling control flow enforcement while managing system complexity through adaptive cryptographic operations
Data Source
AI summary
A system includes a communication channel monitor configured to calculate a hash value of a first encrypted code segment based on a measurement. A security module may derive a first encryption key using a key decryption function operation from the hash value of the first encrypted code segment. A processor decrypts the first encrypted code segment with a seed key retrieved from a storage device, and if the decryption is successful then executes the first decrypted code segment. The processor may retrieve a second one of the encrypted code segments, wherein the second encrypted code segment is a next encrypted code segment for execution after the first encrypted code segment according to a sequence of execution, decrypt the second encrypted code segment with the first encryption key, and if the decryption is successful then execute the second decrypted code segment.


