Nova Patents
EP1369764A2

Use of hashing in a secure boot loader

Abstract

Machine instructions comprising a bootstrap code are buried within a critical component of an electronic game console where they cannot readily be accessed or modified. A preloader portion in a read only memory (ROM) is hashed by the bootstrap code and the result is compared to an expected hash value maintained in the bootstrap code. Further verification of the boot-up process is carried out by the preloader, which hashes the code in ROM to obtain a hash value for the code. The result is verified against a digital signature value that defines an expected value for this hash. Failure to obtain any expected result terminates the boot-up process. Since the bootstrap code confirms the preloader, and the preloader confirms the remainder of the code in ROM, this technique is useful for ensuring that the code used for booting up the device has not been modified or replaced.

EP1369764A2, drawing sheet 1
Sheet 1 of 4

Term

Term ended

Projected expiry passed 2 June 2023, 3.3 years ago.

  1. Priority
  2. Filed
  3. Published
  4. Projected expiry
  5. Today

29 claims: 3 independent, 26 dependent

  1. 1
    A method for determining whether code provided for execution during a boot-up of an electronic device is authorized, said method comprising the steps of (a) hashing a predefined portion of the code to produce a first hash value;(b) comparing the first hash value to a stored hash value that is maintained in a circuit component of the electronic device, separate from a memory where the code is stored, to verify that the predefined portion of the code is authorized;(c) if the first hash value equals the stored hash value, enabling execution of the predefined portion of the code, and if not, terminating the boot-up of the electronic device;(d) wherein executing said predefined portion of the code that is authorized carries out the steps of:(i) hashing substantially all of the code to determine a second hash value;and(ii) verifying whether a digital signature that is included in the code matches the second hash value, and if so, enabling execution of the code, and if not, terminating the boot-up of the electronic device.
  2. 10
    A memory medium on which is stored code comprising machine instructions that are accessed during a boot-up of an electronic device, said machine instructions being in part useful to determine whether the code is authorized, said memory medium including:(a) a kernel portion in which a substantial majority of the machine instructions comprising the code is stored;(b) a boot loader portion adapted to load machine instructions included in the kernel portion, for execution by the electronic device;(c) a preloader portion having a predefined number of bytes and a predefined content, said preloader portion being disposed at a predetermined location on the memory medium;and(d) a digital signature portion, said digital signature portion providing a confirming hash value for comparison to a hash value obtained by hashing the code, for use in determining whether the code is authorized.
  3. 18
    An electronic device that must be booted-up to operate, comprising:(a) a non-volatile memory in which a plurality of machine instructions are stored, said non-volatile memory including a main portion, and a preloader portion that is predefined in regard to a content, a size, and a location;(b) a processor that is coupled to the non-volatile memory to execute the machine instructions;and(c) a bootstrap code firmware element that specifies machine instructions defining a hashing algorithm and an expected hash value, the machine instructions of said bootstrap code firmware being executed by the processor initially during a boot-up of the electronic device, causing the processor to: (i) hash the preloader portion of the non-volatile memory to determine a preloader hash value;(ii) compare the expected hash value to the preloader hash value;and(iii) terminate the boot-up of the electronic device if the preloader hash value does not equal the expected hash value.