aboutsummaryrefslogtreecommitdiffstats
path: root/security/ipe/Kconfig
blob: 95775139612df53b0b560df7b3afddcbdfc4d1d8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
# SPDX-License-Identifier: GPL-2.0-only
#
# Integrity Policy Enforcement (IPE) configuration
#

menuconfig SECURITY_IPE
	bool "Integrity Policy Enforcement (IPE)"
	depends on SECURITY && SECURITYFS && AUDIT && AUDITSYSCALL
	select CRYPTO_LIB_SHA256
	select PKCS7_MESSAGE_PARSER
	select SYSTEM_DATA_VERIFICATION
	select IPE_PROP_DM_VERITY if DM_VERITY
	select IPE_PROP_DM_VERITY_SIGNATURE if DM_VERITY && DM_VERITY_VERIFY_ROOTHASH_SIG
	select IPE_PROP_FS_VERITY if FS_VERITY
	select IPE_PROP_FS_VERITY_BUILTIN_SIG if FS_VERITY && FS_VERITY_BUILTIN_SIGNATURES
	help
	  This option enables the Integrity Policy Enforcement LSM
	  allowing users to define a policy to enforce a trust-based access
	  control. A key feature of IPE is a customizable policy to allow
	  admins to reconfigure trust requirements on the fly.

	  If unsure, answer N.

if SECURITY_IPE
config IPE_BOOT_POLICY
	string "Integrity policy to apply on system startup"
	help
	  This option specifies a filepath to an IPE policy that is compiled
	  into the kernel. This policy will be enforced until a policy update
	  is deployed via the $securityfs/ipe/policies/$policy_name/active
	  interface.

	  If unsure, leave blank.

config IPE_POLICY_SIG_SECONDARY_KEYRING
	bool "IPE policy update verification with secondary keyring"
	default y
	depends on SECONDARY_TRUSTED_KEYRING
	help
	  Also allow the secondary trusted keyring to verify IPE policy
	  updates.

	  If unsure, answer Y.

config IPE_POLICY_SIG_PLATFORM_KEYRING
	bool "IPE policy update verification with platform keyring"
	default y
	depends on INTEGRITY_PLATFORM_KEYRING
	help
	  Also allow the platform keyring to verify IPE policy updates.

	  If unsure, answer Y.

menu "IPE Trust Providers"

config IPE_PROP_DM_VERITY
	bool "Enable support for dm-verity based on root hash"
	depends on DM_VERITY
	help
	  This option enables the 'dmverity_roothash' property within IPE
	  policies. The property evaluates to TRUE when a file from a dm-verity
	  volume is evaluated, and the volume's root hash matches the value
	  supplied in the policy.

config IPE_PROP_DM_VERITY_SIGNATURE
	bool "Enable support for dm-verity based on root hash signature"
	depends on DM_VERITY && DM_VERITY_VERIFY_ROOTHASH_SIG
	help
	  This option enables the 'dmverity_signature' property within IPE
	  policies. The property evaluates to TRUE when a file from a dm-verity
	  volume, which has been mounted with a valid signed root hash,
	  is evaluated.

	  If unsure, answer Y.

config IPE_PROP_FS_VERITY
	bool "Enable support for fs-verity based on file digest"
	depends on FS_VERITY
	help
	  This option enables the 'fsverity_digest' property within IPE
	  policies. The property evaluates to TRUE when a file is fsverity
	  enabled and its digest matches the supplied digest value in the
	  policy.

	  if unsure, answer Y.

config IPE_PROP_FS_VERITY_BUILTIN_SIG
	bool "Enable support for fs-verity based on builtin signature"
	depends on FS_VERITY && FS_VERITY_BUILTIN_SIGNATURES
	help
	  This option enables the 'fsverity_signature' property within IPE
	  policies. The property evaluates to TRUE when a file is fsverity
	  enabled and it has a valid builtin signature whose signing cert
	  is in the .fs-verity keyring.

	  if unsure, answer Y.

config IPE_PROP_BPF_SIGNATURE
	bool "Enable support for Hornet BPF program signature verification"
	depends on SECURITY_HORNET
	help
	  This option enables the 'bpf_signature', 'bpf_kernel' and
	  'bpf_keyring' properties within IPE policies. The
	  'bpf_signature' property allows IPE to make policy decisions
	  based on the integrity verdict provided by the Hornet LSM
	  when a BPF program is loaded.  Verdicts include OK,
	  UNSIGNED, PARTIALSIG, BADSIG, and others.  The 'bpf_keyring'
	  property allows policies to match against the keyring
	  specified in bpf_attr (BUILTIN, SECONDARY, PLATFORM).

	  If unsure, answer Y.

endmenu

config SECURITY_IPE_KUNIT_TEST
	bool "Build KUnit tests for IPE" if !KUNIT_ALL_TESTS
	depends on KUNIT=y
	default KUNIT_ALL_TESTS
	help
	  This builds the IPE KUnit tests.

	  KUnit tests run during boot and output the results to the debug log
	  in TAP format (https://testanything.org/). Only useful for kernel devs
	  running KUnit test harness and are not for inclusion into a
	  production build.

	  For more information on KUnit and unit tests in general please refer
	  to the KUnit documentation in Documentation/dev-tools/kunit/.

	  If unsure, say N.

endif