Protected shareware
DCFirst Claim
1. A method for protecting a computer program from unauthorized use independently of any methodology for distributing the computer program to prospective users, the computer program including an embedded protective code, the method comprising the steps of:
- (a) inhibiting via the embedded protective code at least one functional feature of the computer program from running on a user computer until the user computer receives an authorization message that is digitally signed by an authorized party using a secret signing key, the secret signing key being associated with a public checking key;
(b) providing the embedded protective code with access to the public checking key;
(c) running an integrity self-check over the computer program to confirm that the computer program is in an anticipated state, the integrity self-check being embedded in the computer program;
(d) communicating the authorization message to the user computer;
(e) applying the public checking key to the authorization message for authenticating it; and
(f) enabling said functional feature to run on the user computer if the authorization message is authenticated and if the integrity self-check result confirms that the computer program is in the anticipated state.
7 Assignments
Litigations
0 Petitions
Accused Products
Abstract
The functionality of “protected shareware” is controlled by digitally signed messaging protocol. Protective code within the shareware controls the functionality of the shareware in response to authorization messages which are supplied directly or indirectly by the shareware supplier. These messages are digitally signed in whole or part by or on behalf of the shareware supplier using the supplier'"'"'s secret signing key. The shareware, in turn, includes the public checking key for this digital signature of the supplier, thereby enabling the protective code to authenticate any such authorization message before acting in reliance upon it. The shareware includes an integrity self-checking routine which is run at appropriate times to ensure that shareware, including its protective code, is in an anticipated state. Typically this is equivalent to a finding that the code has not been altered, but it is conceivable that the code might be dynamically altered in some authorized (i. e., “anticipated”) way.
-
Citations
14 Claims
-
1. A method for protecting a computer program from unauthorized use independently of any methodology for distributing the computer program to prospective users, the computer program including an embedded protective code, the method comprising the steps of:
-
(a) inhibiting via the embedded protective code at least one functional feature of the computer program from running on a user computer until the user computer receives an authorization message that is digitally signed by an authorized party using a secret signing key, the secret signing key being associated with a public checking key;
(b) providing the embedded protective code with access to the public checking key;
(c) running an integrity self-check over the computer program to confirm that the computer program is in an anticipated state, the integrity self-check being embedded in the computer program;
(d) communicating the authorization message to the user computer;
(e) applying the public checking key to the authorization message for authenticating it; and
(f) enabling said functional feature to run on the user computer if the authorization message is authenticated and if the integrity self-check result confirms that the computer program is in the anticipated state. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
the authorization message is supplied by an agent and is digitally signed by the agent using a first secret signing key; the agent'"'"'s authority to issue the authorization message is certified by a superior authority using a certification that is signed with a second secret signing key and which authenticates a first public checking key for the first signing key, the second secret signing key being associated with a second public checking key;
the certification is communicated to the computer program;
the embedded protective code in the computer program has access to and is able to authenticate the second public checking key for the second secret signing key, the embedded protective code using the second public checking key to authenticate the certification.
-
-
3. The method of claim 2 wherein the second public checking key for the second secret signing key is embedded in the computer program, and wherein the integrity self-check authenticates the second public checking key.
-
4. The method of claim 2 wherein the agent participates in a commercial transaction with one of the prospective users to offer the prospective user an opportunity to run said functional feature of the computer program in return for certain consideration and to monitor the user'"'"'s payment of said consideration if said offer is accepted.
-
5. The method of claim 4 wherein the second public checking key for the second secret signing key is embedded in the computer program, and wherein the integrity self-check authenticates the second public checking key.
-
6. The method of claim 5 wherein the commercial transaction involves a multiple option offer which covers multiple functional features of the computer program and multiple pricing plans.
-
7. The method of claim 2 wherein said superior authority is a billing agency.
-
8. The method of claim 7 wherein said agent is a special purpose billing computer.
-
9. The method of claim 8 wherein the special purpose billing computer is directly coupled to the user computer.
-
10. The method of claim 8 wherein each of the billing agency and special purpose billing computer has a priori knowledge of the other'"'"'s public checking key so that each can validate the other'"'"'s messages upon receipt.
-
11. The method of claim 2 wherein the superior authority is a source of the computer program.
-
12. The method of claim 1 wherein the integrity self-check includes a check sum routine.
-
13. The method of claim 1 wherein the public checking key is included in the computer program.
-
14. The method of claim 1 wherein the embedded protective code controls functionally of the computer program in accordance with predetermined rules.
Specification