IP Library › Granted Patent US 8,713,667
Granted Patent B2
US 8,713,667 · App. 11/177,715 · Granted Apr 29, 2014

Policy based cryptographic application programming interface in secure memory

Inventors: Jeff Kalibjian (Livermore, CA); Ralph Bestock (Los Altos, CA); Larry Hines (Santa Clara, CA); W. Dale Hopkins (Georgetown, KY); Vladimir Libershteyn (San Jose, CA); Steven W. Wierenga (Hillsborough, CA); Susan Langford (Sunnyvale, CA)
Assignee: Hewlett-Packard Development Company, L.P.
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,713,667
App. No.
11/177,715
Filed
Jul 8, 2005
Granted
Apr 29, 2014
Kind
B2
Art Unit
2435
USPC
726/14
Abstract

Systems, methods, and apparatus are provided for policy protected cryptographic Application Programming Interfaces (APIs) that are deployed in secure memory. One embodiment is a method of software execution. The method includes executing an application in a first secure memory partition; formatting a request to comply with a pre-defined secure communication protocol; transmitting the request from the application to a cryptographic application programming interface (API) of the application, the API being in a second secure memory partition that is separate and secure from the first secure memory partition; and verifying, in the second secure memory partition, that the request complies with a security policy before executing the request.

Claims (44)

1. A method for software execution by a computer, comprising:

executing an application in a first secure memory partition;

formatting a request to comply with a pre-defined secure communication protocol;

transmitting the request from the application to a cryptographic application programming interface (API) of the application, the API being in a second secure memory partition that is separate and secure from the first secure memory partition;

verifying, in the second secure memory partition, that the request complies with a security policy before executing the request; and

encrypting the request with a cryptographic algorithm before transmitting the request from the application to the API.

2. The method of claim 1 further comprising: executing the method of software execution in a secure cryptographic module that detects physical intrusions.

3. The method of claim 1 further comprising: defining, by the security policy, a specific type of cryptographic algorithm that the application is to use for a valid request.

4. The method of claim 1 further comprising: defining, by the security policy, a specific cryptographic key size that the application is to use for a valid request.

5. The method of claim 1 further comprising: defining, by the security policy, a specific type of hashing algorithm that the application is to use for a valid request.

6. The method of claim 1 further comprising: using the security policy to prevent access of application to the API unless the application complies with the security policy.

7. A method for software execution by a computer, comprising:

executing an application in a first secure memory location of a secure cryptographic module;

transmitting a call from the application to an application programming interface (API) of the application, the API being in a second secure memory location of the secure cryptographic module, the second secure memory location being separate and secure from the first secure memory location;

evaluating the call in the second secure memory location to determine whether the call complies with a security policy before executing the call; and

encrypting the call with a cryptographic algorithm before transmitting the call from the application to the API.

8. The method of claim 7 further comprising: hashing the call with a hashing algorithm before transmitting the call from the application to the API.

9. The method of claim 7 further comprising: enveloping the secure cryptographic module within a secure housing having circuitry for detecting intrusions into the housing.

10. The method of claim 7 further comprising:

forwarding the call to an API implementation if the call complies with the security policy;

denying the call if the call does not comply with the security policy.

11. The method of claim 7 further comprising: executing the call if the call complies with the security policy and is encrypted with a predetermined cryptographic algorithm that is specified in the security policy.

12. The method of claim 7 further comprising: executing the call if the call complies with the security policy and is encrypted to have a predetermined key size that is specified in the security policy.

13. A computer system, comprising:

means for storing an application in a first secure memory location;

means for formatting a request to comply with a security policy;

means for transmitting the request from the application to a cryptographic application programming interface (API) of the application, the API being stored in a second secure memory location that is secure and separate from the first secure memory location;

means for verifying, in the second secure memory location, that the request complies with the security policy before executing the request;

means for enclosing the first and second memory locations in a secure module that detects physical intrusions; and

means for encrypting the request with a cryptographic algorithm before transmitting the request from the application to the API.

14. The computer system of claim 13 , wherein the means for enclosing includes sensors for sensing unauthorized physical access.

15. The computer system of claim 14 , wherein the means for enclosing complies with level 4 of the Federal Information Processing Standard Publication 140-2.

16. A computer system, comprising:

memory having first and second secure portions, the first secure portion storing an application and the second secure portion storing a policy checking algorithm and an application programming interface (API) of the application;

a processor coupled to the memory for executing the application, the API, and the policy checking algorithm to:

transmit a call from the application to the API,

encrypt the call with a cryptographic algorithm before transmitting the call from the application to the API;

evaluate the call to determine whether the call complies with a security policy of the policy checking algorithm,

execute the call if the call complies with the security policy, and

deny the call if the call does not comply with the security policy; and

a cryptographic module enclosing the memory and the processor.

17. The computer system of claim 16 , wherein the first and second secure portions are separate and secure from each other.

18. The computer system of claim 16 , wherein the application in the first secure portion is denied access to the API in the second secure portion unless the application complies with the security policy.

19. The computer system of claim 16 , wherein the security policy defines symmetric key exchange algorithm.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2015
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 037079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 5, 2006
From: KALIBJIAN, JEFF; BESTOCK, RALPH; HINES, LARRY; HOPKINS, W. DALE; LIBERSHTEYN, VLADIMIR; WIERENGA, STEVEN W.; LANGFORD, SUSAN
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 017752/0001 →
Continuity (1)
Related Publication 20070011736A1 · Jan 11, 2007