GPG 対称暗号化を使用しているときに「警告: メッセージの整合性が保護されていません」というメッセージを修正するにはどうすればよいですか?

GPG 対称暗号化を使用しているときに「警告: メッセージの整合性が保護されていません」というメッセージを修正するにはどうすればよいですか?

次のように対称暗号化を使用してファイルを暗号化しました。

gpg --symmetric myfile

結果としてファイル が生成されますmyfile.gpg

さて、もう一度ファイルを復号化してみましょう。

gpg -o myfile --decrypt myfile.gpg

設定したパスフレーズを聞かれ、そして

gpg: CAST5 encrypted data
gpg: encrypted with 1 passphrase
gpg: WARNING: message was not integrity protected

最初と最後の行についてはよく分かりません。

  • CAST5 暗号とは何ですか? 安全ですか? 3DES と AES は安全であることは知っています。
  • なぜ完全性が保護されないのでしょうか?
  • さらに、これをどうやって修正すればい​​いのでしょうか?

答え1

背景

キャスト-5GnuPGが最初に作成された当時はAESはまだ存在していなかったため、GnuPGで使用される古い暗号化アルゴリズムです。ソース広くは使用されていません (互換性の理由から GnuPG を除く)。

これWARNING: message was not integrity protectedは、この機能が暗号化時にデフォルトでオンになっていないためです。この機能がオンになっていると、GnuPG はファイルが転送中に変更されたかどうかを判断できます。

更新: Ubuntu/Debian に同梱されている GnuPG の最新バージョンには MDC が搭載されていますデフォルトで有効新しいバージョンで署名されたものに対しては、このメッセージが再度表示されることはなくなります。

ソリューション

より強力な AES-256 を使用するには、コマンド ラインまたは構成ファイルで指定する必要があります。

  • コマンドライン:--cipher-algo AES256暗号化する行全体は次のようになるようにオプションを追加します。

    gpg -o myfile.gpg --cipher-algo AES256 --symmetric myfile
    
  • 構成ファイル (推奨): 構成ファイルに次の行を追加します~/.gnupg/gpg.conf

    cipher-algo AES256
    

    このアプローチは、このユーザー アカウントでの今後のすべての GPG 操作に使用されるため、お勧めします。

ユーザーがファイルを復号化するために変更する必要はありません。GnuPG がこれを自動的に検出します。

AES-256 暗号を使用すると、メッセージの整合性は自動的に保護されることに注意してください。これが有効になっていない他の暗号 (CAST-5 など) で整合性保護を手動で有効にするには、--force-mdc暗号化時にオプションを追加します。

さらに良いのは、サインすることです!

さらに良い方法は、キーペア(お持ちの場合)を使用してファイルに署名することです。--sign次のように、暗号化コマンドにオプションを追加するだけです。

gpg -o myfile.gpg --cipher-algo AES256 --sign --symmetric myfile

これにより、ファイルの整合性が検証されるだけでなく、ファイルの受信者が送信元を確認できるようになります。ファイルに変更が加えられると、署名チェックは失敗します。

関連情報