Как избежать всех запросов парольной фразы для асимметричной расшифровки GPG2?

295
Shule

Я сделал свою собственную программу, которая использует gpg для шифрования и дешифрования (как симметричная, так и асимметричная). Он отлично работает с gpg1 на всех учетных записях и отлично работает с gpg2 для обоих видов шифрования и для симметричного дешифрования, но я все еще получаю приглашение на основе графического пароля для асимметричного дешифрования. Любые идеи о том, как передать его автоматически (без ввода данных пользователем)?

Имейте в виду, что --no-use-agentон устарел и ничего не делает в gpg2.

Кроме того, имейте в виду, что я попробовал --passphrase myPassphraseи echo "myPassphrase|gpg --passphrase-fd 0варианты (по крайней мере, последний из которых работает отлично для симметричного расшифрования-например, для дешифрования вещи зашифрованы с -c).

Кроме того, имейте в виду, что --batchи --yesне помогают.

У меня складывается впечатление (я этого не знаю), что GNU Privacy Guard больше не хочет поддерживать подобные вещи, что довольно неприятно.

Моя текущая обходная идея заключается в том, чтобы зашифровать с помощью gpg2 (чтобы обеспечить наиболее безопасное шифрование, если оно имеет значение) и расшифровать с помощью gpg1 - но тогда мне и всем, кто использует мою программу, придется вводить информацию о ключах в обе версии gpg (я я не в восторге от этого). Кроме того, я немного волнуюсь, что однажды они перестанут предлагать gpg1 (хотя я не знаю, что это произойдет).

Другая альтернатива - просто разрешить использовать поле ввода на основе графического интерфейса GPG вместо моего пользовательского - что, я полагаю, не конец света.

Я использую Xubuntu 18.04 с GPG 2.2.4 с libcrypt 1.8.1.

1
Что плохого в том, чтобы позволить агенту иметь дело с парольной фразой? Это, вероятно, будет обрабатывать это более безопасно, чем ваше приложение! Attie 5 лет назад 0
Также будьте очень осторожны при утилизации файловых дескрипторов ... не используйте `--passphrase-fd 0` ... (_stdin_), используйте другой, если вам нужно ... Attie 5 лет назад 0
@ Att ничего особенного в этом нет (хотя это менее предсказуемо, поскольку иногда он запрашивает парольную фразу, а иногда нет; кроме того, он временно кэширует парольные фразы), но приятно настроить внешний вид записи парольной фразы (и что он говорит), и как он отвечает (и как быстро он отвечает). Я уверен, что агент, вероятно, намного более защищен, поскольку ему не нужно так сильно доверять моей программе (и теперь я планирую его поддерживать). Что касается вашего второго комментария - почему? Shule 5 лет назад 0
Я знаю, что диспетчер задач может показывать пароли, если вы вводите их напрямую с помощью `--passphrase-fd 0`, но помещаете его во временный файл (который сразу же удаляется после использования) и передаете его как` cat "myTempFile" | gpg --passphrase-fd 0… `обходит эту конкретную проблему (если хакерская программа не может перехватить временный файл в этот момент). Я уверен, что есть и другие проблемы (я просто не знаю, чем они все являются, если вы хотите указать на некоторые). Shule 5 лет назад 0
Я думаю, вы правы, что лучше всего использовать подсказку с графическим интерфейсом. Кажется, после предварительных тестов все работает намного лучше, чем при первой попытке. Надеюсь, это не изменится с обновлением! Я все еще немного обеспокоен кэшированными парольными фразами (хотя это довольно удобно). Shule 5 лет назад 0

0 ответов на вопрос