有沒有一種方法可以使用不使用 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
+vim
hack? - 也許有一個基於 PKCS11 的無縫文件加密工具?
- 使用 yubikey 上的其他插槽之一進行檔案加密,也許使用 OpenSC 或一些 libccid 的東西?
- 直接與 Yubikey 對話的開源密碼管理器?
答案1
這是我編寫的一個 python 腳本,用於自動執行以下過程:
若要加密,ssh-agent 的有線協定(請參閱RFC 草案了解詳細資訊)允許您使用私鑰簽署任意數據,因此:
- 選擇一個隨機數
- 要求 ssh-agent 簽名
- 使用簽章派生對稱金鑰
- 使用對稱密鑰加密您的數據
- 將隨機數和加密資料(但不包括對稱金鑰)儲存到磁碟
並解密:
- 從磁碟讀回隨機數和加密數據
- 要求 ssh-agent 簽署隨機數
- 使用簽章派生用於加密資料的相同對稱金鑰
- 解密資料!