System and method for secure storage data using a key
First Claim
Patent Images
1. A method, implemented in a system, the method comprising:
- receiving a block of data, a current operating system identity, and a target operating system identity, wherein the target operating system identity comprises a unique value that represents the identity of the target operating system, the unique value being a digest of both an identity of an initial boot block of the target operating system and an identity of each of one or more loaded operating system components of the target operating system;
encrypting the block of data using a key;
subsequently receiving a request to decrypt the encrypted block of data; and
returning the encrypted block of data to the requester only if the target operating system identity is equal to an operating system identity when the request to decrypt is received.
2 Assignments
0 Petitions
Accused Products
Abstract
In one aspect, a data structure to be encrypted is received in a device, the data structure including content along with a statement of conditions under which the content may be decrypted. The data structure is encrypted using a symmetric key of a processor of the device. In another aspect, a data structure is decrypted using a processor symmetric key. A statement of conditions under which content in the data structure can be decrypted is obtained, and testing is performed as to whether the conditions are satisfied. The decrypted content is returned only if the conditions are satisfied.
-
Citations
56 Claims
-
1. A method, implemented in a system, the method comprising:
- receiving a block of data, a current operating system identity, and a target operating system identity, wherein the target operating system identity comprises a unique value that represents the identity of the target operating system, the unique value being a digest of both an identity of an initial boot block of the target operating system and an identity of each of one or more loaded operating system components of the target operating system;
encrypting the block of data using a key;
subsequently receiving a request to decrypt the encrypted block of data; and
returning the encrypted block of data to the requester only if the target operating system identity is equal to an operating system identity when the request to decrypt is received. - View Dependent Claims (2, 3, 4)
- receiving a block of data, a current operating system identity, and a target operating system identity, wherein the target operating system identity comprises a unique value that represents the identity of the target operating system, the unique value being a digest of both an identity of an initial boot block of the target operating system and an identity of each of one or more loaded operating system components of the target operating system;
-
5. A method implemented in a system, the method comprising:
- receiving a block of data, a current operating system identity, and a target operating system identity, wherein the target operating system identity comprises a specified software identity register (SIR) value that must be current in order for the encrypted block of data to be decrypted, the software identity register (SIR) being set to the specified value only if a boot block of the target operating system is atomically executed;
encrypting the block of data using a key;
subsequently receiving a request to decrypt the encrypted block of data; and
returning the encrypted block of data to the requester only if the target operating system identity is equal to an operating system identity when the request to decrypt is received. - View Dependent Claims (6, 7, 8)
- receiving a block of data, a current operating system identity, and a target operating system identity, wherein the target operating system identity comprises a specified software identity register (SIR) value that must be current in order for the encrypted block of data to be decrypted, the software identity register (SIR) being set to the specified value only if a boot block of the target operating system is atomically executed;
-
9. A method, implemented in a device, the method comprising:
- receiving a data structure to be encrypted, wherein the data structure includes content along with a statement of conditions under which the content may be decrypted, wherein the statement of conditions comprises a specified value of a software identity register (SIR) internal to a processor of the device that must be current at a point of future decryption, the specified value being a digest of both an identity of an initial boot block of an operating system of the device and an identity of each of one or more loaded operating system components, and wherein the data structure is received as an input to a Seal operation; and
encrypting the content using a key. - View Dependent Claims (10, 11, 12, 13, 14, 15)
- receiving a data structure to be encrypted, wherein the data structure includes content along with a statement of conditions under which the content may be decrypted, wherein the statement of conditions comprises a specified value of a software identity register (SIR) internal to a processor of the device that must be current at a point of future decryption, the specified value being a digest of both an identity of an initial boot block of an operating system of the device and an identity of each of one or more loaded operating system components, and wherein the data structure is received as an input to a Seal operation; and
-
16. One or more computer readable memories having stored thereon a plurality of instructions that, when executed by one or more processors of a device, causes the one or more processors to:
- receive a data structure to be encrypted, wherein the data structure includes content along with a statement of conditions under which the content may be decrypted, wherein the statement of conditions comprises an operating system identity that an operating system executing on the device must have in order for the content to be decrypted, the operating system identity having been set to a specified value only if a boot block of the operating system was atomically executed; and
encrypt the content using a key. - View Dependent Claims (17, 18, 19)
- receive a data structure to be encrypted, wherein the data structure includes content along with a statement of conditions under which the content may be decrypted, wherein the statement of conditions comprises an operating system identity that an operating system executing on the device must have in order for the content to be decrypted, the operating system identity having been set to a specified value only if a boot block of the operating system was atomically executed; and
-
20. One or more computer readable memories having stored thereon a plurality of instructions that, when executed by one or more processors of a device, causes the one or more processors to:
- receive a data structure to be encrypted, wherein the data structure includes content along with a statement of conditions under which the content may be decrypted, wherein the statement of conditions comprises an operating system identity that an operating system executing an the device must have in order for the content to be decrypted, the operating system identity being a digest of both an initial boot block of the operating system and an identity of each of one or more loaded operating system components, wherein the operating system identity is maintained in a software identity register (SIR) internal to one of the one or more processors; and
encrypt the content using a key. - View Dependent Claims (21, 22, 23)
- receive a data structure to be encrypted, wherein the data structure includes content along with a statement of conditions under which the content may be decrypted, wherein the statement of conditions comprises an operating system identity that an operating system executing an the device must have in order for the content to be decrypted, the operating system identity being a digest of both an initial boot block of the operating system and an identity of each of one or more loaded operating system components, wherein the operating system identity is maintained in a software identity register (SIR) internal to one of the one or more processors; and
-
24. One or more computer readable memories having stored thereon a plurality of instructions that, when executed by one or more processors of a device, causes the one or more processors to:
-
receive a data structure to be encrypted, wherein the data structure includes content along with a statement of conditions under which the content may be decrypted, wherein the statement of conditions comprises an operating system identity that an operating system executing on the device must have in order for the content to be decrypted, the operating system identity having been set to a unique value only if the boot block of the operating system was atomically executed wherein the operating system identity is for an operating system that is different than an operating system executing when the content to be encrypted is received; and encrypt the content using a key. - View Dependent Claims (25, 26, 27, 28)
-
-
29. A method comprising:
- decrypting a data structure using a key;
obtaining a statement of conditions under which content in the data structure can be decrypted, wherein the statement of conditions comprises an operating system identity that an operating system executing on a device including a processor must have in order for the content to be decrypted, the operating system identity being a digest of both an identity of an initial boot block of the operating system and an identity of each of one or more loaded operating system components indicated in a boot log of the device testing whether the conditions are satisfied; and
returning the decrypted content only if the conditions are satisfied. - View Dependent Claims (30, 31, 32, 33, 34)
- decrypting a data structure using a key;
-
35. A method comprising:
-
decrypting a data structure using a key; obtaining a statement of conditions under which content in the data structure can be decrypted, wherein the statement of conditions comprises an operating system identity that an operating system executing on a device including a processor must have in order for the content to be decrypted, wherein the operating system identity is maintained in a software identity register (SIR) internal to the processor, wherein the operating system identity is a cryptographic digest of a data structure comprising both an identity of an initial boot block of the operating system of the device and an identity of each of one or more loaded operating system components, wherein each time one of the one or more loaded operating system components is loaded a current SIR value is replaced with a new SIR value that is a hash of a concatenation of the current SIR value and the identity of the one operating system component being loaded; testing whether the conditions are satisfied; and returning the decrypted content only if the conditions are satisfied. - View Dependent Claims (36, 37, 38, 39, 40)
-
-
41. One or more computer readable memories having stored thereon a plurality of instructions that, when executed by one or more processors of a device, causes the one or more processors to:
- decrypt a data structure using a key;
obtain a statement of conditions under which content in the data structure can be decrypted, wherein the statement of conditions comprises an operating system identity that an operating system executing on the device must have in order for the content to be decrypted, the operating system identity having been set to a specified value only if a boot block of the overatine system was atomically executed, wherein the operating system identity is maintained in a software identity register (SIR);
test whether the conditions are satisfied; and
return the decrypted content only if the conditions are satisfied. - View Dependent Claims (42, 43, 44)
- decrypt a data structure using a key;
-
45. One or more computer readable memories having stored thereon a plurality of instructions that, when executed by one or more processors of a device, causes the one or more processors to:
- decrypt a data structure using a key;
obtain a statement of conditions under which content in the data structure can be decrypted, wherein the statement of conditions comprises an operating system identity that an operating system executing on the device must have in order for the content to be decrypted, the operating system identity being a digest of both an identity of an initial boot block of the operating system and an identity of each of one or more loaded operating system components;test whether the conditions are satisfied; and return the decrypted content only if the conditions are satisfied. - View Dependent Claims (46, 47)
- decrypt a data structure using a key;
-
48. One or more computer readable memories having stored thereon a plurality of instructions that, when executed by one or more processors of a device, causes the one or more processor to:
- obtain content to be encrypted; and
invoke a seal operation, inputting the content to have the content encrypted using a key so that the content can be decrypted only if a statement of conditions under which the content may be decrypted is satisfied, wherein the statement of conditions comprises an operating system identity that an operating system executing on the device must have in order for the content to be decrypted, the operating system identity being a digest of both an identity of an initial boot block of the operating system and an identity of each of one or more loaded operating system components. - View Dependent Claims (49, 50, 51, 52)
- obtain content to be encrypted; and
-
53. One or more computer readable memories having stored thereon a plurality of instructions that, when executed by one or more processors of a device, causes the one or more processors to:
- make a seal operation and an unseal operation available for invoking;
wherein the seal operation causes content to be encrypted using a symmetric key along with a statement of the conditions under which it may be decrypted, wherein the statement of conditions comprises an operating system identity that an operating system executing on the device must have in order for the content to be decrypted, the operating system identity being set to a unique value only if a boot block of the operating system was atomically executed;
wherein the unseal operation causes the content to be returned to a requester if the conditions are satisfied; and
wherein the seal operation and unseal operation collectively provide the ability to seal secrets only for subsequent use on the device. - View Dependent Claims (54)
- make a seal operation and an unseal operation available for invoking;
-
55. One or more computer readable memories having stored thereon a plurality of instructions that, when executed by one or more processors of a device, causes the one or more processors to:
- make a seal operation and an unseal operation available for invoking;
wherein the seal operation causes content to be encrypted using a symmetric key along with a statement of the conditions under which it may be decrypted, wherein the statement of conditions comprises an operating system identity that an operating system executing on the device must have in order for the content to be decrypted, the operating system identity being a digest of both an identity of an initial boot block of the operating system and an identity of each of one or more loaded operating system components, and wherein the unseal operation causes the content to be returned to a requester if the conditions are satisfied. - View Dependent Claims (56)
- make a seal operation and an unseal operation available for invoking;
Specification