Menu Close

21.4. 可信和加密的密钥

下面的部分介绍了可信和加密的密钥,作为增强系统安全性的重要部分。

可信的加密的密钥是利用内核密钥环服务的内核生成的可变长度对称密钥。这种类型的密钥从未以未加密的形式显示在用户空间中,这意味着可以验证其完整性,这意味着扩展验证模块 (EVM) 可以使用它们来验证并确认运行中系统的完整性。用户级别程序只能访问加密的 Blob 格式的密钥。

受信任的密钥需要硬件组件:受信任的平台模块 (TPM) 芯片,它用于创建和加密密钥。TPM 使用名为存储根密钥 (SRK) 的 2048 位 RSA 密钥密封密钥。

注意

要使用 TPM 1.2 规范,请通过机器固件中的设置或使用 tpm-tools 软件包中的 tpm_setactive 命令启用并激活它。此外,还需要安装 TrouSers 软件堆栈,并且需要运行 tcsd 守护进程才能与 TPM(专用硬件)通信。tcsd 守护进程是 TrouSers 套件的一部分,该套件可通过 trousers 软件包获得。TPM 2.0 较新近且向后不兼容,使用不同的软件堆栈,其中 tpm2-toolsibm-tss 实用程序提供对专用硬件的访问。

此外,用户可以使用特定的 TPM 平台配置寄存器 (PCR) 值集密封可信密钥。PCR 包含一组完整性管理值,它们反映了固件、引导装载程序和操作系统。这意味着 PCR 密封的密钥只能被加密的同一系统上的 TPM 解密。但是,一旦加载了 PCR 密封的可信密钥(添加至密钥环),并且验证其关联的 PCR 值后,就可以使用新的(或将来)PCR 值进行更新,以便可以引导新的内核。单个密钥也可以保存为多个 Blob,每个密钥都有不同的 PCR 值。

加密密钥不需要 TPM,因为它们使用内核高级加密标准 (AES),这使其比可信密钥快。加密的密钥是使用内核生成的随机数字创建的,并在导入到用户空间 Blob 时由主密钥加密。主密钥可以是可信密钥或用户密钥。如果主密钥不被信任,加密的密钥的安全性仅与用于加密它的用户密钥一样安全。