我正在尝试将智能卡上的 PKI 密钥(使用 OpenSC)与 eCryptFS 安装集成,以促进更强大的授权检查。
以下是我对文件系统的密码进行加密的方法:
pkcs15-tool --read-public-key $KEYID > ~/userpub.key
<(generate 63 digit random string> | openssl rsautl -encrypt -inkey \
~/.userpub.key -pubin -out ~/.ecryptfskey
加密后,解密的唯一方法是通过智能卡上的不可导出的私钥。
现在,实际挂载文件系统:
exec 3<<<`pkcs15-crypt --raw --decipher --pkcs1 -k $KEYID -i ~/ecryptfskey`
mount -t ecryptfs $DIR $DIR -o key=passphrase:passphrase_passwd_fd=3,(etc)
此外,我可以使用类似的方法使用另一个用户的公钥来加密文件系统密码,从而允许共享文件。
这似乎是一种安全方法,因为未加密的密钥通过文件描述符通过管道传输到安装命令以进行一次性读取。我的方法是否遗漏了一个明显的错误?有更安全的方法吗?
请注意,我们正在尝试启用文件级加密以供按需使用。 LUKS 不起作用,因为我们的机器始终处于开启状态,因此整个驱动器加密将毫无用处。
(注意:我们使用的是没有 pkcs11-helper 的 eCryptFS 版本)