我目前知道两种将 LUKS 加密根分区绑定到 TPM2 的最新方法:systemd-cryptenroll
和clevis
.在成功检查密钥密封的 PCR 后,他们似乎都释放了加密密钥。
但我不喜欢在没有用户交互的情况下解密卷的想法。我宁愿有一个类似于 BitLocker for Windows 提供的解决方案:TPM 和额外的 PIN 或恢复密钥。
尽管我在网上进行了详尽的搜索,但我无法找到这方面的任何提示。有人知道解决方案吗?
编辑:有一个--recovery-key
选项systemd-cryptenroll
。我只关心如何在使用 TPM 时获得额外的 PIN 要求的问题。
答案1
2022-05-21 - systemd v251
对 TPM2 + PIN 的支持已合并到 systemd-cryptenroll 中,并作为 v251 版本的一部分提供。
磁盘加密的变化:
systemd-cryptenroll 现在可以通过新的 --tpm2-with-pin= 选项控制在使用基于 TPM 的卷解锁时是否要求用户输入 PIN。
选项 tpm2-pin= 可以在 /etc/crypttab 中使用。
答案2
当前打开 LUKS 设备时不支持双因素身份验证。然而,在未来的某个时候,可能会出现这种情况。
LUKS 本身并不需要两个“密码”(密码、密钥文件、TPM 密钥...)来访问给定设备;它只知道密钥槽,其中一个就足以解锁设备。在此基础上添加对除 LUKS 支持之外的其他身份验证机制的支持的工具,并且由于它们提供额外的身份验证,因此需要某种 PIN 的最佳位置可能就在那里。 Clevis 和 systemd 的开发者都意识到了人们的兴趣:
- 通过 TPM2 +“Tang 或密码”解锁设备是U形夹的相关功能要求;
- “未来”部分Lennart Poettering 关于 systemd 248 对 TPM2 等的支持的帖子。提到Windows的PIN+TPM2机制。