Software License Protection via PKI Segmentation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing software protection mechanisms, such as encoded digital licenses with secret product keys, are vulnerable to hijacking and unauthorized use, especially with the advent of programming languages like Java, which can easily bypass license checks.
Innovation Solution
A system and method utilizing Public Key Infrastructure (PKI) with a management component to generate and encrypt license keys, and a runtime component to verify their validity, ensuring only authorized use by embedding the license issuer's public key with the software, and using Java annotations to obfuscate and enforce license checks.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If encoded digital licenses with secret product keys are used, then software protection is implemented, but the system becomes vulnerable to hijacking and unauthorized use
Solution Approach 1:
The license verification system is segmented into multiple independent components: license issuance module, license embedding module, license verification module, and feature activation module. This segmentation isolates the secret product keys within encrypted license files that are distributed separately from the software code, preventing hijacking of the verification logic while maintaining protection reliability
Solution Approach 2:
An intermediary license file acts as a mediator between the software code and the verification mechanism. The license file contains encrypted product keys and feature information that are verified by the license verification module, creating a secure intermediary layer that prevents direct access to secret keys and eliminates vulnerabilities to hijacking
2Reliability
If license verification is implemented, then unauthorized use is prevented, but performance overhead increases
Solution Approach 1:
License verification is performed as a preliminary action during software initialization and feature activation rather than during every operation. The license verification module checks the validity of license keys and caches the verification results, enabling fast feature activation without repeated verification overhead during runtime
Solution Approach 2:
The license verification system implements self-service through automatic verification of license files during software startup and feature access. The license verification module automatically checks license validity and caches results, eliminating the need for manual verification and reducing performance overhead through automated optimization
Data Source
AI summary
A system and method encrypt a license file associated with computer software using a private key. The license file includes one or more license keys, and each license key is associated with a feature of the computer software. The license file associated with the computer software is decrypted at runtime using a public key. A module determines whether a user is permitted to execute the computer software. The module is authenticated by one or more of a determination of whether a hash code included within the module matches a hash code generated by a user of the computer software at run time of the computer software, and an encryption of the module prior to run time of the computer software using the private key and a decryption of the module at run time of the computer software using the public key.


