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.