Methods and Systems for securely distributing software in a
subscription-based environment are provided. In an example embodiment, a
Game Security Facility ("GSF") associated with a game server is used to
manage secure communications with game clients. The GSF typically manages
secure communication of the accounting and billing information and secure
communication of game session data. In typical operation, the game client
generates a pass-phrase that transparently includes a unique identifier
of the machine upon which the subscription software will reside. RSA-type
key pairs that are then generated using this pass-phrase will be
associated uniquely with both the game player and with the machine upon
which the software resides, thus preventing unauthorized copying to
another machine or unauthorized use by a third party. A public key
generated using this pass-phrase is forwarded to the GSF, which uses it
to generate a unique one-time random session key (for use as a symmetric
key) for each session with the game client. The session key is then
encrypted for the game client using the public key of the client. Session
data, including the original game files downloaded upon successfully
subscribing, are then transmitted between the game server and the game
client using encrypted versions of the session key. In one embodiment,
the game client can upgrade the machine upon which the subscription data
resides, cause the session keys to be reissued using a new public key,
and retain access to previously downloaded data.