IP Library › Granted Patent US 10,979,232
Granted Patent B2
US 10,979,232 · App. 15/994,811 · Granted Apr 13, 2021

Method for provisioning device certificates for electronic processors in untrusted environments

Inventors: Thomas S. Messerges (Schaumburg, IL); Brian W. Pruss (Streamwood, IL); Kenneth C. Fuchs (Winfield, IL); Adam C. Lewis (Buffalo Grove, IL)
Assignee: MOTOROLA SOLUTIONS, INC.
H04L9/3263G06F21/44H04L9/321H04L9/3247H04L63/12
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,979,232
App. No.
15/994,811
Granted
Apr 13, 2021
Kind
B2
Abstract

Provisioning device certificates for electronic processors. One example method includes receiving a flashloader at the electronic processor. The method also includes validating the flashloader with the electronic processor. After validating the flashloader, the method includes receiving an encrypted provisioned key bundle at the electronic processor. The method also includes decrypting the encrypted provisioned key bundle with the electronic processor using a provisioning key to create a decrypted provisioned key bundle. The method further includes executing a provisioning process on the electronic processor using the decrypted provisioned key bundle.

Claims (70)

1. A method for provisioning a device certificate for an electronic processor, the method comprising:

receiving a flashloader at an input/output interface included in the electronic processor;

validating the flashloader with an electronic processing unit included in the electronic processor; and

after validating the flashloader the electronic processing unit executing executable instructions included in the flashloader that cause the electronic processing unit to perform operations including:

receiving an encrypted provisioned key bundle at the input/output interface,

decrypting the encrypted provisioned key bundle using a provisioning key to create a decrypted provisioned key bundle, and

executing a provisioning process on the electronic processor using the decrypted provisioned key bundle, wherein executing the provisioning process on the electronic processing including:

retrieving a first key from the decrypted provisioned key bundle,

generating an unsigned certificate signing request for an unsigned device certificate,

signing the unsigned certificate signing request with the first key to create a signed certificate signing request,

sending the signed certificate signing request to a server from the input/output interface, and

receiving a signed device certificate from the server at the input/output interface.

2. The method of claim 1 , wherein the electronic processor is included in an electronic device, wherein the method further comprises authenticating the electronic processor using the signed device certificate.

3. The method of claim 1 , wherein after validating the flashloader, the method further comprising:

receiving an encrypted bootloader at the input/output interface,

decrypting the encrypted bootloader with the electronic processing unit using the provisioning key to create a decrypted bootloader, and

storing the decrypted bootloader in a reprogrammable memory included in the electronic processor.

4. The method of claim 1 , wherein after validating the flashloader, the method further comprising:

receiving an encrypted common encryption key at the input/output interface,

decrypting the encrypted common encryption key with the electronic processing unit using the provisioning key to create a decrypted common encryption key, and

storing the decrypted common encryption key in a one-time programmable memory included in the electronic processor.

5. The method of claim 4 , wherein after validating the flashloader, the method further comprising:

receiving an encrypted bootloader at the input/output interface,

decrypting the encrypted bootloader with the electronic processing unit to create a decrypted bootloader, wherein the electronic processing unit decrypts the encrypted bootloader using at least one selected from a group consisting of the provisioning key and the decrypted common encryption key stored in the one-time programmable memory, and

storing the decrypted bootloader in a reprogrammable memory included in the electronic processor.

6. The method of claim 1 , wherein the decrypted provisioned key bundle is a first decrypted provisioned key bundle, wherein the provisioning process is a factory provisioning process, wherein the signed device certificate is a first signed device certificate, and wherein the method further comprising:

receiving an encrypted common encryption key at the input/output interface,

decrypting the encrypted common encryption key with the electronic processing unit using the provisioning key to create a decrypted common encryption key,

storing the decrypted common encryption key in a one-time programmable memory included in the electronic processor,

receiving a double encrypted provisioned key bundle at the input/output interface,

retrieving the decrypted common encryption key stored in the one-time programmable memory,

decrypting the double encrypted provisioned key bundle with the electronic processing unit using the provisioning key and the decrypted common encryption key to create a second decrypted provisioned key bundle, and

executing a field provisioning process on the electronic processor using the second decrypted provisioned key bundle, wherein executing the provisioning process on the electronic processing includes creating or obtaining a second signed device certificate using the second decrypted provisioned key bundle.

7. A method for provisioning a device certificate for an electronic processor, the method comprising:

receiving a flashloader at an input/output interface included in the electronic processor;

validating the flashloader with an electronic processing unit included in the electronic processor; and

after validating the flashloader the electronic processing unit executing executable instructions included in the flashloader that cause the electronic processing unit to perform operations including

receiving a double encrypted provisioned key bundle at the input/output interface,

retrieving a common encryption key stored in a one-time programmable memory included in the electronic processor,

decrypting the double encrypted provisioned key bundle using the common encryption key and a provisioning key to create a decrypted provisioned key bundle, and

retrieving a first key from the decrypted provisioned key bundle,

generating an unsigned certificate signing request for an unsigned device certificate,

signing the unsigned certificate signing request with the first key to create a signed certificate signing request,

sending the signed certificate signing request to a server from the input/output interface, and

receiving a signed device certificate from the server at the input/output interface.

8. The method of claim 7 , wherein the electronic processor is included in an electronic device, where the method further comprises authenticating the electronic processor using the signed device certificate.

9. The method of claim 7 , wherein after validating the flashloader, the method further comprising:

receiving an encrypted bootloader at the input/output interface,

decrypting the encrypted bootloader with the electronic processing unit using the common encryption key to create a decrypted bootloader, and

storing the decrypted bootloader in a reprogrammable memory included in the electronic processor.

10. The method of claim 7 , wherein after validating the flashloader, the method further comprising

receiving a double encrypted bootloader at the input/output interface,

decrypting the double encrypted bootloader with the electronic processing unit-using the common encryption key and the provisioning key to create a decrypted bootloader, and

storing the decrypted bootloader in a reprogrammable memory included in the electronic processor.

11. A method for provisioning a device certificate for an electronic processor, the method comprising:

receiving a flashloader at an input/output interface included in the electronic processor;

validating the flashloader with an electronic processing unit included in the electronic processor;

after validating the flashloader the electronic processing unit executing executable instructions included in the flashloader that cause the electronic processing unit to perform operations including:

receiving an encrypted provisioned key bundle at the input/output interface,

retrieving a common encryption key stored in a one-time programmable memory included in the electronic processor,

decrypting the encrypted provisioned key bundle using the common encryption key to create a decrypted provisioned key bundle,

retrieving a first key from the decrypted provisioned key bundle,

generating an unsigned certificate signing request for an unsigned device certificate,

signing the unsigned certificate signing request with the first key to create a signed certificate signing request,

sending the signed certificate signing request to a server from the input/output interface, and

receiving a signed device certificate from the server at the input/output interface.

12. The method of claim 11 , wherein after validating the flashloader, the method further comprising:

receiving an encrypted bootloader at the input/output interface,

decrypting the encrypted bootloader with the electronic processing unit using the common encryption key to create a decrypted bootloader, and

storing the decrypted bootloader in a reprogrammable memory included in the electronic processor.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 31, 2018
From: MESSERGES, THOMAS S.; PRUSS, BRIAN W.; FUCHS, KENNETH C.; LEWIS, ADAM C.
To: MOTOROLA SOLUTIONS, INC.
Reel/Frame 045956/0755 →
Continuity (1)
Related Publication 20190372780A1 · Dec 5, 2019