1. A method for enabling a controlled use of a software program by users employing clients that are communicating with each other over a peer-peer network, comprising the steps of: (a) executing a security control on the client, producing a nonce that is maintained for at least a current session during which the software program is used, the nonce being transmitted by the client to a server with a request to execute the software program, a unique identifier of the user being associated with the request; (b) in response to the request, producing a ticket required by the client to access the software program, the ticket having a portion that is digitally signed using a private server key, the portion including the nonce and an indication of the user requesting access to execute the software program; (e) sending the ticket from the server to the client; (d) exchanging tickets between the clients of the users who will be executing the software program; (e) requiring that the clients apply a public key associated with the private key that was used to digitally sign the portion of each ticket, to verify the portion, and once verified with the public key, requiring each client to: (i) confirm that the nonce included in the portion of the ticket for the client matches the nonce produced by the client; (ii) confirm that the indication of the user included in the portion of each ticket is actually associated with the user using the corresponding client in the peer-peer network; and (iii) confirm that all of the tickets are current; and (f) in response to all confirmations being successfully made, enabling the clients to execute the software program.