我刚刚完成了 LUKS 加密系统的设置,该系统使用 FIDO2 硬件令牌解锁,如下所示这篇博文。然而,在家里我通常会将硬件令牌插入,只有在旅行时才将其移除。因此,如果有人窃取笔记本电脑以及插入的硬件令牌,他们可以轻松启动笔记本电脑并解密磁盘。
为了解决这个问题,我想使用带有密码和硬件令牌的 2FA,但到目前为止,我只找到了使用密码 + HMAC-SHA1 的解决方案,即使用密码作为质询并将生成的哈希值存储为实际密码LUKS,所以这并不能推广到 FIDO2。有没有办法让 2FA 也与 FIDO2 一起使用?
答案1
Systemd 从版本 248 开始就有一个模块。它叫做systemd-cryptenroll。根据 FIDO2 棒的功能,2FA 可以使用多个选项:
--fido2-with-user-presence=true
配置系统,因此您需要触摸 FIDO2 棒。--fido2-with-client-pin=true
配置系统,以便您需要 FIDO2 棒并输入 PIN。--fido2-with-user-verification=true
配置系统,以便您需要 FIDO2 棒并对系统进行身份验证。
一个示例调用是
systemd-cryptenroll --fido2-device=auto --fido2-with-user-verification=true /dev/sda3
但您应该尝试使用备用 USB 驱动器或映像。在将 FIDO2 密钥注册到真实设备之前,请确保一切正常。
将密钥注册到设备后,在fido2-device=auto
中的设备选项中/etc/crypttab
。
可以看到多个例子这里。