IP Library › Granted Patent US 10,223,294
Granted Patent B2
US 10,223,294 · App. 14/842,121 · Granted Mar 5, 2019

Fast secure boot from embedded flash memory

Inventors: Richard Soja (Austin, TX); James A. Stephens (Chandler, AZ)
Assignee: NXP USA, Inc.
G06F12/1466G06F9/4401G06F21/34G06F21/575G06F21/6218G06F2212/1052G06F2221/2143
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,223,294
App. No.
14/842,121
Granted
Mar 5, 2019
Kind
B2
Abstract

A technique that reduces the startup time of a processing system authenticates a proxy for an image stored in tracked memory instead of authenticating the image stored in the tracked memory. A controller generates an alteration log authentication code based on an alteration log that is updated prior to programming the image stored in tracked memory. The controller records an alteration log authentication code in secure memory. The alteration log is indirectly related to a most recent image stored in the tracked memory. Authentication of the image of the alteration log is used as a proxy for authentication of the image stored in tracked memory, which is performed only when the tracked memory is modified. Use of the contents of the alteration log as a proxy for the contents of tracked memory accelerates the startup time of the system.

Claims (45)

1. A method for controlling access to memory comprising:

determining an alteration log authentication code based on contents of an alteration log associated with a tracked region of memory, modification of the tracked region of memory being enabled by a write to the alteration log; and

generating an indication of authentication of contents of the tracked region of memory based on a comparison of the alteration log authentication code to a stored alteration log authentication code; and

selectively providing access to the contents of the tracked region of memory in response to the indication.

2. The method, as recited in claim 1 , further comprising:

after storing an authentication code determined based on contents of the tracked region of memory, disabling modification of the tracked region of memory; and

generating a second indication of authentication of the contents of the tracked region of memory based on a comparison of the stored authentication code to a determined authentication code.

3. The method, as recited in claim 1 , further comprising:

in response to a successful authentication of entries of the tracked region of memory with a stored authentication code, determining the stored alteration log authentication code based on the alteration log associated with the tracked region of memory; and

storing the stored alteration log authentication code in a secure storage element.

4. The method, as recited in claim 3 , further comprising:

after storing the stored alteration log authentication code, enabling modification of the tracked region of memory.

5. The method, as recited in claim 1 , wherein the alteration log is at least one order of magnitude smaller than the tracked region of memory.

6. The method, as recited in claim 1 , wherein the alteration log is stored in one-time programmable memory.

7. The method, as recited in claim 1 , wherein contents of the tracked region of memory include boot code and the method further comprises:

executing a restricted startup in response to the indication indicating an unsuccessful authentication.

8. The method, as recited in claim 1 , further comprising:

accessing the contents of the tracked region of memory in response to the indication having a value indicating a successful authentication.

9. The method, as recited in claim 1 , further comprising:

enabling modification of the tracked region of memory in response to a write to the alteration log.

10. An apparatus comprising:

a storage module comprising a tracked region;

an alteration log associated with the tracked region, modification of the tracked region being enabled by a write to the alteration log; and

control logic configured to selectively provide access to the tracked region based on an indication of a comparison of an alteration log authentication code to a stored alteration log authentication code, the alteration log authentication code being generated based on contents of the alteration log.

11. The apparatus, as recited in claim 10 , wherein the control logic is further configured to disable modification of the tracked region after storing an authentication code determined based on contents of the tracked region, generate a second indication of authentication based on a comparison of the stored authentication code to a determined authentication code, determine the stored alteration log authentication code based on the alteration log associated with the tracked region in response to a successful authentication of entries of the tracked region with a stored authentication code, store the stored alteration log authentication code in a secure storage element, and enable modification of the tracked region after storing the stored alteration log authentication code.

12. The apparatus, as recited in claim 10 , further comprising:

a storage element configured to store the alteration log authentication code based on contents of the alteration log.

13. The apparatus, as recited in claim 10 , wherein the alteration log is at least one order of magnitude smaller than the tracked region of the storage module.

14. The apparatus, as recited in claim 10 , wherein the alteration log comprises a non-erasable one-time-programmable memory.

15. A method comprising:

after storing an authentication code determined based on contents of a tracked region of memory, disabling modification of the tracked region of memory;

generating an indication of authentication of contents of the tracked region of memory based on a comparison of the stored authentication code to a determined authentication code; and

in response to a successful authentication of contents of the tracked region of memory with the stored authentication code, determining an alteration log authentication code based on an alteration log associated with the tracked region of memory, modification of the tracked region of memory being enabled by a write to the alteration log; and

storing the alteration log authentication code in a secure storage element.

16. The method, as recited in claim 15 , further comprising:

after storing the alteration log authentication code, enabling modification of the tracked region of memory.

17. The method, as recited in claim 15 , further comprising:

determining a second alteration log authentication code based on the contents of the alteration log associated with the tracked region of memory; and

generating a second indication of authentication of contents of the tracked region of memory based on a comparison of the second alteration log authentication code to the stored alteration log authentication code.

18. The method, as recited in claim 15 , wherein the alteration log is at least one order of magnitude smaller than the tracked region of memory.

19. The method, as recited in claim 15 , wherein the alteration log is stored in one-time programmable memory.

20. The method, as recited in claim 15 , further comprising:

accessing contents of the tracked region of memory in response to the indication having a value indicating a successful authentication.

21. The method, as recited in claim 1 , wherein the alteration log includes one-time programmable bits storing data consistent with a predetermined format and written prior to storage of a most recent image in the tracked region of memory.

22. The method, as recited in claim 1 , wherein the contents of the alteration log are used as a proxy for the contents of the tracked region of memory for authentication of an access to the tracked region of memory.

Assignments (5)
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 050744/0097 →
CORRECTIVE ASSIGNMENT TO CORRECT THE NATURE OF CONVEYANCE PREVIOUSLY RECORDED AT REEL: 040626 FRAME: 0683. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER AND CHANGE OF NAME EFFECTIVE NOVEMBER 7, 2016. Recorded Jan 12, 2017
From: NXP SEMICONDUCTORS USA, INC. (MERGED INTO); FREESCALE SEMICONDUCTOR, INC. (UNDER)
To: NXP USA, INC.
Reel/Frame 041414/0883 →
CHANGE OF NAME Recorded Nov 16, 2016
From: FREESCALE SEMICONDUCTOR INC.
To: NXP USA, INC.
Reel/Frame 040626/0683 →
SUPPLEMENT TO THE SECURITY AGREEMENT Recorded Jun 16, 2016
From: FREESCALE SEMICONDUCTOR, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 039138/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 2, 2015
From: SOJA, RICHARD; STEPHENS, JAMES A.
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 036475/0821 →
Continuity (1)
Related Publication 20170060781A1 · Mar 2, 2017