NixOS 上的安全启动与 TPM 支持的全盘加密

主要观点:介绍在 NixOS 上启用安全启动(Secure Boot)和 TPM 支持的全磁盘加密(Full Disk Encryption)的方法及相关知识。
关键信息

  • 过去十年常用 LUKS 加密磁盘,现通过安全启动和 TPM 解决头节点机器启动时输入密码的问题。
  • TPM 是符合规范的加密协处理器,可存储密钥和执行加密操作,用于验证系统完整性等。
  • 安全启动可验证 UEFI 执行的代码,防止恶意软件和物理攻击,Linux 系统利用shim实现信任扩展。
  • 要在 NixOS 上启用安全启动,需生成安全启动密钥、启用bootspeclanzaboote、准备 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 的项目及文章。最后提醒若发现文章不准确可联系作者。
阅读 21
0 条评论