IP Library › Granted Patent US 11,822,664
Granted Patent B2
US 11,822,664 · App. 17/092,030 · Granted Nov 21, 2023

Securely signing configuration settings

Inventors: Xeno S. Kovah (Milpitas, CA); Nikolaj Schlej (Deggendorf, DE); Thomas P. Mensch (Sunnyvale, CA); Wade Benson (San Jose, CA); Jerrold V. Hauck (Windermere, FL); Josh P. de Cesare (Los Gatos, CA); Austin G. Jennings (San Jose, CA); John J. Dong (San Jose, CA); Robert C. Graham (San Jose, CA); Jacques Fortier (San Francisco, CA)
Assignee: Apple Inc.
G06F21/575G06F9/4406G06F21/72G06F21/73H04L9/0897H04L9/3226H04L9/3236H04L9/3268H04L63/123G06F2221/034
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 11,822,664
App. No.
17/092,030
Filed
Nov 6, 2020
Granted
Nov 21, 2023
Kind
B2
Art Unit
2115
USPC
713/2
Abstract

Techniques are disclosed relating to securing computing devices during boot. In various embodiments, a secure circuit of a computing device generates for a public key pair and signs, using a private key of the public key pair, configuration settings for an operating system of the computing device. A bootloader of the computing device receives a certificate for the public key pair from a certificate authority and initiates a boot sequence to load the operating system. The boot sequence includes the bootloader verifying the signed configuration settings using a public key included in the certificate and the public key pair. In some embodiments, the secure circuit cryptographically protects the private key based on a passcode of a user, the passcode being usable by the user to authenticate to the computing device.

Claims (89)

1. A computing device, comprising:

a processor;

a secure circuit configured to:

generate a public key pair; and

sign, using a private key of the public key pair, configuration settings for an operating system of the computing device, wherein the configuration settings include one or more security settings that enable or disable one or more protection systems implemented by the operating system to protect operation of the computing device; and

memory having program instructions stored therein that are executable by the processor to cause the computing device to:

receive, at a bootloader, a certificate for the public key pair from a certificate authority; and

initiate, by the bootloader, a boot sequence to load the operating system, wherein the boot sequence includes the bootloader verifying the signed configuration settings using a public key included in the certificate and the public key pair.

2. The computing device of claim 1 , wherein the secure circuit is further configured to:

cryptographically protect the private key based on a passcode of a user, wherein the passcode is usable by the user to authenticate to the computing device.

3. The computing device of claim 2 , wherein the secure circuit is further configured to:

store a unique identifier (UID) that uniquely identifies the computing device from other computing devices; and

cryptographically protect the private key based on the UID stored by the secure circuit.

4. The computing device of claim 2 ,

wherein the program instructions are further executable to cause the computing device to:

receive a request from the user to alter the configuration settings, wherein the request includes the passcode; and

in response to the request, provide an altered version of the configuration settings and the passcode to the secure circuit;

wherein the secure circuit is further configured to:

use the passcode to obtain access to the private key; and

use the private key to sign the altered version of the configuration settings.

5. The computing device of claim 4 , wherein the program instructions are further executable to cause the computing device to:

in response to the request to alter the configuration settings:

generate a nonce for inclusion in the altered version of the configuration settings; and

cause the secure circuit to use the private key to sign the nonce with the signing of the altered version of the configuration settings.

6. The computing device of claim 1 , wherein the program instructions are further executable to cause the computing device to:

send a user credential to a server system operable to perform a verification of the user credential and a confirmation that an owner has not requested a disabling of the computing device; and

based on the verification and the confirmation, receive, from the server system, an attestation indicating that the computing device is authorized to request certification of the private key; and

send the attestation and a certificate signing request for the public key pair to a certificate authority external to the computing device.

7. The computing device of claim 6 , wherein the secure circuit is further configured to:

read a hardware identifier embedded at manufacture to identify a presence of particular hardware in the computing device; and

use the hardware identifier to sign the certificate signing request.

8. The computing device of claim 1 , wherein the program instructions are further executable to cause the computing device to:

prior to obtaining the signed configuration settings from the secure circuit, booting the operating system into a recovery mode in which the operating system requests, from a server system, an initial set of configuration settings signed by the server system; and

providing the initial set of configuration settings for use by the operating system until the signed configuration settings are obtained from the secure circuit.

9. The computing device of claim 1 , wherein the operating system is one of a plurality of operating systems having program instructions stored in the memory; and

wherein the secure circuit is configured to:

use the private key to sign configuration settings for respective ones of the plurality of operating systems.

10. A method, comprising:

receiving, by a server system implementing a certificate authority, a certificate signing request for a public key pair generated by a secure circuit of a computing device; and

issuing, by the server system, a certificate for the public key pair, wherein the issuing includes including signing the certificate with a private key trusted by a bootloader of the computing device, wherein the bootloader is executable to use the certificate during a boot sequence to verify configuration settings for an operating system that are signed by a private key of the public key pair generated by the secure circuit, wherein the configuration settings include one or more security settings that enable or disable one or more protection systems implemented by the operating system to protect operation of the computing device.

11. The method of claim 10 , further comprising:

verifying, by the server system, a signature of the certificate signing request, wherein the signature is generated using a hardware identifier embedded at manufacture to identify a presence of particular hardware in the computing device.

12. The method of claim 10 , further comprising:

prior to issuing the certificate:

verifying, by the server system, a user credential received from the computing device; and

confirming, by the server system, that an owner of the computing device has not requested a disabling of the computing device.

13. The method of claim 12 , further comprising:

based on the verification and the confirmation, providing, by the server system, an attestation indicating that the computing device is authorized to request certification of the public key pair; and

verifying, by the server system, that the attestation has been provided with the certificate signing request.

14. The method of claim 10 , further comprising:

prior to the configuration settings being signed, providing, by the server system, an initial set of configuration settings for use by the operating system until the signed configuration settings are obtained from the secure circuit.

15. A non-transitory computer readable medium having program instructions stored therein that are executable by a computing device to cause the computing device to perform operations comprising:

sending, to a secure circuit of the computing device, a request to use a private key to sign configuration settings for an operating system of the computing device, wherein the configuration settings control one or more security systems implemented by the computing device;

initiating, by a bootloader, a boot sequence to load the operating system, wherein the boot sequence includes:

reading, by the bootloader, the signed configuration settings and a certificate issued for a public key pair including the private key; and

verifying, by the bootloader, the signed configuration settings using a public key included in the certificate.

16. The computer readable medium of claim 15 , wherein the operations further comprise:

providing, to the secure circuit, a passcode of a user to obtain access to the private key for signing the configuration settings.

17. The computer readable medium of claim 15 , wherein the operations further comprise:

generating a nonce for inclusion in the configuration settings signed by the secure circuit; and

the bootloader verifying the inclusion of the nonce when verifying the signed configuration settings.

18. The computer readable medium of claim 15 , wherein the operations further comprise:

booting, by the bootloader, the operating system into a recovery mode in which the operating system requests, from a server system, an initial set of configuration settings signed by the server system; and

using the initial set of configuration settings until the signed configuration settings are obtained from the secure circuit.

19. An apparatus, comprising:

a processor;

a secure circuit configured to:

generate a public key pair; and

sign, using a private key of the public key pair, configuration settings for an operating system of the apparatus; and

memory having program instructions stored therein that are executable by the processor to cause the apparatus to:

receive, at a bootloader, a certificate for the public key pair from a certificate authority;

initiate, by the bootloader, a boot sequence to load the operating system, wherein the boot sequence includes the bootloader verifying the signed configuration settings using a public key included in the certificate and the public key pair;

cryptographically protect the private key based on a passcode of a user, wherein the passcode is usable by the user to authenticate to the apparatus;

receive a request from the user to alter the configuration settings, wherein the request includes the passcode; and

in response to the request, provide an altered version of the configuration settings and the passcode to the secure circuit;

wherein the secure circuit is further configured to:

use the passcode to obtain access to the private key; and

use the private key to sign the altered version of the configuration settings.

20. An apparatus, comprising:

a processor;

a secure circuit configured to:

generate a public key pair; and

sign, using a private key of the public key pair, configuration settings for an operating system of the apparatus; and

memory having program instructions stored therein that are executable by the processor to cause the apparatus to:

send a user credential to a server system operable to perform a verification of the user credential and a confirmation that an owner has not requested a disabling of the apparatus;

based on the verification and the confirmation, receive, from the server system, an attestation indicating that the apparatus is authorized to request certification of the private key;

send the attestation and a certificate signing request for the public key pair to a certificate authority external to the apparatus;

receive, at a bootloader, a certificate for the public key pair from the certificate authority; and

initiate, by the bootloader, a boot sequence to load the operating system, wherein the boot sequence includes the bootloader verifying the signed configuration settings using a public key included in the certificate and the public key pair.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 14, 2023
From: KOVAH, XENO S.; SCHLEJ, NIKOLAJ; MENSCH, THOMAS P.; BENSON, WADE; HAUCK, JERROLD V.; DE CESARE, JOSH P.; JENNINGS, AUSTIN G.; DONG, JOHN J.; GRAHAM, ROBERT C.; FORTIER, JACQUES
To: APPLE INC.
Reel/Frame 062977/0352 →
Continuity (2)
Provisional Application 63042050 · Jun 22, 2020
Related Publication 20210397716A1 · Dec 23, 2021