Security options
安全选项
这里的选项不明白的建议不要选,否则有可能弄巧成拙.

Enable access key retention support
CONFIG_KEYS

在内核中保留认证令牌(authentication token)和访问密钥(access key).eCryptfs(CONFIG_ECRYPT_FS)依赖于它.不确定的选"N".

Enable register of persistent per-UID keyrings
启用持久性每UID密钥环的注册
Large payload keys
大负载密钥

TRUSTED KEYS
CONFIG_TRUSTED_KEYS
    "TRUSTED KEY"的意思是由TPM(可信赖平台模块)用RSA算法封装的一对随机数.开启此项后,内核将可以为创建/封装/解封"TRUSTED KEY"提供支持.如果引导PCR(平台配置寄存器)和各种条件都匹配,那么TPM只解封密钥.用户空间永远只能看到加密过后的二进制内容.不确定的选"N".
ENCRYPTED KEYS
CONFIG_ENCRYPTED_KEYS
    "ENCRYPTED KEY"的意思是由内核封装的一对随机数,该对随机数可以用一个"主密钥"使用对称加密算法进行加密和解密.开启此项后,内核将可以为创建/加密/解密"ENCRYPTED KEY"提供支持."主密钥"既可以是"TRUSTED KEY"也可以是"user-key"(用户选择的密钥).用户空间永远只能看到/存储加密过后的二进制内容.不确定的选"N".
Enable the /proc/keys file by which keys may be viewed
CONFIG_KEYS_DEBUG_PROC_KEYS
    开启"/proc/keys"文件支持,该文件中保存了系统上所有可见的密钥.注意,LSM(Linux安全模块)安全检查仍然是必须的.不确定的选"N".
    

Diffie-Hellman operations on retained key
Diffie-Hellman对保留密钥的操作

Restrict unprivileged access to the kernel syslog
CONFIG_SECURITY_DMESG_RESTRICT

禁止非特权用户访问内核日志(dmesg),相当于"echo 1 > /proc/sys/kernel/dmesg_restrict".不确定的选"N".

Enable different security models
CONFIG_SECURITY

允许内核选择不同的LSM(Linux安全模块),如果未选中则内核将使用默认的安全模块
("Default security module").不确定的选"N".

Enable the securityfs filesystem
CONFIG_SECURITYFS

securityfs安全文件系统支持.当前仅被TPM bios字符设备驱动以及IMA(完整性提供者)使用.
它与SELinux或SMACK之类没有关系.不确定的选"N".

Socket and Networking Security Hooks
CONFIG_SECURITY_NETWORK

允许安全模块通过Security Hook对Socket与Networking进行访问控制.不确定的选"N".

Remove the kernel mapping in user mode

在用户模式下删除内核映射

XFRM (IPSec) Networking Security Hooks
CONFIG_SECURITY_NETWORK_XFRM
    为XFRM(IPSec)启用安全Hook.这样安全模块可以通过这些hook,根据IPSec策略标签,
    实现针对每个网络包的访问控制.非IPSec通信则被当做"无标签"处理,
    仅允许那些被明确批准可以不使用策略标签的socket才能不通过IPSec进行通信.不确定的选"N".

Security hooks for pathname based access control
CONFIG_SECURITY_PATH

此安全钩子程序可以让各种安全模块实现基于路径的访问控制.不确定的选"N".

Enable Intel(R) Trusted Execution Technology (Intel(R) TXT)
CONFIG_INTEL_TXT

支持使用可信引导(Trusted Boot)技术引导内核(需要使用tboot模块).这将使用英特尔TXT(可信任执行技术)来引导内核.
在不支持TXT的平台上开启此项没有效果.详见"Documentation/intel_txt.txt"文档.不确定的选"N".

Low address space for LSM to protect from user allocation
CONFIG_LSM_MMAP_MIN_ADDR

禁止用户空间分配的低位内存范围.禁止用户写入低位内存有助于降低内核NULL指针
漏洞造成的破坏(参见CONFIG_DEFAULT_MMAP_MIN_ADDR选项).建议保持默认值"65536".

Harden memory copies between kernel and userspace

硬化内核和用户空间之间的内存副本

Harden common str/mem functions against buffer overflows

硬化常见的str / mem函数以防止缓冲区溢出

NSA SELinux Support
CONFIG_SECURITY_SELINUX

SELinux(安全增强Linux)是美国国家安全局(NSA)开发的Linux安全模块,
它拥有一个灵活而强制性的访问控制结构,可防御未知攻击,相当于B1级的军事安全性能
(比微软所谓的C2等高得多).应用SELinux后,可以减轻恶意攻击或恶意软件带来的灾难,
对机密性和完整性有很高要求的信息,亦可提供很高的安全保障.但另一方面,
如果不深入了解SELinux知识而盲目使用,则会弄巧成拙.不确定的选"N".

NSA SELinux boot parameter
CONFIG_SECURITY_SELINUX_BOOTPARAM
    添加"selinux"内核引导参数.以允许在引导时使用'selinux=0'禁用SELinux或'selinux=1'启用SELinux.
    NSA SELinux boot parameter default value
    CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE
        "selinux"内核引导参数的默认值.
NSA SELinux runtime disable
CONFIG_SECURITY_SELINUX_DISABLE
    允许在运行时禁用SELinux.建议选"N".
NSA SELinux Development Support
CONFIG_SECURITY_SELINUX_DEVELOP
    SELinux开发支持.开启此项后,除非明确使用"enforcing=1"引导参数让内核以"强制模式"运行,
    否则内核将以"许可模式"运行(记录所有事件,同时允许所有操作).
    主要用于测试SELinux以及策略开发.此外,开启此项后,
    还可以在运行时通过"/selinux/enforce"让内核在"强制模式"与"许可模式"之间切换.
NSA SELinux AVC Statistics
CONFIG_SECURITY_SELINUX_AVC_STATS
    搜集访问向量缓存(access vector cache)的统计信息并在/selinux/avc/cache_stats中显示出来.
    这些信息可以用avcstat之类的工具查看.
NSA SELinux checkreqprot default value
CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE
    内核引导参数"checkreqprot"的默认值.设为"0"表示默认检查内核要求执行的保护策略,
    设为"1"表示默认检查应用程序要求执行的保护策略.
    此值还可以在运行时通过/selinux/checkreqprot修改.不确定的选"1".
NSA SELinux maximum supported policy format version
CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX
    将支持的策略格式的最高版本设置为一个特定的数值.
    该数值将通过/selinux/policyvers向用户空间报告,
    并在加载策略时被使用.不确定的选"N".
    NSA SELinux maximum supported policy format version value
        支持策略格式的最高版本的数值.可以通过"checkpolicy -V"
        命令检查当前工具链支持的版本数值.

Simplified Mandatory Access Control Kernel Support
CONFIG_SECURITY_SMACK

Smack(简化的强制访问控制内核)内核安全模块.Smack是一种简单而有效的强制访问控制机制,
它的简单体现在安全策略的配置很简单,它的有效体现在完全使用LSM作为其控制手段.
不确定的选"N".

TOMOYO Linux Support
CONFIG_SECURITY_TOMOYO

TOMOYO Linux是日本NTT数据公司开发的一种Linux安全模块.不确定的选"N".

AppArmor support
CONFIG_SECURITY_APPARMOR

AppArmor是来自Novell的一种Linux安全模块.不确定的选"N".

Pin load of kernel files (modules, fw, etc) to one filesystem

将内核文件(模块,fw等)加载到一个文件系统

Yama support
CONFIG_SECURITY_YAMA

Yama(阎王)是3.4版内核新引入的一种Linux安全模块.不确定的选"N".

Integrity subsystem

完整性子系统

Digital signature verification using multiple keyrings
CONFIG_INTEGRITY_SIGNATURE

  允许使用多个密钥环(keyring)进行数字签名验证,也就允许为多个不同的使用场合
  (evm,ima,module)分别使用不同的keyring.看不懂的选"N".

Enables integrity auditing support

  启用完整性审计支持
  Enable asymmetric keys support
  CONFIG_INTEGRITY_ASYMMETRIC_KEYS
      允许使用非对称密钥进行数字签名验证.

Integrity Measurement Architecture(IMA)
CONFIG_IMA

IMA(完整性度量架构)是一个在TCG(可信计算工作组)技术规范之上提出的完整性检查技术.
IMA维护着一个系统关键文件的哈希值列表,从而可以检测这些关键文件是否被篡改.
如果系统上有TPM安全芯片,那么IMA还会在TPM芯片内存储哈希值的集合.
这样的TPM芯片可以提供给第三方,用于检查系统上的关键文件是否被篡改.不确定的选"N".
Enables auditing support
CONFIG_IMA_AUDIT
    添加"ima_audit"内核引导参数支持.当设为"ima_audit=1"时,将允许显示完整性审计信息.
Default template
    默认模板
Default integrity hash algorithm
    默认完整性哈希算法
Enable multiple writes to the IMA policy
    启用对IMA策略的多次写入
Enable reading back the current IMA policy
    启用回读当前的IMA策略
Appraise integrity measurements
CONFIG_IMA_APPRAISE
    本地完整性鉴定支持.这样就可以在加载文件时检验它的完整性.这要求系统配置EVM支持.不确定的选"N".

EVM support
CONFIG_EVM

EVM通过保护文件的安全扩展属性来对抗完整性攻击.

EVM HMAC version
CONFIG_EVM_HMAC_VERSION
    支持的EVM HMAC版本:"1"表示原始版本,默认值"2"表示添加了文件系统UUID支持的改进版本.

Default security module

内核默认的安全模块.[提示]"Unix Discretionary Access Controls"是经典的UNIX基于目录的访问控制安全模型.如果没有开启任何安全模块,这将是默认值.