Patent ID: 7818585

Claim:
A computer-implemented method comprising: receiving a request from a host computer to transfer a license manager and one or more software applications to the host computer, the license manager for managing a use of the one or more software programs by enforcing conditions of use as defined by a license associated with each software program; sending a challenge message to the host computer based on receiving the request, the challenge message requesting transmission of signed system configuration data from the host computer; receiving from the host computer, in response to the challenge message, the signed system configuration data and a public part of an external key generated at the host computer, the signed system configuration data including metrics taken from hardware and software components of the host computer that reflect how the host computer is configured; verifying the metrics against known trusted data; and when the known trusted data verifies the metrics: generating a set of unique internal keys specific to each different installation of the license manager, encrypting the license manager based on the set of unique internal keys, the license manager being partitioned into a dynamic data section, a static code section, and a metadata section for storing metadata about the license manager, storing the set of unique internal keys in a key container, wherein the key container further comprises a certificate obtained by a certifying agency and used for authenticating the static code section of the license manager, encrypting the key container based on the external key generated at the host computer, and sending the encrypted license manager and the encrypted key container to the host computer.