Software Package Integrity via Trusted Execution Environment

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for building and signing software packages in cloud computing environments lack assurance of integrity and authenticity, especially when built outside a vendor's build system, leading to potential tampering and variability across different user environments.

Innovation Solution

Implementing a trusted execution environment (TEE) within a host computer system to build software packages, where the software vendor can cryptographically sign the packages using secure cryptographic hash functions and private keys, ensuring authenticity and integrity.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If software packages are built outside a vendor's build system in cloud environments, then accessibility and convenience of software deployment is improved, but integrity and authenticity of the packages deteriorate due to potential tampering and variability across different user environments

Engineering Contradiction:
Improvesoftware deployment accessibilityVSAvoidpackage integrity and authenticity
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The system separates the build process into two distinct environments: a trusted execution environment (TEE) for secure package creation and a general cloud environment for flexible deployment. The TEE acts as an isolated segment that guarantees integrity while the cloud provides accessibility, resolving the contradiction between security and convenience.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The trusted execution environment serves as an intermediary between the vendor's build system and the user's cloud environment. It mediates the package building process by providing a secure, standardized environment that maintains vendor-controlled integrity while enabling cloud-based accessibility.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If software packages are built in a vendor's controlled build system, then integrity and authenticity are improved, but accessibility and flexibility across different user environments deteriorate

Engineering Contradiction:
Improvepackage integrity and authenticityVSAvoidenvironment-specific customization
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The system performs preliminary actions by building the software package in a trusted execution environment with standardized configurations before deployment. This preliminary secure build ensures integrity, while subsequent environment-specific adaptations can be made without compromising the core package authenticity.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The solution applies different quality standards to different parts of the software delivery process: the core package binary is built with high security standards in the TEE, while environment-specific configurations can vary locally without affecting the authenticated core package.

Inventive Principle:
Principle #3Local quality

3Reliability

If software packages are built in isolated trusted execution environments, then security and integrity are improved, but build process complexity and resource requirements worsen

Engineering Contradiction:
Improvebuild process securityVSAvoidtrusted execution environment setup
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The trusted execution environment is designed to self-attest its integrity and automatically manage its secure state. The TEE performs self-verification of its own security properties and automatically handles the secure build process, reducing the operational complexity for users while maintaining high security standards.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS11698968B2Management of building of software packages using a trusted execution environment
Publication Date: 2023.07.11 RED HAT INC
  • US11698968B2 patent drawing
  • US11698968B2 patent drawing
  • US11698968B2 patent drawing

AI summary

Systems and methods providing a processing device to receive, by a software build process executing in a trusted execution environment (TEE) of a first computer system, software source code from a second computer system. The processing device generates a software package by compiling the software source code. The processing device also generates a first signature of the software package and sends the first signature to the second computer system. Responsive to receiving, from the second computer system, a second signature comprising the first signature signed by the second computer system, the processing device further deploys the software package on the first computer system.