Modular Software Protection
First Claim
1. A method comprising:
- receiving, at a server, a license key registered for a software executable installed on a client device and machine fingerprint data generated at the client device;
accessing stored usage rights data indicated by the license key, using the server, wherein the usage rights data specifies a number of client devices on which the software executable is licensed to operate and which features of the software executable are enabled;
determining, using the machine fingerprint data received by the server, whether operation of the software executable on the client device would cause the number of client devices on which the software executable is licensed to operate to be exceeded; and
creating, in response to the determining step, an encrypted license file for transmission to the client device that defines separate features of the software executable to be enabled on the client device.
4 Assignments
0 Petitions
Accused Products
Abstract
A method for modular software protection includes steps for receiving, at a server, a license key registered for a software executable installed on a client device and machine fingerprint data generated at the client device, accessing, using the server, stored usage rights data indicated by the license key, the usage rights data specifying a number of client devices on which the software executable is licensed to operate and which features of the software executable are enabled, determining, using the machine fingerprint data received by the server, whether operation of the software executable on the client device would cause the number of client devices on which the software executable is licensed to operate to be exceeded, and creating, in response to the determining step, an encrypted license file for transmission to the client device that defines separate features of the software executable to be enabled on the client device.
157 Citations
20 Claims
-
1. A method comprising:
-
receiving, at a server, a license key registered for a software executable installed on a client device and machine fingerprint data generated at the client device; accessing stored usage rights data indicated by the license key, using the server, wherein the usage rights data specifies a number of client devices on which the software executable is licensed to operate and which features of the software executable are enabled; determining, using the machine fingerprint data received by the server, whether operation of the software executable on the client device would cause the number of client devices on which the software executable is licensed to operate to be exceeded; and creating, in response to the determining step, an encrypted license file for transmission to the client device that defines separate features of the software executable to be enabled on the client device. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method, comprising:
-
generating machine fingerprint data at a client device by reading configuration data indicating non-user-configurable settings for different hardware components of the client device, and aggregating the configuration data to create a defined data series; transmitting the machine fingerprint data and a license key for a software executable to a server; receiving, in response to the machine fingerprint data and the license key, an encrypted license file from the server; reading the license file using the software executable to determine what restrictions apply to operation of the software executable on the client device; and operating the software executable on the client device in accordance with the restrictions defined by the license file. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A method, comprising:
-
reading component data at a client device indicating non-user-configurable settings for different hardware components of the client device; generating a data matrix comprised of the component data arranged in a defined order, by aggregating the component data at the client device; and generating machine fingerprint data capable of identifying the client device by selecting data from the defined data series according to selection criteria received from a server. - View Dependent Claims (12, 13, 14, 15)
-
-
16. A method, comprising:
-
maintaining a data selection mask at a server, the data selection mask designed to identify a static portion of data in different fields of a gross data set comprised of defined data fields; transmitting the data selection mask to a client device; receiving, in response to transmitting the data selection mask, a selected data file from the client device, selected at the client device in accordance with the data selection mask from a gross data set larger than the selected data file; and using the selected data file to identify the client device. - View Dependent Claims (17, 18, 19, 20)
-
Specification