Signed Recovery

NIST SP800-193 defines three principles supporting platform resiliency:

  • Protection,

  • Detection

  • Recovery

Signed UEFI capsule update and Intel® BIOS Guard provide these protections. Intel® Boot Guard and OBB verification provide detection. If firmware corruption is detected, the firmware can perform recovery to prevent a permanent denial of service (PDOS) attack. EDK II implements a signed recovery (see Table 2-10).

Table 2-10: Firmware Recovery Verification

Item

Entity

Provider

Location

TP

Firmware Recovery Verification

OEM

Originally on flash, loaded into DRAM.

CDI

Firmware Recovery TCB Code

OEM

Originally on flash, loaded into DRAM.

Firmware Recovery Signature Database (Policy)

OEM

Originally on flash, loaded into DRAM.

UDI

Firmware Recovery Package

OEM

Originally on external storage (e.g. Hard drive, USB, Memory, or Flash), loaded into DRAM

Signing

The UDI is provided a new firmware image, the same as the UEFI Capsule Update implementation. The entire firmware binary must be signed using the OEM private key.

Public Key Storage

The OEM public key should be embedded in the original firmware & recovery launcher module.

Verification

If firmware corruption is detected during boot, the recovery boot path is triggered. In this scenario, TP is the firmware recovery launcher module. This module loads the recovery image from a known source and verifies the signature. If TP passes verification, the recovery image is loaded and the recovery launcher module transfers control to the recovery image. If recovery verification fails, the recovery image is discarded and the recovery launcher attempts to locate additional recovery images. If all recovery images fail verification, the recovery process is aborted.

NOTE: The signed recovery image itself may be updatable even if it is on the flash region.