Patent ID: 7809648

Claim:
One or more computer-readable media, wherein the media does not consist of a propagated data signal, the media having computer readable instructions stored thereon, the computer readable instructions, when executed by one or more processors, cause the one or more processors to perform acts comprising: receiving a request for a software license from a particular client, wherein the request includes a client ID; determining an authenticity of the particular client, wherein determining the authenticity comprises: maintaining a set of client executable images in a client image cache located on a license server, wherein the set of client executable images is maintained in the client image cache to prevent a third party from replaying exchanges between the particular client and the license server; and determining whether a first client executable image corresponding to the particular client is present in the client image cache by using the client ID to identify the first client executable image in the client image cache; if the first client executable image is present in the client image cache: generating, at the license server, a client challenge and sending the client challenge to the particular client to establish a trust relationship with the particular client; receiving from the particular client a client hash value in response to the client challenge; computing, by the license server, a test hash value, wherein the test hash value is generated by concatenating the client challenge and the first client executable image; comparing, at the license server, the test hash value with the client hash value received from the particular client to determine whether the client hash value was generated by concatenating the client challenge and a second client executable image stored on the particular client; if the test hash value and the client hash value received from the particular client are the same: establishing a trust relationship; evaluating whether the requested software license is available for the: particular client; and if the requested software license is available, issuing the requested software license to the particular client; if the test hash value and the client hash value received from the particular client are different, denying the requested software license and returning a software license rejection to the particular client; and if the client executable image is not present in the client image cache, returning a software license rejection to the particular client.