Вопрос или проблема
У меня есть Yubikey с моими GPG приватными ключами на нем и публичными ключами в моем gpg хранилище ключей. Я убедился, что приватные ключи отсутствуют в моей системе, запустив gpg --export-secret-key -a <key id>
, который ничего не вернул, но gpg --export -a <key id>
напечатал мой публичный ключ.
После настройки моего <key id>
для подписи я заметил, что я все еще получаю приватный ключ, напечатанный на --export-secret-key
, после разблокировки моей карточки и использования ее для подписи чего-то.
Это сбило меня с толку, потому что я не ожидал, что что-то будет напечатано на --export-secret-key
, поэтому мне любопытно, что это за ключ?
Чтобы быть уверенным, я также пробовал удалить этот приватный ключ --delete-secret-keys <key id>
, но при использовании смарт-карты снова, приватный ключ для этого <key id>
восстанавливается.
Ответ или решение
Когда вы используете команду gpg --export-secret-key
и видите вывод, несмотря на то, что ваши секретные ключи хранятся на смарт-карте, это может быть связано с несколькими аспектами работы GPG и смарт-карт. Давайте подробно разберем эту ситуацию.
Основные аспекты вопроса
-
Хранение ключей на смарт-карте: Смарт-карты, такие как YubiKey, позволяют безопасно хранить ваши приватные ключи, не оставляя их на локальной файловой системе. Когда приватный ключ находится на смарт-карте, GPG может взаимодействовать с карточкой для выполнения криптографических операций, таких как подпись или шифрование, без необходимости загружать приватный ключ в память вашего компьютера.
-
Команда
gpg --export-secret-key
: Эта команда предназначена для экспорта секретного ключа из вашего локального хранилища ключей. Когда вы выполняете эту команду и получаете вывод, несмотря на то что подразумевалось отсутствие приватного ключа на вашей системе, это может быть связано с тем, что GPG все еще видит информацию о ключе, но не может извлечь сам секретный ключ с смарт-карты. -
Кэширование и доступ к секретным ключам: Если вы уже использовали смарт-карту для подписания или шифрования, GPG может поддерживать сессионное кэширование или временные файлы, что может приводить к путанице относительно того, какие ключи доступны. Использование смарт-карты для криптографических операций может давать GPG возможность взаимодействовать с ключами, хранящимися на карточке, даже если они не видны в вашей локальной системе.
-
Вывод приватного ключа: Когда вы видите вывод при выполнении
gpg --export-secret-key
, это может быть связано с тем, что GPG имеет доступ к некоторым метаданным ключа, таким как его идентификатор, а также параметры, определяющие его свойства (например, алгоритм, срок действия и т.д.). Однако это не означает, что приватный компонент ключа доступен в нешифрованном виде. -
Удаление секретного ключа: Когда вы используете команду
gpg --delete-secret-keys <key id>
, это работает для локального хранилища ключей, а не для ключей на смарт-карте. Если ключ по-прежнему находится на смарт-карте, он останется доступным для использования, если карточка разблокирована. На практике, это означает, что только физическое удаление ключа с карты (если это поддерживается) может предотвратить дальнейший доступ.
Заключение
Таким образом, вывод команды gpg --export-secret-key
может возникать из-за наличия метаданных о ключе или кэширования информации, а не из-за наличия самого приватного ключа в вашей системе. Чтобы удостовериться в его отсутствии, необходимо разбираться с конкретными настройками вашего устройства и конфигурацией GPG. Рекомендуется обратить внимание на документацию к GPG и YubiKey, чтобы оптимально настраивать и управлять ключами, хранящимися на смарт-картах.
Если у вас есть дополнительные вопросы или требуется помощь в настройке системы, мы всегда готовы помочь вам лучше понять использование GPG и смарт-карт.