4

На моем Mac я изначально установил GnuPG, используя homebrew.

Затем я нашел GPGTools и начал использовать его, потому что он более удобен для пользователя (горячие клавиши ОС, поэтому я могу легко использовать шифрование внутри электронной почты, например).

Я не настраивал ключи, используя gpg полученный с помощью homebrew. Я установил свою личность с помощью GPGTools.

В конце концов (через некоторое время) я обнаружил, что, даже не устанавливая флажок "Сохранить в цепочке для ключей", из всех четырех операций (шифрование, подпись, дешифрование, проверка) мой пароль требует только шаг подписи.

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

После того, как я перешел и обновил ~/.gnupg/gpg.conf добавив no-use-agent и убив gpg-agent теперь он правильно заставляет меня ввести пароль для подписи и дешифрования.

У меня вопрос, а как насчет функциональности gpg-agent который (когда он еще работал) позволил ему сохранить мой пароль, но только для расшифровки, а не для подписи?

1 ответ1

3

Не все из четырех упомянутых вами операций требуют ввода ключевой фразы, а только те, которые используют закрытый ключ: дешифрование и подпись. Как шифрование, так и проверка в качестве контрагента дешифрования и подписи используют только открытый ключ, который не хранится в зашифрованном виде (защищен парольной фразой).

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

gpg-agent знает несколько опций для точной настройки поведения кэширования, среди которых --default-cache-ttl для определения длительности кэширования парольных фраз и --ignore-cache-for-signing , что не позволяет GnuPG запрашивать парольную фразу в любом случае для подписания.

От man gpg-agent:

--ignore-cache-for-signing

Эта опция позволит gpg-agent обходить кэш парольной фразы для всех операций подписания. Обратите внимание, что есть также опция для каждой сессии, чтобы управлять этим поведением, но эта опция командной строки имеет приоритет.

--default-cache-ttl n

Установите время, в течение которого запись в кэше действительна, равной n секундам. Значение по умолчанию составляет 600 секунд. При каждом доступе к записи в кэше таймер записи сбрасывается. Чтобы установить максимальное время жизни записи, используйте max-cache-ttl .

Скорее всего, вы устанавливаете ignore-cache-for-signing signature в ~/.gnupg/gpg-agent.conf , что не является значением по умолчанию.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .