Certificate-Based Software Build Verification

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods fail to establish a trustworthy relationship between source code and binary files, as rebuilding source code often produces different binary files due to various factors, making it impossible to prove a genuine connection between the two, and manual verification is tedious and incomplete.

Innovation Solution

A certificate-based methodology is implemented, recording build information and generating a certificate signed with a public cryptographic key, which includes fingerprints of input and output files, build environment, and file operations, to verify the trustworthiness of binary files generated from source code.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If source code is rebuilt to verify binary file authenticity, then verification capability is improved, but binary file consistency deteriorates due to timestamps, environment setup, and compiler algorithms producing different binaries

Engineering Contradiction:
Improveverification capabilityVSAvoidbinary file consistency
Core Design Contradiction:
ReliabilityVSManufacturing precision

Solution Approach 1:

The patent applies preliminary action by recording build information (fingerprints of source files, build environment, tools, and parameters) before the build process executes. This pre-recorded information is stored in a build log and used later for verification without requiring actual re-building, thus avoiding consistency issues while maintaining verification capability.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces a build log as an intermediary that stores fingerprint information about the build process. This intermediary serves as evidence that bridges the source code and binary file without requiring direct re-building, allowing verification while avoiding the consistency problem of actual compilation.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Measurement precision

If manual analysis and work are performed to make regenerated binary files match original build output, then verification thoroughness is improved, but time consumption and complexity increase significantly

Engineering Contradiction:
Improveverification thoroughnessVSAvoidverification time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent creates a copy of the essential build information in the form of fingerprints (hash values) of source files, build environment, tools, and parameters. These fingerprints are stored in a build log and used for verification instead of performing complete manual analysis or re-building, thus maintaining thoroughness while dramatically reducing time and effort.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent replaces the mechanical process of manual analysis and comparison with an automated cryptographic verification system. Fingerprints are computed and compared using hash algorithms, substituting tedious manual work with efficient automated computational verification that maintains precision while reducing time loss.

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

3Manufacturing precision

If deterministic build system is implemented to ensure same output from same source code, then binary file consistency is improved, but build system flexibility and complexity increase

Engineering Contradiction:
Improvebinary file consistencyVSAvoidbuild system complexity
Core Design Contradiction:
Manufacturing precisionVSDevice complexity

Solution Approach 1:

The patent introduces a build log as an intermediary that captures and stores the actual build environment and parameters used during compilation. This intermediary records fingerprints of tools, versions, and settings, allowing verification of binary authenticity without requiring the build system to be deterministic, thus avoiding the complexity of enforcing strict determinism while maintaining consistency verification.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS11520902B2Methodology for trustworthy software build
Publication Date: 2022.12.06 FUTUREWEI TECHNOLOGIES INC
  • US11520902B2 patent drawing
  • US11520902B2 patent drawing
  • US11520902B2 patent drawing

AI summary

A certificate-based methodology is used to establish the trustworthy relationship between source codes and produced binary files for a given software build. The trustworthy relationship between the source code and binary files is generated by recording build information during building of the source code. The build information may include build environment information, framework information, source files identification, intermediately generated files information, final binary files information, file operations during building of the source code, and/or commands/operations during building of the source code. A certificate is generated using the build information for establishing a relationship between the source code and a binary file created from the source code, and the certificate is signed with a public cryptographic key. A software release package is provided to the recipient including at least the source code, final binary files generated from the source code, and the certificate.