Verifiable Machine Code Metadata for Safe Execution
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
2Reliability
If comprehensive verification rules are applied to all machine code sections, then security is improved, but processing speed decreases
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.
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.
3Measurement precision
If metadata is generated for all code sections, then verification accuracy is improved, but time and computational resources increase
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.
Data Source
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.


