xref: /openbmc/linux/security/Kconfig (revision f9ad1af5)
11da177e4SLinus Torvalds#
21da177e4SLinus Torvalds# Security configuration
31da177e4SLinus Torvalds#
41da177e4SLinus Torvalds
51da177e4SLinus Torvaldsmenu "Security options"
61da177e4SLinus Torvalds
71da177e4SLinus Torvaldsconfig KEYS
81da177e4SLinus Torvalds	bool "Enable access key retention support"
91da177e4SLinus Torvalds	help
101da177e4SLinus Torvalds	  This option provides support for retaining authentication tokens and
111da177e4SLinus Torvalds	  access keys in the kernel.
121da177e4SLinus Torvalds
131da177e4SLinus Torvalds	  It also includes provision of methods by which such keys might be
141da177e4SLinus Torvalds	  associated with a process so that network filesystems, encryption
151da177e4SLinus Torvalds	  support and the like can find them.
161da177e4SLinus Torvalds
171da177e4SLinus Torvalds	  Furthermore, a special type of key is available that acts as keyring:
181da177e4SLinus Torvalds	  a searchable sequence of keys. Each process is equipped with access
191da177e4SLinus Torvalds	  to five standard keyrings: UID-specific, GID-specific, session,
201da177e4SLinus Torvalds	  process and thread.
211da177e4SLinus Torvalds
221da177e4SLinus Torvalds	  If you are unsure as to whether this is required, answer N.
231da177e4SLinus Torvalds
241da177e4SLinus Torvaldsconfig KEYS_DEBUG_PROC_KEYS
2506ec7be5SMichael LeMay	bool "Enable the /proc/keys file by which keys may be viewed"
261da177e4SLinus Torvalds	depends on KEYS
271da177e4SLinus Torvalds	help
2806ec7be5SMichael LeMay	  This option turns on support for the /proc/keys file - through which
2906ec7be5SMichael LeMay	  can be listed all the keys on the system that are viewable by the
3006ec7be5SMichael LeMay	  reading process.
311da177e4SLinus Torvalds
3206ec7be5SMichael LeMay	  The only keys included in the list are those that grant View
3306ec7be5SMichael LeMay	  permission to the reading process whether or not it possesses them.
3406ec7be5SMichael LeMay	  Note that LSM security checks are still performed, and may further
3506ec7be5SMichael LeMay	  filter out keys that the current process is not authorised to view.
3606ec7be5SMichael LeMay
3706ec7be5SMichael LeMay	  Only key attributes are listed here; key payloads are not included in
3806ec7be5SMichael LeMay	  the resulting table.
3906ec7be5SMichael LeMay
4006ec7be5SMichael LeMay	  If you are unsure as to whether this is required, answer N.
411da177e4SLinus Torvalds
421da177e4SLinus Torvaldsconfig SECURITY
431da177e4SLinus Torvalds	bool "Enable different security models"
442c40579bSAdrian Bunk	depends on SYSFS
451da177e4SLinus Torvalds	help
461da177e4SLinus Torvalds	  This allows you to choose different security modules to be
471da177e4SLinus Torvalds	  configured into your kernel.
481da177e4SLinus Torvalds
491da177e4SLinus Torvalds	  If this option is not selected, the default Linux security
501da177e4SLinus Torvalds	  model will be used.
511da177e4SLinus Torvalds
521da177e4SLinus Torvalds	  If you are unsure how to answer this question, answer N.
531da177e4SLinus Torvalds
54da31894eSEric Parisconfig SECURITYFS
55da31894eSEric Paris	bool "Enable the securityfs filesystem"
56da31894eSEric Paris	help
57da31894eSEric Paris	  This will build the securityfs filesystem.  It is currently used by
583323eec9SMimi Zohar	  the TPM bios character driver and IMA, an integrity provider.  It is
593323eec9SMimi Zohar	  not used by SELinux or SMACK.
60da31894eSEric Paris
61da31894eSEric Paris	  If you are unsure how to answer this question, answer N.
62da31894eSEric Paris
631da177e4SLinus Torvaldsconfig SECURITY_NETWORK
641da177e4SLinus Torvalds	bool "Socket and Networking Security Hooks"
651da177e4SLinus Torvalds	depends on SECURITY
661da177e4SLinus Torvalds	help
671da177e4SLinus Torvalds	  This enables the socket and networking security hooks.
681da177e4SLinus Torvalds	  If enabled, a security module can use these hooks to
691da177e4SLinus Torvalds	  implement socket and networking access controls.
701da177e4SLinus Torvalds	  If you are unsure how to answer this question, answer N.
711da177e4SLinus Torvalds
72df71837dSTrent Jaegerconfig SECURITY_NETWORK_XFRM
73df71837dSTrent Jaeger	bool "XFRM (IPSec) Networking Security Hooks"
74df71837dSTrent Jaeger	depends on XFRM && SECURITY_NETWORK
75df71837dSTrent Jaeger	help
76df71837dSTrent Jaeger	  This enables the XFRM (IPSec) networking security hooks.
77df71837dSTrent Jaeger	  If enabled, a security module can use these hooks to
78df71837dSTrent Jaeger	  implement per-packet access controls based on labels
79df71837dSTrent Jaeger	  derived from IPSec policy.  Non-IPSec communications are
80df71837dSTrent Jaeger	  designated as unlabelled, and only sockets authorized
81df71837dSTrent Jaeger	  to communicate unlabelled data can send without using
82df71837dSTrent Jaeger	  IPSec.
83df71837dSTrent Jaeger	  If you are unsure how to answer this question, answer N.
84df71837dSTrent Jaeger
85be6d3e56SKentaro Takedaconfig SECURITY_PATH
86be6d3e56SKentaro Takeda	bool "Security hooks for pathname based access control"
87be6d3e56SKentaro Takeda	depends on SECURITY
88be6d3e56SKentaro Takeda	help
89be6d3e56SKentaro Takeda	  This enables the security hooks for pathname based access control.
90be6d3e56SKentaro Takeda	  If enabled, a security module can use these hooks to
91be6d3e56SKentaro Takeda	  implement pathname based access controls.
92be6d3e56SKentaro Takeda	  If you are unsure how to answer this question, answer N.
93be6d3e56SKentaro Takeda
9431625340SJoseph Cihulaconfig INTEL_TXT
9531625340SJoseph Cihula	bool "Enable Intel(R) Trusted Execution Technology (Intel(R) TXT)"
9669575d38SShane Wang	depends on HAVE_INTEL_TXT
9731625340SJoseph Cihula	help
9831625340SJoseph Cihula	  This option enables support for booting the kernel with the
9931625340SJoseph Cihula	  Trusted Boot (tboot) module. This will utilize
10031625340SJoseph Cihula	  Intel(R) Trusted Execution Technology to perform a measured launch
10131625340SJoseph Cihula	  of the kernel. If the system does not support Intel(R) TXT, this
10231625340SJoseph Cihula	  will have no effect.
10331625340SJoseph Cihula
1043c556e41SArnaldo Carvalho de Melo	  Intel TXT will provide higher assurance of system configuration and
10531625340SJoseph Cihula	  initial state as well as data reset protection.  This is used to
10631625340SJoseph Cihula	  create a robust initial kernel measurement and verification, which
10731625340SJoseph Cihula	  helps to ensure that kernel security mechanisms are functioning
10831625340SJoseph Cihula	  correctly. This level of protection requires a root of trust outside
10931625340SJoseph Cihula	  of the kernel itself.
11031625340SJoseph Cihula
11131625340SJoseph Cihula	  Intel TXT also helps solve real end user concerns about having
11231625340SJoseph Cihula	  confidence that their hardware is running the VMM or kernel that
1133c556e41SArnaldo Carvalho de Melo	  it was configured with, especially since they may be responsible for
11431625340SJoseph Cihula	  providing such assurances to VMs and services running on it.
11531625340SJoseph Cihula
11631625340SJoseph Cihula	  See <http://www.intel.com/technology/security/> for more information
11731625340SJoseph Cihula	  about Intel(R) TXT.
11831625340SJoseph Cihula	  See <http://tboot.sourceforge.net> for more information about tboot.
11931625340SJoseph Cihula	  See Documentation/intel_txt.txt for a description of how to enable
12031625340SJoseph Cihula	  Intel TXT support in a kernel boot.
12131625340SJoseph Cihula
12231625340SJoseph Cihula	  If you are unsure as to whether this is required, answer N.
12331625340SJoseph Cihula
124788084abSEric Parisconfig LSM_MMAP_MIN_ADDR
125024e6cb4SAndreas Schwab	int "Low address space for LSM to protect from user allocation"
126788084abSEric Paris	depends on SECURITY && SECURITY_SELINUX
127a58578e4SDave Jones	default 65536
128788084abSEric Paris	help
129788084abSEric Paris	  This is the portion of low virtual memory which should be protected
130788084abSEric Paris	  from userspace allocation.  Keeping a user from writing to low pages
131788084abSEric Paris	  can help reduce the impact of kernel NULL pointer bugs.
132788084abSEric Paris
133788084abSEric Paris	  For most ia64, ppc64 and x86 users with lots of address space
134788084abSEric Paris	  a value of 65536 is reasonable and should cause no problems.
135788084abSEric Paris	  On arm and other archs it should not be higher than 32768.
136788084abSEric Paris	  Programs which use vm86 functionality or have some need to map
137788084abSEric Paris	  this low address space will need the permission specific to the
138788084abSEric Paris	  systems running LSM.
139788084abSEric Paris
1401da177e4SLinus Torvaldssource security/selinux/Kconfig
141e114e473SCasey Schauflersource security/smack/Kconfig
14200d7d6f8SKentaro Takedasource security/tomoyo/Kconfig
143f9ad1af5SJohn Johansensource security/apparmor/Kconfig
1441da177e4SLinus Torvalds
1453323eec9SMimi Zoharsource security/integrity/ima/Kconfig
1463323eec9SMimi Zohar
1476e65f92fSJohn Johansenchoice
1486e65f92fSJohn Johansen	prompt "Default security module"
1496e65f92fSJohn Johansen	default DEFAULT_SECURITY_SELINUX if SECURITY_SELINUX
1506e65f92fSJohn Johansen	default DEFAULT_SECURITY_SMACK if SECURITY_SMACK
1516e65f92fSJohn Johansen	default DEFAULT_SECURITY_TOMOYO if SECURITY_TOMOYO
152f9ad1af5SJohn Johansen	default DEFAULT_SECURITY_APPARMOR if SECURITY_APPARMOR
1536e65f92fSJohn Johansen	default DEFAULT_SECURITY_DAC
1546e65f92fSJohn Johansen
1556e65f92fSJohn Johansen	help
1566e65f92fSJohn Johansen	  Select the security module that will be used by default if the
1576e65f92fSJohn Johansen	  kernel parameter security= is not specified.
1586e65f92fSJohn Johansen
1596e65f92fSJohn Johansen	config DEFAULT_SECURITY_SELINUX
1606e65f92fSJohn Johansen		bool "SELinux" if SECURITY_SELINUX=y
1616e65f92fSJohn Johansen
1626e65f92fSJohn Johansen	config DEFAULT_SECURITY_SMACK
1636e65f92fSJohn Johansen		bool "Simplified Mandatory Access Control" if SECURITY_SMACK=y
1646e65f92fSJohn Johansen
1656e65f92fSJohn Johansen	config DEFAULT_SECURITY_TOMOYO
1666e65f92fSJohn Johansen		bool "TOMOYO" if SECURITY_TOMOYO=y
1676e65f92fSJohn Johansen
168f9ad1af5SJohn Johansen	config DEFAULT_SECURITY_APPARMOR
169f9ad1af5SJohn Johansen		bool "AppArmor" if SECURITY_APPARMOR=y
170f9ad1af5SJohn Johansen
1716e65f92fSJohn Johansen	config DEFAULT_SECURITY_DAC
1726e65f92fSJohn Johansen		bool "Unix Discretionary Access Controls"
1736e65f92fSJohn Johansen
1746e65f92fSJohn Johansenendchoice
1756e65f92fSJohn Johansen
1766e65f92fSJohn Johansenconfig DEFAULT_SECURITY
1776e65f92fSJohn Johansen	string
1786e65f92fSJohn Johansen	default "selinux" if DEFAULT_SECURITY_SELINUX
1796e65f92fSJohn Johansen	default "smack" if DEFAULT_SECURITY_SMACK
1806e65f92fSJohn Johansen	default "tomoyo" if DEFAULT_SECURITY_TOMOYO
181f9ad1af5SJohn Johansen	default "apparmor" if DEFAULT_SECURITY_APPARMOR
1826e65f92fSJohn Johansen	default "" if DEFAULT_SECURITY_DAC
1836e65f92fSJohn Johansen
1841da177e4SLinus Torvaldsendmenu
1851da177e4SLinus Torvalds
186