Cryptographically protected paging subsystem
First Claim
1. A method comprising:
- importing an encrypted incoming page into a physically secure environment from an external storage unit of the physically insecure environment;
decrypting the incoming page within the physically secure environment;
calculating an integrity check value on the incoming page within the physically secure environment;
selecting an integrity check value stored within the physically secure environment that corresponds to the incoming page;
comparing the calculated integrity check value of the incoming page with the selected integrity check value;
storing the incoming page within the physically secure environment when the calculated integrity check value matches the stored integrity check value of the incoming page; and
processing the stored, incoming page within the physically secure environment.
0 Assignments
0 Petitions
Accused Products
Abstract
A method and system for maintaining integrity and confidentiality of pages paged to an external storage unit from a physically secure environment. An outgoing page is selected to be exported from a physically secure environment to an insecure environment. An integrity check value is generated and stored for the outgoing page. In one embodiment, this takes the form of taking a one-way hash of the page using a well-known one-way hash function. The outgoing page is then encrypted using a cryptographically strong encryption algorithm. Among the algorithms that might be used in one embodiment of the invention are IDEA and DES. The encrypted outgoing page is then exported to the external storage. By virtue of the encryption and integrity check, the security of the data on the outgoing page is maintained in the insecure environment.
57 Citations
37 Claims
-
1. A method comprising:
-
importing an encrypted incoming page into a physically secure environment from an external storage unit of the physically insecure environment;
decrypting the incoming page within the physically secure environment;
calculating an integrity check value on the incoming page within the physically secure environment;
selecting an integrity check value stored within the physically secure environment that corresponds to the incoming page;
comparing the calculated integrity check value of the incoming page with the selected integrity check value;
storing the incoming page within the physically secure environment when the calculated integrity check value matches the stored integrity check value of the incoming page; and
processing the stored, incoming page within the physically secure environment. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
generating an integrity check value for an outgoing page within the physically secure environment;
storing the integrity check value for the outgoing page within the physically secure environment;
encrypting the outgoing page within the physically secure environment; and
exporting the encrypted outgoing page outside the physically secure environment to an external storage unit within an insecure environment.
-
-
3. The method of claim 2 wherein the encrypted outgoing page is encrypted using a symmetric encryption algorithm.
-
4. The method of claim 3 further comprising:
retrieving a random key for use in encrypting the outgoing page.
-
5. The method of claim 4 wherein outgoing pages related to a single application are encrypted using a same key.
-
6. The method of claim 4 wherein a different key is generated for encrypting each outgoing page.
-
7. The method of claim 4 further comprising:
storing the key in a table in the physically secure environment.
-
8. The method of claim 2 wherein the generating of the integrity value comprises:
-
one way hashing the outgoing page; and
storing a predetermined portion of a hash value of the outgoing page in a location within the physically secure environment.
-
-
9. The method of claim 8 wherein the location is pointed to by a pointer in a field of a page table entry corresponding to the outgoing page.
-
10. The method of claim 8 wherein the predetermined portion is the whole hash value.
-
11. The method of claim 1, further comprising:
discarding the incoming page when the calculated integrity check value does not match the stored integrity check value of the incoming page.
-
12. A system for maintaining security in a paging subsystem comprising:
-
a bus;
a physically secure environment including a memory, a processor coupled to the memory, and an interface coupled between the bus and the processor thereby forming the physically secure environment, the processor (i) encrypting and generating an integrity check value for a page exported from the physically secure environment, (ii) decrypting and checking the integrity check value of the page when the page is imported back into the physically secure environment, (iii) storing the incoming page within the physically secure environment when the calculated integrity check value matches the stored integrity check value of the incoming page and (iv) processing the stored, incoming page within the physically secure environment;
an insecure storage unit coupled to the bus and situated in an insecure environment outside the physically secure environment such that the interface electrically isolates the physically secure environment from the insecure environment; and
a page table exportable from the memory, the page table storing either the integrity check value or a pointer to the integrity check value. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
an integrity check engine coupled to the interface and (i) generating the integrity check value for the page exported from the physically secure environment, and (ii) checking the integrity check value of the page when the page is imported back into the physically secure environment;
an encryption engine coupled to the integrity check engine and encrypting the exported from the physically secure environment; and
a decryption engine coupled to the integrity check engine and decrypting the page when the page is imported back into the physically secure environment.
-
-
14. The system of claim 13, wherein the interface further comprises:
a decryption engine coupled to the integrity check engine.
-
15. The system of claim 13 wherein a portion of the memory of the physically secure environment stores a predetermined portion of a one-way hash value of an outgoing page generated by the integrity check engine responsive to the export of the outgoing page.
-
16. The system of claim 13 wherein the interface of the physically secure environment further comprises:
a random number generator coupled to the bus to generate an encryption key.
-
17. The system of claim 16, wherein the physically secure environment further comprises:
a key storage area storing a key corresponding to each page that has been exported from the interface.
-
18. The system of claim 13 wherein the encryption engine implements a symmetric bulk encryption algorithm.
-
19. The system of claim 13 wherein the encryption engine includes a symmetric encryption engine.
-
20. The system of claim 19 wherein the interface further comprises an asymmetric encryption engine.
-
21. The system of claim 13 wherein the secure environment resides on a single chip.
-
22. The system of claim 12 further comprising:
an host processor coupled to the bus, the host processor being resident in the insecure environment.
-
23. A method comprising:
-
reading, into the physically secure environment, an incoming page from a plurality of pages of software contained within an installation storage device;
hashing the incoming page to generate an integrity check value;
storing the integrity check value within the physically secure environment;
exporting the incoming page, in an encrypted format, to an external storage unit resident in an insecure environment;
repeating the generating, the reading, the hashing, the storing, the encrypting, and the exporting for each page of software within the installation storage device to form a calculated overall hash value of the software based on each integrity check value to complete installation of the software; and
when the software contains a digital signature, verifying that the overall hash value matches a software hash value from the digital signature, thereby insuring integrity of the software. - View Dependent Claims (24)
invalidating the installation of the software when the calculated overall hash value does not match the software hash value.
-
-
25. A method comprising:
-
when a desired page is not present within a physically secure environment, selecting an outgoing page stored within the physically secure environment;
generating an outgoing integrity check value for the selected outgoing page within the physically secure environment;
storing the outgoing integrity check value for the outgoing page within the physically secure environment;
exporting the outgoing page in an encrypted format outside the physically secure environment to an external storage unit within an insecure environment;
paging a desired page into the physically secure environment from the external storage unit with an insecure environment;
generating an incoming integrity check value for the desired once paged into the physically secure environment;
comparing a stored outgoing integrity check value of the desired page with the incoming integrity check value;
storing the incoming page within the physically secure environment when the calculated integrity check value matches the stored integrity check value of the incoming page; and
processing the stored, incoming page within the physically secure environment. - View Dependent Claims (26, 27)
detecting that a desired page is not present within the physically secure environment; and
verifying an integrity check value for the desired page is stored within the physically secure environment.
-
-
27. The method of claim 25, further comprising:
-
discarding the desired page when the incoming integrity check value does not match the stored outgoing integrity check value of the desired page;
otherwise storing the desired page within the physically secure environment; and
otherwise processing the desired page within the physically secure environment.
-
-
28. A method comprising:
-
importing encrypted incoming information into a physically secure environment from the external storage unit of the physically insecure environment;
decrypting the encrypted incoming information within the physically secure environment;
calculating an integrity check value for the incoming information within the physically secure environment;
comparing the integrity check value of the incoming information with a previously stored integrity check value corresponding to the incoming information from within the physically secure environment;
storing the incoming page within the physically secure environment when the calculated integrity check value matches the stored integrity check value of the incoming page; and
processing the stored, incoming page within the physically secure environment. - View Dependent Claims (29, 30, 31, 32, 33, 34, 35, 36, 37)
generating an integrity check value for outgoing information within the physically secure environment;
storing the integrity check value for the outgoing information within the physically secure environment;
encrypting the outgoing information within the physically secure environment; and
exporting the encrypted outgoing information outside the physically secure environment to an external storage unit within an insecure environment.
-
-
30. The method of claim 29 wherein the encrypted outgoing information is encrypted using a symmetric encryption algorithm.
-
31. The method of claim 30 further comprising:
retrieving a random key for use in encrypting the outgoing information.
-
32. The method of claim 31 wherein outgoing information related to a single application is encrypted using a same key.
-
33. The method of claim 31 wherein a different key is generated for encrypting each portion of outgoing information.
-
34. The method of claim 31 further comprising:
storing the key in a table in the physically secure environment.
-
35. The method of claim 29 wherein the generating of the integrity check value comprises:
-
one way hashing the outgoing information; and
storing a predetermined portion of a hash value of the outgoing information in a location within the physically secure environment.
-
-
36. The method of claim 35 wherein the location is pointed to by a pointer in a field of a page table entry corresponding to the outgoing information.
-
37. The method of claim 35 wherein the predetermined portion is the whole hash value.
Specification