Code Transparency Bootstrapping With TEE Attestation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing confidential computing environments face challenges in ensuring the integrity and confidentiality of third-party code, as the integrity and confidentiality provided by the confidential computing environment can be violated without the user's knowledge, due to potential back doors or unknown vulnerabilities in the third-party code.
Innovation Solution
A Code Transparency Service (CTS) instance is bootstrapped using a Trusted Execution Environment (TEE) to enforce code transparency, where cryptographically verifiable evidence is used to ensure compliance with policies, and a distributed ledger is maintained to record and attest code measurements, generating a CTS service key for cryptographic operations, thereby establishing trust in the code.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If third-party code is used in confidential computing environment, then functionality and versatility are improved, but security and reliability deteriorate due to potential back doors or unknown vulnerabilities
Solution Approach 1:
The system performs preliminary actions by measuring and recording the code identity (hash) of third-party code before it is executed in the confidential computing environment. This pre-execution verification allows the system to establish a baseline of what the code should look like, enabling later verification that the code has not been tampered with or replaced by malicious versions.
Solution Approach 2:
The system implements continuous feedback mechanisms by monitoring and verifying the identity of third-party code during runtime. The code transparency service continuously checks whether the executing code matches the recorded hash, providing real-time feedback about code integrity. This allows the system to detect and respond to any unauthorized modifications or substitutions of the third-party code.
2Reliability
If code transparency service is implemented to verify third-party code, then security and reliability are improved, but device complexity increases
Solution Approach 1:
The patent introduces a code transparency service as an intermediary component that sits between the confidential computing environment and the third-party code. This mediator is responsible for measuring, recording, and verifying code identity, thereby simplifying the overall system architecture by centralizing the verification logic in a dedicated service rather than distributing complexity across multiple components.
Solution Approach 2:
The system replaces complex manual code verification and security auditing processes with automated cryptographic mechanisms. By using hash-based code identity verification and cryptographic signatures, the system substitutes manual security checks with efficient automated cryptographic operations, reducing the need for complex human-driven verification processes.
3Measurement precision
If cryptographic verification of code identity is performed, then measurement precision and detection accuracy are improved, but use of energy and computational resources increase
Solution Approach 1:
The system uses computationally inexpensive hash functions to generate code identity measurements instead of more expensive cryptographic verification methods. The hash-based approach provides sufficient verification accuracy for code identity while consuming minimal computational resources. The system accepts that individual hash computations are simple and disposable, relying on the cumulative effect of many such operations to maintain overall security.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
The disclosed technology is generally directed to code transparency. In one example of the technology, evidence associated with a policy is obtained. The evidence includes data that includes cryptographically verifiable evidence associated with initial source code in accordance with the policy. The initial source code is source code for a CTS. The initial binary that is based on the initial source code is executed in a TEE such that a CTS instance begins operation. The CTS instance is configured to register guarantee(s) associated with code approved by the CTS instance. The TEE is used to provide a ledger. The evidence is stored on the ledger. Measurement(s) associated with the binary are provided. A service key associated with CTS instance is generated. TEE attestation of the measurement(s), the evidence, and the service key is provided.