Systems and methods for using cryptography to protect secure and insecure computing environments
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.
Claims
exact text as granted — not AI-modified1 - 27 . (canceled)
28 . A computer-implemented method of generating a trusted credential associated with an application, the method comprising:
selecting a plurality of portions of an application; cryptographically hashing the plurality of portions of the application to generate a plurality of portion hash values; generating a plurality of portion hash blocks based at least in part on the plurality of portion hash values; generating a plurality of hash block sets, each hash block set of the plurality of hash blocks sets comprising at least one portion hash block of the plurality of portion hash blocks; generating a plurality of digital signatures, each digital signature of the plurality of the digital signatures being associated with a hash block set of the plurality of hash block sets; encrypting each hash block set of the plurality of hash block sets with an associated digital signature of the plurality of digital signatures to generate a plurality of credential parts; and combining the plurality of credential parts to generate a trusted credential.
29 . The method of claim 28 , wherein each portion hash block of the plurality of portion hash blocks comprises information identifying a portion of an application of the plurality of portions of the application.
30 . The method of claim 28 , wherein the information identifying the portion of the application comprises information identifying a byte range of the portion of the application.
31 . The method of claim 28 , wherein the plurality of portions of the application overlap at least in part.
32 . The method of claim 28 , wherein each digital signature of the plurality of digital signatures is generated based at least in part on an associated hash block set of the plurality of hash block sets.
33 . The method of claim 32 , wherein generating a digital signature of the plurality of digital signatures comprises:
cryptographically hashing a hash block set to generate a hash block set hash; and digitally signing the hash block set hash with a global credential signing key.
34 . The method of claim 33 , wherein the method further comprises selecting the global credential signing key from a set of global signing keys associated with an application validator.
35 . The method of claim 34 , wherein the trusted credential further comprises an identifier associated with the global credential signing key.
36 . The method of claim 28 , wherein encrypting each hash block set of the plurality of hash block sets with an associated digital signature of the plurality of digital signatures comprises encrypting each hash block set of the plurality of hash block sets with an associated digital signature of the plurality of digital signatures Using a global credential encryption key.
37 . The method of claim 36 , wherein the method further comprises selecting the global credential encryption key from a set of global credential encryption keys.
38 . A non-transitory computer-readable storage medium storing instructions that, when executed by a processor, cause the processor to perform a method of generating a trusted credential associated with an application comprising:
selecting a plurality of portions of an application; cryptographically hashing the plurality of portions of the application to generate a plurality of portion hash values; generating a plurality of portion hash blocks based at least in part on the plurality of portion hash values; generating a plurality of hash block sets, each hash block set of the plurality of hash blocks sets comprising at least one portion hash block of the plurality of portion hash blocks; generating a plurality of digital signatures, each digital signature of the plurality of the digital signatures being associated with a hash block set of the plurality of hash block sets; encrypting each hash block set of the plurality of hash block sets with an associated digital signature of the plurality of digital signatures to generate a plurality of credential parts; and combining the plurality of credential parts to generate a trusted credential.
39 . The non-transitory computer-readable storage medium of claim 38 , wherein each portion hash block of the plurality of portion hash blocks comprises information identifying a portion of an application of the plurality of portions of the application.
40 . The non-transitory computer-readable storage medium of claim 38 , wherein the information identifying the portion of the application comprises information identifying a byte range of the portion of the application.
41 . The non-transitory computer-readable storage medium of claim 38 , wherein the plurality of portions of the application overlap at least in part.
42 . The non-transitory computer-readable storage medium of claim 38 , wherein each digital signature of the plurality of digital signatures is generated based at least in part on an associated hash block set of the plurality of hash block sets.
43 . The non-transitory computer-readable storage medium of claim 42 , wherein generating a digital signature of the plurality of digital signatures comprises:
cryptographically hashing a hash block set to generate a hash block set hash; and digitally signing the hash block set hash with a global credential signing key.
44 . The non-transitory computer-readable storage medium of claim 43 , wherein the method further comprises selecting the global credential signing key from a set of global signing keys associated with an application validator.
45 . The non-transitory computer-readable storage medium of claim 44 , wherein the trusted credential further comprises an identifier associated with the global credential signing key.
46 . The non-transitory computer-readable storage medium of claim 38 , wherein encrypting each hash block set of the plurality of hash block sets with an associated digital signature of the plurality of digital signatures comprises encrypting each hash block set of the plurality of hash block sets with an associated digital signature of the plurality of digital signatures Using a global credential encryption key.
47 . The non-transitory computer-readable storage medium of claim 46 , wherein the method further comprises selecting the global credential encryption key from a set of global credential encryption keys.Join the waitlist — get patent alerts
Track US2015280922A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.