Trusted Verifier for User-Verifiable Code Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Commodity operating systems and applications lack assurance of security-sensitive code and data integrity due to increased complexity, object code compatibility, and mixed-provenance code bases, making them vulnerable to malware and difficult to verify for security properties.

Innovation Solution

The system provides user-verifiable execution of security-sensitive code on untrusted platforms by using a trusted verifier for attestation, minimizing secrets, and employing hardware and software-based attestation mechanisms to ensure code integrity and confidentiality, even in the presence of malware, with a focus on usability and compatibility with current environments.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If commodity operating systems increase in size and complexity to support plug and play code and maintain object code compatibility, then adaptability and ease of operation are improved, but verification of code integrity and security properties becomes impossible

Engineering Contradiction:
Improveplug and play code supportVSAvoidcode integrity verification
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent divides the operating system code base into discrete, verifiable modules or components. Each module can be individually verified for security properties while the system maintains overall adaptability through the ability to load and execute multiple modules. This segmentation allows verification of individual components without requiring verification of the entire complex system.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary verification mechanism or trusted execution environment that mediates between the complex operating system and the verification process. This intermediary provides a controlled interface through which code integrity can be verified without requiring direct access to or verification of the entire operating system code base.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of operation

If operating systems retain object code compatibility for applications, then ease of operation is improved, but security flaws in APIs become immutable and cannot be eliminated

Engineering Contradiction:
Improveapplication compatibilityVSAvoidAPI security
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The patent extracts or isolates security-critical API operations from the general operating system code base. By separating these security-sensitive functions into distinct, verifiable components, the system can maintain compatibility with existing applications while applying enhanced security verification specifically to the extracted security-critical portions.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent applies different quality standards to different parts of the system. Security-critical API regions are subjected to rigorous verification and security properties, while non-critical regions maintain standard compatibility. This local differentiation allows the system to enforce high security standards where needed without compromising overall application compatibility.

Inventive Principle:
Principle #3Local quality

3Adaptability or versatility

If operating systems support mixed-provenance code bases from different development organizations, then adaptability is improved, but global guarantees of security properties cannot be provided

Engineering Contradiction:
Improvemixed-provenance code supportVSAvoidglobal security guarantees
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent segments the code base by provenance, allowing each development organization's code to be independently verified and tagged with its security properties. This segmentation enables the system to support mixed-provenance code while maintaining traceability and verification of each component's security characteristics without requiring a single global security guarantee.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements feedback mechanisms that track and verify the security properties of code from different provenance sources. Each code module provides feedback about its security attributes, allowing the system to aggregate and verify security properties across mixed-provenance code bases through continuous monitoring and validation.

Inventive Principle:
Principle #23Feedback

4Adaptability or versatility

If continuous extension of code base with new modules is performed, then adaptability is improved, but verification of penetration resistance becomes ineffective when code exceeds one million lines

Engineering Contradiction:
Improvesystem extensibilityVSAvoidpenetration resistance verification
Core Design Contradiction:
Adaptability or versatilityVSDifficulty of detecting and measuring

Solution Approach 1:

The patent segments the continuously growing code base into manageable, verifiable units or modules. Each segment can be independently analyzed for penetration resistance, allowing verification to scale with system extensibility. This modular approach prevents the verification difficulty from compounding as the overall system grows beyond one million lines.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies preliminary verification actions to code modules before they are integrated into the larger system. By verifying penetration resistance at the module level before integration, the system maintains effective verification capabilities even as the overall code base continuously expands, preventing verification difficulty from accumulating.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8627414B1Methods and apparatuses for user-verifiable execution of security-sensitive code
Publication Date: 2014.01.07 CARNEGIE MELLON UNIV
  • US8627414B1 patent drawing
  • US8627414B1 patent drawing
  • US8627414B1 patent drawing

AI summary

A computer including a processor and a verification device. The processor in the computer performs the steps of authenticating a secure connection between a hypervisor and the verification device, measuring the identity of at least a portion of a select guest before the select guest executes any instruction, and sending a measurement of the identity of the select guest to the verification device. The verification device compares the policy stored in the verification device with the measurement of the select guest received by the verification device. The steps of authenticating, measuring, sending, and comparing are performed after receiving a signal indicative of a request to execute the select guest and without rebooting the computer.