Methods and apparatus for batch bound authentication
First Claim
1. A method for verifying data and hardware in a processing system, the method comprising:
- in a processing system having a system firmware that includes pre-boot authentication logic, reading a processor identifier from a processor in the processing system;
determining in a processing unit of the processor according to a function, whether the processor belongs to a batch of processors associated with a specific vendor of processing systems, based at least in part on the processor identifier and a batch identifier having a pair of numbers to uniquely identify the batch of processors;
automatically determining in the processing unit whether the system firmware is authentic, based at least in part on a digitally signed message, including computing a hash of the system firmware, computing a batch bound signature using the hash, a batch bound key, and the batch identifier, and comparing the computed batch bound signature to a batch bound signature stored in the system firmware;
determining whether or not to execute the system firmware, based at least in part on the determinations of whether the processor belongs to the batch of processors and whether the system firmware is authentic; and
automatically allowing the processing system to boot in response to determinations that the processor belongs to the batch of processors and the system firmware is authentic, and automatically terminating a boot process in response to a determination that processor does not belong to the batch of processors or the system firmware is not authentic.
1 Assignment
0 Petitions
Accused Products
Abstract
A processing system may include a processing unit and nonvolatile storage responsive to the processing unit. The nonvolatile storage may include a candidate boot code module and an authentication code module. The processing unit may be configured to execute code from the authentication code module before executing code from the candidate boot code module. The authentication code module may have instructions which, when executed by the processing unit, cause the processing unit to read a processor identifier from the processing unit and determine whether the processor belongs to a predetermined set of processors associated with a specific vendor, based at least in part on the identifier, before executing any instructions from the candidate boot code module. The processing system may also test authenticity of the candidate boot code module before executing any instructions from the candidate boot code module. Other embodiments are described and claimed.
-
Citations
14 Claims
-
1. A method for verifying data and hardware in a processing system, the method comprising:
-
in a processing system having a system firmware that includes pre-boot authentication logic, reading a processor identifier from a processor in the processing system; determining in a processing unit of the processor according to a function, whether the processor belongs to a batch of processors associated with a specific vendor of processing systems, based at least in part on the processor identifier and a batch identifier having a pair of numbers to uniquely identify the batch of processors; automatically determining in the processing unit whether the system firmware is authentic, based at least in part on a digitally signed message, including computing a hash of the system firmware, computing a batch bound signature using the hash, a batch bound key, and the batch identifier, and comparing the computed batch bound signature to a batch bound signature stored in the system firmware; determining whether or not to execute the system firmware, based at least in part on the determinations of whether the processor belongs to the batch of processors and whether the system firmware is authentic; and automatically allowing the processing system to boot in response to determinations that the processor belongs to the batch of processors and the system firmware is authentic, and automatically terminating a boot process in response to a determination that processor does not belong to the batch of processors or the system firmware is not authentic. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A processing system comprising:
-
a processor comprising a central processing unit including a plurality of processing units and having a processor identifier; a candidate boot code module stored in at least one nonvolatile storage component; and an authentication code module stored in the at least one nonvolatile storage component; the processor configured to execute code from the authentication code module before executing code from the candidate boot code module; and wherein the authentication code module comprises instructions which, when executed by the processor, cause the processing system to perform operations comprising; reading the processor identifier from the processor; determining whether the processor belongs to a batch of processors associated with a specific vendor of processing systems, based at least in part on the processor identifier and a batch identifier having a pair of numbers to uniquely identify the batch of processors, before executing any instructions from the candidate boot code module; testing authenticity of the candidate boot code module before executing any instructions from the candidate boot code module, including computing a hash of the candidate boot code module, computing a batch bound signature using the hash, a batch bound key, and the batch identifier, and comparing the computed batch bound signature to a batch bound signature stored in the at least one nonvolatile storage component; and automatically allowing the processing system to boot in response to determinations that the processor belongs to the batch of processors and the candidate boot code module is authentic, and automatically terminating a boot process in response to a determination that processor does not belong to the batch of processors or the candidate boot code module is not authentic. - View Dependent Claims (8, 9, 10)
-
-
11. An apparatus comprising:
-
a non-transitory machine-accessible storage medium; and an authentication code module in the machine-accessible storage medium, wherein the authentication code module comprises instructions which, when executed by a processor of a processing system, cause the processing system to perform operations comprising; reading a processor identifier from the processor; determining in a processing unit of the processor according to a function, whether the processor belongs to a batch of processors associated with a particular vendor of processing systems, based at least in part on the processor identifier and a batch identifier having a pair of numbers to uniquely identify the batch of processors; and testing authenticity of a candidate boot code module before executing any instructions from the candidate boot code module, including computing a hash of the candidate boot code module, computing a batch bound signature using the hash, a batch bound key, and the batch identifier, and comparing the computed batch bound signature to a batch bound signature stored in the authentication code module; and automatically allowing the apparatus to boot in response to the processor belonging to the batch of processors and the candidate boot code module being authentic, and automatically terminating a boot process in response to the processor not belonging to the batch of processors or the candidate boot code module not being authentic. - View Dependent Claims (12, 13, 14)
-
Specification