Remote Licensing Server for Software Piracy Prevention
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Software publishers face challenges in preventing unauthorized copying and usage of their applications, as existing copy protection schemes can be easily bypassed, especially on devices that have been unlocked for development purposes, and copyright law alone is insufficient to prevent unauthorized copying.
Innovation Solution
Implementing a licensing system that verifies the current license status of a software application by querying a licensing server, linking the license to a user or device, and restricting functionality based on the license status, using a public/private key pair for integrity and authenticity of the license check responses.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If forward locking is used to protect against unauthorized copying, then copy protection is improved, but application size increases extensively due to duplicating non-executable resources
Solution Approach 1:
The patent extracts the licensing verification functionality from the application itself and places it on a remote licensing server. The application only contains minimal licensing client code that communicates with the server, rather than embedding extensive protection mechanisms within the application. This separates the heavy protection logic from the application, reducing its size while maintaining protection effectiveness.
Solution Approach 2:
The patent introduces a licensing server as an intermediary between the application and the user's device. This server acts as a mediator that verifies licensing status and communicates with the application's licensing client. The server handles the complex verification logic remotely, allowing the application to remain lightweight while still providing robust protection through the intermediary's verification processes.
2Reliability
If forward locking is used to protect application binaries, then unauthorized copying is deterred, but the protection can be overcome on unlocked devices
Solution Approach 1:
The patent creates a universal licensing system that functions across multiple device types and operating systems. The licensing server communicates with licensing clients that can run on various platforms (Android, iOS, Windows, etc.), making the protection mechanism adaptable to different devices. The system uses standard communication protocols and can work with different device security models, including both locked and unlocked devices, through the intermediary server architecture.
3Reliability
If custom copy protection schemes are implemented by developers, then piracy prevention is improved, but development complexity increases
Solution Approach 1:
The patent segments the copy protection system into distinct modular components: a licensing server handling verification logic, a licensing client library that can be integrated into applications, and communication protocols for interaction. This segmentation allows developers to adopt the protection system by integrating a standardized client library rather than building entire protection schemes from scratch, reducing development complexity while maintaining effective piracy prevention.
Solution Approach 2:
The patent implements a self-service licensing model where the licensing client automatically verifies licensing status with the server without requiring developer intervention. The system handles license validation, status checking, and protection enforcement automatically through the intermediary server, allowing developers to implement protection with minimal effort while maintaining strong piracy prevention capabilities.
Data Source
AI summary
In one aspect, this application describes a method for determining a license status of a software application. The method includes receiving a license status request to obtain an indication of whether a software application is licensed for use on a client computing device. The method also includes identifying identity information that corresponds to user identity information, device identity information, or both. The method also includes sending a communication generated from the license status request and the identity information to a licensing service, the communication being used by the licensing service to generate the indication based at least in part on the identity information and licensing information associated with the software application. The method also includes receiving a license status response from the licensing service that includes the indication. The method also includes sending the license status response to the software application for processing by the software application.


