24b8f9b491b8308033484030764adc5fccb40594
[firefly-linux-kernel-4.4.55.git] / security / Kconfig
1 #
2 # Security configuration
3 #
4
5 menu "Security options"
6
7 config KEYS
8         bool "Enable access key retention support"
9         help
10           This option provides support for retaining authentication tokens and
11           access keys in the kernel.
12
13           It also includes provision of methods by which such keys might be
14           associated with a process so that network filesystems, encryption
15           support and the like can find them.
16
17           Furthermore, a special type of key is available that acts as keyring:
18           a searchable sequence of keys. Each process is equipped with access
19           to five standard keyrings: UID-specific, GID-specific, session,
20           process and thread.
21
22           If you are unsure as to whether this is required, answer N.
23
24 config TRUSTED_KEYS
25         tristate "TRUSTED KEYS"
26         depends on KEYS && TCG_TPM
27         select CRYPTO
28         select CRYPTO_HMAC
29         select CRYPTO_SHA1
30         help
31           This option provides support for creating, sealing, and unsealing
32           keys in the kernel. Trusted keys are random number symmetric keys,
33           generated and RSA-sealed by the TPM. The TPM only unseals the keys,
34           if the boot PCRs and other criteria match.  Userspace will only ever
35           see encrypted blobs.
36
37           If you are unsure as to whether this is required, answer N.
38
39 config KEYS_DEBUG_PROC_KEYS
40         bool "Enable the /proc/keys file by which keys may be viewed"
41         depends on KEYS
42         help
43           This option turns on support for the /proc/keys file - through which
44           can be listed all the keys on the system that are viewable by the
45           reading process.
46
47           The only keys included in the list are those that grant View
48           permission to the reading process whether or not it possesses them.
49           Note that LSM security checks are still performed, and may further
50           filter out keys that the current process is not authorised to view.
51
52           Only key attributes are listed here; key payloads are not included in
53           the resulting table.
54
55           If you are unsure as to whether this is required, answer N.
56
57 config SECURITY_DMESG_RESTRICT
58         bool "Restrict unprivileged access to the kernel syslog"
59         default n
60         help
61           This enforces restrictions on unprivileged users reading the kernel
62           syslog via dmesg(8).
63
64           If this option is not selected, no restrictions will be enforced
65           unless the dmesg_restrict sysctl is explicitly set to (1).
66
67           If you are unsure how to answer this question, answer N.
68
69 config SECURITY
70         bool "Enable different security models"
71         depends on SYSFS
72         help
73           This allows you to choose different security modules to be
74           configured into your kernel.
75
76           If this option is not selected, the default Linux security
77           model will be used.
78
79           If you are unsure how to answer this question, answer N.
80
81 config SECURITYFS
82         bool "Enable the securityfs filesystem"
83         help
84           This will build the securityfs filesystem.  It is currently used by
85           the TPM bios character driver and IMA, an integrity provider.  It is
86           not used by SELinux or SMACK.
87
88           If you are unsure how to answer this question, answer N.
89
90 config SECURITY_NETWORK
91         bool "Socket and Networking Security Hooks"
92         depends on SECURITY
93         help
94           This enables the socket and networking security hooks.
95           If enabled, a security module can use these hooks to
96           implement socket and networking access controls.
97           If you are unsure how to answer this question, answer N.
98
99 config SECURITY_NETWORK_XFRM
100         bool "XFRM (IPSec) Networking Security Hooks"
101         depends on XFRM && SECURITY_NETWORK
102         help
103           This enables the XFRM (IPSec) networking security hooks.
104           If enabled, a security module can use these hooks to
105           implement per-packet access controls based on labels
106           derived from IPSec policy.  Non-IPSec communications are
107           designated as unlabelled, and only sockets authorized
108           to communicate unlabelled data can send without using
109           IPSec.
110           If you are unsure how to answer this question, answer N.
111
112 config SECURITY_PATH
113         bool "Security hooks for pathname based access control"
114         depends on SECURITY
115         help
116           This enables the security hooks for pathname based access control.
117           If enabled, a security module can use these hooks to
118           implement pathname based access controls.
119           If you are unsure how to answer this question, answer N.
120
121 config INTEL_TXT
122         bool "Enable Intel(R) Trusted Execution Technology (Intel(R) TXT)"
123         depends on HAVE_INTEL_TXT
124         help
125           This option enables support for booting the kernel with the
126           Trusted Boot (tboot) module. This will utilize
127           Intel(R) Trusted Execution Technology to perform a measured launch
128           of the kernel. If the system does not support Intel(R) TXT, this
129           will have no effect.
130
131           Intel TXT will provide higher assurance of system configuration and
132           initial state as well as data reset protection.  This is used to
133           create a robust initial kernel measurement and verification, which
134           helps to ensure that kernel security mechanisms are functioning
135           correctly. This level of protection requires a root of trust outside
136           of the kernel itself.
137
138           Intel TXT also helps solve real end user concerns about having
139           confidence that their hardware is running the VMM or kernel that
140           it was configured with, especially since they may be responsible for
141           providing such assurances to VMs and services running on it.
142
143           See <http://www.intel.com/technology/security/> for more information
144           about Intel(R) TXT.
145           See <http://tboot.sourceforge.net> for more information about tboot.
146           See Documentation/intel_txt.txt for a description of how to enable
147           Intel TXT support in a kernel boot.
148
149           If you are unsure as to whether this is required, answer N.
150
151 config LSM_MMAP_MIN_ADDR
152         int "Low address space for LSM to protect from user allocation"
153         depends on SECURITY && SECURITY_SELINUX
154         default 65536
155         help
156           This is the portion of low virtual memory which should be protected
157           from userspace allocation.  Keeping a user from writing to low pages
158           can help reduce the impact of kernel NULL pointer bugs.
159
160           For most ia64, ppc64 and x86 users with lots of address space
161           a value of 65536 is reasonable and should cause no problems.
162           On arm and other archs it should not be higher than 32768.
163           Programs which use vm86 functionality or have some need to map
164           this low address space will need the permission specific to the
165           systems running LSM.
166
167 source security/selinux/Kconfig
168 source security/smack/Kconfig
169 source security/tomoyo/Kconfig
170 source security/apparmor/Kconfig
171
172 source security/integrity/ima/Kconfig
173
174 choice
175         prompt "Default security module"
176         default DEFAULT_SECURITY_SELINUX if SECURITY_SELINUX
177         default DEFAULT_SECURITY_SMACK if SECURITY_SMACK
178         default DEFAULT_SECURITY_TOMOYO if SECURITY_TOMOYO
179         default DEFAULT_SECURITY_APPARMOR if SECURITY_APPARMOR
180         default DEFAULT_SECURITY_DAC
181
182         help
183           Select the security module that will be used by default if the
184           kernel parameter security= is not specified.
185
186         config DEFAULT_SECURITY_SELINUX
187                 bool "SELinux" if SECURITY_SELINUX=y
188
189         config DEFAULT_SECURITY_SMACK
190                 bool "Simplified Mandatory Access Control" if SECURITY_SMACK=y
191
192         config DEFAULT_SECURITY_TOMOYO
193                 bool "TOMOYO" if SECURITY_TOMOYO=y
194
195         config DEFAULT_SECURITY_APPARMOR
196                 bool "AppArmor" if SECURITY_APPARMOR=y
197
198         config DEFAULT_SECURITY_DAC
199                 bool "Unix Discretionary Access Controls"
200
201 endchoice
202
203 config DEFAULT_SECURITY
204         string
205         default "selinux" if DEFAULT_SECURITY_SELINUX
206         default "smack" if DEFAULT_SECURITY_SMACK
207         default "tomoyo" if DEFAULT_SECURITY_TOMOYO
208         default "apparmor" if DEFAULT_SECURITY_APPARMOR
209         default "" if DEFAULT_SECURITY_DAC
210
211 endmenu
212