FIRMWARE SECURITY INTERFACE FOR FIELD PROGRAMMABLE GATE ARRAYS
First Claim
1. A system for securing a field-programmable gate array, the system comprising:
- a first machine-readable memory storing a first operating system that implements a secure environment for a field-programmable gate array (FPGA);
a second machine-readable memory storing a second operating system that implements a non-secure environment for the FPGA;
at least one hardware processor of the FPGA communicatively coupled to the first machine-readable memory and the second machine-readable memory, the at least one hardware processor configurable to;
transition to the secure environment by executing the first operating system;
reset a watchdog timer communicatively coupled to the at least one hardware processor by loading a register associated with the watchdog timer with a predetermined value; and
transition to the non-secure environment by executing the second operating system; and
programmable logic of the FPGA communicatively coupled to the at least one hardware processor, the programmable logic configurable to;
instruct the at least one hardware processor to transition to the secure environment;
retrieve an event value from a status register associated with the watchdog timer; and
determine whether the first operating system was executed by the at least one hardware processor by comparing the retrieved event value with a second predetermined value.
1 Assignment
0 Petitions
Accused Products
Abstract
This disclosure provides for implementing a firmware security interface within a field-programmable gate array (FPGA) for communicating between secure and non-secure environments executable within the FPGA. A security monitor is implemented within the programmable logic of the FPGA as a soft core processor and the firmware security interface modifies one or more functions of the security monitor. The modifications to the security monitor include establishing a timer “heartbeat” within the FPGA to ensure that the FPGA invokes a secure environment and raising an alarm should the FPGA fail to invoke such environment.
-
Citations
20 Claims
-
1. A system for securing a field-programmable gate array, the system comprising:
-
a first machine-readable memory storing a first operating system that implements a secure environment for a field-programmable gate array (FPGA); a second machine-readable memory storing a second operating system that implements a non-secure environment for the FPGA; at least one hardware processor of the FPGA communicatively coupled to the first machine-readable memory and the second machine-readable memory, the at least one hardware processor configurable to; transition to the secure environment by executing the first operating system; reset a watchdog timer communicatively coupled to the at least one hardware processor by loading a register associated with the watchdog timer with a predetermined value; and transition to the non-secure environment by executing the second operating system; and programmable logic of the FPGA communicatively coupled to the at least one hardware processor, the programmable logic configurable to; instruct the at least one hardware processor to transition to the secure environment; retrieve an event value from a status register associated with the watchdog timer; and determine whether the first operating system was executed by the at least one hardware processor by comparing the retrieved event value with a second predetermined value. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method for securing a field-programmable gate array, the method comprising:
-
instructing, by a programmable logic of a field-programmable gate array (FPGA), at least one hardware processor of the FPGA to transition to a secure environment, the secure environment implemented by a first operating system executable by the at least one hardware processor; instructing, by the programmable logic, the at least one hardware processor to reset a watchdog timer communicatively coupled to the at least one hardware processor with a predetermined value; instructing, by the programmable logic, the at least one hardware processor to transition to a non-secure environment, the non-secure environment implemented by a second operating system executable by the at least one hardware processor; retrieving, by the programmable logic, an event value from a status register associated with the watchdog timer; and determining, by the programmable logic, whether the first operating system was executed by comparing the retrieved event value with a second predetermined value. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
Specification