Partial ELF Encryption for Shared Library Protection
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Shared libraries in open operating systems are vulnerable to theft, as third-party written libraries can be accessed and used without payment, leading to financial loss for providers.
Innovation Solution
A method of encrypting a partial portion of the ELF file, using a random number and its hash, stored in a hardware-based security engine, to prevent unauthorized access and loading of shared libraries, while reducing encryption time and resource usage.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the entire ELF file is encrypted to protect shared libraries, then security is improved, but encryption time and system resources increase significantly
Solution Approach 1:
The patent divides the ELF file into multiple segments and identifies only specific critical segments (such as the program header table and certain sections) that contain shared library information. Only these identified segments are encrypted, while other segments remain unencrypted. This segmentation approach maintains security for critical information while reducing the overall encryption scope and resource consumption.
Solution Approach 2:
The patent applies different encryption treatments to different parts of the ELF file based on their security requirements. Critical segments containing shared library paths and symbols are encrypted with higher security measures, while non-critical segments are either encrypted with simpler methods or left unencrypted. This local quality differentiation optimizes the balance between security and performance.
2Reliability
If more portions of the ELF file are encrypted, then protection of shared libraries is improved, but system resources and processing overhead increase
Solution Approach 1:
The ELF file structure is segmented into identifiable sections (headers, program segments, sections). The patent specifically targets and encrypts only those segments that contain shared library dependency information, such as the program header table and dynamic section, rather than encrypting the entire file. This reduces the amount of data processed during encryption and decryption operations.
Solution Approach 2:
Instead of applying full encryption to the entire ELF file (excessive action), the patent applies encryption selectively to only the necessary portions that contain shared library information (partial action). This partial encryption approach provides sufficient protection for the critical information while minimizing the computational overhead and resource consumption.
3Reliability
If encryption is applied to the ELF file, then unauthorized access to shared libraries is prevented, but the complexity of the system increases
Solution Approach 1:
The patent performs encryption of the ELF file segments during the compilation or linking phase, before the program is executed. The encrypted segments are embedded into the final executable file. This preliminary action ensures that when the program runs, the decryption and verification processes are already optimized and built-in, reducing the runtime complexity and overhead.
Solution Approach 2:
The ELF file is designed to contain its own encryption keys or decryption information within the file structure itself (such as in the section headers or as embedded data). When the program is executed, it can autonomously decrypt its own segments without requiring external key management systems or additional security infrastructure, thereby reducing system complexity.
Data Source
AI summary
A method of encryption and decryption for shared libraries in an open operating system is provided. By encrypting a partial portion of an executable and linkable format (ELF) file, where the ELF file is dependent on the shared libraries, an operating system lacking a secret key is not able to use the encrypted ELF file and thus not able to load the shared libraries into the memory for execution, thereby ensuring the protection of the shared libraries.


