gpg2 - нет возможности выбрать блочный шифр aes и устаревший агент?

1516

С помощью OpenSSL я могу выбрать тип блочного шифра для шифрования файла.

Например, если я хочу зашифровать файл в режиме блочного шифрования AES256 CBC:

openssl aes-256-cbc -a -salt -pass pass:MYPASSWORD -in secrets.txt -out secrets.txt.enc 

В gpg2 я пытаюсь зашифровать файл следующим образом:

gpg2 --cipher-algo AES256 -a --no-use-agent --passphrase MYPASSWORD -c secrets.txt 

Есть две проблемы, с которыми я мог бы получить некоторую помощь:

  • Нет никакой возможности указать, какой блок шифра использовать. Что, если я хочу CTR AES256 или XTS вместо CBC? Какой блок шифра --cipher-algo AES256использует и как мне указать что-то конкретное?

  • Команда полностью завершится неудачей, если я не введу фразу-пароль в агент паролей gnu (я пытаюсь предоставить фразу-пароль в команде с помощью --passphraseи --no-use-agent, для возможной автоматизации на доверенной машине):

    gpg: ПРЕДУПРЕЖДЕНИЕ: «--no-use-agent» является устаревшей опцией - она ​​не имеет никакого эффекта

    gpg: проблема с агентом: недействительная карта

    gpg: ошибка при создании ключевой фразы: операция отменена

    gpg: симметричное шифрование `secretts.txt 'не удалось: операция отменена

3
Обратите внимание, что последние версии GnuPG используют агент для выполнения операций шифрования; Вы не можете отключить это. grawity 10 лет назад 0
@ grawity То есть невозможно автоматизировать операции gpg2 enc / dec? Похоже, мне нужно вручную ввести мою парольную фразу в агент. 10 лет назад 0
Страница man ... С gpg2 вы должны использовать опцию `--batch` вместо` --no-use-agent`. rsaw 10 лет назад 0
Может быть, это поможет, если вы объясните, что вы пытаетесь достичь. Я могу сказать, что это какая-то автоматизация, но не совсем уверен в вашем сценарии markovuksanovic 10 лет назад 0

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

1
Jens Erat

Cypher Mode

OpenPGP применяет один данный режим, модифицированный режим CBC, как определено в RFC 4880 . Вы не можете изменить это на что-то другое.

Агент GPG

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

Я предполагаю, что использование gpg-preset-passphrase( документация для GnuPG 2.1 ) для программной установки парольной фразы - это путь для пакетной операции в GnuPG 2. Альтернативой может быть использование параметров --passphrase [-fd, file], которые все еще кажутся доступно в GnuPG 2.1.

0
markovuksanovic

Чтобы получить список поддерживаемых шифров вы можете использовать gpg2 --version. На моей машине я получаю следующий вывод:

Шифр: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH, CAMELLIA128, CAMELLIA192, CAMELLIA256

Я не вижу способа перейти на CTR или XTS.

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

Я думал, секретный ключ был сгенерирован из ключевой фразы? 10 лет назад 0
@vcipq: нет; просто зашифрован с использованием этого. grawity 10 лет назад 0

Похожие вопросы