Segmented Code Integrity Checking for Anti-Tamper Protection
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing software security measures, such as obfuscation and copy protection, provide low-level security and are easily bypassed, making it difficult to effectively protect software from unauthorized tampering, modification, and reverse engineering, which can lead to loss of intellectual property and revenue.
Innovation Solution
An anti-tamper method that divides program code into segments with integrity checking portions, forming a linked chain of checks, where each segment verifies the integrity of adjacent segments, making it extremely laborious for hackers to modify attributes without compromising the entire sequence, thereby providing robust protection against unauthorized modification.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If obfuscation techniques are used to protect software code, then the code becomes difficult to read and understand, but the security level remains low and can be easily bypassed by reverse engineering tools
Solution Approach 1:
The software code is divided into multiple code segments, each with associated metadata. This segmentation allows the system to protect specific critical segments while maintaining others in their original form, thereby improving security without unnecessarily complicating the entire codebase.
Solution Approach 2:
The patent introduces an intermediary layer consisting of metadata and integrity checking mechanisms that mediate between the original code and potential attackers. This intermediary layer provides robust security without requiring the code itself to be obfuscated, thus avoiding the trade-off between security and code readability.
2Reliability
If copy protection techniques with password or serial number access are implemented, then unauthorized copying is prevented, but the protection can be easily compromised and provides only low-level security
Solution Approach 1:
The system performs preliminary integrity checking of code segments before execution. By checking the integrity of each code segment against its metadata beforehand, the system prevents unauthorized modifications from taking effect, providing strong anti-tamper protection that is difficult to compromise.
Solution Approach 2:
The patent implements a feedback mechanism where integrity checking results are used to control program execution. If any code segment fails the integrity check, the system can respond by preventing execution or alerting the user, creating a closed-loop security system that is highly effective and difficult to bypass.
3Reliability
If program folding techniques are used to protect firmware, then random routine calls are generated, but the security level remains low and additional security procedures are still necessary
Solution Approach 1:
The firmware is segmented into protected code segments with associated metadata. This segmentation enables targeted protection of critical routines without requiring program folding techniques, achieving high security with simpler procedures.
Solution Approach 2:
The patent replaces complex mechanical-style program folding techniques with a metadata-based integrity checking system. This substitution achieves equivalent or superior security with simpler, more maintainable procedures that do not require additional security layers.
4Reliability
If obfuscated code is used to deter reverse engineering, then the code is difficult to read, but it remains vulnerable to basic code obfuscation bypass tools and requires maintaining two versions of the code
Solution Approach 1:
By segmenting the code and applying protection selectively to critical segments through metadata, the system protects intellectual property without obfuscating the entire codebase. This approach maintains code readability and simplifies maintenance while still providing strong IP protection.
Solution Approach 2:
The patent applies different levels of protection to different parts of the code based on their criticality. Critical segments are protected with integrity checking, while non-critical segments remain in their original form, optimizing both protection and maintainability.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
The application describes anti-tamper techniques for protecting a program code portion against tampering. According to the described techniques, a sequence of code segments having a root-code segment and a plurality of sub-code segments is defined. Each sub-code segment is provided with an integrity checking portion for checking the integrity of a target code segment. At runtime, the integrity checking portion of a given sub-code segment carries out a checking procedure on the respective target code segment to obtain a runtime result which is compared with a reference result to verify that the target portion of the program has not been tampered with.