为什么 ecryptfs-insert-wrapped-passphrase-into-keyring 需要更多时间

为什么 ecryptfs-insert-wrapped-passphrase-into-keyring 需要更多时间

我一直在尝试加密一个空目录。这涉及三个步骤。

步骤 1. 从用户处读取密钥并使用以下方式包装密码

time printf  "%s\n%s" <user key> <wrap phrase> | ecryptfs-wrap-passphrase <tmp wrap file> -

步骤 2.使用以下命令将密钥插入内核密钥环

time echo -n <wrap phrase> |  ecryptfs-insert-wrapped-passphrase-into-keyring <tmp wrap file>

步骤3.执行mount命令

time mount -i -t ecryptfs /tmp/folder /tmp/folder  -o with necessary options

步骤 1 - 耗时 4 秒

第 2 步 - 耗时 12 秒

步骤 3 - 耗时 141 毫秒

有人能解释一下为什么步骤 1 和步骤 2 花费更多时间吗?有什么方法可以优化吗?

提前致谢 Murali Marimekala

答案1

这些命令的作用截然不同,而且预计执行时间也不尽相同。

由于您使用了 mount 的 -i 选项,因此步骤#3 完全绕过 eCryptfs 用户空间。

步骤 1 和步骤 2 执行 CPU 密集型操作,以确保基于密码的密钥不容易被暴力破解。密钥拉伸或密钥强度是描述该过程的常用术语。

步骤#1 对一个密码执行密钥延伸。

步骤 #2 对 3 个密码执行密钥扩展。这是最初实施加密主页支持时引入的一个不幸错误的结果。密钥扩展实际上只在您称为“包装密码”的密码上才需要,但它也会发生在 fekek(文件加密密钥加密密钥)和 fnek(文件名加密密钥)上。此行为已保留以实现向后兼容性,虽然将来可能会修复,但目前没有修复它的计划。我们当然欢迎有人为上游项目贡献补丁,以不破坏向后兼容性的方式修复它。

相关内容