COTS Binary Encryption With Hardware Enclave Loading
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Software piracy is difficult to prevent as attackers have full control of the computing device and system, and existing hardware enclaves require software developers to modify their programs, which is not feasible.
Innovation Solution
A method and system that modify commercial off-the-shelf program binaries to separate code and data sections, encrypt code, and add headers to load code into a hardware enclave, using a standard operating system loader without requiring software developer intervention.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If hardware enclaves are used to protect software from piracy, then security against piracy is improved, but device complexity increases
Solution Approach 1:
The patent introduces a hardware enclave as an intermediary protected execution environment that mediates between the untrusted general-purpose processor and the software code. The enclave acts as a secure boundary that prevents pirates from accessing or modifying code, while the processor continues to function normally. This resolves the contradiction by adding a specialized security component rather than making the entire system complex.
Solution Approach 2:
The patent segments the code into two parts: encrypted code that executes within the hardware enclave and unencrypted data that resides outside. This segmentation allows the critical code portion to be protected while the rest of the system operates normally, improving security without requiring complete system redesign.
2Reliability
If software developers modify their programs to use hardware enclaves, then protection from piracy is improved, but ease of manufacture deteriorates
Solution Approach 1:
The patent enables the hardware enclave to automatically perform code encryption and management without requiring software developers to manually modify their programs. The system self-services by handling the complex tasks of code segmentation, encryption, and enclave management automatically, thus improving security while maintaining ease of software deployment.
Solution Approach 2:
The hardware enclave serves as an intermediary that automatically manages code protection without requiring changes to the software development process. The enclave handles encryption and execution automatically, eliminating the need for developers to manually modify their programs while still providing strong anti-piracy protection.
3Reliability
If code is encrypted and separated from data, then piracy protection is improved, but device complexity increases
Solution Approach 1:
The patent segments code and data into separate memory regions with different access permissions. Code is encrypted and placed in a protected section that can only be executed within the hardware enclave, while data remains in unencrypted form outside the enclave. This segmentation provides strong piracy protection while keeping the system architecture relatively simple by using standard memory management techniques.
Data Source
AI summary
This disclosure describes systems and methods for protecting commercial off-the-shelf software program code from piracy. A software program may include an executable file. The executable file may include code and data. A platform may modify the executable file such that the data may be placed at a location in memory not based on a fixed distance from the code. The platform may modify the executable file to indicate that the code should be loaded in a hardware enclave and at least a portion of the data should be loaded in the memory outside the hardware enclave. The platform may encrypt the code and provide it to a computing device.


