8.2. 可信和加密的密钥
可信密钥 和 加密密钥 是增强系统安全性的一个重要部分。
可信和加密的密钥是利用内核密钥环服务的内核生成的可变长度对称密钥。可以验证密钥的完整性,这意味着可以通过扩展验证模块 (EVM) 来验证并确认正在运行的系统的完整性。用户级别程序只能访问加密的 Blob 格式的密钥。
- 可信密钥
可信密钥需要受信任的平台模块(TPM)芯片,用于创建和加密(密封)密钥。每个 TPM 都有一个主包装密钥,称为存储根密钥,其存储在 TPM 本身。
注意Red Hat Enterprise Linux 8 支持 TPM 1.2 和 TPM 2.0。如需更多信息,请参阅红帽知识库解决方案 是否受红帽支持的受信任的平台模块(TPM)?。
您可以输入以下命令来验证 TPM 2.0 芯片是否已启用:
$ cat /sys/class/tpm/tpm0/tpm_version_major 2
您还可以启用 TPM 2.0 芯片,并通过机器固件中的设置管理 TPM 2.0 设备。
此外,您还可以使用特定的 TPM 的 平台配置寄存器 (PCR)值集密封可信的密钥。PCR 包含一组完整性管理值,它们反映了固件、引导装载程序和操作系统。这意味着 PCR 密封的密钥只能被加密的同一系统上的 TPM 解密。但是,当加载 PCR 密封的可信密钥(添加到密钥环)时,且因此验证其关联的 PCR 值时,可以使用新的(或未来的)PCR 值对其进行更新,以便可以引导新的内核。您可以将单个密钥另存为多个 blob,每个密钥都有不同的 PCR 值。
- 加密的密钥
- 加密的密钥不需要 TPM,因为它们使用内核高级加密标准(AES),这使其比可信密钥更快。加密的密钥是使用内核生成的随机数字创建的,并在导入到用户空间 Blob 时由主密钥加密。
主密钥可以是可信密钥或用户密钥。如果主密钥不被信任,加密的密钥的安全性仅与用于加密它的用户密钥一样安全。