8.4. 使用加密密钥
您可以通过管理加密密钥来改进不提供受信任的平台模块(TPM)的系统上的系统安全性。
先决条件
对于 64 位 ARM 架构和 IBM Z,载入
encrypted-keys
内核模块:# modprobe encrypted-keys
有关如何载入内核模块的更多信息,请参阅 在系统运行时载入内核模块。
流程
使用随机数字序列生成用户密钥。
# keyctl add user kmk-user "$(dd if=/dev/urandom bs=1 count=32 2>/dev/null)" @u 427069434
命令生成名为
kmk-user
的用户密钥,该密钥充当 主密钥,用于密封实际加密的密钥。使用上一步中的主密钥生成加密密钥:
# keyctl add encrypted encr-key "new user:kmk-user 32" @u 1012412758
验证
列出指定用户密钥环中的所有密钥:
# keyctl list @u 2 keys in keyring: 427069434: --alswrv 1000 1000 user: kmk-user 1012412758: --alswrv 1000 1000 encrypted: encr-key
重要
未由可信主密钥密封的加密密钥仅作为用于加密它们的用户主密钥(随机数字密钥)安全。因此,尽可能安全地加载主用户密钥,最好在引导过程的早期加载。
其它资源
-
keyctl (1)
手册页 - 内核密钥保留服务