IP Library Granted Patent US 10,872,154
Granted Patent B2
US 10,872,154 · App. 16/262,179 · Granted Dec 22, 2020

Secure device state apparatus and method and lifecycle management

Inventors: Marius Schilder (Mountain View, CA); Timothy Chen (Mountain View, CA); Scott Johnson (Mountain View, CA); Harrison Pham (Mountain View, CA); Derek Martin (Mountain View, CA)
Assignee: Google LLC
G06F21/57G01R31/31719G01R31/318588G06F21/30G06F21/575G06F21/73G06F21/74G06F21/75G06F21/79G11C7/24G11C16/22G11C29/36G11C29/40G11C29/46H04L9/0822H04L9/0861G11C17/14G11C17/18G11C2029/0401G11C2029/0403G11C2029/4402
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 10,872,154
App. No.
16/262,179
Granted
Dec 22, 2020
Kind
B2
Abstract

A semiconductor chip device include device state fuses that may be used to configure various device states and corresponding security levels for the semiconductor chip as it transitions from wafer manufacturing to provisioned device. The device states and security levels prevent the semiconductor chip from being accessed and exploited, for example, during manufacturing testing. A secure boot flow process for a semiconductor chip over its lifecycle is also disclosed. The secure boot flow may start at the wafer manufacturing stage and continue on through the insertion of keys and firmware.

Claims (45)

1. A method of provisioning a semiconductor chip device, the method comprising:

determining that the semiconductor chip device is ready for provisioning based on a bit pattern stored in device fuses within the semiconductor chip device;

writing boot processing code to non-volatile memory of the semiconductor chip device;

verifying an authenticity of the boot processing code;

creating, using a certificate, a device initialization key for generating a plurality of provisioning keys;

disabling the certificate used to create the device initialization key for generating the provisioning keys by blowing device fuses associated with the certificate, the blowing of the device fuses associated with the certificate preventing an embedded processor of the semiconductor chip device or an external device from accessing the certificate or recreating the device initialization key;

exporting the device initialization key to a key management server;

deriving the provisioning keys using the device initialization key and the boot processing code;

proving identity to the key management server by providing a device ID and one of the provisioning keys;

decrypting provisioning data using another of the provisioning keys; and

verifying that the provisioning data is valid.

2. The method of claim 1 , wherein the non-volatile memory is flash memory.

3. The method of claim 1 , wherein the device initialization key is stored in a firmware readable register.

4. The method of claim 1 , wherein the provisioning data includes application-specific flash firmware; and

wherein the method further comprises allowing, by the boot processing code, storage of the application-specific flash firmware in the non-volatile memory.

5. The method of claim 1 , wherein the certificate is contained within the boot processing code.

6. The method of claim 1 , further comprising, responsive to determining that the bit pattern corresponds to an unknown pattern, locking the semiconductor device such that ports and memory of the device are permanently disabled.

7. The method of claim 1 , wherein the boot processing code and the provisioning data are received via a serial peripheral interface.

8. The method of claim 1 , wherein the one of the provisioning keys is a device attestation key.

9. The method of claim 8 , wherein the identity is proven by providing the device ID and the device attestation key to the key-management server and receiving confirmation from the key-management server.

10. The method of claim 1 , wherein the device ID is stored within the device fuses.

11. The method of claim 1 , wherein the provisioning keys are derived by a security coprocessor.

12. A semiconductor chip device, comprising:

device fuses;

a non-volatile memory;

a processor;

a storage device storing instructions, when executed by the processor, cause the semiconductor chip device to:

determine that the semiconductor chip device is ready for provisioning based on a bit pattern stored in the device fuses;

write boot processing code to the non-volatile memory;

verify an authenticity of the boot processing code;

create, using a certificate, a device initialization key for generating a plurality of provisioning keys;

disable the certificate used to create the device initialization key for generating the provisioning keys by blowing device fuses associated with the certificate, the blowing of the device fuses associated with the certificate preventing the processor or an external device from accessing the certificate or recreating the device initialization key;

export the device initialization key to a key management server;

derive the provisioning keys using the device initialization key and the boot processing code;

prove identity to the key management server by providing a device ID and one of the provisioning keys;

decrypt provisioning data using another of the provisioning keys; and

verify that the provisioning data is valid.

13. The semiconductor chip device of claim 12 , wherein the non-volatile memory is a flash memory.

14. The semiconductor chip device of claim 12 , wherein the device ID is maintained in the device fuses.

15. The semiconductor chip device of claim 12 , wherein the provisioning data includes application-specific flash firmware and the boot processing code allows storage of the application-specific flash firmware in the non-volatile memory.

16. The semiconductor chip device of claim 12 , wherein the boot processing code is a boot loader.

17. The semiconductor chip device of claim 12 , wherein the identity is proven by providing the device ID and a device attestation key to the key-management server and receiving confirmation from the key management server.

18. The semiconductor chip device of claim 12 , wherein the processor is further configured to, responsive to detecting an unknown pattern of the device fuses, lock the semiconductor chip device such that ports and memory of the semiconductor chip device are inaccessible.

19. The semiconductor chip device of claim 12 , wherein the bit pattern is spread across fuse-macros of the semiconductor chip device.

20. The semiconductor chip device of claim 12 , further comprising a security coprocessor, wherein the provisioning keys are derived by the security coprocessor.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 30, 2019
From: SCHILDER, MARIUS; CHEN, TIMOTHY; JOHNSON, SCOTT; PHAM, HARRISON; MARTIN, DEREK
To: GOOGLE INC.
Reel/Frame 048191/0280 →
CHANGE OF NAME Recorded Jan 30, 2019
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 048191/0635 →
Continuity (2)
Continuation 15396052 · Dec 30, 2016
Related Publication 20190163909A1 · May 30, 2019