Шифрование файлов Yubikey без использования OpenPGP?

Есть ли способ шифровать отдельные файлы с помощью Yubikey, который не использует OpenPGP?

Я использую свой Yubikey для входа в систему ssh и шифрования отдельных файлов (хранилища паролей.) Yubikey работает только в режиме CCID (в настоящее время я не использую OTP или U2F.) Все операции требуют проверки физического присутствия.

До сих пор я использовал свой Yubikey в качестве смарт-карты OpenPGP вместе с:

  • gpg-agent --enable-ssh-support ssh; а также
  • gnupg.vim для шифрования файлов.

GnuPG неуклюжий, ненадежный и сложный сценарий. Я бы хотел прекратить использовать Юбики в этом режиме.

У меня есть еще один Yubikey, который настроен как смарт-карта NIST PIV. Я использую поддержку OpenSH PKCS11 и обычный ssh-agent. Это намного надежнее, чем инструменты gpg, но не поддерживает поддержку отдельного файла .

Как я вижу, существует несколько возможных вариантов использования смарт-карты PIV для индивидуального шифрования файлов:

  • что-то вроде ssh-agent + vim hack?
  • может быть, есть простой инструмент шифрования файлов на основе PKCS11?
  • используя один из других слотов на yubikey для шифрования файлов, может быть, с OpenSC или некоторыми из libccid-файлов?
  • менеджер паролей с открытым исходным кодом, который напрямую говорит с Юбикеем?

One Solution collect form web for “Шифрование файлов Yubikey без использования OpenPGP?”

Вот скрипт python, который я написал для автоматизации следующего процесса:

Чтобы зашифровать проводной протокол ssh-agent (см. Проект RFC для деталей), вы можете подписывать произвольные данные с помощью закрытого ключа, поэтому:

  • выбрать случайное число
  • ask ssh-agent подписать его
  • использовать подпись для получения симметричного ключа
  • шифруйте свои данные симметричным ключом
  • сохранить случайное число и зашифрованные данные (но не симметричный ключ) на диск

и расшифровать:

  • читать случайное число и зашифрованные данные с диска
  • попросите ssh-agent подписать случайное число
  • использовать подпись для получения одного и того же симметричного ключа, используемого для шифрования данных
  • расшифровать данные!
Linux и Unix - лучшая ОС в мире.