WO2020159533A1 - Security credential derivation - Google Patents

Security credential derivation Download PDF

Info

Publication number
WO2020159533A1
WO2020159533A1 PCT/US2019/016261 US2019016261W WO2020159533A1 WO 2020159533 A1 WO2020159533 A1 WO 2020159533A1 US 2019016261 W US2019016261 W US 2019016261W WO 2020159533 A1 WO2020159533 A1 WO 2020159533A1
Authority
WO
WIPO (PCT)
Prior art keywords
security credential
information
controller
processor
code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/US2019/016261
Other languages
French (fr)
Inventor
Rosilet Retnamoni BRADUKE
Baraneedharan Anbazhagan
Christopher H. Stewart
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Priority to PCT/US2019/016261 priority Critical patent/WO2020159533A1/en
Priority to US17/052,367 priority patent/US11418335B2/en
Publication of WO2020159533A1 publication Critical patent/WO2020159533A1/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/34User authentication involving the use of external additional devices, e.g. dongles or smart cards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC

Definitions

  • the OTP information 122 (or a portion of the OTP information 122) is not communicated to the program code, so that the OTP information (portion) 122 is not exposed to the program code executable by the processor 104.
  • a volatile memory can include a dynamic random access memory (DRAM), a static random access memory (SRAM), or any other type of memory that loses its content if power is removed from the memory.
  • DRAM dynamic random access memory
  • SRAM static random access memory
  • the BIOS code can read, update, or delete the content of the SMRAM— however, no other entity is able to access the SMRAM. As a result, storage of the derived security credential 118 in the SMRAM is deemed relatively secure.
  • the trusted interface 132 can be re-opened by a power on/off cycle of the electronic device 100, and the foregoing process can be re-iterated.
  • the embedded controller 102 sends (at 208) the derived security credential 118 over the secure channel 130 to the boot code 110.
  • the boot code 110 protects (at 210) data using the derived security credential 118, and the protected data is stored as the protected data 116 in the shared memory 108.
  • Fig. 5 is a flow diagram of a process according to some examples.
  • the process includes accessing (at 502), by an embedded controller of an electronic device, one-time programmable information.
  • Such computer-readable or machine-readable storage medium or media is (are) considered to be part of an article (or article of manufacture).
  • An article or article of manufacture can refer to any manufactured single component or multiple components.
  • the storage medium or media can be located either in the machine running the machine-readable instructions, or located at a remote site from which machine-readable instructions can be downloaded over a network for execution.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)

Abstract

In some examples, a device includes a memory, a processor, and a controller separate from the processor to derive a security credential based on information comprising a key accessible by the controller. The controller communicates the derived security credential in a secure manner to a program code executable on the processor, and uses the derived security credential to protect data stored in the memory against unauthorized access.

Description

SECURITY CREDENTIAL DERIVATION
Background
[0001 ] Electronic devices can include various components for performing different tasks. For example, the components can include a processor, a memory, an embedded controller, an input/output (I/O) device, and other components.
Various code (in the form of machine-readable instructions including firmware and/or software) are executable on the embedded controller, the processor, and other components.
Brief Description of the Drawings
[0002] Some implementations of the present disclosure are described with respect to the following figures.
[0003] Fig. 1 is a block diagram of an electronic device according to some examples.
[0004] Fig. 2 is a flow diagram of a process according to some examples.
[0005] Fig. 3 is a block diagram of a device according to some examples.
[0006] Fig. 4 is a block diagram of a storage medium storing machine-readable instructions according to some examples.
[0007] Fig. 5 is a flow diagram of a process according to further examples.
[0008] Throughout the drawings, identical reference numbers designate similar, but not necessarily identical, elements. The figures are not necessarily to scale, and the size of some parts may be exaggerated to more clearly illustrate the example shown. Moreover, the drawings provide examples and/or implementations consistent with the description; however, the description is not limited to the examples and/or implementations provided in the drawings. Detailed Description
[0009] In the present disclosure, use of the term“a,”“an”, or“the” is intended to include the plural forms as well, unless the context clearly indicates otherwise. Also, the term“includes,”“including,”“comprises,”“comprising,”“have,” or“having” when used in this disclosure specifies the presence of the stated elements, but do not preclude the presence or addition of other elements.
[0010] An electronic device is vulnerable to an attack by an unauthorized entity, such as malware loaded into the electronic device, or a user that attempts to gain unauthorized access of the electronic device. Examples of electronic devices include any or some combination of the following: computers (e.g., desktop computers, notebook computers, tablet computers, server computers, etc.), handheld devices (e.g., smartphones, game appliances, etc.), wearable devices (e.g., smart watches, head-mounted devices, smart eyeglasses, etc.), Internet-of- Things (loT) devices, controllers in vehicles, storage systems, communication nodes, and so forth.
[0011 ] An electronic device can include a memory that is used to store data. In some examples, the memory may be in the form of a nonvolatile memory, which is a memory that retains stored data even if power is removed from the memory. In other examples, a memory can include volatile memory, which is a memory that loses its stored data if power is removed from the memory.
[0012] An unauthorized entity may attempt to access certain information stored in a memory. The unauthorized entity can be in the form of malware executing in an electronic device. Alternatively, the unauthorized entity can be a user who may attempt to gain access to information stored in a memory.
[0013] To protect against unauthorized access of data stored in a memory, the data may be protected such that access of the data is possible if a requester of the data presents a security credential, such as a password, an encryption key, or another type of credential. [0014] As an example, a boot code may store, in the memory, data associated with establishing a wireless connection with a wireless network (e.g., a wireless local area network or WLAN, a cellular network, etc.). The data for establishing the wireless connection with the wireless network may include a password or private key that is used to gain access to the wireless network. The boot code may be
configured to automatically establish the wireless connection with the wireless network, such as during a pre-boot phase of the electronic device. The pre-boot phase can refer to a phase prior to starting of an operating system of the electronic device. It may be inconvenient to seek user input of the password or private key each time the boot code attempts to establish a wireless connection. Thus, the password or private key may be stored in the memory for use by the boot code in automatically performing pre-boot establishment of the wireless connection.
[0015] Although an example is described in the context of pre-boot establishment of a wireless connection with a wireless network, it is noted that the data stored in the memory can also be used to perform a wireless connection with the wireless network after the electronic device has completed booting.
[0016] Also, in other examples, other types of data (used for other purposes) stored in a memory may be subject to unauthorized access.
[0017] An unauthorized entity may attempt to gain access of the password or other private data stored in the memory that the unauthorized entity can then use to gain access of the wireless network, or for another purpose.
[0018] To protect against unauthorized access of the data stored in the memory, the data may be encrypted using an encryption key. Some example techniques of generating encryption keys may be associated with various issues. For example, a key derivation technique that prompts a user to enter a password or other
information for deriving an encryption key may reduce user convenience since the user has to remember the information to be entered to generate the encryption key.
In other examples, an electronic device may have to implement a specialized cryptographic subsystem to generate the encryption key, which may be associated with increased complexity and cost of the electronic device.
[0019] In accordance with some implementations of the present disclosure, as shown in Fig. 1 , an electronic device 100 includes an embedded controller 102 to generate a security credential 118 that can be used to protect data stored in a memory against unauthorized access. The electronic device 100 further includes a processor 104 that is separate from the embedded controller 102.
[0020] In some examples, the embedded controller 102 can be used to perform specific tasks. The tasks of the embedded controller 102 can be performed by embedded controller (EC) code 106, in the form of machine-readable instructions such as EC firmware or EC software, executed on the embedded controller 102. In other examples, the tasks of the embedded controller 102 can be performed by a hardware processing circuit of the embedded controller 102. Examples of tasks that can be performed by the embedded controller 102 include any one or some combination of the following: power supply control in the electronic device 100 (for controlling a power supply that supplies power supply voltages to various
components in the electronic device 100), charging and control of a battery in the electronic device 100, thermal monitoring (to monitor a temperature in the electronic device 100), fan control (to control a fan in the electronic device 100), and interaction with a user input device (such as performing a scan of a keyboard of the electronic device 100 or interaction with a pointing device such as a mouse, touchpad, touchscreen, and so forth). In other examples, the embedded controller 102 can perform additional or alternative tasks. The embedded controller 102 can be implemented with a microcontroller, an application-specific integrated circuit (ASIC), a programmable gate array (PGA), or any other type of programmable circuit.
[0021 ] The security credential 118 generated by the embedded controller 102 can be in the form of an encryption key, a password, or any other information that can be used to encrypt data or otherwise protect data against unauthorized access. For example, a requester is unable to access encrypted information unless the requester presents an encryption key that can be used to decrypt the encrypted information. In other examples, an access mechanism prevents access of the information unless a security credential (e.g., a password, a security code, etc.) is presented that matches a specified security credential.
[0022] The embedded controller 102 has access to specified information that is inaccessible to the processor 104 or any other entity in the electronic device 100.
The specified information can include a key or any other type of information that the embedded controller 102 is able to access. Another component (such as the processor 104) is unable to access the specified information. The embedded controller 102 is able to generate the security credential 118 based on the specified information that no other entity in the electronic device 100 can access. The derived credential 118 can be shared with a program code (including machine-readable instructions) executable on the processor 104, so that the embedded controller 102 does not have to share the specified information (such as the key in the specified information) with another entity.
[0023] In some examples, the specified information can be hardcoded into the embedded controller 102. For example, the specified information can be hardcoded by fusing the specified information into the embedded controller 102. Fusing refers to programming fuses of the embedded controller 102 to provide a collection of values that make up the specified information. In further examples, the embedded controller 102 can include an internal nonvolatile storage to store the specified information. As yet further examples, the specified information can be stored in an external nonvolatile storage that is external to and accessible by the embedded controller 102. The internal or external nonvolatile storage is electrically isolated way from any other entities (other than the embedded controller 102), and thus
inaccessible, to the other entities of the electronic device. The internal or external nonvolatile storage in such examples may include a one-time programmable (OTP) storage, which is a storage that can be programmed once with data values. Once the OTP storage is programmed, the data values stored in the OTP storage cannot be changed. [0024] In the foregoing examples in which the specified information is fused into the embedded controller 102 or stored in an (internal or external) OTP storage, the specified information can be referred to as OTP information 122. Such OTP information 122 can also be referred to as“hardware information.” Although reference is made to“OTP information” in the present discussion, in other examples, other specified information stored in re-writable storage can be used for deriving an encryption key or other security credential.
[0025] Fig. 1 shows that the OTP information 122 can be part of the embedded controller 102 (either fused or stored in an internal OTP storage), or alternatively, can be stored in an external OTP storage 124. The OTP information 122 can be programmed in the embedded controller 102 or in the external OTP storage 124 at build time of the electronic device 100 at a factory or as part of the configuration of the electronic device 100 prior to delivery to an end user.
[0026] In some examples, the OTP information 122 includes a key 126. This key that is part of the OTP information 122 may be referred to as a“hardware key” that the embedded controller 102 can use to encrypt information.
[0027] As discussed further below, a security credential generation logic 120 of the embedded controller 102 can use the OTP information 122 to derive the security credential 118. The security credential generation logic 120 can be implemented using a portion of the hardware processing circuit of the embedded controller 102, or alternatively, can be implemented as machine-readable instructions (e.g., part of the EC code 106) executable by the embedded controller 102.
[0028] The security credential 118 being derived based on the OTP information 122 can refer to the security credential 118 being derived based on the entirety of the OTP information 122 or a portion of the OTP information 122, and possibly based on additional information (discussed further below).
[0029] The embedded controller 102 can transmit the derived security credential 118 in a secure manner to a program code executable by the processor 104. A discussion of how information can be communicated in a“secure manner” is provided further below. Note that the derived security credential 118 that is transferred to the program code in the secure manner is inaccessible by any other entity of the electronic device 100 outside the context of the secure transfer. Further, no other entity (aside from the embedded controller 102) can derive the derived security credential 118 because no other entity can access the OTP information 122.
[0030] Note that the OTP information 122 (or a portion of the OTP information 122) is not communicated to the program code, so that the OTP information (portion) 122 is not exposed to the program code executable by the processor 104.
Consequently, even if the electronic device 100 is subject to an attack by an entity that has access to the processor 104 (e.g., malware executable on the processor 104), the OTP information 122 is protected against unauthorized access. The derived security credential 118 can be considered to be equivalent in cryptographic integrity with the OTP information 122. However, the derived security credential 118 is not identical to the OTP information 122 (or to a key in the OTP information 122).
[0031 ] The program code executable on the processor 104 can encrypt data stored in a memory (e.g., shared memory 108) using the derived security credential 118. Such encrypted data is represented as protected data 116 in Fig. 1. “Protected data” refers to any data that is to be protected against unauthorized access by a malicious entity, such as malware, an unauthorized user, and so forth. In other examples, the security credential 118 can protect the data (protected data 116) in the shared memory 108 in a different manner— for example, an access mechanism (e.g., a memory controller, a file system, etc.) that manages access of the data stored in the shared memory 108 may prompt for the security credential 118 before allowing access of the data.
[0032] In examples according to Fig. 1 , the EC code 106 executable by the embedded controller 102 is stored in the shared memory 108. The shared memory 108 can include a nonvolatile memory, such as a flash memory or other type of nonvolatile memory. The shared memory 108 is accessible by various components of the electronic device 100, including the embedded controller 102, the processor 104, and other components. The shared memory 108 can also store a boot code 110, which is used for booting the electronic device 100 or to resume the electronic device 100 from a low power state. The boot code 110 can be in the form of a Basic Input/Output System (BIOS) code.
[0033] The BIOS code can perform checking of hardware components to ensure that the hardware components are present and functioning properly. This can be part of a power-on self-test (POST) procedure, for example. After the POST procedure, the BIOS code can progress through the remainder of a booting sequence, after which the BIOS code can load and pass control to an operating system (OS) 112. BIOS code can also refer to Unified Extensible Firmware Interface (UEFI) code. In some examples, the BIOS code can also include a runtime portion that is executed after the OS 112 loads.
[0034] Although Fig. 1 shows the entirety of the boot code 110 stored in the shared memory 108, it is noted that in other examples, a first portion of the boot code 110 is stored in the shared memory 108, while another portion of the boot code 110 is stored in a separate storage, such as a storage 114. The storage 114 can include a persistent storage, such as a persistent storage implemented using a disk- based storage, a solid state storage, and so forth. The OS 112 is also stored in the storage 114. In other examples, if the shared memory 108 has sufficient capacity, the OS 112, or a portion of the OS 112, can also be stored in the shared memory 108.
[0035] In the example of Fig. 1 , the protected data 116, the boot code 110 (or a portion of the boot code 110), and the EC code 106 are stored in the shared memory 108. In other examples, the foregoing pieces of data or program code can be stored in different memories or storage. Note that the boot code 110 and the EC code 106 (or portions of the boot code 110 and EC code 106) can be considered to be part of the protected data 116 in some examples.
[0036] Further examples of the protected data 116 can include any or some combination of the following: data useable to establish a wireless connection with a wireless network (e.g., a password or other private data such as a private key that is used as part of the process of establishing the wireless connection), other
passwords and/or keys, configuration information for the electronic device 100 or components of the electronic device 100, program code, or any other information deemed to be sensitive such that it is to be protected against unauthorized access.
[0037] To generate the security credential 118, the OTP information (portion) 122 is input as a seed to a security credential derivation function 123 executed by the security credential generation logic 120. As an example, the security credential generation function 123 executed by the security credential generation logic 120 is a key derivation function, such as a Password-Based Key Derivation Function 2 (PBKDF2). The key derivation function can apply a pseudorandom function, such as a hash-based message authentication code (FIMAC), to an input seed (which in this case includes the OTP information 122 or a portion of the OTP information 122) to generate a derived encryption key. The derived encryption key is an example of the security credential 118.
[0038] In some examples, the portion of the OTP information 122 used by the key derivation function can include the hardware key 126 that is part of the OTP information 122. Another input to the key derivation function can include a salt value, which can include a random number produced by a random number generator (RNG) 128, which can be part of (or be coupled to) the security credential generation logic 120. Thus, the OTP information (portion) 122 and the random number produced by the RNG 120 are input to the key derivation function, which produces a derived encryption key.
[0039] In other examples, another type of the security credential derivation function 123 can be used by the security credential generation logic 120 to produce the security credential 118.
[0040] The security credential 118 can be communicated in a secure manner over a secure channel 130 to a program code executed by the processor 104. For example, the program code executed by the processor 104 can include the boot code 110. Communicating the security credential 118 in the secure channel 130 protects the security credential 118 against unauthorized access by an entity that executes in the electronic device 100 or that has access to the electronic device 100. The protection against the unauthorized access in the secure channel 130 can be based on use of a protection code and/or use of a trusted interface between the embedded controller 102 and the processor 104.
[0041 ] In some examples, the protection code to protect the security credential 118 communicated in the secure channel 130 includes a value that can be used to verify the integrity of the security credential 118. For example, the protection code can be in the form of an HMAC, which can be used to verify the integrity of the security credential 118, as well as the authenticity of information (e.g., a message) that includes the security credential 118. Note that the HMAC is not used to encrypt the information including the security credential 118, but rather, an HMAC value is transferred with the information including the security credential 118, and the HMAC value (e.g., an HMAC hash value) can be used to verify the integrity and the authenticity of the information including the security credential 118.
[0042] In further examples, as an alternative to or in addition to using a protection code such as an HMAC to protect communication of the security credential 118 over the secure channel 130, a trusted interface 132, such as in the form of a trusted application programming interface (API), can be used as part of the secure channel 130. The trusted interface 132 can have an open state or a closed state. In the open state, the trusted interface 132 allows for information to be passed between the embedded controller 102 and a program code (e.g., the boot code 110) executing on the processor 104. In the closed state, the trusted interface 132 does not allow for communication of information between the embedded controller 102 and the program code executing on the processor 104.
[0043] Whether the trusted interface 132 is open or closed is based on a flag 134 stored in a volatile memory 136 connected to the embedded controller 102. A volatile memory can include a dynamic random access memory (DRAM), a static random access memory (SRAM), or any other type of memory that loses its content if power is removed from the memory.
[0044] The flag 134 can include a bit or multiple bits stored in the volatile memory 136. If the flag 134 is set to a first value, then the trusted interface 132 is in the open state. However, if the flag 134 is set to a different second value, then the trusted interface 132 is in the closed state. In some examples, when the electronic device 100 initially starts, the flag 134 can default to the first value that corresponds to the trusted interface 132 being in the open state. During the time that the flag 134 is set to the first value, the trusted interface 132 can be used to perform communication between the embedded controller 102 and a program code (e.g., the boot code 110) executing on the processor 104.
[0045] During the time that the flag 134 is set to the first value and the trusted interface 132 is in the open state, the program code that executes on the processor 104 is deemed to be secure. For example, during this time, the part of the boot code 110 that executes on the processor 104 is from a secure portion of the shared memory 108 or is subject to verification, such as by the embedded controller 102, so that the electronic device 100 can trust the part of the boot code 110 that executes while the trusted interface 132 is in the open state.
[0046] The boot code 110 executing on the processor 104 can subsequently inform the embedded controller 102 to set the flag 134 to the second value that corresponds to the trusted interface 132 being in the closed state. For example, the boot code 110 can inform the embedded controller 102 to set the flag 134 to the second value in response to the boot code 110 exiting a specified phase..
Alternatively, the embedded controller 102 can close the trusted interface 132 by setting the flag 134 to the second value after the derived security credential 118 has been retrieved once.
[0047] Thus, more generally, the trusted interface 132 is available for
communicating information during an initial boot phase of the boot code 110, and unavailable for communicating information after the initial boot phase of the boot code 110.
[0048] For example, the trusted part of the boot code 110 that can execute while the trusted interface 132 is open can include a Platform Initialization (PI) or Pre-EFI (PEI) code of the BIOS. The PI or PEI code can retrieve the derived security credential 118 over the open trusted interface 132, after which either the BIOS can close the trusted interface 132 or the embedded controller 102 closes the trusted interface 132 after the derived security credential 118 has been retrieved once. The PI/PEI stage of execution is deemed a trusted platform state, since a small number of entities are running at this point, and none are deemed capable of intruding on the embedded controller 102 to BIOS communication. The PEI code can make the derived security credential 118 available in a piece of memory referred to in the UEFI context as a hand-off block (FIOB). An early Driver execution Environment (DXE) code of the BIOS can read the FIOB; store the content of the FIOB in a System Management Random Access Memory (SMRAM); and finally, securely delete the FIOB’s contents from memory using a cryptographically secure overwrite method. The DXE phase is the phase of the boot code 110 when the boot code 110 loads drivers for configured components in an electronic device 100. The early DXE code is deemed to be just as secure as the PI/PEI code. Before other code is allowed to execute, the DXE code locks the SMRAM so that no other entity can read from or write to the content (which includes the derived security credential 118) of the
SMRAM. The BIOS code can read, update, or delete the content of the SMRAM— however, no other entity is able to access the SMRAM. As a result, storage of the derived security credential 118 in the SMRAM is deemed relatively secure.
[0049] After the trusted interface 132 is closed, the trusted interface 132 can be re-opened by a power on/off cycle of the electronic device 100, and the foregoing process can be re-iterated.
[0050] The secure channel 130 can refer to either or both of: a channel (such as a bus or other communication link) over which information is protected by a protection code (e.g., an HMAC), or the trusted interface 132. [0051 ] For example, if the HMAC is used (and the trusted interface 132 is not used) to protect the security credential 118, the embedded controller 102 generates an HMAC, and transmits the security credential 118 along with the HMAC to the boot code 110 (or other program code) executable on the processor 104.
[0052] If the trusted interface 132 is used (but the HMAC is not used) to protect the security credential 118, the embedded controller 102 transmits the security credential 118 to the boot code 110 (or other program code) executable on the processor 104 while the trusted interface 132 is in the open state. Once the trusted interface 132 transitions to the closed state, the embedded controller 102 does not transmit the security credential 118 to the boot code 110 (or other program code).
[0053] In other examples, both the HMAC and the trusted interface 132 can be used. In such examples, key information used for deriving the HMAC can be exchanged between the embedded controller 102 and boot code 110 (or other program code) executing on the processor 104 while the trusted interface 132 is in the open state. Once the trusted interface 132 transitions to the closed state, exchanging key information between the embedded controller 102 and a program code executing on the processor 104 is not performed. However, in the closed state of the trusted interface 132, the HMAC can be used to protect the security credential 118 communicated between the embedded controller 102 and the boot code 110 (or other program code) executing on the processor 104.
[0054] After receiving the security credential 118 from the embedded controller 102, the boot code 110 (or other program code) executing on the processor 104 can use the security credential 118 to encrypt data or otherwise protect data that is stored as the protected data 116 in the shared memory 108. For example, if the security credential 118 is a derived encryption key, the derived encryption key can be used by the boot code 110 (or other program code) to encrypt data that is stored as the protected data 116. The encrypted protected data 116 is not accessible by an entity that does not have the encryption key. [0055] As another example, the protected data 116 stored in the shared memory 108 is not encrypted. However, the boot code 110 (or other program code) can manage access of the protected data 116 using the security credential 118.
[0056] Fig. 2 is a message flow diagram of a process according to some examples, which can be performed by the embedded controller 102 and the boot code 110 executed on the processor 104. The embedded controller 102 accesses (at 202) the OTP information 122. The embedded controller 102 generates (at 204) a salt value. For example, the salt value is a random number, and the embedded controller 102 uses the RNG 120 to generate the random number.
[0057] The OTP information (or a portion of the OTP information 122) and the salt value are input (at 206) to the security credential derivation function 123 to derive the security credential 118.
[0058] The embedded controller 102 sends (at 208) the derived security credential 118 over the secure channel 130 to the boot code 110. The boot code 110 protects (at 210) data using the derived security credential 118, and the protected data is stored as the protected data 116 in the shared memory 108.
[0059] Fig. 3 is a block diagram of a device 300 (e.g., an electronic device) that includes a memory 302, a processor 304, and a controller 306 (similar to the embedded controller 102, for example) separate from the processor 304. A processor can include a microprocessor, a core of a multi-core microprocessor, a microcontroller, a programmable integrated circuit, a programmable gate array, a digital signal processor, or another hardware processing circuit.
[0060] The controller 306 can perform various tasks. The tasks include a security credential derivation task 308 that derives a security credential based on information (e.g., the OTP information 122) including a key (e.g., the hardware key 126) accessible by the controller 306. Note that security credential can be derived based on just the hardware key 126, or based on the hardware key 126 and other information, such as the remaining portion of the OTP information 122. [0061 ] The tasks further include a security credential communication task 310 that communicates the derived security credential in a secure manner to a program code 312 executable on the processor 304.
[0062] The tasks further include a data protection task 314 that uses the derived security credential to protect data 316 stored in the memory 302 against
unauthorized access.
[0063] Fig. 4 is a block diagram of a non-transitory machine-readable or computer-readable storage medium 400 that stores machine-readable instructions executable by a controller to perform respective tasks. The machine-readable instructions include key information access instructions 402 to access information comprising a key accessible by the controller and inaccessible by a processor that is separate from the controller. The machine-readable instructions further include security credential derivation instructions 404 to input the information including the key into a security credential derivation function to produce a derived security credential.
[0064] The machine-readable instructions additionally include security credential communication instructions 406 to communicate the derived security credential over a secure channel to a program code executable on the processor, the derived security credential for use in protecting data stored in a memory.
[0065] Fig. 5 is a flow diagram of a process according to some examples. The process includes accessing (at 502), by an embedded controller of an electronic device, one-time programmable information.
[0066] The process includes using (at 504), by the embedded controller, the one time programmable information as a seed in producing a derived security credential. The process further includes communicating (at 506), by the embedded controller, the derived security credential in a secure manner to a program code executable on a processor of the electronic device. The process further includes protecting (at 508), using the derived security credential, data stored in a memory. [0067] The storage medium 400 (Fig. 4) can include any or some combination of the following: a semiconductor memory device such as a dynamic or static random access memory (a DRAM or SRAM), an erasable and programmable read-only memory (EPROM), an electrically erasable and programmable read-only memory (EEPROM) and flash memory; a magnetic disk such as a fixed, floppy and removable disk; another magnetic medium including tape; an optical medium such as a compact disc (CD) or a digital video disc (DVD); or another type of storage device. Note that the instructions discussed above can be provided on one computer-readable or machine-readable storage medium, or alternatively, can be provided on multiple computer-readable or machine-readable storage media distributed in a large system having possibly plural nodes. Such computer-readable or machine-readable storage medium or media is (are) considered to be part of an article (or article of manufacture). An article or article of manufacture can refer to any manufactured single component or multiple components. The storage medium or media can be located either in the machine running the machine-readable instructions, or located at a remote site from which machine-readable instructions can be downloaded over a network for execution.
[0068] In the foregoing description, numerous details are set forth to provide an understanding of the subject disclosed herein. However, implementations may be practiced without some of these details. Other implementations may include modifications and variations from the details discussed above. It is intended that the appended claims cover such modifications and variations.

Claims

What is claimed is:
1. A device comprising:
a memory;
a processor; and
a controller separate from the processor to:
derive a security credential based on information comprising a key accessible by the controller;
communicate the derived security credential in a secure manner to a program code executable on the processor; and
use the derived security credential to protect data stored in the memory against unauthorized access.
2. The device of claim 1 , wherein the controller comprises an embedded controller.
3. The device of claim 1 , wherein the information comprising the key is hardcoded into the controller, the information comprising the key inaccessible to the processor.
4. The device of claim 3, wherein the information comprising the key is programmed at build time of the device at a factory or as part of a configuration of the device prior to delivery to an end user.
5. The device of claim 1 , wherein the communication of the derived security credential is protected against unauthorized access using a protection code.
6. The device of claim 5, wherein the protection code comprises a hash-based message authentication code (HMAC).
7. The device of claim 1 , wherein the program code comprises a boot code for booting the device, and wherein the derived security credential is communicated in the secure manner using a trusted interface between the controller and the boot code, the trusted interface being available for communicating information during an initial boot phase of the boot code, and unavailable for communicating information after the initial boot phase of the boot code.
8. The device of claim 1 , wherein the controller is to use the information comprising the key as a seed to generate the derived security credential.
9. The device of claim 8, wherein the controller is to input the information comprising the key and a salt value to a security credential derivation function that in response is to output the derived security credential.
10. The device of claim 9, wherein the controller comprises a random number generator to generate a random number used as the salt value.
11. A non-transitory machine-readable storage medium comprising instructions that upon execution cause a controller of a device. to:
access information comprising a key accessible by the controller and inaccessible by a processor of the device, the processor separate from the controller;
input the information comprising the key into a security credential derivation function to produce a derived security credential; and
communicate the derived security credential over a secure channel to a program code executable on the processor, the derived security credential for use in protecting data stored in a memory.
12. The non-transitory machine-readable storage medium of claim 11 , wherein the communication of the derived security credential over the secure channel uses a protection code that is useable to verify an integrity of information comprising the derived security credential.
13. The non-transitory machine-readable storage medium of claim 11 , wherein the secure channel comprises a trusted interface between the controller and the boot code, the trusted interface settable to an open state to enable communication of selected information between the controller and the program code, and to a closed state to disable communication of the selected information between the controller and the program code.
14. A method comprising:
accessing, by an embedded controller of an electronic device, one-time programmable information;
using, by the embedded controller, the one-time programmable information as a seed in producing a derived security credential;
communicating, by the embedded controller, the derived security credential in a secure manner to a program code executable on a processor of the electronic device; and
protecting, using the derived security credential, data stored in a memory.
15. The method of claim 14, wherein the one-time programmable information is included in the embedded controller or stored in an one-time programmable storage external of the embedded controller.
PCT/US2019/016261 2019-02-01 2019-02-01 Security credential derivation Ceased WO2020159533A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/US2019/016261 WO2020159533A1 (en) 2019-02-01 2019-02-01 Security credential derivation
US17/052,367 US11418335B2 (en) 2019-02-01 2019-02-01 Security credential derivation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2019/016261 WO2020159533A1 (en) 2019-02-01 2019-02-01 Security credential derivation

Publications (1)

Publication Number Publication Date
WO2020159533A1 true WO2020159533A1 (en) 2020-08-06

Family

ID=71840109

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2019/016261 Ceased WO2020159533A1 (en) 2019-02-01 2019-02-01 Security credential derivation

Country Status (2)

Country Link
US (1) US11418335B2 (en)
WO (1) WO2020159533A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230245709A1 (en) * 2022-02-01 2023-08-03 Dell Products L.P. Systems and methods for fault-resilient system management random access memory

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200410138A1 (en) * 2019-06-28 2020-12-31 Seagate Technology Llc Data storage system with device provenance
US12362919B2 (en) * 2022-08-29 2025-07-15 Dell Products, L.P. Enforcing access control for embedded controller resources and interfaces
US20250103348A1 (en) * 2023-09-22 2025-03-27 Dell Products L.P. Bios network safe assurance method

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2034780A2 (en) * 2007-09-04 2009-03-11 Honeywell International Inc. SYystem, method, and apparatus for on-demand limited security credentials in wireless and other communication networks
US20160055332A1 (en) * 2013-04-23 2016-02-25 Hewlett- Packard Development Company, L.P. Verifying Controller Code and System Boot Code
US20160294802A1 (en) * 2015-03-30 2016-10-06 Qualcomm Incorporated Accelerated passphrase verification
US20180279394A1 (en) * 2015-01-09 2018-09-27 Zte Corporation D2D Mode B Discovery Security Method, Terminal and System, and Storage Medium

Family Cites Families (187)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2772103B2 (en) 1990-03-28 1998-07-02 株式会社東芝 Computer system startup method
US5432927A (en) 1992-06-17 1995-07-11 Eaton Corporation Fail-safe EEPROM based rewritable boot system
US5327531A (en) 1992-09-21 1994-07-05 International Business Machines Corp. Data processing system including corrupt flash ROM recovery
US5469573A (en) 1993-02-26 1995-11-21 Sytron Corporation Disk operating system backup and recovery system
US5745669A (en) 1993-10-21 1998-04-28 Ast Research, Inc. System and method for recovering PC configurations
US5713024A (en) 1994-06-10 1998-01-27 Exabyte Corporation Cold boot data backup system
US5564054A (en) 1994-08-25 1996-10-08 International Business Machines Corporation Fail-safe computer boot apparatus and method
JP3088269B2 (en) 1995-07-26 2000-09-18 日本電気通信システム株式会社 Computer network system and operating system version management method
US5822581A (en) 1995-09-29 1998-10-13 Intel Corporation Method for CMOS configuration information storage and retrieval in flash
US5918047A (en) 1996-01-26 1999-06-29 Texas Instruments Incorporated Initializing a processing system
US5778070A (en) 1996-06-28 1998-07-07 Intel Corporation Method and apparatus for protecting flash memory
JP2940480B2 (en) 1996-07-05 1999-08-25 日本電気株式会社 Computer system
US5819087A (en) 1996-07-19 1998-10-06 Compaq Computer Corporation Flash ROM sharing between processor and microcontroller during booting and handling warm-booting events
US6205527B1 (en) 1998-02-24 2001-03-20 Adaptec, Inc. Intelligent backup and restoring system and method for implementing the same
US5987605A (en) 1998-02-28 1999-11-16 Hewlett-Packard Co. Methods and apparatus for dual-boot memory selection, update, and recovery in a programmable device
US6275930B1 (en) 1998-08-12 2001-08-14 Symantec Corporation Method, computer, and article of manufacturing for fault tolerant booting
US6539473B1 (en) 1999-09-02 2003-03-25 International Business Machines Corporation Remotely controlled boot manager
JP3838840B2 (en) 2000-01-06 2006-10-25 Necエレクトロニクス株式会社 Computer
US20060075395A1 (en) 2004-10-01 2006-04-06 Lee Charles C Flash card system
US8296467B2 (en) 2000-01-06 2012-10-23 Super Talent Electronics Inc. Single-chip flash device with boot code transfer capability
US7676640B2 (en) 2000-01-06 2010-03-09 Super Talent Electronics, Inc. Flash memory controller controlling various flash memory cells
JP2001209543A (en) 2000-01-28 2001-08-03 Nec Ic Microcomput Syst Ltd Program rewriting method for flash microcomputer
US6711675B1 (en) 2000-02-11 2004-03-23 Intel Corporation Protected boot flow
US6665813B1 (en) 2000-08-03 2003-12-16 International Business Machines Corporation Method and apparatus for updateable flash memory design and recovery with minimal redundancy
US6907602B2 (en) 2000-08-10 2005-06-14 Mustek Systems Inc. Method for updating firmware of computer device
GB2367656A (en) 2000-10-06 2002-04-10 Hewlett Packard Co Self-repairing operating system for computer entities
TW480444B (en) 2000-11-29 2002-03-21 Mitac Technology Corp Computer system boot-up method capable of completing the startup procedure even the system BIOS code is damaged
US6807630B2 (en) 2000-12-15 2004-10-19 International Business Machines Corporation Method for fast reinitialization wherein a saved system image of an operating system is transferred into a primary memory from a secondary memory
US6976136B2 (en) 2001-05-07 2005-12-13 National Semiconductor Corporation Flash memory protection scheme for secured shared BIOS implementation in personal computers with an embedded controller
US6651188B2 (en) 2001-06-29 2003-11-18 Intel Corporation Automatic replacement of corrupted BIOS image
US6990577B2 (en) 2001-08-10 2006-01-24 Intel Corporation Updating a BIOS image by replacing a portion of the BIOS image with a portion of another BIOS image
US20030079007A1 (en) 2001-10-22 2003-04-24 Merkin Cynthia M. Redundant source event log
US7069445B2 (en) 2001-11-30 2006-06-27 Lenovo (Singapore) Pte. Ltd System and method for migration of a version of a bootable program
TWI251771B (en) 2001-12-28 2006-03-21 Asustek Comp Inc Module and method for automatic restoring BIOS device, and the computer-readable recording media of storing the program codes thereof
JP3863447B2 (en) 2002-03-08 2006-12-27 インターナショナル・ビジネス・マシーンズ・コーポレーション Authentication system, firmware device, electrical device, and authentication method
EP1345124A1 (en) 2002-03-14 2003-09-17 Hewlett-Packard Company Managing boot errors
EP1372068A3 (en) 2002-06-11 2006-02-08 Seiko Epson Corporation System, method and program for rewriting a flash memory
US7143275B2 (en) 2002-08-01 2006-11-28 Hewlett-Packard Development Company, L.P. System firmware back-up using a BIOS-accessible pre-boot partition
US20040030877A1 (en) 2002-08-06 2004-02-12 Aleksandr Frid Using system BIOS to update embedded controller firmware
US20040076043A1 (en) 2002-10-21 2004-04-22 Phoenix Technologies Ltd. Reliable and secure updating and recovery of firmware from a mass storage device
KR100532413B1 (en) 2002-12-02 2005-12-02 삼성전자주식회사 apparatus and method for protecting flash memory
US6915420B2 (en) 2003-01-06 2005-07-05 John Alan Hensley Method for creating and protecting a back-up operating system within existing storage that is not hidden during operation
JP2004302997A (en) 2003-03-31 2004-10-28 Giga-Byte Technology Co Ltd Device with high storage capacity and a plurality of bios backup copies
US7136994B2 (en) 2003-05-13 2006-11-14 Intel Corporation Recovery images in an operational firmware environment
WO2004107168A1 (en) 2003-06-03 2004-12-09 Koninklijke Philips Electronics N.V. Booting from non-volatile memory
US7467417B2 (en) 2003-06-18 2008-12-16 Architecture Technology Corporation Active verification of boot firmware
US20040268079A1 (en) 2003-06-24 2004-12-30 International Business Machines Corporation Method and system for providing a secure rapid restore backup of a raid system
TW200506731A (en) 2003-08-05 2005-02-16 Via Tech Inc Computer system with multiple basic input/output system (BIOS) memory blocks
US20050081090A1 (en) 2003-09-29 2005-04-14 Giga-Byte Technology Co., Ltd. Method for automatically and safely recovering BIOS memory circuit in memory device including double BIOS memory circuits
CN1317650C (en) 2003-10-27 2007-05-23 联想(北京)有限公司 Method for automatically recovering BIOS based on hard disk protective space
US7533274B2 (en) 2003-11-13 2009-05-12 International Business Machines Corporation Reducing the boot time of a TCPA based computing system when the core root of trust measurement is embedded in the boot block code
US20050190699A1 (en) 2004-02-26 2005-09-01 Smith Carey W. Collecting hardware asset information
US7203808B2 (en) 2004-03-19 2007-04-10 Intel Corporation Isolation and protection of disk areas controlled and for use by virtual machine manager in firmware
US7185191B2 (en) 2004-05-05 2007-02-27 International Business Machines Corporation Updatable firmware having boot and/or communication redundancy
US20050273588A1 (en) 2004-06-08 2005-12-08 Ong Soo K Bootstrap method and apparatus with plural interchangeable boot code images
US7483810B2 (en) 2004-06-29 2009-01-27 Honeywell International Inc. Real time event logging system
KR101038567B1 (en) 2004-07-13 2011-06-02 엘지전자 주식회사 System crash recovery device and method
US20060020844A1 (en) 2004-07-22 2006-01-26 Gibbons Patrick L Recovery of custom BIOS settings
US7409539B2 (en) 2004-08-06 2008-08-05 International Business Machines Corporation System design and code update strategy to implement a self-healing, self-verifying system
US7370234B2 (en) 2004-10-14 2008-05-06 International Business Machines Corporation Method for system recovery
TWI280487B (en) 2004-12-15 2007-05-01 Via Tech Inc Power-on method for computer system with hyper-threading processor
US7373551B2 (en) 2004-12-21 2008-05-13 Intel Corporation Method to provide autonomic boot recovery
US7340595B2 (en) 2005-01-07 2008-03-04 International Business Machines Corporation Multiplex execution-path system
US8028172B2 (en) 2005-01-14 2011-09-27 Microsoft Corporation Systems and methods for updating a secure boot process on a computer with a hardware security module
US7356680B2 (en) 2005-01-22 2008-04-08 Telefonaktiebolaget L M Ericsson (Publ) Method of loading information into a slave processor in a multi-processor system using an operating-system-friendly boot loader
KR100666328B1 (en) * 2005-02-11 2007-01-09 삼성전자주식회사 Confidential information security device and security method using on-chip memory
US7711989B2 (en) 2005-04-01 2010-05-04 Dot Hill Systems Corporation Storage system with automatic redundant code component failure detection, notification, and repair
US20060225067A1 (en) 2005-04-05 2006-10-05 Inventec Corporation Method for automatically updating and backing up the BIOS
US7734945B1 (en) 2005-04-29 2010-06-08 Microsoft Corporation Automated recovery of unbootable systems
US8006125B1 (en) 2005-04-29 2011-08-23 Microsoft Corporation Automatic detection and recovery of corrupt disk metadata
US7193895B2 (en) 2005-06-24 2007-03-20 Chingis Technology Corporation Redundant memory content substitution apparatus and method
US7500094B2 (en) 2005-10-18 2009-03-03 American Megatrends, Inc. BIOS identification, initialization and management
WO2007076627A1 (en) 2005-12-30 2007-07-12 Intel Corporation System backup and recovery solution based on bios
TW200739417A (en) 2006-04-14 2007-10-16 Benq Corp Method for software processing and firmware updating in different OS and system thereof
US8863309B2 (en) 2006-04-27 2014-10-14 Hewlett-Packard Development Company, L.P. Selectively unlocking a core root of trust for measurement (CRTM)
CN100395733C (en) 2006-08-01 2008-06-18 浪潮齐鲁软件产业有限公司 Method for improving SOC chip security dedicated for financial tax control
TW200809489A (en) 2006-08-01 2008-02-16 Epox Comp Co Ltd BIOS damage detection and repair method and the motherboard
TW200809611A (en) 2006-08-11 2008-02-16 Quanta Comp Inc Embedded system and the boot code auto-copy method
US8190917B2 (en) 2006-09-12 2012-05-29 International Business Machines Corporation System and method for securely saving and restoring a context of a secure program loader
DE102006043636A1 (en) 2006-09-18 2008-03-27 Fujitsu Siemens Computers Gmbh Computer system and method for updating program code
US20080126779A1 (en) 2006-09-19 2008-05-29 Ned Smith Methods and apparatus to perform secure boot
US7886190B2 (en) 2006-09-29 2011-02-08 Intel Corporation System and method for enabling seamless boot recovery
US7987351B2 (en) 2006-10-06 2011-07-26 Broadcom Corporation Method and system for enhanced boot protection
US7934993B2 (en) 2006-10-16 2011-05-03 Igt Secure progressive controller
US7908470B1 (en) 2006-10-31 2011-03-15 Hewlett-Packard Development Company, L.P. Multi-processor computer with plural boot memories
US7930532B2 (en) 2006-11-15 2011-04-19 Via Technologies, Inc. Systems and methods for basic input output system (BIOS) management
US7613872B2 (en) 2006-11-28 2009-11-03 International Business Machines Corporation Providing core root of trust measurement (CRTM) for systems using a backup copy of basic input/output system (BIOS)
TW200825915A (en) 2006-12-07 2008-06-16 Wistron Corp Computer system and related method for preventing from failing to update BIOS program
US9166989B2 (en) 2006-12-28 2015-10-20 Hewlett-Packard Development Company, L.P. Storing log data efficiently while supporting querying
US7930585B2 (en) 2007-01-04 2011-04-19 Sandisk Il Ltd Recovery of a failed file transfer between a host and a data storage device
US20080195750A1 (en) 2007-02-09 2008-08-14 Microsoft Corporation Secure cross platform auditing
US7743424B2 (en) 2007-02-22 2010-06-22 Inventec Corporation Method for protecting data in a hard disk
US8255988B2 (en) 2007-03-28 2012-08-28 Microsoft Corporation Direct peripheral communication for restricted mode operation
US7930576B2 (en) 2007-04-10 2011-04-19 Standard Microsystems Corporation Sharing non-sharable devices between an embedded controller and a processor in a computer system
JP4324810B2 (en) 2007-04-10 2009-09-02 セイコーエプソン株式会社 Protection method for microcomputers, electronic devices and flash memory
US8798806B2 (en) 2007-04-30 2014-08-05 Hewlett-Packard Development Company, L.P. Electronic device thermal management system and method
TW200847021A (en) 2007-05-17 2008-12-01 Asustek Comp Inc Automatic backup, restore and update BIOS computer system
US7870407B2 (en) 2007-05-18 2011-01-11 Advanced Micro Devices, Inc. Dynamic processor power management device and method thereof
US20080307134A1 (en) 2007-06-05 2008-12-11 Geissler Andrew J I2C bus interface and protocol for thermal and power management support
US7886140B2 (en) 2007-08-16 2011-02-08 International Business Machines Corporation Booting a computer using a boot list when a non-volatile memory on the computer does not contain the boot list
US20090063834A1 (en) 2007-09-05 2009-03-05 Inventec Corporation Auto-Switching Bios System and the Method Thereof
US7925877B2 (en) 2007-09-27 2011-04-12 Texas Instruments Incorporated Method, system and apparatus for providing a boot loader of an embedded system
KR101211503B1 (en) 2007-10-02 2012-12-12 삼성전자주식회사 Booting system, image forming apparatus having the system and method thereof
TWI362588B (en) 2007-10-12 2012-04-21 Asustek Comp Inc Monitor apparatus, a monitoring method thereof and computer apparatus therewith
US8082439B2 (en) 2007-12-06 2011-12-20 Hewlett-Packard Development Company, L.P. Firmware modification in a computer system environment supporting operational state changes
KR20090060774A (en) 2007-12-10 2009-06-15 한국전자통신연구원 Firmware and data mirroring device and method in embedded system
CN101458743A (en) 2007-12-12 2009-06-17 中国长城计算机深圳股份有限公司 Method for protecting computer system
CN101458648A (en) 2007-12-12 2009-06-17 鸿富锦精密工业(深圳)有限公司 Double-BIOS circuit
US8190950B2 (en) 2007-12-21 2012-05-29 Atmel Corporation Dynamic column redundancy replacement
US20090172639A1 (en) 2007-12-27 2009-07-02 Mahesh Natu Firmware integrity verification
TWI368872B (en) 2008-01-03 2012-07-21 Nuvoton Technology Corp Systems and methods for bios processing
US8392762B2 (en) 2008-02-04 2013-03-05 Honeywell International Inc. System and method for detection and prevention of flash corruption
DE102008011925B4 (en) 2008-02-29 2018-03-15 Globalfoundries Inc. Safe initialization of computer systems
TWI411959B (en) 2008-03-21 2013-10-11 Asustek Comp Inc Computer system with dual boot-program area and method of booting the same
TWI366135B (en) 2008-03-26 2012-06-11 Asustek Comp Inc Method for restoring bios and computer thereof
US8082384B2 (en) 2008-03-26 2011-12-20 Microsoft Corporation Booting an electronic device using flash memory and a limited function memory controller
US20090248955A1 (en) 2008-03-31 2009-10-01 Satoru Tamada Redundancy for code in rom
US8132253B2 (en) 2008-04-21 2012-03-06 Dell Products L.P. Memory security override protection for manufacturability of information handling systems
US7818622B2 (en) 2008-04-29 2010-10-19 International Business Machines Corporation Method for recovering data processing system failures
US7984286B2 (en) 2008-06-25 2011-07-19 Intel Corporation Apparatus and method for secure boot environment
US8055892B2 (en) 2008-07-18 2011-11-08 International Business Machines Corporation Provision of remote system recovery services
TW201007465A (en) 2008-08-13 2010-02-16 Ene Technology Inc A sharable memory architecture of cache in a embedded controller and a method of sharing memory
TWI460657B (en) 2008-09-05 2014-11-11 Asustek Comp Inc Method for updating basic input/output system and method for repairing thereof
US8103909B2 (en) 2008-09-15 2012-01-24 Juniper Networks, Inc. Automatic hardware-based recovery of a compromised computer
US20100082960A1 (en) 2008-09-30 2010-04-01 Steve Grobman Protected network boot of operating system
WO2010039788A2 (en) 2008-09-30 2010-04-08 Bigfoot Networks, Inc. Processor boot security device and methods thereof
TWI382346B (en) 2008-10-20 2013-01-11 Asustek Comp Inc Computer system with dual bios protection mechanism and control method of the same
TWI386852B (en) 2008-10-24 2013-02-21 Wistron Corp System for switching bios and method thereof
TW201017407A (en) 2008-10-31 2010-05-01 Ind Tech Res Inst Nonvolatile data storage system and method thereof
US8151101B2 (en) 2008-11-06 2012-04-03 Lenovo (Singapore) Pte. Ltd. Method, apparatus, and system for quiescing a boot environment
TW201020785A (en) 2008-11-19 2010-06-01 Inventec Corp Peripheral device initializing method and computer system
JP5198245B2 (en) 2008-12-27 2013-05-15 株式会社東芝 Memory system
TW201033808A (en) 2009-03-10 2010-09-16 Vivotek Inc System recovery method and embedded system with auto-recovery function
CN101894054A (en) 2009-05-21 2010-11-24 华硕电脑股份有限公司 Computer system with function of repairing damaged BIOS data and repairing method thereof
TWI467375B (en) 2009-05-21 2015-01-01 Asustek Comp Inc Computer system with crashed bios data recovering function and recovering method thereof
US8756391B2 (en) 2009-05-22 2014-06-17 Raytheon Company Multi-level security computing system
US9377960B2 (en) 2009-07-29 2016-06-28 Hgst Technologies Santa Ana, Inc. System and method of using stripes for recovering data in a flash storage system
US8352719B2 (en) 2009-07-31 2013-01-08 Cleversafe, Inc. Computing device booting utilizing dispersed storage
TWI409664B (en) 2009-09-09 2013-09-21 Micro Star Int Co Ltd Personal computer boot authentication method and its boot authentication system
US8812854B2 (en) 2009-10-13 2014-08-19 Google Inc. Firmware verified boot
TWI399647B (en) 2009-10-15 2013-06-21 Wistron Corp Method for recovering bios in computer system and computer system thereof
TW201115341A (en) 2009-10-20 2011-05-01 Inventec Corp Method for protecting redundant data
US8543838B1 (en) 2009-12-23 2013-09-24 Marvell International Ltd. Cryptographic module with secure processor
GB2477774A (en) 2010-02-12 2011-08-17 Icera Inc Overriding production processor authentication restrictions through remote security unit for development code testing
US8838949B2 (en) 2010-03-22 2014-09-16 Qualcomm Incorporated Direct scatter loading of executable software image from a primary processor to one or more secondary processor in a multi-processor system
TW201133342A (en) 2010-03-30 2011-10-01 Hon Hai Prec Ind Co Ltd Method for integrating OS into BIOS chip, and method for booting the OS
US8429391B2 (en) 2010-04-16 2013-04-23 Micron Technology, Inc. Boot partitions in memory devices and systems
US20120011393A1 (en) 2010-07-06 2012-01-12 Roberts Richard B Bios recovery
US9063836B2 (en) 2010-07-26 2015-06-23 Intel Corporation Methods and apparatus to protect segments of memory
US8499295B2 (en) 2010-09-20 2013-07-30 American Megatrends, Inc. Microcontroller firmware running from RAM and applications of the same
US8688899B2 (en) 2010-09-28 2014-04-01 Fusion-Io, Inc. Apparatus, system, and method for an interface between a memory controller and a non-volatile memory controller using a command protocol
US8489922B2 (en) 2010-11-17 2013-07-16 Apple Inc. Networked recovery system
US8627141B2 (en) 2011-02-14 2014-01-07 Dell Products L.P. System and method for auto-failover and version matching of bootloader in an access controller
TWI459294B (en) 2011-03-18 2014-11-01 Phoenix Tech Ltd Bios update method and computer system for using the same
US10110380B2 (en) * 2011-03-28 2018-10-23 Nxp B.V. Secure dynamic on chip key programming
EP2702480A4 (en) 2011-04-29 2015-01-07 Hewlett Packard Development Co Embedded controller to verify crtm
CN102789396A (en) 2011-05-18 2012-11-21 鸿富锦精密工业(深圳)有限公司 Switching system and method for BIOS (Basic Input/Output System) configuration mode
CN102799497A (en) 2011-05-24 2012-11-28 鸿富锦精密工业(深圳)有限公司 Data recovery system and method for non-volatile random access memory (NVRAM)
US9015455B2 (en) 2011-07-07 2015-04-21 Intel Corporation Processsor integral technologies for BIOS flash attack protection and notification
US8732527B2 (en) 2011-08-16 2014-05-20 Google Inc. Secure recovery apparatus and method
JP5476363B2 (en) 2011-12-19 2014-04-23 レノボ・シンガポール・プライベート・リミテッド Computer startup method using biometric authentication device and computer
CN103999041B (en) 2012-01-03 2018-03-27 惠普发展公司,有限责任合伙企业 The backup firmware during equipment initializes
KR101994811B1 (en) 2012-03-04 2019-07-01 삼성전자주식회사 Electronic apparatus, method for restore of mbr and computer-readable recording medium
TWI564747B (en) 2012-10-19 2017-01-01 威盛電子股份有限公司 Electronic device and secure boot method
US9575768B1 (en) 2013-01-08 2017-02-21 Marvell International Ltd. Loading boot code from multiple memories
US9558012B2 (en) 2013-02-21 2017-01-31 Applied Micro Circuits Corporation System boot with external media
US9336010B2 (en) 2013-03-15 2016-05-10 Xilinx, Inc. Multi-boot or fallback boot of a system-on-chip using a file-based boot device
WO2014175862A1 (en) * 2013-04-23 2014-10-30 Hewlett-Packard Development Company, L.P. Redundant system boot code in a secondary non-volatile memory
CN105122261B (en) 2013-04-23 2020-04-24 惠普发展公司,有限责任合伙企业 Method for recovering from damaged system starting code and computing device
WO2014175866A1 (en) 2013-04-23 2014-10-30 Hewlett-Packard Development Company, L.P. Retrieving system boot code from a non-volatile memory
EP2989583B1 (en) 2013-04-23 2018-10-10 Hewlett-Packard Development Company, L.P. Configuring a system
WO2014175864A1 (en) 2013-04-23 2014-10-30 Hewlett-Packard Development Company, L.P. Event data structure to store event data
WO2014175865A1 (en) 2013-04-23 2014-10-30 Hewlett-Packard Development Company, L.P. Repairing compromised system data in a non-volatile memory
US9542195B1 (en) 2013-07-29 2017-01-10 Western Digital Technologies, Inc. Motherboards and methods for BIOS failover using a first BIOS chip and a second BIOS chip
TW201512831A (en) 2013-09-30 2015-04-01 Hon Hai Prec Ind Co Ltd Computer booting system and method of a computer
JP6146476B2 (en) 2013-09-30 2017-06-14 富士通株式会社 Information processing apparatus and information processing method
US10013563B2 (en) 2013-09-30 2018-07-03 Dell Products L.P. Systems and methods for binding a removable cryptoprocessor to an information handling system
TW201520895A (en) 2013-11-20 2015-06-01 Hon Hai Prec Ind Co Ltd System and method for automatically recovering BIOS of a computer
US9411688B1 (en) 2013-12-11 2016-08-09 Xilinx, Inc. System and method for searching multiple boot devices for boot images
US9122893B1 (en) 2014-02-24 2015-09-01 International Business Machines Corporation Trusted platform module switching
US9262257B2 (en) 2014-04-21 2016-02-16 Netapp, Inc. Providing boot data in a cluster network environment
US9317691B2 (en) 2014-05-08 2016-04-19 Dell Products L.P. Pre-boot software verification
US10228745B2 (en) 2015-01-29 2019-03-12 Hewlett-Packard Development Company, L.P. Resuming a system-on-a-chip device
US10146942B2 (en) 2015-02-24 2018-12-04 Dell Products, Lp Method to protect BIOS NVRAM from malicious code injection by encrypting NVRAM variables and system therefor
US9846640B2 (en) 2015-04-22 2017-12-19 Dell Products, Lp System and method for retrieving wireless access point credentials from a BIOS NVRAM
US9740866B2 (en) 2015-06-10 2017-08-22 The Boeing Company Automatic measuring boot process using an automatic measuring processor coupled to a memory
US9916452B2 (en) * 2016-05-18 2018-03-13 Microsoft Technology Licensing, Llc Self-contained cryptographic boot policy validation

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2034780A2 (en) * 2007-09-04 2009-03-11 Honeywell International Inc. SYystem, method, and apparatus for on-demand limited security credentials in wireless and other communication networks
US20160055332A1 (en) * 2013-04-23 2016-02-25 Hewlett- Packard Development Company, L.P. Verifying Controller Code and System Boot Code
US20180279394A1 (en) * 2015-01-09 2018-09-27 Zte Corporation D2D Mode B Discovery Security Method, Terminal and System, and Storage Medium
US20160294802A1 (en) * 2015-03-30 2016-10-06 Qualcomm Incorporated Accelerated passphrase verification

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230245709A1 (en) * 2022-02-01 2023-08-03 Dell Products L.P. Systems and methods for fault-resilient system management random access memory
US11984183B2 (en) * 2022-02-01 2024-05-14 Dell Products L.P. Systems and methods for fault-resilient system management random access memory

Also Published As

Publication number Publication date
US11418335B2 (en) 2022-08-16
US20210359854A1 (en) 2021-11-18

Similar Documents

Publication Publication Date Title
US11921860B2 (en) Rollback resistant security
US10318750B2 (en) Unlocking a storage device
US11354417B2 (en) Enhanced secure boot
US9871787B2 (en) Authentication processing for a plurality of self-encrypting storage devices
CN115357528B (en) Secret key encryption method, secret key decryption method and safety protection system of solid state disk
US11068599B2 (en) Secure initialization using embedded controller (EC) root of trust
US20130254906A1 (en) Hardware and Software Association and Authentication
US11418335B2 (en) Security credential derivation
US10885196B2 (en) Executing protected code
JP2017504267A (en) Key extraction during secure boot
JP2008052704A (en) Computer and shared password management methods
US11960737B2 (en) Self-deploying encrypted hard disk, deployment method thereof, self-deploying encrypted hard disk system and boot method thereof
CN102262599A (en) Trusted root-based portable hard disk fingerprint identification method
EP3757838B1 (en) Warm boot attack mitigations for non-volatile memory modules
TW202145007A (en) System for accelerating verification procedure for image file
US11429722B2 (en) Data protection in a pre-operation system environment based on an embedded key of an embedded controller
US20250190369A1 (en) Cryptographic computations for memory regions

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19913103

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19913103

Country of ref document: EP

Kind code of ref document: A1