1 # SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0-or-later
3 # This file is sourced from src/security/Kconfig for menuconfig convenience.
5 menu "CBFS verification"
7 config CBFS_VERIFICATION
8 bool "Enable CBFS verification"
11 Say yes here to enable code that cryptographically verifies each CBFS
12 file as it gets loaded by chaining it to a trust anchor that is
13 embedded in the bootblock. This only makes sense if you use some
14 out-of-band mechanism to guarantee the integrity of the bootblock
15 itself, such as Intel Boot Guard or flash write-protection.
17 If a CBFS image was created with this option enabled, cbfstool will
18 automatically update the hash embedded in the bootblock whenever it
24 bool "Protect against time-of-check vs. time-of-use vulnerabilities"
25 depends on !NO_FMAP_CACHE
26 depends on !NO_CBFS_MCACHE
27 depends on !USE_OPTION_TABLE && !FSP_CAR # Known to access CBFS before CBMEM init
28 depends on !VBOOT # TODO: can only allow this once vboot fully integrated
29 depends on NO_XIP_EARLY_STAGES
31 Say yes here to eliminate time-of-check vs. time-of-use vulnerabilities
32 for CBFS verification. This means that data from flash must be verified
33 every time it is loaded (not just the first time), which requires a bit
34 more overhead and is incompatible with certain configurations.
36 Using this option only makes sense when the mechanism securing the
37 bootblock is also safe against these vulnerabilities (i.e. there's no
38 point in enabling this when you just rely on flash write-protection).
42 default 1 if CBFS_HASH_SHA1
43 default 2 if CBFS_HASH_SHA256
44 default 3 if CBFS_HASH_SHA512
47 prompt "Hash algorithm"
48 default CBFS_HASH_SHA256
50 Select the hash algorithm used in CBFS verification. Note that SHA-1 is
51 generally considered insecure today and should not be used without good
52 reason. When using CBFS verification together with measured boot, using
53 the same hash algorithm (usually SHA-256) for both is more efficient.
58 config CBFS_HASH_SHA256
61 config CBFS_HASH_SHA512