System and method for software licensing
First Claim
1. A computer-implemented method for distributing software licenses to clients so that the clients may legally execute underlying software to which the software licenses pertains, the computer-implemented method comprising electronically issuing the software licenses as digital certificates that are distributed in one-to-one correlation with individual clients and traced to an issuing authority, and issuing a software license to a particular client only if a client executable image received from the particular client matches a stored client executable image for the particular client.
1 Assignment
0 Petitions
Accused Products
Abstract
A software licensing system includes a license generator located at a licensing clearinghouse and at least one license server and multiple clients located at a company or entity. When a company wants a software license, it sends a purchase request (and appropriate fee) to the licensing clearinghouse. The license generator at the clearinghouse creates a license pack containing a set of one or more individual software licenses. To prevent the license pack from being copied and installed on multiple license servers, the license generator assigns a unique license pack ID to the license pack and associates the license pack ID with the particular license server in a master license database kept at the licensing clearinghouse. The license generator digitally signs the license pack and encrypts it with the license server'"'"'s public key. The license server is responsible for distributing the software licenses from the license pack to individual clients. When a client needs a license, the license server determines the client'"'"'s operating system platform and grants the appropriate license. To prevent an issued license from being copied from one client machine to another, the software license is assigned to a specific client by including a client ID within the license. The software license also has a license ID that is associated with the client ID in a database record kept at the license server. The license server digitally signs the software license and encrypts it using the client'"'"'s public key. The license is stored locally at the client.
-
Citations
20 Claims
- 1. A computer-implemented method for distributing software licenses to clients so that the clients may legally execute underlying software to which the software licenses pertains, the computer-implemented method comprising electronically issuing the software licenses as digital certificates that are distributed in one-to-one correlation with individual clients and traced to an issuing authority, and issuing a software license to a particular client only if a client executable image received from the particular client matches a stored client executable image for the particular client.
-
3. A license server for execution embodied on a computer-readable medium for issuing individual software licenses from a software pack received from a licensing clearinghouse, comprising:
-
a license store to store the license software pack of individual software licenses, each software license having an associated license ID; a request handler to receive a request for software license from a client; a client authenticating module to determine, based on a client executable image received from the client, whether the client is authentic and can receive a software license; and a granting module to grant a software license from the license store to an authenticated client and to associate the license ID with the authenticated client. - View Dependent Claims (4, 5, 6, 7)
-
-
8. A program embodied on a computer-readable medium, comprising:
-
a code segment to receive a license pack from a license generator, the license pack containing a set of one or more individual software licenses; a code segment to validate the license pack; a code segment to store the software licenses; a code segment, responsive to a request for a software license from a client, to determine, based on a client executable image received from the client, whether the client is authentic and can re a software license; a code segment to grant a software license to an authenticated client, the software license containing a license ID; and a code segment to associate the license ID with the authenticated client.
-
-
9. A client computer, comprising:
-
a license cache to store one or more software licenses; a license requestor to request a software license from a license server; a challenge handler to handle an authenticity challenge from the license server, the challenge handler computing a challenge response that contains a client executable image that is used by the license server to evaluate whether the client is authentic and can be licensed; and whereupon authentication by the license server and granting of a software license, the license requestor receiving the software license form the license server and storing the software license in the license cache.
-
-
10. A program embodied on a computer-readable medium, comprising:
-
a code segment to receive an authenticity challenge from a license server that distributes software licenses; a code segment to compute a challenge response that contains a client executable image that is used by the license server to evaluate whether the client is authentic and can be licensed; and a code segment to store the software license granted by the license server in an event that the client is deemed authentic.
-
-
11. A client computer, comprising:
-
memory for storing information correspond to one or more received software licenses; a license requestor to request a software license from a license server; a challenge handler to handle an authenticity challenge from the license server, the challenge handler computing a challenge response that contains a client executable image that is used by the license server to evaluate whether the client is authentic an can be licensed, wherein the challenge contains a random number, and the challenge handler computes that challenge response by concatenating the random number with the client executable image to form a concatenated value and hashing the concatenated value; and wherein, upon authentication by the license server and granting of a software license, the license requestor receiving the software license from the license server saves in the memory information corresponding to the received license. - View Dependent Claims (12, 13, 14)
-
-
15. A computer-readable medium, having computer readable instruction for:
-
requesting a software license from a license server; receiving an authenticity challenge form the license server; computing a challenge response that contains a client executable image that is used by the license server to evaluate whether the client is authentic and can be licensed; and receiving, upon authentication by the license server and granting of a software license, the software license from the license server and storing information corresponding to the software license in a memory. - View Dependent Claims (16, 17)
-
-
18. A client computer, comprising:
-
means for storing information corresponding to one or more received software licenses; means for requesting a software license from a license server; means for handling an authenticity challenge from the license server, the means for handling computing a challenge response that contains a client executable image that is used by the license server to evaluate whether the client is authentic and can be licensed, wherein the challenge contains a random number, and the means for handling computes the challenge response by concatenating the random number with the client executable image to form a concatenated value and hashing the concatenated value; and wherein, upon authentication by the license server and granting of a software license, the means for requesting receiving the software license from the license server saves in the memory information corresponding to the received license. - View Dependent Claims (19, 20)
-
Specification