f218a29c25
Pull integrity updates from James Morris: "In Linux 4.19, a new LSM hook named security_kernel_load_data was upstreamed, allowing LSMs and IMA to prevent the kexec_load syscall. Different signature verification methods exist for verifying the kexec'ed kernel image. This adds additional support in IMA to prevent loading unsigned kernel images via the kexec_load syscall, independently of the IMA policy rules, based on the runtime "secure boot" flag. An initial IMA kselftest is included. In addition, this pull request defines a new, separate keyring named ".platform" for storing the preboot/firmware keys needed for verifying the kexec'ed kernel image's signature and includes the associated IMA kexec usage of the ".platform" keyring. (David Howell's and Josh Boyer's patches for reading the preboot/firmware keys, which were previously posted for a different use case scenario, are included here)" * 'next-integrity' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security: integrity: Remove references to module keyring ima: Use inode_is_open_for_write ima: Support platform keyring for kernel appraisal efi: Allow the "db" UEFI variable to be suppressed efi: Import certificates from UEFI Secure Boot efi: Add an EFI signature blob parser efi: Add EFI signature data types integrity: Load certs to the platform keyring integrity: Define a trusted platform keyring selftests/ima: kexec_load syscall test ima: don't measure/appraise files on efivarfs x86/ima: retry detecting secure boot mode docs: Extend trusted keys documentation for TPM 2.0 x86/ima: define arch_get_ima_policy() for x86 ima: add support for arch specific policies ima: refactor ima_init_policy() ima: prevent kexec_load syscall based on runtime secureboot flag x86/ima: define arch_ima_get_secureboot integrity: support new struct public_key_signature encoding field
83 lines
2.8 KiB
Text
83 lines
2.8 KiB
Text
#
|
|
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"
|
|
depends on KEYS
|
|
default n
|
|
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
|
|
depends on EFI
|
|
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_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
|