Systems and methods for using cryptography to protect secure and insecure computing environments
2 Assignments
0 Petitions
Accused Products
Abstract
Computation environments are protected from bogus or rogue load modules, executables, and other data elements through use of digital signatures, seals, and certificates issued by a verifying authority. A verifying authority—which may be a trusted independent third party—tests the load modules and/or other items to verify that their corresponding specifications are accurate and complete, and then digitally signs them based on a tamper resistance work factor classification. Secure computation environments with different tamper resistance work factors use different digital signature authentication techniques (e.g., different signature algorithms and/or signature verification keys), allowing one tamper resistance work factor environment to protect itself against load modules from another tamper resistance work factor environment. The verifying authority can provide an application intended for insecure environments with a credential having multiple elements covering different parts of the application. To verify the application, a trusted element can issue challenges based on different parts of the authenticated credential that the trusted element selects in an unpredictable (e.g., random) way, and deny service (or take other appropriate action) if the responses do not match the authenticated credential.
-
Citations
59 Claims
-
1-27. -27. (canceled)
-
28. A trusted element for use with a computer system including an insecure arrangement for using an application, the trusted element comprising:
-
a validator that validates at least one digital signature corresponding to the credential;
a challenge generator that selects, based at least in part on the credential, at least one predetermined portion of the application, the predetermined portion of the application including at least some executable software code, and issues a challenge requesting a response from the insecure arrangement, the response providing a computation of at least one value based on the selected predetermined portion of the application; and
a response checker that checks the response against the credential. - View Dependent Claims (29, 30, 31, 32, 33, 34)
-
-
35. In an electronic appliance including a secure execution space and an insecure execution space, a method for permitting an application executing within the insecure execution space to request one or more services from a trusted element executing in the secure execution space, the method comprising:
-
(a) issuing a challenge from the trusted element to the application or an agent of the application executing within the insecure execution space, the challenge being based at least in part on randomly selected parts of an authenticated credential, the challenge requesting the application or agent to provide one or more cryptographic hashes of one or more portions of the application, the one or more portions of the application including at least some executable software code;
(b) sending, from the application or agent to the trusted element, said one or more cryptographic hashes of one or more portions of the application;
(c) comparing, at the trusted element, information provided by the authenticated credential with said one or more cryptographic hashes of one or more portions of the application; and
(d) denying the application access to said one or more services if the comparison fails. - View Dependent Claims (36, 37, 38, 39, 40, 41)
-
-
42. A computer readable medium storing a computer program, the computer program including instructions that, when executed by a processor of an electronic appliance, are operable to cause the electronic appliance to take actions comprising:
-
(a) issuing a challenge from a trusted element executing in a secure execution space to an application or agent executing in an insecure execution space, the challenge being based at least in part on randomly selected parts of an authenticated credential, the challenge requesting the application or agent to provide one or more cryptographic hashes of one or more portions of the application, the one or more portions of the application including at least some executable software code;
(b) receiving, from the application or agent, said one or more cryptographic hashes of one or more portions of the application;
(c) comparing information provided by the authenticated credential with said one or more cryptographic hashes of one or more portions of the application; and
(d) denying the application access to one or more services provided by an application executing in the secure execution space if the comparison fails. - View Dependent Claims (43, 44, 45, 46, 47, 48)
-
-
49. An electronic appliance comprising:
-
a secure execution space;
an insecure execution space; and
a trusted element operable to execute within the secure execution space, the trusted element being operable to;
(a) issue a challenge to an application or agent executing in the insecure execution space, the challenge being based at least in part on randomly selected parts of an authenticated credential, the challenge requesting the application or agent to provide one or more cryptographic hashes of one or more portions of the application, the one or more portions of the application including at least some executable software code;
(b) receive, from the application or agent, said one or more cryptographic hashes of one or more portions of the application;
(c) compare information provided by the authenticated credential with said one or more cryptographic hashes of one or more portions of the application; and
(d) deny the application access to one or more services provided by an application executing in the secure execution space if the comparison fails. - View Dependent Claims (50, 51, 52, 53, 54)
-
-
55. A trusted element for use with a computer system including an insecure arrangement for using an application, the trusted element comprising:
-
means for validating at least one digital signature corresponding to the credential;
means for selecting, based at least in part on the credential, at least one predetermined portion of the application, the predetermined portion of the application including at least some executable software code, and issues a challenge requesting a response from the insecure arrangement, the response providing a computation of at least one value based on the selected predetermined portion of the application, wherein the predetermined portion of the application has been selected to provide sufficient coverage of a particular component of the application; and
means for checking the response against the credential.
-
-
56. A method for using a trusted element in an insecure arrangement for using an application comprising:
-
validating at least one digital signature corresponding to the credential;
selecting, based at least in part on the credential, at least one predetermined portion of the application, the predetermined portion of the application including at least some executable software code, and issues a challenge requesting a response from the insecure arrangement, the response providing a computation of at least one value based on the selected predetermined portion of the application, wherein the predetermined portion of the application has been selected to provide sufficient coverage of a particular component of the application; and
checking the response against the credential.
-
-
57. A system for using a trusted element in an insecure arrangement for using an application comprising:
-
means for randomly selecting two or more portions of an application;
means for computing a cryptographic value corresponding to each of the two or more portions of the application;
means for specifying a credential defining each of the two or more portions of the application and the corresponding computed cryptographic values; and
means for sending the credentials to an insecure arrangement for using the application, wherein the insecure arrangement uses the credentials in order to use the application. - View Dependent Claims (58)
-
-
59. A method for using a trusted element in an insecure arrangement for using an application comprising:
-
randomly selecting two or more portions of an application;
computing a cryptographic value corresponding to each of the two or more portions of the application;
specifying a credential defining each of the two or more portions of the application and the corresponding computed cryptographic values; and
sending the credentials to an insecure arrangement for using the application, wherein the insecure arrangement uses the credentials in order to use the application.
-
Specification