Software fingerprinting and branding
First Claim
1. A method of controlling the distribution of computer software products stored at a file server to target computers comprising the steps ofrequesting the identity of a user and the user'"'"'s first secret key to enable access to requested program product,encoding the requested program product, if the user identity and the secret key match corresponding entries in a file server, using a second key known to the user, andembedding in said encoded program an identification of said user.
7 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus for controlling the distribution of computer software products stored at a file server provide for requesting the identity of the user and the user'"'"'s secret key prior to enabling access to a requested program product. The program product, upon proper verification of the user identify, is encoded using a second key which is known to the user, and preferably an identification of the user is embedded in the encoding program. Various methods are employed for tracking user access to particular programs, including storing the identify of the user either camouflaged in a commonly found program in non-volatile memory or hidden in a typically overlooked portion of non-volatile memory. In addition, the encoded program can have embedded therein one, and preferably two identifications of the user which can be used to track the program as well as to ensure that the program, when executed has not been tampered with. Upon execution of the encoded program by the user'"'"'s system, the code is executed "on the fly" and no executable copy of the code is stored in non-volatile memory at any time. In the event that decoding does not result in a properly executable program, the system may need to be rebooted and/or the program may be at least partially destroyed.
116 Citations
24 Claims
-
1. A method of controlling the distribution of computer software products stored at a file server to target computers comprising the steps of
requesting the identity of a user and the user'"'"'s first secret key to enable access to requested program product, encoding the requested program product, if the user identity and the secret key match corresponding entries in a file server, using a second key known to the user, and embedding in said encoded program an identification of said user.
-
12. A method of controlling the distribution of computer software products stored at a file server and delivered upon a request from a user over a network to a target client comprising the steps of
receiving from a user a request to deliver a computer program over said network, requesting the identity of said user and the user'"'"'s secret key before enabling access to the requested computer program verifying the identity of the user, using the user'"'"'s secret key, encoding the requested program using at least an encoding key known to the user, embedding in the encoded program at least one identification of the user, and delivering the encoded program over the network to the user.
-
13. Apparatus for controlling the distribution of computer software products stored at a file server to target computers comprising
means for requesting the identity of a user and the user'"'"'s first secret key to enable access to requested program product, means for encoding the requested program product, if the user identity and the secret key match corresponding entries in a file server using a second key known to the user, and means for embedding in said encoded program an identification of said user.
-
24. Apparatus for controlling the distribution of computer software products stored at a file server and delivered upon a request from a user over a network to a target client comprising
means for receiving from a user a request to deliver a computer program over said network, means for requesting the identity of said user and the user'"'"'s secret key before enabling access to the requested computer program means for verifying the identity of the user, using the user'"'"'s secret key, means for encoding the requested program using at least an encoding key known to the user, means for embedding in the encoded program at least one identification of the user, and means for delivering the encoded program over the network to the user.
Specification