Yubikey 文件加密而不使用 OpenPGP?

Yubikey 文件加密而不使用 OpenPGP?

有没有一种方法可以使用不使用 OpenPGP 的 Yubikey 来加密单个文件?

我使用 Yubikey 进行 ssh 登录和加密单个文件(密码存储)。Yubikey 仅在 CCID 模式下运行(我当前不使用 OTP 或 U2F)。所有操作都需要物理存在测试。

到目前为止,我一直使用 Yubikey 作为 OpenPGP 智能卡以及:

  • gpg-agent --enable-ssh-support用于 ssh 支持;和
  • gnupg.vim 插件用于加密文件。

GnuPG 笨重、不可靠且难以编写脚本。我想停止在此模式下使用 Yubikey。

我有另一个配置为 NIST PIV 智能卡的 Yubikey。我使用 OpenSSH 的 PKCS11 支持和常规 ssh 代理。这比 gpg 工具可靠得多,但它不提供单个文件加密支持

据我所知,使用 PIV 智能卡进行单个文件加密有几种可能的选择:

  • 某种ssh-agent+ vimhack?
  • 也许有一个基于 PKCS11 的无缝文件加密工具?
  • 使用 yubikey 上的其他插槽之一进行文件加密,也许使用 OpenSC 或一些 libccid 的东西?
  • 直接与 Yubikey 对话的开源密码管理器?

答案1

这是我编写的一个 python 脚本,用于自动执行以下过程:

要加密,ssh-agent 的有线协议(请参阅RFC 草案了解详细信息)允许您使用私钥签署任意数据,因此:

  • 选择一个随机数
  • 要求 ssh-agent 签名
  • 使用签名派生对称密钥
  • 使用对称密钥加密您的数据
  • 将随机数和加密数据(但不包括对称密钥)保存到磁盘

并解密:

  • 从磁盘读回随机数和加密数据
  • 要求 ssh-agent 签署随机数
  • 使用签名派生用于加密数据的相同对称密钥
  • 解密数据!

相关内容