137 lines
4.7 KiB
Plaintext
137 lines
4.7 KiB
Plaintext
# SPDX-License-Identifier: GPL-2.0-only
|
|
#
|
|
config INTEGRITY
|
|
bool "Integrity subsystem"
|
|
depends on SECURITY
|
|
default y
|
|
help
|
|
This option enables the integrity subsystem, which is comprised
|
|
of a number of different components including the Integrity
|
|
Measurement Architecture (IMA), Extended Verification Module
|
|
(EVM), IMA-appraisal extension, digital signature verification
|
|
extension and audit measurement log support.
|
|
|
|
Each of these components can be enabled/disabled separately.
|
|
Refer to the individual components for additional details.
|
|
|
|
if INTEGRITY
|
|
|
|
config INTEGRITY_SIGNATURE
|
|
bool "Digital signature verification using multiple keyrings"
|
|
default n
|
|
select KEYS
|
|
select SIGNATURE
|
|
help
|
|
This option enables digital signature verification support
|
|
using multiple keyrings. It defines separate keyrings for each
|
|
of the different use cases - evm, ima, and modules.
|
|
Different keyrings improves search performance, but also allow
|
|
to "lock" certain keyring to prevent adding new keys.
|
|
This is useful for evm and module keyrings, when keys are
|
|
usually only added from initramfs.
|
|
|
|
config INTEGRITY_ASYMMETRIC_KEYS
|
|
bool "Enable asymmetric keys support"
|
|
depends on INTEGRITY_SIGNATURE
|
|
default n
|
|
select ASYMMETRIC_KEY_TYPE
|
|
select ASYMMETRIC_PUBLIC_KEY_SUBTYPE
|
|
select CRYPTO_RSA
|
|
select X509_CERTIFICATE_PARSER
|
|
help
|
|
This option enables digital signature verification using
|
|
asymmetric keys.
|
|
|
|
config INTEGRITY_TRUSTED_KEYRING
|
|
bool "Require all keys on the integrity keyrings be signed"
|
|
depends on SYSTEM_TRUSTED_KEYRING
|
|
depends on INTEGRITY_ASYMMETRIC_KEYS
|
|
default y
|
|
help
|
|
This option requires that all keys added to the .ima and
|
|
.evm keyrings be signed by a key on the system trusted
|
|
keyring.
|
|
|
|
config INTEGRITY_PLATFORM_KEYRING
|
|
bool "Provide keyring for platform/firmware trusted keys"
|
|
depends on INTEGRITY_ASYMMETRIC_KEYS
|
|
depends on SYSTEM_BLACKLIST_KEYRING
|
|
help
|
|
Provide a separate, distinct keyring for platform trusted keys, which
|
|
the kernel automatically populates during initialization from values
|
|
provided by the platform for verifying the kexec'ed kerned image
|
|
and, possibly, the initramfs signature.
|
|
|
|
config INTEGRITY_MACHINE_KEYRING
|
|
bool "Provide a keyring to which Machine Owner Keys may be added"
|
|
depends on SECONDARY_TRUSTED_KEYRING
|
|
depends on INTEGRITY_ASYMMETRIC_KEYS
|
|
depends on SYSTEM_BLACKLIST_KEYRING
|
|
depends on LOAD_UEFI_KEYS || LOAD_PPC_KEYS
|
|
help
|
|
If set, provide a keyring to which Machine Owner Keys (MOK) may
|
|
be added. This keyring shall contain just MOK keys. Unlike keys
|
|
in the platform keyring, keys contained in the .machine keyring will
|
|
be trusted within the kernel.
|
|
|
|
config INTEGRITY_CA_MACHINE_KEYRING
|
|
bool "Enforce Machine Keyring CA Restrictions"
|
|
depends on INTEGRITY_MACHINE_KEYRING
|
|
default n
|
|
help
|
|
The .machine keyring can be configured to enforce CA restriction
|
|
on any key added to it. By default no restrictions are in place
|
|
and all Machine Owner Keys (MOK) are added to the machine keyring.
|
|
If enabled only CA keys are added to the machine keyring, all
|
|
other MOK keys load into the platform keyring.
|
|
|
|
config INTEGRITY_CA_MACHINE_KEYRING_MAX
|
|
bool "Only CA keys without DigitialSignature usage set"
|
|
depends on INTEGRITY_CA_MACHINE_KEYRING
|
|
default n
|
|
help
|
|
When selected, only load CA keys are loaded into the machine
|
|
keyring that contain the CA bit set along with the keyCertSign
|
|
Usage field. Keys containing the digitialSignature Usage field
|
|
will not be loaded. The remaining MOK keys are loaded into the
|
|
.platform keyring.
|
|
|
|
config LOAD_UEFI_KEYS
|
|
depends on INTEGRITY_PLATFORM_KEYRING
|
|
depends on EFI
|
|
def_bool y
|
|
|
|
config LOAD_IPL_KEYS
|
|
depends on INTEGRITY_PLATFORM_KEYRING
|
|
depends on S390
|
|
def_bool y
|
|
|
|
config LOAD_PPC_KEYS
|
|
bool "Enable loading of platform and blacklisted keys for POWER"
|
|
depends on INTEGRITY_PLATFORM_KEYRING
|
|
depends on PPC_SECURE_BOOT
|
|
default y
|
|
help
|
|
Enable loading of keys to the .platform keyring and blacklisted
|
|
hashes to the .blacklist keyring for powerpc based platforms.
|
|
|
|
config INTEGRITY_AUDIT
|
|
bool "Enables integrity auditing support "
|
|
depends on AUDIT
|
|
default y
|
|
help
|
|
In addition to enabling integrity auditing support, this
|
|
option adds a kernel parameter 'integrity_audit', which
|
|
controls the level of integrity auditing messages.
|
|
0 - basic integrity auditing messages (default)
|
|
1 - additional integrity auditing messages
|
|
|
|
Additional informational integrity auditing messages would
|
|
be enabled by specifying 'integrity_audit=1' on the kernel
|
|
command line.
|
|
|
|
source "security/integrity/ima/Kconfig"
|
|
source "security/integrity/evm/Kconfig"
|
|
|
|
endif # if INTEGRITY
|