Trusted Executable Verification Without Certificate Authorities
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Operating systems often prevent the execution of unsigned or untrusted executables, posing challenges for developers who want to share code with known individuals without the burden of obtaining certificates from certificate authorities.
Innovation Solution
A trust engine system that uses key pairs for signing and verifying executables based on personal relationships between users, allowing executables to be shared and executed without certificates, using a trusted application that can run unsigned executables in a controlled environment.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If certificate authority verification is implemented to ensure executable trustworthiness, then security and reliability are improved, but device complexity and operational burden increase due to certificate management requirements
Solution Approach 1:
The patent introduces a trust engine as an intermediary component that mediates between the executable and the operating system. The trust engine verifies digital signatures and manages trust relationships, replacing the complex certificate authority infrastructure with a simplified trust verification mechanism. This intermediary handles the complexity of verification internally while presenting a simple interface to users.
Solution Approach 2:
The patent enables executables to self-verify through digital signatures embedded within them. Instead of requiring external certificate authorities to validate each executable, the executable carries its own cryptographic proof of authenticity. The trust engine on the receiving end verifies this self-provided signature, eliminating the need for complex external certificate management.
2Reliability
If certificate authority certificates are required for executable distribution, then security is improved, but ease of operation deteriorates due to the burden of obtaining and managing certificates
Solution Approach 1:
The patent implements self-service by embedding digital signatures directly in executables during compilation. Developers can sign their executables with their own private keys without needing to obtain certificates from certificate authorities. The trust engine verifies these signatures using publicly available key information, enabling simple executable sharing while maintaining security through cryptographic verification.
3Reliability
If traditional certificate-based trust verification is used, then security against unknown executables is improved, but adaptability deteriorates for trusted personal or organizational sharing scenarios
Solution Approach 1:
The patent changes the verification parameter from certificate-based trust to digital signature-based trust. Instead of requiring executables to have certificates from recognized authorities, the system verifies cryptographic signatures that can be generated by any trusted individual or organization. This parameter change enables flexible trusted sharing within communities while maintaining security through cryptographic verification.
Solution Approach 2:
The trust engine is designed with universal functionality to handle multiple trust scenarios. It can verify digital signatures from individual developers, organizational code signing authorities, or any other trusted entity. The same trust engine infrastructure supports both personal executable sharing and organizational software distribution, providing adaptability across different trust contexts.
Data Source
AI summary
A user-trusted executable execution environment is disclosed. Using a trusted application, an executable that is generally untrusted by a computing environment, can be verified and executed. A signed executable is signed by a sending trust engine and transmitted to a receiving trust engine. The receiving trust engine can verify the executable when a public key of a sending user decrypts the signed executable and when a hash generated by the receiving trust engine matches a hash of the executable included in the signed executable. The verification is finalized when the receiving user knows the sending user and confirms that the sending user sent the signed executable by using the sending user's public key to decrypt the signed executable.


