Software Code Integrity Verification on Untrusted Platforms

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvecode integrity guaranteeVSAvoidhardware requirements
Core Design Contradiction:
ReliabilityVSDevice complexity

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.

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

2Reliability

If hardware-based verification (TPM, LaGrande, SVM) is implemented, then verifiable code execution is achieved, but adaptability to legacy computing platforms worsens

Engineering Contradiction:
Improveverifiable code executionVSAvoidlegacy platform compatibility
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

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.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Measurement precision

If load-time attestation techniques are used, then memory content verification is improved, but protection against runtime tampering and execution substitution worsens

Engineering Contradiction:
Improvememory integrity verificationVSAvoidexecution guarantee
Core Design Contradiction:
Measurement precisionVSReliability

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.

Inventive Principle:
Principle #20Continuity of useful action

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.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS9177153B1Verifying integrity and guaranteeing execution of code on untrusted computer platform
Publication Date: 2015.11.03 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US9177153B1 patent drawing
  • US9177153B1 patent drawing
  • US9177153B1 patent drawing

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.