web-dev-qa-db-ja.com

gpg2-aesブロック暗号と古い使用エージェントを選択するオプションはありませんか?

OpenSSLを使用すると、ファイルの暗号化に使用するブロック暗号の種類を選択できます。

たとえば、AES256CBCブロック暗号モードでファイルを暗号化する場合:

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

私が助けを得ることができる2つの問題があります:

  • 使用する暗号ブロックを指定するオプションはありません。 CBCの代わりにAES256CTRまたはXTSが必要な場合はどうなりますか? --cipher-algo AES256はどの暗号ブロックを使用し、特定のものを指定するにはどうすればよいですか?

  • Gnuパスワードエージェントにパスフレーズを入力しないと、コマンドは完全に失敗します(信頼できるマシンで自動化できるように、コマンドに--passphrase--no-use-agentを使用してパスフレーズを指定しようとしています) :

    gpg:警告:「-no-use-agent」は廃止されたオプションです-効果はありません

    gpg:エージェントの問題:無効なカード

    gpg:パスフレーズの作成中にエラーが発生しました:操作がキャンセルされました

    gpg: `secrets.txt 'の対称暗号化に失敗しました:操作がキャンセルされました

3
vcipq

サイファーモード

OpenPGPは、指定された1つのモード RFC 4880で定義されている変更されたCBCモード を強制します。他のものに変更することはできません。

GPGエージェント

コメントで@grawityがすでに指摘しているように、GnuPG 2の最近のバージョンでは、いくつかの暗号化関数がエージェントに抽出されたため、パスフレーズと秘密鍵によって、この小さなプログラムが脆弱性の可能性が低くなることはありません。

gpg-preset-passphraseGnuPG 2.1のドキュメント )プログラムでパスフレーズを設定することは、GnuPG 2でバッチ操作を行う方法です。別の方法として、 `--passphrase [-fd、file] GnuPG2.1でまだ利用できるように見えるオプション。

1
Jens Erat

サポートされている暗号のリストを取得するには、gpg2 --versionを使用できます。私のマシンでは、次の出力が得られます。

暗号:IDEA、3DES、CAST5、BLOWFISH、AES、AES192、AES256、TWOFISH、CAMELLIA128、CAMELLIA192、CAMELLIA256

ただし、CTRまたはXTSに変更する方法がわかりません。

コマンドラインでパスフレーズを指定するオプションも表示されませんが、パスフレーズの代わりに秘密鍵を使用して暗号化してみてください。

0
markovuksanovic