Software Code Integrity Verification on Untrusted Platforms
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing methods for verifying code integrity and ensuring execution on untrusted computers are inadequate, as they rely on hardware extensions or are vulnerable to tampering and attacks such as memory copy and virtualization-based attacks, lacking a robust software-based solution for legacy platforms.
Innovation Solution
A software-based method called Pioneer is introduced, which uses a challenge-response protocol to establish a dynamic root of trust on an untrusted platform, ensuring the integrity and untampered execution of code through a verification function that computes a checksum over its own instructions, detectable by a trusted entity, thus providing verifiable code execution without requiring secure co-processors or CPU architecture extensions.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If hardware extensions (TPM chip, CPU architectural enhancements) are used to provide verifiable code execution, then code integrity and execution guarantee are improved, but device complexity and compatibility with legacy platforms worsen
Solution Approach 1:
The patent replaces hardware-based verification mechanisms (TPM chips, CPU extensions) with a software-based verification function that computes checksums over code in memory. This substitution eliminates the need for specialized hardware components while maintaining the ability to verify code integrity and execution on legacy platforms without hardware extensions.
2Reliability
If hardware-based verification (TPM, LaGrande, SVM) is implemented, then verifiable code execution is achieved, but adaptability to legacy computing platforms worsens
Solution Approach 1:
The verification function is designed to operate universally across different computing platforms including legacy systems without requiring specialized hardware extensions. The software-based approach allows the same verification mechanism to function on diverse platforms from modern systems with TPM/SVM to older systems without such hardware, achieving broad adaptability while maintaining verifiable code execution.
3Measurement precision
If load-time attestation techniques are used, then memory content verification is improved, but protection against runtime tampering and execution substitution worsens
Solution Approach 1:
The verification function continuously verifies code integrity during execution by computing checksums over the verification function itself and other critical code sections. This continuous verification approach extends protection beyond load-time to runtime, ensuring that even if code is modified during execution or if execution is substituted, the tampering will be detected through ongoing checksum verification.
Solution Approach 2:
The system implements feedback mechanisms where the verification function monitors its own execution and the execution state of other code. By computing checksums that include verification of the verification function itself and comparing results against expected values, the system creates a feedback loop that detects runtime tampering and prevents execution substitution, thereby improving execution guarantee.
Data Source
AI summary
A method, system, and apparatus for verifying integrity and execution state of an untrusted computer. In one embodiment, the method includes placing a verification function in memory on the untrusted computer; invoking the verification function from a trusted computer; determining a checksum value over memory containing both the verification function and the execution state of a processor and hardware on the untrusted computer; sending the checksum value to the trusted computer; determining at the trusted computer whether the checksum value is correct; and determining at the trusted computer whether the checksum value is received within an expected time period.


