Yubikey 檔案加密而不使用 OpenPGP?

Yubikey 檔案加密而不使用 OpenPGP?

有沒有一種方法可以使用不使用 OpenPGP 的 Yubikey 來加密單一檔案?

我使用 Yubikey 進行 ssh 登入和加密單一檔案(密碼儲存)。

到目前為止,我一直使用 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 簽署隨機數
  • 使用簽章派生用於加密資料的相同對稱金鑰
  • 解密資料!

相關內容