![dm-crypt 可以配置为在每次读/写时请求密钥吗?](https://linux22.com/image/110005/dm-crypt%20%E5%8F%AF%E4%BB%A5%E9%85%8D%E7%BD%AE%E4%B8%BA%E5%9C%A8%E6%AF%8F%E6%AC%A1%E8%AF%BB%2F%E5%86%99%E6%97%B6%E8%AF%B7%E6%B1%82%E5%AF%86%E9%92%A5%E5%90%97%EF%BC%9F.png)
我的理解是 dm-crypt 用于抽象实际的块设备,以便读/解密和写/加密自动发生。
但是,假设设备与目标映射:地穴已创建,它有一个文件系统,并且已经安装,是否可以告诉 dm-crypt 在每次写入(加密)和读取(解密)时询问密钥,而不是自动使用表映射中存在的密钥?
我真正想问的是,我们能否扩展 FDE,使其在运行时也具有安全性,而不仅仅是在计算机关闭或硬盘被盗时?或者 FBE 是处理此类事情唯一合适的方法吗?
答案1
原则上,dm-crypt 可以“忘记”密钥并要求每次都重新输入,但这是不切实际且非常不方便的。对文件系统的读取和写入不一定直接对应于“打开文件”或“保存文件”等用户操作。
- 当程序打开一个文件时,它不一定会立即将整个文件加载到 RAM 中。它可能会保持文件打开并仅根据需要读取其中的部分内容,并在任意时间以密码提示打断您。
- 同样,当程序写入文件时,它不一定会立即写入整个文件。即使确实如此,写入缓存也会延迟实际写入磁盘的时间。
- 根据您系统上的软件,可能有一些东西需要在后台访问文件系统,而与您正在执行的操作无关(并且可能在您离开计算机时)。这会导致密码提示出现更多随机中断。
在实践中,你不能做你想做的事,因为 dm-crypt 不支持它,因为由于上述原因它是不切实际的。
答案2
如果我没有正确理解您的意思,并且您建议密钥在运行时不断变化,那么需要保留一个巨大的密钥历史“地图”,以便返回并访问 n 个密钥之前写入的数据。或者,如果密钥更改导致磁盘驱动器在每次密钥更改时都被“重新映像”,则您需要某种非常快的驱动器来实现这一点。