Method and system for copy-tracking distributed software featuring tokens containing a key field and a usage field
First Claim
1. A method of copy-tracking distributed software programs over a computer network after the programs are distributed to users comprising the steps of:
- (a) encoding a plurality of a distributable computer-readable media with (1) a Software Payload to be tracked, (2) a Tracker Client program and (3) a Current Token readable by the Tracker Client program and including a Key field and a Usage field;
(b) installing a Tracker Server program on a central computer in the network, the Tracker Server program including a database for storing Current Tokens received from the Tracker Client programs;
(c) selectively installing the encoded media on respective user computers that are connectable to the network;
(d) operating each one of the user computers to execute the Tracker Client program on the encoded medium installed thereon to access the Tracker Server program on the central computer via computer-to-computer communications over the network;
(e) the user computer of step (d) executing the Tracker Client program to read the Current Token on the encoded medium installed thereon and to send the Current Token to the Tracker Server program;
(f) the central computer executing the Tracker Server program to validate the Current Token of step (e);
if the Current Token is invalid the Tracker Server program is executed to request a re-send or to inform the Tracker Client program to prevent access to the Software Payload;
(g) if the Tracker Server program validates the Current Token in step (f) and the Usage field is set to zero to indicate that the Tracker Client program is initially communicating with the Tracker Server program, the Tracker Server program is executed by the central computer (1) to return a new Current Token with a new Key in the Key field to the Tracker Client program for use when the Tracker Client program next accesses the Tracker Server program, (2) to store at least the Key of the new Current Token in the Tracker Server database, (3) to set the Usage field to one, and (4) to indicate to the Tracker Client program to permit execution of the Software Payload;
or(h) if the Tracker Server program validates the Current Token in step (f) and the Usage field is set to greater than zero to indicate that the Tracker Client program has previously communicated with the Tracker Server program, the Tracker Server program is executed by the central computer (1) to determine whether the Key in the Key field matches a Key in the Tracker Server database, and if there is a match, (2) to return a new Current Token with a new Key in the Key field to the Tracker Client program for use when the Tracker Client program next accesses the Tracker Server program, (3) to store at least the Key of the new Current Token in the Tracker Server database, (4) to increment the Usage field by one, and (5) to indicate to the Tracker Client program to permit execution of the Software Payload; and
if in (1) above the Key in the Key field does not match a Key in the Tracker Server database, optionally informing the Tracker Client program to prevent access to the Software Payload; and
(i) repeating steps (d) to (h) for the other user computers.
2 Assignments
0 Petitions
Accused Products
Abstract
The present invention provides a central computer site on a computer network for detecting authorized or unauthorized duplication of software on computers connected to such a network. The computers on the network may be continually connected, like computers on a Local Area Network, or intermittently connected, like computers on the Internet. Every time a user of the distributed software attempts to execute that software, a connection to the central computer site on the network is made, and a previously-created information token is presented by the user'"'"'s software to the central site. The central site evaluates that token, and possibly issues a new token to be kept by the user for the next transaction. These transactions need no human intervention, and may take place without the software user'"'"'s knowledge. At the same time, the central site may provide or withhold permission for the user to execute the distributed software. Using this information token, the central site can detect when a user uses a copy not made at the factory and track the execution of any such software copies. The central site need not know the identity of those using the software, nor the identities of the computers on which the software is executed.
-
Citations
39 Claims
-
1. A method of copy-tracking distributed software programs over a computer network after the programs are distributed to users comprising the steps of:
-
(a) encoding a plurality of a distributable computer-readable media with (1) a Software Payload to be tracked, (2) a Tracker Client program and (3) a Current Token readable by the Tracker Client program and including a Key field and a Usage field; (b) installing a Tracker Server program on a central computer in the network, the Tracker Server program including a database for storing Current Tokens received from the Tracker Client programs; (c) selectively installing the encoded media on respective user computers that are connectable to the network; (d) operating each one of the user computers to execute the Tracker Client program on the encoded medium installed thereon to access the Tracker Server program on the central computer via computer-to-computer communications over the network; (e) the user computer of step (d) executing the Tracker Client program to read the Current Token on the encoded medium installed thereon and to send the Current Token to the Tracker Server program; (f) the central computer executing the Tracker Server program to validate the Current Token of step (e);
if the Current Token is invalid the Tracker Server program is executed to request a re-send or to inform the Tracker Client program to prevent access to the Software Payload;(g) if the Tracker Server program validates the Current Token in step (f) and the Usage field is set to zero to indicate that the Tracker Client program is initially communicating with the Tracker Server program, the Tracker Server program is executed by the central computer (1) to return a new Current Token with a new Key in the Key field to the Tracker Client program for use when the Tracker Client program next accesses the Tracker Server program, (2) to store at least the Key of the new Current Token in the Tracker Server database, (3) to set the Usage field to one, and (4) to indicate to the Tracker Client program to permit execution of the Software Payload;
or(h) if the Tracker Server program validates the Current Token in step (f) and the Usage field is set to greater than zero to indicate that the Tracker Client program has previously communicated with the Tracker Server program, the Tracker Server program is executed by the central computer (1) to determine whether the Key in the Key field matches a Key in the Tracker Server database, and if there is a match, (2) to return a new Current Token with a new Key in the Key field to the Tracker Client program for use when the Tracker Client program next accesses the Tracker Server program, (3) to store at least the Key of the new Current Token in the Tracker Server database, (4) to increment the Usage field by one, and (5) to indicate to the Tracker Client program to permit execution of the Software Payload; and
if in (1) above the Key in the Key field does not match a Key in the Tracker Server database, optionally informing the Tracker Client program to prevent access to the Software Payload; and(i) repeating steps (d) to (h) for the other user computers. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A system for copy-tracking distributed software programs over a computer network after the programs are distributed to users comprising:
-
a plurality of a distributable computer-readable media encoded with (1) a Software Payload to be tracked, (2) a Tracker Client program and (3) a Current Token readable by the Tracker Client program and including a Key field and a Usage field; a central computer in the network, the central computer having installed thereon a Tracker Server program including a database for storing Current Tokens received from the Tracker Client programs; a plurality of user computers connectable to the network, each one of the user computers having operatively associated therewith one of the encoded computer-readable media; a plurality of means each including one of the user computers for executing the Tracker Client program on the encoded medium operatively associated therewith; (a) to access the Tracker Server program on the central computer via computer-to-computer communications over the network; (b) to read the Current Token on the encoded medium operatively associated therewith and to send the Current Token to the Tracker Server program; and (c) to execute the Software Payload whenever the Tracker Client program receives an indication from the Tracker Server program to permit execution of the Software Payload; and means including the central computer for executing the Tracker Server program; (d) to validate each Current Token sent thereto; and
if the Current Token is invalid the Tracker Server program is executed to request a re-send or to inform the Tracker Client program to prevent access to the Software Payload;(e) if the Tracker Server program validates the Current Token in step (d) and the Usage field is set to zero to indicate that the Tracker Client program is initially communicating with the Tracker Server program, the Tracker Server program is executed by the central computer (1) to return a new Current Token with a new Key in the Key field to the Tracker Client program for use when the Tracker Client program next accesses the Tracker Server program, (2) to store at least the Key of the new Current Token in the Tracker Server database, (3) to set the Usage field to one, and (4) to indicate to the Tracker Client program to permit execution of the Software Payload;
or(f) if the Tracker Server program validates the Current Token in step (d) and the Usage field is set to greater than zero to indicate that the Tracker Client program has previously communicated with the Tracker Server program, the Tracker Server program is executed by the central computer (1) to determine whether the Key in the Key field matches a Key in the Tracker Server database, and if there is a match, (2) to return a new Current Token with a new Key in the Key field to the Tracker Client program for use when the Tracker Client program next accesses the Tracker Server program, (3) to store at least the Key of the new Current Token in the Tracker Server database, (4) to increment the Usage field by one, and (5) to indicate to the Tracker Client program to permit execution of the Software Payload; and
if in (1) above the Key in the Key field does not match a Key in the Tracker Server database, optionally informing the Tracker Client program to prevent access to the Software Payload. - View Dependent Claims (17)
-
-
18. A computer-readable medium for use in a system for copy-tracking distributed software programs over a computer network after the programs are distributed to users comprising:
-
the computer-readable medium having encoded thereon (i) a Software Payload to be tracked, (ii) a Tracker Client program and (iii) a Current Token readable by the Tracker Client program, said Current Token including a key field and a usage field; the Tracker Client program being computer executable to interact with a remote Tracker Server program executable by a central computer on the network for copy-tracking the distributed medium, the Tracker Server program maintaining a database of Current Tokens received from the Tracker Client (TC) program and other TC programs that are executable by computers on the network, the database being used for validating Current Tokens received from the TC programs; the computer-readable media being encoded with the following computer executable Tracker Client program instructions; (a) to access the Tracker Server program on the central computer via computer-to-computer communications over the network; (b) to read the Current Token on the computer-readable medium and to send the Current Token to the Tracker Server program; (c) when the Tracker Server program validates the Current Token for execution of the Software Payload, to store a new Current Token received from the Tracker Server program for use when the Tracker Client program next accesses the Tracker Server program, the new Current Token including a new Key in the Key field and an incremental increase in the Usage field; and (d) to execute the Software Payload whenever the Tracker Client program receives an authorization from the Tracker Server program for execution of the Software Payload, or to deny access to the Software Payload whenever the Tracker Client program receives an instruction from the Tracker Server program refusing permission to execute the Software Payload. - View Dependent Claims (19)
-
-
20. A method of copy-tracking distributed Software Payloads over a computer network after the Software Payloads are distributed to users comprising the steps of:
-
(a) selectively distributing a plurality of Software Payloads encoded with a Tracker Client program and a Current Token readable by the Tracker Client program and including a Key field and a Usage field; (b) installing a Tracker Server program on a central computer in the network, the Tracker Server program including a database for storing Current Tokens received from the Tracker Client programs; (c) installing the distributed Software Payloads on respective user computers that are connectable to the network; (d) operating each one of the user computers to execute the Tracker Client program on the distributed Software Payload installed thereon to access the Tracker Server program on the central computer via computer-to-computer communications over the network; (e) the user computer of step (d) executing the Tracker Client program to read the Current Token on the distributed Software Payload installed thereon and to send the Current Token to the Tracker Server program; (f) the central computer executing the Tracker Server program to validate the Current Token of step (e);
if the Current Token is invalid the Tracker Server program is executed to request a re-send or to inform the Tracker Client program to prevent access to the Software Payload;(g) if the Tracker Server program validates the Current Token in step (f) and the Usage field is set to zero to indicate that the Tracker Client program is initially communicating with the Tracker Server program, the Tracker Server program is executed by the central computer (1) to return a new Current Token with a new Key in the Key field to the Tracker Client program for use when the Tracker Client program next accesses the Tracker Server program, (2) to store at least the Key of the new Current Token in the Tracker Server database, (3) to set the Usage field to one, and (4) to indicate to the Tracker Client program to permit execution of the Software Payload;
or(h) if the Tracker Server program validates the Current Token in step (f) and the Usage field is set to greater than zero to indicate that the Tracker Client program has previously communicated with the Tracker Server program, the Tracker Server program is executed by the central computer (1) to determine whether the Key in the Key field matches a Key in the Tracker Server database, and if there is a match, (2) to return a new Current Token with a new Key in the Key field to the Tracker Client program for use when the Tracker Client program next accesses the Tracker Server program, (3) to store at least the Key of the new Current Token in the Tracker Server database, (4) to increment the Usage field by one, and (5) to indicate to the Tracker Client program to permit execution of the Software Payload; and
if in (1) above the Key in the Key field does not match a Key in the Tracker Server database, optionally informing the Tracker Client program to prevent access to the Software Payload; and(i) repeating steps (d) to (h) for the other user computers. - View Dependent Claims (21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35)
-
-
36. A system for copy-tracking distributed software programs over a computer network after the programs are distributed to users comprising:
-
a plurality of electronically-distributable Software Payloads encoded with a Tracker Client program and a Current Token readable by the Tracker Client program and including a Key field and a Usage field; a central computer in the network, the central computer having installed thereon a Tracker Server program including a database for storing Current Tokens received from the Tracker Client programs; a plurality of user computers connectable to the network, each one of the user computers having operatively associated therewith one of the encoded computer-readable media; a plurality of means each including one of the user computers for executing the Tracker Client program on the encoded medium operatively associated therewith; (a) to access the Tracker Server program on the central computer via computer-to-computer communications over the network; (b) to read the Current Token on the encoded medium operatively associated therewith and to send the Current Token to the Tracker Server program; and (c) to execute the Software Payload whenever the Tracker Client program receives an indication from the Tracker Server program to permit execution of the Software Payload; and means including the central computer for executing the Tracker Server program; (d) to validate each Current Token sent thereto; and
if the Current Token is invalid the Tracker Server program is executed to request a re-send or to inform the Tracker Client program to prevent access to the Software Payload;(e) if the Tracker Server program validates the Current Token in step (d) and the Usage field is set to zero to indicate that the Tracker Client program is initially communicating with the Tracker Server program, the Tracker Server program is executed by the central computer (1) to return a new Current Token with a new Key in the Key field to the Tracker Client program for use when the Tracker Client program next accesses the Tracker Server program, (2) to store at least the Key of the new Current Token in the Tracker Server database, (3) to set the Usage field to one, and (4) to indicate to the Tracker Client program to permit execution of the Software Payload;
or(f) if the Tracker Server program validates the Current Token in step (d) and the Usage field is set to greater than zero to indicate that the Tracker Client program has previously communicated with the Tracker Server program, the Tracker Server program is executed by the central computer (1) to determine whether the Key in the Key field matches a Key in the Tracker Server database, and if there is a match, (2) to return a new Current Token with a new Key in the Key field to the Tracker Client program for use when the Tracker Client program next accesses the Tracker Server program, (3) to store at least the Key of the new Current Token in the Tracker Server database, (4) to increment the Usage field by one, and (5) to indicate to the Tracker Client program to permit execution of the Software Payload; and
if in (1) above the Key in the Key field does not match a Key in the Tracker Server database, optionally informing the Tracker Client program to prevent access to the Software Payload. - View Dependent Claims (37)
-
-
38. A electronically-distributable Software Payload for use in a system for copy-tracking electronically-distributable Software Payloads over a computer network after the programs are distributed to users comprising:
-
the electronically-distributable Software Payload having encoded thereon (i) a Software Payload to be tracked, (ii) a Tracker Client program and (iii) a Current Token readable by the Tracker Client program, said Current Token including a key field and a usage field; the Tracker Client program being computer executable to interact with a remote Tracker Server program executable by a central computer on the network for copy-tracking the distributed medium, the Tracker Server program maintaining a database of Current Tokens received from the Tracker Client (TC) program and other TC programs that are executable by computers on the network, the database being used for validating Current Tokens received from the TC programs; the electronically-distributable Software Payload being encoded with the following computer executable Tracker Client program instructions; (a) to access the Tracker Server program on the central computer via computer-to-computer communications over the network; (b) to read the Current Token on the computer-readable medium and to send the Current Token to the Tracker Server program; (c) when the Tracker Server program validates the Current Token for execution of the electronically-distributable Software Payload, to store a new Current Token received from the Tracker Server program for use when the Tracker Client program next accesses the Tracker Server program, the new Current Token including a new Key in the Key field and an incremental increase in the Usage field; and (d) to execute the electronically-distributable Software Payload whenever the Tracker Client program receives an authorization from the Tracker Server program for execution of the Software Payload, or to deny access to the Software Payload whenever the Tracker Client program receives an instruction from the Tracker Server program refusing permission to execute the Software Payload. - View Dependent Claims (39)
-
Specification