Runtime Verification of Embedded Controller Instructions
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Malware attacks on computing systems can compromise system instructions, leading to unauthorized access and operations, and existing verification methods are limited to pre-runtime or low power states, which delays detection of compromised instructions.
Innovation Solution
Implementing runtime verification using a processor, shared memory, and an embedded controller (EC) to verify EC instructions during runtime, employing cryptographic techniques and a Platform Controller Hub (PCH) for communication, allowing earlier identification of compromised instructions and enabling repair or notification.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If verification is performed only prior to runtime or during sleep states, then system resources are conserved and power consumption is reduced, but detection of compromised instructions is delayed
Solution Approach 1:
The system performs verification of EC instructions during runtime by establishing a runtime verification path that checks instructions before they are executed. This preliminary verification during runtime allows the system to detect compromised instructions earlier than traditional post-execution or sleep-state verification methods, while still maintaining resource efficiency through selective verification of critical instructions.
Solution Approach 2:
The patent introduces an intermediary verification mechanism that operates between the EC instructions and their execution. The verification path includes checking instructions against a reference copy and validating cryptographic signatures during runtime, acting as a mediator that ensures instruction integrity without requiring full system verification or entering sleep states.
2Reliability
If runtime verification is implemented, then detection of compromised instructions is earlier, but system complexity and verification overhead increase
Solution Approach 1:
The verification system is segmented into distinct components: a first path for normal EC instruction execution, a second path for runtime verification, and a third path for handling verification failures. This segmentation allows the system to perform runtime verification without requiring complete redesign of the EC subsystem, reducing overall complexity while maintaining reliability.
Solution Approach 2:
The system performs partial verification by selectively verifying critical EC instructions during runtime rather than verifying all instructions comprehensively. This partial action approach provides sufficient security for the most important instructions while minimizing the overhead and complexity associated with full-system verification.
3Reliability
If comprehensive verification of all EC instructions is performed, then security is enhanced, but processing time and system performance decrease
Solution Approach 1:
The verification system applies different verification intensities to different EC instructions based on their criticality. High-priority instructions that control system security and operation undergo rigorous runtime verification including cryptographic signature validation, while less critical instructions receive simplified verification or are verified less frequently, maintaining security for critical functions while preserving system performance.
Solution Approach 2:
The system performs verification on only the most critical EC instructions during runtime rather than all instructions. This partial verification approach focuses computational resources on protecting the most security-sensitive operations, providing adequate security while minimizing performance overhead.
Data Source
AI summary
Example implementations relate to runtime verification. In one example, runtime verification includes a processor, a shared memory storing embedded controller instructions, and an embedded controller to verify the embedded controller instructions stored in the shared memory during runtime of the processor.


