Trusted OS Digest Verification for Secure Application Updates
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In the post-PC era, businesses face challenges in securely managing and updating privileged applications on personally owned mobile devices, particularly in ensuring that secrets and cryptographic keys are securely derived and managed within a trusted execution environment to prevent unauthorized access.
Innovation Solution
A system and method that utilize a trusted operating system within a trusted execution environment to store digests of binary files associated with trusted applications, allowing for secure updates and deriving secrets bound to these applications using a key derivation function, ensuring that only authorized components can access these secrets.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If a trusted application is updated on a mobile device, then the application functionality is improved, but the security of secrets and cryptographic keys may be compromised
Solution Approach 1:
The system segments the trusted application into multiple binary files (e.g., .so files, configuration files, resource files) that can be independently updated. Each binary file has its own digest calculated and stored separately, allowing selective updates without compromising the entire application's security. The trusted OS verifies each binary file's digest independently during updates.
Solution Approach 2:
The patent introduces a trusted OS as an intermediary between the trusted application and the update mechanism. The trusted OS calculates digests of binary files, stores them securely, and verifies them during updates. This intermediary layer ensures that even if the application is updated, the secrets and cryptographic keys remain protected by the trusted OS's verification process.
2Adaptability or versatility
If multiple binary files are associated with a trusted application, then the application functionality is enhanced, but the complexity of managing and verifying file integrity increases
Solution Approach 1:
The patent merges the integrity verification mechanism into the trusted OS itself, rather than requiring separate verification processes for each binary file. The trusted OS automatically calculates digests, stores them in a secure database, and performs verification during application execution or updates. This consolidation reduces the perceived complexity for users while maintaining robust security.
Solution Approach 2:
The system implements self-service through automatic digest calculation and verification. When binary files are updated, the trusted OS automatically detects the changes, recalculates the digests, and verifies them without user intervention. This automation eliminates the need for manual file management and verification, reducing complexity while enhancing functionality.
3Reliability
If secrets are derived from a master key bound to an application, then security is improved, but the difficulty of managing secrets across updates increases
Solution Approach 1:
The system performs preliminary actions by pre-calculating and storing the digests of all binary files associated with a trusted application before deployment. The trusted OS also pre-establishes the relationship between the master key and application-specific secrets. When updates occur, the system compares new digests against the pre-stored ones, simplifying the management process while maintaining security.
Data Source
AI summary
A system and method can support device management. A trusted operating system (OS) in a trusted execution environment can store a digest for one or more binary files, which are associated with a trusted application that is deployed in the trusted execution environment. Then, the system can update the trusted application based on one or more updates received from a service provider. Furthermore, the system allows the trusted OS to derive at least one secret bound to the updated trusted application using the digest stored by the trusted OS in the trusted execution environment.


