我想在 debian linux 上使用 luks 和智能卡加密和解密文件系统容器文件。
该智能卡是 Nitrokey Start,它基本上是 USB 读卡器中的紧凑型智能卡。
我知道如何使用 dd、cryptsetup 和密钥文件创建和挂载容器文件。但我不知道如何使用智能卡代替密钥文件。
我读到一些资料说这是不可能的,因为你无法从智能卡中读取密钥。
那么我理解得对吗?我必须:
- 创建一个容器
- 生成密钥文件
- 使用 cryptsetup 和密钥文件加密容器
- 使用智能卡加密密钥文件
- 删除未加密的密钥文件
每次我想要解密并挂载容器时,我都必须:
- 使用智能卡解密密钥文件
- 使用解密的密钥文件解密容器
- 删除未加密的密钥文件
这是正确的吗?有没有更好的方法可以用智能卡实现 HDD(或文件系统容器)加密?
注意:我并不受 cryptsetup 和 luks 的约束,因此如果有更好的工具可以实现我的目标,请告诉我。
答案1
看起来你可以使用名为“keytocard”的 GPG 命令将外部密钥加载到 Nitrokey 上
- 生成密钥文件
- 将密钥文件复制到 Nitrokey (keytocard)
- 从 HDD 安全擦除密钥文件
- 使用 Nitrokey 上的密钥文件正常加密\解密
加密容器有很多选择,其中 VeraCrypt 是最容易使用的。
以下是 Nitrokey 的官方文档: https://www.nitrokey.com/documentation/applications#p:nitrokey-start&os:linux&a:hard-disk-encryption
如果您已经有一个使用密钥加密的容器,只需复制该容器并进行测试,如果它可以从 Nitrokey 中工作,只需安全擦除硬盘上的副本即可。现在剩下的唯一副本就在密钥上。
(你可能需要备份)