Java Mobile Code Protection via Class Loader Obfuscation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing techniques for protecting Java mobile code against malicious hosts are inadequate, as they either fail to effectively obfuscate system-defined symbolic names or are vulnerable to watermark removal, allowing for illegitimate use and modification of the code.

Innovation Solution

The implementation of a multi-layer protection approach that combines obfuscation and watermarking, using encrypted symbolic names and static watermarks, along with an enhanced class loader for dynamic authentication, to protect Java mobile code from malicious hosts.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Difficulty of detecting and measuring

If obfuscation techniques are applied to Java mobile code, then the code becomes more difficult to study and reverse engineer, but system-defined symbolic names cannot be effectively obfuscated

Engineering Contradiction:
Improvedifficulty to reverse engineerVSAvoidobfuscation effectiveness
Core Design Contradiction:
Difficulty of detecting and measuringVSAdaptability or versatility

Solution Approach 1:

The patent introduces encrypted symbolic names as an intermediary layer between the original system-defined names and the obfuscated code. The class loader acts as a mediator that decrypts these names at runtime, enabling obfuscation of system-defined names while maintaining functionality. This resolves the contradiction by allowing obfuscation effectiveness to improve without compromising the ability to resolve names.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent applies preliminary encryption to symbolic names before the code execution. The encrypted symbolic names are prepared in advance and stored in the code, and the class loader is pre-configured with the decryption capability. This preliminary action enables effective obfuscation of system-defined names while ensuring smooth runtime resolution.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If watermarking is applied to detect code modification, then code authenticity can be verified, but watermarks can be removed or altered by malicious hosts

Engineering Contradiction:
Improvecode authenticity verificationVSAvoidwatermark removal vulnerability
Core Design Contradiction:
ReliabilityVSObject-affected harmful factors

Solution Approach 1:

The patent implements nested watermarks where multiple watermark layers are embedded within the code structure. The class loader is enhanced to verify multiple watermark layers sequentially, making it increasingly difficult for malicious hosts to remove or alter all layers without detection. This nested approach strengthens authenticity verification while reducing watermark removal vulnerability.

Inventive Principle:
Principle #7Nested doll (Nesting)

Solution Approach 2:

The patent applies preliminary watermark embedding and verification mechanisms before code execution. The enhanced class loader performs watermark verification as part of the code loading process, preventing modified code from being executed in the first place. This preliminary anti-action counteracts potential watermark removal attempts by detecting modifications before they can take effect.

Inventive Principle:
Principle #9Preliminary anti-action

3Reliability

If multiple protection layers are combined, then security against malicious hosts is enhanced, but system complexity increases

Engineering Contradiction:
Improvesecurity protectionVSAvoidprotection system complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent designs the enhanced class loader to perform multiple functions: loading classes, decrypting encrypted symbolic names, verifying watermarks, and detecting code modification. By consolidating these protection functions into a single universal component, the system achieves enhanced security while minimizing the increase in overall system complexity. This multi-functionality approach allows multiple protection layers to work together without proportionally increasing complexity.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS7877613B2Protecting mobile code against malicious hosts
Publication Date: 2011.01.25 FRAUNHOFER GESELLSCHAFT ZUR FORDERUNG DER ANGEWANDTEN FORSCHUNG EV
  • US7877613B2 patent drawing
  • US7877613B2 patent drawing
  • US7877613B2 patent drawing

AI summary

Techniques for using a class loader to protect mobile code against a malicious host. The techniques include using the class loader to extend a class used by the mobile code such that a method is added to the code which authenticates the mobile code. When executed, the method provides a dynamic watermark that authenticates the code. The method may be encrypted until it is added to the code. One such method uses a static watermark in the code to determine whether the code has been modified. The techniques also include using a class loader to extend the class such that obfuscated symbolic names in the program that correspond to symbolic names defined by the class can be resolved. A way of doing this is to include a first association between the obfuscated symbolic names and encrypted forms of the corresponding symbolic names in the program and to make a second association between the encrypted forms of the corresponding symbolic names and information used to resolve the symbolic names defined in the class. The loader then uses the first and second associations to resolve the obfuscated names.