IP Library › Granted Patent US 10,691,807
Granted Patent B2
US 10,691,807 · App. 16/377,212 · Granted Jun 23, 2020

Secure system boot monitor

Inventors: Ziv Hershman (Givat Shmuel, IL); Dan Morav (Herzliya, IL); Ilan Margalit (Tel Aviv-Jaffa, IL); Nimrod Peled (Ganei Tikva, IL); Moshe Alon (Tel-Aviv, IL)
Assignee: NUVOTON TECHNOLOGY CORPORATION
G06F21/575G06F9/4401G06F13/362G06F13/4291G06F21/44G06F21/606G06F21/85G06F13/38
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,691,807
App. No.
16/377,212
Granted
Jun 23, 2020
Kind
B2
Abstract

A security device includes an interface and a processor. The interface is configured for connecting to a bus that serves a host device and a non-volatile memory (NVM) device. The processor is connected to the bus in addition to the host device and the NVM device. The processor is configured to detect on the bus a boot process, in which the host device retrieves boot code from the NVM device, and to ascertain a security of the boot process, based on an authentic copy of at least part of the boot code of the host device.

Claims (76)

1. A security device, comprising:

an interface for connecting to a bus that serves a host device and a non-volatile memory (NVM) device; and

a processor, which is connected to the bus in addition to the host device and the NVM device and is configured to:

detect on the bus a boot process, in which the host device retrieves boot code from the NVM device;

extract at least a portion of the boot code from the bus; and

ascertain a security of the boot process, based on an authentic copy of at least part of the boot code of the host device, by initiating a responsive action upon detecting, while the boot process is in progress, a mismatch between the at least portion of the boot code retrieved from the NVM and the authentic copy, the responsive action comprising disrupting the boot process by disrupting one or more lines of the bus between the host device and the NVM device.

2. The security device according to claim 1 , wherein the authentic copy comprises an image of the at least part of the boot code, and wherein the processor is configured to detect the mismatch by comparing the image to the at least portion of the boot code retrieved from the NVM.

3. The security device according to claim 1 , wherein the authentic copy comprises an authentic digest of the at least part of the boot code, and wherein the processor is configured to detect the mismatch by calculating a digest of the at least portion of the boot code retrieved from the NVM, and comparing the digest of the at least portion of the boot code retrieved from the NVM to the digest of the authentic digest.

4. The security device according to claim 1 , wherein, in response to detecting the mismatch, the processor is configured to respond to the host device over the bus in place of the NVM, and complete the boot process using the authentic copy.

5. The security device according to claim 1 , wherein the processor is configured to detect the mismatch independently of progress of the boot process.

6. The security device according to claim 1 , wherein the processor is configured to hold the authentic copy in an internal memory of the security device, or in a memory external to the security device.

7. The security device according to claim 1 , wherein the processor is configured to prevent the host device from accessing given secret information until the security of the boot process is ascertained.

8. The security device according to claim 1 , wherein the processor is further configured to ascertain the security of the boot process by ensuring that only bus commands appearing on a predefined whitelist are applied to the NVM device.

9. The security device according to claim 1 , wherein the processor is further configured to ascertain the security of the boot process by ensuring that an analog parameter value of at least one line of the bus is within a predefined range.

10. A security device, comprising:

an interface for connecting to a bus that serves a host device and a non-volatile memory (NVM) device; and

a processor, which is connected to the bus in addition to the host device and the NVM device and is configured to:

detect on the bus a boot process, in which the host device retrieves boot code from the NVM device;

extract at least a portion of the boot code from the bus; and

ascertain a security of the boot process, based on an authentic copy of at least part of the boot code of the host device, by initiating a responsive action upon detecting, while the boot process is in progress, a mismatch between the at least portion of the boot code retrieved from the NVM and the authentic copy, the responsive action comprising disrupting the boot process by forcing one or more dummy values on at least one line of the bus.

11. A security device, comprising:

an interface for connecting to a bus that serves a host device and a non-volatile memory (NVM) device; and

a processor, which is connected to the bus in addition to the host device and the NVM device and is configured to:

detect on the bus a boot process, in which the host device retrieves boot code from the NVM device; and

ascertain a security of the boot process, based on an authentic copy of at least part of the boot code of the host device, by:

responding to the host device instead of the NVM, and serving to the host device a boot code that causes an activity of the host device on the bus to differ between first and second instances of the boot process; and

monitoring the activity of the host device on the bus, and verifying that the activity matches the boot code that was served to the host device.

12. A security device, comprising:

an interface for connecting to a bus that serves a host device and a non-volatile memory (NVM) device; and

a processor, which is connected to the bus in addition to the host device and the NVM device and is configured to:

detect on the bus a boot process, in which the host device retrieves boot code from the NVM device; and

ascertain a security of the boot process, based on an authentic copy of at least part of the boot code of the host device, and by ensuring that logical states of all data and clock lines of the bus do not change while a Chip-Select (CS) line of the bus is not asserted.

13. A security device, comprising:

an interface for connecting to a bus that serves a host device and a non-volatile memory (NVM) device; and

a processor, which is connected to the bus in addition to the host device and the NVM device and is configured to:

detect on the bus a boot process, in which the host device retrieves boot code from the NVM device; and

ascertain a security of the boot process, based on an authentic copy of at least part of the boot code of the host device, and by ensuring that a time delay, from a given reset or power signal to a given event in the boot process, is within a predefined range.

14. A security device, comprising:

an interface for connecting to a bus that serves a host device and a non-volatile memory (NVM) device; and

a processor, which is connected to the bus in addition to the host device and the NVM device and is configured to:

detect on the bus a boot process, in which the host device retrieves boot code from the NVM device; and

ascertain a security of the boot process, based on an authentic copy of at least part of the boot code of the host device,

wherein the boot code instructs the host device to output one or more host-parameter values on the bus, and wherein the processor is configured to ascertain the security of the boot process by monitoring and verifying the host-parameter values that are output on the bus.

15. A method, comprising:

communicating over a bus using a security device, which is connected to the bus in addition to a host device and a non-volatile memory (NVM) device; and

using the security device, detecting on the bus a boot process, in which the host device retrieves boot code from the NVM device, and ascertaining a security of the boot process based on an authentic copy of at least part of the boot code of the host device,

wherein ascertaining the security comprises extracting at least a portion of the boot code from the bus, and initiating a responsive action upon detecting, while the boot process is in progress, a mismatch between the at least portion of the boot code retrieved from the NVM and the authentic copy, and

wherein initiating the responsive action comprises disrupting the boot process by disrupting one or more lines of the bus between the host device and the NVM device.

16. The method according to claim 15 , wherein the authentic copy comprises an image of the at least part of the boot code, and wherein detecting the mismatch comprises comparing the image to the at least portion of the boot code retrieved from the NVM.

17. The method according to claim 15 , wherein the authentic copy comprises an authentic digest of the at least part of the boot code, and wherein detecting the mismatch comprises calculating a digest of the at least portion of the boot code retrieved from the NVM, and comparing the digest of the at least portion of the boot code retrieved from the NVM to the digest of the authentic digest.

18. The method according to claim 15 , wherein ascertaining the security of the boot process comprises, in response to detecting the mismatch, responding to the host device over the bus in place of the NVM, and completing the boot process using the authentic copy.

19. The method according to claim 15 , wherein detecting the mismatch is performed independently of progress of the boot process.

20. The method according to claim 15 , and comprising holding the authentic copy in an internal memory of the security device, or in a memory external to the security device.

21. The method according to claim 15 , and comprising preventing the host device from accessing given secret information until the security of the boot process is ascertained.

22. The method according to claim 15 , wherein ascertaining the security of the boot process further comprises ensuring that only bus commands appearing on a predefined whitelist are applied to the NVM device.

23. The method according to claim 15 , wherein ascertaining the security of the boot process further comprises ensuring that an analog parameter value of at least one line of the bus is within a predefined range.

24. A method, comprising:

communicating over a bus using a security device, which is connected to the bus in addition to a host device and a non-volatile memory (NVM) device; and

using the security device, detecting on the bus a boot process, in which the host device retrieves boot code from the NVM device, and ascertaining a security of the boot process based on an authentic copy of at least part of the boot code of the host device,

wherein ascertaining the security comprises extracting at least a portion of the boot code from the bus, and initiating a responsive action upon detecting, while the boot process is in progress, a mismatch between the at least portion of the boot code retrieved from the NVM and the authentic copy, and

wherein initiating the responsive action comprises disrupting the boot process by forcing one or more dummy values on at least one line of the bus.

25. A method, comprising:

communicating over a bus using a security device, which is connected to the bus in addition to a host device and a non-volatile memory (NVM) device; and

using the security device, detecting on the bus a boot process, in which the host device retrieves boot code from the NVM device, and ascertaining a security of the boot process based on an authentic copy of at least part of the boot code of the host device, by:

responding to the host device instead of the NVM, and serving to the host device a boot code that causes an activity of the host device on the bus to differ between first and second instances of the boot process; and

monitoring the activity of the host device on the bus, and verifying that the activity matches the boot code that was served to the host device.

26. A method, comprising:

communicating over a bus using a security device, which is connected to the bus in addition to a host device and a non-volatile memory (NVM) device; and

using the security device, detecting on the bus a boot process, in which the host device retrieves boot code from the NVM device, and ascertaining a security of the boot process based on an authentic copy of at least part of the boot code of the host device, and by ensuring that logical states of all data and clock lines of the bus do not change while a Chip-Select (CS) line of the bus is not asserted.

27. A method, comprising:

communicating over a bus using a security device, which is connected to the bus in addition to a host device and a non-volatile memory (NVM) device; and

using the security device, detecting on the bus a boot process, in which the host device retrieves boot code from the NVM device, and ascertaining a security of the boot process based on an authentic copy of at least part of the boot code of the host device, and by ensuring that a time delay, from a given reset or power signal to a given event in the boot process, is within a predefined range.

28. A method, comprising:

communicating over a bus using a security device, which is connected to the bus in addition to a host device and a non-volatile memory (NVM) device; and

using the security device, detecting on the bus a boot process, in which the host device retrieves boot code from the NVM device, and ascertaining a security of the boot process based on an authentic copy of at least part of the boot code of the host device,

wherein the boot code instructs the host device to output one or more host-parameter values on the bus, and wherein ascertaining the security of the boot process comprises monitoring and verifying the host-parameter values that are output on the bus.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 8, 2019
From: HERSHMAN, ZIV; MORAV, DAN; MARGALIT, ILAN; PELED, NIMROD; ALON, MOSHE
To: NUVOTON TECHNOLOGY CORPORATION
Reel/Frame 049524/0400 →
Continuity (4)
Continuation In Part 15955715 · Apr 18, 2018
Continuation In Part 15075219 · Mar 21, 2016
Provisional Application 62172298 · Jun 8, 2015
Related Publication 20190236281A1 · Aug 1, 2019
Cited By (1)
US 12,306,954