IP Library Granted Patent US 9,225,530
Granted Patent B2
US 9,225,530 · App. 14/158,210 · Granted Dec 29, 2015

Secure crypto-processor certification

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 9,225,530
App. No.
14/158,210
Granted
Dec 29, 2015
Kind
B2
Abstract

The subject disclosure is directed towards certifying cryptographic data for a crypto-processor outside of a controlled environment. The crypto-processor and a certifying entity maintain shared secret data for the purpose of verifying security of cryptographic key generation by the crypto-processor's firmware. In order to certify new cryptographic keys, the crypto-processor uses the shared secret data to verify the crypto-processor's firmware/hardware to the certifying entity. By protecting the shared secret data from exposure to compromised firmware, the shared secret data may be used to compute another secret conveying to the certifying entity whether the firmware can be trusted or not.

Claims (44)

1. A method for managing cryptographic data certification of

a crypto-processor, the method comprising:

computing shared secret data from data corresponding to hardware within the crypto-graphic processor;

generating trusted application secret data based upon a certification seed, firmware data, and from the shared secret data between the crypto-processor and a certifying entity, the trusted application secret data identifying a combination of hardware corresponding to the crypto-processor and firmware running with the crypto-processor;

upon generating the trusted application secret data, deleting or disabling access to the shared secret data within the crypto-processor;

sending the trusted application secret data to the certifying entity to verify cryptographic key generation by the crypto-processor; and

if the cryptographic key is verified, receiving, from the certifying entity, an indication that the trusted application secret data matches second trusted application secret data generated by the certifying entity from second shared secret data that corresponds to the shared secret data; and

if the cryptographic key is not verified, receiving, from the certifying entity, an indication that the trusted application secret data does not match the second trusted application secret data generated by the certifying entity from the second shared secret data that corresponds to the shared secret data.

2. The method of claim 1 further comprising processing a certificate for proving validity of new cryptographic data.

3. The method of claim 1 further comprising generating a cryptographic key generator, and generating cryptographic keys using the cryptographic key generator.

4. The method of claim 1 further comprising computing the shared secret data using a one-way mathematical function and immutable data corresponding to the hardware within the crypto-processor.

5. The method of claim 1 , wherein using the trusted application secret data further comprises verifying new cryptographic data after a firmware upgrade.

6. The method of claim 1 , further comprising:

changing a cryptographic key generator into a new cryptographic generator; and

verifying the new cryptographic key generator to the certifying entity.

7. In a computing environment, a system, comprising:

a crypto-processor configured to provide secure data operations using at least one cryptographic key, the crypto-processor:

generating trusted application secret data based upon a certification seed, firmware data, and using firmware data of the crypto-processor and shared secret data computed from data corresponding to hardware within the crypto-graphic processor; and

deleting the shared secret data upon generating the trusted application secret data; and

a certification component coupled to the crypto-processor, the certification component:

computing second trusted application secret data from second shared secret data corresponding to firmware stored within the crypto-processor prior to the deleting of the shared secret data;

verifying the firmware of the crypto-processor to a certifying entity by comparing the trusted application secret data with the second trusted application secret data; and

upon verification of the firmware, processing a certificate proving validity of the at least one cryptographic key.

8. The system of claim 7 , wherein the certification component further changes a cryptographic key generator corresponding to the firmware.

9. The system of claim 8 , wherein the certification component further engages in a session with the certifying entity for using a new cryptographic key generator to generate a new cryptographic key.

10. The system of claim 9 , wherein the certification component further compares the new cryptographic key generator to a previous cryptographic key generator associated with the crypto-processor.

11. The system of claim 7 further comprising a computing device that executes the certification component during a boot sequence.

12. The system of claim 7 , wherein the certification component further computes a session secret using the trusted application secret data.

13. The system of claim 12 , wherein the certification component further produces a hash based message authentication (HMAC) value for a session using the session secret.

14. The system of claim 13 , wherein the certification component further uses the HMAC value to validate a command, communicated by the certifying entity, for generating a new cryptographic key.

15. One or more computer-readable storage media having computer-executable instructions, which when executed perform operations comprising:

accessing shared secret data associated with a crypto-processor in response to a change in cryptographic key generation at the crypto-processor;

generating session data based upon a certification seed, firmware data, and the shared secret data between the crypto-processor and a certifying entity, the trusted application secret data identifying a combination of hardware corresponding to the crypto-processor and firmware running with the crypto-processor, the session data corresponding to verifying a cryptographic key generator at the crypto-processor;

upon generating the trusted application secret data, deleting or disabling access to the shared secret data within the crypto-processor;

sending the trusted application secret data to the certifying entity to verify cryptographic key generation by the crypto-processor; and

if the cryptographic key is verified, receiving, from the certifying entity, an indication that the trusted application secret data matches second trusted application secret data generated by the certifying entity from second shared secret data that corresponds to the shared secret data; and

if the cryptographic key is not verified, receiving, from the certifying entity, an indication that the trusted application secret data does not match the second trusted application secret data generated by the certifying entity from the second shared secret data that corresponds to the shared secret data.

16. The one or more computer-readable storage media of claim 15 having further computer-executable instructions, which when executed perform an operation comprising:

communicating the session data to the crypto-processor, including a request to generate new cryptographic data for performing secure computations; and

issuing a certificate for the new cryptographic data in response to a change to a cryptographic key as a result of a change in a cryptographic key generator.

17. The one or more computer-readable storage media of claim 15 having further computer-executable instructions, which when executed perform an operation comprising:

comparing an HMAC value communicated by the crypto-processor with an HMAC value computed from a session secret to determine whether the crypto-processor is in possession of the shared secret data.

18. The method of claim 1 , wherein the data corresponding to hardware within the crypto-graphic processor is fuse data.

19. The method of claim 1 , wherein the deleting or disabling of access to the shared secret data within the crypto-processor is executed prior to running firmware.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 9, 2015
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 039025/0454 →