Software Package Integrity via Trusted Execution Environment
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
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
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.
Data Source
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.


