2019-05-19 12:07:45 +00:00
|
|
|
# SPDX-License-Identifier: GPL-2.0-only
|
2016-04-20 22:46:28 +00:00
|
|
|
config SECURITY_LOADPIN
|
|
|
|
bool "Pin load of kernel files (modules, fw, etc) to one filesystem"
|
|
|
|
depends on SECURITY && BLOCK
|
|
|
|
help
|
|
|
|
Any files read through the kernel file reading interface
|
2016-05-17 08:45:52 +00:00
|
|
|
(kernel modules, firmware, kexec images, security policy)
|
|
|
|
can be pinned to the first filesystem used for loading. When
|
|
|
|
enabled, any files that come from other filesystems will be
|
|
|
|
rejected. This is best used on systems without an initrd that
|
|
|
|
have a root filesystem backed by a read-only device such as
|
|
|
|
dm-verity or a CDROM.
|
|
|
|
|
2018-09-24 21:43:59 +00:00
|
|
|
config SECURITY_LOADPIN_ENFORCE
|
2016-05-17 08:45:52 +00:00
|
|
|
bool "Enforce LoadPin at boot"
|
|
|
|
depends on SECURITY_LOADPIN
|
2024-05-14 22:48:38 +00:00
|
|
|
# Module compression breaks LoadPin unless modules are decompressed in
|
|
|
|
# the kernel.
|
|
|
|
depends on !MODULES || (MODULE_COMPRESS_NONE || MODULE_DECOMPRESS)
|
2016-05-17 08:45:52 +00:00
|
|
|
help
|
|
|
|
If selected, LoadPin will enforce pinning at boot. If not
|
|
|
|
selected, it can be enabled at boot with the kernel parameter
|
2018-09-24 21:43:59 +00:00
|
|
|
"loadpin.enforce=1".
|
2022-06-27 15:35:25 +00:00
|
|
|
|
|
|
|
config SECURITY_LOADPIN_VERITY
|
|
|
|
bool "Allow reading files from certain other filesystems that use dm-verity"
|
|
|
|
depends on SECURITY_LOADPIN && DM_VERITY=y && SECURITYFS
|
|
|
|
help
|
|
|
|
If selected LoadPin can allow reading files from filesystems
|
|
|
|
that use dm-verity. LoadPin maintains a list of verity root
|
|
|
|
digests it considers trusted. A verity backed filesystem is
|
|
|
|
considered trusted if its root digest is found in the list
|
|
|
|
of trusted digests.
|
|
|
|
|
|
|
|
The list of trusted verity can be populated through an ioctl
|
|
|
|
on the LoadPin securityfs entry 'dm-verity'. The ioctl
|
|
|
|
expects a file descriptor of a file with verity digests as
|
|
|
|
parameter. The file must be located on the pinned root and
|
2022-09-07 01:18:12 +00:00
|
|
|
start with the line:
|
|
|
|
|
|
|
|
# LOADPIN_TRUSTED_VERITY_ROOT_DIGESTS
|
|
|
|
|
|
|
|
This is followed by the verity digests, with one digest per
|
|
|
|
line.
|