Referring initially to
As shown in
As intended by the present invention, the customer computer 12 can be rendered into a trusted device by the user. To this end, a security module such as a trusted platform module (TPM) 28 is provided on the motherboard 14. The presently preferred non-limiting TPM 28 is a hardware module that is soldered or otherwise affixed to the motherboard 14. The TPM 28 can include a TPM controller 30 and TPM memory 32 such as non-volatile random access memory that can store various TPM keys, including storage keys, endorsement keys, “pretty good encryption” public/private keys known as RSA keys, and so on.
As indicated in
Proceeding to block 38, in some implementations the TPM can hash the key blob and store it in a table in, e.g., TPM memory 32 along with the use count, which is initialized to the “max” value received in the request at block 34. It is to be understood that the table storing the use count and the hash of the key blob can be in addition to the pre-hash key value itself, or the pre-hash key value may be stored with the use count without use of a key blob hash.
The logic next flows to decision diamond 44, where it is determined whether the use count is or is not a predetermined value. In the example shown, it is determined at decision diamond 44 whether the use count is greater than zero. If not, “fail” is returned at block 46 in response to the request, but otherwise the request is satisfied at block 48 and the value of the use count in memory is decremented by unity. Other methods for rendering the key unusable when the use count falls to zero may be used in addition to or in lieu of a programmatic limit, e.g., the key can be deleted from TPM memory 32 when the use count is found to be zero.
With the above disclosure in mind, the present facilitates several uses and advantages. The use count can be initialized at unity to permit only one use of the key. Such a single use key may be used, e.g., to encrypt a TPM password. If the password is forgotten, TPM administrators can provide a user with authorization to use the key to recover the TPM password, which then is changed, with the TPM key being rendered useless thereafter.
In another use, the use count can be initialized at a value equalling a permitted number of trial uses of a software program or multimedia program such as a video or music file. All or part of the program (e.g., a dynamic link library (DLL)) is encrypted and the encryption key is wrapped to the public key of a limited use public/private key pair. Each time the program is executed, the limited use key is accessed to unbind the encryption key, so that once the maximum number of uses has been reached, no further use of the program is possible.
Special owner-authorized commands may also be provided, including the ability to reset or otherwise alter the use count, remove a key entry from the table, clear the table completely, and report the content of the table.
It may now be appreciated that the number of times a TPM key can be used can be limited using present principles. Thus, in a secure environment keys used to identify users may be limited to, e.g., one hundred uses before a new key must be generated to help limit exposure should a key be compromised. Similarly, a key can be rendered useless if a user leaves an organization or otherwise has no further need to know information protected by a key by setting the use count of the key to zero or by deleting the key from the table in the TPM memory 32.
While the particular SYSTEM AND METHOD FOR TPM KEY SECURITY BASED ON USE COUNT is herein shown and described in detail, it is to be understood that the subject matter which is encompassed by the present invention is limited only by the claims.