将 EncFS 的配置文件存储在 SmartCard/Token 中

将 EncFS 的配置文件存储在 SmartCard/Token 中

我曾经将随机生成的密钥文件存储在智能卡中,并且 TrueCrypt 能够使用 PKCS #11 访问该密钥文件。

我现在正在尝试 EncFS。有些人抱怨它将一些加密数据(迭代次数、盐等)存储在纯文本 XML 文件中。这些数据对于攻击者来说很有价值,因此人们建议将文件保存在安全的地方。

当时我想到将其存储在智能卡/令牌中。XML 文件有几个字节超过 1KB,因此任何智能卡都应该能够存储它。

问题是,通常,这些密钥文件由每个应用程序使用 PKCS #11 API 直接读取。在 Windows 中,我使用 EncFSMP 来处理 EncFS 挂载。它只有一个用于设置配置文件为外部的复选框,以及一个简单的打开文件对话框,用于在普通文件系统中选择文件。没有 TrueCrypt 那样的 PKCS #11 接口。

有人知道怎样实现这个功能吗?

我在 Google 上搜索并没有找到解决方案,我想没有人会创建一个将智能卡安装为 Windows 驱动器的软件,以便它模拟文件系统并且任何应用程序都可以使用旧的 fopen() 读取密钥文件。

我相信可以开发一个 EncFS GUI 作为 EncFSMP,它支持 PKCS #11 并读取密钥文件并将其作为配置 XML 提供给 EncFS,但当然我们需要一个具备 EncFS 和 PKCS #11 技能的人来完成这项工作。

如果有其他软件(如 eCryptFS)支持 SmartCard 密钥文件,我也想知道。到目前为止没有找到任何信息,似乎只有 TrueCrypt 具有此功能。

答案1

.encfs6我认为(当前命名,曾经是)文件中没有任何真正敏感的内容.encfs5,盐和迭代主要阻止彩虹表,并且可能对字典攻击稍微有帮助,但如果您使用字典单词作为密码,那才是真正应该改变的。

即使 PGP/GPG 加密文件也可以很容易地看到盐值和计数,-vv在要求输入密码之前添加它们就会显示出来:

$ gpg -vv sample.gpg 
:symkey enc packet: version 4, cipher 9, s2k 3, hash 2
    salt x0x0x0x0x0x0x0x0, count 99999 (99)
gpg: AES256 encrypted data
...

如果确实存在此类数据易被查看的安全问题,PGP/GPG 肯定会采取不同的做法。

您最好花点精力去寻找一个程序来读取和使用存储在智能卡/令牌上的密码,甚至可以自动将其输入到任何点击的窗口中,或者宏或类似的东西?


稍微相关:.encfs6配置文件肯定应该是备份安全的地方,如果丢失了,那么您必须尝试猜测盐和参数才能重新进入加密文件,即使知道密码,恢复访问权限也不是一项简单快速的任务。

相关内容