Securing sensitive data in memory
First Claim
1. A method for using sensitive data, said method implemented on a hardware computing device having a hardware processor and a hardware memory, the hardware computing device also having a library of secure buffer APIs for manipulating secure buffers associated with the hardware computing device and a separate library of regular memory manipulation APIs for manipulating unencrypted accessible locations associated with the hardware computing device, each secure buffer being manipulatable only by way of APIs in the library of secure buffer APIs and not by way of APIs in the library of regular memory manipulation APIs, the method comprising the hardware processor:
- storing said sensitive data in a secure buffer in the hardware memory, the storing comprising;
accessing an allocation API (application programming interface) from the library of secure buffer APIs;
directing the allocation API to create the secure buffer; and
accessing a storing API from the library of secure buffer APIs;
directing the storing API to store the sensitive data in the created secure buffer;
preventing any allocation API from the library of regular memory manipulation APIs from creating any secure buffer; and
preventing any storing API from the library of regular memory manipulation APIs from storing the sensitive data in any created secure buffer; and
providing a portion of said stored sensitive data from the secure buffer for use, where said portion is less than all of said sensitive data.
2 Assignments
0 Petitions
Accused Products
Abstract
Sensitive data is stored in a secure buffer, and never in an unencrypted, accessible location at any time. The data is accessed only by low-level processor instructions that load only a portion of the data into processor registers. The portion of data can then be used before the next portion of data is transferred from the secure buffer into the processor registers. In some embodiments, only one portion is available at any time. In other embodiments, a number of portions may be available at one time. However, the entirety of the sensitive data is never present in the clear. Thus, the entirety of the sensitive data will never be available if an adversary gains access to the contents of memory.
10 Citations
19 Claims
-
1. A method for using sensitive data, said method implemented on a hardware computing device having a hardware processor and a hardware memory, the hardware computing device also having a library of secure buffer APIs for manipulating secure buffers associated with the hardware computing device and a separate library of regular memory manipulation APIs for manipulating unencrypted accessible locations associated with the hardware computing device, each secure buffer being manipulatable only by way of APIs in the library of secure buffer APIs and not by way of APIs in the library of regular memory manipulation APIs, the method comprising the hardware processor:
-
storing said sensitive data in a secure buffer in the hardware memory, the storing comprising; accessing an allocation API (application programming interface) from the library of secure buffer APIs; directing the allocation API to create the secure buffer; and accessing a storing API from the library of secure buffer APIs; directing the storing API to store the sensitive data in the created secure buffer; preventing any allocation API from the library of regular memory manipulation APIs from creating any secure buffer; and preventing any storing API from the library of regular memory manipulation APIs from storing the sensitive data in any created secure buffer; and providing a portion of said stored sensitive data from the secure buffer for use, where said portion is less than all of said sensitive data. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A system for storing secure data, comprising:
-
a library of secure buffer APIs for manipulating secure buffers; a separate library of regular memory manipulation APIs for manipulating unencrypted accessible locations associated with the hardware computing device, each secure buffer being manipulatable only by way of APIs in the library of secure buffer APIs and not by way of APIs in the library of regular memory manipulation APIs; a secure buffer for storing sensitive data; a secure buffer accessor, operably connected to said secure buffer, for accessing said stored sensitive data from the secure buffer, where said secure buffer accessor allows access to only a portion of said stored sensitive data for use, where said portion is less than all of said sensitive data, the secure buffer accessor employing; an allocation API (application programming interface) from the library of secure buffer APIs to create the secure buffer; and a storing API from the library of secure buffer APIs to store the sensitive data in the created secure buffers, the secure buffer accessor preventing any allocation API from the library of regular memory manipulation APIs from creating any secure buffer, and preventing any storing API from the library of regular memory manipulation APIs from storing the sensitive data in any created secure buffer. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. A hardware computing device having stored thereon:
-
a library of regular memory manipulation APIs for accessing unencrypted accessible locations; and a separate library of secure buffer APIs (application programming interfaces) for accessing sensitive data in a secure buffer, each secure buffer being manipulatable only by way of APIs in the library of secure buffer APIs and not by way of APIs in the library of regular memory manipulation APIs, said library of secure buffer APIs for; accessing a portion of said sensitive data from the secure buffer, where said portion is less than all of said sensitive data, the library of secure buffer APIs including; an allocation API (application programming interface) to create the secure buffer; and a storing API to store the sensitive data in the created secure buffer, the hardware computing device also having a secure buffer accessor that prevents any allocation API from the library of regular memory manipulation APIs from creating any secure buffer, and that prevents any storing API from the library of regular memory manipulation APIs from storing the sensitive data in any created secure buffer. - View Dependent Claims (19)
-
Specification