Heterogeneous Encrypted Software Security Loader
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing software security methods face challenges in controlling access to software features and components, including vulnerabilities to malicious tampering, resource-intensive network-based verification, and impracticality for air-gapped systems, while current solutions like custom versions and license string-based distribution are complex and prone to reverse engineering.
Innovation Solution
The implementation of Heterogeneous Encrypted Software Security (HESS) involves encrypting software components with a loader program that decrypts only authorized programs using unique license keys, ensuring secure access without revealing access control logic or attributes, operating independently of network connections, and maintaining simplicity in software distribution and updates.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If software components are encrypted to prevent unauthorized access, then security is improved, but the complexity of software distribution and access control increases
Solution Approach 1:
The software is divided into encrypted components and an unencrypted loader component. The loader remains accessible to manage decryption operations, while the actual software components are encrypted and stored separately. This segmentation allows security to be improved without making the entire software distribution system complex.
Solution Approach 2:
A loader program acts as an intermediary between the user and the encrypted software components. The loader receives license keys, performs decryption operations, and loads the decrypted components into memory for execution. This intermediary simplifies the distribution mechanism by centralizing access control logic in a single unencrypted component.
2Reliability
If network-based verification is used to control software access, then access control reliability is improved, but resource consumption and operational dependency increase
Solution Approach 1:
The software system performs self-verification using the license key and decryption logic embedded in the loader component. The loader independently verifies the license key and decrypts the software components without requiring external network verification. This eliminates ongoing network dependencies and reduces resource consumption associated with network communications.
3Reliability
If all software components are encrypted to ensure security, then protection against tampering is improved, but the ease of operation and loading decreases
Solution Approach 1:
The software is segmented into an unencrypted loader component and encrypted software components. The loader remains in plain text to ensure ease of loading and execution, while only the necessary software components are encrypted for protection against tampering. This selective encryption maintains operational simplicity while providing security where needed.
Solution Approach 2:
The loader component is prepared in advance in an unencrypted state to facilitate easy loading and execution. The decryption logic is pre-built into the loader, allowing it to automatically decrypt the encrypted software components during the loading process without requiring additional user intervention or complex operations.
Data Source
AI summary
A first copy of a heterogeneous program payload is provided to a first computing device. The heterogeneous program payload contains an unencrypted component and a set of one or more encrypted components. The set of encrypted components corresponding to a set of one or more programs. The unencrypted component of the heterogeneous program payload includes loader program code configured to receive a first license key. The loader program code is configured to, in response to receiving the first license key, perform a decryption action against the set of encrypted components of the heterogeneous program payload.


