Verifiable Machine Code Metadata for Safe Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Untrusted machine code poses security risks by potentially compromising computing devices, and existing solutions like sandboxing or proof-carrying code add complexity and performance overhead, making them impractical for all scenarios.

Innovation Solution

The development of verifiable machine code that includes metadata to identify safe execution sections, allowing a verifier to apply specific rules and execute instructions that violate safety policies within controlled verifiable sections, ensuring safe execution without sandboxing and maintaining high processing efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If sandboxing or proof-carrying code is used to verify machine code safety, then security is improved, but device complexity and performance overhead increase

Engineering Contradiction:
Improvemachine code safetyVSAvoidverification system complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The machine code is divided into verifiable sections that can be independently analyzed. The verification system segments the code into basic blocks and identifies specific verifiable sections, allowing targeted verification rather than analyzing the entire program. This reduces the complexity of the verification process while maintaining security.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Verification rules and safety policies are established before execution. The system pre-identifies verifiable sections and prepares verification rules in advance, so that during runtime, the verifier can quickly apply predetermined rules without complex real-time analysis, reducing both complexity and overhead.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If comprehensive verification rules are applied to all machine code sections, then security is improved, but processing speed decreases

Engineering Contradiction:
Improvemachine code safetyVSAvoidexecution speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

Different verification strategies are applied to different sections of machine code. Verifiable sections with identifiable patterns receive targeted verification rules, while other sections use standard safety policies. This localized approach ensures thorough verification where needed without slowing down the entire execution process.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The system applies verification rules selectively to specific verifiable sections rather than analyzing every instruction. By focusing verification efforts on identifiable patterns and sections that can be quickly verified, the system achieves adequate security without the performance penalty of comprehensive verification.

Inventive Principle:
Principle #16Partial or excessive action

3Measurement precision

If metadata is generated for all code sections, then verification accuracy is improved, but time and computational resources increase

Engineering Contradiction:
Improveverification accuracyVSAvoidmetadata generation time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

Metadata is generated only for verifiable sections of machine code that exhibit identifiable patterns, rather than for the entire program. The system segments the code and selectively annotates sections where verification can be effectively applied, reducing the time and resources required for metadata generation while maintaining verification accuracy for critical sections.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS12259978B2Verifiable machine code
Publication Date: 2025.03.25 APPLE INC
  • US12259978B2 patent drawing
  • US12259978B2 patent drawing
  • US12259978B2 patent drawing

AI summary

Aspects and features include a structure for a program directed to a target computing device and metadata that can be used by a verifier in the target computing device. The verifier can quickly and efficiently apply verification rules to identified sections of the program to determine whether the program is safe to execute by the target computing device. In some examples, the target computing device uses the verifier to identify, using the metadata, verifiable sections of instructions that violate execution safety policies. The verifier can apply verification rules to the verifiable sections to determine whether to execute each verifiable section despite instructions in the verifiable section violating execution safety policies. The program and the metadata can be generated, as an example, by a compiler from source code, and transmitted or otherwise distributed to target computing devices.