Как зашифровать файл с помощью Yubikey и openssl

Вопрос или проблема

Я пытаюсь зашифровать файл с помощью моего Yubikey и openssl на Linux. Мой Yubikey это

  idProduct          0x0407 Yubikey 4/5 OTP+U2F+CCID
  bcdDevice            5.24

Сначала я извлекаю мой открытый ключ из yubikey:

 pkcs15-tool --read-public-key 01 -o pubkey

Я получаю файл, который выглядит следующим образом:

-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZ[...]WpqK
qezLU6KBlk9[...]eRDFZEkvptllFFkw==
-----END PUBLIC KEY-----

Когда я пытаюсь зашифровать файл с этим открытым ключом, я получаю ошибку:

openssl pkeyutl -encrypt -pubin -inkey pubkey -in file -out file.enc 
pkeyutl: Error initializing context
40A7F0A3DA720000:error:03000096:digital envelope routines:evp_pkey_asym_cipher_init:operation not supported for this keytype:../crypto/evp/asymcipher.c:189:

Недавно я перешел на yubikey. Ранее у меня был epass2000, который работал таким образом. Я не могу найти какие-либо подходящие документы для yubikey в интернете.

Как зашифровать файл с помощью openssl и yubikey?

Ответ или решение

Шифрование файла с помощью YubiKey и OpenSSL на Linux может оказаться сложной задачей, особенно если используется YubiKey с поддержкой CCID. Рассмотрим шаги, которые позволят успешно выполнить эту задачу.

Шаг 1: Извлечение публичного ключа

Вы уже успешно извлекли свой публичный ключ с помощью команды:

pkcs15-tool --read-public-key 01 -o pubkey

Убедитесь, что файл pubkey содержит корректные данные, как в вашем примере.

Шаг 2: Проверка типа ключа

Ошибка "operation not supported for this keytype" может указывать на проблемы с типом ключа, который вы используете. YubiKey поддерживает ограниченные операции для некоторых ключей. Рекомендуется использовать RSA или ECC ключи для шифрования, так как они поддерживаются OpenSSL.

Шаг 3: Шифрование файла

Если у вас есть соответствующий тип ключа, вы можете использовать OpenSSL для шифрования следующим образом:

  1. Проверка ключа
    Убедитесь, что ваш публичный ключ совместим с операцией шифрования. Например, для RSA:

    openssl rsa -in pubkey -check
  2. Шифрование файла
    Попробуйте следующее, если у вас RSA ключ:

    openssl rsautl -encrypt -inkey pubkey -pubin -in file -out file.enc

    Если вы используете ECC, операция может отличаться, так как ECC работает иначе.

Шаг 4: Использование подходящих инструментов

Если OpenSSL не поддерживает ваш тип ключа, необходимо рассмотреть возможность применения других инструментов или использования GnuPG с поддержкой YubiKey. Для шифрования файла с помощью GPG и YubiKey выполните следующие действия:

  1. Экспорт открытого ключа из YubiKey:

    gpg --card-edit

    Далее следуйте инструкциям на экране, чтобы извлечь и сохранить открытый ключ.

  2. Импорт открытого ключа в GPG:

    gpg --import pubkey.gpg
  3. Шифрование файла:

    gpg --encrypt -r [ваш_gpg_id] file

Рекомендации и заключение

При работе с YubiKey важно учесть, что некоторые операции зависят от программного обеспечения и конфигурации самого устройства. Убедитесь, что ваш YubiKey правильно настроен и поддерживает именно ту операцию, которую вы хотите выполнить. Обязательно ознакомьтесь с официальной документацией Yubico для получения дополнительной информации о поддерживаемых режимах и возможностях вашего устройства.

Настройка и шифрование с использованием YubiKey могут варьироваться в зависимости от конкретных требований и ограничений устройства, поэтому рекомендуется держать документацию под рукой и следить за обновлениями программного обеспечения.

Оцените материал
Добавить комментарий

Капча загружается...