主要观点:介绍在 NixOS 上启用安全启动(Secure Boot)和 TPM 支持的全磁盘加密(Full Disk Encryption)的方法及相关知识。
关键信息:
- 过去十年常用 LUKS 加密磁盘,现通过安全启动和 TPM 解决头节点机器启动时输入密码的问题。
- TPM 是符合规范的加密协处理器,可存储密钥和执行加密操作,用于验证系统完整性等。
- 安全启动可验证 UEFI 执行的代码,防止恶意软件和物理攻击,Linux 系统利用
shim
实现信任扩展。 - 要在 NixOS 上启用安全启动,需生成安全启动密钥、启用
bootspec
和lanzaboote
、准备 UEFI 并注册密钥等步骤。 - 可使用
systemd-cryptenroll
通过 TPM 解锁根分区。
重要细节: - 生成安全启动密钥使用
sbctl create-keys
,密钥存于/etc/secureboot
。 lanzaboote
stub 与systemd-stub
不同,可单独存储内核和 initrd 并验证签名。- 准备 UEFI 时要启用安全启动并清除预加载的密钥,还可设置 UEFI 密码。
- 注册密钥使用
sbctl enroll-keys
,可选择包含微软的 UEFI 供应商证书。 systemd-cryptenroll
需启用 systemd initrd 钩子且测量 PCR12 以防内核命令行被修改。
提供的有用资源包括多个关于安全启动和 TPM 的项目及文章。最后提醒若发现文章不准确可联系作者。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。